This patch enables --function-signature by default under --version 2 and makes --version 2 the default. This means that all newly created tests will check the function signature, while leaving old tests alone. There's two motivations for this change: * Without --function-signature, the generated check lines may fail in a very hard to understand way if the test both includes a function definition and a call to that function. (Though we could address this by making the CHECK-LABEL stricter, without checking the full signature.) * This actually checks that uses of the arguments in the function body use the correct argument, instead of matching against any variable. This is a replacement for D139006 and D140212 based on the --version mechanism. I did not include an opt-out flag --no-function-signature because I'm not sure we need it. Would be happy to include it though, if desired. Differential Revision: https://reviews.llvm.org/D145149
27 lines
1.4 KiB
Plaintext
27 lines
1.4 KiB
Plaintext
## Basic test checking that update_cc_test_checks.py works as expected for
|
|
## functions with mangled names
|
|
# RUN: cp -f %S/Inputs/mangled_names.c %t.c && %update_cc_test_checks -v %t.c
|
|
# RUN: diff -u %t.c %S/Inputs/mangled_names.c.expected
|
|
## Check that running the script again does not change the result:
|
|
# RUN: %update_cc_test_checks -v %t.c
|
|
# RUN: diff -u %t.c %S/Inputs/mangled_names.c.expected
|
|
## Also try the --function-signature flag
|
|
# RUN: %update_cc_test_checks %t.c --function-signature
|
|
# RUN: diff -u %t.c %S/Inputs/mangled_names.c.funcsig.expected
|
|
## Running it again should implicitly add the function-signature flag due to UTC_ARGS:
|
|
# RUN: %update_cc_test_checks %t.c
|
|
# RUN: diff -u %t.c %S/Inputs/mangled_names.c.funcsig.expected
|
|
## Verify that running without the --function-signature flag removes the -SAME: lines:
|
|
## We have to remove the UTC_ARGS comment first:
|
|
# RUN: grep -v UTC_ARGS %t.c > %t-no-args.c
|
|
# RUN: %update_cc_test_checks %t-no-args.c
|
|
# RUN: diff -u %t-no-args.c %S/Inputs/mangled_names.c.expected
|
|
## Also try --version 2
|
|
# RUN: %update_cc_test_checks %t.c --function-signature --version 2
|
|
# RUN: diff -u %t.c %S/Inputs/mangled_names.c.funcsig.v2.expected
|
|
## Restore the original file without --function-signature and check that
|
|
## --version 2 will implicitly enable it.
|
|
# RUN: cp -f %S/Inputs/mangled_names.c %t.c
|
|
# RUN: %update_cc_test_checks %t.c --version 2
|
|
# RUN: diff -u %t.c %S/Inputs/mangled_names.c.v2.expected
|