aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@gcc.gnu.org>2006-09-16 15:52:11 -0700
committerAndrew Pinski <pinskia@gcc.gnu.org>2006-09-16 15:52:11 -0700
commita9fdb86b7283d0cc50b753a184eb097366d36558 (patch)
tree8c3ff2759f55dab04d99ef5edd4a555b6fb1d37f /gcc
parent0c5e4273d39c4c0fb12a5d4062ae892a031edec7 (diff)
downloadgcc-a9fdb86b7283d0cc50b753a184eb097366d36558.zip
gcc-a9fdb86b7283d0cc50b753a184eb097366d36558.tar.gz
gcc-a9fdb86b7283d0cc50b753a184eb097366d36558.tar.bz2
re PR tree-optimization/29059 (ICE: verify_stmts failed (invalid operand to unary operator ""[0];))
2006-09-16 Andrew Pinski <pinskia@physics.uc.edu> PR tree-opt/29059 * gcc.c-torture/compile/strcpy-1.c: New test. * gcc.c-torture/compile/strcpy-2.c: New test. * gcc.c-torture/compile/memcpy-1.c: New test. * gcc.c-torture/compile/memcpy-2.c: New test. 2006-09-16 Andrew Pinski <pinskia@physics.uc.edu> PR tree-opt/29059 * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right away for the expr argument. From-SVN: r116997
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/memcpy-1.c9
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/memcpy-2.c10
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/strcpy-1.c15
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/strcpy-2.c7
-rw-r--r--gcc/tree-ssa-propagate.c3
7 files changed, 60 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index df7c5e3f..5c2cf3d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,10 +1,17 @@
+2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/29059
+ * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
+ away for the expr argument.
+
2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
+ PR tree-opt/27742
* tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
before using it for dumping after vectorizing loops.
-2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
- Jack Howarth <howarth@bromo.med.uc.edu>
+2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
+ Jack Howarth <howarth@bromo.med.uc.edu>
PR target/29030
* config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 357a379..6a27b73 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/29059
+ * gcc.c-torture/compile/strcpy-1.c: New test.
+ * gcc.c-torture/compile/strcpy-2.c: New test.
+ * gcc.c-torture/compile/memcpy-1.c: New test.
+ * gcc.c-torture/compile/memcpy-2.c: New test.
+
2006-09-16 Jack Howarth <howarth@bromo.med.uc.edu>
PR testsuite/29055
diff --git a/gcc/testsuite/gcc.c-torture/compile/memcpy-1.c b/gcc/testsuite/gcc.c-torture/compile/memcpy-1.c
new file mode 100644
index 0000000..4a4e750
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/memcpy-1.c
@@ -0,0 +1,9 @@
+static const char OggFLAC__MAPPING_VERSION_MAJOR = 1;
+void f(void)
+{
+ char synthetic_first_packet_body[10];
+ char *b = &synthetic_first_packet_body[4];
+ __builtin_memcpy (b, &OggFLAC__MAPPING_VERSION_MAJOR, (1u));
+}
+
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/memcpy-2.c b/gcc/testsuite/gcc.c-torture/compile/memcpy-2.c
new file mode 100644
index 0000000..4645ced
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/memcpy-2.c
@@ -0,0 +1,10 @@
+static const char OggFLAC__MAPPING_VERSION_MAJOR = 1;
+void f(void)
+{
+ char synthetic_first_packet_body[10];
+ char *b = synthetic_first_packet_body;
+ b+=4u;
+ __builtin_memcpy (b, &OggFLAC__MAPPING_VERSION_MAJOR, (1u));
+}
+
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/strcpy-1.c b/gcc/testsuite/gcc.c-torture/compile/strcpy-1.c
new file mode 100644
index 0000000..2c7b16a
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/strcpy-1.c
@@ -0,0 +1,15 @@
+
+
+typedef struct
+{
+ char str[20];
+}STACK;
+STACK stack[15];
+int level;
+rezero ()
+{
+ level = 0;
+ __builtin_strcpy (stack[level].str, "");
+}
+
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/strcpy-2.c b/gcc/testsuite/gcc.c-torture/compile/strcpy-2.c
new file mode 100644
index 0000000..075cdd1
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/strcpy-2.c
@@ -0,0 +1,7 @@
+char wrkstr_un[270];
+extern void
+LoadUserAlph (char *s)
+{
+ s = &wrkstr_un[0];
+ __builtin_strcpy (s, "");
+};
diff --git a/gcc/tree-ssa-propagate.c b/gcc/tree-ssa-propagate.c
index 00d5a94..111b39d 100644
--- a/gcc/tree-ssa-propagate.c
+++ b/gcc/tree-ssa-propagate.c
@@ -588,7 +588,8 @@ set_rhs (tree *stmt_p, tree expr)
&& !is_gimple_val (TREE_OPERAND (TREE_OPERAND (expr, 0), 1)))
return false;
}
- else if (code == COMPOUND_EXPR)
+ else if (code == COMPOUND_EXPR
+ || code == MODIFY_EXPR)
return false;
switch (TREE_CODE (stmt))