summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/FrontendActions.cpp
diff options
context:
space:
mode:
authorBen Langmuir <blangmuir@apple.com>2014-08-09 00:57:23 +0000
committerBen Langmuir <blangmuir@apple.com>2014-08-09 00:57:23 +0000
commit9d6448b1370ad67afcdcf90699f9ffddf2d582a9 (patch)
tree3e1e589597c0444135260451b25d397ca391343b /clang/lib/Frontend/FrontendActions.cpp
parentffbabb792532c7af61335347a30a7c657aac6c0a (diff)
downloadbcm5719-llvm-9d6448b1370ad67afcdcf90699f9ffddf2d582a9.tar.gz
bcm5719-llvm-9d6448b1370ad67afcdcf90699f9ffddf2d582a9.zip
Refactor the module map file used for uniquing a module name out of
class Module. It's almost always going to be the same as getContainingModule() for top-level modules, so just add a map to cover the remaining cases. This lets us do less bookkeeping to keep the ModuleMap fields up to date. llvm-svn: 215268
Diffstat (limited to 'clang/lib/Frontend/FrontendActions.cpp')
-rw-r--r--clang/lib/Frontend/FrontendActions.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/Frontend/FrontendActions.cpp b/clang/lib/Frontend/FrontendActions.cpp
index 6dcaf382c3c..3c247071507 100644
--- a/clang/lib/Frontend/FrontendActions.cpp
+++ b/clang/lib/Frontend/FrontendActions.cpp
@@ -301,10 +301,12 @@ bool GenerateModuleAction::BeginSourceFileAction(CompilerInstance &CI,
return false;
}
- if (!ModuleMapForUniquing)
+ if (ModuleMapForUniquing && ModuleMapForUniquing != ModuleMap) {
+ Module->IsInferred = true;
+ HS.getModuleMap().setInferredModuleAllowedBy(Module, ModuleMapForUniquing);
+ } else {
ModuleMapForUniquing = ModuleMap;
- Module->ModuleMap = ModuleMapForUniquing;
- assert(Module->ModuleMap && "missing module map file");
+ }
FileManager &FileMgr = CI.getFileManager();
OpenPOWER on IntegriCloud