https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93029

            Bug ID: 93029
           Summary: [OpenACC] no_create fails with component use of
                    aggregated types
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: openacc
          Severity: normal
          Priority: P3
         Component: libgomp
          Assignee: unassigned at gcc dot gnu.org
          Reporter: burnus at gcc dot gnu.org
                CC: jakub at gcc dot gnu.org, tschwinge at gcc dot gnu.org
  Target Milestone: ---

The OG9 (openacc-gcc-9) branch has two test cases for 'no_create' (trunk:
r279551) which depended on the just committed deep-copying patch set.

As the latter has now been committed (r279620 to r279631),
https://gcc.gnu.org/ml/gcc-patches/2019-12/threads.html#01247 …

… one can try to run the two testcases
OG9:
openacc-gcc-9-branch/libgomp/testsuite/libgomp.oacc-c-c++-common/nocreate-3.c
OG9:
openacc-gcc-9-branch/libgomp/testsuite/libgomp.oacc-c-c++-common/nocreate-4.c

TODO: Add also a Fortran test case.


Well, the result is:
* nocreate-4.c does run fine
* nocreate-3.c: FAILS (with nvptx offloading) with:
    libgomp: pointer target not mapped for attach

The source code for -3 has:
  #pragma acc data copyin(s)
    #pragma acc parallel no_create(s.y[0:N]) copyout(devptr)
where 's.y' is a malloc'ed pointer.

The omplower dump shows:

#pragma omp target oacc_data map(to:s [len: 16])
#pragma omp target oacc_parallel
  map(from:devptr [len: 8])
  map(struct:s [len: 1])
  map(alloc:s.y [len: 8])
  map(no_alloc:*D.3228 [len: 512])
  map(attach:s.y [bias: 0])


Note: The OG9 branch, cf. commit 8e74c2ec2b90819c995444370e742864a685209f,
handles the offloading differently than the trunk (r279551,
https://gcc.gnu.org/ml/gcc-patches/2019-12/msg01292.html )

On the other hand, as no_create did not really work,* it might be also broken
on the branch. (* cf. https://gcc.gnu.org/ml/gcc-patches/2019-11/msg01453.html
and prior in the thread.)

Reply via email to