diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2005-02-03 15:13:45 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2005-02-03 07:13:45 -0800 |
commit | 50d4a707c02099a9344ea36960788c99c4b163a6 (patch) | |
tree | be6a57b1e00235e43445d3077e021776d553eeba /gcc | |
parent | cd21f044758d49ece1d54376aac465154f46dbab (diff) | |
download | gcc-50d4a707c02099a9344ea36960788c99c4b163a6.zip gcc-50d4a707c02099a9344ea36960788c99c4b163a6.tar.gz gcc-50d4a707c02099a9344ea36960788c99c4b163a6.tar.bz2 |
re PR tree-optimization/19736 (ICE with type mismatch between SSA_NAME and its symbol)
2005-02-03 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/19763
* gcc.c-torture/compile/pr19736.c: New test.
2005-02-03 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/19736
* tree-ssa.c (replace_immediate_uses): Update the immediate_uses
information for the new statement.
From-SVN: r94658
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/compile/pr19736.c | 21 | ||||
-rw-r--r-- | gcc/tree-ssa.c | 2 |
4 files changed, 34 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 465e2e9..b0561fd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-02-03 Andrew Pinski <pinskia@physics.uc.edu> + + 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 <joseph@codesourcery.com> PR driver/19117 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d983553..f1c5ab2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-02-03 Andrew Pinski <pinskia@physics.uc.edu> + + PR tree-opt/19763 + * gcc.c-torture/compile/pr19736.c: New test. + 2005-02-03 Giovanni Bajo <giovannibajo@gcc.gnu.org> 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 0000000..0b618b1 --- /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 c34ddd8..de4006d 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); } |