Ping. In the meantime, I'll apply this patch to gomp-4_0-branch.
Cesar On 09/22/2015 08:24 AM, Cesar Philippidis wrote: > In both OpenACC and OpenMP, each subarray has at least two data mappings > associated with them, one for the pointer and another for the data in > the array section (fortan also has a pset mapping). One problem I > observed in fortran is that array section data is casted to char *. > Consequently, when lower_omp_target assigns alignment for the subarray > data, it does so incorrectly. This is a problem on nvptx if you have a > data clause such as > > integer foo > real*8 bar (100) > > !$acc data copy (foo, bar(1:100)) > > Here, the data associated with bar could get aligned on a 4 byte > boundary instead of 8 byte. That causes problems on nvptx targets. > > My fix for this is to prevent the fortran front end from casting the > data pointers to char *. I only prevented casting on the code which > handles OMP_CLAUSE_MAP. The subarrays associated with OMP_CLAUSE_SHARED > also get casted to char *, but I left those as-is because I'm not that > familiar with how non-OpenMP target regions get lowered. > > Is this patch OK for trunk? > > Thanks, > Cesar >