]> gcc.gnu.org Git - gcc.git/blame - gcc/testsuite/g++.old-deja/g++.other/new7.C
spec4.C: Remove stray semicolon.
[gcc.git] / gcc / testsuite / g++.old-deja / g++.other / new7.C
CommitLineData
3f41ffd8
MM
1// Origin: philip_martin@ntlworld.com
2
3#include <new>
4
5extern "C" void abort();
6
7bool new_flag = false;
8bool delete_flag = false;
9
10struct X {
11 X()
12 {
13 throw 1;
14 }
15 void* operator new ( std::size_t n ) throw ( std::bad_alloc )
16 {
17 new_flag = true;
18 return ::operator new( n );
19 }
20 void operator delete( void* p, std::size_t n ) throw()
21 {
22 delete_flag = true;
23 ::operator delete( p );
24 }
25};
26
27int
28main()
29{
30 try
31 {
32 X* x = new X; // gcc 3.0 fails to call operator delete when X::X throws
33 }
34 catch ( ... )
35 {
36 }
37 if ( ! new_flag || ! delete_flag )
38 ::abort();
39}
This page took 0.601623 seconds and 5 git commands to generate.