1// RUN: %clang_cc1 -no-opaque-pointers -S -triple x86_64-apple-darwin10 -debug-info-kind=standalone -emit-llvm -o - %s -finstrument-functions | FileCheck %s
2// RUN: %clang_cc1 -no-opaque-pointers -S -triple x86_64-apple-darwin10 -debug-info-kind=standalone -emit-llvm -o - %s -finstrument-function-entry-bare | FileCheck -check-prefix=BARE %s
3
4@interface ObjCClass
5@end
6
7@implementation ObjCClass
8
9// CHECK: @"\01+[ObjCClass initialize]"
10// CHECK: call void @__cyg_profile_func_enter
11// CHECK: call void @__cyg_profile_func_exit
12// BARE: @"\01+[ObjCClass initialize]"
13// BARE: call void @__cyg_profile_func_enter
14+ (void)initialize {
15}
16
17// CHECK: @"\01+[ObjCClass load]"
18// CHECK-NOT: call void @__cyg_profile_func_enter
19// BARE: @"\01+[ObjCClass load]"
20// BARE-NOT: call void @__cyg_profile_func_enter
21+ (void)load __attribute__((no_instrument_function)) {
22}
23
24// CHECK: @"\01-[ObjCClass dealloc]"
25// CHECK-NOT: call void @__cyg_profile_func_enter
26// BARE: @"\01-[ObjCClass dealloc]"
27// BARE-NOT: call void @__cyg_profile_func_enter
28- (void)dealloc __attribute__((no_instrument_function)) {
29}
30
31// CHECK: declare void @__cyg_profile_func_enter(i8*, i8*)
32// CHECK: declare void @__cyg_profile_func_exit(i8*, i8*)
33// BARE: declare void @__cyg_profile_func_enter_bare
34@end
35