1// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -o - %s | FileCheck %s 2// rdar://13598026 3 4@interface NSObject @end 5 6@class NSString; 7 8int __CFConstantStringClassReference[24]; 9 10@interface Bar : NSObject 11+(void)format:(NSString *)format,...; 12@end 13 14@interface Foo : NSObject 15@end 16 17 18static inline void _inlineFunction() { 19 [Bar format:@" "]; 20} 21 22@implementation Foo 23 24 25+(NSString *)someMethod { 26 return @""; 27} 28 29-(void)someMethod { 30 _inlineFunction(); 31} 32@end 33 34// CHECK: @__CFConstantStringClassReference = common global [24 x i32] zeroinitializer, align 16 35// CHECK: @_unnamed_cfstring_{{.*}} = private constant %struct.NSConstantString { i32* getelementptr inbounds ([24 x i32], [24 x i32]* @__CFConstantStringClassReference, i32 0, i32 0) 36 37// CHECK-LABEL: define internal void @_inlineFunction() 38// CHECK: [[ZERO:%.*]] = load %struct._class_t*, %struct._class_t** @"OBJC_CLASSLIST_REFERENCES_ 39// CHECK-NEXT: [[ONE:%.*]] = load i8*, i8** @OBJC_SELECTOR_REFERENCES_ 40// CHECK-NEXT: [[TWO:%.*]] = bitcast %struct._class_t* [[ZERO]] to i8* 41// CHECK-NEXT: call void (i8*, i8*, [[T:%.*]]*, ...) bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, [[T:%.*]]*, ...)*)(i8* [[TWO]], i8* [[ONE]], [[T:%.*]]* bitcast (%struct.NSConstantString* @_unnamed_cfstring_{{.*}} to [[T:%.*]]*)) 42// CHECK-NEXT: ret void 43 44