From ca92b9d288e74b35970d2dfac26df708928eceb7 Mon Sep 17 00:00:00 2001 From: pinskia Date: Tue, 11 Oct 2005 15:11:02 +0000 Subject: [PATCH] 2005-10-11 Andrew Pinski PR tree-opt/23946 * gcc.c-torture/compile/pr23946.c: New test. 2005-10-11 Andrew Pinski PR tree-opt/23946 * tree-ssa-ccp.c (execute_fold_all_builtins): Call mark_new_vars_to_rename instead of update_stmt. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105239 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++ gcc/testsuite/ChangeLog | 5 ++ gcc/testsuite/gcc.c-torture/compile/pr23946.c | 72 +++++++++++++++++++ gcc/tree-ssa-ccp.c | 2 +- 4 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.c-torture/compile/pr23946.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e1b2fca07251..c4c063b39580 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-10-11 Andrew Pinski + + 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 * config/bfin/crti.s (__init, __fini): Renamed from _init, _fini. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8ebe56ea2356..96a21e9d9862 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-10-11 Andrew Pinski + + PR tree-opt/23946 + * gcc.c-torture/compile/pr23946.c: New test. + 2005-10-11 Jakub Jelinek * 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 000000000000..ecaa5b1635c2 --- /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 43b8129109b0..e9e1c0b9e42e 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; -- 2.47.2