From: Stefan Gränitz Date: Wed, 23 Nov 2022 10:03:57 +0000 (+0100) Subject: Reland "[CGObjC] Add run line for release mode in test arc-exceptions-seh.mm (NFC)" X-Git-Tag: upstream/17.0.6~26738 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=63d65d3764ea2fc27e0e1a6054ec42cff6d84158;p=platform%2Fupstream%2Fllvm.git Reland "[CGObjC] Add run line for release mode in test arc-exceptions-seh.mm (NFC)" This reverts commit a37807ac8a3e9d2880a483940dcd33194f354bf8. Differential Revision: https://reviews.llvm.org/D137942 --- diff --git a/clang/test/CodeGenObjCXX/arc-exceptions-seh.mm b/clang/test/CodeGenObjCXX/arc-exceptions-seh.mm index b432abc..d5da111 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