diff options
Diffstat (limited to 'clang/test/CodeGenCXX/exceptions-cxx-new.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/exceptions-cxx-new.cpp | 38 |
1 files changed, 13 insertions, 25 deletions
diff --git a/clang/test/CodeGenCXX/exceptions-cxx-new.cpp b/clang/test/CodeGenCXX/exceptions-cxx-new.cpp index 182bda1f545..42b26c9dc8f 100644 --- a/clang/test/CodeGenCXX/exceptions-cxx-new.cpp +++ b/clang/test/CodeGenCXX/exceptions-cxx-new.cpp @@ -14,18 +14,15 @@ void test_catch() { // CHECK-LABEL: define void @"\01?test_catch@@YAXXZ"( // CHECK: invoke i32 @"\01?f@@YAHH@Z"(i32 1) -// CHECK: to label %[[NORMAL:.*]] unwind label %[[CATCH_INT:.*]] +// CHECK: to label %[[NORMAL:.*]] unwind label %[[CATCHSWITCH:.*]] -// CHECK: [[CATCH_INT]] -// CHECK: %[[CATCHPAD_INT:.*]] = catchpad [%rtti.TypeDescriptor2* @"\01??_R0H@8", i32 0, i8* null] -// CHECK: to label %[[CATCH_INT_HANDLER:.*]] unwind label %[[CATCH_DOUBLE:.*]] - -// CHECK: [[CATCH_INT_HANDLER]] -// CHECK: invoke i32 @"\01?f@@YAHH@Z"(i32 2) -// CHECK: to label %[[CATCH_INT_DONE:.*]] unwind label %[[CATCHENDPAD:.*]] +// CHECK: [[CATCHSWITCH]] +// CHECK: %[[CATCHSWITCHPAD:.*]] = catchswitch within none [label %[[CATCH_INT:.*]], label %[[CATCH_DOUBLE:.*]]] unwind to caller -// CHECK: [[CATCH_INT_DONE]] -// CHECK: catchret %[[CATCHPAD_INT]] to label %[[LEAVE_INT_CATCH:.*]] +// CHECK: [[CATCH_INT]] +// CHECK: %[[CATCHPAD_INT:.*]] = catchpad within %[[CATCHSWITCHPAD]] [%rtti.TypeDescriptor2* @"\01??_R0H@8", i32 0, i8* null] +// CHECK: call i32 @"\01?f@@YAHH@Z"(i32 2) +// CHECK: catchret from %[[CATCHPAD_INT]] to label %[[LEAVE_INT_CATCH:.*]] // CHECK: [[LEAVE_INT_CATCH]] // CHECK: br label %[[LEAVE_FUNC:.*]] @@ -34,22 +31,13 @@ void test_catch() { // CHECK: ret void // CHECK: [[CATCH_DOUBLE]] -// CHECK: %[[CATCHPAD_DOUBLE:.*]] = catchpad [%rtti.TypeDescriptor2* @"\01??_R0N@8", i32 0, i8* null] -// CHECK: to label %[[CATCH_DOUBLE_HANDLER:.*]] unwind label %[[CATCHENDPAD]] - -// CHECK: [[CATCH_DOUBLE_HANDLER]] -// CHECK: invoke i32 @"\01?f@@YAHH@Z"(i32 3) -// CHECK: to label %[[CATCH_DOUBLE_DONE:.*]] unwind label %[[CATCHENDPAD]] - -// CHECK: [[CATCH_DOUBLE_DONE]] -// CHECK: catchret %[[CATCHPAD_DOUBLE]] to label %[[LEAVE_DOUBLE_CATCH:.*]] +// CHECK: %[[CATCHPAD_DOUBLE:.*]] = catchpad within %[[CATCHSWITCHPAD]] [%rtti.TypeDescriptor2* @"\01??_R0N@8", i32 0, i8* null] +// CHECK: call i32 @"\01?f@@YAHH@Z"(i32 3) +// CHECK: catchret from %[[CATCHPAD_DOUBLE]] to label %[[LEAVE_DOUBLE_CATCH:.*]] // CHECK: [[LEAVE_DOUBLE_CATCH]] // CHECK: br label %[[LEAVE_FUNC]] -// CHECK: [[CATCHENDPAD]] -// CHECK: catchendpad unwind to caller - // CHECK: [[NORMAL]] // CHECK: br label %[[LEAVE_FUNC]] @@ -71,9 +59,9 @@ void test_cleanup() { // CHECK: ret void // CHECK: [[CLEANUP]] -// CHECK: %[[CLEANUPPAD:.*]] = cleanuppad [] +// CHECK: %[[CLEANUPPAD:.*]] = cleanuppad within none [] // CHECK: call x86_thiscallcc void @"\01??_DCleanup@@QAE@XZ"( -// CHECK: cleanupret %[[CLEANUPPAD]] unwind to caller +// CHECK: cleanupret from %[[CLEANUPPAD]] unwind to caller // CHECK-LABEL: define {{.*}} void @"\01??1Cleanup@@QAE@XZ"( @@ -84,5 +72,5 @@ void test_cleanup() { // CHECK: ret void // CHECK: [[TERMINATE]] -// CHECK: terminatepad [void ()* @"\01?terminate@@YAXXZ"] unwind to caller +// CHECK: terminatepad within none [void ()* @"\01?terminate@@YAXXZ"] unwind to caller |