diff options
Diffstat (limited to 'clang/lib/Serialization/ASTWriter.cpp')
-rw-r--r-- | clang/lib/Serialization/ASTWriter.cpp | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp index 8816575ba60e..749aaa4cd6e1 100644 --- a/clang/lib/Serialization/ASTWriter.cpp +++ b/clang/lib/Serialization/ASTWriter.cpp @@ -3558,12 +3558,8 @@ public: if (MacroOffset) DataLen += 4; // MacroDirectives offset. - if (NeedDecls) { - for (IdentifierResolver::iterator D = IdResolver.begin(II), - DEnd = IdResolver.end(); - D != DEnd; ++D) - DataLen += 4; - } + if (NeedDecls) + DataLen += std::distance(IdResolver.begin(II), IdResolver.end()) * 4; } return emitULEBKeyDataLength(KeyLen, DataLen, Out); } @@ -3608,8 +3604,7 @@ public: // "stat"), but the ASTReader adds declarations to the end of the list // (so we need to see the struct "stat" before the function "stat"). // Only emit declarations that aren't from a chained PCH, though. - SmallVector<NamedDecl *, 16> Decls(IdResolver.begin(II), - IdResolver.end()); + SmallVector<NamedDecl *, 16> Decls(IdResolver.decls(II)); for (NamedDecl *D : llvm::reverse(Decls)) LE.write<uint32_t>( Writer.getDeclID(getDeclForLocalLookup(PP.getLangOpts(), D))); @@ -4887,13 +4882,9 @@ ASTFileSignature ASTWriter::WriteASTCore(Sema &SemaRef, StringRef isysroot, } // Sort the identifiers to visit based on their name. llvm::sort(IIs, llvm::deref<std::less<>>()); - for (const IdentifierInfo *II : IIs) { - for (IdentifierResolver::iterator D = SemaRef.IdResolver.begin(II), - DEnd = SemaRef.IdResolver.end(); - D != DEnd; ++D) { - GetDeclRef(*D); - } - } + for (const IdentifierInfo *II : IIs) + for (const Decl *D : SemaRef.IdResolver.decls(II)) + GetDeclRef(D); } // For method pool in the module, if it contains an entry for a selector, |