From: Jakub Jelinek Date: Thu, 4 Nov 2010 18:45:06 +0000 (+0100) Subject: re PR tree-optimization/46233 (ICE: verify_flow_info failed: control flow in the... X-Git-Tag: releases/gcc-4.6.0~2913 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=269c80f2a6b982cdc8364e1d2885c7ce5e8d6b9a;p=thirdparty%2Fgcc.git re PR tree-optimization/46233 (ICE: verify_flow_info failed: control flow in the middle of basic block 3 with -foptimize-sibling-calls) PR tree-optimization/46233 * ipa-pure-const.c (local_pure_const): Do noreturn discovery after calling analyze_function, not before. * gcc.dg/pr46233.c: New test. From-SVN: r166324 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7351294329bb..8c4636838052 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2010-11-04 Jakub Jelinek + PR tree-optimization/46233 + * ipa-pure-const.c (local_pure_const): Do noreturn discovery + after calling analyze_function, not before. + PR target/46234 * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref instead of build_va_arg_indirect_ref. diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c index d671643116ec..c122435391f0 100644 --- a/gcc/ipa-pure-const.c +++ b/gcc/ipa-pure-const.c @@ -1571,7 +1571,9 @@ local_pure_const (void) && skip) return 0; - /* First do NORETURN discovery. */ + l = analyze_function (node, false); + + /* Do NORETURN discovery. */ if (!skip && !TREE_THIS_VOLATILE (current_function_decl) && EDGE_COUNT (EXIT_BLOCK_PTR->preds) == 0) { @@ -1587,7 +1589,6 @@ local_pure_const (void) changed = true; } - l = analyze_function (node, false); switch (l->pure_const_state) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ddff9cf6ec5a..90c2ed22046c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-11-04 Jakub Jelinek + + PR tree-optimization/46233 + * gcc.dg/pr46233.c: New test. + 2010-11-04 Iain Sandoe * objc.dg/property/property-2.m: Deleted. diff --git a/gcc/testsuite/gcc.dg/pr46233.c b/gcc/testsuite/gcc.dg/pr46233.c new file mode 100644 index 000000000000..8916e4bdd372 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr46233.c @@ -0,0 +1,11 @@ +/* PR tree-optimization/46233 */ +/* { dg-do compile } */ +/* { dg-options "-O -fno-tree-dce" } */ + +int +foo () +{ + int i = 0; + while (1) + i += foo (); +}