[Bug fortran/55072] [4.6/4.7/4.8 Regression] Missing internal_pack leads to wrong code with derived type

janus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Dec 15 11:00:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55072

--- Comment #9 from janus at gcc dot gnu.org 2012-12-15 11:00:09 UTC ---
(In reply to comment #7)
> The following patch (which amounts to a partial revert of r156749) fixes the
> behavior of comment #2 for me:


Ugh. Apparently it was much too late last night, when I accidentally re-posted
the patch of comment #1 instead of the one I actually wanted to post:


Index: gcc/fortran/trans-array.c
===================================================================
--- gcc/fortran/trans-array.c    (revision 194387)
+++ gcc/fortran/trans-array.c    (working copy)
@@ -7002,13 +7002,6 @@ gfc_conv_array_parameter (gfc_se * se, gfc_expr *
       if (sym->ts.type == BT_CHARACTER)
     se->string_length = sym->ts.u.cl->backend_decl;

-      if (sym->ts.type == BT_DERIVED || sym->ts.type == BT_CLASS)
-    {
-      gfc_conv_expr_descriptor (se, expr);
-      se->expr = gfc_conv_array_data (se->expr);
-      return;
-    }
-
       if (!sym->attr.pointer
       && sym->as
       && sym->as->type != AS_ASSUMED_SHAPE 


This is the patch that both comment 7 and comment 8 refer to.



More information about the Gcc-bugs mailing list