aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2013-09-08 21:07:28 -0600
committerJeff Law <law@gcc.gnu.org>2013-09-08 21:07:28 -0600
commit4f4b0b73e9c56aa71acd787c8eb40121fbfa80e6 (patch)
tree9de6c025b07b3b64c45272efcbe12c7de6629d7c /gcc
parent1db60b9ca827f9edceb2bd537c3d3220a3d5eb86 (diff)
downloadgcc-4f4b0b73e9c56aa71acd787c8eb40121fbfa80e6.zip
gcc-4f4b0b73e9c56aa71acd787c8eb40121fbfa80e6.tar.gz
gcc-4f4b0b73e9c56aa71acd787c8eb40121fbfa80e6.tar.bz2
tree-ssa-threadedge.c (thread_across_edge): Fix initialization of 'found'.
* tree-ssa-threadedge.c (thread_across_edge): Fix initialization of 'found'. * gcc.c-torture/compile/pr58340.c: New test. From-SVN: r202379
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr58340.c16
-rw-r--r--gcc/tree-ssa-threadedge.c3
4 files changed, 28 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6f3e0b8..c7ac8f0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2013-09-08 Jeff Law <law@redhat.com>
+
+ PR bootstrap/58340
+ * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
+ of 'found'.
+
2013-09-08 Andi Kleen <ak@linux.intel.com>
* tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 92eaeab..756611d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2013-09-08 Jeff Law <law@redhat.com>
+
+ * gcc.c-torture/compile/pr58340.c: New test.
+
2013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
* g++.dg/debug/ra1.C: New test.
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr58340.c b/gcc/testsuite/gcc.c-torture/compile/pr58340.c
new file mode 100644
index 0000000..ca3ccda
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr58340.c
@@ -0,0 +1,16 @@
+int a, b, c, d;
+
+int foo (int x, int y)
+{
+ return y == 0 ? x : 1 % y;
+}
+
+int main ()
+{
+ c = 0 || a;
+
+ for (;;)
+ b = foo (d, c) && 1;
+
+ return 0;
+}
diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c
index afdd0af..f2051d7 100644
--- a/gcc/tree-ssa-threadedge.c
+++ b/gcc/tree-ssa-threadedge.c
@@ -978,7 +978,7 @@ thread_across_edge (gimple dummy_cond,
{
edge taken_edge;
edge_iterator ei;
- bool found = false;
+ bool found;
bitmap visited = BITMAP_ALLOC (NULL);
/* Look at each successor of E->dest to see if we can thread through it. */
@@ -994,6 +994,7 @@ thread_across_edge (gimple dummy_cond,
of E->dest. */
path.safe_push (e);
path.safe_push (taken_edge);
+ found = false;
if ((e->flags & EDGE_DFS_BACK) == 0
|| ! cond_arg_set_in_bb (path[path.length () - 1], e->dest))
found = thread_around_empty_blocks (taken_edge,