[Bug fortran/55978] [4.8 Regression] class_optional_2.f90 -Os fails

janus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Feb 6 13:01:00 GMT 2013


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

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
         AssignedTo|unassigned at gcc dot       |janus at gcc dot gnu.org
                   |gnu.org                     |

--- Comment #21 from janus at gcc dot gnu.org 2013-02-06 13:00:52 UTC ---
(In reply to comment #18)
> Btw, as an alternative: Wouldn't it be more reasonable to move the above check
> into _gfortran_internal_pack?

Here is the very simple patch which does this:


Index: libgfortran/runtime/in_pack_generic.c
===================================================================
--- libgfortran/runtime/in_pack_generic.c    (revision 195800)
+++ libgfortran/runtime/in_pack_generic.c    (working copy)
@@ -48,6 +48,9 @@ internal_pack (gfc_array_char * source)
   index_type size;
   index_type type_size;

+  if (source->base_addr == NULL)
+    return NULL;
+
   type_size = GFC_DTYPE_TYPE_SIZE(source);
   size = GFC_DESCRIPTOR_SIZE (source);
   switch (type_size)


It seems to work just as well as the patch in comment #18 and is much simpler.
Also it could catch this sort of thing in other situations as well. So I would
say that it is preferable over the previous patches.

Will test for regressions (but don't expect any).



More information about the Gcc-bugs mailing list