This is an archive of the discontinued LLVM Phabricator instance.

NFC: .clang-tidy: Inherit configs from parents to improve maintainability
ClosedPublic

Authored by dblaikie on Jun 7 2021, 2:10 PM.

Details

Summary

In the interests of disabling misc-no-recursion across LLVM (this seems
like a stylistic choice that is not consistent with LLVM's
style/development approach) this NFC preliminary change adjusts all the
.clang-tidy files to inherit from their parents as much as possible.

This change specifically preserves all the quirks of the current configs
in order to make it easier to review as NFC.

I validatad the change is NFC as follows:

for X in cat ../files.txt;
do

mkdir -p ../tmp/$(dirname $X)
touch $(dirname $X)/blaikie.cpp
clang-tidy -dump-config $(dirname $X)/blaikie.cpp > ../tmp/$(dirname $X)/after
rm $(dirname $X)/blaikie.cpp

done

(similarly for the "before" state, without this patch applied)

for X in cat ../files.txt;
do

echo $X
diff \
  ../tmp/$(dirname $X)/before \
  <(cat ../tmp/$(dirname $X)/after \
    | sed -e "s/,readability-identifier-naming\(.*\),-readability-identifier-naming/\1/" \
    | sed -e "s/,-llvm-include-order\(.*\),llvm-include-order/\1/" \
    | sed -e "s/,-misc-no-recursion\(.*\),misc-no-recursion/\1/" \
    | sed -e "s/,-clang-diagnostic-\*\(.*\),clang-diagnostic-\*/\1/")

done

(using sed to strip some add/remove pairs to reduce the diff and make it easier to read)

The resulting report is:

.clang-tidy
clang/.clang-tidy
2c2
< Checks:          'clang-diagnostic-*,clang-analyzer-*,-*,clang-diagnostic-*,llvm-*,misc-*,-misc-unused-parameters,-misc-non-private-member-variables-in-classes,-readability-identifier-naming,-misc-no-recursion'
---
> Checks:          'clang-diagnostic-*,clang-analyzer-*,-*,clang-diagnostic-*,llvm-*,misc-*,-misc-unused-parameters,-misc-non-private-member-variables-in-classes,-misc-no-recursion'
compiler-rt/.clang-tidy
2c2
< Checks:          'clang-diagnostic-*,clang-analyzer-*,-*,clang-diagnostic-*,llvm-*,-llvm-header-guard,misc-*,-misc-unused-parameters,-misc-non-private-member-variables-in-classes'
---
> Checks:          'clang-diagnostic-*,clang-analyzer-*,-*,clang-diagnostic-*,llvm-*,misc-*,-misc-unused-parameters,-misc-non-private-member-variables-in-classes,-llvm-header-guard'
flang/.clang-tidy
2c2
< Checks:          'clang-diagnostic-*,clang-analyzer-*,-*,llvm-*,-llvm-include-order,misc-*,-misc-no-recursion,-misc-unused-parameters,-misc-non-private-member-variables-in-classes'
---
> Checks:          'clang-diagnostic-*,clang-analyzer-*,-*,llvm-*,misc-*,-misc-unused-parameters,-misc-non-private-member-variables-in-classes,-llvm-include-order,-misc-no-recursion'
flang/include/flang/Lower/.clang-tidy
flang/include/flang/Optimizer/.clang-tidy
flang/lib/Lower/.clang-tidy
flang/lib/Optimizer/.clang-tidy
lld/.clang-tidy
lldb/.clang-tidy
llvm/tools/split-file/.clang-tidy
mlir/.clang-tidy

The clang/.clang-tidy change is a no-op, disabling an option that was never enabled.
The compiler-rt and flang changes are no-op reorderings of the same flags.

(side note, the .clang-tidy file in parallel-libs is broken and crashes
clang-tidy because it uses "lowerCase" as the style instead of "lower_case" -
so I'll deal with that separately)

Diff Detail

Event Timeline

dblaikie created this revision.Jun 7 2021, 2:10 PM
dblaikie requested review of this revision.Jun 7 2021, 2:10 PM
Herald added projects: Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project. · View Herald TranscriptJun 7 2021, 2:10 PM
Herald added subscribers: llvm-commits, lldb-commits, Restricted Project and 4 others. · View Herald Transcript
mehdi_amini accepted this revision.Jun 7 2021, 9:27 PM
This revision is now accepted and ready to land.Jun 7 2021, 9:27 PM
aaron.ballman accepted this revision.Jun 8 2021, 3:59 AM

LGTM, thank you!