1 // { dg-do run { target c++17 } } 2 3 #include <new> 4 5 struct alignas(64) A { 6 int i; AA7 A() { throw 42; } 8 }; 9 struct B { int i; } b; 10 new(std::size_t s,std::align_val_t a,B b)11void *operator new (std::size_t s, std::align_val_t a, B b) 12 { 13 return operator new (s, a); 14 } 15 16 bool deleted = false; delete(void * p,std::align_val_t,B)17void operator delete (void *p, std::align_val_t, B) 18 { 19 deleted = true; 20 } 21 main()22int main() 23 { 24 try { 25 A *p = new (b) A; 26 __builtin_abort (); 27 } catch (...) {} 28 if (!deleted) 29 __builtin_abort (); 30 } 31