diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2004-11-08 20:10:46 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2004-11-08 12:10:46 -0800 |
commit | b03c0b9324745ad712930413f140e1364f694102 (patch) | |
tree | ff0a73e4bd4025236c9af7d9508c225ac11e89bf /gcc | |
parent | 8736cbe6f28c14988b96d99b0c89c33cc29bd59f (diff) | |
download | gcc-b03c0b9324745ad712930413f140e1364f694102.zip gcc-b03c0b9324745ad712930413f140e1364f694102.tar.gz gcc-b03c0b9324745ad712930413f140e1364f694102.tar.bz2 |
re PR middle-end/18299 (ICE in gimple-lower)
2004-11-08 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/18299
* gcc.c-torture/pr18299-1.c: New test.
2004-11-08 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/18299
* tree-inline.c (copy_body_r): Change "t = t" to empty
statement instead of "t".
From-SVN: r90295
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/pr18299-1.c | 12 | ||||
-rw-r--r-- | gcc/tree-inline.c | 2 |
4 files changed, 24 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9b778ff..18fab2c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-11-08 Andrew Pinski <pinskia@physics.uc.edu> + + PR tree-opt/18299 + * tree-inline.c (copy_body_r): Change "t = t" to empty + statement instead of "t". + 2004-11-08 Kazu Hirata <kazu@cs.umass.edu> * modulo-sched.c (create_partial_schedule, diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9a7f667..3a11ae4 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-11-08 Andrew Pinski <pinskia@physics.uc.edu> + + PR tree-opt/18299 + * gcc.c-torture/pr18299-1.c: New test. + 2004-11-06 Andreas Schwab <schwab@suse.de> * gcc.dg/pr16286.c: Also test for bool and pixel. diff --git a/gcc/testsuite/gcc.c-torture/pr18299-1.c b/gcc/testsuite/gcc.c-torture/pr18299-1.c new file mode 100644 index 0000000..7dc1157 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/pr18299-1.c @@ -0,0 +1,12 @@ +/* We used to ICE in gimple-lower because we + would produce __t (VAR_DECL) as a statement in the + instruction stream which is not valid. */ + +static inline int f(int i) +{ + const int __t = (__t); +} +int g(void) +{ + return f(0); +} diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index 17f3937..afba090 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -558,7 +558,7 @@ copy_body_r (tree *tp, int *walk_subtrees, void *data) STRIP_TYPE_NOPS (value); if (TREE_CONSTANT (value) || TREE_READONLY_DECL_P (value)) { - *tp = value; + *tp = build_empty_stmt (); return copy_body_r (tp, walk_subtrees, data); } } |