@@ -8,8 +8,7 @@ void uses() {
88#pragma acc update async self(Var)
99 // expected-warning@+1{{OpenACC clause 'self' not yet implemented}}
1010#pragma acc update wait self(Var)
11- // expected-warning@+2{{OpenACC clause 'self' not yet implemented}}
12- // expected-warning@+1{{OpenACC clause 'device_type' not yet implemented}}
11+ // expected-warning@+1{{OpenACC clause 'self' not yet implemented}}
1312#pragma acc update self(Var) device_type(I)
1413 // expected-warning@+1{{OpenACC clause 'self' not yet implemented}}
1514#pragma acc update if(true) self(Var)
@@ -22,46 +21,41 @@ void uses() {
2221 // expected-warning@+1{{OpenACC clause 'device' not yet implemented}}
2322#pragma acc update device(Var)
2423
25- // TODO: OpenACC: These all should diagnose as they aren't allowed after
26- // device_type.
27- // expected-warning@+3{{OpenACC clause 'self' not yet implemented}}
28- // expected-warning@+2{{OpenACC clause 'device_type' not yet implemented}}
29- // expected-warning@+1{{OpenACC clause 'device_type' not yet implemented}}
30- #pragma acc update self(Var) device_type(I) device_type(I)
31- // expected-warning@+2{{OpenACC clause 'self' not yet implemented}}
32- // expected-warning@+1{{OpenACC clause 'device_type' not yet implemented}}
24+ // expected-warning@+3{{OpenACC clause 'self' not yet implemented}}
25+ // expected-error@+2{{OpenACC clause 'if' may not follow a 'device_type' clause in a 'update' construct}}
26+ // expected-note@+1{{previous clause is here}}
3327#pragma acc update self(Var) device_type(I) if(true)
34- // expected-warning@+2{{OpenACC clause 'self' not yet implemented}}
35- // expected-warning@+1{{OpenACC clause 'device_type' not yet implemented}}
28+ // expected-warning@+3{{OpenACC clause 'self' not yet implemented}}
29+ // expected-error@+2{{OpenACC clause 'if_present' may not follow a 'device_type' clause in a 'update' construct}}
30+ // expected-note@+1{{previous clause is here}}
3631#pragma acc update self(Var) device_type(I) if_present
37- // expected-warning @+2{{OpenACC clause 'device_type' not yet implemented }}
38- // expected-warning @+1{{OpenACC clause 'self' not yet implemented }}
32+ // expected-error @+2{{OpenACC clause 'self' may not follow a 'device_type' clause in a 'update' construct }}
33+ // expected-note @+1{{previous clause is here }}
3934#pragma acc update device_type(I) self(Var)
40- // expected-warning @+2{{OpenACC clause 'device_type' not yet implemented }}
41- // expected-warning @+1{{OpenACC clause 'host' not yet implemented }}
35+ // expected-error @+2{{OpenACC clause 'host' may not follow a 'device_type' clause in a 'update' construct }}
36+ // expected-note @+1{{previous clause is here }}
4237#pragma acc update device_type(I) host(Var)
43- // expected-warning @+2{{OpenACC clause 'device_type' not yet implemented }}
44- // expected-warning @+1{{OpenACC clause 'device' not yet implemented }}
38+ // expected-error @+2{{OpenACC clause 'device' may not follow a 'device_type' clause in a 'update' construct }}
39+ // expected-note @+1{{previous clause is here }}
4540#pragma acc update device_type(I) device(Var)
4641 // These 2 are OK.
47- // expected-warning@+2{{OpenACC clause 'self' not yet implemented}}
48- // expected-warning@+1{{OpenACC clause 'device_type' not yet implemented}}
42+ // expected-warning@+1{{OpenACC clause 'self' not yet implemented}}
4943#pragma acc update self(Var) device_type(I) async
50- // expected-warning@+2{{OpenACC clause 'self' not yet implemented}}
51- // expected-warning@+1{{OpenACC clause 'device_type' not yet implemented}}
44+ // expected-warning@+1{{OpenACC clause 'self' not yet implemented}}
5245#pragma acc update self(Var) device_type(I) wait
46+ // Unless otherwise specified, we assume 'device_type' can happen after itself.
47+ // expected-warning@+1{{OpenACC clause 'self' not yet implemented}}
48+ #pragma acc update self(Var) device_type(I) device_type(I)
5349
5450 // TODO: OpenACC: These should diagnose because there isn't at least 1 of
5551 // 'self', 'host', or 'device'.
5652#pragma acc update async
5753#pragma acc update wait
58- // expected-warning@+1{{OpenACC clause 'device_type' not yet implemented}}
5954#pragma acc update device_type(I)
6055#pragma acc update if(true)
6156#pragma acc update if_present
6257
63- // expected-error@+2{{value of type 'struct NotConvertible' is not contextually convertible to 'bool'}}
64- // expected-warning@+1{{OpenACC clause 'device_type' not yet implemented}}
58+ // expected-error@+1{{value of type 'struct NotConvertible' is not contextually convertible to 'bool'}}
6559#pragma acc update if (NC) device_type(I)
6660
6761 // expected-error@+2{{OpenACC 'if' clause cannot appear more than once on a 'update' directive}}
0 commit comments