diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/gdbarch.c | 18 | ||||
-rw-r--r-- | gdb/gdbarch.h | 25 | ||||
-rwxr-xr-x | gdb/gdbarch.sh | 9 | ||||
-rw-r--r-- | gdb/mips-tdep.c | 5 | ||||
-rw-r--r-- | gdb/value.c | 7 |
6 files changed, 23 insertions, 47 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 668c2ad..4c430f6 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2005-01-27 Andrew Cagney <cagney@gnu.org> + * gdbarch.sh (integer_to_address): Change buf parameter to a const + bfd_byte, make pure-multi-arch. + * gdbarch.h, gdbarch.c: Regenerate. + * mips-tdep.c (mips_integer_to_address): Update. + * value.c (value_as_address): Update. + * cli/cli-dump.h (fopen_with_cleanup): Make "filename" const. * cli/cli-dump.c (dump_binary_file, dump_bfd_file): Make string parameters const, change buf to a const bfd_byte. diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index c277e91..1db69c2 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -2,7 +2,7 @@ /* Dynamic architecture support for GDB, the GNU debugger. - Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free + Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GDB. @@ -1203,21 +1203,9 @@ gdbarch_dump (struct gdbarch *current_gdbarch, struct ui_file *file) fprintf_unfiltered (file, "gdbarch_dump: int_bit = %s\n", paddr_d (current_gdbarch->int_bit)); -#ifdef INTEGER_TO_ADDRESS_P - fprintf_unfiltered (file, - "gdbarch_dump: %s # %s\n", - "INTEGER_TO_ADDRESS_P()", - XSTRING (INTEGER_TO_ADDRESS_P ())); -#endif fprintf_unfiltered (file, "gdbarch_dump: gdbarch_integer_to_address_p() = %d\n", gdbarch_integer_to_address_p (current_gdbarch)); -#ifdef INTEGER_TO_ADDRESS - fprintf_unfiltered (file, - "gdbarch_dump: %s # %s\n", - "INTEGER_TO_ADDRESS(type, buf)", - XSTRING (INTEGER_TO_ADDRESS (type, buf))); -#endif fprintf_unfiltered (file, "gdbarch_dump: integer_to_address = <0x%lx>\n", (long) current_gdbarch->integer_to_address); @@ -2714,13 +2702,13 @@ gdbarch_integer_to_address_p (struct gdbarch *gdbarch) } CORE_ADDR -gdbarch_integer_to_address (struct gdbarch *gdbarch, struct type *type, void *buf) +gdbarch_integer_to_address (struct gdbarch *gdbarch, struct type *type, const bfd_byte *buf) { gdb_assert (gdbarch != NULL); gdb_assert (gdbarch->integer_to_address != NULL); if (gdbarch_debug >= 2) fprintf_unfiltered (gdb_stdlog, "gdbarch_integer_to_address called\n"); - return gdbarch->integer_to_address (type, buf); + return gdbarch->integer_to_address (gdbarch, type, buf); } void diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index 4ab8ea5..5952ef1 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -2,7 +2,7 @@ /* Dynamic architecture support for GDB, the GNU debugger. - Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free + Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GDB. @@ -747,30 +747,11 @@ extern void set_gdbarch_address_to_pointer (struct gdbarch *gdbarch, gdbarch_add #define ADDRESS_TO_POINTER(type, buf, addr) (gdbarch_address_to_pointer (current_gdbarch, type, buf, addr)) #endif -#if defined (INTEGER_TO_ADDRESS) -/* Legacy for systems yet to multi-arch INTEGER_TO_ADDRESS */ -#if !defined (INTEGER_TO_ADDRESS_P) -#define INTEGER_TO_ADDRESS_P() (1) -#endif -#endif - extern int gdbarch_integer_to_address_p (struct gdbarch *gdbarch); -#if !defined (GDB_TM_FILE) && defined (INTEGER_TO_ADDRESS_P) -#error "Non multi-arch definition of INTEGER_TO_ADDRESS" -#endif -#if !defined (INTEGER_TO_ADDRESS_P) -#define INTEGER_TO_ADDRESS_P() (gdbarch_integer_to_address_p (current_gdbarch)) -#endif -typedef CORE_ADDR (gdbarch_integer_to_address_ftype) (struct type *type, void *buf); -extern CORE_ADDR gdbarch_integer_to_address (struct gdbarch *gdbarch, struct type *type, void *buf); +typedef CORE_ADDR (gdbarch_integer_to_address_ftype) (struct gdbarch *gdbarch, struct type *type, const bfd_byte *buf); +extern CORE_ADDR gdbarch_integer_to_address (struct gdbarch *gdbarch, struct type *type, const bfd_byte *buf); extern void set_gdbarch_integer_to_address (struct gdbarch *gdbarch, gdbarch_integer_to_address_ftype *integer_to_address); -#if !defined (GDB_TM_FILE) && defined (INTEGER_TO_ADDRESS) -#error "Non multi-arch definition of INTEGER_TO_ADDRESS" -#endif -#if !defined (INTEGER_TO_ADDRESS) -#define INTEGER_TO_ADDRESS(type, buf) (gdbarch_integer_to_address (current_gdbarch, type, buf)) -#endif /* NOTE: cagney/2003-03-24: Replaced by PUSH_ARGUMENTS. */ diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index aa0cd62..1713def 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -2,9 +2,8 @@ # Architecture commands for GDB, the GNU debugger. # -# Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software -# Foundation, Inc. -# +# Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free +# Software Foundation, Inc. # # This file is part of GDB. # @@ -500,7 +499,7 @@ f:=:void:value_to_register:struct frame_info *frame, int regnum, struct type *ty # f:=:CORE_ADDR:pointer_to_address:struct type *type, const void *buf:type, buf::unsigned_pointer_to_address::0 f:=:void:address_to_pointer:struct type *type, void *buf, CORE_ADDR addr:type, buf, addr::unsigned_address_to_pointer::0 -F:=:CORE_ADDR:integer_to_address:struct type *type, void *buf:type, buf +M::CORE_ADDR:integer_to_address:struct type *type, const bfd_byte *buf:type, buf # # NOTE: cagney/2003-03-24: Replaced by PUSH_ARGUMENTS. F:=:void:deprecated_store_struct_return:CORE_ADDR addr, CORE_ADDR sp:addr, sp @@ -714,7 +713,7 @@ cat <<EOF /* Dynamic architecture support for GDB, the GNU debugger. - Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free + Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GDB. diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index 8d9d855..33ad1e9 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -1,7 +1,7 @@ /* Target-dependent code for the MIPS architecture, for GDB, the GNU Debugger. Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, - 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software + 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Contributed by Alessandro Forin(af@cs.cmu.edu) at CMU @@ -4596,7 +4596,8 @@ mips_register_sim_regno (int regnum) guarenteed to be correctly sign extended. */ static CORE_ADDR -mips_integer_to_address (struct type *type, void *buf) +mips_integer_to_address (struct gdbarch *gdbarch, + struct type *type, const bfd_byte *buf) { char *tmp = alloca (TYPE_LENGTH (builtin_type_void_data_ptr)); LONGEST val = unpack_long (type, buf); diff --git a/gdb/value.c b/gdb/value.c index 5afc5b4..3835a8a 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -654,7 +654,7 @@ value_as_address (struct value *val) take an address from a disassembly listing and give it to `x/i'. This is certainly important. - Adding an architecture method like INTEGER_TO_ADDRESS certainly + Adding an architecture method like integer_to_address() certainly makes it possible for GDB to "get it right" in all circumstances --- the target has complete control over how things get done, so people can Do The Right Thing for their target without breaking @@ -664,8 +664,9 @@ value_as_address (struct value *val) if (TYPE_CODE (value_type (val)) != TYPE_CODE_PTR && TYPE_CODE (value_type (val)) != TYPE_CODE_REF - && INTEGER_TO_ADDRESS_P ()) - return INTEGER_TO_ADDRESS (value_type (val), VALUE_CONTENTS (val)); + && gdbarch_integer_to_address_p (current_gdbarch)) + return gdbarch_integer_to_address (current_gdbarch, value_type (val), + VALUE_CONTENTS (val)); return unpack_long (value_type (val), VALUE_CONTENTS (val)); #endif |