OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.old-deja/] [g++.other/] [new7.C] - Blame information for rev 749

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 699 jeremybenn
// { dg-do run  }
2
// Origin: philip_martin@ntlworld.com
3
 
4
#include 
5
 
6
extern "C" void abort();
7
 
8
bool new_flag = false;
9
bool delete_flag = false;
10
 
11
struct X {
12
  X()
13
  {
14
    throw 1;
15
  }
16
  void* operator new ( std::size_t n ) throw ( std::bad_alloc )
17
  {
18
    new_flag = true;
19
    return ::operator new( n );
20
  }
21
  void operator delete( void* p, std::size_t n ) throw()
22
  {
23
    delete_flag = true;
24
    ::operator delete( p );
25
  }
26
};
27
 
28
int
29
main()
30
{
31
  try
32
    {
33
      X* x = new X; // gcc 3.0 fails to call operator delete when X::X throws
34
    }
35
  catch ( ... )
36
    {
37
    }
38
  if ( ! new_flag || ! delete_flag )
39
    ::abort();
40
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.