From 50d4a707c02099a9344ea36960788c99c4b163a6 Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Thu, 3 Feb 2005 15:13:45 +0000 Subject: [PATCH] re PR tree-optimization/19736 (ICE with type mismatch between SSA_NAME and its symbol) 2005-02-03 Andrew Pinski PR tree-opt/19763 * gcc.c-torture/compile/pr19736.c: New test. 2005-02-03 Andrew Pinski PR tree-opt/19736 * tree-ssa.c (replace_immediate_uses): Update the immediate_uses information for the new statement. From-SVN: r94658 --- gcc/ChangeLog | 6 ++++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.c-torture/compile/pr19736.c | 21 +++++++++++++++++++ gcc/tree-ssa.c | 2 ++ 4 files changed, 34 insertions(+) create mode 100644 gcc/testsuite/gcc.c-torture/compile/pr19736.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 465e2e95e22..b0561fd03c8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-02-03 Andrew Pinski + + PR tree-opt/19736 + * tree-ssa.c (replace_immediate_uses): Update the immediate_uses + information for the new statement. + 2005-02-03 Joseph S. Myers PR driver/19117 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d983553ec5b..f1c5ab23482 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-02-03 Andrew Pinski + + PR tree-opt/19763 + * gcc.c-torture/compile/pr19736.c: New test. + 2005-02-03 Giovanni Bajo PR c++/17401 diff --git a/gcc/testsuite/gcc.c-torture/compile/pr19736.c b/gcc/testsuite/gcc.c-torture/compile/pr19736.c new file mode 100644 index 00000000000..0b618b12697 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr19736.c @@ -0,0 +1,21 @@ +/* We used to ICE because we had forgot to update the immediate_uses + information after foldding the last strcpy in Reduce PHI. + This was PR tree-opt/19763. */ + +extern char *strcpy (char *, const char *); +void sdbout_one_type (char *p) +{ + int i, t = 1; + char *q; + for (i = 0; i < 2; i++) + { + strcpy (p, "1"); + p += sizeof ("1"); + } + if (t) + q = "2"; + else + q = "3"; + strcpy (p, q); +} + diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index c34ddd86264..de4006d2187 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -1108,6 +1108,8 @@ replace_immediate_uses (tree var, tree repl) if (tmp != stmt) { block_stmt_iterator si = bsi_for_stmt (stmt); + mark_new_vars_to_rename (tmp, vars_to_rename); + redirect_immediate_uses (stmt, tmp); bsi_replace (&si, tmp, true); stmt = bsi_stmt (si); } -- 2.30.2