Need someone with CLASS...

Steve Kargl sgk@troutmask.apl.washington.edu
Mon Oct 24 22:10:00 GMT 2016


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



More information about the Fortran mailing list