summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/eh/spec11.C
blob: 4615a640519b9abeef17e518a45356917d400950 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Make sure that we force an LSDA for a throw() spec with -fnothrow-opt so
// that the personality routine will call terminate.  Also check that we
// optimize away the EH cleanup for var because the personality routine
// will call terminate before unwinding: there should not be an EH region
// (i.e. LEHB/LEHE labels) around the call to g().

// { dg-final { scan-assembler-not "_ZSt9terminatev" } }
// { dg-final { scan-assembler-not "EHB" } }
// { dg-final { scan-assembler "LSDA" } }

// { dg-options "-fnothrow-opt" }

struct A { ~A(); };
void g();
void f() throw()
{
  A var;
  g();
}