summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2015-02-27 08:16:32 +0000
committerDaniel Jasper <djasper@google.com>2015-02-27 08:16:32 +0000
commit7fe82ad80bb9c002db66c65ec39219969cfccf3d (patch)
treeb4d2b4640170677a5ae09664f4dcba042057b472 /clang/test/CodeGen
parent3ef297aeda57c63fdc393a6e324ae7671c13127d (diff)
downloadbcm5719-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.c135
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
OpenPOWER on IntegriCloud