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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.old-deja/] [g++.eh/] [cleanup2.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
//  Copyright (C) 1999 Free Software Foundation, Inc.
3
//  Contributed by Nathan Sidwell 21 Nov 1999 
4
 
5
// make sure we don't call base dtors, if we failed to call the
6
// base ctor due to exception throwing
7
 
8
#include 
9
 
10
static bool bad = false;
11
 
12
static int thrower ()
13
{
14
  printf ("in %s\n", __PRETTY_FUNCTION__);
15
  throw 0;
16
  return 0;
17
}
18
 
19
struct X
20
{
21
  X (int) throw (int);
22
  ~X () throw ();
23
};
24
 
25
X::X (int) throw (int)
26
  {printf ("in ctor X %s\n", __PRETTY_FUNCTION__); bad = true;}
27
X::~X () throw ()
28
  {printf ("in dtor X %s\n", __PRETTY_FUNCTION__); bad = true;}
29
 
30
struct X1 {};
31
struct Y : X
32
{
33
  Y() throw (int);
34
  ~Y() throw ();
35
};
36
Y::Y() throw (int)
37
  : X(thrower ())   // throws, so X::X is never called
38
  {printf ("in ctor Y%s\n", __PRETTY_FUNCTION__); bad = true;}
39
Y::~Y() throw ()
40
  {printf ("in dtor Y%s\n", __PRETTY_FUNCTION__); bad = true;}
41
 
42
int main ()
43
{
44
  try
45
    {
46
      Y y;
47
    }
48
  catch (...)
49
    {
50
      printf ("caught\n");
51
    }
52
  return bad;
53
}

powered by: WebSVN 2.1.0

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