// 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(); }