re PR tree-optimization/49615 (internal compiler error: verify_stmts failed / LHS in noreturn call with pointer-to-never-returning-member)
2011-07-04 Richard Guenther <rguenther@suse.de> PR tree-optimization/49615 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix basic-block index check. * g++.dg/torture/pr49615.C: New testcase. From-SVN: r175808
This commit is contained in:
parent
1363965228
commit
97ba76388e
|
@ -1,3 +1,9 @@
|
|||
2011-07-04 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/49615
|
||||
* tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
|
||||
basic-block index check.
|
||||
|
||||
2011-06-30 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
PR tree-optimization/49572
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2011-07-04 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/49615
|
||||
* g++.dg/torture/pr49615.C: New testcase.
|
||||
|
||||
2011-06-30 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/38752
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-g" } */
|
||||
|
||||
template <class T>
|
||||
static inline bool Dispatch (T* obj, void (T::*func) ())
|
||||
{
|
||||
(obj->*func) ();
|
||||
}
|
||||
class C
|
||||
{
|
||||
bool f (int);
|
||||
void g ();
|
||||
};
|
||||
bool C::f (int n)
|
||||
{
|
||||
bool b;
|
||||
switch (n)
|
||||
{
|
||||
case 0:
|
||||
b = Dispatch (this, &C::g);
|
||||
case 1:
|
||||
b = Dispatch (this, &C::g);
|
||||
}
|
||||
}
|
||||
void C::g ()
|
||||
{
|
||||
for (;;) { }
|
||||
}
|
||||
|
|
@ -496,7 +496,7 @@ split_bbs_on_noreturn_calls (void)
|
|||
BB is present in the cfg. */
|
||||
if (bb == NULL
|
||||
|| bb->index < NUM_FIXED_BLOCKS
|
||||
|| bb->index >= n_basic_blocks
|
||||
|| bb->index >= last_basic_block
|
||||
|| BASIC_BLOCK (bb->index) != bb
|
||||
|| last_stmt (bb) == stmt
|
||||
|| !gimple_call_noreturn_p (stmt))
|
||||
|
|
Loading…
Reference in New Issue