[clang-format] allow clang-format to be passed a file of filenames so we can add...
authormydeveloperday <mydeveloperday@gmail.com>
Sun, 3 Oct 2021 11:08:24 +0000 (12:08 +0100)
committermydeveloperday <mydeveloperday@gmail.com>
Sun, 3 Oct 2021 11:10:33 +0000 (12:10 +0100)
commit5aca8bb963a43b62f37305f7eb07476631ea9f2a
tree6d06e5175bf6ef5210e8d8e5ac3ce6ab6f46c8ff
parentf59cc9542bfb461d16ad12b2cc4be4abbfd9d96e
[clang-format] allow clang-format to be passed a file of filenames so we can add a regression suite of "clean clang-formatted files" from LLVM

This change now generates that list, and the change to clang-format allows
us to run clang-format quickly over these files via the list of files.

clang-format.exe -verbose -n --files=./clang/docs/tools/clang-formatted-files.txt

```
Clang-formating 7926 files
Formatting [1/7925] clang/bindings/python/tests/cindex/INPUTS/header1.h
..
Formatting [7925/7925] utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/config.h
```

This is needed because putting all those files on the command line is too
long, and invoking 7900+ clang-formats is much slower (too slow to be honest)

Using this method it takes on 7.5 minutes (on my machine) to run
`clang-format -n` over all of the files (7925), this should result in us
testing any change quickly and easily.

We should be able to use rerunning this list to ensure that we don't regress
clang-format over a large code base, but also use it to ensure none of the
previous files which were 100% clang-formatted remain so.
(which the LLVM premerge checks should be enforcing)

Reviewed By: HazardyKnusperkeks

Differential Revision: https://reviews.llvm.org/D111000
clang/docs/tools/clang-formatted-files.txt [new file with mode: 0644]
clang/docs/tools/generate_formatted_state.py
clang/tools/clang-format/ClangFormat.cpp