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