https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88049
Jan Hubicka <hubicka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |NEW CC| |jason at redhat dot com Component|lto |c++ Assignee|hubicka at gcc dot gnu.org |unassigned at gcc dot gnu.org --- Comment #1 from Jan Hubicka <hubicka at gcc dot gnu.org> --- We ICE on the fact that _ZTV1aIN12_GLOBAL__N_11fEE which is vtable for anonymous namespace type but it has EXTERNAL flag set. Jason, why this happens? I am changing type to C++: if there is indeed legal reason to have exported vtables for anonymous types, then we can simply drop the sanity check. <var_decl 0x7ffff7ff4ab0 _ZTV1aIN12_GLOBAL__N_11fEE type <array_type 0x7ffff72d85e8 type <pointer_type 0x7ffff72d8540 __vtbl_ptr_type type <function_type 0x7ffff72d8498> unsigned DI size <integer_cst 0x7ffff70deb70 constant 64> unit-size <integer_cst 0x7ffff70deb88 constant 8> align:64 warn_if_not_align:0 symtab:0 alias-set -1 structural-equality pointer_to_this <pointer_type 0x7ffff72d8690>> BLK size <integer_cst 0x7ffff70deed0 constant 256> unit-size <integer_cst 0x7ffff70defc0 constant 32> align:64 warn_if_not_align:0 symtab:0 alias-set -1 structural-equality domain <integer_type 0x7ffff72d8348 type <integer_type 0x7ffff70f3000 sizetype> DI size <integer_cst 0x7ffff70deb70 64> unit-size <integer_cst 0x7ffff70deb88 8> align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff70f3738 precision:64 min <integer_cst 0x7ffff70deba0 0> max <integer_cst 0x7ffff72d6498 3>>> readonly static ignored external virtual BLK t.ii:4:27 size <integer_cst 0x7ffff70deed0 256> unit-size <integer_cst 0x7ffff70defc0 32> user align:64 warn_if_not_align:0 context <record_type 0x7ffff72d87e0 a> initial <error_mark 0x7ffff70deb58>>