diff options
author | Alexander Kornienko <alexfh@google.com> | 2012-10-31 18:46:31 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2012-10-31 18:46:31 +0000 |
commit | 0360d1edeea04d00b56d3b50b5a995e44b086696 (patch) | |
tree | aa6cd610be37c00fb5582e006cd962766bb2a38c /clang | |
parent | 4f5ef2186902a9fa5eb170c7214e4bf9f65f67d0 (diff) | |
download | bcm5719-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.cpp | 4 | ||||
-rw-r--r-- | clang/test/Tooling/clang-check-ast-dump.cpp | 6 |
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 {}; + } |