Some downstream work broke these tests because the attribute number changed. Refactor these tests to be more resilient in the face of changes like this * `instrument-objc-method.m` * `#1` was never checked, I think it was trying to check that `__cyg_profile_func_enter` was not used, so I added `--implicit-check-not="__cyg_profile_func_enter"` * Use `[[#ATTR:]]` so the test doesn't fail if the number changes * `address-safety-attr.mm` * Check attributes in `Function Attrs:` so it's independent of the attribute number
25 lines
1.0 KiB
Objective-C
25 lines
1.0 KiB
Objective-C
// RUN: %clang_cc1 -disable-llvm-passes -triple x86_64-apple-darwin10 -debug-info-kind=standalone -emit-llvm -o - %s -finstrument-functions | FileCheck --check-prefix=PREINLINE --implicit-check-not="__cyg_profile_func_enter" %s
|
|
// RUN: %clang_cc1 -disable-llvm-passes -triple x86_64-apple-darwin10 -debug-info-kind=standalone -emit-llvm -o - %s -finstrument-function-entry-bare | FileCheck --check-prefix=BARE --implicit-check-not="__cyg_profile_func_enter" %s
|
|
|
|
@interface ObjCClass
|
|
@end
|
|
|
|
@implementation ObjCClass
|
|
|
|
// PREINLINE: define {{.*}}@"\01+[ObjCClass initialize]"{{\(.*\)}} #[[#ATTR:]]
|
|
// BARE: define {{.*}}@"\01+[ObjCClass initialize]"{{\(.*\)}} #[[#ATTR:]]
|
|
+ (void)initialize {
|
|
}
|
|
|
|
+ (void)load __attribute__((no_instrument_function)) {
|
|
}
|
|
|
|
- (void)dealloc __attribute__((no_instrument_function)) {
|
|
}
|
|
|
|
// PREINLINE: attributes #[[#ATTR]] =
|
|
// PREINLINE-SAME: "instrument-function-entry"="__cyg_profile_func_enter"
|
|
// BARE: attributes #[[#ATTR]] =
|
|
// BARE-SAME: "instrument-function-entry-inlined"="__cyg_profile_func_enter_bare"
|
|
@end
|