[PATCH] D111476: [modules] Make a module map referenced by a system map a system one too.
Volodymyr Sapsai via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Oct 8 17:24:56 PDT 2021
vsapsai added a comment.
Used the mechanism simpler than the one with headers <https://github.com/llvm/llvm-project/blob/8e3b9f453f9a4aef97cc9c5cb2501685cb53f633/clang/lib/Lex/PPDirectives.cpp#L2128-L2135> on purpose.
// The #included file will be considered to be a system header if either it is
// in a system include directory, or if the #includer is a system include
// header.
SrcMgr::CharacteristicKind FileCharacter =
SourceMgr.getFileCharacteristic(FilenameTok.getLocation());
if (File)
FileCharacter = std::max(HeaderInfo.getFileDirFlavor(&File->getFileEntry()),
FileCharacter);
We aren't doing general-purpose module map search, only extern module maps based on relative or absolute paths. In practice we don't see system and non-system maps referencing each other, so I think anything more complicated isn't really justified. Though if people think we shouldn't propagate IsSystem for absolute paths, I'm fine with that complication.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D111476/new/
https://reviews.llvm.org/D111476
More information about the cfe-commits
mailing list