blob: 6b519a3d6fd6cff560cbfb5ab2eefe730bb85b29 [file] [log] [blame]
cchen82f2c612020-12-15 13:49:52 -06001// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=51 %s -verify=expected,omp51 -Wuninitialized -DOMP51
2// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=51 %s -verify=expected,omp51 -Wuninitialized -DOMP51
3
cchene06f3e02019-11-15 13:02:06 -05004// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=50 %s -verify=expected,omp5 -Wuninitialized -DOMP5
5// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=50 %s -verify=expected,omp5 -Wuninitialized -DOMP5
Kelvin Lia579b912016-07-14 02:54:56 +00006
cchene06f3e02019-11-15 13:02:06 -05007// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=45 %s -verify=expected,omp45 -Wuninitialized
8// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=45 %s -verify=expected,omp45 -Wuninitialized
Alexey Bataeva8a9153a2017-12-29 18:07:07 +00009
Kelvin Lia579b912016-07-14 02:54:56 +000010void foo() {
11}
12
13template <class T, typename S, int N, int ST>
14T tmain(T argc, S **argv) {
15 int i;
16 #pragma omp target parallel for simd defaultmap // expected-error {{expected '(' after 'defaultmap'}}
17 for (i = 0; i < argc; ++i) foo();
cchen82f2c612020-12-15 13:49:52 -060018#pragma omp target parallel for simd defaultmap( // omp51-error {{'alloc', 'from', 'to', 'tofrom', 'firstprivate', 'none', 'default', 'present' in OpenMP clause 'defaultmap'}} omp5-error {{expected 'alloc', 'from', 'to', 'tofrom', 'firstprivate', 'none', 'default' in OpenMP clause 'defaultmap'}} expected-error {{expected ')'}} expected-note {{to match this '('}} omp45-error {{expected 'tofrom' in OpenMP clause 'defaultmap'}}
Kelvin Lia579b912016-07-14 02:54:56 +000019 for (i = 0; i < argc; ++i) foo();
cchen82f2c612020-12-15 13:49:52 -060020#pragma omp target parallel for simd defaultmap() // omp51-error {{'alloc', 'from', 'to', 'tofrom', 'firstprivate', 'none', 'default', 'present' in OpenMP clause 'defaultmap'}} omp5-error {{expected 'alloc', 'from', 'to', 'tofrom', 'firstprivate', 'none', 'default' in OpenMP clause 'defaultmap'}} omp45-error {{expected 'tofrom' in OpenMP clause 'defaultmap'}}
Kelvin Lia579b912016-07-14 02:54:56 +000021 for (i = 0; i < argc; ++i) foo();
Alexey Bataevec275272020-04-08 15:19:54 -040022#pragma omp target parallel for simd defaultmap(tofrom // expected-error {{expected ')'}} expected-note {{to match this '('}} omp45-warning {{missing ':' after defaultmap modifier - ignoring}} omp45-error {{expected 'scalar' in OpenMP clause 'defaultmap'}}
Kelvin Lia579b912016-07-14 02:54:56 +000023 for (i = 0; i < argc; ++i) foo();
cchen82f2c612020-12-15 13:49:52 -060024 #pragma omp target parallel for simd defaultmap (tofrom: // expected-error {{expected ')'}} expected-note {{to match this '('}} omp51-error {{expected 'scalar', 'aggregate', 'pointer' in OpenMP clause 'defaultmap'}} omp5-error {{expected 'scalar', 'aggregate', 'pointer' in OpenMP clause 'defaultmap'}} omp45-error {{expected 'scalar' in OpenMP clause 'defaultmap'}}
Kelvin Lia579b912016-07-14 02:54:56 +000025 for (i = 0; i < argc; ++i) foo();
Alexey Bataevec275272020-04-08 15:19:54 -040026#pragma omp target parallel for simd defaultmap(tofrom) // omp45-warning {{missing ':' after defaultmap modifier - ignoring}} omp45-error {{expected 'scalar' in OpenMP clause 'defaultmap'}}
Kelvin Lia579b912016-07-14 02:54:56 +000027 for (i = 0; i < argc; ++i) foo();
cchen82f2c612020-12-15 13:49:52 -060028#pragma omp target parallel for simd defaultmap(tofrom scalar) // omp45-warning {{missing ':' after defaultmap modifier - ignoring}} omp5-error {{expected ')'}} omp5-note {{to match this '('}} omp51-error {{expected ')'}} omp51-note {{to match this '('}}
Kelvin Lia579b912016-07-14 02:54:56 +000029 for (i = 0; i < argc; ++i) foo();
Alexey Bataevec275272020-04-08 15:19:54 -040030#pragma omp target parallel for simd defaultmap(tofrom, // expected-error {{expected ')'}} omp45-warning {{missing ':' after defaultmap modifier - ignoring}} expected-note {{to match this '('}} omp45-error {{expected 'scalar' in OpenMP clause 'defaultmap'}}
Kelvin Lia579b912016-07-14 02:54:56 +000031 for (i = 0; i < argc; ++i) foo();
cchen82f2c612020-12-15 13:49:52 -060032 #pragma omp target parallel for simd defaultmap (scalar: // expected-error {{expected ')'}} omp51-error {{expected 'scalar', 'aggregate', 'pointer' in OpenMP clause 'defaultmap'}} omp5-error {{expected 'scalar', 'aggregate', 'pointer' in OpenMP clause 'defaultmap'}} omp51-error {{'alloc', 'from', 'to', 'tofrom', 'firstprivate', 'none', 'default', 'present' in OpenMP clause 'defaultmap'}} omp5-error {{expected 'alloc', 'from', 'to', 'tofrom', 'firstprivate', 'none', 'default' in OpenMP clause 'defaultmap'}} expected-note {{to match this '('}} omp45-error {{expected 'tofrom' in OpenMP clause 'defaultmap'}}
Kelvin Lia579b912016-07-14 02:54:56 +000033 for (i = 0; i < argc; ++i) foo();
Alexey Bataevec275272020-04-08 15:19:54 -040034#pragma omp target parallel for simd defaultmap(tofrom, scalar // expected-error {{expected ')'}} omp45-warning {{missing ':' after defaultmap modifier - ignoring}} expected-note {{to match this '('}} omp45-error {{expected 'scalar' in OpenMP clause 'defaultmap'}}
Kelvin Lia579b912016-07-14 02:54:56 +000035 for (i = 0; i < argc; ++i) foo();
36
37 return argc;
38}
39
40int main(int argc, char **argv) {
41 int i;
42 #pragma omp target parallel for simd defaultmap // expected-error {{expected '(' after 'defaultmap'}}
43 for (i = 0; i < argc; ++i) foo();
cchen82f2c612020-12-15 13:49:52 -060044#pragma omp target parallel for simd defaultmap( // omp51-error {{'alloc', 'from', 'to', 'tofrom', 'firstprivate', 'none', 'default', 'present' in OpenMP clause 'defaultmap'}} omp5-error {{expected 'alloc', 'from', 'to', 'tofrom', 'firstprivate', 'none', 'default' in OpenMP clause 'defaultmap'}} expected-error {{expected ')'}} expected-note {{to match this '('}} omp45-error {{expected 'tofrom' in OpenMP clause 'defaultmap'}}
Kelvin Lia579b912016-07-14 02:54:56 +000045 for (i = 0; i < argc; ++i) foo();
cchen82f2c612020-12-15 13:49:52 -060046#pragma omp target parallel for simd defaultmap() // omp51-error {{'alloc', 'from', 'to', 'tofrom', 'firstprivate', 'none', 'default', 'present' in OpenMP clause 'defaultmap'}} omp5-error {{expected 'alloc', 'from', 'to', 'tofrom', 'firstprivate', 'none', 'default' in OpenMP clause 'defaultmap'}} omp45-error {{expected 'tofrom' in OpenMP clause 'defaultmap'}}
Kelvin Lia579b912016-07-14 02:54:56 +000047 for (i = 0; i < argc; ++i) foo();
Alexey Bataevec275272020-04-08 15:19:54 -040048#pragma omp target parallel for simd defaultmap(tofrom // expected-error {{expected ')'}} expected-note {{to match this '('}} omp45-warning {{missing ':' after defaultmap modifier - ignoring}} omp45-error {{expected 'scalar' in OpenMP clause 'defaultmap'}}
Kelvin Lia579b912016-07-14 02:54:56 +000049 for (i = 0; i < argc; ++i) foo();
cchen82f2c612020-12-15 13:49:52 -060050 #pragma omp target parallel for simd defaultmap (tofrom: // expected-error {{expected ')'}} expected-note {{to match this '('}} omp51-error {{expected 'scalar', 'aggregate', 'pointer' in OpenMP clause 'defaultmap'}} omp5-error {{expected 'scalar', 'aggregate', 'pointer' in OpenMP clause 'defaultmap'}} omp45-error {{expected 'scalar' in OpenMP clause 'defaultmap'}}
Kelvin Lia579b912016-07-14 02:54:56 +000051 for (i = 0; i < argc; ++i) foo();
Alexey Bataevec275272020-04-08 15:19:54 -040052#pragma omp target parallel for simd defaultmap(tofrom) // omp45-warning {{missing ':' after defaultmap modifier - ignoring}} omp45-error {{expected 'scalar' in OpenMP clause 'defaultmap'}}
Kelvin Lia579b912016-07-14 02:54:56 +000053 for (i = 0; i < argc; ++i) foo();
cchen82f2c612020-12-15 13:49:52 -060054#pragma omp target parallel for simd defaultmap(tofrom scalar) // omp45-warning {{missing ':' after defaultmap modifier - ignoring}} omp5-error {{expected ')'}} omp5-note {{to match this '('}} omp51-error {{expected ')'}} omp51-note {{to match this '('}}
Kelvin Lia579b912016-07-14 02:54:56 +000055 for (i = 0; i < argc; ++i) foo();
Alexey Bataevec275272020-04-08 15:19:54 -040056#pragma omp target parallel for simd defaultmap(tofrom, // expected-error {{expected ')'}} omp45-warning {{missing ':' after defaultmap modifier - ignoring}} expected-note {{to match this '('}} omp45-error {{expected 'scalar' in OpenMP clause 'defaultmap'}}
Kelvin Lia579b912016-07-14 02:54:56 +000057 for (i = 0; i < argc; ++i) foo();
cchen82f2c612020-12-15 13:49:52 -060058 #pragma omp target parallel for simd defaultmap (scalar: // expected-error {{expected ')'}} omp51-error {{'alloc', 'from', 'to', 'tofrom', 'firstprivate', 'none', 'default', 'present' in OpenMP clause 'defaultmap'}} omp5-error {{expected 'alloc', 'from', 'to', 'tofrom', 'firstprivate', 'none', 'default' in OpenMP clause 'defaultmap'}} omp51-error {{expected 'scalar', 'aggregate', 'pointer' in OpenMP clause 'defaultmap'}} omp5-error {{expected 'scalar', 'aggregate', 'pointer' in OpenMP clause 'defaultmap'}} expected-note {{to match this '('}} omp45-error {{expected 'tofrom' in OpenMP clause 'defaultmap'}}
Kelvin Lia579b912016-07-14 02:54:56 +000059 for (i = 0; i < argc; ++i) foo();
Alexey Bataevec275272020-04-08 15:19:54 -040060#pragma omp target parallel for simd defaultmap(tofrom, scalar // expected-error {{expected ')'}} omp45-warning {{missing ':' after defaultmap modifier - ignoring}} expected-note {{to match this '('}} omp45-error {{expected 'scalar' in OpenMP clause 'defaultmap'}}
Kelvin Lia579b912016-07-14 02:54:56 +000061 for (i = 0; i < argc; ++i) foo();
62
63 return tmain<int, char, 1, 0>(argc, argv);
64}