jsg 418b0bce6c Import include-what-you-use. A tool that uses LLVM libraries to
determine which headers should be included based on symbols used.

Can be used via
make -k CC=/usr/local/bin/include-what-you-use

feedback and ok jca@
2016-04-01 01:51:28 +00:00

12 lines
657 B
Plaintext

Include what you use means this: for every symbol (type, function
variable, or macro) that you use in foo.cc, either foo.cc or foo.h
should #include a .h file that exports the declaration of that symbol.
The include-what-you-use tool is a program that can be built with the
clang libraries in order to analyze #includes of source files to find
include-what-you-use violations, and suggest fixes for them.
The main goal of include-what-you-use is to remove superfluous
#includes. It does this both by figuring out what #includes are not
actually needed for this file (for both .cc and .h files), and replacing
#includes with forward-declares when possible.