This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

dwarflint: DW_AT_location being empty vs. missing check


Hi,

a future FEAT, possibly to file it in some BZ?

http://dwarf.freestandards.org/Dwarf3.pdf 4.1.-4. (page 71/267) says about
DW_AT_location:
# In a variable entry representing the definition of a variable (that is, with
# no DW_AT_declaration attribute) if no location attribute is present, or if
# the location attribute is present but has a null description (as described
# in Section 2.6), the variable is assumed to exist in the source code but not
# in the executable program (but see number 10, below).

dwarflint could warn on existing zero-length DW_FORM_block* DW_AT_location for
DW_AT_variable with neither DW_AT_declaration nor DW_TAG_const_value.  This
should mean the same as missing DW_AT_location - which has smaller DWARF code.


(GDB has a bug - it behaves differently to it as it _ignores_ variable with
DW_AT_location missing.  It should consider it as _optimized-out_ as in the
case of the empty DW_FORM_block* of DW_AT_location).

Assuming for attributes like DW_AT_upper_bound the difference makes sense
- unbound array (missing DW_AT_upper_bound) vs. optimized-out bound of the
array (DW_AT_upper_bound with empty DW_FORM_block*).


Regards,
Jan

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]