diff options
author | Douglas Gregor <dgregor@apple.com> | 2013-01-21 16:16:40 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2013-01-21 16:16:40 +0000 |
commit | 9cfdc03fe7abab2f413bb7fdc59e9be15c382a74 (patch) | |
tree | 5a1d9a5b18931fc718395a03c8fe57b3aa5e5878 /lib/Serialization/ASTWriterDecl.cpp | |
parent | 5a04f9fc2b000da98fd903c8156034304bdadb2f (diff) |
When deserializing a declaration, don't look for redeclarations if its
kind indicates that it can never be redeclared. Good for a 1% speedup,
and redeclaration searching drops off the profile.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173054 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Serialization/ASTWriterDecl.cpp')
-rw-r--r-- | lib/Serialization/ASTWriterDecl.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Serialization/ASTWriterDecl.cpp b/lib/Serialization/ASTWriterDecl.cpp index 7a57bad736..dca93f7fda 100644 --- a/lib/Serialization/ASTWriterDecl.cpp +++ b/lib/Serialization/ASTWriterDecl.cpp @@ -1277,7 +1277,10 @@ template <typename T> void ASTDeclWriter::VisitRedeclarable(Redeclarable<T> *D) { T *First = D->getFirstDeclaration(); if (First->getMostRecentDecl() != First) { - // There is more than one declaration of this entity, so we will need to + assert(isRedeclarableDeclKind(static_cast<T *>(D)->getKind()) && + "Not considered redeclarable?"); + + // There is more than one declaration of this entity, so we will need to // write a redeclaration chain. Writer.AddDeclRef(First, Record); Writer.Redeclarations.insert(First); |