Commit b58d3391 by Jakub Jelinek Committed by Jakub Jelinek

re PR rtl-optimization/50212 (ICE: in ei_container, at basic-block.h:610 with…

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
parent 7d810276
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
/* 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;
......
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
......
// 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 (...)
{
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment