From b03c0b9324745ad712930413f140e1364f694102 Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Mon, 8 Nov 2004 20:10:46 +0000 Subject: [PATCH] re PR middle-end/18299 (ICE in gimple-lower) 2004-11-08 Andrew Pinski PR tree-opt/18299 * gcc.c-torture/pr18299-1.c: New test. 2004-11-08 Andrew Pinski PR tree-opt/18299 * tree-inline.c (copy_body_r): Change "t = t" to empty statement instead of "t". From-SVN: r90295 --- gcc/ChangeLog | 6 ++++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.c-torture/pr18299-1.c | 12 ++++++++++++ gcc/tree-inline.c | 2 +- 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.c-torture/pr18299-1.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9b778ff0a80..18fab2c50b0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-11-08 Andrew Pinski + + PR tree-opt/18299 + * tree-inline.c (copy_body_r): Change "t = t" to empty + statement instead of "t". + 2004-11-08 Kazu Hirata * modulo-sched.c (create_partial_schedule, diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9a7f6672d01..3a11ae4d365 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-11-08 Andrew Pinski + + PR tree-opt/18299 + * gcc.c-torture/pr18299-1.c: New test. + 2004-11-06 Andreas Schwab * 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 00000000000..7dc1157011f --- /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 17f3937e162..afba090bca7 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); } } -- 2.30.2