diff options
author | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-09-16 22:52:11 +0000 |
---|---|---|
committer | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-09-16 22:52:11 +0000 |
commit | f5911bbe2b2da23e42c796b432dba08f111b2a3f (patch) | |
tree | 8c3ff2759f55dab04d99ef5edd4a555b6fb1d37f | |
parent | 5be4eedfc49d27f04440dea70e7b42cf524fd2dc (diff) | |
download | gcc-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/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/memcpy-1.c | 9 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/memcpy-2.c | 10 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/strcpy-1.c | 15 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/strcpy-2.c | 7 | ||||
-rw-r--r-- | gcc/tree-ssa-propagate.c | 3 |
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)) |