summaryrefslogtreecommitdiff
path: root/test/CodeGenCXX/ms-eh-personality.cpp
blob: 592ab69efaf2ddcbb49c0b389bab93adf2bc4268 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// RUN: %clang_cc1 -triple x86_64-windows-msvc -fexceptions -fcxx-exceptions %s -emit-llvm -o - | FileCheck %s --check-prefix=MSVC
// RUN: %clang_cc1 -triple x86_64-windows-msvc -fexceptions -fcxx-exceptions -fsjlj-exceptions %s -emit-llvm -o - | FileCheck %s --check-prefix=SJLJ
// RUN: %clang_cc1 -triple x86_64-windows-msvc -fexceptions -fcxx-exceptions -fseh-exceptions %s -emit-llvm -o - | FileCheck %s --check-prefix=MSVC
// RUN: %clang_cc1 -triple x86_64-windows-msvc -fexceptions -fcxx-exceptions -fdwarf-exceptions %s -emit-llvm -o - | FileCheck %s --check-prefix=DWARF

// MSVC: define void @f(){{.*}}@__CxxFrameHandler3
// SJLJ: define void @f(){{.*}}@__gxx_personality_sj0
// DWARF: define void @f(){{.*}}@__gxx_personality_v0

struct Cleanup {
  Cleanup();
  ~Cleanup();
  int x = 0;
};

void g();
extern "C" void f() {
  Cleanup c;
  g();
}