One more question.  Is it valid to use arr[MAX/2..MAX] on target?

#define MAX 20
void foo ()
{
  int arr[MAX];
  #pragma omp target map(from: arr[0:MAX/2])
    {
      int i;
      for (i = 0; i < MAX; i++)
        arr[i] = i;
    }
}

In this case GOMP_target gets sizes[0]==40 as input.  Due to this,
gomp_map_vars allocates 40 bytes of memory on target for 'arr',
instead of 80 bytes.

  -- Ilya

Reply via email to