diff options
author | David Majnemer <david.majnemer@gmail.com> | 2016-02-24 17:02:45 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2016-02-24 17:02:45 +0000 |
commit | 971d31be6f643dd551c8e88fe5989adf98dfe677 (patch) | |
tree | 86fe2349b66648fb749342bb308dc31ffb8f87aa /clang/test/CodeGenCXX/microsoft-abi-eh-terminate.cpp | |
parent | dbbaca0e1b5d9a6e36ffdf523c946f02fd6c2357 (diff) | |
download | bcm5719-llvm-971d31be6f643dd551c8e88fe5989adf98dfe677.tar.gz bcm5719-llvm-971d31be6f643dd551c8e88fe5989adf98dfe677.zip |
[WinEH] Make sure terminate handlers have funclet operands
Calls to the terminate handler must be annotated within the exception
region they are within.
llvm-svn: 261751
Diffstat (limited to 'clang/test/CodeGenCXX/microsoft-abi-eh-terminate.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/microsoft-abi-eh-terminate.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/test/CodeGenCXX/microsoft-abi-eh-terminate.cpp b/clang/test/CodeGenCXX/microsoft-abi-eh-terminate.cpp index 0b8d270e137..7836dcf32b1 100644 --- a/clang/test/CodeGenCXX/microsoft-abi-eh-terminate.cpp +++ b/clang/test/CodeGenCXX/microsoft-abi-eh-terminate.cpp @@ -1,5 +1,5 @@ -// RUN: %clang_cc1 -std=c++11 -emit-llvm %s -o - -triple=x86_64-pc-windows-msvc -mconstructor-aliases -fexceptions -fcxx-exceptions -fms-compatibility-version=18.00 | FileCheck -check-prefix=MSVC2013 %s -// RUN: %clang_cc1 -std=c++11 -emit-llvm %s -o - -triple=x86_64-pc-windows-msvc -mconstructor-aliases -fexceptions -fcxx-exceptions -fms-compatibility-version=19.00 | FileCheck -check-prefix=MSVC2015 %s +// RUN: %clang_cc1 -std=c++11 -emit-llvm %s -o - -triple=x86_64-pc-windows-msvc -mconstructor-aliases -fexceptions -fcxx-exceptions -fms-compatibility-version=18.00 | FileCheck -check-prefix=MSVC2013 -check-prefix=CHECK %s +// RUN: %clang_cc1 -std=c++11 -emit-llvm %s -o - -triple=x86_64-pc-windows-msvc -mconstructor-aliases -fexceptions -fcxx-exceptions -fms-compatibility-version=19.00 | FileCheck -check-prefix=MSVC2015 -check-prefix=CHECK %s void may_throw(); void never_throws() noexcept(true) { @@ -9,7 +9,8 @@ void never_throws() noexcept(true) { // CHECK-LABEL: define void @"\01?never_throws@@YAXXZ"() // CHECK-SAME: personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) // CHECK: invoke void @"\01?may_throw@@YAXXZ"() -// CHECK: cleanuppad within none [] +// CHECK: %[[cp:.*]] = cleanuppad within none [] // MSVC2013: call void @"\01?terminate@@YAXXZ"() // MSVC2015: call void @__std_terminate() +// CHECK-SAME: [ "funclet"(token %[[cp]]) ] // CHECK-NEXT: unreachable |