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

--- Comment #3 from joseph at codesourcery dot com <joseph at codesourcery dot 
com> 2011-04-26 14:50:47 UTC ---
There shouldn't be nested C_MAYBE_CONST_EXPR.  The code you quote

>               if (!in_late_binary_op)
>                 {
>                   if (!op0_maybe_const || TREE_CODE (op0) != INTEGER_CST)
>                     op0 = c_wrap_maybe_const (op0, !op0_maybe_const);
>                   if (!op1_maybe_const || TREE_CODE (op1) != INTEGER_CST)
>                     op1 = c_wrap_maybe_const (op1, !op1_maybe_const);
>                 }

is to avoid the result of folding getting folded again and to track how 
constant that result is.  But if int_operands I don't think this wrapping 
of the operands is needed because the code after return_build_binary_op: 
will deal with wrapping the result.

Reply via email to