diff options
author | Jeff Law <law@redhat.com> | 2013-09-08 21:07:28 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2013-09-08 21:07:28 -0600 |
commit | 4f4b0b73e9c56aa71acd787c8eb40121fbfa80e6 (patch) | |
tree | 9de6c025b07b3b64c45272efcbe12c7de6629d7c | |
parent | 1db60b9ca827f9edceb2bd537c3d3220a3d5eb86 (diff) | |
download | gcc-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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr58340.c | 16 | ||||
-rw-r--r-- | gcc/tree-ssa-threadedge.c | 3 |
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, |