aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@physics.uc.edu>2004-11-08 20:10:46 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2004-11-08 12:10:46 -0800
commitb03c0b9324745ad712930413f140e1364f694102 (patch)
treeff0a73e4bd4025236c9af7d9508c225ac11e89bf /gcc
parent8736cbe6f28c14988b96d99b0c89c33cc29bd59f (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/pr18299-1.c12
-rw-r--r--gcc/tree-inline.c2
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);
}
}