summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2013-01-31 03:23:57 +0000
committerNick Lewycky <nicholas@mxc.ca>2013-01-31 03:23:57 +0000
commitf0f5616457e34d9183db2bd74341a2d1641d3054 (patch)
treea4ec1dac6c32eb7728a725b6d1d687c8474fecce /clang/lib/Serialization
parent60bd4be17a08dae3f742b71a9e622408d4fecc1d (diff)
downloadbcm5719-llvm-f0f5616457e34d9183db2bd74341a2d1641d3054.tar.gz
bcm5719-llvm-f0f5616457e34d9183db2bd74341a2d1641d3054.zip
Remove elements from Sema.UndefinedInternals as functions are defined. Also
filter the elements before emitting them into a PCH. No user-visible functionality change, except that PCH files may be smaller? llvm-svn: 174034
Diffstat (limited to 'clang/lib/Serialization')
-rw-r--r--clang/lib/Serialization/ASTReader.cpp4
-rw-r--r--clang/lib/Serialization/ASTWriter.cpp9
2 files changed, 7 insertions, 6 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp
index ac86d41eb14..d38b5308de0 100644
--- a/clang/lib/Serialization/ASTReader.cpp
+++ b/clang/lib/Serialization/ASTReader.cpp
@@ -1,4 +1,4 @@
-//===--- ASTReader.cpp - AST File Reader ------------------------*- C++ -*-===//
+//===--- ASTReader.cpp - AST File Reader ----------------------------------===//
//
// The LLVM Compiler Infrastructure
//
@@ -5963,7 +5963,7 @@ void ASTReader::ReadKnownNamespaces(
}
void ASTReader::ReadUndefinedInternals(
- llvm::MapVector<NamedDecl*, SourceLocation> &Undefined) {
+ llvm::DenseMap<NamedDecl*, SourceLocation> &Undefined) {
for (unsigned Idx = 0, N = UndefinedInternals.size(); Idx != N;) {
NamedDecl *D = cast<NamedDecl>(GetDecl(UndefinedInternals[Idx++]));
SourceLocation Loc =
diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp
index 25e3d52f370..8120799c11d 100644
--- a/clang/lib/Serialization/ASTWriter.cpp
+++ b/clang/lib/Serialization/ASTWriter.cpp
@@ -3590,10 +3590,11 @@ void ASTWriter::WriteASTCore(Sema &SemaRef,
// Build a record of all used, undefined objects with internal linkage.
RecordData UndefinedInternals;
- for (llvm::MapVector<NamedDecl*, SourceLocation>::iterator
- I = SemaRef.UndefinedInternals.begin(),
- IEnd = SemaRef.UndefinedInternals.end();
- I != IEnd; ++I) {
+
+ SmallVector<std::pair<NamedDecl *, SourceLocation>, 16> Undefined;
+ SemaRef.getUndefinedInternals(Undefined);
+ for (SmallVectorImpl<std::pair<NamedDecl *, SourceLocation> >::iterator
+ I = Undefined.begin(), E = Undefined.end(); I != E; ++I) {
AddDeclRef(I->first, UndefinedInternals);
AddSourceLocation(I->second, UndefinedInternals);
}
OpenPOWER on IntegriCloud