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

--- Comment #9 from anlauf at gcc dot gnu.org ---
The reduced testcase shows in trans-array.cc::structure_alloc_comps:

-m32:

(gdb) l
10901                 dst_data = gfc_class_data_get (dcmp);
10902                 src_data = gfc_class_data_get (comp);
10903                 size = fold_convert (size_type_node,
10904                                      gfc_class_vtab_size_get (comp));
10905
10906                 if (CLASS_DATA (c)->attr.dimension)
10907                   {
10908                     nelems = gfc_conv_descriptor_size (src_data,
10909                                                        CLASS_DATA
(c)->as->rank);
10910                     size = fold_build2_loc (input_location, MULT_EXPR,
(gdb) pge comp
(*(struct item[1] * restrict) atmp.0.data)[S.4].val
(gdb) pge size
(character(kind=4)) (*(struct item[1] * restrict)
atmp.0.data)[S.4].val._vptr->_size

-m64:

(gdb) pge comp
(*(struct item[1] * restrict) atmp.0.data)[S.4].val
(gdb) pge size
(unsigned long) (*(struct item[1] * restrict)
atmp.0.data)[S.4].val._vptr->_size


Looks like gfc_class_vtab_size_get is confused.  So am I...

Reply via email to