diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/dwarf2expr.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b114428..1c5ef95 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2011-06-22 Tom Tromey <tromey@redhat.com> + + * dwarf2expr.c (execute_stack_op) <DW_OP_GNU_convert>: Treat type + argument of 0 specially. + 2011-06-22 Yao Qi <yao@codesourcery.com> * infrun.c (handle_inferior_event): Remove write-only local variable diff --git a/gdb/dwarf2expr.c b/gdb/dwarf2expr.c index 23389b8..c5ea85d 100644 --- a/gdb/dwarf2expr.c +++ b/gdb/dwarf2expr.c @@ -1229,7 +1229,10 @@ execute_stack_op (struct dwarf_expr_context *ctx, op_ptr = read_uleb128 (op_ptr, op_end, &type_die); - type = dwarf_get_base_type (ctx, type_die, 0); + if (type_die == 0) + type = address_type; + else + type = dwarf_get_base_type (ctx, type_die, 0); result_val = dwarf_expr_fetch (ctx, 0); dwarf_expr_pop (ctx); |