Now that we no longer add mappings when there are no local entities,
there is no need to always bump the size of the tables that correspond
to ContinuousRangeMaps.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220208
91177308-0d34-0410-b5e6-
96231b3b80d8
F.TypeRemap.insertOrReplace(
std::make_pair(LocalBaseTypeIndex,
F.BaseTypeIndex - LocalBaseTypeIndex));
F.TypeRemap.insertOrReplace(
std::make_pair(LocalBaseTypeIndex,
F.BaseTypeIndex - LocalBaseTypeIndex));
+
+ TypesLoaded.resize(TypesLoaded.size() + F.LocalNumTypes);
- // Increase size by >= 1 so we get a unique base index in the next module.
- TypesLoaded.resize(TypesLoaded.size() + std::max(F.LocalNumTypes, 1U));
// Introduce the global -> local mapping for declarations within this
// module.
F.GlobalToLocalDeclIDs[&F] = LocalBaseDeclID;
// Introduce the global -> local mapping for declarations within this
// module.
F.GlobalToLocalDeclIDs[&F] = LocalBaseDeclID;
- // Increase size by >= 1 so we get a unique base index in the next module.
- DeclsLoaded.resize(DeclsLoaded.size() + std::max(F.LocalNumDecls, 1U));
+ DeclsLoaded.resize(DeclsLoaded.size() + F.LocalNumDecls);
+ }
F.IdentifierRemap.insertOrReplace(
std::make_pair(LocalBaseIdentifierID,
F.BaseIdentifierID - LocalBaseIdentifierID));
F.IdentifierRemap.insertOrReplace(
std::make_pair(LocalBaseIdentifierID,
F.BaseIdentifierID - LocalBaseIdentifierID));
- // Increase size by >= 1 so we get a unique base index in the next module.
- IdentifiersLoaded.resize(IdentifiersLoaded.size() +
- std::max(F.LocalNumIdentifiers, 1U));
+ IdentifiersLoaded.resize(IdentifiersLoaded.size()
+ + F.LocalNumIdentifiers);
+ }
F.SelectorRemap.insertOrReplace(
std::make_pair(LocalBaseSelectorID,
F.BaseSelectorID - LocalBaseSelectorID));
F.SelectorRemap.insertOrReplace(
std::make_pair(LocalBaseSelectorID,
F.BaseSelectorID - LocalBaseSelectorID));
+
+ SelectorsLoaded.resize(SelectorsLoaded.size() + F.LocalNumSelectors);
- // Increase size by >= 1 so we get a unique base index in the next module.
- SelectorsLoaded.resize(SelectorsLoaded.size() +
- std::max(F.LocalNumSelectors, 1U));
F.SLocEntryOffsets = (const uint32_t *)Blob.data();
F.LocalNumSLocEntries = Record[0];
unsigned SLocSpaceSize = Record[1];
F.SLocEntryOffsets = (const uint32_t *)Blob.data();
F.LocalNumSLocEntries = Record[0];
unsigned SLocSpaceSize = Record[1];
-
- // Increase size by >= 1 so we get a unique base index in the next module.
std::tie(F.SLocEntryBaseID, F.SLocEntryBaseOffset) =
std::tie(F.SLocEntryBaseID, F.SLocEntryBaseOffset) =
- SourceMgr.AllocateLoadedSLocEntries(std::max(F.LocalNumSLocEntries, 1U),
+ SourceMgr.AllocateLoadedSLocEntries(F.LocalNumSLocEntries,
SLocSpaceSize);
// Make our entry in the range map. BaseID is negative and growing, so
// we invert it. Because we invert it, though, we need the other end of
SLocSpaceSize);
// Make our entry in the range map. BaseID is negative and growing, so
// we invert it. Because we invert it, though, we need the other end of
PP.createPreprocessingRecord();
if (!PP.getPreprocessingRecord()->getExternalSource())
PP.getPreprocessingRecord()->SetExternalSource(*this);
PP.createPreprocessingRecord();
if (!PP.getPreprocessingRecord()->getExternalSource())
PP.getPreprocessingRecord()->SetExternalSource(*this);
-
- // Increase size by >= 1 so we get a unique base index in the next module.
StartingID
= PP.getPreprocessingRecord()
StartingID
= PP.getPreprocessingRecord()
- ->allocateLoadedEntities(std::max(F.NumPreprocessedEntities, 1U));
+ ->allocateLoadedEntities(F.NumPreprocessedEntities);
F.BasePreprocessedEntityID = StartingID;
if (F.NumPreprocessedEntities > 0) {
F.BasePreprocessedEntityID = StartingID;
if (F.NumPreprocessedEntities > 0) {
F.MacroRemap.insertOrReplace(
std::make_pair(LocalBaseMacroID,
F.BaseMacroID - LocalBaseMacroID));
F.MacroRemap.insertOrReplace(
std::make_pair(LocalBaseMacroID,
F.BaseMacroID - LocalBaseMacroID));
+
+ MacrosLoaded.resize(MacrosLoaded.size() + F.LocalNumMacros);
- // Increase size by >= 1 so we get a unique base index in the next module.
- MacrosLoaded.resize(MacrosLoaded.size() + std::max(F.LocalNumMacros, 1U));
F.SubmoduleRemap.insertOrReplace(
std::make_pair(LocalBaseSubmoduleID,
F.BaseSubmoduleID - LocalBaseSubmoduleID));
F.SubmoduleRemap.insertOrReplace(
std::make_pair(LocalBaseSubmoduleID,
F.BaseSubmoduleID - LocalBaseSubmoduleID));
- // Increase size by >= 1 so we get a unique base index in the next module.
- SubmodulesLoaded.resize(SubmodulesLoaded.size() +
- std::max(F.LocalNumSubmodules, 1U));
+ SubmodulesLoaded.resize(SubmodulesLoaded.size() + F.LocalNumSubmodules);
+ }