[Bug fortran/71703] [7/8/9 Regression] [OOP] ICE in wide_int_to_tree, at tree.c:1488
tkoenig at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Feb 9 21:00:00 GMT 2019
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 :-|
More information about the Gcc-bugs
mailing list