1 // RUN: %clang_cc1 -ast-dump %s | FileCheck %s 2 3 template<class T> 4 class P { 5 public: 6 P(T* t) {} 7 }; 8 9 namespace foo { 10 class A { public: A() {} }; 11 enum B {}; 12 typedef int C; 13 } 14 15 // CHECK: VarDecl {{0x[0-9a-fA-F]+}} <line:16:1, col:36> ImplicitConstrArray 'foo::A [2]' 16 static foo::A ImplicitConstrArray[2]; 17 18 int main() { 19 // CHECK: CXXNewExpr {{0x[0-9a-fA-F]+}} <col:19, col:28> 'foo::A *' 20 P<foo::A> p14 = new foo::A; 21 // CHECK: CXXNewExpr {{0x[0-9a-fA-F]+}} <col:19, col:28> 'foo::B *' 22 P<foo::B> p24 = new foo::B; 23 // CHECK: CXXNewExpr {{0x[0-9a-fA-F]+}} <col:19, col:28> 'foo::C *' 24 P<foo::C> pr4 = new foo::C; 25 } 26 27 foo::A getName() { 28 // CHECK: CXXConstructExpr {{0x[0-9a-fA-F]+}} <col:10, col:17> 'foo::A' 29 return foo::A(); 30 } 31