summaryrefslogtreecommitdiffstats
path: root/clang/lib/Lex/HeaderSearch.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-12-07 21:25:07 +0000
committerDouglas Gregor <dgregor@apple.com>2011-12-07 21:25:07 +0000
commit8030677b70eccdecd180499cae9ded4e7cf9c80f (patch)
tree55bf8ab87d76a480304c84515bd7370a270e59fb /clang/lib/Lex/HeaderSearch.cpp
parent5ec9183afcbcc415b3f988f1188f9f3b8554118d (diff)
downloadbcm5719-llvm-8030677b70eccdecd180499cae9ded4e7cf9c80f.tar.gz
bcm5719-llvm-8030677b70eccdecd180499cae9ded4e7cf9c80f.zip
Make sure we pick up module_private.map when loading a module.map file.
llvm-svn: 146074
Diffstat (limited to 'clang/lib/Lex/HeaderSearch.cpp')
-rw-r--r--clang/lib/Lex/HeaderSearch.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/clang/lib/Lex/HeaderSearch.cpp b/clang/lib/Lex/HeaderSearch.cpp
index 7035b9c45d9..9a7230c24e6 100644
--- a/clang/lib/Lex/HeaderSearch.cpp
+++ b/clang/lib/Lex/HeaderSearch.cpp
@@ -799,7 +799,16 @@ bool HeaderSearch::loadModuleMapFile(const FileEntry *File) {
return !KnownDir->second;
bool Result = ModMap.parseModuleMapFile(File);
- DirectoryHasModuleMap[Dir] = !Result;
+ if (!Result && llvm::sys::path::filename(File->getName()) == "module.map") {
+ // If the file we loaded was a module.map, look for the corresponding
+ // module_private.map.
+ llvm::SmallString<128> PrivateFilename(Dir->getName());
+ llvm::sys::path::append(PrivateFilename, "module_private.map");
+ if (const FileEntry *PrivateFile = FileMgr.getFile(PrivateFilename))
+ Result = ModMap.parseModuleMapFile(PrivateFile);
+ }
+
+ DirectoryHasModuleMap[Dir] = !Result;
return Result;
}
OpenPOWER on IntegriCloud