summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2013-04-12 15:22:25 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2013-04-12 15:22:25 +0000
commit1b4342dbda7d807b39cbbc9e1c7fe7a35465772c (patch)
tree540d97acf388f7c792806d4c0cbd710602ded26c /clang/lib
parentf9cea17f750eea65da0b5a270f57ba2f39908ccc (diff)
downloadbcm5719-llvm-1b4342dbda7d807b39cbbc9e1c7fe7a35465772c.tar.gz
bcm5719-llvm-1b4342dbda7d807b39cbbc9e1c7fe7a35465772c.zip
Sema: Give a typically small DenseMap some inline capacity.
Also reflow code a bit, no change in functionality. llvm-svn: 179382
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaTemplateInstantiate.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/clang/lib/Sema/SemaTemplateInstantiate.cpp b/clang/lib/Sema/SemaTemplateInstantiate.cpp
index f755b8ca452..7ef04e964dc 100644
--- a/clang/lib/Sema/SemaTemplateInstantiate.cpp
+++ b/clang/lib/Sema/SemaTemplateInstantiate.cpp
@@ -2701,11 +2701,10 @@ void LocalInstantiationScope::InstantiatedLocal(const Decl *D, Decl *Inst) {
llvm::PointerUnion<Decl *, DeclArgumentPack *> &Stored = LocalDecls[D];
if (Stored.isNull())
Stored = Inst;
- else if (Stored.is<Decl *>()) {
+ else if (DeclArgumentPack *Pack = Stored.dyn_cast<DeclArgumentPack *>())
+ Pack->push_back(Inst);
+ else
assert(Stored.get<Decl *>() == Inst && "Already instantiated this local");
- Stored = Inst;
- } else
- LocalDecls[D].get<DeclArgumentPack *>()->push_back(Inst);
}
void LocalInstantiationScope::InstantiatedLocalPackArg(const Decl *D,
OpenPOWER on IntegriCloud