Rebase.
[official-gcc.git] / gcc / testsuite / g++.dg / init / array25.C
blob1ab2725d7cf5985c67bbadf877d5e2c3731b15d0
1 // related to PR c++/38233
2 // test for value-init of a member array
3 // { dg-do run }
5 struct elt 
7   virtual void f();
8   char c;
9 };
11 void elt::f() { }
13 struct foo {
14   elt buffer[500];
15   foo() ;
16   bool check () const;
19 foo::foo ()
20   : buffer()
23 bool foo::check () const
25   for (unsigned ix = sizeof (buffer)/ sizeof (buffer[0]); ix--;)
26     if (buffer[ix].c)
27       return false;
28   return true;
31 inline void *operator new (__SIZE_TYPE__ size, void *p)
33   return p;
36 char heap[sizeof(elt[500])];
38 int main ()
40   for (unsigned ix = sizeof (heap); ix--;)
41     heap[ix] = ix;
43   foo *f = new (heap) foo ();
44   if (!f->check ())
45     return 3;
46   return 0;
49