| // { 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; | |
| } |