summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/eh/spbp.C
blob: a781622ef4ebb94edd46dba2f8a7bb03384c1ba4 (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
/* { dg-do run } */
/* { dg-options "-gdwarf-2" } */
/* { dg-skip-if "No Dwarf" { { *-*-aix* alpha*-dec-osf* hppa*-*-hpux* } && { ! hppa*64*-*-* } } { "*" } { "" } } */

/* This was a bug on x86-darwin, where the register numbering for SP
   and BP was swapped (it's easy to do because on that port it's
   different for eh_frame and debug_frame).  */

#include <stdlib.h>

void f1(int t)
{
  char u[t];
  throw 1;
}

int main()
{
  bool b = true;
  try {
    f1(100);
  } catch (int x) {
    if (b)
      exit (0);
  }
  abort ();
}