Skip to content

Commit ebf6fd6

Browse files
committed
Make OpenMP tests less brittle in the face of changes in constant
evaluation diagnostics.
1 parent d4e08c9 commit ebf6fd6

File tree

58 files changed

+794
-1387
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+794
-1387
lines changed

clang/test/OpenMP/distribute_collapse_messages.cpp

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,27 @@
66
// RUN: %clang_cc1 -verify -fopenmp-simd -std=c++98 %s -Wuninitialized
77
// RUN: %clang_cc1 -verify -fopenmp-simd -std=c++11 %s -Wuninitialized
88

9+
// expected-note@* 0+{{declared here}}
10+
911
void foo() {
1012
}
1113

12-
#if __cplusplus >= 201103L
13-
// expected-note@+2 4 {{declared here}}
14-
#endif
1514
bool foobool(int argc) {
1615
return argc;
1716
}
1817

19-
struct S1; // expected-note {{declared here}}
18+
struct S1;
2019

21-
template <class T, typename S, int N, int ST> // expected-note {{declared here}}
22-
T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
20+
template <class T, typename S, int N, int ST>
21+
T tmain(T argc, S **argv) {
2322
#pragma omp distribute collapse // expected-error {{expected '(' after 'collapse'}}
2423
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
2524
#pragma omp distribute collapse ( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
2625
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
2726
#pragma omp distribute collapse () // expected-error {{expected expression}}
2827
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
29-
// expected-error@+3 {{expected ')'}} expected-note@+3 {{to match this '('}}
30-
// expected-error@+2 2 {{integral constant expression}}
31-
// expected-note@+1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
28+
// expected-error@+2 {{expected ')'}} expected-note@+2 {{to match this '('}}
29+
// expected-error@+1 2 {{integral constant expression}} expected-note@+1 0+{{constant expression}}
3230
#pragma omp distribute collapse (argc
3331
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
3432
// expected-error@+1 2 {{argument to 'collapse' clause must be a strictly positive integer value}}
@@ -38,18 +36,16 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
3836
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
3937
#pragma omp distribute collapse ((ST > 0) ? 1 + ST : 2) // expected-note 2 {{as specified in 'collapse' clause}}
4038
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp distribute', but found only 1}}
41-
#if __cplusplus >= 201103L
42-
// expected-note@+5 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
43-
#endif
39+
4440
// expected-error@+3 2 {{directive '#pragma omp distribute' cannot contain more than one 'collapse' clause}}
4541
// expected-error@+2 {{argument to 'collapse' clause must be a strictly positive integer value}}
46-
// expected-error@+1 2 {{integral constant expression}}
42+
// expected-error@+1 2 {{integral constant expression}} expected-note@+1 0+{{constant expression}}
4743
#pragma omp distribute collapse (foobool(argc)), collapse (true), collapse (-5)
4844
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
4945
#pragma omp distribute collapse (S) // expected-error {{'S' does not refer to a value}}
5046
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
5147
#if __cplusplus <= 199711L
52-
// expected-error@+4 2 {{integral constant expression}}
48+
// expected-error@+4 2 {{integral constant expression}} expected-note@+4 0+{{constant expression}}
5349
#else
5450
// expected-error@+2 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
5551
#endif
@@ -75,23 +71,19 @@ int main(int argc, char **argv) {
7571
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp distribute', but found only 1}}
7672
#pragma omp distribute collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp distribute' are ignored}} expected-note {{as specified in 'collapse' clause}}
7773
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp distribute', but found only 1}}
78-
#if __cplusplus >= 201103L
79-
// expected-note@+2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
80-
#endif
81-
#pragma omp distribute collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}}
74+
75+
#pragma omp distribute collapse (foobool(1) > 0 ? 1 : 2) // expected-error {{integral constant expression}} expected-note 0+{{constant expression}}
8276
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
83-
#if __cplusplus >= 201103L
84-
// expected-note@+5 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
85-
#endif
86-
// expected-error@+3 {{integral constant expression}}
77+
78+
// expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}}
8779
// expected-error@+2 2 {{directive '#pragma omp distribute' cannot contain more than one 'collapse' clause}}
8880
// expected-error@+1 {{argument to 'collapse' clause must be a strictly positive integer value}}
8981
#pragma omp distribute collapse (foobool(argc)), collapse (true), collapse (-5)
9082
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
9183
#pragma omp distribute collapse (S1) // expected-error {{'S1' does not refer to a value}}
9284
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
9385
#if __cplusplus <= 199711L
94-
// expected-error@+4 {{integral constant expression}}
86+
// expected-error@+4 {{integral constant expression}} expected-note@+4 0+{{constant expression}}
9587
#else
9688
// expected-error@+2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
9789
#endif

clang/test/OpenMP/distribute_parallel_for_collapse_messages.cpp

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,19 @@
66
// RUN: %clang_cc1 -verify -fopenmp-simd -std=c++98 %s -Wuninitialized
77
// RUN: %clang_cc1 -verify -fopenmp-simd -std=c++11 %s -Wuninitialized
88

9+
// expected-note@* 0+{{declared here}}
10+
911
void foo() {
1012
}
1113

12-
#if __cplusplus >= 201103L
13-
// expected-note@+2 4 {{declared here}}
14-
#endif
1514
bool foobool(int argc) {
1615
return argc;
1716
}
1817

19-
struct S1; // expected-note {{declared here}}
18+
struct S1;
2019

21-
template <class T, typename S, int N, int ST> // expected-note {{declared here}}
22-
T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
20+
template <class T, typename S, int N, int ST>
21+
T tmain(T argc, S **argv) {
2322
#pragma omp target
2423
#pragma omp teams
2524
#pragma omp distribute parallel for collapse // expected-error {{expected '(' after 'collapse'}}
@@ -34,9 +33,8 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
3433
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
3534
#pragma omp target
3635
#pragma omp teams
37-
// expected-error@+3 {{expected ')'}} expected-note@+3 {{to match this '('}}
38-
// expected-error@+2 2 {{integral constant expression}}
39-
// expected-note@+1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
36+
// expected-error@+2 {{expected ')'}} expected-note@+2 {{to match this '('}}
37+
// expected-error@+1 2 {{integral constant expression}} expected-note@+1 0+{{constant expression}}
4038
#pragma omp distribute parallel for collapse (argc
4139
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
4240
#pragma omp target
@@ -52,12 +50,9 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
5250
#pragma omp teams
5351
#pragma omp distribute parallel for collapse ((ST > 0) ? 1 + ST : 2) // expected-note 2 {{as specified in 'collapse' clause}}
5452
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp distribute parallel for', but found only 1}}
55-
// expected-error@+8 2 {{directive '#pragma omp distribute parallel for' cannot contain more than one 'collapse' clause}}
56-
// expected-error@+7 {{argument to 'collapse' clause must be a strictly positive integer value}}
57-
// expected-error@+6 2 {{integral constant expression}}
58-
#if __cplusplus >= 201103L
59-
// expected-note@+4 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
60-
#endif
53+
// expected-error@+5 2 {{directive '#pragma omp distribute parallel for' cannot contain more than one 'collapse' clause}}
54+
// expected-error@+4 {{argument to 'collapse' clause must be a strictly positive integer value}}
55+
// expected-error@+3 2 {{integral constant expression}} expected-note@+3 0+{{constant expression}}
6156
#pragma omp target
6257
#pragma omp teams
6358
#pragma omp distribute parallel for collapse (foobool(argc)), collapse (true), collapse (-5)
@@ -67,7 +62,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
6762
#pragma omp distribute parallel for collapse (S) // expected-error {{'S' does not refer to a value}}
6863
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
6964
#if __cplusplus <= 199711L
70-
// expected-error@+6 2 {{integral constant expression}}
65+
// expected-error@+6 2 {{integral constant expression}} expected-note@+6 0+{{constant expression}}
7166
#else
7267
// expected-error@+4 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
7368
#endif
@@ -111,18 +106,12 @@ int main(int argc, char **argv) {
111106
#pragma omp teams
112107
#pragma omp distribute parallel for collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp distribute parallel for' are ignored}} expected-note {{as specified in 'collapse' clause}}
113108
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp distribute parallel for', but found only 1}}
114-
// expected-error@+6 {{integral constant expression}}
115-
#if __cplusplus >= 201103L
116-
// expected-note@+4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
117-
#endif
109+
// expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}}
118110
#pragma omp target
119111
#pragma omp teams
120112
#pragma omp distribute parallel for collapse (foobool(1) > 0 ? 1 : 2)
121113
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
122-
// expected-error@+8 {{integral constant expression}}
123-
#if __cplusplus >= 201103L
124-
// expected-note@+6{{non-constexpr function 'foobool' cannot be used in a constant expression}}
125-
#endif
114+
// expected-error@+5 {{integral constant expression}} expected-note@+5 0+{{constant expression}}
126115
// expected-error@+4 2 {{directive '#pragma omp distribute parallel for' cannot contain more than one 'collapse' clause}}
127116
// expected-error@+3 {{argument to 'collapse' clause must be a strictly positive integer value}}
128117
#pragma omp target
@@ -134,7 +123,7 @@ int main(int argc, char **argv) {
134123
#pragma omp distribute parallel for collapse (S1) // expected-error {{'S1' does not refer to a value}}
135124
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
136125
#if __cplusplus <= 199711L
137-
// expected-error@+6 {{integral constant expression}}
126+
// expected-error@+6 {{integral constant expression}} expected-note@+6 0+{{constant expression}}
138127
#else
139128
// expected-error@+4 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
140129
#endif

clang/test/OpenMP/distribute_parallel_for_simd_collapse_messages.cpp

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,19 @@
66
// RUN: %clang_cc1 -verify -fopenmp-simd -std=c++98 %s -Wuninitialized
77
// RUN: %clang_cc1 -verify -fopenmp-simd -std=c++11 %s -Wuninitialized
88

9+
// expected-note@* 0+{{declared here}}
10+
911
void foo() {
1012
}
1113

12-
#if __cplusplus >= 201103L
13-
// expected-note@+2 4 {{declared here}}
14-
#endif
1514
bool foobool(int argc) {
1615
return argc;
1716
}
1817

19-
struct S1; // expected-note {{declared here}}
18+
struct S1;
2019

21-
template <class T, typename S, int N, int ST> // expected-note {{declared here}}
22-
T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
20+
template <class T, typename S, int N, int ST>
21+
T tmain(T argc, S **argv) {
2322
#pragma omp target
2423
#pragma omp teams
2524
#pragma omp distribute parallel for simd collapse // expected-error {{expected '(' after 'collapse'}}
@@ -34,9 +33,8 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
3433
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
3534
#pragma omp target
3635
#pragma omp teams
37-
// expected-error@+3 {{expected ')'}} expected-note@+3 {{to match this '('}}
38-
// expected-error@+2 2 {{integral constant expression}}
39-
// expected-note@+1 2 {{read of non-const variable 'argc' is not allowed in a constant expression}}
36+
// expected-error@+2 {{expected ')'}} expected-note@+2 {{to match this '('}}
37+
// expected-error@+1 2 {{integral constant expression}} expected-note@+1 0+{{constant expression}}
4038
#pragma omp distribute parallel for simd collapse (argc
4139
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
4240
#pragma omp target
@@ -52,12 +50,9 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
5250
#pragma omp teams
5351
#pragma omp distribute parallel for simd collapse ((ST > 0) ? 1 + ST : 2) // expected-note 2 {{as specified in 'collapse' clause}}
5452
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST]; // expected-error 2 {{expected 2 for loops after '#pragma omp distribute parallel for simd', but found only 1}}
55-
// expected-error@+8 2 {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'collapse' clause}}
56-
// expected-error@+7 {{argument to 'collapse' clause must be a strictly positive integer value}}
57-
// expected-error@+6 2 {{integral constant expression}}
58-
#if __cplusplus >= 201103L
59-
// expected-note@+4 2 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
60-
#endif
53+
// expected-error@+5 2 {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'collapse' clause}}
54+
// expected-error@+4 {{argument to 'collapse' clause must be a strictly positive integer value}}
55+
// expected-error@+3 2 {{integral constant expression}} expected-note@+3 0+{{constant expression}}
6156
#pragma omp target
6257
#pragma omp teams
6358
#pragma omp distribute parallel for simd collapse (foobool(argc)), collapse (true), collapse (-5)
@@ -67,7 +62,7 @@ T tmain(T argc, S **argv) { //expected-note 2 {{declared here}}
6762
#pragma omp distribute parallel for simd collapse (S) // expected-error {{'S' does not refer to a value}}
6863
for (int i = ST; i < N; i++) argv[0][i] = argv[0][i] - argv[0][i-ST];
6964
#if __cplusplus <= 199711L
70-
// expected-error@+6 2 {{integral constant expression}}
65+
// expected-error@+6 2 {{integral constant expression}} expected-note@+6 0+{{constant expression}}
7166
#else
7267
// expected-error@+4 2 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
7368
#endif
@@ -111,18 +106,12 @@ int main(int argc, char **argv) {
111106
#pragma omp teams
112107
#pragma omp distribute parallel for simd collapse (2+2)) // expected-warning {{extra tokens at the end of '#pragma omp distribute parallel for simd' are ignored}} expected-note {{as specified in 'collapse' clause}}
113108
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4]; // expected-error {{expected 4 for loops after '#pragma omp distribute parallel for simd', but found only 1}}
114-
// expected-error@+6 {{integral constant expression}}
115-
#if __cplusplus >= 201103L
116-
// expected-note@+4 {{non-constexpr function 'foobool' cannot be used in a constant expression}}
117-
#endif
109+
// expected-error@+3 {{integral constant expression}} expected-note@+3 0+{{constant expression}}
118110
#pragma omp target
119111
#pragma omp teams
120112
#pragma omp distribute parallel for simd collapse (foobool(1) > 0 ? 1 : 2)
121113
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
122-
// expected-error@+8 {{integral constant expression}}
123-
#if __cplusplus >= 201103L
124-
// expected-note@+6{{non-constexpr function 'foobool' cannot be used in a constant expression}}
125-
#endif
114+
// expected-error@+5 {{integral constant expression}} expected-note@+5 0+{{constant expression}}
126115
// expected-error@+4 2 {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'collapse' clause}}
127116
// expected-error@+3 {{argument to 'collapse' clause must be a strictly positive integer value}}
128117
#pragma omp target
@@ -134,7 +123,7 @@ int main(int argc, char **argv) {
134123
#pragma omp distribute parallel for simd collapse (S1) // expected-error {{'S1' does not refer to a value}}
135124
for (int i = 4; i < 12; i++) argv[0][i] = argv[0][i] - argv[0][i-4];
136125
#if __cplusplus <= 199711L
137-
// expected-error@+6 {{integral constant expression}}
126+
// expected-error@+6 {{integral constant expression}} expected-note@+6 0+{{constant expression}}
138127
#else
139128
// expected-error@+4 {{integral constant expression must have integral or unscoped enumeration type, not 'char *'}}
140129
#endif

0 commit comments

Comments
 (0)