1*bfb77364SRoger Ferrer Ibanez // RUN: %clang_cc1 -verify -fopenmp -x c++ -triple x86_64-unknown-linux-gnu \
2*bfb77364SRoger Ferrer Ibanez // RUN: -emit-llvm %s -o - | FileCheck %s
3*bfb77364SRoger Ferrer Ibanez
4*bfb77364SRoger Ferrer Ibanez // expected-no-diagnostics
5*bfb77364SRoger Ferrer Ibanez
6*bfb77364SRoger Ferrer Ibanez extern int bounds1(int);
7*bfb77364SRoger Ferrer Ibanez extern int bounds2(int);
8*bfb77364SRoger Ferrer Ibanez
9*bfb77364SRoger Ferrer Ibanez extern void fun2(int n, int *a, int *b);
10*bfb77364SRoger Ferrer Ibanez extern void fun3(int n, int *a, int *b);
11*bfb77364SRoger Ferrer Ibanez
fun1(int n,int * a,int * b)12*bfb77364SRoger Ferrer Ibanez void fun1(int n, int *a, int *b)
13*bfb77364SRoger Ferrer Ibanez {
14*bfb77364SRoger Ferrer Ibanez #pragma omp task depend(iterator(j = 0 : bounds1(n)), in : a[b[j]])
15*bfb77364SRoger Ferrer Ibanez {
16*bfb77364SRoger Ferrer Ibanez fun2(n, a, b);
17*bfb77364SRoger Ferrer Ibanez }
18*bfb77364SRoger Ferrer Ibanez // CHECK: alloca %struct.kmp_depend_info, i64 [[FIRST_VLA:%.*]], align 16
19*bfb77364SRoger Ferrer Ibanez
20*bfb77364SRoger Ferrer Ibanez #pragma omp task depend(iterator(j = 0 : bounds2(n)), in : a[b[j]])
21*bfb77364SRoger Ferrer Ibanez {
22*bfb77364SRoger Ferrer Ibanez fun3(n, a, b);
23*bfb77364SRoger Ferrer Ibanez }
24*bfb77364SRoger Ferrer Ibanez // CHECK-NOT: alloca %struct.kmp_depend_info, i64 [[FIRST_VLA]], align 16
25*bfb77364SRoger Ferrer Ibanez }
26