From: eck Date: Thu, 6 Sep 1990 14:49:52 +0000 (+0000) Subject: sometimes swap operands in expressions with side-effects X-Git-Tag: release-5-5~1559 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=33c9811ba98f51ca69f8a3f6e7ed548ae60a0f39;p=ack.git sometimes swap operands in expressions with side-effects --- diff --git a/lang/cem/cemcom.ansi/ch3bin.c b/lang/cem/cemcom.ansi/ch3bin.c index 72bd477c1..0c4fe07df 100644 --- a/lang/cem/cemcom.ansi/ch3bin.c +++ b/lang/cem/cemcom.ansi/ch3bin.c @@ -340,7 +340,9 @@ mk_binop(expp, oper, expr, commutative) else { *expp = (commutative && !(ex->ex_flags & EX_VOLATILE) - && ( expr->ex_depth > ex->ex_depth + && (expr->ex_depth > ex->ex_depth + || ((expr->ex_flags & EX_SIDEEFFECTS) + && !(ex->ex_flags & EX_SIDEEFFECTS)) || is_cp_cst(ex))) ? new_oper(ex->ex_type, expr, arg_switched(oper), ex) : new_oper(ex->ex_type, ex, oper, expr);