This is the mail archive of the
elfutils-devel@sourceware.org
mailing list for the elfutils project.
dwarflint: DW_AT_location being empty vs. missing check
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: elfutils-devel at lists dot fedorahosted dot org
- Date: Thu, 05 Mar 2009 21:31:51 +0100
- Subject: 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