Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / CodeGenObjC / null-check-bool-ret.m
blob381d136450fc0f37546f6b0835cb91dad27c0892
1 // RUN: %clang_cc1 -triple arm64e-apple-ios15.0.0 -emit-llvm-bc -fobjc-arc -disable-llvm-passes %s -emit-llvm -o - | FileCheck %s
3 @protocol NSObject
4 @end
6 @interface NSObject <NSObject>
7 @end
9 @interface WidgetTester : NSObject
10 @end
12 @implementation WidgetTester
14 typedef struct {
15     NSObject* impl;
16 } widget_t;
18 - (_Bool)withWidget:(widget_t)widget {
19     return 0;
22 - (_Bool)testWidget:(widget_t)widget {
23     return [self withWidget:widget];
26 @end
28 // CHECK-LABEL: msgSend.call:
29 // CHECK: [[CALL:%[^ ]+]] = call i1 @objc_msgSend
30 // CHECK-NEXT: br label %msgSend.cont
32 // CHECK-LABEL: msgSend.null-receiver:
33 // CHECK: br label %msgSend.cont
35 // CHECK-LABEL: msgSend.cont:
36 // CHECK-NEXT: {{%[^ ]+}} = phi i1 [ [[CALL]], %msgSend.call ], [ false, %msgSend.null-receiver ]