37 lines · plain
1// RUN: %clang_cc1 -triple arm64e-apple-ios15.0.0-bc -fobjc-arc -disable-llvm-passes %s -emit-llvm -o - | FileCheck %s2 3@protocol NSObject4@end5 6@interface NSObject <NSObject>7@end8 9@interface WidgetTester : NSObject10@end11 12@implementation WidgetTester13 14typedef struct {15 NSObject* impl;16} widget_t;17 18- (_Bool)withWidget:(widget_t)widget {19 return 0;20}21 22- (_Bool)testWidget:(widget_t)widget {23 return [self withWidget:widget];24}25 26@end27 28// CHECK-LABEL: msgSend.call:29// CHECK: [[CALL:%[^ ]+]] = call i1 @objc_msgSend30// CHECK-NEXT: br label %msgSend.cont31 32// CHECK-LABEL: msgSend.null-receiver:33// CHECK: br label %msgSend.cont34 35// CHECK-LABEL: msgSend.cont:36// CHECK-NEXT: {{%[^ ]+}} = phi i1 [ [[CALL]], %msgSend.call ], [ false, %msgSend.null-receiver ]37