re PR rtl-optimization/50212 (ICE: in ei_container, at basic-block.h:610 with -fnon-call-exceptions -freorder-blocks-and-partition)
PR rtl-optimization/50212 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): Skip also lps with NULL landing_pad or non-LABEL_P landing_pad. * g++.dg/other/pr50212.C: New test. From-SVN: r178785
This commit is contained in:
parent
7d8102762c
commit
b58d339116
@ -1,5 +1,9 @@
|
||||
2011-09-12 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR rtl-optimization/50212
|
||||
* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
|
||||
Skip also lps with NULL landing_pad or non-LABEL_P landing_pad.
|
||||
|
||||
PR debug/50299
|
||||
* calls.c (load_register_parameters): Use use_reg_mode instead
|
||||
of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Basic block reordering routines for the GNU compiler.
|
||||
Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010
|
||||
Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
@ -1315,7 +1315,9 @@ find_rarely_executed_basic_blocks_and_crossing_edges (void)
|
||||
{
|
||||
bool all_same, all_diff;
|
||||
|
||||
if (lp == NULL)
|
||||
if (lp == NULL
|
||||
|| lp->landing_pad == NULL_RTX
|
||||
|| !LABEL_P (lp->landing_pad))
|
||||
continue;
|
||||
|
||||
all_same = all_diff = true;
|
||||
|
@ -1,3 +1,8 @@
|
||||
2011-09-12 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR rtl-optimization/50212
|
||||
* g++.dg/other/pr50212.C: New test.
|
||||
|
||||
2011-09-12 Georg-Johann Lay <avr@gjlay.de>
|
||||
|
||||
PR target/43746
|
||||
|
17
gcc/testsuite/g++.dg/other/pr50212.C
Normal file
17
gcc/testsuite/g++.dg/other/pr50212.C
Normal file
@ -0,0 +1,17 @@
|
||||
// PR rtl-optimization/50212
|
||||
// { dg-do compile }
|
||||
// { dg-require-effective-target freorder }
|
||||
// { dg-options "-O -fnon-call-exceptions -ftrapv -freorder-blocks-and-partition" }
|
||||
|
||||
void
|
||||
foo (int n)
|
||||
{
|
||||
try
|
||||
{
|
||||
int i = 0;
|
||||
while (i++ < n);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user