rsmith added a comment.

In D106394#2923007 <https://reviews.llvm.org/D106394#2923007>, @cjdb wrote:

> In D106394#2922972 <https://reviews.llvm.org/D106394#2922972>, @rsmith wrote:
>
>> As an alternative, have you considered checking whether any of the headers 
>> named in the pragma are in the include stack, and warning if not? That would 
>> seem to make this warning applicable to both user headers and system headers 
>> in an unsurprising way. We'd presumably need two lists of headers: the 
>> external headers that we encourage people to include to get at the 
>> implementation detail header, and the internal list of headers that are also 
>> allowed to use it but that we shouldn't list in the diagnostic.
>
> Wouldn't this suggestion mean that the following would be allowed?
>
>   #include <utility>
>   #include <__utility/move.h>
>
> If not, then I'm probably misunderstanding your alternative design.

No: when we process the second `#include`, `<utility>` is not on the `#include` 
stack. (It's not the includer of the current file, nor the includer of that 
file, ...).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D106394/new/

https://reviews.llvm.org/D106394

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to