1// RUN: %clang_cc1 -triple arm64e-apple-ios15.0.0 -emit-llvm-bc -fobjc-arc -disable-llvm-passes %s -emit-llvm -o - | FileCheck %s 2 3// rdar://73361264 4 5@protocol NSObject 6@end 7 8@interface NSObject <NSObject> 9@end 10 11@interface WidgetTester : NSObject 12@end 13 14@implementation WidgetTester 15 16typedef struct { 17 NSObject* impl; 18} widget_t; 19 20- (_Bool)withWidget:(widget_t)widget { 21 return 0; 22} 23 24- (_Bool)testWidget:(widget_t)widget { 25 return [self withWidget:widget]; 26} 27 28@end 29 30// CHECK-LABEL: msgSend.call: 31// CHECK: [[CALL:%[^ ]+]] = call i1 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to 32// CHECK-NEXT: br label %msgSend.cont 33 34// CHECK-LABEL: msgSend.null-receiver: 35// CHECK: br label %msgSend.cont 36 37// CHECK-LABEL: msgSend.cont: 38// CHECK-NEXT: {{%[^ ]+}} = phi i1 [ [[CALL]], %msgSend.call ], [ false, %msgSend.null-receiver ] 39