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

Thomas Koenig <tkoenig at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tkoenig at gcc dot gnu.org

--- Comment #11 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
Part of the problem seems to be in gfc_conv_same_type_as, where
we have

  if (UNLIMITED_POLY (b))
    {
      tmp = gfc_class_vptr_get (b->symtree->n.sym->backend_decl);
      condb = fold_build2_loc (input_location, NE_EXPR, logical_type_node,
                               tmp, build_int_cst (TREE_TYPE (tmp), 0));
    }

(same for a above).

This looks at the backend_decl only, without following the
reference in some way.

Here is what the backend_decl looks like:

(gdb) call debug_tree(b->symtree->n.sym->backend_decl)
 <var_decl 0x7ffff7feec60 y
    type <record_type 0x7ffff73625e8 t2 BLK
        size <integer_cst 0x7ffff7195ed0 constant 256>
        unit-size <integer_cst 0x7ffff7195fc0 constant 32>
        align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff73625e8
        fields <field_decl 0x7ffff7360a18 n type <integer_type 0x7ffff71aa5e8
integer(kind=4)>
            SI a.f90:5:0
            size <integer_cst 0x7ffff7195db0 constant 32>
            unit-size <integer_cst 0x7ffff7195dc8 constant 4>
            align:32 warn_if_not_align:0 offset_align 128
            offset <integer_cst 0x7ffff7195ba0 constant 0>
            bit-offset <integer_cst 0x7ffff7195be8 constant 0> context
<record_type 0x7ffff73625e8 t2> chain <field_decl 0x7ffff7360ab0 a>>
        chain <type_decl 0x7ffff7360b48 D.3871>>
    used static BLK a.f90:9:0 size <integer_cst 0x7ffff7195ed0 256> unit-size
<integer_cst 0x7ffff7195fc0 32>
    align:64 warn_if_not_align:0 context <function_decl 0x7ffff735f700 p>
initial <constructor 0x7ffff7355bb8> chain <var_decl 0x7ffff7feebd0 x>>

not that I can really read what this is, or what it should be :-|

Reply via email to