Due to potential performance issues, this commit temporarily removes support for the num_threads 'strict' modifier and its corresponding message and severity clauses on the device.
30 lines
740 B
C++
30 lines
740 B
C++
// RUN: %clang_cc1 -verify=expected,both -fopenmp -fopenmp-version=60 %s -fexperimental-new-constant-interpreter
|
|
// RUN: %clang_cc1 -verify=ref,both -fopenmp -fopenmp-version=60 %s
|
|
|
|
int test1() {
|
|
int i;
|
|
int &j = i; // both-note {{declared here}}
|
|
float *f;
|
|
// both-note@+2 {{initializer of 'j' is not a constant expression}}
|
|
// both-error@+1 {{integral constant expression}}
|
|
#pragma omp for simd aligned(f:j)
|
|
for (int i = 0; i < 10; ++i);
|
|
}
|
|
|
|
extern int omp_get_thread_num(void);
|
|
|
|
#define N 64
|
|
|
|
int test2() {
|
|
int x = 0;
|
|
int result[N] = {0};
|
|
|
|
#pragma omp parallel loop num_threads(strict: N) severity(warning) message("msg")
|
|
for (int i = 0; i < N; i++) {
|
|
x = omp_get_thread_num();
|
|
result[i] = i + x;
|
|
}
|
|
}
|
|
|
|
|