diff options
| author | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-01-01 22:19:58 +0000 |
|---|---|---|
| committer | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-01-01 22:19:58 +0000 |
| commit | c0b3edb3fbf1ad42ac76df7d1d6207a3c1d9b367 (patch) | |
| tree | 554942a234b954c8aa9774f91a3ce4a6b0964af4 | |
| parent | f6eff11b1b74ee1a351fc375c0ee8ca95864814a (diff) | |
| download | ppe42-gcc-c0b3edb3fbf1ad42ac76df7d1d6207a3c1d9b367.tar.gz ppe42-gcc-c0b3edb3fbf1ad42ac76df7d1d6207a3c1d9b367.zip | |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120321 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/gimplify.c | 3 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/statement-expression-1.c | 10 |
4 files changed, 23 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4b9e5ff975a..55ae03bf3a1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 5df8579913a..01772bd5b02 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -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 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 78092410a68..ea08e48e492 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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 diff --git a/gcc/testsuite/gcc.c-torture/compile/statement-expression-1.c b/gcc/testsuite/gcc.c-torture/compile/statement-expression-1.c new file mode 100644 index 00000000000..fb4860256ad --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/statement-expression-1.c @@ -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); +} + |

