[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