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)11 void *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)17 void operator delete (void *p, std::align_val_t, B)
18 {
19   deleted = true;
20 }
21 
main()22 int main()
23 {
24   try {
25     A *p = new (b) A;
26     __builtin_abort ();
27   } catch (...) {}
28   if (!deleted)
29     __builtin_abort ();
30 }
31