]> granicus.if.org Git - clang/commitdiff
[ASTMatchers] Don't create a copy of a std::set when iterating over it.
authorBenjamin Kramer <benny.kra@googlemail.com>
Tue, 10 Oct 2017 07:21:34 +0000 (07:21 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Tue, 10 Oct 2017 07:21:34 +0000 (07:21 +0000)
This is a bit awkward because lookup returns a copy instead of a
reference. No functionality change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@315276 91177308-0d34-0410-b5e6-96231b3b80d8

lib/ASTMatchers/ASTMatchFinder.cpp

index 49b15ee68500af14fb2666e726eb2d37d2c52a4f..02aee4b46ddd16540b0be037886e47de2de200c1 100644 (file)
@@ -734,7 +734,10 @@ private:
                             BoundNodesTreeBuilder *Builder) {
     const Type *const CanonicalType =
       ActiveASTContext->getCanonicalType(TypeNode);
-    for (const TypedefNameDecl *Alias : TypeAliases.lookup(CanonicalType)) {
+    auto Aliases = TypeAliases.find(CanonicalType);
+    if (Aliases == TypeAliases.end())
+      return false;
+    for (const TypedefNameDecl *Alias : Aliases->second) {
       BoundNodesTreeBuilder Result(*Builder);
       if (Matcher.matches(*Alias, this, &Result)) {
         *Builder = std::move(Result);