[Bug fortran/56800] [fortran-dev Regression] move_alloc_13.f90 failure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56800 Tobias Burnus changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #7 from Tobias Burnus 2013-05-07 10:01:47 UTC --- really mark as FIXED
[Bug fortran/56800] [fortran-dev Regression] move_alloc_13.f90 failure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56800 --- Comment #6 from Tobias Burnus 2013-05-07 10:00:20 UTC --- FIXED by the following commit (on the Fortran-dev branch). Thanks for the report! Author: burnus Date: Tue May 7 09:37:19 2013 New Revision: 198669 URL: http://gcc.gnu.org/viewcvs?rev=198669&root=gcc&view=rev Log: 2013-05-07 Tobias Burnus * trans-array.c (gfc_conv_descriptor_stride_get, gfc_conv_descriptor_stride_set): Use elem_len, unless it is a nonstring intrinsic type for which size_in_bytes is used. (gfc_array_init_size): Set elem_len before handling the strides. * trans-expr.c (gfc_conv_subref_array_arg): Remove no-op extent shifting code. Modified: branches/fortran-dev/gcc/fortran/ChangeLog.fortran-dev branches/fortran-dev/gcc/fortran/trans-array.c branches/fortran-dev/gcc/fortran/trans-expr.c
[Bug fortran/56800] [fortran-dev Regression] move_alloc_13.f90 failure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56800 --- Comment #5 from Tobias Burnus 2013-04-30 21:57:28 UTC --- For the test case in comment 0: __builtin_memset (y._data.base_addr, 0, 4); y._data.rank = 1; y._data.type = -1; y._data.dim[0].lower_bound = 1; y._data.dim[0].extent = 2 - y._data.dim[0].lower_bound; y._data.dim[0].sm = (integer(kind=8)) y._data.elem_len; Here a line like: y._data.elem_len = 4; is missing. elem_len needs always to be updated for BT_CLASS.
[Bug fortran/56800] [fortran-dev Regression] move_alloc_13.f90 failure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56800 Dominique d'Humieres changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2013-04-27 Ever Confirmed|0 |1 --- Comment #4 from Dominique d'Humieres 2013-04-27 13:42:51 UTC --- Confirmed for the fortran-dev branch r198346 with the patch at http://gcc.gnu.org/ml/fortran/2013-04/msg00237.html.
[Bug fortran/56800] [fortran-dev Regression] move_alloc_13.f90 failure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56800 --- Comment #3 from Tobias Burnus 2013-04-01 21:34:55 UTC --- Created attachment 29769 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29769 Early draft patch The patch mostly implements a fix for this bug - but it needs some clean up in the bottom part. As I run out of time, I attach it here.
[Bug fortran/56800] [fortran-dev Regression] move_alloc_13.f90 failure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56800 --- Comment #2 from Tobias Burnus 2013-04-01 18:01:03 UTC --- The problem is in gfc_array_init_size. There, one should first obtain the element size. And instead of gfc_conv_descriptor_stride_set one should use gfc_conv_descriptor_sm_set. Additionally, one could directly set gfc_conv_descriptor_extent_set (matching the current size variable) instead of using gfc_conv_descriptor_ubound_set. The only difficulty is to implement it such that the overflow algorithm works.
[Bug fortran/56800] [fortran-dev Regression] move_alloc_13.f90 failure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56800 --- Comment #1 from Thomas Koenig 2013-04-01 17:05:35 UTC --- The stride needs to be set from the source; it currently is taken from y (which is an empty type, hence the 0 for sm).