-
- Downloads
Fortran: Fix [Coarray] ICE in conv_caf_send, at fortran/trans-intrinsic.c:1950 [PR84246]
Fix ICE caused by converted expression already being pointer by checking for its type. Lift rewrite to caf_send completely into resolve and prevent more temporary arrays. PR fortran/84246 gcc/fortran/ChangeLog: * resolve.cc (caf_possible_reallocate): Detect arrays that may be reallocated by caf_send. (resolve_ordinary_assign): More reliably detect assignments where a rewrite to caf_send is needed. * trans-expr.cc (gfc_trans_assignment_1): Remove rewrite to caf_send, because this is done by resolve now. * trans-intrinsic.cc (conv_caf_send): Prevent unneeded temporary arrays. libgfortran/ChangeLog: * caf/single.c (send_by_ref): Created array's lbound is now 1 and the offset set correctly. gcc/testsuite/ChangeLog: * gfortran.dg/coarray_allocate_7.f08: Adapt to array being allocate by caf_send.
Showing
- gcc/fortran/resolve.cc 18 additions, 0 deletionsgcc/fortran/resolve.cc
- gcc/fortran/trans-expr.cc 0 additions, 23 deletionsgcc/fortran/trans-expr.cc
- gcc/fortran/trans-intrinsic.cc 10 additions, 7 deletionsgcc/fortran/trans-intrinsic.cc
- gcc/testsuite/gfortran.dg/coarray_allocate_7.f08 1 addition, 3 deletionsgcc/testsuite/gfortran.dg/coarray_allocate_7.f08
- libgfortran/caf/single.c 3 additions, 3 deletionslibgfortran/caf/single.c
Loading
Please register or sign in to comment