This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Allow DW_OP_GNU_uninit in dwarf_expr_require_composition
- From: Andreas Arnez <arnez at linux dot vnet dot ibm dot com>
- To: Tom Tromey <tom at tromey dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Mon, 10 Oct 2016 14:24:23 +0200
- Subject: Re: [PATCH] Allow DW_OP_GNU_uninit in dwarf_expr_require_composition
- Authentication-results: sourceware.org; auth=none
- References: <m3lh3zuf30.fsf@oc1027705133.ibm.com> <87lgxxctli.fsf@tromey.com>
On Sun, Oct 09 2016, Tom Tromey wrote:
>>>>>> "Andreas" == Andreas Arnez <arnez@linux.vnet.ibm.com> writes:
>
> Andreas> This patch allows DW_OP_GNU_uninit after all operators
> Andreas> requiring a composition, to simplify the code and make it more
> Andreas> consistent. This policy may be more permissive than necessary,
> Andreas> but in the worst case just leads to a DWARF location
> Andreas> description resulting in an uninitialized value instead of an
> Andreas> error message.
>
> I think it would be best to allow DW_OP_GNU_uninit to terminate any
> piece, rather than require it to be at the end of the expression. This
> seems compatible and clearly more consistent with other DWARF
> operations.
You mean to allow DW_OP_GNU_uninit to terminate any simple location
description? Right, this would allow marking individual structure
members as uninitialized, for instance.
> That is, assuming DW_OP_GNU_uninit is useful at all.
> Another option would be to deprecate it.
Right, I wonder about its usefulness as well. For a variable with fixed
location it may cover a small window where the compiler can be certain
that the variable is uninitialized. I guess this *might* be useful
sometimes?
Is there even a DWARF issue for this? Or a formal specification?
--
Andreas