[PATCH, OpenMP] PR103642 - Fix omp-low ICE for indirect references based off component access

Chung-Lin Tang cltang@codesourcery.com
Mon Jan 17 14:55:55 GMT 2022


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  <cltang@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.
> 
> 
> 
> 
> 


More information about the Gcc-patches mailing list