diff options
author | Teresa Johnson <tejohnson@google.com> | 2014-11-14 06:35:35 +0000 |
---|---|---|
committer | Teresa Johnson <tejohnson@google.com> | 2014-11-14 06:35:35 +0000 |
commit | f7aae05043a55055bfd7e3bd8e75af31c862854a (patch) | |
tree | ea02bcd11f3886c7e82c6974cae8d65abcde4a30 | |
parent | fca95a4224a0a0f2ebfc05f2ae28d7599cdf64ac (diff) |
2014-11-13 Teresa Johnson <tejohnson@google.com>
gcc:
PR tree-optimization/63841
* tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
2014-11-13 Teresa Johnson <tejohnson@google.com>
gcc/testsuite:
PR tree-optimization/63841
* g++.dg/tree-ssa/pr63841.C: Remove prints, use abort.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@217537 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/tree-ssa/pr63841.C | 7 | ||||
-rw-r--r-- | gcc/tree-ssa-strlen.c | 2 |
4 files changed, 23 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1d20459bc7a..b7b72dabccf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-11-13 Teresa Johnson <tejohnson@google.com> + + PR tree-optimization/63841 + * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers. + 2014-11-14 Bin Cheng <bin.cheng@arm.com> * timevar.def (TV_SCHED_FUSION): New time var. @@ -106,6 +111,11 @@ 2014-11-13 Teresa Johnson <tejohnson@google.com> PR tree-optimization/63841 + * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers. + +2014-11-13 Teresa Johnson <tejohnson@google.com> + + PR tree-optimization/63841 * tree.c (initializer_zerop): A clobber does not zero initialize. 2014-11-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b1e9bc39f08..0c2e465b6ca 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-11-13 Teresa Johnson <tejohnson@google.com> + + PR tree-optimization/63841 + * g++.dg/tree-ssa/pr63841.C: Remove prints, use abort. + 2014-11-14 Bin Cheng <bin.cheng@arm.com> * gcc.target/arm/ldrd-strd-pair-1.c: New test. @@ -11,6 +16,11 @@ 2014-11-13 Teresa Johnson <tejohnson@google.com> PR tree-optimization/63841 + * g++.dg/tree-ssa/pr63841.C: Remove prints, use abort. + +2014-11-13 Teresa Johnson <tejohnson@google.com> + + PR tree-optimization/63841 * g++.dg/tree-ssa/pr63841.C: New test. 2014-11-13 Richard Biener <rguenther@suse.de> diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr63841.C b/gcc/testsuite/g++.dg/tree-ssa/pr63841.C index 466e320d431..2a2c78f9fb2 100644 --- a/gcc/testsuite/g++.dg/tree-ssa/pr63841.C +++ b/gcc/testsuite/g++.dg/tree-ssa/pr63841.C @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2" } */ -#include <cstdio> #include <string> std::string __attribute__ ((noinline)) comp_test_write() { @@ -29,10 +28,8 @@ std::string __attribute__ ((noinline)) comp_test_write_good() { int main() { std::string good = comp_test_write_good(); - printf("expected: %hx\n", *(short*)good.c_str()); - std::string bad = comp_test_write(); - printf("got: %hx\n", *(short*)bad.c_str()); - return good != bad; + if (good != bad) + __builtin_abort (); } diff --git a/gcc/tree-ssa-strlen.c b/gcc/tree-ssa-strlen.c index c224fd9a3f8..3789e30449d 100644 --- a/gcc/tree-ssa-strlen.c +++ b/gcc/tree-ssa-strlen.c @@ -1934,7 +1934,7 @@ strlen_optimize_stmt (gimple_stmt_iterator *gsi) break; } } - else if (is_gimple_assign (stmt)) + else if (is_gimple_assign (stmt) && !gimple_clobber_p (stmt)) { tree lhs = gimple_assign_lhs (stmt); |