xref: /llvm-project/clang/test/CodeGen/windows-seh-async-exceptions.cpp (revision 33e3b2c46084bc47ef4067ed487b24b58934d044)
1*33e3b2c4SJennifer Yu // RUN: %clang_cc1 -triple x86_64-windows -fasync-exceptions -x c++ \
2*33e3b2c4SJennifer Yu // RUN:  -emit-llvm %s -o -| FileCheck %s
3*33e3b2c4SJennifer Yu 
4*33e3b2c4SJennifer Yu extern "C" int printf(const char*,...);
5*33e3b2c4SJennifer Yu class PrintfArg
6*33e3b2c4SJennifer Yu {
7*33e3b2c4SJennifer Yu public:
8*33e3b2c4SJennifer Yu   PrintfArg();
9*33e3b2c4SJennifer Yu   PrintfArg(const char* s);
10*33e3b2c4SJennifer Yu 
11*33e3b2c4SJennifer Yu   // compiler crash fixed if this destructor removed
~PrintfArg()12*33e3b2c4SJennifer Yu   ~PrintfArg() {int x; printf("ddd\n");  }
13*33e3b2c4SJennifer Yu };
14*33e3b2c4SJennifer Yu 
15*33e3b2c4SJennifer Yu void devif_Warning(const char* fmt, PrintfArg arg1 = PrintfArg());
16*33e3b2c4SJennifer Yu // CHECK-NOT: invoke void @llvm.seh.scope.begin()
17*33e3b2c4SJennifer Yu // CHECK-NOT: invoke void @llvm.seh.scope.end()
myfunc(unsigned index)18*33e3b2c4SJennifer Yu unsigned myfunc(unsigned index)
19*33e3b2c4SJennifer Yu {
20*33e3b2c4SJennifer Yu   devif_Warning("");
21*33e3b2c4SJennifer Yu   return 0;
22*33e3b2c4SJennifer Yu }
23