mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-17 13:10:12 +08:00
* dwarf2loc.c (dwarf2_evaluate_loc_desc): Wait to fetch the top of
the stack until we've decided what sort of result the evaluation has produced. Use separate variables, with more specific names.
This commit is contained in:
parent
8f94ae4da3
commit
5ca2e3275d
@ -1,3 +1,9 @@
|
||||
2004-08-24 Jim Blandy <jimb@redhat.com>
|
||||
|
||||
* dwarf2loc.c (dwarf2_evaluate_loc_desc): Wait to fetch the top of
|
||||
the stack until we've decided what sort of result the evaluation
|
||||
has produced. Use separate variables, with more specific names.
|
||||
|
||||
2004-08-23 Richard Earnshaw <rearnsha@arm.com>
|
||||
|
||||
* armnbsd-tdep.c (arm_nbsd_arm_be_breakpoint): Define.
|
||||
|
@ -205,7 +205,6 @@ dwarf2_evaluate_loc_desc (struct symbol *var, struct frame_info *frame,
|
||||
unsigned char *data, unsigned short size,
|
||||
struct objfile *objfile)
|
||||
{
|
||||
CORE_ADDR result;
|
||||
struct value *retval;
|
||||
struct dwarf_expr_baton baton;
|
||||
struct dwarf_expr_context *ctx;
|
||||
@ -228,21 +227,23 @@ dwarf2_evaluate_loc_desc (struct symbol *var, struct frame_info *frame,
|
||||
ctx->get_tls_address = dwarf_expr_tls_address;
|
||||
|
||||
dwarf_expr_eval (ctx, data, size);
|
||||
result = dwarf_expr_fetch (ctx, 0);
|
||||
|
||||
if (ctx->in_reg)
|
||||
{
|
||||
int regnum = DWARF2_REG_TO_REGNUM (result);
|
||||
retval = value_from_register (SYMBOL_TYPE (var), regnum, frame);
|
||||
CORE_ADDR dwarf_regnum = dwarf_expr_fetch (ctx, 0);
|
||||
int gdb_regnum = DWARF2_REG_TO_REGNUM (dwarf_regnum);
|
||||
retval = value_from_register (SYMBOL_TYPE (var), gdb_regnum, frame);
|
||||
}
|
||||
else
|
||||
{
|
||||
CORE_ADDR address = dwarf_expr_fetch (ctx, 0);
|
||||
|
||||
retval = allocate_value (SYMBOL_TYPE (var));
|
||||
VALUE_BFD_SECTION (retval) = SYMBOL_BFD_SECTION (var);
|
||||
|
||||
VALUE_LVAL (retval) = lval_memory;
|
||||
VALUE_LAZY (retval) = 1;
|
||||
VALUE_ADDRESS (retval) = result;
|
||||
VALUE_ADDRESS (retval) = address;
|
||||
}
|
||||
|
||||
free_dwarf_expr_context (ctx);
|
||||
|
Loading…
Reference in New Issue
Block a user