diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-07-28 21:16:51 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-07-28 21:16:51 +0000 |
commit | 2d2689ab787c6d54cb985c28ff3f16370bc01b0f (patch) | |
tree | 291a79151c3bf0945697daa76672253ccd3acfb5 /lib/Serialization | |
parent | 95eab176f51beed44a9bc14c0dcdd37844b23740 (diff) |
Use the local -> global mapping functions for selectors more
consistently in the ASTReader.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136395 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Serialization')
-rw-r--r-- | lib/Serialization/ASTReader.cpp | 21 | ||||
-rw-r--r-- | lib/Serialization/ASTReaderStmt.cpp | 4 |
2 files changed, 15 insertions, 10 deletions
diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp index 1c9c106f1d..0fc9d216a0 100644 --- a/lib/Serialization/ASTReader.cpp +++ b/lib/Serialization/ASTReader.cpp @@ -542,7 +542,7 @@ public: data_type Result; - Result.ID = ReadUnalignedLE32(d); + Result.ID = Reader.getGlobalSelectorID(F, ReadUnalignedLE32(d)); unsigned NumInstanceMethods = ReadUnalignedLE16(d); unsigned NumFactoryMethods = ReadUnalignedLE16(d); @@ -649,7 +649,7 @@ public: const unsigned char* d, unsigned DataLen) { using namespace clang::io; - IdentID ID = ReadUnalignedLE32(d); + IdentID ID = Reader.getGlobalSelectorID(F, ReadUnalignedLE32(d)); bool IsInteresting = ID & 0x01; // Wipe out the "is interesting" bit. @@ -883,12 +883,13 @@ public: case DeclarationName::ObjCOneArgSelector: case DeclarationName::ObjCMultiArgSelector: Key.Data = - (uint64_t)Reader.DecodeSelector(ReadUnalignedLE32(d)).getAsOpaquePtr(); + (uint64_t)Reader.getLocalSelector(F, ReadUnalignedLE32(d)) + .getAsOpaquePtr(); break; case DeclarationName::CXXConstructorName: case DeclarationName::CXXDestructorName: case DeclarationName::CXXConversionFunctionName: - Key.Data = ReadUnalignedLE32(d); // TypeID + Key.Data = Reader.getGlobalTypeID(F, ReadUnalignedLE32(d)); // TypeID break; case DeclarationName::CXXOperatorName: Key.Data = *d++; // OverloadedOperatorKind @@ -1747,12 +1748,12 @@ typedef OnDiskChainedHashTable<HeaderFileInfoTrait> HeaderFileInfoLookupTable; void ASTReader::SetIdentifierIsMacro(IdentifierInfo *II, Module &F, - uint64_t Offset) { + uint64_t LocalOffset) { // Note that this identifier has a macro definition. II->setHasMacroDefinition(true); // Adjust the offset to a global offset. - UnreadMacroRecordOffsets[II] = F.GlobalBitOffset + Offset; + UnreadMacroRecordOffsets[II] = F.GlobalBitOffset + LocalOffset; } void ASTReader::ReadDefinedMacros() { @@ -4774,7 +4775,11 @@ bool ASTReader::ReadSLocEntry(int ID) { return ReadSLocEntryRecord(ID) != Success; } -Selector ASTReader::DecodeSelector(unsigned ID) { +Selector ASTReader::getLocalSelector(Module &M, unsigned LocalID) { + return DecodeSelector(getGlobalSelectorID(M, LocalID)); +} + +Selector ASTReader::DecodeSelector(serialization::SelectorID ID) { if (ID == 0) return Selector(); @@ -4825,7 +4830,7 @@ ASTReader::ReadDeclarationName(Module &F, case DeclarationName::ObjCZeroArgSelector: case DeclarationName::ObjCOneArgSelector: case DeclarationName::ObjCMultiArgSelector: - return DeclarationName(GetSelector(Record, Idx)); + return DeclarationName(ReadSelector(F, Record, Idx)); case DeclarationName::CXXConstructorName: return Context->DeclarationNames.getCXXConstructorName( diff --git a/lib/Serialization/ASTReaderStmt.cpp b/lib/Serialization/ASTReaderStmt.cpp index 5e8262b947..cfe46d75b1 100644 --- a/lib/Serialization/ASTReaderStmt.cpp +++ b/lib/Serialization/ASTReaderStmt.cpp @@ -791,7 +791,7 @@ void ASTStmtReader::VisitObjCEncodeExpr(ObjCEncodeExpr *E) { void ASTStmtReader::VisitObjCSelectorExpr(ObjCSelectorExpr *E) { VisitExpr(E); - E->setSelector(Reader.GetSelector(Record, Idx)); + E->setSelector(Reader.ReadSelector(F, Record, Idx)); E->setAtLoc(ReadSourceLocation(Record, Idx)); E->setRParenLoc(ReadSourceLocation(Record, Idx)); } @@ -867,7 +867,7 @@ void ASTStmtReader::VisitObjCMessageExpr(ObjCMessageExpr *E) { if (Record[Idx++]) E->setMethodDecl(ReadDeclAs<ObjCMethodDecl>(Record, Idx)); else - E->setSelector(Reader.GetSelector(Record, Idx)); + E->setSelector(Reader.ReadSelector(F, Record, Idx)); E->LBracLoc = ReadSourceLocation(Record, Idx); E->RBracLoc = ReadSourceLocation(Record, Idx); |