mirror of git://gcc.gnu.org/git/gcc.git
re PR c/53418 (ICE at gimplify.c:7773)
PR c/53148 * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR from folded operands before wrapping another around the conditional expression. testsuite: * gcc.c-torture/compile/pr53418-1.c, gcc.c-torture/compile/pr53418-2.c: New tests. From-SVN: r187718
This commit is contained in:
parent
7772bae06c
commit
01c7ccbb81
|
|
@ -1,3 +1,10 @@
|
|||
2012-05-21 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
PR c/53148
|
||||
* c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
|
||||
from folded operands before wrapping another around the
|
||||
conditional expression.
|
||||
|
||||
2012-05-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/53366
|
||||
|
|
|
|||
|
|
@ -4408,6 +4408,11 @@ build_conditional_expr (location_t colon_loc, tree ifexp, bool ifexp_bcp,
|
|||
ret = fold_build3_loc (colon_loc, COND_EXPR, result_type, ifexp, op1, op2);
|
||||
else
|
||||
{
|
||||
if (int_operands)
|
||||
{
|
||||
op1 = remove_c_maybe_const_expr (op1);
|
||||
op2 = remove_c_maybe_const_expr (op2);
|
||||
}
|
||||
ret = build3 (COND_EXPR, result_type, ifexp, op1, op2);
|
||||
if (int_operands)
|
||||
ret = note_integer_operands (ret);
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
2012-05-21 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
PR c/53148
|
||||
* gcc.c-torture/compile/pr53418-1.c,
|
||||
gcc.c-torture/compile/pr53418-2.c: New tests.
|
||||
|
||||
2012-05-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/53366
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
void
|
||||
f (void)
|
||||
{
|
||||
int i = (0 ? 1 : 0U / 0);
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
void
|
||||
f (void)
|
||||
{
|
||||
int i = (1 ? 0U / 0 : 1);
|
||||
}
|
||||
Loading…
Reference in New Issue