> On Jul 2, 2016, at 5:11 PM, Alan Carroll 
> <solidwallofc...@yahoo-inc.com.INVALID> wrote:
> 
> Yes, it's unclear to me what "self contained" means. Obviously we can't have 
> exactly one header file for Traffic Server, so include must be allowed. What 
> property of the current header file structure doesn't include sufficiently to 
> make clang-tidy happy? 

By self-contained I mean that each header #includes all the others that it 
depends on. For example, if you have to #include a bunch of other headers in 
your .cc before you include foo.h, then foo.h is not self-contained. It would 
be self-contained if it #included everything that it needed.

One specific example. I_Lock.h is not self contained because it doesn’t 
#include the headers needed for RefCountObj, Ptr and a bunch of other stuff. To 
make clang-tidy changes to a header file, you would do this:

/opt/clang/bin/clang-tidy -fix -fix-errors I_Lock.h -- c++ -DHAVE_CONFIG_H -I. 
-I../../lib  -I../../lib -I../../lib/records -Ddarwin -DDEBUG -D_DEBUG 
-D_LARGEFILE64_SOURCE=1 -D_COMPILE64BIT_SOURCE=1 -D_GNU_SOURCE -D_REENTRANT 
-D__STDC_LIMIT_MACROS=1 -D__STDC_FORMAT_MACROS=1 
-I/usr/local/Cellar/openssl/1.0.2h_1/include -DOPENSSL_NO_SSL_INTERN 
-I/System/Library/Frameworks/Tcl.framework/Versions/8.5/Headers 
-I/usr/local/include -I/usr/local/Cellar/pcre/8.39/include  -O0 -std=c++11 -g 
-pipe -Wall -Wno-deprecated-declarations -Qunused-arguments -Werror 
-Wno-invalid-offsetof -mcx16 -x c++

Note that the header itself is passes to clang-tidy, so for the code in the 
header to be valid in this context, clang-tidy needs to see all the 
prerequisites.

J

Reply via email to