Fix C++ overload support, see through references
This commit is contained in:
parent
36c2118fc9
commit
09b59ee380
374
gdb/ChangeLog
374
gdb/ChangeLog
|
@ -1,3 +1,33 @@
|
|||
2000-03-10 Daniel Berlin <dan@cgsoftware.com>
|
||||
Fix C++ overloading, add support for seeing through references.
|
||||
|
||||
* defs.h (STREQ_IW): add STREQ_IW, like STREQ, except it's
|
||||
whitespace insensitive
|
||||
|
||||
* valops.c (find_overload_match): Handle STABS overloading for
|
||||
C++.
|
||||
(find_overload_match): Look in right place for function arguments
|
||||
in the debug info.
|
||||
(find_overload_match): Rather than giving up when we have >1
|
||||
perfect match, just choose one, especially since the
|
||||
recommendation GDB gives ("disambiguate it by specifying function
|
||||
signature"), is basically impossible.
|
||||
(check_field_in): STREQ->STREQ_IW
|
||||
(search_struct_field): STREQ->STREQ_IW
|
||||
(find_method_list): STREQ->STREQ_IW
|
||||
|
||||
* gdbtypes.c (rank_one_type): Add ability to see through
|
||||
references.
|
||||
(rank_one_type): strcmp->strcmp_iw, because the whitespace could
|
||||
be different.
|
||||
(rank_function): Rank function properly (was doing it wrong
|
||||
before, comparing the wrong parts of the arrays)
|
||||
(rank_one_type): Change #if 0 to #ifdef DEBUG_OLOAD.
|
||||
|
||||
* gdbtypes.h: Add REFERENCE_CONVERSION_BADNESS for "badness"
|
||||
associated with converting a non-reference to a reference.
|
||||
|
||||
|
||||
Fri Mar 10 11:44:55 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* MAINTAINERS: Devolve responsibility for domain maintenance.
|
||||
|
@ -14,8 +44,8 @@ Fri Mar 10 11:44:55 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
Thu Mar 9 14:21:07 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* MAINTAINERS (Core): Anthony Green is the Java - including
|
||||
testsuite - maintainer. Reformat testsuite and language support
|
||||
sections
|
||||
testsuite - maintainer. Reformat testsuite and language support
|
||||
sections
|
||||
|
||||
2000-03-08 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
|
@ -51,7 +81,7 @@ Thu Mar 9 14:21:07 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
|
||||
2000-03-06 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||
|
||||
From Eli Zaretskii <eliz@is.elta.co.il>:
|
||||
From Eli Zaretskii <eliz@is.elta.co.il>:
|
||||
|
||||
* event-loop.c (poll_timers): Don't compare delta.tv_sec with
|
||||
zero, since time_t might be unsigned.
|
||||
|
@ -128,13 +158,13 @@ Sun Mar 5 19:40:27 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
(i386_linux_sigcontext_addr): New function. Recognize the names
|
||||
of the signal tranmpolines used by recent versions of the GNU C
|
||||
library, and add support for RT signals.
|
||||
(LINUX_SIGCONTEXT_PC_OFFSET, LINUX_SIGCONTEXT_SP_OFFSET): New
|
||||
(LINUX_SIGCONTEXT_PC_OFFSET, LINUX_SIGCONTEXT_SP_OFFSET): New
|
||||
defines. Moved here from config/i386/tm-linux.h.
|
||||
(i386_linux_sigtramp_saved_pc, i386_linux_sigtramp_saved_sp):
|
||||
Reimplement in terms of i386_linux_sigcontext_addr.
|
||||
* config/i386/tm-linux.h (LINUX_SIGCONTEXT_SIZE): Removed.
|
||||
(LINUX_SIGCONTEXT_PC_OFFSET, LINUX_SIGCONTEXT_SP_OFFSET):
|
||||
Moved to i386-tdep.c.
|
||||
(LINUX_SIGCONTEXT_PC_OFFSET, LINUX_SIGCONTEXT_SP_OFFSET):
|
||||
Moved to i386-tdep.c.
|
||||
(IN_SIGTRAMP): Redefine to call i386_linux_in_sigtramp.
|
||||
|
||||
Sat Mar 4 19:38:11 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
@ -145,57 +175,57 @@ Sat Mar 4 19:38:11 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
Sat Mar 4 17:23:06 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* MAINTAINERS: Frank Ch. Eigler and Andrew Cagney co-ordinate the
|
||||
sim directory.
|
||||
sim directory.
|
||||
|
||||
Sat Mar 4 16:19:31 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* MAINTAINERS: Add Michael Snyder and Peter Schauer to list of
|
||||
``Blanket Write Privs'' maintainers.
|
||||
``Blanket Write Privs'' maintainers.
|
||||
|
||||
Sat Mar 4 15:58:40 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
From Sun 20 Feb 2000 Robert Lipe <robertl@sco.com>:
|
||||
* language.c (longest_local_hex_string_custom): Don't compile
|
||||
'long long' section if host doesn't have 'long long'.
|
||||
'long long' section if host doesn't have 'long long'.
|
||||
|
||||
Sat Mar 4 15:45:38 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* language.c (longest_raw_hex_string): Comment out. Appears
|
||||
unused.
|
||||
unused.
|
||||
|
||||
Sat Mar 4 13:02:09 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* utils.c (mcalloc), defs.h (mcalloc): Keep consistent with
|
||||
"mmalloc.h" which means using PTRs.
|
||||
"mmalloc.h" which means using PTRs.
|
||||
(init_malloc, msavestring, mstrsave): Convert to PTR free ISO-C.
|
||||
|
||||
Sat Mar 4 11:49:21 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* defs.h (store_address, store_unsigned_integer, store_address):
|
||||
Replace PTR with void* in delcaration.
|
||||
Replace PTR with void* in delcaration.
|
||||
* findvar.c (extract_signed_integer, extract_unsigned_integer,
|
||||
extract_long_unsigned_integer, extract_address,
|
||||
store_signed_integer, store_unsigned_integer, store_address):
|
||||
Convert definition to ISO-C. Replace PTR with void*.
|
||||
extract_long_unsigned_integer, extract_address,
|
||||
store_signed_integer, store_unsigned_integer, store_address):
|
||||
Convert definition to ISO-C. Replace PTR with void*.
|
||||
|
||||
Sat Mar 4 10:57:25 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* defs.h (make_cleanup_func): Document as deprecated.
|
||||
(make_cleanup_ftype): New typedef. Make signature consistent with
|
||||
other function typedefs. Document as not be used out side of
|
||||
make_cleanup code. Use in make_cleanup declarations.
|
||||
other function typedefs. Document as not be used out side of
|
||||
make_cleanup code. Use in make_cleanup declarations.
|
||||
(null_cleanup): Replace PTR with void*.
|
||||
|
||||
* utils.c (make_cleanup, make_final_cleanup, make_run_cleanup,
|
||||
make_exec_cleanup, make_exec_error_cleanup, make_my_cleanup,
|
||||
null_cleanup): Change K&R definition to ISO-C using void* and
|
||||
make_cleanup_fytpe.
|
||||
make_exec_cleanup, make_exec_error_cleanup, make_my_cleanup,
|
||||
null_cleanup): Change K&R definition to ISO-C using void* and
|
||||
make_cleanup_fytpe.
|
||||
(discard_my_cleanups): Don't cast argument to free.
|
||||
|
||||
2000-03-03 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||
|
||||
* defs.h (struct continuation_arg): Change type of field 'data'
|
||||
from PTR to void *.
|
||||
from PTR to void *.
|
||||
|
||||
* event-loop.h: Eliminate uses of PTR, use 'void *' instead.
|
||||
|
||||
|
@ -204,9 +234,9 @@ Sat Mar 4 10:57:25 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
Fri Mar 3 15:39:34 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* Makefile.in (CONFIG_CLEAN, CONFIG_ALL, LN_S): Defined by
|
||||
configure.
|
||||
configure.
|
||||
(SUBDIR_MI_CLEAN, SUBDIR_GDBTK_CLEAN, SUBDIR_MI_ALL,
|
||||
SUBDIR_GDBTK_ALL): Define.
|
||||
SUBDIR_GDBTK_ALL): Define.
|
||||
(all-gdbtk, clean-gdbtk): New targets.
|
||||
(all): Add CONFIG_ALL as dependency.
|
||||
(clean): Add CONFIG_CLEAN as dependency.
|
||||
|
@ -224,7 +254,7 @@ Fri Mar 3 13:12:34 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
2000-03-02 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||
|
||||
* config/alpha/alpha-linux.mh: Remove core-regset.o fron the
|
||||
NATDEPFILES list.
|
||||
NATDEPFILES list.
|
||||
|
||||
2000-03-02 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
|
@ -255,9 +285,9 @@ Thu Mar 2 09:04:46 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
Thu Mar 2 08:55:35 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* MAINTAINERS: Mark Kettenis is the x86 architcture maintainer and
|
||||
a joint GNU/Linux/x86 maintainer. Nick Duffeck and Robert Lipe
|
||||
share SCO/Unixware. Nick Duffek and Peter Schauer share
|
||||
Solaris/x86.
|
||||
a joint GNU/Linux/x86 maintainer. Nick Duffeck and Robert Lipe
|
||||
share SCO/Unixware. Nick Duffek and Peter Schauer share
|
||||
Solaris/x86.
|
||||
|
||||
Wed Mar 1 22:12:35 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
|
@ -268,7 +298,7 @@ Wed Mar 1 22:12:35 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
Wed Mar 1 19:31:32 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* CONTRIBUTE (configure.in): Note that patches to configure are
|
||||
not needed.
|
||||
not needed.
|
||||
|
||||
2000-03-01 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
|
@ -283,10 +313,10 @@ Wed Mar 1 00:49:06 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
From 2000-02-28 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>:
|
||||
Make NEW_PROC_ABI interface functional on Solaris x86.
|
||||
* sol-thread.c (ps_lgetLDT): Rewrite to use new
|
||||
procfs_find_LDT_entry function from procfs.c, mostly copied from
|
||||
lin-thread.c.
|
||||
procfs_find_LDT_entry function from procfs.c, mostly copied from
|
||||
lin-thread.c.
|
||||
* inferior.h, procfs.c (procfs_get_pid_fd): Removed, no longer
|
||||
needed.
|
||||
needed.
|
||||
|
||||
Wed Mar 1 00:34:55 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
|
@ -296,11 +326,11 @@ Wed Mar 1 00:34:55 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
Wed Mar 1 00:06:19 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
From 1999-08-13 J.T. Conklin <jtc@redback.com>:
|
||||
* config/i386/tm-i386.h (FRAME_INIT_SAVED_REGS): Replace
|
||||
FRAME_FIND_SAVED_REGS.
|
||||
(i386_frame_init_saved_regs): Replace i386_frame_find_saved_regs.
|
||||
* i386-tdep.c (i386_frame_init_saved_regs, i386_pop_frame):
|
||||
Update.
|
||||
* config/i386/tm-i386.h (FRAME_INIT_SAVED_REGS): Replace
|
||||
FRAME_FIND_SAVED_REGS.
|
||||
(i386_frame_init_saved_regs): Replace i386_frame_find_saved_regs.
|
||||
* i386-tdep.c (i386_frame_init_saved_regs, i386_pop_frame):
|
||||
Update.
|
||||
|
||||
Tue Feb 29 23:56:41 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
|
@ -322,7 +352,7 @@ Tue Feb 29 18:47:58 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
to the list of targets which return FP values in FP registers.
|
||||
|
||||
* i386-tdep.c (i386_extract_return_value): Add FIXME recommending
|
||||
that this function be re-implemented using multi-arch.
|
||||
that this function be re-implemented using multi-arch.
|
||||
|
||||
Tue Feb 29 18:40:08 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
|
@ -345,17 +375,17 @@ Tue Feb 29 17:33:49 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
|
||||
From Wed, 23 Feb 2000 Fernando Nasser <fnasser@redhat.com>:
|
||||
* stack.c (backtrace_command_1), infrun.c (normal_stop): Check
|
||||
that the target's stack was valid.
|
||||
that the target's stack was valid.
|
||||
|
||||
Tue Feb 29 15:14:56 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
From 2000-02-22 Stephane Carrez <stcarrez@worldnet.fr>:
|
||||
* dwarf2read.c (read_address): Read 16-bits addresses.
|
||||
* dwarf2read.c (read_address): Read 16-bits addresses.
|
||||
|
||||
2000-02-28 Scott Bambrough <scottb@netwinder.org>
|
||||
|
||||
* arm-linux-nat.c (fetch_nw_fpe_*):
|
||||
Renamed to fetch_nwfpe_* to use the same naming convention
|
||||
Renamed to fetch_nwfpe_* to use the same naming convention
|
||||
as in the Linux kernel. Modified prototype to get rid of
|
||||
unused parameters.
|
||||
(store_nw_fpe_*): Renamed to store_nwfpe_* to use the same
|
||||
|
@ -380,7 +410,7 @@ Mon Feb 28 13:34:54 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
Mon Feb 28 10:58:45 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* MAINTAINERS: Mention mmalloc. Expand Host/Native and
|
||||
Target/Architecture maintainers descriptions.
|
||||
Target/Architecture maintainers descriptions.
|
||||
|
||||
2000-02-26 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
|
@ -435,8 +465,8 @@ Mon Feb 28 10:58:45 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
Sat Feb 26 17:15:16 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* MAINTAINERS: Chris Faylor is responsible for all MS Windows
|
||||
systems. Note that Jim Blandy as maintainer for ``tracing
|
||||
bytecode stuff''
|
||||
systems. Note that Jim Blandy as maintainer for ``tracing
|
||||
bytecode stuff''
|
||||
|
||||
2000-02-25 Fernando Nasser <fnasser@cygnus.com>
|
||||
|
||||
|
@ -472,16 +502,16 @@ Wed Feb 23 23:27:48 2000 Andrew Cagney <cagney@behemoth.cygnus.com>
|
|||
Thu Feb 24 18:42:15 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* configure.in (CONFIG_INSTALL, CONFIG_UNINSTALL): Set to
|
||||
$(SUBDIR_*_INSTALL) when so configured.
|
||||
$(SUBDIR_*_INSTALL) when so configured.
|
||||
* configure: Regenerate.
|
||||
|
||||
* Makefile.in (CONFIG_INSTALL, CONFIG_UNINSTALL): Define using
|
||||
configure.
|
||||
configure.
|
||||
(install-only): Add dependency on $(CONFIG_INSTALL). Delete code
|
||||
installing GDBtk.
|
||||
installing GDBtk.
|
||||
(uninstall): Add dependency on $(CONFIG_UNINSTALL).
|
||||
(SUBDIR_MI_INSTALL, SUBDIR_MI_UNINSTALL, SUBDIR_GDBTK_UNINSTALL,
|
||||
SUBDIR_GDBTK_INSTALL): Define.
|
||||
SUBDIR_GDBTK_INSTALL): Define.
|
||||
(install-gdbtk): New target.
|
||||
|
||||
Thu Feb 24 18:19:52 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
@ -529,7 +559,7 @@ Wed Feb 23 19:01:45 EST 2000 Nicholas Duffek <nsd@cygnus.com>
|
|||
Wed Feb 23 12:58:46 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* gdbarch.sh (dis_asm_read_memory): Change LEN to unsigned long.
|
||||
Match ../include/dis-asm.h change.
|
||||
Match ../include/dis-asm.h change.
|
||||
* gdbarch.h: Regenerate.
|
||||
* corefile.c (dis_asm_read_memory): Update.
|
||||
|
||||
|
@ -538,38 +568,38 @@ Mon Feb 21 13:57:27 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
* configure.in (CONFIG_INITS): Fix typo, was CONFIG_INIT.
|
||||
(ENABLE_CFLAGS): Move initialization to start of file.
|
||||
(enable-gdbmi): Add new configure option --enable-gdbmi. When
|
||||
selected and an ${srcdir}/mi directory is present enable MI
|
||||
interface.
|
||||
selected and an ${srcdir}/mi directory is present enable MI
|
||||
interface.
|
||||
|
||||
* configure: Regenerate.
|
||||
|
||||
* Makefile.in (SUBDIR_MI_OBS, SUBDIR_MI_SRCS, SUBDIR_MI_DEPS,
|
||||
SUBDIR_MI_INITS, SUBDIR_MI_LDFLAGS, SUBDIR_MI_CFLAGS): New macros.
|
||||
SUBDIR_MI_INITS, SUBDIR_MI_LDFLAGS, SUBDIR_MI_CFLAGS): New macros.
|
||||
(CONFIG_OBS, CONFIG_SRCS, CONFIG_DEPS, CONFIG_INITS,
|
||||
CONFIG_LDFLAGS): New macros. Initialized by autoconf via
|
||||
@CONFIG...@.
|
||||
CONFIG_LDFLAGS): New macros. Initialized by autoconf via
|
||||
@CONFIG...@.
|
||||
(INTERNAL_LDFLAGS, CDEPS, LINTFILES, DEPFILES, SOURCES,
|
||||
INIT_FILES): Use $(CONFIG_...) instead of @CONFIG...@.
|
||||
INIT_FILES): Use $(CONFIG_...) instead of @CONFIG...@.
|
||||
|
||||
* mi: New directory. MI interface to GDB.
|
||||
|
||||
* defs.h (interpreter_p): Declare when UI_OUT.
|
||||
* top.c (gdb_init): When interpreter_p, check that the interpreter
|
||||
was recognized by one of the linked in interpreters.
|
||||
was recognized by one of the linked in interpreters.
|
||||
* main.c (interpreter_p): Define.
|
||||
(captured_main): When UI_OUT, check for ``-i <interpreter>'' option.
|
||||
* event-top.c (display_gdb_prompt): When interpreter_p, assume
|
||||
interpreter displays prompt.
|
||||
interpreter displays prompt.
|
||||
|
||||
* breakpoint.c (print_it_typical, watchpoint_check,
|
||||
print_one_breakpoint, mention): When MI include additional
|
||||
print_one_breakpoint, mention): When MI include additional
|
||||
target status information.
|
||||
* infrun.c (print_stop_reason, normal_stop): Ditto.
|
||||
|
||||
2000-02-22 Jim Blandy <jimb@redhat.com>
|
||||
|
||||
* gdbarch.sh: Make the `default' field really default to zero, as
|
||||
documented.
|
||||
documented.
|
||||
|
||||
Bring COERCE_FLOAT_TO_DOUBLE under gdbarch's control.
|
||||
* valops.c (COERCE_FLOAT_TO_DOUBLE): Rework definition to be
|
||||
|
@ -582,8 +612,8 @@ Mon Feb 21 13:57:27 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
* gdbarch.sh (coerce_float_to_double): New entry, replacing macro.
|
||||
* gdbarch.c, gdbarch.h: Regenerated.
|
||||
* tm-alpha.h, tm-fr30.h, tm-m32r.h, tm-mips.h, tm-hppa.h,
|
||||
tm-rs6000.h, tm-sh.h, tm-sparc.h (COERCE_FLOAT_TO_DOUBLE): Change
|
||||
definitions.
|
||||
tm-rs6000.h, tm-sh.h, tm-sparc.h (COERCE_FLOAT_TO_DOUBLE): Change
|
||||
definitions.
|
||||
* mips-tdep.c (mips_coerce_float_to_double): Supply our own custom
|
||||
function here.
|
||||
(mips_gdbarch_init): Install that as our coerce_float_to_double
|
||||
|
@ -636,8 +666,8 @@ Mon Feb 21 13:57:27 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
From Philippe De Muyter <phdm@macqel.be>
|
||||
|
||||
* event-loop.c (handle_file_event): In case of poll, enable
|
||||
printing of informational message if an error/exception is
|
||||
detected on the file descriptor.
|
||||
printing of informational message if an error/exception is
|
||||
detected on the file descriptor.
|
||||
|
||||
2000-02-21 Jim Kingdon <kingdon@redhat.com>
|
||||
|
||||
|
@ -646,22 +676,22 @@ Mon Feb 21 13:57:27 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
Mon Feb 21 12:50:57 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* buildsym.c: Include "language.h" and "expression.h" for
|
||||
longest_local_hex_string_custom.
|
||||
longest_local_hex_string_custom.
|
||||
|
||||
Mon Feb 21 11:17:18 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* gdbarch.sh: Include <gdb_wait.h> instead of <wait.h>.
|
||||
* gdbarch.c: Already updated by Wed Feb 9 18:59:16 2000 Andrew
|
||||
Cagney <cagney@b1.cygnus.com>.
|
||||
Cagney <cagney@b1.cygnus.com>.
|
||||
|
||||
Mon Feb 21 11:03:01 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* MAINTAINERS: Update: IA-64 - Kevin Buettner; ARM - Fernando
|
||||
nasser, Jim Ingham and Scott Bambrough; GNU/Linux ARM - Scott
|
||||
Bambrough; event loop - Elena Zannoni; SDS and RDI/APD protocol -
|
||||
to Fernando Nasser and Jim Ingham; KOD - Fernando Nasser; MI -
|
||||
Andrew Cagney, Elena Zannoni and Fernando Nasser; Web pages - Jim
|
||||
Kingdon.
|
||||
nasser, Jim Ingham and Scott Bambrough; GNU/Linux ARM - Scott
|
||||
Bambrough; event loop - Elena Zannoni; SDS and RDI/APD protocol -
|
||||
to Fernando Nasser and Jim Ingham; KOD - Fernando Nasser; MI -
|
||||
Andrew Cagney, Elena Zannoni and Fernando Nasser; Web pages - Jim
|
||||
Kingdon.
|
||||
* MAINTAINERS: Add Nick Clifton to write after approval list.
|
||||
|
||||
Mon Feb 21 10:30:39 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
@ -670,9 +700,9 @@ Mon Feb 21 10:30:39 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
|
||||
2000-02-19 Philippe De Muyter <phdm@macqel.be>
|
||||
|
||||
* cli-out.c (cli_table_header): Type of parameter `alignment' is
|
||||
`enum ui_align', not `int'.
|
||||
(cli_field_string, cli_field_skip): Likewise.
|
||||
* cli-out.c (cli_table_header): Type of parameter `alignment' is
|
||||
`enum ui_align', not `int'.
|
||||
(cli_field_string, cli_field_skip): Likewise.
|
||||
|
||||
2000-02-18 Jim Blandy <jimb@redhat.com>
|
||||
|
||||
|
@ -685,8 +715,8 @@ Mon Feb 21 10:30:39 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
2000-02-18 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||
|
||||
* remote.c (remote_async_detach): Use target_mourn_inferior(), to
|
||||
make sure that all is cleaned up after we disconnect from the
|
||||
target.
|
||||
make sure that all is cleaned up after we disconnect from the
|
||||
target.
|
||||
(remote_detach): Ditto.
|
||||
|
||||
2000-02-17 Fernando Nasser <fnasser@totem.to.cygnus.com>
|
||||
|
@ -742,7 +772,7 @@ Mon Feb 21 10:30:39 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
Wed Feb 16 19:00:02 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
From 2000-01-26 Rodney Brown <RodneyBrown@pmsc.com>:
|
||||
* procfs.c: Define MERGEPID if not defined. For osf4.0e.
|
||||
* procfs.c: Define MERGEPID if not defined. For osf4.0e.
|
||||
|
||||
2000-02-15 Jason Molenda (jsm@bugshack.cygnus.com)
|
||||
|
||||
|
@ -756,7 +786,7 @@ Wed Feb 16 19:00:02 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
to correct value for generic dummy frames. When using
|
||||
generic dummy frames, don't attempt to write TOC value or
|
||||
function to call into the call dummy.
|
||||
(rs6000_push_arguments): Adapt USE_GENERIC_DUMMY_FRAMES
|
||||
(rs6000_push_arguments): Adapt USE_GENERIC_DUMMY_FRAMES
|
||||
code to also handle the PowerOpen ABI.
|
||||
(ppc_push_return_address): Enable for all ports.
|
||||
* config/powerpc/tm-ppc-aix.h (USE_GENERIC_DUMMY_FRAMES,
|
||||
|
@ -822,7 +852,7 @@ Mon Feb 14 15:20:26 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
|
||||
* config/i386/nbsd.mt (GDBSERVER_DEPFILES): Add low-nbsd.o
|
||||
* configure.tgt (i[3456]86-*-netbsd*): add gdbserver to
|
||||
configdirs.
|
||||
configdirs.
|
||||
* gdbserver/low-nbsd.c: New file.
|
||||
|
||||
* gdbserver/Makefile.in: convert to autoconf.
|
||||
|
@ -836,9 +866,9 @@ Sun Feb 13 11:21:00 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
Sun Feb 13 10:34:48 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* MAINTAINERS: Add Eli Zaretskii to djgpp maintiners. Add Kevin
|
||||
Buettner to powerpc maintainers. Make Kevin Buettner the
|
||||
GNU/LINUX PPC native maintainer. Add J.T. Conklin, Jim Kingdon
|
||||
and Jason Molenda to write after aproval list.
|
||||
Buettner to powerpc maintainers. Make Kevin Buettner the
|
||||
GNU/LINUX PPC native maintainer. Add J.T. Conklin, Jim Kingdon
|
||||
and Jason Molenda to write after aproval list.
|
||||
|
||||
Sun Feb 13 10:18:44 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
|
@ -880,28 +910,28 @@ Sat Feb 12 01:08:21 EST 2000 Nicholas Duffek <nsd@cygnus.com>
|
|||
|
||||
2000-02-09 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
* linux-thread.c: Include defs.h before gdb_wait.h.
|
||||
* linux-thread.c: Include defs.h before gdb_wait.h.
|
||||
|
||||
Wed Feb 9 18:59:16 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* Makefile.in (wait_h): Delete macro. Update all dependencies
|
||||
specifying gdb_wait.h instead.
|
||||
specifying gdb_wait.h instead.
|
||||
|
||||
* ser-unix.c, ser-pipe.c, remote.c, remote-udi.c, remote-sds.c,
|
||||
remote-os9k.c, remote-es.c, remote-rdp.c, remote-vx960.c,
|
||||
remote-vx.c, remote-st.c, remote-nindy.c, remote-mm.c,
|
||||
convex-xdep.c, convex-tdep.c, target.c, win32-nat.c, standalone.c,
|
||||
remote-vxmips.c, remote-vxsparc.c, remote-vx68.c, remote-vx29k.c,
|
||||
remote-sim.c, remote-rdi.c, remote-mips.c, remote-eb.c,
|
||||
remote-e7000.c, remote-bug.c, remote-array.c, remote-adapt.c,
|
||||
ppc-bdm.c, ocd.c, monitor.c, m3-nat.c, linux-thread.c,
|
||||
infttrace.c, lin-thread.c, infptrace.c, gnu-nat.c, gdbarch.c,
|
||||
fork-child.c, command.c: Include "gdb_wait.h" instead of <wait.h>
|
||||
or <sys/wait.h>.
|
||||
remote-os9k.c, remote-es.c, remote-rdp.c, remote-vx960.c,
|
||||
remote-vx.c, remote-st.c, remote-nindy.c, remote-mm.c,
|
||||
convex-xdep.c, convex-tdep.c, target.c, win32-nat.c, standalone.c,
|
||||
remote-vxmips.c, remote-vxsparc.c, remote-vx68.c, remote-vx29k.c,
|
||||
remote-sim.c, remote-rdi.c, remote-mips.c, remote-eb.c,
|
||||
remote-e7000.c, remote-bug.c, remote-array.c, remote-adapt.c,
|
||||
ppc-bdm.c, ocd.c, monitor.c, m3-nat.c, linux-thread.c,
|
||||
infttrace.c, lin-thread.c, infptrace.c, gnu-nat.c, gdbarch.c,
|
||||
fork-child.c, command.c: Include "gdb_wait.h" instead of <wait.h>
|
||||
or <sys/wait.h>.
|
||||
* nindy-share/nindy.c, nindy-share/Onindy.c: Ditto.
|
||||
|
||||
* gdb_wait.h: New file. Based on ../include/wait.h. Include
|
||||
<sys/wait.h> or <wait.h> and then define any missing WIF macros.
|
||||
<sys/wait.h> or <wait.h> and then define any missing WIF macros.
|
||||
|
||||
Wed Feb 9 01:14:54 2000 Andrew Cagney <cagney@amy.cygnus.com>
|
||||
|
||||
|
@ -912,15 +942,15 @@ Wed Feb 9 01:14:54 2000 Andrew Cagney <cagney@amy.cygnus.com>
|
|||
|
||||
1999-08-23 J.T. Conklin <jtc@redback.com>
|
||||
|
||||
* top.c (remote_timeout): Change default to 2. Add comment
|
||||
explaining history of changes to the default value.
|
||||
* remote.c (_initialize_remote): Remove code that adds set/
|
||||
show remotetimeout, as that's also done in top.c
|
||||
* top.c (remote_timeout): Change default to 2. Add comment
|
||||
explaining history of changes to the default value.
|
||||
* remote.c (_initialize_remote): Remove code that adds set/
|
||||
show remotetimeout, as that's also done in top.c
|
||||
|
||||
1999-10-18 J.T. Conklin <jtc@redback.com>
|
||||
|
||||
* m32r-stub.c, sparcl-stub.c, sparclet-stub.c (handle_exception):
|
||||
Return E01 instead of P01 when 'P' command fails.
|
||||
* m32r-stub.c, sparcl-stub.c, sparclet-stub.c (handle_exception):
|
||||
Return E01 instead of P01 when 'P' command fails.
|
||||
|
||||
2000-02-05 J.T. Conklin <jtc@redback.com>
|
||||
|
||||
|
@ -965,13 +995,13 @@ Wed Feb 9 01:14:54 2000 Andrew Cagney <cagney@amy.cygnus.com>
|
|||
2000-02-04 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||
|
||||
* infrun.c (resume): Make just one call to target_resume(), instead
|
||||
of four: set up correct parameters in all the cases ahead of time,
|
||||
and do call at the end.
|
||||
of four: set up correct parameters in all the cases ahead of time,
|
||||
and do call at the end.
|
||||
|
||||
2000-02-04 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||
|
||||
* config/powerpc/tm-ppc-eabi.h: Define
|
||||
SOFUN_ADDRESS_MAYBE_MISSING.
|
||||
SOFUN_ADDRESS_MAYBE_MISSING.
|
||||
|
||||
2000-02-04 Fernando Nasser <fnasser@totem.to.cygnus.com>
|
||||
|
||||
|
@ -985,16 +1015,16 @@ Fri Feb 4 22:42:36 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
(links): Link srcdir/gdbtk/library to gdbtcl2.
|
||||
* gdbtcl2: Moved to gdbtk/library.
|
||||
ChangeLog-gdbtk, gdbtk-cmds.c, gdbtk-hooks.c, gdbtk-variable.c,
|
||||
gdbtk-varobj.c, gdbtk-wrapper.c, gdbtk-wrapper.h, gdbtk.c,
|
||||
gdbtk.h: Moved to gdbtk/generic.
|
||||
gdbtk-varobj.c, gdbtk-wrapper.c, gdbtk-wrapper.h, gdbtk.c,
|
||||
gdbtk.h: Moved to gdbtk/generic.
|
||||
|
||||
2000-02-03 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||
|
||||
* printcmd.c (build_address_symbolic): New function. Returns all
|
||||
the parts that are necessary to print an address in a symbolic
|
||||
form.
|
||||
the parts that are necessary to print an address in a symbolic
|
||||
form.
|
||||
(print_address_symbolic): Split into a printing part and an
|
||||
information building part, build_address_symbolic().
|
||||
information building part, build_address_symbolic().
|
||||
|
||||
* defs.h (build_address_symbolic): Export.
|
||||
|
||||
|
@ -1016,39 +1046,39 @@ Fri Feb 4 22:42:36 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
2000-02-01 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||
|
||||
* remote.c (getpkt_sane): New function. It is the old getpkt(),
|
||||
which now returns a timeout indication.
|
||||
which now returns a timeout indication.
|
||||
(getpkt): New function. Wrapper for getpkt_sane(), so that return
|
||||
value can still be ignored.
|
||||
value can still be ignored.
|
||||
|
||||
Tue Feb 1 18:47:31 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* top.c (print_gdb_version): Print ``UI_OUT'' when configured with
|
||||
UI_OUT.
|
||||
UI_OUT.
|
||||
|
||||
Tue Feb 1 00:17:12 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* ui-file.c, ui-file.h: Rename gdb-file.h, gdb-file.c. Rename
|
||||
``struct gdb_file'' to ``struct ui_file''. Delete typedef
|
||||
GDB_FILE.
|
||||
``struct gdb_file'' to ``struct ui_file''. Delete typedef
|
||||
GDB_FILE.
|
||||
|
||||
* Makefile.in: Update.
|
||||
|
||||
* ax-gdb.c, ax-general.c, ax.h, buildsym.c, c-lang.c, c-lang.h,
|
||||
c-typeprint.c, c-valprint.c, ch-lang.c, ch-lang.h, ch-typeprint.c,
|
||||
ch-valprint.c, command.c, command.h, convex-tdep.c, corefile.c,
|
||||
cp-valprint.c, d10v-tdep.c, d30v-tdep.c, defs.h, expprint.c,
|
||||
expression.h, f-lang.c, f-lang.h, f-typeprint.c, f-valprint.c,
|
||||
frame.h, gdb-events.sh, gdb-file.c, gdb-file.h, gdbcmd.h,
|
||||
gdbtypes.h, hppa-tdep.c, jv-lang.c, jv-lang.h, jv-typeprint.c,
|
||||
jv-valprint.c, language.c, language.h, m2-lang.c, m2-lang.h,
|
||||
m2-typeprint.c, m2-valprint.c, m3-nat.c, main.c, monitor.c,
|
||||
printcmd.c, pyr-tdep.c, remote-mips.c, remote-sim.c, remote-udi.c,
|
||||
remote.c, scm-lang.c, scm-lang.h, scm-valprint.c, ser-e7kpc.c,
|
||||
ser-go32.c, ser-mac.c, ser-ocd.c, ser-unix.c, ser-unix.h,
|
||||
serial.c, serial.h, stack.c, symfile.c, symmisc.c, tahoe-tdep.c,
|
||||
target.c, target.h, top.c, top.h, typeprint.c, typeprint.h,
|
||||
utils.c, v850ice.c, valprint.c, valprint.h, value.h,
|
||||
config/pa/tm-hppa.h: Update.
|
||||
c-typeprint.c, c-valprint.c, ch-lang.c, ch-lang.h, ch-typeprint.c,
|
||||
ch-valprint.c, command.c, command.h, convex-tdep.c, corefile.c,
|
||||
cp-valprint.c, d10v-tdep.c, d30v-tdep.c, defs.h, expprint.c,
|
||||
expression.h, f-lang.c, f-lang.h, f-typeprint.c, f-valprint.c,
|
||||
frame.h, gdb-events.sh, gdb-file.c, gdb-file.h, gdbcmd.h,
|
||||
gdbtypes.h, hppa-tdep.c, jv-lang.c, jv-lang.h, jv-typeprint.c,
|
||||
jv-valprint.c, language.c, language.h, m2-lang.c, m2-lang.h,
|
||||
m2-typeprint.c, m2-valprint.c, m3-nat.c, main.c, monitor.c,
|
||||
printcmd.c, pyr-tdep.c, remote-mips.c, remote-sim.c, remote-udi.c,
|
||||
remote.c, scm-lang.c, scm-lang.h, scm-valprint.c, ser-e7kpc.c,
|
||||
ser-go32.c, ser-mac.c, ser-ocd.c, ser-unix.c, ser-unix.h,
|
||||
serial.c, serial.h, stack.c, symfile.c, symmisc.c, tahoe-tdep.c,
|
||||
target.c, target.h, top.c, top.h, typeprint.c, typeprint.h,
|
||||
utils.c, v850ice.c, valprint.c, valprint.h, value.h,
|
||||
config/pa/tm-hppa.h: Update.
|
||||
* cli-out.c, cli-out.h, ui-out.c, ui-out.h, varobj.c: Update.
|
||||
|
||||
2000-01-31 Jason Molenda (jsm@bugshack.cygnus.com)
|
||||
|
@ -1068,29 +1098,29 @@ Mon Jan 31 17:14:52 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
* top.c (fputs_unfiltered_hook): Moved to tui/tui-file.c.
|
||||
|
||||
* main.c (captured_main): Only use the legacy tui_file code when
|
||||
linking in older code such as the TUI.
|
||||
linking in older code such as the TUI.
|
||||
|
||||
* gdb-file.h, gdb-file.c: New files.
|
||||
* utils.c, defs.h (struct gdb_file, gdb_file_new, gdb_file_delete,
|
||||
null_file_isatty, null_file_rewind, null_file_put,
|
||||
null_file_flush, null_file_write, null_file_fputs,
|
||||
null_file_delete, gdb_file_data, gdb_flush, gdb_file_isatty,
|
||||
gdb_file_rewind, gdb_file_put, gdb_file_write, fputs_unfiltered,
|
||||
set_gdb_file_flush, set_gdb_file_isatty, set_gdb_file_rewind,
|
||||
set_gdb_file_put, set_gdb_file_write, set_gdb_file_fputs,
|
||||
set_gdb_file_data, struct accumulated_gdb_file,
|
||||
do_gdb_file_xstrdup, gdb_file_xstrdup, struct mem_file):
|
||||
mem_file_new, mem_file_delete, mem_fileopen, mem_file_rewind,
|
||||
mem_file_put, mem_file_write, struct stdio_file): stdio_file_new,
|
||||
stdio_file_delete, stdio_file_flush, stdio_file_write,
|
||||
stdio_file_fputs, stdio_file_isatty, stdio_fileopen, gdb_fopen):
|
||||
Moved to gdb-file.h and gdb-file.c.
|
||||
null_file_isatty, null_file_rewind, null_file_put,
|
||||
null_file_flush, null_file_write, null_file_fputs,
|
||||
null_file_delete, gdb_file_data, gdb_flush, gdb_file_isatty,
|
||||
gdb_file_rewind, gdb_file_put, gdb_file_write, fputs_unfiltered,
|
||||
set_gdb_file_flush, set_gdb_file_isatty, set_gdb_file_rewind,
|
||||
set_gdb_file_put, set_gdb_file_write, set_gdb_file_fputs,
|
||||
set_gdb_file_data, struct accumulated_gdb_file,
|
||||
do_gdb_file_xstrdup, gdb_file_xstrdup, struct mem_file):
|
||||
mem_file_new, mem_file_delete, mem_fileopen, mem_file_rewind,
|
||||
mem_file_put, mem_file_write, struct stdio_file): stdio_file_new,
|
||||
stdio_file_delete, stdio_file_flush, stdio_file_write,
|
||||
stdio_file_fputs, stdio_file_isatty, stdio_fileopen, gdb_fopen):
|
||||
Moved to gdb-file.h and gdb-file.c.
|
||||
* utils.c (enum streamtype, struct tui_stream, tui_file_new,
|
||||
tui_file_delete, tui_fileopen, tui_sfileopen, tui_file_isatty,
|
||||
tui_file_rewind, tui_file_put, tui_file_fputs,
|
||||
tui_file_get_strbuf, tui_file_adjust_strbuf, tui_file_flush,
|
||||
tui_file_delete, tui_fileopen, tui_sfileopen, tui_file_isatty,
|
||||
tui_file_rewind, tui_file_put, tui_file_fputs,
|
||||
tui_file_get_strbuf, tui_file_adjust_strbuf, tui_file_flush,
|
||||
fputs_unfiltered_hook):
|
||||
Moved to tui/tui-file.c and tui/tui-file.h.
|
||||
Moved to tui/tui-file.c and tui/tui-file.h.
|
||||
|
||||
* Makefile.in (COMMON_OBS): Add gdb-file.o, tui-file.o.
|
||||
(tui-file.o, gdb-file.o): Add dependencies.
|
||||
|
@ -1120,18 +1150,18 @@ Mon Jan 31 17:14:52 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
2000-01-27 Jim Blandy <jimb@cygnus.com>
|
||||
|
||||
* symtab.c (decode_line_1): Don't let commas that are within
|
||||
quotes or parenthesis terminate the line spec. Don't use pp when
|
||||
removing the final double quote of a double-quoted string. Don't
|
||||
forget to skip the opening double quote. I have no clue whether
|
||||
this change is correct; probably we've just moved this function
|
||||
from one buggy place to another buggy place, and never came within
|
||||
an outhouse whiff of correctness.
|
||||
quotes or parenthesis terminate the line spec. Don't use pp when
|
||||
removing the final double quote of a double-quoted string. Don't
|
||||
forget to skip the opening double quote. I have no clue whether
|
||||
this change is correct; probably we've just moved this function
|
||||
from one buggy place to another buggy place, and never came within
|
||||
an outhouse whiff of correctness.
|
||||
(find_toplevel_char): New function.
|
||||
|
||||
2000-01-27 Fernando Nasser <fnasser@totem.to.cygnus.com>
|
||||
|
||||
* arm-tdep.c (arm_push_arguments): Set the thumb mode bit when
|
||||
passing the pointer to a thumb function as an argument.
|
||||
passing the pointer to a thumb function as an argument.
|
||||
|
||||
2000-01-27 Fernando Nasser <fnasser@totem.to.cygnus.com>
|
||||
|
||||
|
@ -1203,22 +1233,22 @@ Mon Jan 31 17:14:52 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
* proc-why.c: New file. Add include of proc-utils.h.
|
||||
|
||||
* procfs.c: Add includes of gdbthread.h, sys/wait.h, signal.h,
|
||||
ctype.h, proc-utils.h.
|
||||
ctype.h, proc-utils.h.
|
||||
(find_procinfo_or_die): Add braces to avoid ambiguous else clause.
|
||||
(open_procinfo_files): Conditionalize local variable tmp, to avoid
|
||||
compiler warnings.
|
||||
compiler warnings.
|
||||
(proc_iterate_over_mappings): Conditionalize local vars mapfd and
|
||||
pathname.
|
||||
pathname.
|
||||
(procfs_wait): Adjust format in some printf_filetered calls to
|
||||
avoid compiler warnings.
|
||||
avoid compiler warnings.
|
||||
(make_signal_thread_runnable): Ifdef 0. The calls to this function
|
||||
are also ifdef'd 0 .
|
||||
are also ifdef'd 0 .
|
||||
(procfs_resume): Add parentheses around '&&' operation.
|
||||
(procfs_set_exec_trap): Remove unused variable.
|
||||
(info_proc_cmd): Add braces to avoid ambiguous else clause.
|
||||
|
||||
* Makefile.in (procfs.o, proc-api.o, proc-events.o, proc-flags.o,
|
||||
proc-why.o): Update dependencies.
|
||||
proc-why.o): Update dependencies.
|
||||
|
||||
* config/sparc/sun4sol2.mh (NATDEPFILES): Change proc_*.o files to
|
||||
proc-*.o.
|
||||
|
@ -1232,30 +1262,30 @@ Mon Jan 31 17:14:52 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
2000-01-17 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||
|
||||
* stack.c (print_frame_info_base): Break up into the frame info
|
||||
(location) printing part and the rest (source line printing).
|
||||
(location) printing part and the rest (source line printing).
|
||||
(print_frame): New function. Take care of printing the location
|
||||
information.
|
||||
information.
|
||||
Update copyright.
|
||||
|
||||
* infrun.c (normal_stop): Use enum values rather than integers for the
|
||||
source_flag to be passed to show_and_print_stack_frame().
|
||||
Update copyright.
|
||||
Update copyright.
|
||||
|
||||
* frame.h (print_what): New enum for 'source' argument to
|
||||
print_frame_info_base(). Use this instead of obscure numbers.
|
||||
print_frame_info_base(). Use this instead of obscure numbers.
|
||||
Update copyright.
|
||||
|
||||
Sun Jan 16 17:58:00 2000 David Taylor <taylor@texas.cygnus.com>
|
||||
|
||||
* event-top.c (stdin_event_handler): call quit_command rather than
|
||||
exit -- run cleanups, give target code a chance to say goodbye to
|
||||
the target. Fixes bug where the inferior processes were left
|
||||
around on Solaris (and probably elsewhere) by the testsuite.
|
||||
exit -- run cleanups, give target code a chance to say goodbye to
|
||||
the target. Fixes bug where the inferior processes were left
|
||||
around on Solaris (and probably elsewhere) by the testsuite.
|
||||
|
||||
2000-01-14 Mark Salter <msalter@cygnus.com>
|
||||
|
||||
* v850-tdep.c (v850_target_architecture_hook): Setup correct
|
||||
machine id for disassembly.
|
||||
machine id for disassembly.
|
||||
|
||||
2000-01-13 Jim Blandy <jimb@cygnus.com>
|
||||
|
||||
|
@ -1296,7 +1326,7 @@ Thu Jan 13 23:34:17 EST 2000 Nicholas Duffek <nsd@cygnus.com>
|
|||
2000-01-12 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||
|
||||
* thread.c (do_captured_thread_select): New function. Switch
|
||||
current thread, safely from within catch_errors().
|
||||
current thread, safely from within catch_errors().
|
||||
(gdb_thread_select): New function. Switch threads safely.
|
||||
(thread_command): Use gdb_thread_select().
|
||||
Include ui-out.h.
|
||||
|
@ -1390,14 +1420,14 @@ Thu Jan 13 23:34:17 EST 2000 Nicholas Duffek <nsd@cygnus.com>
|
|||
2000-01-06 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||
|
||||
* breakpoint.c (until_break_command): Add an argument for the
|
||||
continuation, the beginning of the cleanups set up by this
|
||||
command.
|
||||
continuation, the beginning of the cleanups set up by this
|
||||
command.
|
||||
(until_break_command_continuation): Do cleanups until the one
|
||||
passed in as argument instead of doing all of them.
|
||||
passed in as argument instead of doing all of them.
|
||||
|
||||
* infcmd.c (finish_command_continuation): Expect a new argument,
|
||||
which indicates up to where to do cleanups. Update calls to
|
||||
do_exec_cleanups to use this marker, instead of ALL_CLEANUPS.
|
||||
which indicates up to where to do cleanups. Update calls to
|
||||
do_exec_cleanups to use this marker, instead of ALL_CLEANUPS.
|
||||
(finish_command): Add another argument for the continuation: the
|
||||
starting cleanup for this command.
|
||||
|
||||
|
|
|
@ -122,6 +122,7 @@ extern int core_addr_greaterthan (CORE_ADDR lhs, CORE_ADDR rhs);
|
|||
|
||||
#define STRCMP(a,b) (*(a) == *(b) ? strcmp ((a), (b)) : (int)*(a) - (int)*(b))
|
||||
#define STREQ(a,b) (*(a) == *(b) ? !strcmp ((a), (b)) : 0)
|
||||
#define STREQ_IW(a,b) (*(a) == *(b) ? !strcmp_iw ((a), (b)) : 0)
|
||||
#define STREQN(a,b,c) (*(a) == *(b) ? !strncmp ((a), (b), (c)) : 0)
|
||||
|
||||
/* The character GNU C++ uses to build identifiers that must be unique from
|
||||
|
|
|
@ -534,8 +534,8 @@ get_discrete_bounds (type, lowp, highp)
|
|||
case TYPE_CODE_CHAR:
|
||||
*lowp = 0;
|
||||
/* This round-about calculation is to avoid shifting by
|
||||
TYPE_LENGTH (type) * TARGET_CHAR_BIT, which will not work
|
||||
if TYPE_LENGTH (type) == sizeof (LONGEST). */
|
||||
TYPE_LENGTH (type) * TARGET_CHAR_BIT, which will not work
|
||||
if TYPE_LENGTH (type) == sizeof (LONGEST). */
|
||||
*highp = 1 << (TYPE_LENGTH (type) * TARGET_CHAR_BIT - 1);
|
||||
*highp = (*highp - 1) | *highp;
|
||||
return 0;
|
||||
|
@ -994,7 +994,7 @@ lookup_struct_elt_type (type, name, noerr)
|
|||
{
|
||||
char *t_field_name = TYPE_FIELD_NAME (type, i);
|
||||
|
||||
if (t_field_name && STREQ (t_field_name, name))
|
||||
if (t_field_name && STREQ_IW (t_field_name, name))
|
||||
{
|
||||
return TYPE_FIELD_TYPE (type, i);
|
||||
}
|
||||
|
@ -1045,7 +1045,7 @@ fill_in_vptr_fieldno (type)
|
|||
int i;
|
||||
|
||||
/* We must start at zero in case the first (and only) baseclass is
|
||||
virtual (and hence we cannot share the table pointer). */
|
||||
virtual (and hence we cannot share the table pointer). */
|
||||
for (i = 0; i < TYPE_N_BASECLASSES (type); i++)
|
||||
{
|
||||
fill_in_vptr_fieldno (TYPE_BASECLASS (type, i));
|
||||
|
@ -1168,9 +1168,9 @@ check_typedef (type)
|
|||
{
|
||||
char *name = type_name_no_tag (type);
|
||||
/* FIXME: shouldn't we separately check the TYPE_NAME and the
|
||||
TYPE_TAG_NAME, and look in STRUCT_NAMESPACE and/or VAR_NAMESPACE
|
||||
as appropriate? (this code was written before TYPE_NAME and
|
||||
TYPE_TAG_NAME were separate). */
|
||||
TYPE_TAG_NAME, and look in STRUCT_NAMESPACE and/or VAR_NAMESPACE
|
||||
as appropriate? (this code was written before TYPE_NAME and
|
||||
TYPE_TAG_NAME were separate). */
|
||||
struct symbol *sym;
|
||||
if (name == NULL)
|
||||
{
|
||||
|
@ -2136,8 +2136,8 @@ rank_function (parms, nparms, args, nargs)
|
|||
LENGTH_MATCH (bv) = (nargs != nparms) ? LENGTH_MISMATCH_BADNESS : 0;
|
||||
|
||||
/* Now rank all the parameters of the candidate function */
|
||||
for (i = 1; i <= min_len; i++)
|
||||
bv->rank[i] = rank_one_type (parms[i - 1], args[i - 1]);
|
||||
for (i = 1; i < min_len; i++)
|
||||
bv->rank[i] = rank_one_type (parms[i], args[i]);
|
||||
|
||||
/* If more arguments than parameters, add dummy entries */
|
||||
for (i = min_len + 1; i <= nargs; i++)
|
||||
|
@ -2178,7 +2178,13 @@ rank_one_type (parm, arg)
|
|||
if (parm == arg)
|
||||
return 0;
|
||||
|
||||
#if 0
|
||||
/* See through references, since we can almost make non-references references*/
|
||||
if (TYPE_CODE (arg) == TYPE_CODE_REF)
|
||||
return rank_one_type(TYPE_TARGET_TYPE(arg),parm) + REFERENCE_CONVERSION_BADNESS;
|
||||
if (TYPE_CODE (parm) == TYPE_CODE_REF)
|
||||
return rank_one_type(arg,TYPE_TARGET_TYPE(parm)) + REFERENCE_CONVERSION_BADNESS;
|
||||
|
||||
#ifdef DEBUG_OLOAD
|
||||
/* Debugging only */
|
||||
printf ("------ Arg is %s [%d], parm is %s [%d]\n",
|
||||
TYPE_NAME (arg), TYPE_CODE (arg), TYPE_NAME (parm), TYPE_CODE (parm));
|
||||
|
@ -2233,7 +2239,7 @@ rank_one_type (parm, arg)
|
|||
if (TYPE_LENGTH (arg) == TYPE_LENGTH (parm))
|
||||
{
|
||||
/* Deal with signed, unsigned, and plain chars and
|
||||
signed and unsigned ints */
|
||||
signed and unsigned ints */
|
||||
if (TYPE_NOSIGN (parm))
|
||||
{
|
||||
/* This case only for character types */
|
||||
|
@ -2246,16 +2252,16 @@ rank_one_type (parm, arg)
|
|||
{
|
||||
if (TYPE_UNSIGNED (arg))
|
||||
{
|
||||
if (!strcmp (TYPE_NAME (parm), TYPE_NAME (arg)))
|
||||
if (!strcmp_iw (TYPE_NAME (parm), TYPE_NAME (arg)))
|
||||
return 0; /* unsigned int -> unsigned int, or unsigned long -> unsigned long */
|
||||
else if (!strcmp (TYPE_NAME (arg), "int") && !strcmp (TYPE_NAME (parm), "long"))
|
||||
else if (!strcmp_iw (TYPE_NAME (arg), "int") && !strcmp_iw (TYPE_NAME (parm), "long"))
|
||||
return INTEGER_PROMOTION_BADNESS; /* unsigned int -> unsigned long */
|
||||
else
|
||||
return INTEGER_COERCION_BADNESS; /* unsigned long -> unsigned int */
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!strcmp (TYPE_NAME (arg), "long") && !strcmp (TYPE_NAME (parm), "int"))
|
||||
if (!strcmp_iw (TYPE_NAME (arg), "long") && !strcmp_iw (TYPE_NAME (parm), "int"))
|
||||
return INTEGER_COERCION_BADNESS; /* signed long -> unsigned int */
|
||||
else
|
||||
return INTEGER_CONVERSION_BADNESS; /* signed int/long -> unsigned int/long */
|
||||
|
@ -2263,9 +2269,9 @@ rank_one_type (parm, arg)
|
|||
}
|
||||
else if (!TYPE_NOSIGN (arg) && !TYPE_UNSIGNED (arg))
|
||||
{
|
||||
if (!strcmp (TYPE_NAME (parm), TYPE_NAME (arg)))
|
||||
if (!strcmp_iw (TYPE_NAME (parm), TYPE_NAME (arg)))
|
||||
return 0;
|
||||
else if (!strcmp (TYPE_NAME (arg), "int") && !strcmp (TYPE_NAME (parm), "long"))
|
||||
else if (!strcmp_iw (TYPE_NAME (arg), "int") && !strcmp_iw (TYPE_NAME (parm), "long"))
|
||||
return INTEGER_PROMOTION_BADNESS;
|
||||
else
|
||||
return INTEGER_COERCION_BADNESS;
|
||||
|
@ -2827,8 +2833,8 @@ recursive_dump_type (type, spaces)
|
|||
|
||||
default:
|
||||
/* We have to pick one of the union types to be able print and test
|
||||
the value. Pick cplus_struct_type, even though we know it isn't
|
||||
any particular one. */
|
||||
the value. Pick cplus_struct_type, even though we know it isn't
|
||||
any particular one. */
|
||||
printfi_filtered (spaces, "type_specific ");
|
||||
gdb_print_host_address (TYPE_CPLUS_SPECIFIC (type), gdb_stdout);
|
||||
if (TYPE_CPLUS_SPECIFIC (type) != NULL)
|
||||
|
|
|
@ -820,9 +820,9 @@ allocate_cplus_struct_type PARAMS ((struct type *));
|
|||
#define TYPE_LOCALTYPE_LINE(thistype) (TYPE_CPLUS_SPECIFIC(thistype)->localtype_ptr->line)
|
||||
|
||||
#define TYPE_IS_OPAQUE(thistype) (((TYPE_CODE (thistype) == TYPE_CODE_STRUCT) || \
|
||||
(TYPE_CODE (thistype) == TYPE_CODE_UNION)) && \
|
||||
(TYPE_NFIELDS (thistype) == 0) && \
|
||||
(TYPE_CPLUS_SPECIFIC (thistype) && (TYPE_NFN_FIELDS (thistype) == 0)))
|
||||
(TYPE_CODE (thistype) == TYPE_CODE_UNION)) && \
|
||||
(TYPE_NFIELDS (thistype) == 0) && \
|
||||
(TYPE_CPLUS_SPECIFIC (thistype) && (TYPE_NFN_FIELDS (thistype) == 0)))
|
||||
|
||||
|
||||
|
||||
|
@ -1129,9 +1129,10 @@ count_virtual_fns PARAMS ((struct type *));
|
|||
#define POINTER_CONVERSION_BADNESS 2
|
||||
/* Badness of conversion of pointer to void pointer */
|
||||
#define VOID_PTR_CONVERSION_BADNESS 2
|
||||
/* Badness of convering derived to base class */
|
||||
/* Badness of converting derived to base class */
|
||||
#define BASE_CONVERSION_BADNESS 2
|
||||
|
||||
/* Badness of converting from non-reference to reference*/
|
||||
#define REFERENCE_CONVERSION_BADNESS 2
|
||||
/* Non-standard conversions allowed by the debugger */
|
||||
/* Converting a pointer to an int is usually OK */
|
||||
#define NS_POINTER_CONVERSION_BADNESS 10
|
||||
|
|
178
gdb/valops.c
178
gdb/valops.c
|
@ -240,8 +240,8 @@ value_cast (type, arg2)
|
|||
&& TYPE_NAME (type) != 0)
|
||||
{
|
||||
/* Look in the type of the source to see if it contains the
|
||||
type of the target as a superclass. If so, we'll need to
|
||||
offset the object in addition to changing its type. */
|
||||
type of the target as a superclass. If so, we'll need to
|
||||
offset the object in addition to changing its type. */
|
||||
value_ptr v = search_struct_field (type_name_no_tag (type),
|
||||
arg2, 0, type2, 1);
|
||||
if (v)
|
||||
|
@ -297,8 +297,8 @@ value_cast (type, arg2)
|
|||
value_ptr v;
|
||||
|
||||
/* Look in the type of the source to see if it contains the
|
||||
type of the target as a superclass. If so, we'll need to
|
||||
offset the pointer rather than just change its type. */
|
||||
type of the target as a superclass. If so, we'll need to
|
||||
offset the pointer rather than just change its type. */
|
||||
if (TYPE_NAME (t1) != NULL)
|
||||
{
|
||||
v = search_struct_field (type_name_no_tag (t1),
|
||||
|
@ -312,9 +312,9 @@ value_cast (type, arg2)
|
|||
}
|
||||
|
||||
/* Look in the type of the target to see if it contains the
|
||||
type of the source as a superclass. If so, we'll need to
|
||||
offset the pointer rather than just change its type.
|
||||
FIXME: This fails silently with virtual inheritance. */
|
||||
type of the source as a superclass. If so, we'll need to
|
||||
offset the pointer rather than just change its type.
|
||||
FIXME: This fails silently with virtual inheritance. */
|
||||
if (TYPE_NAME (t2) != NULL)
|
||||
{
|
||||
v = search_struct_field (type_name_no_tag (t2),
|
||||
|
@ -688,10 +688,10 @@ value_assign (toval, fromval)
|
|||
#endif
|
||||
}
|
||||
/* Assigning to the stack pointer, frame pointer, and other
|
||||
(architecture and calling convention specific) registers may
|
||||
cause the frame cache to be out of date. We just do this
|
||||
on all assignments to registers for simplicity; I doubt the slowdown
|
||||
matters. */
|
||||
(architecture and calling convention specific) registers may
|
||||
cause the frame cache to be out of date. We just do this
|
||||
on all assignments to registers for simplicity; I doubt the slowdown
|
||||
matters. */
|
||||
reinit_frame_cache ();
|
||||
break;
|
||||
|
||||
|
@ -929,8 +929,8 @@ value_addr (arg1)
|
|||
if (TYPE_CODE (type) == TYPE_CODE_REF)
|
||||
{
|
||||
/* Copy the value, but change the type from (T&) to (T*).
|
||||
We keep the same location information, which is efficient,
|
||||
and allows &(&X) to get the location containing the reference. */
|
||||
We keep the same location information, which is efficient,
|
||||
and allows &(&X) to get the location containing the reference. */
|
||||
arg2 = value_copy (arg1);
|
||||
VALUE_TYPE (arg2) = lookup_pointer_type (TYPE_TARGET_TYPE (type));
|
||||
return arg2;
|
||||
|
@ -1199,16 +1199,16 @@ value_arg_coerce (arg, param_type, is_prototyped)
|
|||
type = builtin_type_int;
|
||||
}
|
||||
/* Currently all target ABIs require at least the width of an integer
|
||||
type for an argument. We may have to conditionalize the following
|
||||
type coercion for future targets. */
|
||||
type for an argument. We may have to conditionalize the following
|
||||
type coercion for future targets. */
|
||||
if (TYPE_LENGTH (type) < TYPE_LENGTH (builtin_type_int))
|
||||
type = builtin_type_int;
|
||||
break;
|
||||
case TYPE_CODE_FLT:
|
||||
/* FIXME: We should always convert floats to doubles in the
|
||||
non-prototyped case. As many debugging formats include
|
||||
no information about prototyping, we have to live with
|
||||
COERCE_FLOAT_TO_DOUBLE for now. */
|
||||
non-prototyped case. As many debugging formats include
|
||||
no information about prototyping, we have to live with
|
||||
COERCE_FLOAT_TO_DOUBLE for now. */
|
||||
if (!is_prototyped && COERCE_FLOAT_TO_DOUBLE (param_type, arg_type))
|
||||
{
|
||||
if (TYPE_LENGTH (type) < TYPE_LENGTH (builtin_type_double))
|
||||
|
@ -1287,7 +1287,7 @@ find_function_addr (function, retval_type)
|
|||
else if (code == TYPE_CODE_INT)
|
||||
{
|
||||
/* Handle the case of functions lacking debugging info.
|
||||
Their values are characters since their addresses are char */
|
||||
Their values are characters since their addresses are char */
|
||||
if (TYPE_LENGTH (ftype) == 1)
|
||||
funaddr = value_as_pointer (value_addr (function));
|
||||
else
|
||||
|
@ -1471,8 +1471,8 @@ hand_function_call (function, nargs, args)
|
|||
for (i = nargs - 1; i >= 0; i--)
|
||||
{
|
||||
/* If we're off the end of the known arguments, do the standard
|
||||
promotions. FIXME: if we had a prototype, this should only
|
||||
be allowed if ... were present. */
|
||||
promotions. FIXME: if we had a prototype, this should only
|
||||
be allowed if ... were present. */
|
||||
if (i >= TYPE_NFIELDS (ftype))
|
||||
args[i] = value_arg_coerce (args[i], NULL, 0);
|
||||
|
||||
|
@ -1485,13 +1485,13 @@ hand_function_call (function, nargs, args)
|
|||
}
|
||||
|
||||
/*elz: this code is to handle the case in which the function to be called
|
||||
has a pointer to function as parameter and the corresponding actual argument
|
||||
is the address of a function and not a pointer to function variable.
|
||||
In aCC compiled code, the calls through pointers to functions (in the body
|
||||
of the function called by hand) are made via $$dyncall_external which
|
||||
requires some registers setting, this is taken care of if we call
|
||||
via a function pointer variable, but not via a function address.
|
||||
In cc this is not a problem. */
|
||||
has a pointer to function as parameter and the corresponding actual argument
|
||||
is the address of a function and not a pointer to function variable.
|
||||
In aCC compiled code, the calls through pointers to functions (in the body
|
||||
of the function called by hand) are made via $$dyncall_external which
|
||||
requires some registers setting, this is taken care of if we call
|
||||
via a function pointer variable, but not via a function address.
|
||||
In cc this is not a problem. */
|
||||
|
||||
if (using_gcc == 0)
|
||||
if (param_type)
|
||||
|
@ -1499,10 +1499,10 @@ hand_function_call (function, nargs, args)
|
|||
if (TYPE_CODE (param_type) == TYPE_CODE_PTR)
|
||||
if (TYPE_CODE (param_type->target_type) == TYPE_CODE_FUNC)
|
||||
/* elz: FIXME here should go the test about the compiler used
|
||||
to compile the target. We want to issue the error
|
||||
message only if the compiler used was HP's aCC.
|
||||
If we used HP's cc, then there is no problem and no need
|
||||
to return at this point */
|
||||
to compile the target. We want to issue the error
|
||||
message only if the compiler used was HP's aCC.
|
||||
If we used HP's cc, then there is no problem and no need
|
||||
to return at this point */
|
||||
if (using_gcc == 0) /* && compiler == aCC */
|
||||
/* go see if the actual parameter is a variable of type
|
||||
pointer to function or just a function */
|
||||
|
@ -1591,8 +1591,8 @@ You must use a pointer to function type variable. Command ignored.", arg_name);
|
|||
int len = TYPE_LENGTH (value_type);
|
||||
#ifdef STACK_ALIGN
|
||||
/* MVS 11/22/96: I think at least some of this stack_align code is
|
||||
really broken. Better to let PUSH_ARGUMENTS adjust the stack in
|
||||
a target-defined manner. */
|
||||
really broken. Better to let PUSH_ARGUMENTS adjust the stack in
|
||||
a target-defined manner. */
|
||||
len = STACK_ALIGN (len);
|
||||
#endif
|
||||
if (INNER_THAN (1, 2))
|
||||
|
@ -1652,7 +1652,7 @@ You must use a pointer to function type variable. Command ignored.", arg_name);
|
|||
if (!INNER_THAN (1, 2))
|
||||
{
|
||||
/* If stack grows up, we must leave a hole at the bottom, note
|
||||
that sp already has been advanced for the arguments! */
|
||||
that sp already has been advanced for the arguments! */
|
||||
if (CALL_DUMMY_STACK_ADJUST_P)
|
||||
sp += CALL_DUMMY_STACK_ADJUST;
|
||||
sp = STACK_ALIGN (sp);
|
||||
|
@ -1733,12 +1733,12 @@ You must use a pointer to function type variable. Command ignored.", arg_name);
|
|||
/* We stopped inside the FUNCTION because of a random signal.
|
||||
Further execution of the FUNCTION is not allowed. */
|
||||
|
||||
if (unwind_on_signal_p)
|
||||
if (unwind_on_signal_p)
|
||||
{
|
||||
/* The user wants the context restored. */
|
||||
|
||||
/* We must get back to the frame we were before the dummy call. */
|
||||
POP_FRAME;
|
||||
/* We must get back to the frame we were before the dummy call. */
|
||||
POP_FRAME;
|
||||
|
||||
/* FIXME: Insert a bunch of wrap_here; name can be very long if it's
|
||||
a C++ name with arguments and stuff. */
|
||||
|
@ -2032,8 +2032,8 @@ typecmp (staticp, t1, t2)
|
|||
/* Array to pointer is a `trivial conversion' according to the ARM. */
|
||||
|
||||
/* We should be doing much hairier argument matching (see section 13.2
|
||||
of the ARM), but as a quick kludge, just check for the same type
|
||||
code. */
|
||||
of the ARM), but as a quick kludge, just check for the same type
|
||||
code. */
|
||||
if (TYPE_CODE (t1[i]) != TYPE_CODE (VALUE_TYPE (t2[i])))
|
||||
return i + 1;
|
||||
}
|
||||
|
@ -2068,7 +2068,7 @@ search_struct_field (name, arg1, offset, type, looking_for_baseclass)
|
|||
{
|
||||
char *t_field_name = TYPE_FIELD_NAME (type, i);
|
||||
|
||||
if (t_field_name && STREQ (t_field_name, name))
|
||||
if (t_field_name && STREQ_IW (t_field_name, name))
|
||||
{
|
||||
value_ptr v;
|
||||
if (TYPE_FIELD_STATIC (type, i))
|
||||
|
@ -2083,7 +2083,7 @@ search_struct_field (name, arg1, offset, type, looking_for_baseclass)
|
|||
if (t_field_name
|
||||
&& (t_field_name[0] == '\0'
|
||||
|| (TYPE_CODE (type) == TYPE_CODE_UNION
|
||||
&& STREQ (t_field_name, "else"))))
|
||||
&& STREQ_IW (t_field_name, "else"))))
|
||||
{
|
||||
struct type *field_type = TYPE_FIELD_TYPE (type, i);
|
||||
if (TYPE_CODE (field_type) == TYPE_CODE_UNION
|
||||
|
@ -2124,11 +2124,11 @@ search_struct_field (name, arg1, offset, type, looking_for_baseclass)
|
|||
value_ptr v;
|
||||
struct type *basetype = check_typedef (TYPE_BASECLASS (type, i));
|
||||
/* If we are looking for baseclasses, this is what we get when we
|
||||
hit them. But it could happen that the base part's member name
|
||||
is not yet filled in. */
|
||||
hit them. But it could happen that the base part's member name
|
||||
is not yet filled in. */
|
||||
int found_baseclass = (looking_for_baseclass
|
||||
&& TYPE_BASECLASS_NAME (type, i) != NULL
|
||||
&& STREQ (name, TYPE_BASECLASS_NAME (type, i)));
|
||||
&& STREQ_IW (name, TYPE_BASECLASS_NAME (type, i)));
|
||||
|
||||
if (BASETYPE_VIA_VIRTUAL (type, i))
|
||||
{
|
||||
|
@ -2314,7 +2314,7 @@ search_struct_method (name, arg1p, args, offset, static_memfuncp, type)
|
|||
else if (cplus_demangle_opname (t_field_name, dem_opname, 0))
|
||||
t_field_name = dem_opname;
|
||||
}
|
||||
if (t_field_name && STREQ (t_field_name, name))
|
||||
if (t_field_name && !strcmp_iw (t_field_name, name))
|
||||
{
|
||||
int j = TYPE_FN_FIELDLIST_LENGTH (type, i) - 1;
|
||||
struct fn_field *f = TYPE_FN_FIELDLIST1 (type, i);
|
||||
|
@ -2351,7 +2351,7 @@ search_struct_method (name, arg1p, args, offset, static_memfuncp, type)
|
|||
if (TYPE_HAS_VTABLE (type))
|
||||
{
|
||||
/* HP aCC compiled type, search for virtual base offset
|
||||
according to HP/Taligent runtime spec. */
|
||||
according to HP/Taligent runtime spec. */
|
||||
int skip;
|
||||
find_rt_vbase_offset (type, TYPE_BASECLASS (type, i),
|
||||
VALUE_CONTENTS_ALL (*arg1p),
|
||||
|
@ -2366,8 +2366,8 @@ search_struct_method (name, arg1p, args, offset, static_memfuncp, type)
|
|||
char *base_valaddr;
|
||||
|
||||
/* The virtual base class pointer might have been clobbered by the
|
||||
user program. Make sure that it still points to a valid memory
|
||||
location. */
|
||||
user program. Make sure that it still points to a valid memory
|
||||
location. */
|
||||
|
||||
if (offset < 0 || offset >= TYPE_LENGTH (type))
|
||||
{
|
||||
|
@ -2467,13 +2467,13 @@ value_struct_elt (argp, args, name, static_memfuncp, err)
|
|||
/* if there are no arguments ...do this... */
|
||||
|
||||
/* Try as a field first, because if we succeed, there
|
||||
is less work to be done. */
|
||||
is less work to be done. */
|
||||
v = search_struct_field (name, *argp, 0, t, 0);
|
||||
if (v)
|
||||
return v;
|
||||
|
||||
/* C++: If it was not found as a data field, then try to
|
||||
return it as a pointer to a method. */
|
||||
return it as a pointer to a method. */
|
||||
|
||||
if (destructor_name_p (name, t))
|
||||
error ("Cannot get value of destructor");
|
||||
|
@ -2525,8 +2525,8 @@ value_struct_elt (argp, args, name, static_memfuncp, err)
|
|||
else if (v == 0)
|
||||
{
|
||||
/* See if user tried to invoke data as function. If so,
|
||||
hand it back. If it's not callable (i.e., a pointer to function),
|
||||
gdb should give an error. */
|
||||
hand it back. If it's not callable (i.e., a pointer to function),
|
||||
gdb should give an error. */
|
||||
v = search_struct_field (name, *argp, 0, t, 0);
|
||||
}
|
||||
|
||||
|
@ -2570,7 +2570,7 @@ find_method_list (argp, method, offset, static_memfuncp, type, num_fns, basetype
|
|||
{
|
||||
/* pai: FIXME What about operators and type conversions? */
|
||||
char *fn_field_name = TYPE_FN_FIELDLIST_NAME (type, i);
|
||||
if (fn_field_name && STREQ (fn_field_name, method))
|
||||
if (fn_field_name && STREQ_IW (fn_field_name, method))
|
||||
{
|
||||
*num_fns = TYPE_FN_FIELDLIST_LENGTH (type, i);
|
||||
*basetype = type;
|
||||
|
@ -2736,13 +2736,16 @@ find_overload_match (arg_types, nargs, name, method, lax, obj, fsym, valp, symp,
|
|||
|
||||
char *obj_type_name = NULL;
|
||||
char *func_name = NULL;
|
||||
int i,j,len,len2;
|
||||
struct type *domain;
|
||||
struct fn_field *f;
|
||||
|
||||
/* Get the list of overloaded methods or functions */
|
||||
if (method)
|
||||
{
|
||||
obj_type_name = TYPE_NAME (VALUE_TYPE (obj));
|
||||
/* Hack: evaluate_subexp_standard often passes in a pointer
|
||||
value rather than the object itself, so try again */
|
||||
value rather than the object itself, so try again */
|
||||
if ((!obj_type_name || !*obj_type_name) &&
|
||||
(TYPE_CODE (VALUE_TYPE (obj)) == TYPE_CODE_PTR))
|
||||
obj_type_name = TYPE_NAME (TYPE_TARGET_TYPE (VALUE_TYPE (obj)));
|
||||
|
@ -2756,6 +2759,26 @@ find_overload_match (arg_types, nargs, name, method, lax, obj, fsym, valp, symp,
|
|||
obj_type_name,
|
||||
(obj_type_name && *obj_type_name) ? "::" : "",
|
||||
name);
|
||||
domain=TYPE_DOMAIN_TYPE(fns_ptr[0].type);
|
||||
len = TYPE_NFN_FIELDS (domain);
|
||||
/*This stuff is for STABS, which won't give us the info we need directly in the types.
|
||||
* We have to use the method stub conversion to get it.
|
||||
* Be aware that this is by no means perfect, and if you use
|
||||
* STABS, please move to DWARF-2, or something like it, because
|
||||
* trying to improve overloading using STABS is really a waste
|
||||
* of time.
|
||||
*/
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
f = TYPE_FN_FIELDLIST1 (domain, i);
|
||||
len2 = TYPE_FN_FIELDLIST_LENGTH (domain, i);
|
||||
|
||||
for (j = 0; j < len2; j++)
|
||||
{
|
||||
if (TYPE_FN_FIELD_STUB (f, j))
|
||||
check_stub_method (domain, i, j);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2763,12 +2786,12 @@ find_overload_match (arg_types, nargs, name, method, lax, obj, fsym, valp, symp,
|
|||
func_name = cplus_demangle (SYMBOL_NAME (fsym), DMGL_NO_OPTS);
|
||||
|
||||
/* If the name is NULL this must be a C-style function.
|
||||
Just return the same symbol. */
|
||||
Just return the same symbol. */
|
||||
if (!func_name)
|
||||
{
|
||||
{
|
||||
*symp = fsym;
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
oload_syms = make_symbol_overload_list (fsym);
|
||||
while (oload_syms[++i])
|
||||
|
@ -2782,14 +2805,28 @@ find_overload_match (arg_types, nargs, name, method, lax, obj, fsym, valp, symp,
|
|||
/* Consider each candidate in turn */
|
||||
for (ix = 0; ix < num_fns; ix++)
|
||||
{
|
||||
/* Number of parameters for current candidate */
|
||||
nparms = method ? TYPE_NFIELDS (fns_ptr[ix].type)
|
||||
: TYPE_NFIELDS (SYMBOL_TYPE (oload_syms[ix]));
|
||||
if (method)
|
||||
{
|
||||
/* For static member functions, we won't have a this pointer, but nothing
|
||||
else seems to handle them right now, so we just pretend ourselves */
|
||||
nparms=0;
|
||||
|
||||
if (TYPE_FN_FIELD_ARGS(fns_ptr,ix))
|
||||
{
|
||||
while (TYPE_CODE(TYPE_FN_FIELD_ARGS(fns_ptr,ix)[nparms]) != TYPE_CODE_VOID)
|
||||
nparms++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* If it's not a method, this is the proper place */
|
||||
nparms=TYPE_NFIELDS(SYMBOL_TYPE(oload_syms[ix]));
|
||||
}
|
||||
|
||||
/* Prepare array of parameter types */
|
||||
parm_types = (struct type **) xmalloc (nparms * (sizeof (struct type *)));
|
||||
for (jj = 0; jj < nparms; jj++)
|
||||
parm_types[jj] = method ? TYPE_FIELD_TYPE (fns_ptr[ix].type, jj)
|
||||
parm_types[jj] = method ? (TYPE_FN_FIELD_ARGS(fns_ptr,ix)[jj])
|
||||
: TYPE_FIELD_TYPE (SYMBOL_TYPE (oload_syms[ix]), jj);
|
||||
|
||||
/* Compare parameter types to supplied argument types */
|
||||
|
@ -2830,12 +2867,16 @@ find_overload_match (arg_types, nargs, name, method, lax, obj, fsym, valp, symp,
|
|||
printf ("Overloaded method instance %s, # of parms %d\n", fns_ptr[ix].physname, nparms);
|
||||
else
|
||||
printf ("Overloaded function instance %s # of parms %d\n", SYMBOL_DEMANGLED_NAME (oload_syms[ix]), nparms);
|
||||
for (jj = 0; jj <= nargs; jj++)
|
||||
for (jj = 0; jj < nargs; jj++)
|
||||
printf ("...Badness @ %d : %d\n", jj, bv->rank[jj]);
|
||||
printf ("Overload resolution champion is %d, ambiguous? %d\n", oload_champ, oload_ambiguous);
|
||||
#endif
|
||||
} /* end loop over all candidates */
|
||||
|
||||
/* Seems to be a better idea to just pick one if they have the exact same goodness.
|
||||
* This is because there is no way to differentiate based on return type, which we need
|
||||
* to in cases like overloads of .begin() <It's both const and non-const> */
|
||||
#if 0
|
||||
if (oload_ambiguous)
|
||||
{
|
||||
if (method)
|
||||
|
@ -2847,6 +2888,7 @@ find_overload_match (arg_types, nargs, name, method, lax, obj, fsym, valp, symp,
|
|||
error ("Cannot resolve overloaded function %s to unique instance; disambiguate by specifying function signature",
|
||||
func_name);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Check how bad the best match is */
|
||||
for (ix = 1; ix <= nargs; ix++)
|
||||
|
@ -2943,7 +2985,7 @@ check_field_in (type, name)
|
|||
for (i = TYPE_NFIELDS (type) - 1; i >= TYPE_N_BASECLASSES (type); i--)
|
||||
{
|
||||
char *t_field_name = TYPE_FIELD_NAME (type, i);
|
||||
if (t_field_name && STREQ (t_field_name, name))
|
||||
if (t_field_name && STREQ_IW (t_field_name, name))
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -2960,7 +3002,7 @@ check_field_in (type, name)
|
|||
|
||||
for (i = TYPE_NFN_FIELDS (type) - 1; i >= 0; --i)
|
||||
{
|
||||
if (STREQ (TYPE_FN_FIELDLIST_NAME (type, i), name))
|
||||
if (STREQ_IW (TYPE_FN_FIELDLIST_NAME (type, i), name))
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -3481,8 +3523,8 @@ value_slice (array, lowbound, length)
|
|||
}
|
||||
}
|
||||
/* We should set the address, bitssize, and bitspos, so the clice
|
||||
can be used on the LHS, but that may require extensions to
|
||||
value_assign. For now, just leave as a non_lval. FIXME. */
|
||||
can be used on the LHS, but that may require extensions to
|
||||
value_assign. For now, just leave as a non_lval. FIXME. */
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue