Add __builtion_unreachable to vector::size(), vector::capacity()
[official-gcc.git] / gcc / testsuite / g++.dg / cpp1y / context-conv1.C
blobfe20cab3c2686c97ca7f2d3e8d7c67b0467f2134
1 // N3323
3 #define assert(E) if(!(E))__builtin_abort();
5 template<class T>
6 class zero_init
8 public:
9   zero_init( )
10     : val( static_cast<T>(0) ) { }
11   zero_init( T val ) : val( val )
12   { }
13   operator T & ( ) { return val; }
14   operator T ( ) const { return val; }
15 private:
16   T val;
19 void f()
21   zero_init<int*> p; assert( p == 0 );
22   p = new int(7);
23   assert( *p == 7 );
24   delete p; // error!
26   zero_init<int> i; assert( i == 0 );
27   i = 7;
28   assert( i == 7 );
29   switch( i ) {  } // error!
31   int *vp = new int[i];