Add flag for showing skipped headers in -H / --show-includes output
Consider the following set of files: a.cc: #include "a.h" a.h: #ifndef A_H #define A_H #include "b.h" #include "c.h" // This gets "skipped". #endif b.h: #ifndef B_H #define B_H #include "c.h" #endif c.h: #ifndef C_H #define C_H void c(); #endif And the output of the -H option: $ clang -c -H a.cc . ./a.h .. ./b.h ... ./c.h Note that the include of c.h in a.h is not shown in the output (GCC does the same). This is because of the include guard optimization: clang knows c.h is covered by an include guard which is already defined, so when it sees the include in a.h, it skips it. The same would have happened if #pragma once were used instead of include guards. However, a.h *does* include c.h, and it may be useful to show that in the -H output. This patch adds a flag for doing that. Differential revision: https://reviews.llvm.org/D100480
Loading
Please sign in to comment