From: ceriel Date: Wed, 31 May 1989 12:42:56 +0000 (+0000) Subject: fix to constant unary minus X-Git-Tag: release-5-5~2407 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=cc3459e5a8c33a0daf355d79005c76393fc88e48;p=ack.git fix to constant unary minus --- diff --git a/lang/cem/cemcom/ch7mon.c b/lang/cem/cemcom/ch7mon.c index c4cd2e6aa..96d758d9f 100644 --- a/lang/cem/cemcom/ch7mon.c +++ b/lang/cem/cemcom/ch7mon.c @@ -111,10 +111,11 @@ ch7mon(oper, expp) if (is_cp_cst(*expp)) { arith o1 = (*expp)->VL_VALUE; - (*expp)->VL_VALUE = (oper == '-') ? -o1 : + o1 = (oper == '-') ? -o1 : ~o1; + (*expp)->VL_VALUE = ((*expp)->ex_type->tp_unsigned ? - (~o1) & full_mask[(*expp)->ex_type->tp_size] : - ~o1 + o1 & full_mask[(*expp)->ex_type->tp_size] : + o1 ); } else