diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-04-14 00:29:55 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-04-14 00:29:55 +0000 |
commit | 645d2cfd9cb0906aa83dd1725b450c791aacc15e (patch) | |
tree | b1532aebe41dd99183f5baf98a26505e83349355 /clang/lib/Serialization/ASTReader.cpp | |
parent | 42b5969862dc67ee73889c43bf53b7ba833455e0 (diff) | |
download | bcm5719-llvm-645d2cfd9cb0906aa83dd1725b450c791aacc15e.tar.gz bcm5719-llvm-645d2cfd9cb0906aa83dd1725b450c791aacc15e.zip |
[modules] Remove CXX_BASE_SPECIFIERS_OFFSETS table. Instead of storing an ID of
a table entry in the corresponding decl, store an offset from the current
record to the relevant CXX_BASE_SPECIFIERS record. This results in fewer
indirections and a minor .pcm file size reduction.
llvm-svn: 266266
Diffstat (limited to 'clang/lib/Serialization/ASTReader.cpp')
-rw-r--r-- | clang/lib/Serialization/ASTReader.cpp | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index 947df5e4448..5c4371bfefb 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -3053,17 +3053,6 @@ ASTReader::ReadASTBlock(ModuleFile &F, unsigned ClientLoadCapabilities) { F.ObjCCategories.swap(Record); break; - case CXX_BASE_SPECIFIER_OFFSETS: { - if (F.LocalNumCXXBaseSpecifiers != 0) { - Error("duplicate CXX_BASE_SPECIFIER_OFFSETS record in AST file"); - return Failure; - } - - F.LocalNumCXXBaseSpecifiers = Record[0]; - F.CXXBaseSpecifiersOffsets = (const uint32_t *)Blob.data(); - break; - } - case DIAG_PRAGMA_MAPPINGS: if (F.PragmaDiagMappings.empty()) F.PragmaDiagMappings.swap(Record); @@ -6312,18 +6301,6 @@ ASTReader::GetExternalCXXCtorInitializers(uint64_t Offset) { return ReadCXXCtorInitializers(*Loc.F, Record, Idx); } -uint64_t ASTReader::readCXXBaseSpecifiers(ModuleFile &M, - const RecordData &Record, - unsigned &Idx) { - if (Idx >= Record.size() || Record[Idx] > M.LocalNumCXXBaseSpecifiers) { - Error("malformed AST file: missing C++ base specifier"); - return 0; - } - - unsigned LocalID = Record[Idx++]; - return getGlobalBitOffset(M, M.CXXBaseSpecifiersOffsets[LocalID - 1]); -} - CXXBaseSpecifier *ASTReader::GetExternalCXXBaseSpecifiers(uint64_t Offset) { RecordLocation Loc = getLocalBitOffset(Offset); BitstreamCursor &Cursor = Loc.F->DeclsCursor; |