aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@physics.uc.edu>2005-10-11 15:11:02 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2005-10-11 08:11:02 -0700
commit386cfa6f3f1aeba33362f4f3717c2df2980ade6c (patch)
treedb3113e60bb2836eefd2d2c6aceab2b532fe25f8 /gcc
parentace0544ad6c8ab35aa388d9c5e5917695e570491 (diff)
downloadgcc-386cfa6f3f1aeba33362f4f3717c2df2980ade6c.zip
gcc-386cfa6f3f1aeba33362f4f3717c2df2980ade6c.tar.gz
gcc-386cfa6f3f1aeba33362f4f3717c2df2980ade6c.tar.bz2
re PR tree-optimization/23946 (ICE: verify_ssa failed ("definition ... follows the use"))
2005-10-11 Andrew Pinski <pinskia@physics.uc.edu> PR tree-opt/23946 * gcc.c-torture/compile/pr23946.c: New test. 2005-10-11 Andrew Pinski <pinskia@physics.uc.edu> PR tree-opt/23946 * tree-ssa-ccp.c (execute_fold_all_builtins): Call mark_new_vars_to_rename instead of update_stmt. From-SVN: r105239
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr23946.c72
-rw-r--r--gcc/tree-ssa-ccp.c2
4 files changed, 84 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e1b2fca..c4c063b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-10-11 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/23946
+ * tree-ssa-ccp.c (execute_fold_all_builtins): Call
+ mark_new_vars_to_rename instead of update_stmt.
+
2005-10-11 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/crti.s (__init, __fini): Renamed from _init, _fini.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8ebe56e..96a21e9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-10-11 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/23946
+ * gcc.c-torture/compile/pr23946.c: New test.
+
2005-10-11 Jakub Jelinek <jakub@redhat.com>
* g++.dg/opt/mmx2.C: New test.
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr23946.c b/gcc/testsuite/gcc.c-torture/compile/pr23946.c
new file mode 100644
index 0000000..ecaa5b1
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr23946.c
@@ -0,0 +1,72 @@
+
+extern int foo (void);
+
+int
+avi_parse_comments (int fd, char *buf, int space_left)
+{
+ int len = 0, readlen = 0, k;
+ char *data, *c, *d;
+
+ if (fd <= 0 || !buf || space_left <= 0)
+ return -1;
+
+ memset (buf, 0, space_left);
+
+ readlen = foo ();
+ if (!(data = malloc (readlen * sizeof (char) + 1)))
+ return -1;
+
+ c = data;
+ space_left--;
+
+ while (len < space_left)
+ {
+ if (!c || *c == '\0')
+ break;
+ else if (*c == 'I')
+ {
+ d = c + 4;
+
+ k = 0;
+ while (d[k] != '\r' && d[k] != '\n' && d[k] != '\0')
+ ++k;
+ if (k >= space_left)
+ return len;
+
+
+ memcpy (buf + len, c, 4);
+ len += 4;
+
+
+ long2str (buf + len, k + 1);
+ len += 4;
+
+
+ memcpy (buf + len, d, k);
+
+ *(buf + len + k + 1) = '\0';
+
+
+ if ((k + 1) & 1)
+ {
+ k++;
+ *(buf + len + k + 1) = '\0';
+ }
+ len += k + 1;
+
+
+ while (*c != '\n' && *c != '\0')
+ ++c;
+ if (*c != '\0')
+ ++c;
+ else
+ break;
+
+ }
+ }
+ free (data);
+
+ return len;
+}
+
+
diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
index 43b8129..e9e1c0b 100644
--- a/gcc/tree-ssa-ccp.c
+++ b/gcc/tree-ssa-ccp.c
@@ -2460,7 +2460,7 @@ execute_fold_all_builtins (void)
gcc_assert (ok);
}
}
- update_stmt (*stmtp);
+ mark_new_vars_to_rename (*stmtp);
if (maybe_clean_or_replace_eh_stmt (old_stmt, *stmtp)
&& tree_purge_dead_eh_edges (bb))
cfg_changed = true;