Don't raise an error for optimized out sub-fields.

http://sourceware.org/ml/gdb-patches/2013-07/msg00317.html

gdb/ChangeLog

        * value.c (value_fetch_lazy): Mark optimized out values as such
        rather than raising an error.

gdb/testsuite/ChangeLog

        * gdb.dwarf2/pieces-optimized-out.exp: Expect "<optimized out>"
        when printing an optimized out value.  Expect an error when using
        an optimized out value in an expression.
This commit is contained in:
Andrew Burgess 2013-07-30 15:36:18 +00:00
parent b0c54aa509
commit 11b4b7cc1f
4 changed files with 16 additions and 5 deletions

View file

@ -3439,9 +3439,8 @@ value_fetch_lazy (struct value *val)
if (!value_bits_valid (parent,
TARGET_CHAR_BIT * offset + value_bitpos (val),
value_bitsize (val)))
error (_("value has been optimized out"));
if (!unpack_value_bits_as_long (value_type (val),
set_value_optimized_out (val, 1);
else if (!unpack_value_bits_as_long (value_type (val),
value_contents_for_printing (parent),
offset,
value_bitpos (val),