Files
clang-p2996/clang/test/CodeGen/windows-seh-EHa-CppCatchReturn.cpp
Phoebe Wang a3f688422c [Windows SEH] Fix ehcleanup crash for Windows -EHa
`Builder.GetInsertBlock()` may return null sometimes. https://godbolt.org/z/n1Ph47jP1

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D147867
2023-04-12 14:44:11 +08:00

32 lines
766 B
C++

// RUN: %clang_cc1 -triple x86_64-windows -fasync-exceptions -fcxx-exceptions -fexceptions -fms-extensions -x c++ -Wno-implicit-function-declaration -S -emit-llvm %s -o - | FileCheck %s
// CHECK: define dso_local void @"?foo@@YAXXZ
// CHECK: invoke void @llvm.seh.try.begin()
// CHECK-NOT: llvm.seh.scope.begin
// CHECK-NOT: llvm.seh.scope.end
// FIXME: Do we actually need llvm.seh.scope*?
void foo() {
try {}
catch (...) {
return;
}
}
__declspec(noreturn) void bar();
class baz {
public:
~baz();
};
// CHECK: define dso_local void @"?qux@@YAXXZ
// CHECK: invoke void @llvm.seh.scope.begin()
// CHECK-NOT: llvm.seh.try
// CHECK-NOT: llvm.seh.scope.end
// We don't need to generate llvm.seh.scope.end for unreachable.
void qux() {
baz a;
bar();
}