1*67e74705SXin Li// RUN: %clang_cc1 -triple i386-apple-darwin9 -fobjc-runtime=macosx-fragile-10.5 %s -emit-llvm -o - | FileCheck %s 2*67e74705SXin Li 3*67e74705SXin Li// CHECK: @"__func__.-[Foo instanceTest1]" = private unnamed_addr constant [21 x i8] c"-[Foo instanceTest1]\00" 4*67e74705SXin Li// CHECK: @"__func__.-[Foo instanceTest2:]" = private unnamed_addr constant [22 x i8] c"-[Foo instanceTest2:]\00" 5*67e74705SXin Li// CHECK: @"__func__.-[Foo instanceTest3:withB:]" = private unnamed_addr constant [28 x i8] c"-[Foo instanceTest3:withB:]\00" 6*67e74705SXin Li// CHECK: @"__func__.-[Foo instanceTest4]" = private unnamed_addr constant [21 x i8] c"-[Foo instanceTest4]\00" 7*67e74705SXin Li// CHECK: @"__func__.+[Foo classTest1]" = private unnamed_addr constant [18 x i8] c"+[Foo classTest1]\00" 8*67e74705SXin Li// CHECK: @"__func__.+[Foo classTest2:]" = private unnamed_addr constant [19 x i8] c"+[Foo classTest2:]\00" 9*67e74705SXin Li// CHECK: @"__func__.+[Foo classTest3:withB:]" = private unnamed_addr constant [25 x i8] c"+[Foo classTest3:withB:]\00" 10*67e74705SXin Li// CHECK: @"__func__.+[Foo classTest4]" = private unnamed_addr constant [18 x i8] c"+[Foo classTest4]\00" 11*67e74705SXin Li// CHECK: @"__func__.-[Foo(Category) instanceTestWithCategory]" = private unnamed_addr constant [42 x i8] c"-[Foo(Category) instanceTestWithCategory]\00" 12*67e74705SXin Li// CHECK: @"__func__.+[Foo(Category) classTestWithCategory]" = private unnamed_addr constant [39 x i8] c"+[Foo(Category) classTestWithCategory]\00" 13*67e74705SXin Li 14*67e74705SXin Liint printf(const char * _Format, ...); 15*67e74705SXin Li 16*67e74705SXin Li@interface Foo 17*67e74705SXin Li@end 18*67e74705SXin Li 19*67e74705SXin Li@implementation Foo 20*67e74705SXin Li 21*67e74705SXin Li- (void)instanceTest1 { 22*67e74705SXin Li printf("__func__: %s\n", __func__); 23*67e74705SXin Li printf("__FUNCTION__: %s\n", __FUNCTION__); 24*67e74705SXin Li printf("__PRETTY_FUNCTION__: %s\n\n", __PRETTY_FUNCTION__); 25*67e74705SXin Li} 26*67e74705SXin Li 27*67e74705SXin Li- (void)instanceTest2:(int)i { 28*67e74705SXin Li printf("__func__: %s\n", __func__); 29*67e74705SXin Li printf("__FUNCTION__: %s\n", __FUNCTION__); 30*67e74705SXin Li printf("__PRETTY_FUNCTION__: %s\n\n", __PRETTY_FUNCTION__); 31*67e74705SXin Li} 32*67e74705SXin Li 33*67e74705SXin Li- (void)instanceTest3:(int)a withB:(double)b { 34*67e74705SXin Li printf("__func__: %s\n", __func__); 35*67e74705SXin Li printf("__FUNCTION__: %s\n", __FUNCTION__); 36*67e74705SXin Li printf("__PRETTY_FUNCTION__: %s\n\n", __PRETTY_FUNCTION__); 37*67e74705SXin Li} 38*67e74705SXin Li 39*67e74705SXin Li- (int)instanceTest4 { 40*67e74705SXin Li printf("__func__: %s\n", __func__); 41*67e74705SXin Li printf("__FUNCTION__: %s\n", __FUNCTION__); 42*67e74705SXin Li printf("__PRETTY_FUNCTION__: %s\n\n", __PRETTY_FUNCTION__); 43*67e74705SXin Li return 0; 44*67e74705SXin Li} 45*67e74705SXin Li 46*67e74705SXin Li+ (void)classTest1 { 47*67e74705SXin Li printf("__func__: %s\n", __func__); 48*67e74705SXin Li printf("__FUNCTION__: %s\n", __FUNCTION__); 49*67e74705SXin Li printf("__PRETTY_FUNCTION__: %s\n\n", __PRETTY_FUNCTION__); 50*67e74705SXin Li} 51*67e74705SXin Li 52*67e74705SXin Li+ (void)classTest2:(int)i { 53*67e74705SXin Li printf("__func__: %s\n", __func__); 54*67e74705SXin Li printf("__FUNCTION__: %s\n", __FUNCTION__); 55*67e74705SXin Li printf("__PRETTY_FUNCTION__: %s\n\n", __PRETTY_FUNCTION__); 56*67e74705SXin Li} 57*67e74705SXin Li 58*67e74705SXin Li+ (void)classTest3:(int)a withB:(double)b { 59*67e74705SXin Li printf("__func__: %s\n", __func__); 60*67e74705SXin Li printf("__FUNCTION__: %s\n", __FUNCTION__); 61*67e74705SXin Li printf("__PRETTY_FUNCTION__: %s\n\n", __PRETTY_FUNCTION__); 62*67e74705SXin Li} 63*67e74705SXin Li 64*67e74705SXin Li+ (int)classTest4 { 65*67e74705SXin Li printf("__func__: %s\n", __func__); 66*67e74705SXin Li printf("__FUNCTION__: %s\n", __FUNCTION__); 67*67e74705SXin Li printf("__PRETTY_FUNCTION__: %s\n\n", __PRETTY_FUNCTION__); 68*67e74705SXin Li return 0; 69*67e74705SXin Li} 70*67e74705SXin Li 71*67e74705SXin Li@end 72*67e74705SXin Li 73*67e74705SXin Li@interface Foo (Category) 74*67e74705SXin Li@end 75*67e74705SXin Li 76*67e74705SXin Li@implementation Foo (Category) 77*67e74705SXin Li 78*67e74705SXin Li- (void)instanceTestWithCategory { 79*67e74705SXin Li printf("__func__: %s\n", __func__); 80*67e74705SXin Li printf("__FUNCTION__: %s\n", __FUNCTION__); 81*67e74705SXin Li printf("__PRETTY_FUNCTION__: %s\n\n", __PRETTY_FUNCTION__); 82*67e74705SXin Li} 83*67e74705SXin Li 84*67e74705SXin Li+ (void)classTestWithCategory { 85*67e74705SXin Li printf("__func__: %s\n", __func__); 86*67e74705SXin Li printf("__FUNCTION__: %s\n", __FUNCTION__); 87*67e74705SXin Li printf("__PRETTY_FUNCTION__: %s\n\n", __PRETTY_FUNCTION__); 88*67e74705SXin Li} 89*67e74705SXin Li 90*67e74705SXin Li@end 91