diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-08-04 00:01:48 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-08-04 00:01:48 +0000 |
commit | e92b8a1dbba150e213c4980710fcb59ec5c5c570 (patch) | |
tree | 92dd7c18e002217bb284e6b6322b79ff28c6b39c /lib/Serialization/ASTReaderDecl.cpp | |
parent | 8d28897e32a43132bd6d01b0f5b64ab37c1f76a3 (diff) |
Don't introduce a local -> global mapping for CXXBaseSpecifiers. The
IDs will never cross module boundaries, since they're tied to the
CXXDefinitionData, so just use a local mapping throughout. Eliminate
the global -> local tables and supporting data.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136847 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Serialization/ASTReaderDecl.cpp')
-rw-r--r-- | lib/Serialization/ASTReaderDecl.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/Serialization/ASTReaderDecl.cpp b/lib/Serialization/ASTReaderDecl.cpp index 1f350f392d..0455b3291d 100644 --- a/lib/Serialization/ASTReaderDecl.cpp +++ b/lib/Serialization/ASTReaderDecl.cpp @@ -889,10 +889,10 @@ void ASTDeclReader::ReadCXXDefinitionData( Data.NumBases = Record[Idx++]; if (Data.NumBases) - Data.Bases = Reader.GetCXXBaseSpecifiersOffset(Record[Idx++]); + Data.Bases = Reader.readCXXBaseSpecifiers(F, Record, Idx); Data.NumVBases = Record[Idx++]; if (Data.NumVBases) - Data.VBases = Reader.GetCXXBaseSpecifiersOffset(Record[Idx++]); + Data.VBases = Reader.readCXXBaseSpecifiers(F, Record, Idx); Reader.ReadUnresolvedSet(F, Data.Conversions, Record, Idx); Reader.ReadUnresolvedSet(F, Data.VisibleConversions, Record, Idx); @@ -1419,6 +1419,10 @@ ASTReader::RecordLocation ASTReader::getLocalBitOffset(uint64_t GlobalOffset) { return RecordLocation(I->second, GlobalOffset - I->second->GlobalBitOffset); } +uint64_t ASTReader::getGlobalBitOffset(Module &M, uint32_t LocalOffset) { + return LocalOffset + M.GlobalBitOffset; +} + void ASTDeclReader::attachPreviousDecl(Decl *D, Decl *previous) { assert(D && previous); if (TagDecl *TD = dyn_cast<TagDecl>(D)) { |