// RUN: %libomptarget-compile-run-and-check-generic

#include <stdio.h>

typedef struct {
  double *dataptr;
  int dummy1;
  int dummy2;
} DV;

void init(double vertexx[]) {
  #pragma omp target map(vertexx[0:100])
  {
    printf("In init: %lf, expected 100.0\n", vertexx[77]);
    vertexx[77] = 77.0;
  }
}

void change(DV *dvptr) {
  #pragma omp target map(dvptr->dataptr[0:100])
  {
    printf("In change: %lf, expected 77.0\n", dvptr->dataptr[77]);
    dvptr->dataptr[77] += 1.0;
  }
}

int main() {
  double vertexx[100];
  vertexx[77] = 100.0;

  DV dv;
  dv.dataptr = &vertexx[0];

  #pragma omp target enter data map(to:vertexx[0:100])

  init(vertexx);
  change(&dv);

  #pragma omp target exit data map(from:vertexx[0:100])

  // CHECK: Final: 78.0
  printf("Final: %lf\n", vertexx[77]);
}

