@@ -15,6 +15,30 @@ void NormalFunc() {
15
15
#pragma acc parallel
16
16
{}
17
17
}
18
+ // FIXME: Add a test once we have clauses for this.
19
+ // CHECK-NEXT: OpenACCComputeConstruct {{.*}}serial
20
+ // CHECK-NEXT: CompoundStmt
21
+ #pragma acc serial
22
+ {
23
+ #pragma acc serial
24
+ // CHECK-NEXT: OpenACCComputeConstruct {{.*}}serial
25
+ // CHECK-NEXT: OpenACCComputeConstruct {{.*}}serial
26
+ // CHECK-NEXT: CompoundStmt
27
+ #pragma acc serial
28
+ {}
29
+ }
30
+ // FIXME: Add a test once we have clauses for this.
31
+ // CHECK-NEXT: OpenACCComputeConstruct {{.*}}kernels
32
+ // CHECK-NEXT: CompoundStmt
33
+ #pragma acc kernels
34
+ {
35
+ #pragma acc kernels
36
+ // CHECK-NEXT: OpenACCComputeConstruct {{.*}}kernels
37
+ // CHECK-NEXT: OpenACCComputeConstruct {{.*}}kernels
38
+ // CHECK-NEXT: CompoundStmt
39
+ #pragma acc kernels
40
+ {}
41
+ }
18
42
}
19
43
20
44
template <typename T>
@@ -24,6 +48,16 @@ void TemplFunc() {
24
48
typename T::type I;
25
49
}
26
50
51
+ #pragma acc serial
52
+ {
53
+ typename T::type I;
54
+ }
55
+
56
+ #pragma acc kernels
57
+ {
58
+ typename T::type I;
59
+ }
60
+
27
61
// CHECK-LABEL: FunctionTemplateDecl {{.*}}TemplFunc
28
62
// CHECK-NEXT: TemplateTypeParmDecl
29
63
@@ -34,6 +68,14 @@ void TemplFunc() {
34
68
// CHECK-NEXT: CompoundStmt
35
69
// CHECK-NEXT: DeclStmt
36
70
// CHECK-NEXT: VarDecl{{.*}} I 'typename T::type'
71
+ // CHECK-NEXT: OpenACCComputeConstruct {{.*}}serial
72
+ // CHECK-NEXT: CompoundStmt
73
+ // CHECK-NEXT: DeclStmt
74
+ // CHECK-NEXT: VarDecl{{.*}} I 'typename T::type'
75
+ // CHECK-NEXT: OpenACCComputeConstruct {{.*}}kernels
76
+ // CHECK-NEXT: CompoundStmt
77
+ // CHECK-NEXT: DeclStmt
78
+ // CHECK-NEXT: VarDecl{{.*}} I 'typename T::type'
37
79
38
80
// Check instantiation.
39
81
// CHECK-LABEL: FunctionDecl{{.*}} used TemplFunc 'void ()' implicit_instantiation
@@ -45,6 +87,14 @@ void TemplFunc() {
45
87
// CHECK-NEXT: CompoundStmt
46
88
// CHECK-NEXT: DeclStmt
47
89
// CHECK-NEXT: VarDecl{{.*}} I 'typename S::type':'int'
90
+ // CHECK-NEXT: OpenACCComputeConstruct {{.*}}serial
91
+ // CHECK-NEXT: CompoundStmt
92
+ // CHECK-NEXT: DeclStmt
93
+ // CHECK-NEXT: VarDecl{{.*}} I 'typename S::type':'int'
94
+ // CHECK-NEXT: OpenACCComputeConstruct {{.*}}kernels
95
+ // CHECK-NEXT: CompoundStmt
96
+ // CHECK-NEXT: DeclStmt
97
+ // CHECK-NEXT: VarDecl{{.*}} I 'typename S::type':'int'
48
98
}
49
99
50
100
struct S {
0 commit comments