summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>2006-09-16 22:52:11 +0000
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>2006-09-16 22:52:11 +0000
commitf5911bbe2b2da23e42c796b432dba08f111b2a3f (patch)
tree8c3ff2759f55dab04d99ef5edd4a555b6fb1d37f
parent5be4eedfc49d27f04440dea70e7b42cf524fd2dc (diff)
downloadgcc-f5911bbe2b2da23e42c796b432dba08f111b2a3f.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116997 138bc75d-0d04-0410-961f-82ee72b054a4
-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 df7c5e3f384..5c2cf3d8b2c 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 357a379bbe9..6a27b73c134 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 00000000000..4a4e7509654
--- /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 00000000000..4645ced597e
--- /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 00000000000..2c7b16a08d8
--- /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 00000000000..075cdd1f6ab
--- /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 00d5a945889..111b39d3ab3 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))