// { dg-do run } | |
struct Lower { | |
const int& ref; | |
Lower(const int& ref) : ref(ref) { } | |
}; | |
struct Middle : public virtual Lower { | |
Middle(const int& ref) : Lower(ref) { } | |
}; | |
struct Upper : public Middle { | |
Upper(const int& ref) : Lower(ref), Middle(ref) { } | |
int get() { return ref; } | |
}; | |
extern "C" void abort (void); | |
int main() | |
{ | |
int i = 0; | |
Upper upper(i); | |
if (upper.get() != 0) | |
abort (); | |
return 0; | |
} |