diff --git a/lang/cem/cemcom.ansi/eval.c b/lang/cem/cemcom.ansi/eval.c index 8993fdc0..08b8f811 100644 --- a/lang/cem/cemcom.ansi/eval.c +++ b/lang/cem/cemcom.ansi/eval.c @@ -639,7 +639,7 @@ EVAL(expr, val, code, true_label, false_label) default: crash("(EVAL) bad expression class"); } - if (expr->ex_flags & EX_VOLATILE || vol) C_nop(); + if (val == RVAL && ((expr->ex_flags & EX_VOLATILE) || vol)) C_nop(); } /* compare() serves as an auxiliary function of EVAL */