This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Dear All, This fix, of itself, is quite obvious. The offset was being set to zero for array segments, rather than that required for unity valued lvalues. I think that the fix could be used to clean up: trans-expr.c(gfc_trans_alloc_subarray_assign) trans-expr.c(gfc_trans_pointer_assign) trans-expr.c(fncall_realloc_result) trans-array.c(trans_associate_var) each of which contains calculation of the offset. However, I do not think that this is the stage to fix things that are not broken! I propose to keep the PR open as a reminder to look into this. Bootstrapped and regtested on X86_64/FC17 - OK for trunk and backporting to 4.8? Paul 2014-04-12 Paul Thomas <pault@gcc.gnu.org> PR fortran/58771 * trans.h : Add 'use_offset' bitfield to gfc_se. * trans-array.c (gfc_conv_expr_descriptor) : Use 'use_offset' as a trigger to unconditionally recalculate the offset. trans-expr.c (gfc_conv_intrinsic_to_class) : Use it. (gfc_conv_procedure_call) : Ditto. 2014-04-02 Paul Thomas <pault@gcc.gnu.org> PR fortran/58771 * gfortran.dg/unlimited_polymorphic_17.f90 : New test
Attachment:
pr60717.diff
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |