https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88142
Bug ID: 88142 Summary: [9 Regression] ICE in lto_warn at ipa-devirt.c:1020 since r265519 Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: lto Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: marxin at gcc dot gnu.org Target Milestone: --- Following is causing ICE: $ cat ice1.ii struct wiimote_t { const int unid; } * a; $ cat ice2.ii struct wiimote_t; class a { wiimote_t *b; a(); }; struct wiimote_t { int unid; }; a::a() { b = __null; } $ g++ ice1.ii ice2.ii -flto lto1: internal compiler error: tree check: expected tree that contains ‘decl minimal’ structure, have ‘integer_type’ in warn_odr, at ipa-devirt.c:1020 0x6b79c0 tree_contains_struct_check_failed(tree_node const*, tree_node_structure_enum, char const*, int, char const*) /home/marxin/Programming/gcc/gcc/tree.c:9924 0x6171ca contains_struct_check(tree_node*, tree_node_structure_enum, char const*, int, char const*) /home/marxin/Programming/gcc/gcc/tree.h:3268 0x6171ca warn_odr /home/marxin/Programming/gcc/gcc/ipa-devirt.c:1020 0xa064ce type_variants_equivalent_p /home/marxin/Programming/gcc/gcc/ipa-devirt.c:651 0xa0c389 odr_subtypes_equivalent_p /home/marxin/Programming/gcc/gcc/ipa-devirt.c:701 0xa0d4e2 odr_types_equivalent_p /home/marxin/Programming/gcc/gcc/ipa-devirt.c:1591 0xa0a290 add_type_duplicate /home/marxin/Programming/gcc/gcc/ipa-devirt.c:1894 0xa0a290 get_odr_type(tree_node*, bool) /home/marxin/Programming/gcc/gcc/ipa-devirt.c:2075 0xa0e8d9 register_odr_type(tree_node*) /home/marxin/Programming/gcc/gcc/ipa-devirt.c:2180 0x78c176 lto_read_decls /home/marxin/Programming/gcc/gcc/lto/lto.c:1900 0x78d42e lto_file_finalize /home/marxin/Programming/gcc/gcc/lto/lto.c:2134 0x78d42e lto_create_files_from_ids /home/marxin/Programming/gcc/gcc/lto/lto.c:2144 0x78d42e lto_file_read /home/marxin/Programming/gcc/gcc/lto/lto.c:2185 0x78d42e read_cgraph_and_symbols /home/marxin/Programming/gcc/gcc/lto/lto.c:2865 0x78d42e lto_main() /home/marxin/Programming/gcc/gcc/lto/lto.c:3401