https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88853
Bug ID: 88853 Summary: ICE: verify_type failed (error: type variant differs by TYPE_PACKED) Product: gcc Version: unknown Status: UNCONFIRMED Keywords: ice-checking, ice-on-valid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Created attachment 45433 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45433&action=edit Testcase g++-9.0.0-alpha20190113 snapshot (r267906), 8.2, 7.4, 6.3 all ICE when compiling the attached snippet reduced from gcc/testsuite/g++.dg/ext/pr85503.C w/ -fpack-struct -g: % g++-9.0.0-alpha20190113 -fpack-struct -g -c jxdgvov9.cc jxdgvov9.cc: In instantiation of 'class yp<fd<double, 0> >': jxdgvov9.cc:15:7: required from 'class n1<fd<double, 0> >' jxdgvov9.cc:21:7: required from 'class c4<fd<double, 0> >' jxdgvov9.cc:33:7: required from 'class hb<fd<double, 0> >' jxdgvov9.cc:45:7: required from 'class fd<double, 0>' jxdgvov9.cc:52:7: required from 'class dh<dh<fd<double, 0> > >' jxdgvov9.cc:17:22: required from 'class n1<dh<fd<double, 0> > >' jxdgvov9.cc:57:19: required from here jxdgvov9.cc:26:7: error: type variant differs by TYPE_PACKED 26 | class yp | ^~ <record_type 0x7fefa98a3e70 fd packed type_5 type_6 VOID align:8 warn_if_not_align:0 symtab:-1451847200 alias-set -1 canonical-type 0x7fefa98a3e70 context <translation_unit_decl 0x7fefa975a168 jxdgvov9.cc> full-name "class fd<double, 0>" no-binfo use_template=1 interface-unknown chain <type_decl 0x7fefa986fb48 fd>> <record_type 0x7fefa98a3f18 fd readonly type_5 VOID align:8 warn_if_not_align:0 symtab:-1451847120 alias-set -1 canonical-type 0x7fefa98a3f18 context <translation_unit_decl 0x7fefa975a168 jxdgvov9.cc> full-name "const class fd<double, 0>" no-binfo use_template=1 interface-unknown> jxdgvov9.cc:26:7: internal compiler error: verify_type failed 0x127580b verify_type(tree_node const*) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/tree.c:14555 0xc022f4 gen_type_die_with_usage /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/dwarf2out.c:25449 0xc040e6 gen_type_die /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/dwarf2out.c:25679 0xc1f343 gen_decl_die /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/dwarf2out.c:26272 0xc227e3 gen_member_die /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/dwarf2out.c:25133 0xc227e3 gen_struct_or_union_type_die /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/dwarf2out.c:25229 0xc1d954 gen_tagged_type_die /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/dwarf2out.c:25430 0xc02845 gen_type_die_with_usage /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/dwarf2out.c:25625 0xc040e6 gen_type_die /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/dwarf2out.c:25679 0xc1e740 gen_decl_die /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/dwarf2out.c:26311 0xc1f9e6 dwarf2out_decl /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/dwarf2out.c:26856 0xc1feb8 dwarf2out_type_decl /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/dwarf2out.c:26583 0xc1feb8 dwarf2out_type_decl /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/dwarf2out.c:26578 0xebfb98 rest_of_type_compilation(tree_node*, int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/passes.c:339 0x8bad7c finish_struct_1(tree_node*) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/cp/class.c:7055 0xa0f5d3 instantiate_class_template_1 /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/cp/pt.c:11397 0xa0f5d3 instantiate_class_template(tree_node*) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/cp/pt.c:11436 0xa565fd complete_type(tree_node*) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/cp/typeck.c:138 0xa5673b complete_type(tree_node*) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/cp/typeck.c:119 0xa5673b complete_type_or_maybe_complain(tree_node*, tree_node*, int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190113/work/gcc-9-20190113/gcc/cp/typeck.c:150