// PR ipa/71146 | |
// { dg-do compile } | |
// { dg-options "-O3" } | |
typedef enum { X } E; | |
struct A { | |
virtual void bar (); | |
}; | |
struct B { | |
virtual E fn (const char *, int, int *) = 0; | |
}; | |
struct C : A, B { | |
E fn (const char *, int, int *); | |
void fn2 (); | |
B *foo; | |
}; | |
void C::fn2 () { | |
if (!foo) | |
return; | |
foo->fn (0, 0, 0); | |
} | |
E | |
C::fn (const char *, int, int *) | |
{ | |
fn2 (); | |
foo = 0; | |
fn (0, 0, 0); | |
return X; | |
} |