[PATCH] D107921: [Modules] Fix bug where header resolution in modules doesn't work when compiling with relative paths.
Amy Huang via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Aug 13 13:30:37 PDT 2021
akhuang updated this revision to Diff 366344.
akhuang added a comment.
undo previous change
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D107921/new/
https://reviews.llvm.org/D107921
Files:
clang/lib/Lex/HeaderSearch.cpp
Index: clang/lib/Lex/HeaderSearch.cpp
===================================================================
--- clang/lib/Lex/HeaderSearch.cpp
+++ clang/lib/Lex/HeaderSearch.cpp
@@ -819,9 +819,19 @@
bool IncluderIsSystemHeader =
Includer ? getFileInfo(Includer).DirInfo != SrcMgr::C_User :
BuildSystemModule;
- if (Optional<FileEntryRef> FE = getFileAndSuggestModule(
- TmpDir, IncludeLoc, IncluderAndDir.second, IncluderIsSystemHeader,
- RequestingModule, SuggestedModule)) {
+
+ Optional<FileEntryRef> FE = getFileAndSuggestModule(
+ TmpDir, IncludeLoc, IncluderAndDir.second, IncluderIsSystemHeader,
+ RequestingModule, SuggestedModule);
+
+ // If this is a system header, we should also search from the current
+ // working directory and not the directory of the module map.
+ if (!FE && IncluderIsSystemHeader)
+ FE = getFileAndSuggestModule(
+ Filename, IncludeLoc, IncluderAndDir.second, IncluderIsSystemHeader,
+ RequestingModule, SuggestedModule);
+
+ if (FE) {
if (!Includer) {
assert(First && "only first includer can have no file");
return FE;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D107921.366344.patch
Type: text/x-patch
Size: 1217 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210813/aca1ffde/attachment-0001.bin>
More information about the cfe-commits
mailing list