Author: Ellis Hoag Date: 2025-09-04T09:29:31-07:00 New Revision: eee72111dc922889d8418cf3d0208dd1f4a3f8f1
URL: https://github.com/llvm/llvm-project/commit/eee72111dc922889d8418cf3d0208dd1f4a3f8f1 DIFF: https://github.com/llvm/llvm-project/commit/eee72111dc922889d8418cf3d0208dd1f4a3f8f1.diff LOG: [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 Added: Modified: clang/test/CodeGen/instrument-objc-method.m clang/test/CodeGenObjCXX/address-safety-attr.mm Removed: ################################################################################ diff --git a/clang/test/CodeGen/instrument-objc-method.m b/clang/test/CodeGen/instrument-objc-method.m index 34b4f84a0af39..59562743103e3 100644 --- a/clang/test/CodeGen/instrument-objc-method.m +++ b/clang/test/CodeGen/instrument-objc-method.m @@ -1,29 +1,24 @@ -// 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 %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 %s +// 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: @"\01+[ObjCClass initialize]"{{\(.*\)}} #0 -// BARE: @"\01+[ObjCClass initialize]"{{\(.*\)}} #0 +// PREINLINE: define {{.*}}@"\01+[ObjCClass initialize]"{{\(.*\)}} #[[#ATTR:]] +// BARE: define {{.*}}@"\01+[ObjCClass initialize]"{{\(.*\)}} #[[#ATTR:]] + (void)initialize { } -// BARE: @"\01+[ObjCClass load]"{{\(.*\)}} #1 + (void)load __attribute__((no_instrument_function)) { } -// PREINLINE: @"\01-[ObjCClass dealloc]"{{\(.*\)}} #1 -// BARE: @"\01-[ObjCClass dealloc]"{{\(.*\)}} #1 - (void)dealloc __attribute__((no_instrument_function)) { } -// PREINLINE: attributes #0 = { {{.*}}"instrument-function-entry"="__cyg_profile_func_enter" -// PREINLINE-NOT: attributes #0 = { {{.*}}"instrument-function-entry"="__cyg_profile_func_enter_bare" -// PREINLINE-NOT: attributes #2 = { {{.*}}"__cyg_profile_func_enter" -// BARE: attributes #0 = { {{.*}}"instrument-function-entry-inlined"="__cyg_profile_func_enter_bare" -// BARE-NOT: attributes #0 = { {{.*}}"__cyg_profile_func_enter" -// BARE-NOT: attributes #2 = { {{.*}}"__cyg_profile_func_enter_bare" +// 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 diff --git a/clang/test/CodeGenObjCXX/address-safety-attr.mm b/clang/test/CodeGenObjCXX/address-safety-attr.mm index 1b6f0e807afd6..8a7462d98dcfb 100644 --- a/clang/test/CodeGenObjCXX/address-safety-attr.mm +++ b/clang/test/CodeGenObjCXX/address-safety-attr.mm @@ -1,5 +1,5 @@ -// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck -check-prefix=WITHOUT %s -// RUN: %clang_cc1 -emit-llvm -o - %s -fsanitize=address | FileCheck -check-prefix=ASAN %s +// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s --implicit-check-not=sanitize_address +// RUN: %clang_cc1 -emit-llvm -o - %s -fsanitize=address | FileCheck %s --check-prefixes=CHECK,ASAN @interface MyClass + (int) addressSafety:(int*)a; @@ -7,15 +7,14 @@ + (int) addressSafety:(int*)a; @implementation MyClass -// WITHOUT: +[MyClass load]{{.*}}#0 -// ASAN: +[MyClass load]{{.*}}#0 +// ASAN: ; Function Attrs: +// ASAN-SAME: sanitize_address +// CHECK-LABEL: define {{.*}}+[MyClass load] +(void) load { } -// WITHOUT: +[MyClass addressSafety:]{{.*}}#0 -// ASAN: +[MyClass addressSafety:]{{.*}}#0 +// ASAN: ; Function Attrs: +// ASAN-SAME: sanitize_address +// CHECK-LABEL: define {{.*}}+[MyClass addressSafety:] + (int) addressSafety:(int*)a { return *a; } @end - -// ASAN: attributes #0 = {{.*}}sanitize_address -// WITHOUT-NOT: attributes #0 = {{.*}}sanitize_address _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits