https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89358
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Yeah, it adds an artificial field like: <field_decl 0x7fffea901a18 D.2070 type <record_type 0x7fffea939bd0 BLK size <integer_cst 0x7fffea7f5ea0 constant 0> unit-size <integer_cst 0x7fffea7f5e58 constant 0> align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7fffea939bd0 context <record_type 0x7fffea939a80 a>> ignored decl_6 QI pr89358.c:2:8 size <integer_cst 0x7fffea7f5e58 0> unit-size <integer_cst 0x7fffea7f5e58 0> align:8 warn_if_not_align:0 offset_align 8 offset <integer_cst 0x7fffea7f5e58 0> bit-offset <integer_cst 0x7fffea7f5ea0 0> context <record_type 0x7fffea939c78 b> chain <type_decl 0x7fffea901980 b>> DECL_FIELD_IS_BASE is lost after free-lang-data I'd say, so what LTO ODR checking could look for is FIELD_DECL is NULL DECL_NAME, DECL_ARTIFICIAL, DECL_IGNORED_P with size_zero_node DECL_SIZE and ignore those if missing just in one case?