typedef void **omp_allocator_handle_t;
extern const omp_allocator_handle_t omp_null_allocator;
extern const omp_allocator_handle_t omp_default_mem_alloc;
extern const omp_allocator_handle_t omp_large_cap_mem_alloc;
extern const omp_allocator_handle_t omp_const_mem_alloc;
extern const omp_allocator_handle_t omp_high_bw_mem_alloc;
extern const omp_allocator_handle_t omp_low_lat_mem_alloc;
extern const omp_allocator_handle_t omp_cgroup_mem_alloc;
extern const omp_allocator_handle_t omp_pteam_mem_alloc;
extern const omp_allocator_handle_t omp_thread_mem_alloc;
void foo() {
}
bool foobool(int argc) {
return argc;
}
void foobar(int &ref) {
#pragma omp taskgroup task_reduction(+:ref)
#pragma omp masked taskloop simd in_reduction(+:ref)
for (int i = 0; i < 10; ++i)
foo();
}
void foobar1(int &ref) {
#pragma omp taskgroup task_reduction(+:ref)
#pragma omp masked taskloop simd in_reduction(-:ref)
for (int i = 0; i < 10; ++i)
foo();
}
#pragma omp declare reduction (red:int:omp_out += omp_in)
void foobar2(int &ref) {
#pragma omp taskgroup task_reduction(+:ref)
#pragma omp masked taskloop simd in_reduction(red:ref)
for (int i = 0; i < 10; ++i)
foo();
}
void foobar3(int &ref) {
#pragma omp taskgroup task_reduction(red:ref)
#pragma omp masked taskloop simd in_reduction(min:ref)
for (int i = 0; i < 10; ++i)
foo();
}
void foobar4(int &ref) {
#pragma omp masked taskloop simd in_reduction(min:ref)
for (int i = 0; i < 10; ++i)
foo();
}
struct S1; extern S1 a;
class S2 {
mutable int a;
S2 &operator+(const S2 &arg) { return (*this); }
public:
S2() : a(0) {}
S2(S2 &s2) : a(s2.a) {}
static float S2s; static const float S2sc; };
const float S2::S2sc = 0;
S2 b; const S2 ba[5]; class S3 {
int a;
public:
int b;
S3() : a(0) {}
S3(const S3 &s3) : a(s3.a) {}
S3 operator+(const S3 &arg1) { return arg1; }
};
int operator+(const S3 &arg1, const S3 &arg2) { return 5; }
S3 c; const S3 ca[5]; extern const int f; class S4 {
int a;
S4(); S4(const S4 &s4);
S4 &operator+(const S4 &arg) { return (*this); }
public:
S4(int v) : a(v) {}
};
S4 &operator&=(S4 &arg1, S4 &arg2) { return arg1; }
class S5 {
int a;
S5() : a(0) {} S5(const S5 &s5) : a(s5.a) {}
S5 &operator+(const S5 &arg);
public:
S5(int v) : a(v) {}
};
class S6 { #if __cplusplus >= 201103L
#endif
int a;
public:
S6() : a(6) {}
operator int() { return 6; }
} o;
S3 h, k;
#pragma omp threadprivate(h)
template <class T> T tmain(T argc) {
const T d = T(); const T da[5] = {T()}; T qa[5] = {T()};
T i, z;
T &j = i; S3 &p = k; const T &r = da[(int)i]; T &q = qa[(int)i];
T fl;
#pragma omp taskgroup task_reduction(+:argc)
#pragma omp masked taskloop simd in_reduction
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(+:argc)
#pragma omp masked taskloop simd in_reduction +
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(+:argc)
#pragma omp masked taskloop simd in_reduction(
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(+:argc)
#pragma omp masked taskloop simd in_reduction(-
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(+:argc)
#pragma omp masked taskloop simd in_reduction()
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(+:argc)
#pragma omp masked taskloop simd in_reduction(*)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(+:argc)
#pragma omp masked taskloop simd in_reduction(\)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(&:argc)
#pragma omp masked taskloop simd in_reduction(& : argc
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(|:z)
#pragma omp masked taskloop simd in_reduction(| : z,
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(|| : argc ? i : argc)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(foo : argc)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(&&:argc)
#pragma omp masked taskloop simd in_reduction(&& : argc) allocate , allocate(, allocate(omp_default , allocate(omp_default_mem_alloc, allocate(omp_default_mem_alloc:, allocate(omp_default_mem_alloc: argc, allocate(omp_default_mem_alloc: argv), allocate(argv)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(^ : T)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(+:c)
#pragma omp masked taskloop simd in_reduction(+ : a, b, c, d, f)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(min : a, b, c, d, f)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(max : h.b)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(+ : ba)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(* : ca)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(- : da)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(^ : fl)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(&& : S2::S2s)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(&& : S2::S2sc)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(+:k)
#pragma omp masked taskloop simd in_reduction(+ : h, k)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(+ : o)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp parallel private(k)
#pragma omp masked taskloop simd in_reduction(+ : p), in_reduction(+ : p)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(+:p)
#pragma omp masked taskloop simd in_reduction(+ : p), in_reduction(+ : p)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(+ : r)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp parallel shared(i)
#pragma omp parallel reduction(min : i)
#pragma omp masked taskloop simd in_reduction(max : j)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(+:fl)
{
#pragma omp masked taskloop simd allocate(omp_thread_mem_alloc: fl) in_reduction(+ : fl)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(*:fl)
{
#pragma omp masked taskloop simd in_reduction(+ : fl)
for (int i = 0; i < 10; ++i)
foo();
}
}
#pragma omp parallel
#pragma omp for reduction(- : fl)
for (int i = 0; i < 10; ++i)
#pragma omp taskgroup task_reduction(+:fl)
#pragma omp masked taskloop simd in_reduction(+ : fl)
for (int j = 0; j < 10; ++j)
foo();
return T();
}
namespace A {
double x;
#pragma omp threadprivate(x)
}
namespace B {
using A::x;
}
int main(int argc, char **argv) {
const int d = 5; const int da[5] = {0}; int qa[5] = {0};
S4 e(4);
S5 g(5);
int i, z;
int &j = i; S3 &p = k; const int &r = da[i]; int &q = qa[i];
float fl;
int tid = 0;
#pragma omp masked taskloop simd in_reduction filter(tid)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction +
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(-
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction()
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(*)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(\)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(foo : argc
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(|:argc)
#pragma omp masked taskloop simd in_reduction(| : argc,
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(|| : argc > 0 ? argv[1] : argv[2])
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(~ : argc)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(&&:argc, z)
#pragma omp masked taskloop simd in_reduction(&& : argc, z)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(^ : S1)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(+:c)
#pragma omp masked taskloop simd in_reduction(+ : a, b, c, d, f)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(min : a, b, c, d, f)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(max : h.b)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(+ : ba)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(* : ca)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(- : da)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(^ : fl)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(&& : S2::S2s)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(&& : S2::S2sc)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(& : e, g)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(+:k)
#pragma omp masked taskloop simd in_reduction(+ : h, k, B::x)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(+ : o)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp parallel private(k)
#pragma omp masked taskloop simd in_reduction(+ : p), in_reduction(+ : p)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp taskgroup task_reduction(+:p)
#pragma omp masked taskloop simd in_reduction(+ : p), in_reduction(+ : p)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp masked taskloop simd in_reduction(+ : r)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp parallel shared(i)
#pragma omp parallel reduction(min : i)
#pragma omp masked taskloop simd in_reduction(max : j)
for (int i = 0; i < 10; ++i)
foo();
#pragma omp parallel
#pragma omp for private(fl)
for (int i = 0; i < 10; ++i)
#pragma omp taskgroup task_reduction(+:fl)
#pragma omp masked taskloop simd in_reduction(+ : fl)
for (int j = 0; j < 10; ++j)
foo();
#pragma omp taskgroup task_reduction(+:fl)
#pragma omp masked taskloop simd in_reduction(+ : fl)
for (int i = 0; i < 10; ++i)
foo();
static int m;
#pragma omp taskgroup task_reduction(+:m)
#pragma omp masked taskloop simd in_reduction(+ : m)
for (int i = 0; i < 10; ++i)
m++;
return tmain(argc) + tmain(fl); }