1 // RUN: %clang_cc1 -Wno-unused -fblocks -ast-dump -ast-dump-filter Test %s | FileCheck -strict-whitespace %s 2 3 @interface A 4 @end 5 6 @interface TestObjCImplementation : A 7 @end 8 9 @implementation TestObjCImplementation : A { 10 struct X { 11 int i; 12 } X; 13 } 14 - (void) foo { 15 } 16 @end 17 // CHECK: ObjCImplementationDecl{{.*}} TestObjCImplementation 18 // CHECK-NEXT: super ObjCInterface{{.*}} 'A' 19 // CHECK-NEXT: ObjCInterface{{.*}} 'TestObjCImplementation' 20 // CHECK-NEXT: CXXCtorInitializer{{.*}} 'X' 21 // CHECK-NEXT: CXXConstructExpr 22 // CHECK-NEXT: ObjCIvarDecl{{.*}} X 23 // CHECK-NEXT: ObjCMethodDecl{{.*}} foo 24 25 // @() boxing expressions. 26 template <typename T> 27 struct BoxingTest { 28 static id box(T value) { 29 return @(value); 30 } 31 }; 32 33 // CHECK: ObjCBoxedExpr{{.*}} '<dependent type>'{{$}} 34