brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.4 KiB · e319e43 Raw
108 lines · cpp
1// RUN: %clang_cc1 -verify=expected,omp51 -fopenmp -ferror-limit 100 -o - %s -Wuninitialized2 3// RUN: %clang_cc1 -verify=expected,omp51 -fopenmp-simd -ferror-limit 100 -o - %s -Wuninitialized4 5// RUN: %clang_cc1 -verify=expected,omp50 -fopenmp -fopenmp-version=50 -ferror-limit 100 -o - %s -Wuninitialized6 7// RUN: %clang_cc1 -verify=expected,omp50 -fopenmp-simd -fopenmp-version=50 -ferror-limit 100 -o - %s -Wuninitialized8 9void foo();10 11template <class T, typename S, int N>12T tmain(T argc, S **argv) {13  T i;14#pragma omp target15#pragma omp teams16#pragma omp distribute parallel for proc_bind // expected-error {{expected '(' after 'proc_bind'}}17  for (i = 0; i < argc; ++i)18    foo();19#pragma omp target20#pragma omp teams21#pragma omp distribute parallel for proc_bind( // omp50-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}} omp51-error {{expected 'master', 'close', 'spread' or 'primary' in OpenMP clause 'proc_bind'}} expected-error {{expected ')'}} expected-note {{to match this '('}}22  for (i = 0; i < argc; ++i)23    foo();24#pragma omp target25#pragma omp teams26#pragma omp distribute parallel for proc_bind() // omp50-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}} omp51-error {{expected 'master', 'close', 'spread' or 'primary' in OpenMP clause 'proc_bind'}}27  for (i = 0; i < argc; ++i)28    foo();29#pragma omp target30#pragma omp teams31#pragma omp distribute parallel for proc_bind(master // expected-error {{expected ')'}} expected-note {{to match this '('}}32  for (i = 0; i < argc; ++i)33    foo();34#pragma omp target35#pragma omp teams36#pragma omp distribute parallel for proc_bind(close), proc_bind(spread) // expected-error {{directive '#pragma omp distribute parallel for' cannot contain more than one 'proc_bind' clause}}37  for (i = 0; i < argc; ++i)38    foo();39#pragma omp target40#pragma omp teams41#pragma omp distribute parallel for proc_bind(x) // omp50-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}} omp51-error {{expected 'master', 'close', 'spread' or 'primary' in OpenMP clause 'proc_bind'}}42  for (i = 0; i < argc; ++i)43    foo();44 45#pragma omp target46#pragma omp teams47#pragma omp distribute parallel for proc_bind(master)48  for (i = 0; i < argc; ++i)49    foo();50 51#pragma omp parallel proc_bind(close)52#pragma omp target53#pragma omp teams54#pragma omp distribute parallel for proc_bind(spread)55  for (i = 0; i < argc; ++i)56    foo();57 58  return T();59}60 61int main(int argc, char **argv) {62  int i;63#pragma omp target64#pragma omp teams65#pragma omp distribute parallel for proc_bind // expected-error {{expected '(' after 'proc_bind'}}66  for (i = 0; i < argc; ++i)67    foo();68#pragma omp target69#pragma omp teams70#pragma omp distribute parallel for proc_bind( // omp50-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}} omp51-error {{expected 'master', 'close', 'spread' or 'primary' in OpenMP clause 'proc_bind'}} expected-error {{expected ')'}} expected-note {{to match this '('}}71  for (i = 0; i < argc; ++i)72    foo();73#pragma omp target74#pragma omp teams75#pragma omp distribute parallel for proc_bind() // omp50-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}} omp51-error {{expected 'master', 'close', 'spread' or 'primary' in OpenMP clause 'proc_bind'}}76  for (i = 0; i < argc; ++i)77    foo();78#pragma omp target79#pragma omp teams80#pragma omp distribute parallel for proc_bind(master // expected-error {{expected ')'}} expected-note {{to match this '('}}81  for (i = 0; i < argc; ++i)82    foo();83#pragma omp target84#pragma omp teams85#pragma omp distribute parallel for proc_bind(close), proc_bind(spread) // expected-error {{directive '#pragma omp distribute parallel for' cannot contain more than one 'proc_bind' clause}}86  for (i = 0; i < argc; ++i)87    foo();88#pragma omp target89#pragma omp teams90#pragma omp distribute parallel for proc_bind(x) // omp50-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}} omp51-error {{expected 'master', 'close', 'spread' or 'primary' in OpenMP clause 'proc_bind'}}91  for (i = 0; i < argc; ++i)92    foo();93 94#pragma omp target95#pragma omp teams96#pragma omp distribute parallel for proc_bind(master)97  for (i = 0; i < argc; ++i)98    foo();99 100#pragma omp parallel proc_bind(close)101#pragma omp target102#pragma omp teams103#pragma omp distribute parallel for proc_bind(spread)104  for (i = 0; i < argc; ++i)105    foo();106  return tmain<int, char, 3>(argc, argv);107}108