From cc3459e5a8c33a0daf355d79005c76393fc88e48 Mon Sep 17 00:00:00 2001 From: ceriel Date: Wed, 31 May 1989 12:42:56 +0000 Subject: [PATCH] fix to constant unary minus --- lang/cem/cemcom/ch7mon.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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 -- 2.34.1