http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59891

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Because the C_MAYBE_CONST_EXPR has been added again in:
4576              if (!op2_maybe_const || TREE_CODE (op2) != INTEGER_CST)
4577                op2 = c_wrap_maybe_const (op2, !op2_maybe_const);
around the TRUNC_MOD_EXPR, then
4680      op1 = ep_convert_and_check (result_type, op1, semantic_result_type);
4681      op2 = ep_convert_and_check (result_type, op2, semantic_result_type);
converted the int type C_MAYBE_CONST_EXPR to unsigned int type (i.e. added
NOP_EXPR around it), and then the remove_c_maybe_const_expr in:
4709          if (int_operands)
4710        {
4711          op1 = remove_c_maybe_const_expr (op1);
4712          op2 = remove_c_maybe_const_expr (op2);
4713        }
4714          ret = build3 (COND_EXPR, result_type, ifexp, op1, op2);
4715          if (int_operands)
4716        ret = note_integer_operands (ret);
doesn't do anything anymore, since it only looks at toplevel
C_MAYBE_CONST_EXPR, not embedded in some NOP_EXPR.

Reply via email to