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