61 lines · cpp
1// RUN: %clang_cc1 %s -fopenacc -ast-dump | FileCheck %s2 3// Test this with PCH.4// RUN: %clang_cc1 %s -fopenacc -emit-pch -o %t %s5// RUN: %clang_cc1 %s -fopenacc -include-pch %t -ast-dump-all | FileCheck %s6#ifndef PCH_HELPER7#define PCH_HELPER8 9void Uses() {10 // CHECK: FunctionDecl{{.*}}Uses11 // CHECK-NEXT: CompoundStmt12 13 int I;14 // CHECK-NEXT: DeclStmt15 // CHECK-NEXT: VarDecl16 17#pragma acc exit data copyout(I) finalize18 // CHECK-NEXT: OpenACCExitDataConstruct{{.*}}exit data19 // CHECK-NEXT: copyout clause20 // CHECK-NEXT: DeclRefExpr{{.*}}'I' 'int'21 // CHECK-NEXT: finalize clause22}23 24template<typename T>25void TemplUses() {26 // CHECK: FunctionTemplateDecl{{.*}}TemplUses27 // CHECK-NEXT: TemplateTypeParmDecl{{.*}}T28 // CHECK-NEXT: FunctionDecl{{.*}}TemplUses29 // CHECK-NEXT: CompoundStmt30 31 T I;32 // CHECK-NEXT: DeclStmt33 // CHECK-NEXT: VarDecl34 35#pragma acc exit data copyout(I) finalize36 // CHECK-NEXT: OpenACCExitDataConstruct{{.*}}exit data37 // CHECK-NEXT: copyout clause38 // CHECK-NEXT: DeclRefExpr{{.*}}'I' 'T'39 // CHECK-NEXT: finalize clause40 41 // Instantiations42 // CHECK-NEXT: FunctionDecl{{.*}} TemplUses 'void ()' implicit_instantiation43 // CHECK-NEXT: TemplateArgument type 'int'44 // CHECK-NEXT: BuiltinType{{.*}} 'int'45 // CHECK-NEXT: CompoundStmt46 47 // CHECK-NEXT: DeclStmt48 // CHECK-NEXT: VarDecl49 50 // CHECK-NEXT: OpenACCExitDataConstruct{{.*}}exit data51 // CHECK-NEXT: copyout clause52 // CHECK-NEXT: DeclRefExpr{{.*}}'I' 'int'53 // CHECK-NEXT: finalize clause54}55void Inst() {56 TemplUses<int>();57}58 59 60#endif // PCH_HELPER61