diff options
| author | Daniel Jasper <djasper@google.com> | 2015-02-27 08:16:32 +0000 |
|---|---|---|
| committer | Daniel Jasper <djasper@google.com> | 2015-02-27 08:16:32 +0000 |
| commit | 7fe82ad80bb9c002db66c65ec39219969cfccf3d (patch) | |
| tree | b4d2b4640170677a5ae09664f4dcba042057b472 /clang/test/CodeGen | |
| parent | 3ef297aeda57c63fdc393a6e324ae7671c13127d (diff) | |
| download | bcm5719-llvm-7fe82ad80bb9c002db66c65ec39219969cfccf3d.tar.gz bcm5719-llvm-7fe82ad80bb9c002db66c65ec39219969cfccf3d.zip | |
Revert r230717 (and subsequent r230720).
The tests keeps failing on build bots:
http://lab.llvm.org:8080/green/job/clang-stage2-configure-Rlto_check/2355/testReport/junit/Clang/CodeGen/exceptions_seh_leave_c/
llvm-svn: 230740
Diffstat (limited to 'clang/test/CodeGen')
| -rw-r--r-- | clang/test/CodeGen/exceptions-seh-leave.c | 135 |
1 files changed, 2 insertions, 133 deletions
diff --git a/clang/test/CodeGen/exceptions-seh-leave.c b/clang/test/CodeGen/exceptions-seh-leave.c index 67a04c4e97d..7901c8c2fbd 100644 --- a/clang/test/CodeGen/exceptions-seh-leave.c +++ b/clang/test/CodeGen/exceptions-seh-leave.c @@ -125,6 +125,8 @@ int __leave_with___finally() { ////////////////////////////////////////////////////////////////////////////// // Mixed, nested cases. +// FIXME: Test with outer __finally once PR22553 is fixed. + int nested___except___finally() { int myres = 0; __try { @@ -235,136 +237,3 @@ int nested___except___except() { // CHECK: [[tryleave]] // CHECK-NEXT: br label %[[trycont4]] - -int nested___finally___except() { - int myres = 0; - __try { - __try { - g(); - } __except (1) { - g(); - __leave; // Refers to the outer __try, not the __except! - myres = 23; - return 0; - } - - myres = 51; - } __finally { - } - return 1; -} -// The order of basic blocks in the below doesn't matter. -// CHECK-LABEL: define i32 @nested___finally___except() - -// CHECK-LABEL: invoke void bitcast (void (...)* @g to void ()*)() -// CHECK-NEXT: to label %[[g1_cont:.*]] unwind label %[[g1_lpad:.*]] - -// CHECK: [[g1_cont]] -// CHECK-NEXT: br label %[[trycont:[^ ]*]] - -// CHECK: [[g1_lpad]] -// CHECK: br label %[[except]] - -// CHECK: [[except]] -// CHECK-NEXT: invoke void bitcast (void (...)* @g to void ()*)() -// CHECK-NEXT: to label %[[g2_cont:.*]] unwind label %[[g2_lpad:.*]] - -// CHECK: [[g2_cont]] -// CHECK-NEXT: br label %[[tryleave:[^ ]*]] -// CHECK-NOT: 23 - -// CHECK: [[g2_lpad]] -// CHECK: store i8 1, i8* %[[abnormal:[^ ]*]] -// CHECK-NEXT: br label %[[finally:[^ ]*]] - -// CHECK: [[trycont]] -// CHECK: store i32 51, i32* % -// CHECK-NEXT: br label %[[tryleave]] - -// CHECK: [[tryleave]] -// CHECK-NEXT: store i8 0, i8* %[[abnormal]] -// CHECK-NEXT: br label %[[finally:[^ ]*]] - -// CHECK: [[finally]] -// CHECK-NEXT: %[[abnormallocal:[^ ]*]] = load i8* %[[abnormal]] -// CHECK-NEXT: %[[reg:[^ ]*]] = icmp eq i8 %[[abnormallocal]], 0 -// CHECK-NEXT: br i1 %[[reg]], label %[[finallycont:[^ ]*]], label %[[finallyresume:[^ ]*]] - -// CHECK: [[finallycont]] -// CHECK-NEXT: ret i32 1 - -// CHECK: [[finallyresume]] -// CHECK-NEXT: br label %[[ehresume:[^ ]*]] - -// CHECK: [[ehresume]] -// CHECK: resume - -int nested___finally___finally() { - int myres = 0; - __try { - __try { - g(); - myres = 16; - } __finally { - g(); - __leave; // Refers to the outer __try, not the __finally we're in! - myres = 23; - return 0; - } - - myres = 51; - } __finally { - } - return 1; -} -// The order of basic blocks in the below doesn't matter. -// CHECK-LABEL: define i32 @nested___finally___finally() - -// CHECK-LABEL: invoke void bitcast (void (...)* @g to void ()*)() -// CHECK-NEXT: to label %[[g1_cont:.*]] unwind label %[[g1_lpad:.*]] - -// CHECK: [[g1_cont]] -// CHECK: store i32 16, i32* %[[myres:[^ ]*]], -// CHECK: store i8 0, i8* %[[abnormal:[^ ]*]] -// CHECK-NEXT: br label %[[finally:[^ ]*]] - -// CHECK: [[finally]] -// CHECK-NEXT: invoke void bitcast (void (...)* @g to void ()*)() #3 -// CHECK-NEXT: to label %[[g2_cont:.*]] unwind label %[[g2_lpad:.*]] - -// CHECK: [[g2_cont]] -// CHECK-NEXT: br label %[[tryleave:[^ ]*]] -// CHECK-NOT: store i32 23 - -// There's an unreachable block for the skipped `myres = 51`. -// CHECK: store i32 51, i32* %[[myres]] -// CHECK-NEXT: br label %[[tryleave]] - -// CHECK: [[tryleave]] -// CHECK-NEXT: store i8 0, i8* %[[abnormal]] -// CHECK-NEXT: br label %[[outerfinally:[^ ]*]] - -// CHECK: [[outerfinally]] -// CHECK-NEXT: %[[abnormallocal:[^ ]*]] = load i8* %[[abnormal]] -// CHECK-NEXT: %[[reg:[^ ]*]] = icmp eq i8 %[[abnormallocal]], 0 -// CHECK-NEXT: br i1 %[[reg]], label %[[finallycont:[^ ]*]], label %[[finallyresume:[^ ]*]] - -// CHECK: [[finallycont]] -// CHECK-NEXT: ret i32 1 - -// CHECK: [[g1_lpad]] -// CHECK: store i8 1, i8* %[[abnormal]] -// CHECK-NEXT: br label %[[finally:[^ ]*]] - -// CHECK: [[g2_lpad]] -// CHECK: br label %[[ehcleanup:[^ ]*]] - -// CHECK: [[ehcleanup]] -// CHECK-NEXT: store i8 1, i8* %[[abnormal]] -// CHECK-NEXT: br label %[[outerfinally]] - -// CHECK: [[finallyresume]] -// CHECK-NEXT: br label %[[ehresume:[^ ]*]] - -// CHECK: [[ehresume]] -// CHECK: resume |

