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,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.

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

View File

@ -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)

View File

@ -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

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),
@ -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
{