I checked this patch on my own build on RHEL 6. Regressions were OK.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
Full context diffs, please. See http://llvm.org/docs/Phabricator.html#requesting-a-review-via-the-web-interface
In many cases a transitively included header can be considered a part of a public interface of an already included header, e.g. it's reasonable to assume that DiagnosticIDs.h is a part of the public API exposed by Diagnostics.h. Thus, I consider IWYU fixes useless or even mildly harmful until (most of) LLVM/Clang headers are properly annotated with // IWYU pragma: export etc.
The other change seems fine, if you have properly verified the new behavior.
This header is just an example. I don't want anyone (including myself) manually figure out which of the headers inserted by IWYU actually need to be inserted. I'm also against adding #includes for every single transitively included header, since many of the headers can be considered "exported" by other headers. So, please, stop sending IWYU cleanups before reaching the general agreement and properly annotating LLVM and Clang headers.
My last comment might come across as somewhat harsh. I didn't mean it to be harsh and just wanted to say that imo, llvm code is not ready to mechanically applying IWYU.