This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[rfc]: Macros in gdbtypes
- From: Markus Deuling <deuling at de dot ibm dot com>
- To: GDB Patches <gdb-patches at sourceware dot org>, Ulrich Weigand <uweigand at de dot ibm dot com>
- Date: Mon, 05 Nov 2007 13:26:26 +0100
- Subject: [rfc]: Macros in gdbtypes
Hi,
in gdbtypes.h are some macros based on current_gdbarch (eg. builtin_type_void_data_ptr). This patch
replaces builtin_type_void_data_ptr by its definition in the source tree and then replaces current_gdbarch
by appropriate methods were possible.
This patch is **NOT** tested and shall no be committed right now.
Before proceeding I want to hear from you if that's a way to go for those macros or if you would prefer s.th. else to get rid
of the current_gdbarch's in gdbtypes.h
Thanks a lot for your effort.
ChangeLog:
* target-descriptions.c (tdesc_register_type): Replace
builtin_type_void_data_ptr by its expression. Replace current_gdbarch
by gdbarch.
* target.c (default_region_ok_for_hw_watchpoint): Likewise.
* std-regs (value_of_builtin_frame_fp_reg)
(value_of_builtin_frame_pc_reg): Likewise.
* spu-tdep.c (spu_register_type): Likewise.
* sparc-tdep.c (sparc32_register_type): Likewise.
* sparc64-tdep.c (sparc64_register_type): Likewise.
* mips-tdep.c (mips_pseudo_register_type): Likewise.
* m88k-tdep.c (m88k_register_type): Likewise.
* m68k-tdep.c (m68k_register_type): Likewise.
* m32r-tdep.c (m32r_register_type): Likewise.
* i386-tdep.c (i386_get_longjmp_target, i386_register_type): Likewise.
* h8300-tdep.c (h8300_register_type): Likewise.
* gnu-v3-abi.c (gnuv3_baseclass_offset, gnuv3_method_ptr_size)
(gnuv3_make_method_ptr, gnuv3_method_ptr_to_value): Likewise.
* cris-tdep.c (cris_register_type, crisv32_register_type): Likewise.
* bsd-uthread.c (bsd_uthread_fetch_registers)
(bsd_uthread_wait, bsd_uthread_find_new_threads): Likewise.
* arm-tdep.c (arm_register_type): Likewise.
* amd64-tdep.c (amd64_register_type): Likewise.
* alpha-tdep.c (alpha_cannot_store_register): Likewise.
* solib-svr4.c (LM_ADDR_FROM_LINK_MAP, LM_DYNAMIC_FROM_LINK_MAP)
(LM_NEXT, LM_NAME, IGNORE_FIRST_LINK_MAP_ENTRY, scan_dyntag)
(solib_svr4_r_map, solib_svr4_r_ldsomap, open_symbol_file_object)
(svr4_fetch_objfile_link_map): Replace builtin_type_void_data_ptr by
its expression.
* procfs.c (procfs_address_to_host_pointer
(procfs_can_use_hw_breakpoint): Likewise.
* objc-lang.c (print_object_command): Likewise.
* f-valprint.c (f77_get_dynamic_lowerbound)
(f77_get_dynamic_upperbound): Likewise.
* dwarf2loc.c (dwarf_expr_read_reg): Likewise.
* dwarf2-frame.c (size_of_encoded_value)
(decode_frame_entry_1): Likewise.
* avr-tdep.c (avr_register_type): Likewise.
* auxv.c (target_auxv_parse): Likewise.
* ada-valprint.c (ada_val_print_1): Likewise.
* gdbtypes.h (builtin_type_void_data_ptr): Remove.
--
Markus Deuling
GNU Toolchain for Linux on Cell BE
deuling@de.ibm.com
diff -urpN src/gdb/ada-valprint.c dev2/gdb/ada-valprint.c
--- src/gdb/ada-valprint.c 2007-08-23 20:08:25.000000000 +0200
+++ dev2/gdb/ada-valprint.c 2007-11-05 13:19:49.000000000 +0100
@@ -727,7 +727,9 @@ ada_val_print_1 (struct type *type, cons
type_print (type, "", stream, -1);
fprintf_filtered (stream, ") ");
deprecated_print_address_numeric
- (extract_typed_address (valaddr, builtin_type_void_data_ptr),
+ (extract_typed_address (valaddr,
+ builtin_type (current_gdbarch)
+ ->builtin_data_ptr),
1, stream);
}
else
diff -urpN src/gdb/alpha-tdep.c dev2/gdb/alpha-tdep.c
--- src/gdb/alpha-tdep.c 2007-11-05 05:32:21.000000000 +0100
+++ dev2/gdb/alpha-tdep.c 2007-11-05 13:18:54.000000000 +0100
@@ -94,7 +94,7 @@ static struct type *
alpha_register_type (struct gdbarch *gdbarch, int regno)
{
if (regno == ALPHA_SP_REGNUM || regno == ALPHA_GP_REGNUM)
- return builtin_type_void_data_ptr;
+ return builtin_type (gdbarch)->builtin_data_ptr;
if (regno == ALPHA_PC_REGNUM)
return builtin_type_void_func_ptr;
diff -urpN src/gdb/amd64-tdep.c dev2/gdb/amd64-tdep.c
--- src/gdb/amd64-tdep.c 2007-11-05 05:32:21.000000000 +0100
+++ dev2/gdb/amd64-tdep.c 2007-11-05 13:18:00.000000000 +0100
@@ -90,7 +90,7 @@ amd64_register_type (struct gdbarch *gdb
if (regnum >= AMD64_RAX_REGNUM && regnum <= AMD64_RDI_REGNUM)
return builtin_type_int64;
if (regnum == AMD64_RBP_REGNUM || regnum == AMD64_RSP_REGNUM)
- return builtin_type_void_data_ptr;
+ return builtin_type (gdbarch)->builtin_data_ptr;
if (regnum >= AMD64_R8_REGNUM && regnum <= AMD64_R15_REGNUM)
return builtin_type_int64;
if (regnum == AMD64_RIP_REGNUM)
diff -urpN src/gdb/arm-tdep.c dev2/gdb/arm-tdep.c
--- src/gdb/arm-tdep.c 2007-11-05 05:32:21.000000000 +0100
+++ dev2/gdb/arm-tdep.c 2007-11-05 13:17:27.000000000 +0100
@@ -1415,7 +1415,7 @@ arm_register_type (struct gdbarch *gdbar
if (regnum >= ARM_F0_REGNUM && regnum < ARM_F0_REGNUM + NUM_FREGS)
return builtin_type_arm_ext;
else if (regnum == ARM_SP_REGNUM)
- return builtin_type_void_data_ptr;
+ return builtin_type (gdbarch)->builtin_data_ptr;
else if (regnum == ARM_PC_REGNUM)
return builtin_type_void_func_ptr;
else if (regnum >= ARRAY_SIZE (arm_register_names))
diff -urpN src/gdb/auxv.c dev2/gdb/auxv.c
--- src/gdb/auxv.c 2007-08-23 20:08:26.000000000 +0200
+++ dev2/gdb/auxv.c 2007-11-05 13:16:58.000000000 +0100
@@ -82,7 +82,8 @@ int
target_auxv_parse (struct target_ops *ops, gdb_byte **readptr,
gdb_byte *endptr, CORE_ADDR *typep, CORE_ADDR *valp)
{
- const int sizeof_auxv_field = TYPE_LENGTH (builtin_type_void_data_ptr);
+ const int sizeof_auxv_field
+ = TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr);
gdb_byte *ptr = *readptr;
if (endptr == ptr)
diff -urpN src/gdb/avr-tdep.c dev2/gdb/avr-tdep.c
--- src/gdb/avr-tdep.c 2007-11-05 05:32:21.000000000 +0100
+++ dev2/gdb/avr-tdep.c 2007-11-05 13:16:16.000000000 +0100
@@ -213,7 +213,7 @@ avr_register_type (struct gdbarch *gdbar
if (reg_nr == AVR_PC_REGNUM)
return builtin_type_uint32;
if (reg_nr == AVR_SP_REGNUM)
- return builtin_type_void_data_ptr;
+ return builtin_type (gdbarch)->builtin_data_ptr;
else
return builtin_type_uint8;
}
diff -urpN src/gdb/bsd-uthread.c dev2/gdb/bsd-uthread.c
--- src/gdb/bsd-uthread.c 2007-10-31 05:54:46.000000000 +0100
+++ dev2/gdb/bsd-uthread.c 2007-11-05 13:15:27.000000000 +0100
@@ -280,7 +280,8 @@ bsd_uthread_fetch_registers (struct regc
regnum = -1;
active_addr = read_memory_typed_address (bsd_uthread_thread_run_addr,
- builtin_type_void_data_ptr);
+ builtin_type (gdbarch)
+ ->builtin_data_ptr);
if (addr != 0 && addr != active_addr)
{
bsd_uthread_check_magic (addr);
@@ -298,7 +299,8 @@ bsd_uthread_store_registers (struct regc
CORE_ADDR active_addr;
active_addr = read_memory_typed_address (bsd_uthread_thread_run_addr,
- builtin_type_void_data_ptr);
+ builtin_type (gdbarch)
+ ->builtin_data_ptr);
if (addr != 0 && addr != active_addr)
{
bsd_uthread_check_magic (addr);
@@ -344,7 +346,8 @@ bsd_uthread_wait (ptid_t ptid, struct ta
/* Fetch the corresponding thread ID, and augment the returned
process ID with it. */
addr = read_memory_typed_address (bsd_uthread_thread_run_addr,
- builtin_type_void_data_ptr);
+ builtin_type (current_gdbarch)
+ ->builtin_data_ptr);
if (addr != 0)
{
gdb_byte buf[4];
@@ -408,7 +411,8 @@ bsd_uthread_find_new_threads (void)
CORE_ADDR addr;
addr = read_memory_typed_address (bsd_uthread_thread_list_addr,
- builtin_type_void_data_ptr);
+ builtin_type (current_gdbarch)
+ ->builtin_data_ptr);
while (addr != 0)
{
ptid_t ptid = ptid_build (pid, 0, addr);
@@ -417,7 +421,8 @@ bsd_uthread_find_new_threads (void)
add_thread (ptid);
addr = read_memory_typed_address (addr + offset,
- builtin_type_void_data_ptr);
+ builtin_type (current_gdbarch)
+ ->builtin_data_ptr);
}
}
diff -urpN src/gdb/cris-tdep.c dev2/gdb/cris-tdep.c
--- src/gdb/cris-tdep.c 2007-11-05 05:32:21.000000000 +0100
+++ dev2/gdb/cris-tdep.c 2007-11-05 13:13:48.000000000 +0100
@@ -1680,7 +1680,7 @@ cris_register_type (struct gdbarch *gdba
return builtin_type_void_func_ptr;
else if (regno == gdbarch_sp_regnum (gdbarch)
|| regno == CRIS_FP_REGNUM)
- return builtin_type_void_data_ptr;
+ return builtin_type (gdbarch)->builtin_data_ptr;
else if ((regno >= 0 && regno < gdbarch_sp_regnum (gdbarch))
|| (regno >= MOF_REGNUM && regno <= USP_REGNUM))
/* Note: R8 taken care of previous clause. */
@@ -1701,7 +1701,7 @@ crisv32_register_type (struct gdbarch *g
return builtin_type_void_func_ptr;
else if (regno == gdbarch_sp_regnum (gdbarch)
|| regno == CRIS_FP_REGNUM)
- return builtin_type_void_data_ptr;
+ return builtin_type (gdbarch)->builtin_data_ptr;
else if ((regno >= 0 && regno <= ACR_REGNUM)
|| (regno >= EXS_REGNUM && regno <= SPC_REGNUM)
|| (regno == PID_REGNUM)
diff -urpN src/gdb/dwarf2-frame.c dev2/gdb/dwarf2-frame.c
--- src/gdb/dwarf2-frame.c 2007-10-08 14:46:09.000000000 +0200
+++ dev2/gdb/dwarf2-frame.c 2007-11-05 13:13:05.000000000 +0100
@@ -1414,7 +1414,7 @@ size_of_encoded_value (gdb_byte encoding
switch (encoding & 0x07)
{
case DW_EH_PE_absptr:
- return TYPE_LENGTH (builtin_type_void_data_ptr);
+ return TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr);
case DW_EH_PE_udata2:
return 2;
case DW_EH_PE_udata4:
@@ -1699,7 +1699,7 @@ decode_frame_entry_1 (struct comp_unit *
if (augmentation[0] == 'e' && augmentation[1] == 'h')
{
/* Skip. */
- buf += TYPE_LENGTH (builtin_type_void_data_ptr);
+ buf += TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr);
augmentation += 2;
}
diff -urpN src/gdb/dwarf2loc.c dev2/gdb/dwarf2loc.c
--- src/gdb/dwarf2loc.c 2007-10-08 14:46:09.000000000 +0200
+++ dev2/gdb/dwarf2loc.c 2007-11-05 13:12:15.000000000 +0100
@@ -119,7 +119,8 @@ dwarf_expr_read_reg (void *baton, int dw
int regnum;
regnum = gdbarch_dwarf2_reg_to_regnum (current_gdbarch, dwarf_regnum);
- result = address_from_register (builtin_type_void_data_ptr,
+ result = address_from_register (builtin_type (current_gdbarch)
+ ->builtin_data_ptr,
regnum, debaton->frame);
return result;
}
diff -urpN src/gdb/f-valprint.c dev2/gdb/f-valprint.c
--- src/gdb/f-valprint.c 2007-08-23 20:08:31.000000000 +0200
+++ dev2/gdb/f-valprint.c 2007-11-05 13:11:19.000000000 +0100
@@ -102,7 +102,8 @@ f77_get_dynamic_lowerbound (struct type
ptr_to_lower_bound =
read_memory_typed_address (current_frame_addr +
TYPE_ARRAY_LOWER_BOUND_VALUE (type),
- builtin_type_void_data_ptr);
+ builtin_type (current_gdbarch)
+ ->builtin_data_ptr);
*lower_bound = read_memory_integer (ptr_to_lower_bound, 4);
}
else
@@ -168,7 +169,8 @@ f77_get_dynamic_upperbound (struct type
ptr_to_upper_bound =
read_memory_typed_address (current_frame_addr +
TYPE_ARRAY_UPPER_BOUND_VALUE (type),
- builtin_type_void_data_ptr);
+ builtin_type (current_gdbarch)
+ ->builtin_data_ptr);
*upper_bound = read_memory_integer (ptr_to_upper_bound, 4);
}
else
diff -urpN src/gdb/gdbtypes.h dev2/gdb/gdbtypes.h
--- src/gdb/gdbtypes.h 2007-11-05 05:32:21.000000000 +0100
+++ dev2/gdb/gdbtypes.h 2007-11-05 13:19:57.000000000 +0100
@@ -1025,8 +1025,6 @@ struct builtin_type
extern const struct builtin_type *builtin_type (struct gdbarch *gdbarch);
/* Compatibility macros to access types for the current architecture. */
-#define builtin_type_void_data_ptr \
- (builtin_type (current_gdbarch)->builtin_data_ptr)
#define builtin_type_void_func_ptr \
(builtin_type (current_gdbarch)->builtin_func_ptr)
#define builtin_type_CORE_ADDR \
Binary files src/gdb/.gdbtypes.h.swp and dev2/gdb/.gdbtypes.h.swp differ
diff -urpN src/gdb/gnu-v3-abi.c dev2/gdb/gnu-v3-abi.c
--- src/gdb/gnu-v3-abi.c 2007-09-23 18:25:05.000000000 +0200
+++ dev2/gdb/gnu-v3-abi.c 2007-11-05 13:09:48.000000000 +0100
@@ -376,8 +376,8 @@ static int
gnuv3_baseclass_offset (struct type *type, int index, const bfd_byte *valaddr,
CORE_ADDR address)
{
- struct type *vtable_type = gdbarch_data (current_gdbarch,
- vtable_type_gdbarch_data);
+ struct gdbarch *gdbarch = current_gdbarch;
+ struct type *vtable_type = gdbarch_data (gdbarch, vtable_type_gdbarch_data);
struct value *vtable;
struct type *vbasetype;
struct value *offset_val, *vbase_array;
@@ -399,10 +399,11 @@ gnuv3_baseclass_offset (struct type *typ
error (_("Expected a negative vbase offset (old compiler?)"));
cur_base_offset = cur_base_offset + vtable_address_point_offset ();
- if ((- cur_base_offset) % TYPE_LENGTH (builtin_type_void_data_ptr) != 0)
+ if ((- cur_base_offset)
+ % TYPE_LENGTH (builtin_type (gdbarch)->builtin_data_ptr) != 0)
error (_("Misaligned vbase offset."));
cur_base_offset = cur_base_offset
- / ((int) TYPE_LENGTH (builtin_type_void_data_ptr));
+ / ((int) TYPE_LENGTH (builtin_type (gdbarch)->builtin_data_ptr));
/* We're now looking for the cur_base_offset'th entry (negative index)
in the vcall_and_vbase_offsets array. We used to cast the object to
@@ -424,8 +425,9 @@ gnuv3_baseclass_offset (struct type *typ
error (_("Illegal vptr offset in class %s"),
TYPE_NAME (vbasetype) ? TYPE_NAME (vbasetype) : "<unknown>");
- vtable_address = value_as_address (value_at_lazy (builtin_type_void_data_ptr,
- address));
+ vtable_address
+ = value_as_address (value_at_lazy (builtin_type (gdbarch)->builtin_data_ptr,
+ address));
vtable = value_at_lazy (vtable_type,
vtable_address - vtable_address_point_offset ());
offset_val = value_from_longest(builtin_type_int, cur_base_offset);
@@ -576,7 +578,7 @@ gnuv3_print_method_ptr (const gdb_byte *
static int
gnuv3_method_ptr_size (void)
{
- return 2 * TYPE_LENGTH (builtin_type_void_data_ptr);
+ return 2 * TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr);
}
/* GNU v3 implementation of cplus_make_method_ptr. */
@@ -584,7 +586,7 @@ gnuv3_method_ptr_size (void)
static void
gnuv3_make_method_ptr (gdb_byte *contents, CORE_ADDR value, int is_virtual)
{
- int size = TYPE_LENGTH (builtin_type_void_data_ptr);
+ int size = TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr);
/* FIXME drow/2006-12-24: The adjustment of "this" is currently
always zero, since the method pointer is of the correct type.
@@ -659,7 +661,8 @@ gnuv3_method_ptr_to_value (struct value
You can provoke this case by casting a Base::* to a Derived::*, for
instance. */
- *this_p = value_cast (builtin_type_void_data_ptr, *this_p);
+ *this_p
+ = value_cast (builtin_type (current_gdbarch)->builtin_data_ptr, *this_p);
adjval = value_from_longest (builtin_type_long, adjustment);
*this_p = value_add (*this_p, adjval);
*this_p = value_cast (final_type, *this_p);
diff -urpN src/gdb/h8300-tdep.c dev2/gdb/h8300-tdep.c
--- src/gdb/h8300-tdep.c 2007-11-05 05:32:21.000000000 +0100
+++ dev2/gdb/h8300-tdep.c 2007-11-05 13:06:10.000000000 +0100
@@ -1134,7 +1134,7 @@ h8300_register_type (struct gdbarch *gdb
return builtin_type_void_func_ptr;
case E_SP_REGNUM:
case E_FP_REGNUM:
- return builtin_type_void_data_ptr;
+ return builtin_type (gdbarch)->builtin_data_ptr;
default:
if (regno == E_PSEUDO_CCR_REGNUM)
return builtin_type_uint8;
diff -urpN src/gdb/i386-tdep.c dev2/gdb/i386-tdep.c
--- src/gdb/i386-tdep.c 2007-11-05 05:32:21.000000000 +0100
+++ dev2/gdb/i386-tdep.c 2007-11-05 13:05:34.000000000 +0100
@@ -1268,7 +1268,8 @@ i386_get_longjmp_target (struct frame_in
{
gdb_byte buf[8];
CORE_ADDR sp, jb_addr;
- int jb_pc_offset = gdbarch_tdep (get_frame_arch (frame))->jb_pc_offset;
+ struct gdbarch *gdbarch = get_frame_arch (frame);
+ int jb_pc_offset = gdbarch_tdep (gdbarch)->jb_pc_offset;
int len = TYPE_LENGTH (builtin_type_void_func_ptr);
/* If JB_PC_OFFSET is -1, we have no way to find out where the
@@ -1278,12 +1279,13 @@ i386_get_longjmp_target (struct frame_in
/* Don't use I386_ESP_REGNUM here, since this function is also used
for AMD64. */
- get_frame_register (frame, gdbarch_sp_regnum (get_frame_arch (frame)), buf);
- sp = extract_typed_address (buf, builtin_type_void_data_ptr);
+ get_frame_register (frame, gdbarch_sp_regnum (gdbarch), buf);
+ sp = extract_typed_address (buf, builtin_type (gdbarch)->builtin_data_ptr);
if (target_read_memory (sp + len, buf, len))
return 0;
- jb_addr = extract_typed_address (buf, builtin_type_void_data_ptr);
+ jb_addr = extract_typed_address (buf,
+ builtin_type (gdbarch)->builtin_data_ptr);
if (target_read_memory (jb_addr + jb_pc_offset, buf, len))
return 0;
@@ -1738,7 +1740,7 @@ i386_register_type (struct gdbarch *gdba
return i386_eflags_type;
if (regnum == I386_EBP_REGNUM || regnum == I386_ESP_REGNUM)
- return builtin_type_void_data_ptr;
+ return builtin_type (gdbarch)->builtin_data_ptr;
if (i386_fp_regnum_p (regnum))
return builtin_type_i387_ext;
diff -urpN src/gdb/m32r-tdep.c dev2/gdb/m32r-tdep.c
--- src/gdb/m32r-tdep.c 2007-11-05 05:32:22.000000000 +0100
+++ dev2/gdb/m32r-tdep.c 2007-11-05 13:03:42.000000000 +0100
@@ -231,7 +231,7 @@ m32r_register_type (struct gdbarch *gdba
if (reg_nr == M32R_PC_REGNUM)
return builtin_type_void_func_ptr;
else if (reg_nr == M32R_SP_REGNUM || reg_nr == M32R_FP_REGNUM)
- return builtin_type_void_data_ptr;
+ return builtin_type (current_gdbarch)->builtin_data_ptr;
else
return builtin_type_int32;
}
diff -urpN src/gdb/m68k-tdep.c dev2/gdb/m68k-tdep.c
--- src/gdb/m68k-tdep.c 2007-11-05 05:32:22.000000000 +0100
+++ dev2/gdb/m68k-tdep.c 2007-11-05 13:03:09.000000000 +0100
@@ -134,7 +134,7 @@ m68k_register_type (struct gdbarch *gdba
return builtin_type_void_func_ptr;
if (regnum >= M68K_A0_REGNUM && regnum <= M68K_A0_REGNUM + 7)
- return builtin_type_void_data_ptr;
+ return builtin_type (gdbarch)->builtin_data_ptr;
if (regnum == M68K_PS_REGNUM)
return m68k_ps_type;
diff -urpN src/gdb/m88k-tdep.c dev2/gdb/m88k-tdep.c
--- src/gdb/m88k-tdep.c 2007-11-05 05:32:22.000000000 +0100
+++ dev2/gdb/m88k-tdep.c 2007-11-05 13:02:24.000000000 +0100
@@ -79,7 +79,7 @@ m88k_register_type (struct gdbarch *gdba
/* R30 and R31 typically contains data addresses. */
if (regnum == M88K_R30_REGNUM || regnum == M88K_R31_REGNUM)
- return builtin_type_void_data_ptr;
+ return builtin_type (gdbarch)->builtin_data_ptr;
return builtin_type_int32;
}
diff -urpN src/gdb/mips-tdep.c dev2/gdb/mips-tdep.c
--- src/gdb/mips-tdep.c 2007-11-05 05:32:22.000000000 +0100
+++ dev2/gdb/mips-tdep.c 2007-11-05 13:00:50.000000000 +0100
@@ -809,10 +809,11 @@ mips_pseudo_register_type (struct gdbarc
/* Use pointer types for registers if we can. For n32 we can not,
since we do not have a 64-bit pointer type. */
- if (mips_abi_regsize (gdbarch) == TYPE_LENGTH (builtin_type_void_data_ptr))
+ if (mips_abi_regsize (gdbarch)
+ == TYPE_LENGTH (builtin_type (gdbarch)->builtin_data_ptr))
{
if (rawnum == MIPS_SP_REGNUM || rawnum == MIPS_EMBED_BADVADDR_REGNUM)
- return builtin_type_void_data_ptr;
+ return builtin_type (gdbarch)->builtin_data_ptr;
else if (rawnum == MIPS_EMBED_PC_REGNUM)
return builtin_type_void_func_ptr;
}
diff -urpN src/gdb/objc-lang.c dev2/gdb/objc-lang.c
--- src/gdb/objc-lang.c 2007-11-05 05:32:22.000000000 +0100
+++ dev2/gdb/objc-lang.c 2007-11-05 12:59:54.000000000 +0100
@@ -1524,7 +1524,8 @@ print_object_command (char *args, int fr
int pc = 0;
object = expr->language_defn->la_exp_desc->evaluate_exp
- (builtin_type_void_data_ptr, expr, &pc, EVAL_NORMAL);
+ (builtin_type (current_gdbarch)->builtin_data_ptr,
+ expr, &pc, EVAL_NORMAL);
do_cleanups (old_chain);
}
diff -urpN src/gdb/procfs.c dev2/gdb/procfs.c
--- src/gdb/procfs.c 2007-08-23 20:08:36.000000000 +0200
+++ dev2/gdb/procfs.c 2007-11-05 12:58:37.000000000 +0100
@@ -2844,8 +2844,11 @@ procfs_address_to_host_pointer (CORE_ADD
{
void *ptr;
- gdb_assert (sizeof (ptr) == TYPE_LENGTH (builtin_type_void_data_ptr));
- gdbarch_address_to_pointer (current_gdbarch, builtin_type_void_data_ptr,
+ gdb_assert (sizeof (ptr)
+ == TYPE_LENGTH (builtin_type (current_gdbarch)
+ ->builtin_data_ptr));
+ gdbarch_address_to_pointer (current_gdbarch,
+ builtin_type (current_gdbarch)->builtin_data_ptr,
&ptr, addr);
return ptr;
}
@@ -5270,7 +5273,8 @@ procfs_can_use_hw_breakpoint (int type,
procfs_address_to_host_pointer will reveal that an internal error
will be generated when the host and target pointer sizes are
different. */
- if (sizeof (void *) != TYPE_LENGTH (builtin_type_void_data_ptr))
+ if (sizeof (void *)
+ != TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr))
return 0;
/* Other tests here??? */
diff -urpN src/gdb/solib-svr4.c dev2/gdb/solib-svr4.c
--- src/gdb/solib-svr4.c 2007-10-24 23:22:08.000000000 +0200
+++ dev2/gdb/solib-svr4.c 2007-11-05 12:56:39.000000000 +0100
@@ -111,7 +111,8 @@ LM_ADDR_FROM_LINK_MAP (struct so_list *s
struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
return extract_typed_address (so->lm_info->lm + lmo->l_addr_offset,
- builtin_type_void_data_ptr);
+ builtin_type (current_gdbarch)
+ ->builtin_data_ptr);
}
static int
@@ -128,7 +129,8 @@ LM_DYNAMIC_FROM_LINK_MAP (struct so_list
struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
return extract_typed_address (so->lm_info->lm + lmo->l_ld_offset,
- builtin_type_void_data_ptr);
+ builtin_type (current_gdbarch)
+ ->builtin_data_ptr);
}
static CORE_ADDR
@@ -207,7 +209,8 @@ LM_NEXT (struct so_list *so)
struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
return extract_typed_address (so->lm_info->lm + lmo->l_next_offset,
- builtin_type_void_data_ptr);
+ builtin_type (current_gdbarch)
+ ->builtin_data_ptr);
}
static CORE_ADDR
@@ -216,7 +219,8 @@ LM_NAME (struct so_list *so)
struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
return extract_typed_address (so->lm_info->lm + lmo->l_name_offset,
- builtin_type_void_data_ptr);
+ builtin_type (current_gdbarch)
+ ->builtin_data_ptr);
}
static int
@@ -230,7 +234,8 @@ IGNORE_FIRST_LINK_MAP_ENTRY (struct so_l
return 0;
return extract_typed_address (so->lm_info->lm + lmo->l_prev_offset,
- builtin_type_void_data_ptr) == 0;
+ builtin_type (current_gdbarch)
+ ->builtin_data_ptr) == 0;
}
static CORE_ADDR debug_base; /* Base of dynamic linker structures */
@@ -406,8 +411,9 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
ptr_addr = dyn_addr + (buf - bufstart) + arch_size / 8;
if (target_read_memory (ptr_addr, ptr_buf, arch_size / 8) == 0)
- dyn_ptr = extract_typed_address (ptr_buf,
- builtin_type_void_data_ptr);
+ dyn_ptr = extract_typed_address
+ (ptr_buf,
+ builtin_type (current_gdbarch)->builtin_data_ptr);
*ptr = dyn_ptr;
}
return 1;
@@ -454,13 +460,15 @@ elf_locate_base (void)
if (scan_dyntag (DT_MIPS_RLD_MAP, exec_bfd, &dyn_ptr))
{
gdb_byte *pbuf;
- int pbuf_size = TYPE_LENGTH (builtin_type_void_data_ptr);
+ int pbuf_size
+ = TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr);
pbuf = alloca (pbuf_size);
/* DT_MIPS_RLD_MAP contains a pointer to the address
of the dynamic link structure. */
if (target_read_memory (dyn_ptr, pbuf, pbuf_size))
return 0;
- return extract_typed_address (pbuf, builtin_type_void_data_ptr);
+ return extract_typed_address
+ (pbuf, builtin_type (current_gdbarch)->builtin_data_ptr);
}
/* Find DT_DEBUG. */
@@ -545,7 +553,8 @@ solib_svr4_r_map (void)
struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
return read_memory_typed_address (debug_base + lmo->r_map_offset,
- builtin_type_void_data_ptr);
+ builtin_type (current_gdbarch)
+ ->builtin_data_ptr);
}
/* Find the link map for the dynamic linker (if it is not in the
@@ -565,7 +574,8 @@ solib_svr4_r_ldsomap (void)
return 0;
return read_memory_typed_address (debug_base + lmo->r_ldsomap_offset,
- builtin_type_void_data_ptr);
+ builtin_type (current_gdbarch)
+ ->builtin_data_ptr);
}
/*
@@ -598,7 +608,8 @@ open_symbol_file_object (void *from_ttyp
int errcode;
int from_tty = *(int *)from_ttyp;
struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
- int l_name_size = TYPE_LENGTH (builtin_type_void_data_ptr);
+ int l_name_size
+ = TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr);
gdb_byte *l_name_buf = xmalloc (l_name_size);
struct cleanup *cleanups = make_cleanup (xfree, l_name_buf);
@@ -618,7 +629,9 @@ open_symbol_file_object (void *from_ttyp
read_memory (lm + lmo->l_name_offset, l_name_buf, l_name_size);
/* Convert the address to host format. */
- l_name = extract_typed_address (l_name_buf, builtin_type_void_data_ptr);
+ l_name = extract_typed_address (l_name_buf,
+ builtin_type (current_gdbarch)
+ ->builtin_data_ptr);
/* Free l_name_buf. */
do_cleanups (cleanups);
@@ -814,7 +827,8 @@ svr4_fetch_objfile_link_map (struct objf
struct lm_info objfile_lm_info;
struct cleanup *old_chain;
CORE_ADDR name_address;
- int l_name_size = TYPE_LENGTH (builtin_type_void_data_ptr);
+ int l_name_size
+ = TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr);
gdb_byte *l_name_buf = xmalloc (l_name_size);
old_chain = make_cleanup (xfree, l_name_buf);
@@ -832,7 +846,8 @@ svr4_fetch_objfile_link_map (struct objf
/* Extract this object's name. */
name_address = extract_typed_address (l_name_buf,
- builtin_type_void_data_ptr);
+ builtin_type (current_gdbarch)
+ ->builtin_data_ptr);
target_read_string (name_address, &buffer,
SO_NAME_MAX_PATH_SIZE - 1, &errcode);
make_cleanup (xfree, buffer);
@@ -856,7 +871,8 @@ svr4_fetch_objfile_link_map (struct objf
}
/* Not the file we wanted, continue checking. */
lm = extract_typed_address (objfile_lm_info.lm + lmo->l_next_offset,
- builtin_type_void_data_ptr);
+ builtin_type (current_gdbarch)
+ ->builtin_data_ptr);
do_cleanups (old_chain);
}
return 0;
diff -urpN src/gdb/sparc64-tdep.c dev2/gdb/sparc64-tdep.c
--- src/gdb/sparc64-tdep.c 2007-11-05 05:32:22.000000000 +0100
+++ dev2/gdb/sparc64-tdep.c 2007-11-05 12:48:59.000000000 +0100
@@ -246,7 +246,7 @@ sparc64_register_type (struct gdbarch *g
/* Raw registers. */
if (regnum == SPARC_SP_REGNUM || regnum == SPARC_FP_REGNUM)
- return builtin_type_void_data_ptr;
+ return builtin_type (gdbarch)->builtin_data_ptr;
if (regnum >= SPARC_G0_REGNUM && regnum <= SPARC_I7_REGNUM)
return builtin_type_int64;
if (regnum >= SPARC_F0_REGNUM && regnum <= SPARC_F31_REGNUM)
diff -urpN src/gdb/sparc-tdep.c dev2/gdb/sparc-tdep.c
--- src/gdb/sparc-tdep.c 2007-11-05 05:32:22.000000000 +0100
+++ dev2/gdb/sparc-tdep.c 2007-11-05 12:48:12.000000000 +0100
@@ -337,7 +337,7 @@ sparc32_register_type (struct gdbarch *g
return builtin_type_double;
if (regnum == SPARC_SP_REGNUM || regnum == SPARC_FP_REGNUM)
- return builtin_type_void_data_ptr;
+ return builtin_type (gdbarch)->builtin_data_ptr;
if (regnum == SPARC32_PC_REGNUM || regnum == SPARC32_NPC_REGNUM)
return builtin_type_void_func_ptr;
diff -urpN src/gdb/spu-tdep.c dev2/gdb/spu-tdep.c
--- src/gdb/spu-tdep.c 2007-11-05 05:32:22.000000000 +0100
+++ dev2/gdb/spu-tdep.c 2007-11-05 12:47:36.000000000 +0100
@@ -140,7 +140,7 @@ spu_register_type (struct gdbarch *gdbar
return builtin_type_void_func_ptr;
case SPU_SP_REGNUM:
- return builtin_type_void_data_ptr;
+ return builtin_type (gdbarch)->builtin_data_ptr;
case SPU_FPSCR_REGNUM:
return builtin_type_uint128;
diff -urpN src/gdb/std-regs.c dev2/gdb/std-regs.c
--- src/gdb/std-regs.c 2007-10-22 16:13:19.000000000 +0200
+++ dev2/gdb/std-regs.c 2007-11-05 12:47:02.000000000 +0100
@@ -42,12 +42,14 @@ value_of_builtin_frame_fp_reg (struct fr
frame);
else
{
- struct value *val = allocate_value (builtin_type_void_data_ptr);
+ struct value *val
+ = allocate_value (builtin_type (gdbarch)->builtin_data_ptr);
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,
+ builtin_type (gdbarch)->builtin_data_ptr,
buf, get_frame_base_address (frame));
return val;
}
@@ -61,12 +63,14 @@ value_of_builtin_frame_pc_reg (struct fr
return value_of_register (gdbarch_pc_regnum (gdbarch), frame);
else
{
- struct value *val = allocate_value (builtin_type_void_data_ptr);
+ struct value *val
+ = allocate_value (builtin_type (gdbarch)->builtin_data_ptr);
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,
+ builtin_type (gdbarch)->builtin_data_ptr,
buf, get_frame_pc (frame));
return val;
}
diff -urpN src/gdb/target.c dev2/gdb/target.c
--- src/gdb/target.c 2007-10-22 16:03:37.000000000 +0200
+++ dev2/gdb/target.c 2007-11-05 12:43:42.000000000 +0100
@@ -1785,7 +1785,8 @@ find_default_create_inferior (char *exec
static int
default_region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
{
- return (len <= TYPE_LENGTH (builtin_type_void_data_ptr));
+ return (len
+ <= TYPE_LENGTH (builtin_type (current_gdbarch)->builtin_data_ptr));
}
static int
diff -urpN src/gdb/target-descriptions.c dev2/gdb/target-descriptions.c
--- src/gdb/target-descriptions.c 2007-11-05 05:32:22.000000000 +0100
+++ dev2/gdb/target-descriptions.c 2007-11-05 12:42:42.000000000 +0100
@@ -572,12 +572,12 @@ tdesc_register_type (struct gdbarch *gdb
return builtin_type_long_long;
else if (reg->bitsize == gdbarch_ptr_bit (gdbarch))
/* A bit desperate by this point... */
- return builtin_type_void_data_ptr;
+ return builtin_type (gdbarch)->builtin_data_ptr;
}
else if (strcmp (reg->type, "code_ptr") == 0)
return builtin_type_void_func_ptr;
else if (strcmp (reg->type, "data_ptr") == 0)
- return builtin_type_void_data_ptr;
+ return builtin_type (gdbarch)->builtin_data_ptr;
else
internal_error (__FILE__, __LINE__,
"Register \"%s\" has an unknown type \"%s\"",