summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorAlexander Kornienko <alexfh@google.com>2012-10-31 18:46:31 +0000
committerAlexander Kornienko <alexfh@google.com>2012-10-31 18:46:31 +0000
commit0360d1edeea04d00b56d3b50b5a995e44b086696 (patch)
treeaa6cd610be37c00fb5582e006cd962766bb2a38c /clang
parent4f5ef2186902a9fa5eb170c7214e4bf9f65f67d0 (diff)
downloadbcm5719-llvm-0360d1edeea04d00b56d3b50b5a995e44b086696.tar.gz
bcm5719-llvm-0360d1edeea04d00b56d3b50b5a995e44b086696.zip
Fix for -ast-dump-filter
Summary: -ast-dump-filter implementation used to stop AST traversal after traversing a NULL Decl node. Added test and fixed. Reviewers: djasper, klimek, rsmith Reviewed By: djasper CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D93 llvm-svn: 167155
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Frontend/ASTConsumers.cpp4
-rw-r--r--clang/test/Tooling/clang-check-ast-dump.cpp6
2 files changed, 7 insertions, 3 deletions
diff --git a/clang/lib/Frontend/ASTConsumers.cpp b/clang/lib/Frontend/ASTConsumers.cpp
index 4a8f88f3282..882d400c429 100644
--- a/clang/lib/Frontend/ASTConsumers.cpp
+++ b/clang/lib/Frontend/ASTConsumers.cpp
@@ -58,9 +58,7 @@ namespace {
bool shouldWalkTypesOfTypeLocs() const { return false; }
bool TraverseDecl(Decl *D) {
- if (D == NULL)
- return false;
- if (filterMatches(D)) {
+ if (D != NULL && filterMatches(D)) {
Out.changeColor(llvm::raw_ostream::BLUE) <<
(Dump ? "Dumping " : "Printing ") << getName(D) << ":\n";
Out.resetColor();
diff --git a/clang/test/Tooling/clang-check-ast-dump.cpp b/clang/test/Tooling/clang-check-ast-dump.cpp
index 28dcc6eaa86..43686bd250c 100644
--- a/clang/test/Tooling/clang-check-ast-dump.cpp
+++ b/clang/test/Tooling/clang-check-ast-dump.cpp
@@ -26,6 +26,9 @@
// RUN: clang-check -ast-dump -ast-dump-filter test_namespace::TheClass::n "%s" -- 2>&1 | FileCheck -check-prefix CHECK-ATTR %s
// CHECK-ATTR: test_namespace
// CHECK-ATTR-NEXT: int n __attribute__((aligned((BinaryOperator
+//
+// RUN: clang-check -ast-dump -ast-dump-filter test_namespace::AfterNullNode "%s" -- 2>&1 | FileCheck -check-prefix CHECK-AFTER-NULL %s
+// CHECK-AFTER-NULL: class AfterNullNode
namespace test_namespace {
@@ -40,4 +43,7 @@ public:
// Used to fail with -ast-dump-filter X
template<template<typename T> class C> class Z {};
+// Check that traversal continues after the previous construct.
+class AfterNullNode {};
+
}
OpenPOWER on IntegriCloud