This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran 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]

Re: Need someone with CLASS...


Hi Steve,

That patch looks fine to me. Go for it!

Thanks

Paul

On 24 October 2016 at 23:54, Steve Kargl
<sgk@troutmask.apl.washington.edu> wrote:
> knowledge to cast an eye at this small patch for
> PR fortran/78092:
>
> Index: gcc/fortran/trans-intrinsic.c
> ===================================================================
> --- gcc/fortran/trans-intrinsic.c       (revision 241492)
> +++ gcc/fortran/trans-intrinsic.c       (working copy)
> @@ -6708,7 +6708,9 @@ gfc_conv_intrinsic_sizeof (gfc_se *se, g
>                                         TREE_OPERAND (argse.expr, 0), 0)))
>                   || GFC_DECL_CLASS (TREE_OPERAND (argse.expr, 0)))))
>         byte_size = gfc_class_vtab_size_get (TREE_OPERAND (argse.expr, 0));
> -      else if (arg->rank > 0)
> +      else if (arg->rank > 0
> +              || (arg->rank == 0
> +                  && arg->ref && arg->ref->type == REF_COMPONENT))
>         /* The scalarizer added an additional temp.  To get the class' vptr
>            one has to look at the original backend_decl.  */
>         byte_size = gfc_class_vtab_size_get (
>
> The offend code in the PR compiles and now gives
>
> % gfc7 -o z a.f90 && ./z
>  ivar2:            4
>
> So, is the patch correct.
>
> --
> Steve



-- 
The difference between genius and stupidity is; genius has its limits.

Albert Einstein


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]