https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91273
Bug ID: 91273 Summary: [7/8/9/10 Regression] ICE in warn_types_mismatch at ipa-devirt.c:995 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: --- I see following ICE from r224248: $ cat 1.ii cat 1.ii extern "C" { struct { } ltregul_; } $ cat 2.F common /ltregul/ zeroeps end $ g++ 1.ii 2.F -flto -O2 2.F:1:3: warning: type of ‘ltregul’ does not match original declaration [-Wlto-type-mismatch] 1 | common /ltregul/ zeroeps | ^ lto1: internal compiler error: in warn_types_mismatch, at ipa-devirt.c:995 0x626616 warn_types_mismatch(tree_node*, tree_node*, unsigned int, unsigned int) /home/marxin/Programming/gcc/gcc/ipa-devirt.c:995 0x7e536c lto_symtab_merge_decls_2 /home/marxin/Programming/gcc/gcc/lto/lto-symtab.c:722 0x7e536c lto_symtab_merge_decls_1 /home/marxin/Programming/gcc/gcc/lto/lto-symtab.c:861 0x7e536c lto_symtab_merge_decls() /home/marxin/Programming/gcc/gcc/lto/lto-symtab.c:887 0x7f0f28 read_cgraph_and_symbols(unsigned int, char const**) /home/marxin/Programming/gcc/gcc/lto/lto-common.c:2839 0x7d7702 lto_main() /home/marxin/Programming/gcc/gcc/lto/lto.c:616