https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83118

--- Comment #37 from Paul Thomas <pault at gcc dot gnu.org> ---
(In reply to Paul Thomas from comment #36)
> Created attachment 49412 [details]
> An updated patch
> 
> The patch has been evolving... slowly.
> 
> I found that dependency_57.f90 segfaulted in runtime so I have fixed that.
> 
> I believe that I know how to resolve Tobias's query. I hope to submit a
> complete patch in the coming days.
> 
> Paul

Actually, dependency_5[6,7].f90 are not fixed because the temporaries generated
by the dependencies take their size and type from the class container. For
dependency_56.f90:

      D.4055 = f (&class.11);
      D.4056 = D.4055._data.dim[0].ubound - D.4055._data.dim[0].lbound;
            typedef struct __class__STAR_1_0a [0:];
      atmp.12.dtype = {.elem_len=80, .rank=1, .type=7}; /* !!!!! */


gfc_conv_loop_setup needs to use the mechanism for dealing  with class
temporaries in gfc_trans_create_temp_array by using the size of the dynamic
type.

Paul

Reply via email to