reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
// RUN: clang-check -ast-dump "%s" -- 2>&1 | FileCheck %s
// CHECK: NamespaceDecl{{.*}}test_namespace
// CHECK-NEXT: CXXRecordDecl{{.*}}TheClass
// CHECK: CXXMethodDecl{{.*}}theMethod
// CHECK-NEXT: ParmVarDecl{{.*}}x
// CHECK-NEXT: CompoundStmt
// CHECK-NEXT:   ReturnStmt
// CHECK-NEXT:     BinaryOperator
//
// RUN: clang-check -ast-dump -ast-dump-filter test_namespace::TheClass::theMethod "%s" -- 2>&1 | FileCheck -check-prefix CHECK-FILTER %s
// CHECK-FILTER-NOT: NamespaceDecl
// CHECK-FILTER-NOT: CXXRecordDecl
// CHECK-FILTER: {{^}}Dumping test_namespace::TheClass::theMethod
// CHECK-FILTER-NEXT: {{^}}CXXMethodDecl{{.*}}theMethod
// CHECK-FILTER-NEXT: ParmVarDecl{{.*}}x
// CHECK-FILTER-NEXT: CompoundStmt
// CHECK-FILTER-NEXT:   ReturnStmt
// CHECK-FILTER-NEXT:     BinaryOperator
//
// RUN: clang-check -ast-print "%s" -- 2>&1 | FileCheck -check-prefix CHECK-PRINT %s
// CHECK-PRINT: namespace test_namespace
// CHECK-PRINT: class TheClass
// CHECK-PRINT: int theMethod(int x)
//
// RUN: clang-check -ast-list "%s" -- 2>&1 | FileCheck -check-prefix CHECK-LIST %s
// CHECK-LIST: test_namespace
// CHECK-LIST-NEXT: test_namespace::TheClass
// CHECK-LIST-NEXT: test_namespace::TheClass::theMethod
// CHECK-LIST-NEXT: x
//
// 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: FieldDecl{{.*}}n
// CHECK-ATTR-NEXT:   AlignedAttr
// CHECK-ATTR-NEXT:     ConstantExpr
// CHECK-ATTR-NEXT:       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 {

class TheClass {
public:
  int theMethod(int x) {
    return x + x;
  }
  int n __attribute__((aligned(1+1)));
};

// 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 {};

}