summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.eh/catch14.C
blob: 7addb8827b258d1fdd13b287998e0c37381cd69f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// { dg-do assemble  }
// { dg-options "-O1" }
// Copyright (C) 2001 Free Software Foundation, Inc.
// Contributed by Jakub Jelinek 2 May 2001 <jakub@redhat.com>


void foo();

struct A {
  A (int x) { };
  ~A() {
    try {
      foo ();
    } catch (...) { }
  };
};

struct B;

B *x;

struct B {
  void a();
  void b();
  static B* c() {
    A y = 0;
    return x;
  };
};

void B::a() {
  c()->b();
}