summaryrefslogtreecommitdiffstats
path: root/clang/lib/ASTMatchers/ASTMatchFinder.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2015-10-21 10:07:26 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2015-10-21 10:07:26 +0000
commite8c51fdbd6c74cfa07bc9fae089bc4587cb2226b (patch)
tree09ddff7de42fa6f9cfa6600b0739bc2b7b648b9e /clang/lib/ASTMatchers/ASTMatchFinder.cpp
parent7dacc242d90c98f74cb14d8e841e4a040e33bb81 (diff)
downloadbcm5719-llvm-e8c51fdbd6c74cfa07bc9fae089bc4587cb2226b.tar.gz
bcm5719-llvm-e8c51fdbd6c74cfa07bc9fae089bc4587cb2226b.zip
Revert "[AST] Put TypeLocs and NestedNameSpecifierLocs into the ParentMap."
Putting DynTypedNode in the ParentMap bloats its memory foot print. Before the void* key had 8 bytes, now we're at 40 bytes per key which can mean multiple gigabytes increase for large ASTs and this count doesn't even include all the added TypeLoc nodes. Revert until I come up with a better data structure. This reverts commit r250831. llvm-svn: 250889
Diffstat (limited to 'clang/lib/ASTMatchers/ASTMatchFinder.cpp')
-rw-r--r--clang/lib/ASTMatchers/ASTMatchFinder.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/clang/lib/ASTMatchers/ASTMatchFinder.cpp b/clang/lib/ASTMatchers/ASTMatchFinder.cpp
index 571e7dac240..8807b13c5ed 100644
--- a/clang/lib/ASTMatchers/ASTMatchFinder.cpp
+++ b/clang/lib/ASTMatchers/ASTMatchFinder.cpp
@@ -621,6 +621,9 @@ private:
if (Node.get<TranslationUnitDecl>() ==
ActiveASTContext->getTranslationUnitDecl())
return false;
+ assert(Node.getMemoizationData() &&
+ "Invariant broken: only nodes that support memoization may be "
+ "used in the parent map.");
MatchKey Key;
Key.MatcherID = Matcher.getID();
@@ -864,11 +867,7 @@ bool MatchASTVisitor::TraverseNestedNameSpecifier(NestedNameSpecifier *NNS) {
bool MatchASTVisitor::TraverseNestedNameSpecifierLoc(
NestedNameSpecifierLoc NNS) {
- if (!NNS)
- return true;
-
match(NNS);
-
// We only match the nested name specifier here (as opposed to traversing it)
// because the traversal is already done in the parallel "Loc"-hierarchy.
if (NNS.hasQualifier())
OpenPOWER on IntegriCloud