diff options
Diffstat (limited to 'gdb/std-regs.c')
-rw-r--r-- | gdb/std-regs.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gdb/std-regs.c b/gdb/std-regs.c index 5a7a68be9d..ffa7f71102 100644 --- a/gdb/std-regs.c +++ b/gdb/std-regs.c @@ -42,12 +42,13 @@ value_of_builtin_frame_fp_reg (struct frame_info *frame, const void *baton) frame); else { - struct value *val = allocate_value (builtin_type_void_data_ptr); + struct type *data_ptr_type = builtin_type (gdbarch)->builtin_data_ptr; + struct value *val = allocate_value (data_ptr_type); gdb_byte *buf = value_contents_raw (val); if (frame == NULL) memset (buf, 0, TYPE_LENGTH (value_type (val))); else - gdbarch_address_to_pointer (gdbarch, builtin_type_void_data_ptr, + gdbarch_address_to_pointer (gdbarch, data_ptr_type, buf, get_frame_base_address (frame)); return val; } @@ -61,12 +62,13 @@ value_of_builtin_frame_pc_reg (struct frame_info *frame, const void *baton) return value_of_register (gdbarch_pc_regnum (gdbarch), frame); else { - struct value *val = allocate_value (builtin_type_void_func_ptr); + struct type *func_ptr_type = builtin_type (gdbarch)->builtin_func_ptr; + struct value *val = allocate_value (func_ptr_type); gdb_byte *buf = value_contents_raw (val); if (frame == NULL) memset (buf, 0, TYPE_LENGTH (value_type (val))); else - gdbarch_address_to_pointer (gdbarch, builtin_type_void_func_ptr, + gdbarch_address_to_pointer (gdbarch, func_ptr_type, buf, get_frame_pc (frame)); return val; } |