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 %s
3 // CHECK: invoke void @llvm.seh.scope.begin()
4 // CHECK: invoke void @llvm.seh.scope.begin()
5 // CHECK: invoke void @llvm.seh.scope.begin()
6 // CHECK: invoke void @llvm.seh.scope.end()
7 // CHECK: invoke void @llvm.seh.scope.end()
8 // CHECK: invoke void @llvm.seh.scope.end()
10 // CHECK: invoke void @llvm.seh.try.begin()
11 // CHECK: %[[src:[0-9-]+]] = load volatile i32, ptr %i
12 // CHECK-NEXT: invoke void @"?crash@@YAXH@Z"(i32 noundef %[[src]])
13 // CHECK: invoke void @llvm.seh.try.end()
15 // ****************************************************************************
16 // Abstract: Test CPP unwind Dtoring under SEH -EHa option
19 int volatile *NullPtr
= 0;
23 printf(" in A dtor \n");
31 printf(" in B dtor \n");
39 printf(" in C dtor \n");
47 #define CATCH_ALL __except (1)
51 for (int i
= 0; i
< 3; i
++) {
56 printf(" Test CPP unwind: in catch handler i = %d \n", i
);