brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 3196cd0 Raw
61 lines · cpp
1// RUN: %clang_cc1 %s -fopenacc -verify2 3 4void use() {5  int Array[5];6  int NotArray;7 8#pragma acc loop9  for (int i = 0; i < 5;++i) {10#pragma acc cache(Array[1])11#pragma acc cache(Array[1:2])12 13  // expected-error@+1{{OpenACC variable in 'cache' directive is not a valid sub-array or array element}}14#pragma acc cache(Array)15  // expected-error@+1{{OpenACC variable in 'cache' directive is not a valid sub-array or array element}}16#pragma acc cache(NotArray)17  }18}19 20struct S {21  int Array[5];22  int NotArray;23  int Array2D[5][5];24 25  void use() {26#pragma acc loop27  for (int i = 0; i < 5;++i) {28#pragma acc cache(Array[1])29#pragma acc cache(Array[1:2])30#pragma acc cache(Array2D[1][1])31#pragma acc cache(Array2D[1][1:2])32 33  // expected-error@+1{{OpenACC variable in 'cache' directive is not a valid sub-array or array element}}34#pragma acc cache(Array)35  // expected-error@+1{{OpenACC variable in 'cache' directive is not a valid sub-array or array element}}36#pragma acc cache(NotArray)37  }38  }39};40 41template<typename T>42void templ_use() {43  T Array[5];44  T NotArray;45 46#pragma acc loop47  for (int i = 0; i < 5;++i) {48#pragma acc cache(Array[1])49#pragma acc cache(Array[1:2])50 51  // expected-error@+1{{OpenACC variable in 'cache' directive is not a valid sub-array or array element}}52#pragma acc cache(Array)53  // expected-error@+1{{OpenACC variable in 'cache' directive is not a valid sub-array or array element}}54#pragma acc cache(NotArray)55  }56}57 58void foo() {59  templ_use<int>();60}61