aboutsummaryrefslogtreecommitdiff
path: root/gdb/dwarf2loc.c
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2011-03-22 21:06:34 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2011-03-22 21:06:34 +0000
commitdd90784ccd58dfb449e9ccfd731b91db27e345d6 (patch)
treebd555cc67e2a42a9ae99304478c39f55f1367b22 /gdb/dwarf2loc.c
parentdc80f6ae78dff1ae428d4d312eb47f5b6bb8cea6 (diff)
downloadgdb-dd90784ccd58dfb449e9ccfd731b91db27e345d6.zip
gdb-dd90784ccd58dfb449e9ccfd731b91db27e345d6.tar.gz
gdb-dd90784ccd58dfb449e9ccfd731b91db27e345d6.tar.bz2
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.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
index 9fd8df0..4c13307 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"));
}