xref: /aosp_15_r20/external/clang/test/CodeGenObjC/predefined-expr.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
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