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

Reply via email to