brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · 1c18f85 Raw
116 lines · cpp
1// RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 -o - %s -Wuninitialized2 3// RUN: %clang_cc1 -verify -fopenmp-simd -ferror-limit 100 -o - %s -Wuninitialized4 5void foo() {6}7 8bool foobool(int argc) {9  return argc;10}11 12struct S1; // expected-note {{declared here}}13class S2 {14  mutable int a;15 16public:17  S2() : a(0) {}18  S2 &operator=(S2 &s2) { return *this; }19};20class S3 {21  int a;22 23public:24  S3() : a(0) {}25  S3 &operator=(S3 &s3) { return *this; }26};27class S4 {28  int a;29  S4();30  S4 &operator=(const S4 &s4); // expected-note {{implicitly declared private here}}31 32public:33  S4(int v) : a(v) {}34};35class S5 {36  int a;37  S5() : a(0) {}38  S5 &operator=(const S5 &s5) { return *this; } // expected-note {{implicitly declared private here}}39 40public:41  S5(int v) : a(v) {}42};43template <class T>44class ST {45public:46  static T s;47};48 49S2 k;50S3 h;51S4 l(3);52S5 m(4);53#pragma omp threadprivate(h, k, l, m)54 55namespace A {56double x;57#pragma omp threadprivate(x)58}59namespace B {60using A::x;61}62 63int main(int argc, char **argv) {64  int i;65#pragma omp target66#pragma omp teams distribute parallel for copyin // expected-error {{expected '(' after 'copyin'}}67  for (i = 0; i < argc; ++i)68    foo();69#pragma omp target70#pragma omp teams distribute parallel for copyin( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}71  for (i = 0; i < argc; ++i)72    foo();73#pragma omp target74#pragma omp teams distribute parallel for copyin() // expected-error {{expected expression}}75  for (i = 0; i < argc; ++i)76    foo();77#pragma omp target78#pragma omp teams distribute parallel for copyin(k // expected-error {{expected ')'}} expected-note {{to match this '('}}79  for (i = 0; i < argc; ++i)80    foo();81#pragma omp target82#pragma omp teams distribute parallel for copyin(h, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}83  for (i = 0; i < argc; ++i)84    foo();85#pragma omp target86#pragma omp teams distribute parallel for copyin(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}}87  for (i = 0; i < argc; ++i)88    foo();89#pragma omp target90#pragma omp teams distribute parallel for copyin(l) // expected-error {{'operator=' is a private member of 'S4'}}91  for (i = 0; i < argc; ++i)92    foo();93#pragma omp target94#pragma omp teams distribute parallel for copyin(S1) // expected-error {{'S1' does not refer to a value}}95  for (i = 0; i < argc; ++i)96    foo();97#pragma omp target98#pragma omp teams distribute parallel for copyin(argv[1]) // expected-error {{expected variable name}}99  for (i = 0; i < argc; ++i)100    foo();101#pragma omp target102#pragma omp teams distribute parallel for copyin(i) // expected-error {{copyin variable must be threadprivate}}103  for (i = 0; i < argc; ++i)104    foo();105#pragma omp target106#pragma omp teams distribute parallel for copyin(m) // expected-error {{'operator=' is a private member of 'S5'}}107  for (i = 0; i < argc; ++i)108    foo();109#pragma omp target110#pragma omp teams distribute parallel for copyin(ST<int>::s, B::x) // expected-error {{copyin variable must be threadprivate}}111  for (i = 0; i < argc; ++i)112    foo();113 114  return 0;115}116