diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp index 7c83641256a74586f5f104acd3d28db2215e0d2a..1d692c8d7f438e31d1107d014541b89402ade52d 100644 --- a/lib/Serialization/ASTReader.cpp +++ b/lib/Serialization/ASTReader.cpp @@ -7268,8 +7268,7 @@ unsigned ASTReader::getModuleFileID(ModuleFile *F) { // files loaded beforehand will be the same on reload. // FIXME: Is this true even if we have an explicit module file and a PCH? if (F->isModule()) - // FIXME: BaseSubmoduleID appears to be off by one. - return ((F->BaseSubmoduleID + 1) << 1) | 1; + return ((F->BaseSubmoduleID + NUM_PREDEF_SUBMODULE_IDS) << 1) | 1; auto PCHModules = getModuleManager().pch_modules(); auto I = std::find(PCHModules.begin(), PCHModules.end(), F);