Ping.

On 2022/1/3 10:15 PM, Chung-Lin Tang wrote:
This issue was triggered after the patch extending syntax for component access
in map clauses
(https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=0ab29cf0bb68960c)

In gimplify_scan_omp_clauses, the case for handling indirect accesses (which 
creates
firstprivate ptr and zero-length array section map for such decls) was 
erroneously
went into for non-pointer cases (here being the base struct decl), so added the
appropriate checks there.

Added new testcase is a compile only test for the ICE. The original omptests 
t-partial-struct
test actually should not execute correctly, because for map(t.s->a[:N]), 
map(t.s[:1])
is not implicitly mapped, thus the entire offloaded access does not work as is.
(fixing that omptests test is out of scope here)

Tested without regressions, okay for trunk?

Thanks,
Chung-Lin

2022-01-03  Chung-Lin Tang  <clt...@codesourcery.com>

gcc/ChangeLog:

     PR middle-end/103642
     * gimplify.c (gimplify_scan_omp_clauses): Do not do indir_p handling
     for non-pointer or non-reference-to-pointer cases.

gcc/testsuite/ChangeLog:

     * c-c++-common/gomp/pr103642.c: New test.





Reply via email to