32 lines · cpp
1// RUN: %clang_cc1 -triple x86_64-windows -fasync-exceptions -fcxx-exceptions -fexceptions -fms-extensions -x c++ -Wno-implicit-function-declaration -emit-llvm %s -o - | FileCheck %s2 3// CHECK: define dso_local void @"?foo@@YAXXZ4// CHECK: invoke void @llvm.seh.try.begin()5// CHECK-NOT: llvm.seh.scope.begin6// CHECK-NOT: llvm.seh.scope.end7 8// FIXME: Do we actually need llvm.seh.scope*?9void foo() {10 try {}11 catch (...) {12 return;13 }14}15 16__declspec(noreturn) void bar();17class baz {18public:19 ~baz();20};21 22// CHECK: define dso_local void @"?qux@@YAXXZ23// CHECK: invoke void @llvm.seh.scope.begin()24// CHECK-NOT: llvm.seh.try25// CHECK-NOT: llvm.seh.scope.end26 27// We don't need to generate llvm.seh.scope.end for unreachable.28void qux() {29 baz a;30 bar();31}32