/* Reduced from pr100244.C. */ inline void *operator new (__SIZE_TYPE__, void *__p) { return __p; } struct int_container { int i; int *addr () { return &i; } }; struct int_and_addr { int i; int *addr; int_and_addr () { addr = &i; } /* { dg-warning "overflow" } */ }; int test (int_container ic) { int_and_addr *iaddr = new (ic.addr ()) int_and_addr; /* { dg-warning "stack-based buffer overflow" } */ return iaddr->i; }