@@ -8,8 +8,7 @@ void uses() {
8
8
#pragma acc update async self(Var)
9
9
// expected-warning@+1{{OpenACC clause 'self' not yet implemented}}
10
10
#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}}
13
12
#pragma acc update self(Var) device_type(I)
14
13
// expected-warning@+1{{OpenACC clause 'self' not yet implemented}}
15
14
#pragma acc update if(true) self(Var)
@@ -22,46 +21,41 @@ void uses() {
22
21
// expected-warning@+1{{OpenACC clause 'device' not yet implemented}}
23
22
#pragma acc update device(Var)
24
23
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}}
33
27
#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}}
36
31
#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 }}
39
34
#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 }}
42
37
#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 }}
45
40
#pragma acc update device_type(I) device(Var)
46
41
// 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}}
49
43
#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}}
52
45
#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)
53
49
54
50
// TODO: OpenACC: These should diagnose because there isn't at least 1 of
55
51
// 'self', 'host', or 'device'.
56
52
#pragma acc update async
57
53
#pragma acc update wait
58
- // expected-warning@+1{{OpenACC clause 'device_type' not yet implemented}}
59
54
#pragma acc update device_type(I)
60
55
#pragma acc update if(true)
61
56
#pragma acc update if_present
62
57
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'}}
65
59
#pragma acc update if (NC) device_type(I)
66
60
67
61
// expected-error@+2{{OpenACC 'if' clause cannot appear more than once on a 'update' directive}}
0 commit comments