diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-03-22 21:06:29 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-03-22 21:06:29 +0000 |
commit | e9f112fb54c101623e6541effac5b3eca98c2bcf (patch) | |
tree | b5152ed3e78edd3297d6f2824099760d4a7c5d19 /gdb/dwarf2loc.c | |
parent | 6223dd85e3a1faa1be503f0b02c0e790b0353809 (diff) | |
download | gdb-e9f112fb54c101623e6541effac5b3eca98c2bcf.tar.gz |
gdb/
* dwarf2expr.c (execute_stack_op): Handle DW_OP_GNU_entry_value. New
label abort_expression.
* dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Handle
DWARF_VALUE_OPTIMIZED_OUT.
gdb/testsuite/
* gdb.dwarf2/dw2-entry-value-main.c: New file.
* gdb.dwarf2/dw2-entry-value.S: New file.
* gdb.dwarf2/dw2-entry-value.exp: New file.
Diffstat (limited to 'gdb/dwarf2loc.c')
-rw-r--r-- | gdb/dwarf2loc.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c index 9fd8df04abc..4c13307bb0e 100644 --- a/gdb/dwarf2loc.c +++ b/gdb/dwarf2loc.c @@ -1220,12 +1220,17 @@ dwarf2_evaluate_loc_desc_full (struct type *type, struct frame_info *frame, } break; + case DWARF_VALUE_OPTIMIZED_OUT: + retval = allocate_value (type); + VALUE_LVAL (retval) = not_lval; + set_value_optimized_out (retval, 1); + break; + /* DWARF_VALUE_IMPLICIT_POINTER was converted to a pieced operation by execute_stack_op. */ case DWARF_VALUE_IMPLICIT_POINTER: /* DWARF_VALUE_OPTIMIZED_OUT can't occur in this context -- it can only be encountered when making a piece. */ - case DWARF_VALUE_OPTIMIZED_OUT: default: internal_error (__FILE__, __LINE__, _("invalid location type")); } |