llvm-project/clang/test/CodeGen/instrument-objc-method.m
Ellis Hoag eee72111dc
[CodeGen][test][NFC] Refactor ObjC attribute tests (#156519)
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
2025-09-04 09:29:31 -07:00

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