================
Comment at: lib/ASTMatchers/ASTMatchersInternal.cpp:187-191
@@ +186,7 @@
+  }
+  // Delete all bindings when a matcher does not match.
+  // This prevents unexpected exposure of bound nodes in unmatches
+  // branches of the match tree.
+  Builder->removeBindings([](const BoundNodesMap &) { return true; });
+  return false;
+}
----------------
klimek wrote:
> sbenza wrote:
> > klimek wrote:
> > > Shouldn't every matcher already do that?
> > Do what? Delete the bindings?
> > This is where it happens, right?
> > The MatcherInterface implementations don't delete anything.
> > 
> > I pretty much copied matches() and modified it. That stayed the same.
> Hm, curious - does that actually make a difference in any test if we remove 
> it (both here and in matches)?
Removing this doesn't affect the tests.
The callers should already be ignoring the contents Builder if matches() return 
false.
This is here as a protection in case some caller doesn't ignore it.

http://reviews.llvm.org/D6361



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to