Rebase.
[official-gcc.git] / gcc / testsuite / g++.dg / init / value3.C
blob487baabeceb68af3f3eb91c37f6e54fb58b1b041
1 // Testcase for value-initialization in new-expressions.
2 // { dg-do run }
4 #include <stdlib.h>
5 #include <string.h>
7 // Make sure that we return memory that isn't already set to 0.
8 void *operator new(size_t s)
10   void *p = malloc (s);
11   memset (p, 42, s);
12   return p;
15 struct A { A() {} ~A() {} };
16 struct B { A a; int i; };
18 int main()
20   B *p = new B();
21   if (p->i != 0)
22     abort();
24   p = new B[2]();
25   if (p[0].i != 0 || p[1].i != 0)
26     abort();
28   B(*p2)[2] = new B[2][2]();
29   if (p2[0][0].i != 0 || p2[0][1].i != 0)
30     abort();