update-test-checks: safely handle tests with #if's
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Tue, 19 Jul 2022 07:43:58 +0000 (09:43 +0200)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Wed, 20 Jul 2022 09:23:49 +0000 (11:23 +0200)
commit5a4033c36716de0cee75eb28b95cce44ae239cd9
tree440f656bcde89deb5a46b05c886a0967994c7e08
parent8ba794be31a314dccba8b4be309b463fdfc5cec5
update-test-checks: safely handle tests with #if's

There is at least one Clang test (clang/test/CodeGen/arm_acle.c) which
has functions guarded by #if's that cause those functions to be compiled
only for a subset of RUN lines.

This results in a case where one RUN line has a body for the function
and another doesn't. Treat this case as a conflict for any prefixes that
the two RUN lines have in common.

This change exposed a bug where functions with '$' in the name weren't
properly recognized in ARM assembly (despite there being a test case
that was supposed to catch the problem!). This bug is fixed as well.

Differential Revision: https://reviews.llvm.org/D130089
clang/test/utils/update_cc_test_checks/Inputs/ifdef.c [new file with mode: 0644]
clang/test/utils/update_cc_test_checks/Inputs/ifdef.c.expected [new file with mode: 0644]
clang/test/utils/update_cc_test_checks/ifdef.test [new file with mode: 0644]
llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_function_name.ll
llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/arm_function_name.ll.expected
llvm/utils/UpdateTestChecks/asm.py
llvm/utils/UpdateTestChecks/common.py
llvm/utils/update_analyze_test_checks.py
llvm/utils/update_cc_test_checks.py
llvm/utils/update_llc_test_checks.py
llvm/utils/update_test_checks.py