[clang] 01023bf - [CGObjC] Add run line for release mode in test arc-exceptions-seh.mm (NFC)
Stefan Gränitz via cfe-commits
cfe-commits at lists.llvm.org
Tue Nov 22 04:43:44 PST 2022
Author: Stefan Gränitz
Date: 2022-11-22T13:43:08+01:00
New Revision: 01023bfcd33f922ed8c934ce563e54abe8bfe246
URL: https://github.com/llvm/llvm-project/commit/01023bfcd33f922ed8c934ce563e54abe8bfe246
DIFF: https://github.com/llvm/llvm-project/commit/01023bfcd33f922ed8c934ce563e54abe8bfe246.diff
LOG: [CGObjC] Add run line for release mode in test arc-exceptions-seh.mm (NFC)
In release mode `arc-exceptions-seh.mm` fails. It needs `-enable-objc-arc-opts=false` to skip ObjC ARC optimizations.
Reviewed By: triplef
Differential Revision: https://reviews.llvm.org/D137942
Added:
Modified:
clang/test/CodeGenObjCXX/arc-exceptions-seh.mm
Removed:
################################################################################
diff --git a/clang/test/CodeGenObjCXX/arc-exceptions-seh.mm b/clang/test/CodeGenObjCXX/arc-exceptions-seh.mm
index b432abcda97d..d5da1111f55d 100644
--- a/clang/test/CodeGenObjCXX/arc-exceptions-seh.mm
+++ b/clang/test/CodeGenObjCXX/arc-exceptions-seh.mm
@@ -1,4 +1,5 @@
-// RUN: %clang_cc1 -triple x86_64-pc-windows-msvc -emit-llvm -fobjc-arc -fexceptions -fobjc-exceptions -fobjc-arc-exceptions -fobjc-runtime=gnustep-2.0 -o - %s | FileCheck %s
+// RUN: %clang_cc1 -triple x86_64-pc-windows-msvc -emit-llvm -fobjc-arc -fexceptions -fobjc-exceptions -fobjc-arc-exceptions -fobjc-runtime=gnustep-2.0 -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-O0
+// RUN: %clang_cc1 -O2 -triple x86_64-pc-windows-msvc -emit-llvm -fobjc-arc -fexceptions -fobjc-exceptions -fobjc-arc-exceptions -fobjc-runtime=gnustep-2.0 -mllvm -enable-objc-arc-opts=false -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-O2
// WinEH requires funclet tokens on nounwind intrinsics if they can lower to
// regular function calls in the course of IR transformations.
@@ -40,18 +41,21 @@ void try_catch_with_objc_intrinsic() {
// CHECK: [ "funclet"(token [[CATCHPAD]]) ]
// CHECK: unwind label %[[CLEANUP2]]
// CHECK: call
-// CHECK: @llvm.objc.storeStrong
+// CHECK-O0: @llvm.objc.storeStrong
+// CHECK-O2: @llvm.objc.release
// CHECK: [ "funclet"(token [[CATCHPAD]]) ]
-// CHECK: catchret from [[CATCHPAD]] to label %catchret.dest
+// CHECK-O0: catchret from [[CATCHPAD]] to label %catchret.dest
+// CHECK-O2: catchret from [[CATCHPAD]] to label %eh.cont
//
-// This block exists and it's empty:
-// CHECK: catchret.dest:
-// CHECK-NEXT: br label %eh.cont
+// In debug mode, this block exists and it's empty:
+// CHECK-O0: catchret.dest:
+// CHECK-O0-NEXT: br label %eh.cont
//
// CHECK: [[CLEANUP2]]:
// CHECK-NEXT: [[CLEANUPPAD2:%[0-9]+]] = cleanuppad within [[CATCHPAD]]
// CHECK: call
-// CHECK: @llvm.objc.storeStrong
+// CHECK-O0: @llvm.objc.storeStrong
+// CHECK-O2: @llvm.objc.release
// CHECK: [ "funclet"(token [[CLEANUPPAD2]]) ]
// CHECK: cleanupret from [[CLEANUPPAD2]]
// CHECK: unwind label %[[CLEANUP1]]
@@ -59,6 +63,7 @@ void try_catch_with_objc_intrinsic() {
// CHECK: [[CLEANUP1]]:
// CHECK-NEXT: [[CLEANUPPAD1:%[0-9]+]] = cleanuppad within none
// CHECK: call
-// CHECK: @llvm.objc.storeStrong
+// CHECK-O0: @llvm.objc.storeStrong
+// CHECK-O2: @llvm.objc.release
// CHECK: [ "funclet"(token [[CLEANUPPAD1]]) ]
// CHECK: cleanupret from [[CLEANUPPAD1]] unwind to caller
More information about the cfe-commits
mailing list