[libc++][NFC] Replace typedefs with using aliases in <string> (#126070)
[llvm-project.git] / clang / test / SemaOpenACC / data-construct-device_type-ast.cpp
blob1f497bb7afcc4e5e667cbe461b35bde72983eb0e
1 // RUN: %clang_cc1 %s -fopenacc -ast-dump | FileCheck %s
3 // Test this with PCH.
4 // RUN: %clang_cc1 %s -fopenacc -emit-pch -o %t %s
5 // RUN: %clang_cc1 %s -fopenacc -include-pch %t -ast-dump-all | FileCheck %s
6 #ifndef PCH_HELPER
7 #define PCH_HELPER
9 template<typename T>
10 void TemplUses() {
11 // CHECK: FunctionTemplateDecl{{.*}}TemplUses
12 // CHECK-NEXT: TemplateTypeParmDecl{{.*}}T
13 // CHECK-NEXT: FunctionDecl{{.*}}TemplUses
14 // CHECK-NEXT: CompoundStmt
16 #pragma acc data default(none) device_type(T) dtype(T)
18 // CHECK-NEXT: OpenACCDataConstruct{{.*}} data
19 // CHECK-NEXT: default(none)
20 // CHECK-NEXT: device_type(T)
21 // CHECK-NEXT: dtype(T)
22 // CHECK-NEXT: NullStmt
24 // Instantiations
25 // CHECK-NEXT: FunctionDecl{{.*}} TemplUses 'void ()' implicit_instantiation
26 // CHECK-NEXT: TemplateArgument type 'int'
27 // CHECK-NEXT: BuiltinType{{.*}} 'int'
28 // CHECK-NEXT: CompoundStmt
30 // Argument to 'device-type' is just an identifier, so we don't transform it.
31 // CHECK-NEXT: OpenACCDataConstruct{{.*}} data
32 // CHECK-NEXT: default(none)
33 // CHECK-NEXT: device_type(T)
34 // CHECK-NEXT: dtype(T)
35 // CHECK-NEXT: NullStmt
37 void Inst() {
38 TemplUses<int>();
41 #endif // PCH_HELPER