re PR middle-end/30253 (ICE with statement expression inside a conditional)
2007-01-01 Andrew Pinski <pinskia@gmail.com> PR middle-end/30253 * gimplify (voidify_wrapper_expr): Update for GIMPLIFY_MODIFY_STMT. 2007-01-01 Andrew Pinski <pinskia@gmail.com> PR middle-end/30253 * gcc.c-torture/compile/statement-expression-1.c: New test. From-SVN: r120321
This commit is contained in:
parent
ae1e2d4caa
commit
c0893ec0e1
4 changed files with 23 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
2007-01-01 Andrew Pinski <pinskia@gmail.com>
|
||||
|
||||
PR middle-end/30253
|
||||
* gimplify (voidify_wrapper_expr): Update for
|
||||
GIMPLIFY_MODIFY_STMT.
|
||||
|
||||
2007-01-01 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
PR target/29166
|
||||
|
|
|
@ -1014,8 +1014,9 @@ voidify_wrapper_expr (tree wrapper, tree temp)
|
|||
/* The wrapper is on the RHS of an assignment that we're pushing
|
||||
down. */
|
||||
gcc_assert (TREE_CODE (temp) == INIT_EXPR
|
||||
|| TREE_CODE (temp) == GIMPLIFY_MODIFY_STMT
|
||||
|| TREE_CODE (temp) == MODIFY_EXPR);
|
||||
TREE_OPERAND (temp, 1) = *p;
|
||||
GENERIC_TREE_OPERAND (temp, 1) = *p;
|
||||
*p = temp;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2007-01-01 Andrew Pinski <pinskia@gmail.com>
|
||||
|
||||
PR middle-end/30253
|
||||
* gcc.c-torture/compile/statement-expression-1.c: New test.
|
||||
|
||||
2007-01-01 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
PR target/29166
|
||||
|
|
10
gcc/testsuite/gcc.c-torture/compile/statement-expression-1.c
Normal file
10
gcc/testsuite/gcc.c-torture/compile/statement-expression-1.c
Normal file
|
@ -0,0 +1,10 @@
|
|||
/* PR middle-end/30253, We would ICE with statement expressions
|
||||
in a conditional expression because we forgot to update the wrapper
|
||||
function for the gimple modify statement. */
|
||||
|
||||
#define f(x) ({ unsigned tmp=x; tmp; })
|
||||
|
||||
unsigned foo(unsigned x) {
|
||||
return __builtin_constant_p(x) ? 0 : f(x);
|
||||
}
|
||||
|
Loading…
Add table
Reference in a new issue