diff options
author | Ben Langmuir <blangmuir@apple.com> | 2014-08-09 00:57:23 +0000 |
---|---|---|
committer | Ben Langmuir <blangmuir@apple.com> | 2014-08-09 00:57:23 +0000 |
commit | 9d6448b1370ad67afcdcf90699f9ffddf2d582a9 (patch) | |
tree | 3e1e589597c0444135260451b25d397ca391343b /clang/lib/Frontend/FrontendActions.cpp | |
parent | ffbabb792532c7af61335347a30a7c657aac6c0a (diff) | |
download | bcm5719-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.cpp | 8 |
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(); |