brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.4 KiB · 1dda66b Raw
114 lines · cpp
1// RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 %s2 3// RUN: %clang_cc1 -verify -fopenmp-simd -ferror-limit 100 %s4 5template <class T>6T tmain(T argc) {7#pragma omp barrier8  ;9#pragma omp barrier allocate(argc)  // expected-error {{unexpected OpenMP clause 'allocate' in directive '#pragma omp barrier'}}10#pragma omp barrier untied  // expected-error {{unexpected OpenMP clause 'untied' in directive '#pragma omp barrier'}}11#pragma omp barrier unknown // expected-warning {{extra tokens at the end of '#pragma omp barrier' are ignored}}12  if (argc)13#pragma omp barrier // expected-error {{'#pragma omp barrier' cannot be an immediate substatement}}14    if (argc) {15#pragma omp barrier16    }17  while (argc)18#pragma omp barrier // expected-error {{'#pragma omp barrier' cannot be an immediate substatement}}19    while (argc) {20#pragma omp barrier21    }22  do23#pragma omp barrier // expected-error {{'#pragma omp barrier' cannot be an immediate substatement}}24    while (argc)25      ;26  do {27#pragma omp barrier28  } while (argc);29  switch (argc)30#pragma omp barrier // expected-error {{'#pragma omp barrier' cannot be an immediate substatement}}31    switch (argc)32    case 1:33#pragma omp barrier // expected-error {{'#pragma omp barrier' cannot be an immediate substatement}}34  switch (argc)35  case 1: {36#pragma omp barrier37  }38  switch (argc) {39#pragma omp barrier40  case 1:41#pragma omp barrier // expected-error {{'#pragma omp barrier' cannot be an immediate substatement}}42    break;43  default: {44#pragma omp barrier45  } break;46  }47  for (;;)48#pragma omp barrier // expected-error {{'#pragma omp barrier' cannot be an immediate substatement}}49    for (;;) {50#pragma omp barrier51    }52label:53#pragma omp barrier // expected-error {{'#pragma omp barrier' cannot be an immediate substatement}}54label1 : {55#pragma omp barrier56}57 58  return T();59}60 61int main(int argc, char **argv) {62#pragma omp barrier63  ;64#pragma omp barrier untied  // expected-error {{unexpected OpenMP clause 'untied' in directive '#pragma omp barrier'}}65#pragma omp barrier unknown // expected-warning {{extra tokens at the end of '#pragma omp barrier' are ignored}}66  if (argc)67#pragma omp barrier // expected-error {{'#pragma omp barrier' cannot be an immediate substatement}}68    if (argc) {69#pragma omp barrier70    }71  while (argc)72#pragma omp barrier // expected-error {{'#pragma omp barrier' cannot be an immediate substatement}}73    while (argc) {74#pragma omp barrier75    }76  do77#pragma omp barrier // expected-error {{'#pragma omp barrier' cannot be an immediate substatement}}78    while (argc)79      ;80  do {81#pragma omp barrier82  } while (argc);83  switch (argc)84#pragma omp barrier // expected-error {{'#pragma omp barrier' cannot be an immediate substatement}}85    switch (argc)86    case 1:87#pragma omp barrier // expected-error {{'#pragma omp barrier' cannot be an immediate substatement}}88  switch (argc)89  case 1: {90#pragma omp barrier91  }92  switch (argc) {93#pragma omp barrier94  case 1:95#pragma omp barrier // expected-error {{'#pragma omp barrier' cannot be an immediate substatement}}96    break;97  default: {98#pragma omp barrier99  } break;100  }101  for (;;)102#pragma omp barrier // expected-error {{'#pragma omp barrier' cannot be an immediate substatement}}103    for (;;) {104#pragma omp barrier105    }106label:107#pragma omp barrier // expected-error {{'#pragma omp barrier' cannot be an immediate substatement}}108label1 : {109#pragma omp barrier110}111 112  return tmain(argc);113}114