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?

Reply via email to