This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/63861] OpenACC coarray ICE (also with OpenMP?)
- From: "burnus at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 22 Jan 2015 12:46:53 +0000
- Subject: [Bug fortran/63861] OpenACC coarray ICE (also with OpenMP?)
- Auto-submitted: auto-generated
- References: <bug-63861-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63861
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |openmp
Summary|OpenACC coarray ICE |OpenACC coarray ICE (also
| |with OpenMP?)
--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> ---
With the patch for PR64726 applied and the ACC CACHE commented, the program
gets stuck (endless loop) for the code in
gcc/testsuite/gfortran.dg/goacc/coarray.f95.
It works, if one changes the scalar coarray into either an array coarray or
into a noncoarray scalar.
I think gfc_has_alloc_comps just needs to be updated to handle coarrays, which
use an array descriptor but aren't true arrays. (I think
GFC_TYPE_ARRAY_RANK(...) == 0 can be used to detect this, but that might not
work for all array types.)
I marked it as "OpenMP" as it is probably also possible to trigger this for
some OpenMP code. Even though, I do not have a test case.
Backtrace:
#1 gfc_get_element_type (type=0x7ffff20f25e8) at
../../gcc/fortran/trans-types.c:1180
#2 0x0000000000742f85 in gfc_has_alloc_comps (type=<optimized out>,
decl=<optimized out>) at ../../gcc/fortran/trans-openmp.c:193
#3 0x000000000099eb12 in gimplify_scan_omp_clauses (list_p=0x7ffff20f32a0,
pre_p=pre_p@entry=0x7fffffffd918, region_type=region_type@entry=ORT_TARGET) at
../../gcc/gimplify.c:6062
#4 0x00000000009a07c8 in gimplify_omp_workshare
(expr_p=expr_p@entry=0x7ffff20eb778, pre_p=pre_p@entry=0x7fffffffd918) at
../../gcc/gimplify.c:7307