// PR c++/54984 // { dg-do run } int n = 1; void* operator new(__SIZE_TYPE__) { n = -1; return &n; } template struct Foo { Foo() : x(new int) { if (*x != -1) __builtin_abort(); } int* x; }; int main() { Foo foo; }