aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTeresa Johnson <tejohnson@google.com>2014-11-14 06:35:35 +0000
committerTeresa Johnson <tejohnson@google.com>2014-11-14 06:35:35 +0000
commitf7aae05043a55055bfd7e3bd8e75af31c862854a (patch)
treeea02bcd11f3886c7e82c6974cae8d65abcde4a30
parentfca95a4224a0a0f2ebfc05f2ae28d7599cdf64ac (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/ChangeLog10
-rw-r--r--gcc/testsuite/ChangeLog10
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr63841.C7
-rw-r--r--gcc/tree-ssa-strlen.c2
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);