/* { dg-do compile } */ | |
/* { dg-options "-O2" } */ | |
/* Ensure that we don't crash when people decide to return the address of padding. */ | |
struct A | |
{ | |
char c; | |
int i; | |
}; | |
A a; | |
struct B | |
{ | |
char c, d; | |
}; | |
union C | |
{ | |
A *p; | |
B *q; | |
C() : p(&a) {} | |
char& foo() { return q->d; } | |
}; | |
void bar() { C().foo() = 0; } | |