brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · d4f3559 Raw
73 lines · cpp
1// RUN: %clang_cc1 -verify -fopenmp %s -Wuninitialized2 3// RUN: %clang_cc1 -verify -fopenmp-simd %s -Wuninitialized4 5void xxx(int argc) {6  int x; // expected-note {{initialize the variable 'x' to silence this warning}}7#pragma omp master8  argc = x; // expected-warning {{variable 'x' is uninitialized when used here}}9}10 11int foo();12 13int main() {14  #pragma omp master15  ;16  #pragma omp master nowait // expected-error {{unexpected OpenMP clause 'nowait' in directive '#pragma omp master'}}17  #pragma omp master unknown // expected-warning {{extra tokens at the end of '#pragma omp master' are ignored}}18  foo();19  {20    #pragma omp master21  } // expected-error {{expected statement}}22  #pragma omp for23  for (int i = 0; i < 10; ++i) {24    foo();25    #pragma omp master // expected-error {{region cannot be closely nested inside 'for' region}}26    foo();27  }28  #pragma omp sections29  {30    foo();31    #pragma omp master // expected-error {{region cannot be closely nested inside 'sections' region}}32    foo();33  }34  #pragma omp single35  for (int i = 0; i < 10; ++i) {36    foo();37    #pragma omp master allocate(i) // expected-error {{region cannot be closely nested inside 'single' region}} expected-error {{unexpected OpenMP clause 'allocate' in directive '#pragma omp master'}}38    foo();39  }40  #pragma omp master41  for (int i = 0; i < 10; ++i) {42    foo();43    #pragma omp master44    foo();45  }46  #pragma omp for ordered47  for (int i = 0; i < 10; ++i)48  #pragma omp master // expected-error {{region cannot be closely nested inside 'for' region}}49  {50    foo();51  }52 53  return 0;54}55 56int foo() {57  L1: // expected-note {{jump exits scope of OpenMP structured block}}58    foo();59  #pragma omp master60  {61    foo();62    goto L1; // expected-error {{cannot jump from this goto statement to its label}}63  }64  goto L2; // expected-error {{cannot jump from this goto statement to its label}}65  #pragma omp master66  { // expected-note {{jump bypasses OpenMP structured block}}67    L2:68    foo();69  }70 71  return 0;72}73