diff options
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr100934.c | 21 | ||||
-rw-r--r-- | gcc/tree-ssa-dom.c | 3 |
2 files changed, 23 insertions, 1 deletions
diff --git a/gcc/testsuite/gcc.dg/torture/pr100934.c b/gcc/testsuite/gcc.dg/torture/pr100934.c new file mode 100644 index 0000000..43b7884 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr100934.c @@ -0,0 +1,21 @@ +/* { dg-do run } */ + +int a, b, c, d, e; +int main() +{ + int f = 0, g = 0; + for (; f < 2; f++) + { + int h, i; + for (h = 0; h < 2; h++) + { + b = e = g ? a % g : 0; + c = d; + for (i = 0; i < 1; i++) + g = 0; + for (; g < 2; g++) + ; + } + } + return 0; +} diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c index 075b1cc..c231e6c 100644 --- a/gcc/tree-ssa-dom.c +++ b/gcc/tree-ssa-dom.c @@ -727,7 +727,8 @@ pass_dominator::execute (function *fun) gcc.dg/tree-ssa/pr21417.c can't be threaded if loop preheader is missing. We should improve jump threading in future then LOOPS_HAVE_PREHEADERS won't be needed here. */ - loop_optimizer_init (LOOPS_HAVE_PREHEADERS | LOOPS_HAVE_SIMPLE_LATCHES); + loop_optimizer_init (LOOPS_HAVE_PREHEADERS | LOOPS_HAVE_SIMPLE_LATCHES + | LOOPS_HAVE_MARKED_IRREDUCIBLE_REGIONS); /* We need accurate information regarding back edges in the CFG for jump threading; this may include back edges that are not part of |