re PR tree-optimization/23164 (ICE in cleanup_tree_cfg with -O -fno-exceptions)

PR 23164
	* tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the
	number of calls to cleanup_tree_cfg_1.

testsuite/ChangeLog

	PR 23164
	* g++.dg/tree-ssa/pr23164.C: New test.

From-SVN: r102666
This commit is contained in:
Diego Novillo 2005-08-02 19:12:52 +00:00 committed by Diego Novillo
parent 5a0067000c
commit 78234a860c
4 changed files with 29 additions and 12 deletions

View File

@ -1,3 +1,9 @@
2005-08-02 Diego Novillo <dnovillo@redhat.com>
PR 23164
* tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the
number of calls to cleanup_tree_cfg_1.
2005-08-02 Martin Reinecke <martin@mpa-garching.mpg.de>
* doc/invoke.texi: document file extensions .F90 and .F95

View File

@ -1,3 +1,8 @@
2005-08-02 Diego Novillo <dnovillo@redhat.com>
PR 23164
* g++.dg/tree-ssa/pr23164.C: New test.
2005-08-02 Diego Novillo <dnovillo@redhat.com>
* gcc.dg/tree-ssa/pr23192.c: New test.

View File

@ -0,0 +1,16 @@
/* { dg-do compile } */
/* { dg-options "-O2" } */
bool f();
struct S {
S();
~S();
};
void g() {
for (;;) {
S s1, s2, s3, s4, s5, s6;
if (f())
continue;
if (f())
return;
}
}

View File

@ -529,22 +529,12 @@ bool
cleanup_tree_cfg (void)
{
bool retval;
int i;
timevar_push (TV_TREE_CLEANUP_CFG);
for (retval = true, i = 0; i < 5 && retval; i++)
do
retval = cleanup_tree_cfg_1 ();
#ifdef ENABLE_CHECKING
if (retval)
{
gcc_assert (!cleanup_control_flow ());
gcc_assert (!delete_unreachable_blocks ());
if (optimize > 0)
gcc_assert (!cleanup_forwarder_blocks ());
}
#endif
while (retval);
compact_blocks ();