1// We allocate a cookie to help us run the destructor if it's non-trivial, 2// even if it's deleted. 3// { dg-do run { target c++11 } } 4 5struct B { ~B() {} }; 6struct A 7{ 8 B b; 9 ~A() = delete; 10}; 11 12void *p = 0; 13void *operator new[](__SIZE_TYPE__ t) 14{ 15 p = ::operator new (t); 16 return p; 17} 18 19int main() 20{ 21 A* ap = new A[5]; 22 return ap == p; 23} 24