Fix C++ overload support, see through references

This commit is contained in:
Daniel Berlin 2000-03-10 08:02:58 +00:00
parent 36c2118fc9
commit 09b59ee380
5 changed files with 411 additions and 331 deletions

View File

@ -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,13 +234,13 @@ 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.
* configure.in (CONFIG_ALL, CONFIG_CLEAN): Define.
(LN_S): Define. Delete GDBtk's link code.
@ -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>
@ -250,25 +280,25 @@ Fri Mar 3 13:12:34 2000 Andrew Cagney <cagney@b1.cygnus.com>
Thu Mar 2 09:04:46 2000 Andrew Cagney <cagney@b1.cygnus.com>
* MAINTAINERS: Daniel Berlin is C++ maintainer.
* MAINTAINERS: Daniel Berlin is C++ maintainer.
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>
From Wed 23 Feb 2000 Fernando Nasser <fnasser@redhat.com>:
* remote-sim.c (gdbsim_close): Call generic_mourn_inferior.
* remote-rdi.c (arm_rdi_close): Ditto.
* remote-rdi.c (arm_rdi_close): Ditto.
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,24 +375,24 @@ 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
naming convention as in the Linux kernel. Fixed calls to
naming convention as in the Linux kernel. Fixed calls to
fetch_nwfpe_*.
(store_fpregs): Fixed calls to store_nwfpe_*. Removed
unused variable.
unused variable.
Mon Feb 28 18:24:32 2000 Andrew Cagney <cagney@b1.cygnus.com>
@ -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,23 +502,23 @@ 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>
* configure.in (SUBDIR_MI_CFLAGS): Fix typo, wrong brace.
* configure: Regenerate.
2000-02-24 Christopher Faylor <cgf@cygnus.com>
* configure.tgt: Add arm, mips, sh wince targets.
@ -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,33 +676,33 @@ 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>
* MAINTAINERS: Add note on multiple maintainers.
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,11 +786,11 @@ 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,
PUSH_DUMMY_FRAME, PUSH_RETURN_ADDRESS, GET_SAVED_REGISTER,
PUSH_DUMMY_FRAME, PUSH_RETURN_ADDRESS, GET_SAVED_REGISTER,
CALL_DUMMY_BREAKPOINT_OFFSET, CALL_DUMMY_LOCATION,
CALL_DUMMY_ADDRESS, CALL_DUMMY_START_OFFSET): Override defaults
provided by generic RS6000 definitions so that call dummies
@ -783,7 +813,7 @@ Wed Feb 16 19:00:02 2000 Andrew Cagney <cagney@b1.cygnus.com>
2000-02-15 Jesper Skov <jskov@cygnus.co.uk>
Patch applied by Kevin Buettner <kevinb@redhat.com>
* rs6000-tdep.c (skip_prologue): skip copying of argument
registers to local variable registers.
@ -822,9 +852,9 @@ 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.
* gdbserver/configure.in: likewise.
* gdbserver/configure: generate.
@ -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,30 +1098,30 @@ 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.
(corefile.o, main.o, utils.o, simmisc.o): Update 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.
* frame.h (print_what): New enum for 'source' argument to
print_frame_info_base(). Use this instead of obscure numbers.
Update copyright.
* frame.h (print_what): New enum for 'source' argument to
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.
@ -1358,7 +1388,7 @@ Thu Jan 13 23:34:17 EST 2000 Nicholas Duffek <nsd@cygnus.com>
(proc_flags): combine flags that UnixWare splits into two locations.
(proc_modify_flag): add support for PR_KLC (kill on last close).
(proc_[un]set_kill_on_last_close): new functions.
2000-01-07 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* infrun.c (normal_stop): Print out thread id when we stop.
@ -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.

View File

@ -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
@ -516,11 +517,11 @@ extern void print_address_symbolic (CORE_ADDR, struct ui_file *, int,
char *);
extern int build_address_symbolic (CORE_ADDR addr,
int do_demangle,
char **name,
int *offset,
char **filename,
int *line,
int do_demangle,
char **name,
int *offset,
char **filename,
int *line,
int *unmapped);
extern void print_address_numeric (CORE_ADDR, int, struct ui_file *);
@ -619,8 +620,8 @@ extern struct command_line *read_command_lines (char *, int);
extern void free_command_lines (struct command_line **);
/* To continue the execution commands when running gdb asynchronously.
A continuation structure contains a pointer to a function to be called
/* To continue the execution commands when running gdb asynchronously.
A continuation structure contains a pointer to a function to be called
to finish the command, once the target has stopped. Such mechanism is
used bt the finish and until commands, and in the remote protocol
when opening an extended-remote connection. */
@ -762,7 +763,7 @@ enum val_prettyprint
extern int longest_to_int (LONGEST);
/* Assorted functions we can declare, now that const and volatile are
/* Assorted functions we can declare, now that const and volatile are
defined. */
extern char *savestring (const char *, int);
@ -1160,9 +1161,9 @@ extern int event_loop_p;
extern void (*init_ui_hook) (char *argv0);
extern void (*command_loop_hook) (void);
extern void (*show_load_progress) (const char *section,
unsigned long section_sent,
unsigned long section_size,
unsigned long total_sent,
unsigned long section_sent,
unsigned long section_size,
unsigned long total_sent,
unsigned long total_size);
extern void (*print_frame_info_listing_hook) (struct symtab * s,
int line, int stopline,

View File

@ -410,7 +410,7 @@ lookup_member_type (type, domain)
return (mtype);
}
/* Allocate a stub method whose return type is TYPE.
/* Allocate a stub method whose return type is TYPE.
This apparently happens for speed of symbol reading, since parsing
out the arguments to the method is cpu-intensive, the way we are doing
it. So, we will fill in arguments later.
@ -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;
@ -679,7 +679,7 @@ init_simd_type (char *name,
}
/* Smash TYPE to be a type of members of DOMAIN with type TO_TYPE.
/* Smash TYPE to be a type of members of DOMAIN with type TO_TYPE.
A MEMBER is a wierd thing -- it amounts to a typed offset into
a struct, e.g. "an int at offset 8". A MEMBER TYPE doesn't
include the offset (that's the value of the MEMBER itself), but does
@ -750,7 +750,7 @@ type_name_no_tag (type)
return TYPE_NAME (type);
}
/* Lookup a primitive type named NAME.
/* Lookup a primitive type named NAME.
Return zero if NAME is not a primitive type. */
struct type *
@ -939,7 +939,7 @@ lookup_template_type (name, type, block)
return (SYMBOL_TYPE (sym));
}
/* Given a type TYPE, lookup the type of the component of type named NAME.
/* Given a type TYPE, lookup the type of the component of type named NAME.
TYPE can be either a struct or union, or a pointer or reference to a struct or
union. If it is a pointer or reference, its target type is automatically used.
@ -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));
@ -1100,7 +1100,7 @@ get_destructor_fn_field (t, method_indexp, field_indexp)
be a mistake, though--we might load in more symbols which contain a
full definition for the type.
This used to be coded as a macro, but I don't think it is called
This used to be coded as a macro, but I don't think it is called
often enough to merit such treatment. */
struct complaint stub_noname_complaint =
@ -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)
{
@ -1378,7 +1378,7 @@ cfront_mangle_name (type, i, j)
f = TYPE_FN_FIELDLIST1 (type, i); /* moved from below */
/* kludge to support cfront methods - gdb expects to find "F" for
/* kludge to support cfront methods - gdb expects to find "F" for
ARM_mangled names, so when we mangle, we have to add it here */
if (ARM_DEMANGLING)
{
@ -1693,7 +1693,7 @@ chill_varying_type (type)
return 1;
}
/* Check whether BASE is an ancestor or base class or DCLASS
/* Check whether BASE is an ancestor or base class or DCLASS
Return 1 if so, and 0 if not.
Note: callers may want to check for identity of the types before
calling this function -- identical types are considered to satisfy
@ -1797,7 +1797,7 @@ static struct vbase *current_vbase_list = NULL;
items. The vbasetype pointer of each item in the list points to the
type information for a virtual base of the argument DCLASS.
Helper function for virtual_base_list().
Helper function for virtual_base_list().
Note: the list goes backward, right-to-left. virtual_base_list()
copies the items out in reverse order. */
@ -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)

View File

@ -165,7 +165,7 @@ enum type_code
#define TYPE_FLAG_TARGET_STUB (1 << 3)
/* Static type. If this is set, the corresponding type had
/* Static type. If this is set, the corresponding type had
* a static modifier.
* Note: This may be unnecessary, since static data members
* are indicated by other means (bitpos == -1)
@ -368,7 +368,7 @@ struct type
*fields;
/* For types with virtual functions (TYPE_CODE_STRUCT), VPTR_BASETYPE
is the base class which defined the virtual function table pointer.
is the base class which defined the virtual function table pointer.
For types that are pointer to member types (TYPE_CODE_MEMBER),
VPTR_BASETYPE is the type that this pointer is a member of.
@ -439,7 +439,7 @@ struct cplus_struct_type
/* The "declared_type" field contains a code saying how the
user really declared this type, e.g., "class s", "union s",
"struct s".
The 3 above things come out from the C++ compiler looking like classes,
The 3 above things come out from the C++ compiler looking like classes,
but we keep track of the real declaration so we can give
the correct information on "ptype". (Note: TEMPLATE may not
belong in this list...) */
@ -521,7 +521,7 @@ struct cplus_struct_type
/* The function type for the method.
(This comment used to say "The return value of the method",
but that's wrong. The function type
but that's wrong. The function type
is expected here, i.e. something with TYPE_CODE_FUNC,
and *not* the return-value type). */
@ -575,7 +575,7 @@ struct cplus_struct_type
}
*fn_fieldlists;
/* If this "struct type" describes a template, then it
/* If this "struct type" describes a template, then it
* has arguments. "template_args" points to an array of
* template arg descriptors, of length "ntemplate_args".
* The only real information in each of these template arg descriptors
@ -608,7 +608,7 @@ struct cplus_struct_type
*
* Fields in structure pointed to:
* ->HAS_VTABLE : 0 => no virtual table, 1 => vtable present
*
*
* ->PRIMARY_BASE points to the first non-virtual base class that has
* a virtual table.
*
@ -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)))
@ -1081,9 +1081,9 @@ count_virtual_fns PARAMS ((struct type *));
* typeinfo pointer, and dup base info pointer */
#define HP_ACC_VFUNC_START 4
/* (Negative) Offset where virtual base offset entries begin
/* (Negative) Offset where virtual base offset entries begin
* in the virtual table. Skips over metavtable pointer and
* the self-offset entry.
* the self-offset entry.
* NOTE: NEGATE THIS BEFORE USING! The virtual base offsets
* appear before the address point of the vtable (the slot
* pointed to by the object's vtable pointer), i.e. at lower
@ -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

View File

@ -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),
@ -411,14 +411,14 @@ value_zero (type, lv)
return val;
}
/* Return a value with type TYPE located at ADDR.
/* Return a value with type TYPE located at ADDR.
Call value_at only if the data needs to be fetched immediately;
if we can be 'lazy' and defer the fetch, perhaps indefinately, call
value_at_lazy instead. value_at_lazy simply records the address of
the data and sets the lazy-evaluation-required flag. The lazy flag
is tested in the VALUE_CONTENTS macro, which is used if and when
the contents are actually required.
the data and sets the lazy-evaluation-required flag. The lazy flag
is tested in the VALUE_CONTENTS macro, which is used if and when
the contents are actually required.
Note: value_at does *NOT* handle embedded offsets; perform such
adjustments before or after calling it. */
@ -491,9 +491,9 @@ value_at_lazy (type, addr, sect)
return val;
}
/* Called only from the VALUE_CONTENTS and VALUE_CONTENTS_ALL macros,
if the current data for a variable needs to be loaded into
VALUE_CONTENTS(VAL). Fetches the data from the user's process, and
/* Called only from the VALUE_CONTENTS and VALUE_CONTENTS_ALL macros,
if the current data for a variable needs to be loaded into
VALUE_CONTENTS(VAL). Fetches the data from the user's process, and
clears the lazy flag to indicate that the data in the buffer is valid.
If the value is zero-length, we avoid calling read_memory, which would
@ -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;
@ -1131,7 +1131,7 @@ default_push_arguments (nargs, args, sp, struct_return, struct_addr)
#ifndef COERCE_FLOAT_TO_DOUBLE
#define COERCE_FLOAT_TO_DOUBLE(formal, actual) \
(default_coerce_float_to_double ((formal), (actual)))
#endif
#endif
/* A default function for COERCE_FLOAT_TO_DOUBLE: do the coercion only
@ -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))
@ -1244,7 +1244,7 @@ value_arg_coerce (arg, param_type, is_prototyped)
return value_cast (type, arg);
}
/* Determine a function's address and its return type from its value.
/* Determine a function's address and its return type from its value.
Calls error() if the function is not valid for calling. */
static CORE_ADDR
@ -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
@ -1335,7 +1335,7 @@ hand_function_call (function, nargs, args)
/* CALL_DUMMY is an array of words (REGISTER_SIZE), but each word
is in host byte order. Before calling FIX_CALL_DUMMY, we byteswap it
and remove any extra bytes which might exist because ULONGEST is
bigger than REGISTER_SIZE.
bigger than REGISTER_SIZE.
NOTE: This is pretty wierd, as the call dummy is actually a
sequence of instructions. But CISC machines will have
@ -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);
@ -1484,25 +1484,25 @@ hand_function_call (function, nargs, args)
args[i] = value_arg_coerce (args[i], param_type, is_prototyped);
}
/*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. */
/*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. */
if (using_gcc == 0)
if (param_type)
/* if this parameter is a pointer to function */
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 */
/* 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 */
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))
@ -1611,7 +1611,7 @@ You must use a pointer to function type variable. Command ignored.", arg_name);
/* elz: on HPPA no need for this extra alignment, maybe it is needed
on other architectures. This is because all the alignment is taken care
of in the above code (ifdef REG_STRUCT_HAS_ADDR) and in
of in the above code (ifdef REG_STRUCT_HAS_ADDR) and in
hppa_push_arguments */
#ifndef NO_EXTRA_ALIGNMENT_NEEDED
@ -1642,7 +1642,7 @@ You must use a pointer to function type variable. Command ignored.", arg_name);
function. Since this doesn't actually involve executing a JSR/BSR
instruction, the return address must be set up by hand, either by
pushing onto the stack or copying into a return-address register
as appropriate. Formerly this has been done in PUSH_ARGUMENTS,
as appropriate. Formerly this has been done in PUSH_ARGUMENTS,
but that's overloading its functionality a bit, so I'm making it
explicit to do it here. */
sp = PUSH_RETURN_ADDRESS (real_pc, sp);
@ -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);
@ -1677,7 +1677,7 @@ You must use a pointer to function type variable. Command ignored.", arg_name);
it doesn't cost us anything but space and if the function is pcc
it will ignore this value, we will make that assumption.
Also note that on some machines (like the sparc) pcc uses a
Also note that on some machines (like the sparc) pcc uses a
convention like gcc's. */
if (struct_return)
@ -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))
{
@ -2270,7 +2270,7 @@ find_rt_vbase_offset (type, basetype, valaddr, offset, boffset_p, skip_p)
* virtual base entries. Offset is negative -- virtual base entries
* appear _before_ the address point of the virtual table. */
/* pai: FIXME -- 32x64 problem, if word = 8 bytes, change multiplier
/* pai: FIXME -- 32x64 problem, if word = 8 bytes, change multiplier
& use long type */
/* epstein : FIXME -- added param for overlay section. May not be correct */
@ -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;
}
@ -3161,7 +3203,7 @@ value_struct_elt_for_reference (domain, offset, curtype, name, intype)
* USING_ENC is the flag that distinguishes the two cases.
* If it is 1, then the offset is for the enclosing object,
* otherwise for the embedded object.
*
*
* This currently works only for RTTI information generated
* by the HP ANSI C++ compiler (aCC). g++ today (1997-06-10)
* does not appear to support RTTI. This function returns a
@ -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
{
@ -3522,10 +3564,10 @@ varying_to_slice (varray)
return value_slice (value_primitive_field (varray, 0, 1, vtype), 0, length);
}
/* Create a value for a FORTRAN complex number. Currently most of
the time values are coerced to COMPLEX*16 (i.e. a complex number
composed of 2 doubles. This really should be a smarter routine
that figures out precision inteligently as opposed to assuming
/* Create a value for a FORTRAN complex number. Currently most of
the time values are coerced to COMPLEX*16 (i.e. a complex number
composed of 2 doubles. This really should be a smarter routine
that figures out precision inteligently as opposed to assuming
doubles. FIXME: fmb */
value_ptr