Commit 1da7d8c0 by Eric Botcazou

re PR tree-optimization/47420 (ICE in calc_dfs_tree during RESX lowering)

	PR tree-optimization/47420
	* ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.

From-SVN: r170061
parent a26e8df4
2011-02-11 Pat Haugen <pthaugen@us.ibm.com>
2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
PR tree-optimization/47420
* ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
2011-02-11 Pat Haugen <pthaugen@us.ibm.com>
PR rtl-optimization/47614
* rtl.h (check_for_inc_dec): Declare.
......
......@@ -643,11 +643,10 @@ visit_bb (basic_block bb, basic_block return_bb,
into different partitions. This would require tracking of
EH regions and checking in consider_split_point if they
are not used elsewhere. */
if (gimple_code (stmt) == GIMPLE_RESX
&& stmt_can_throw_external (stmt))
if (gimple_code (stmt) == GIMPLE_RESX)
{
if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file, "Cannot split: external resx.\n");
fprintf (dump_file, "Cannot split: resx.\n");
can_split = false;
}
if (gimple_code (stmt) == GIMPLE_EH_DISPATCH)
......
2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
* g++.dg/opt/inline17.C: New test.
2011-02-11 Tobias Burnus <burnus@net-b.de>
PR fortran/47550
......
// PR tree-optimization/47420
// Testcase by Yu Simin <silver24k@gmail.com>
// { dg-do compile }
// { dg-options "-O2" }
class fooControlBase
{
public:
fooControlBase() { }
virtual ~fooControlBase();
};
class fooControl : public fooControlBase
{
public:
fooControl() { }
};
class sfTextEntryBase
{
public:
sfTextEntryBase() { }
virtual ~sfTextEntryBase();
};
class sfTextEntry : public sfTextEntryBase
{
public:
sfTextEntry()
{
}
};
class sfTextAreaBase
{
public:
sfTextAreaBase() { }
virtual ~sfTextAreaBase() { }
protected:
};
class sfTextCtrlBase : public fooControl,
public sfTextAreaBase,
public sfTextEntry
{
public:
sfTextCtrlBase() { }
virtual ~sfTextCtrlBase() { }
};
class sfTextCtrl : public sfTextCtrlBase
{
public:
sfTextCtrl(void* parent)
{
Create(parent);
}
virtual ~sfTextCtrl();
bool Create(void *parent);
};
sfTextCtrl* CreateTextCtrl()
{
return new sfTextCtrl(0);
}
void foo ()
{
new sfTextCtrl(0);
}
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