aboutsummaryrefslogtreecommitdiff
path: root/gdb/dwarf2loc.c
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2009-01-13 18:01:49 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2009-01-13 18:01:49 +0000
commit77a732d97ff257a19c44d7e906f9b856a0290272 (patch)
tree9be948f12fd7e406ef1eda86b130d9877fe44849 /gdb/dwarf2loc.c
parentb302c308cd92656419cddc2672f43a1cbd027961 (diff)
downloadgdb-77a732d97ff257a19c44d7e906f9b856a0290272.zip
gdb-77a732d97ff257a19c44d7e906f9b856a0290272.tar.gz
gdb-77a732d97ff257a19c44d7e906f9b856a0290272.tar.bz2
* dwarf2loc.c (dwarf2_evaluate_loc_desc): Do not call get_frame_arch
for NULL frame pointers.
Diffstat (limited to 'gdb/dwarf2loc.c')
-rw-r--r--gdb/dwarf2loc.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
index 95018dc..cad3db8 100644
--- a/gdb/dwarf2loc.c
+++ b/gdb/dwarf2loc.c
@@ -199,7 +199,6 @@ dwarf2_evaluate_loc_desc (struct symbol *var, struct frame_info *frame,
gdb_byte *data, unsigned short size,
struct dwarf2_per_cu_data *per_cu)
{
- struct gdbarch *arch = get_frame_arch (frame);
struct value *retval;
struct dwarf_expr_baton baton;
struct dwarf_expr_context *ctx;
@@ -238,9 +237,9 @@ dwarf2_evaluate_loc_desc (struct symbol *var, struct frame_info *frame,
struct dwarf_expr_piece *p = &ctx->pieces[i];
if (p->in_reg)
{
+ struct gdbarch *arch = get_frame_arch (frame);
bfd_byte regval[MAX_REGISTER_SIZE];
- int gdb_regnum = gdbarch_dwarf2_reg_to_regnum
- (arch, p->value);
+ int gdb_regnum = gdbarch_dwarf2_reg_to_regnum (arch, p->value);
get_frame_register (frame, gdb_regnum, regval);
memcpy (contents + offset, regval, p->size);
}
@@ -253,9 +252,9 @@ dwarf2_evaluate_loc_desc (struct symbol *var, struct frame_info *frame,
}
else if (ctx->in_reg)
{
+ struct gdbarch *arch = get_frame_arch (frame);
CORE_ADDR dwarf_regnum = dwarf_expr_fetch (ctx, 0);
- int gdb_regnum = gdbarch_dwarf2_reg_to_regnum
- (arch, dwarf_regnum);
+ int gdb_regnum = gdbarch_dwarf2_reg_to_regnum (arch, dwarf_regnum);
retval = value_from_register (SYMBOL_TYPE (var), gdb_regnum, frame);
}
else