This code is modified from coarray/alloc_comp_1.f90: type t integer :: i end type t type(t), allocatable :: a[:] allocate(a[3:*]) a%i = 7 if (a%i /= 7) call abort print *, lcobound(a%i) end With (patched) trunk, I get: f951: internal compiler error: in simplify_cobound, at fortran/simplify.c:3552
(In reply to comment #0) > With (patched) trunk, I get: > > f951: internal compiler error: in simplify_cobound, at fortran/simplify.c:3552 With vanilla trunk, I get instead: print *, lcobound(a%i) 1 Error: Expected coarray variable as 'coarray' argument to the lcobound intrinsic at (1) Which makes it a reject-valid instead of ice-on-valid.
(In reply to comment #1) > (In reply to comment #0) > > With (patched) trunk, I get: > > [...] > With vanilla trunk, I get instead: > [...] For information the patch in "(patched) trunk" was: http://gcc.gnu.org/ml/fortran/2011-09/msg00057.html
Author: mikael Date: Tue Oct 18 14:42:21 2011 New Revision: 180142 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180142 Log: PR fortran/50420 * trans-array.c (gfc_conv_expr_descriptor): Count codimensions starting from zero, and add then the relevant offset (either ndim or loop.dimen) depending on context. Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/trans-array.c
Author: mikael Date: Tue Oct 18 14:45:46 2011 New Revision: 180143 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180143 Log: PR fortran/50420 * trans-array.c (gfc_conv_expr_descriptor): Use loop.dimen instead of ndim for the descriptor's rank. Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/trans-array.c
Author: mikael Date: Tue Oct 18 14:55:48 2011 New Revision: 180145 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180145 Log: PR fortran/50420 * trans-array.c (gfc_walk_array_ref): Allow zero rank arrays if they are coarrays. Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/trans-array.c
Author: mikael Date: Tue Oct 18 14:59:07 2011 New Revision: 180146 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180146 Log: PR fortran/50420 * trans-intrinsic.c (walk_coarray): Allow subreferences after a coarray object reference. Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/trans-intrinsic.c
Author: mikael Date: Tue Oct 18 15:02:38 2011 New Revision: 180147 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180147 Log: PR fortran/50420 * trans-intrinsic.c (walk_coarray): Change AR_ELEMENT to AR_SECTION. PR fortran/50420 * trans-intrinsic.c (walk_coarray): Use gfc_walk_array_ref for the scalarization chain initialization. Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/trans-intrinsic.c
Author: mikael Date: Tue Oct 18 15:05:30 2011 New Revision: 180148 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180148 Log: PR fortran/50420 * check.c (dim_corank_check): Use gfc_get_corank to get corank. Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/check.c
Author: mikael Date: Tue Oct 18 15:11:21 2011 New Revision: 180150 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180150 Log: PR fortran/50420 * simplify.c (simplify_cobound): Accept non-last-in-ref-chain coarrays. Don't set already set array ref. Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/simplify.c
Author: mikael Date: Tue Oct 18 15:13:45 2011 New Revision: 180151 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180151 Log: PR fortran/50420 * trans-types.c (gfc_build_array_type): Don't force lower bound to one in the deferred case. Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/trans-types.c
Author: mikael Date: Tue Oct 18 15:17:29 2011 New Revision: 180152 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180152 Log: PR fortran/50420 * trans.c (gfc_build_array_ref): If type is not an array, check that there is nothing to do, and do nothing. Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/trans.c
Author: mikael Date: Tue Oct 18 15:23:04 2011 New Revision: 180153 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180153 Log: PR fortran/50420 * gfortran.dg/coarray_subobject_1.f90: New test. * gfortran.dg/coarray/subobject_1.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/coarray/subobject_1.f90 trunk/gcc/testsuite/gfortran.dg/coarray_subobject_1.f90 Modified: trunk/gcc/testsuite/ChangeLog
Should be fixed now. Thank you for the rep... Hem, I was the reporter.