follow the consistent pattern of struct work_stuff pointer first,
followed by pointer into string being demangled, followed by
pointer to the string where the result is being stored, followed
by other args. Also generally replace most variables of name
"type" with "mangled" for consistency. They all pointed to the
same string but half were one name and half the other.
* cplus-dem.c (LONGERNAMES): Remove #ifndef's.
* cplus-dem.c (demangle_qualified): Rewrite to clean up and allow
use whenever a qualified name is being demangled.
* cplus-dem.c (do_type): Qualified names are treated similarly
to fundamental types, not as modifiers of fundamental types.
use throughout, in place of compile time constant CPLUS_MARKER.
* cplus-dem.c (ARM_VTABLE_STRING, ARM_VTABLE_STRLEN): Add.
* cplus-dem.c (cfront_special): New function, as suggested
by pfieland@stratus.com.
* cplus-dem.c (forget_types): New function.
* cplus-dem.c (cplus_demangle): Call gnu_special, moved from
demangle_prefix().
* cplus-dem.c (mop_up): Call forget_types().
* cplus-dem.c (AUTO_DEMANGLING, GNU_DEMANGLING, LUCID_DEMANGLING):
Use throughout, instead of checking current_demangling_style.
* cplus-dem.c (demangle_signature): When finding an explicit
start of function args, forget all remembered types for
lucid/cfront style demangling.
* cplus-dem.c (demangle_prefix): In a sequence of two or more
underbar characters, use last pair as the delimiter. Hoist
gnu_special() call up to cplus_demangle(). Call cfront_special()
when appropriate.
* cplus-dem.c (cplus_special): Fix virtual table name demangling
for inherited classes.
* cplus-dem.c (demangle_args): Document quirks of numbered
references to previously seen types.
* dbxread.c (read_ofile_symtab, process_one_symbol):
Use AUTO_DEMANGLING rather than explicitly checking
current_demangling_style.
* demangle.h: Add some comments.
* demangle.h (AUTO_DEMANGLING, GNU_DEMANGLING, LUCID_DEMANGLING,
CFRONT_DEMANGLING): New macros.
* dwarfread.c (LCC_PRODUCER): Remove trailing space, which is
not found in the actual producer string produced by lcc.
* dwarfread.c (handle_producer): Use AUTO_DEMANGLING rather
than explicitly checking current_demangling_style.
demangling style for C++. Defaults to "auto".
* Makefile.in (DEMANGLE_OPTS): Use DEMANGLING_STYLE.
* Makefile.in (SFILES_MAINDIR): Add demangle.c
* Makefile.in (OBS): Add demangle.o
* cplus-dem.c (GNU_DEMANGLING, ARM_DEMANGLING, LUCID_DEMANGLING):
Remove compile time decisions about demangling style and replace
with runtime decisions using current_demangling_style.
* cplus-dem.c (main): Expand code included during building of
standalone demangler to recognize demangling style options.
* dbxread.c (demangle.h): Include.
* dbxread.c (read_ofile_symtab, process_one_symbol): Set GNU C++
demangling style if processing g++ code and current demangling style
is auto (Note: this feature currently disabled.)
* demangle.c: New file, generic demangling control.
* demangle.h (demangling_styles): New enumeration to select one
of several demangling styles. Also define string names for each
style.
* demangle.h (set_demangling_style): Add prototype.
* dwarfread.c (demangle.h): Include.
* dwarfread.c (GPLUS_PRODUCER, LCC_PRODUCER, CFRONT_PRODUCER):
New producer string prefixes to recognize.
* dwarfread.c (handle_producer): Consolidate actions for specific
producers. Set demangling style based on producer string if
current style is auto. (Note: this feature currently disabled.)
* config/ncr3000.mt (DEMANGLE_OPTS): Remove.
* cplus-dem.c (demangle_args): Validate index for previously
seen type to guard against bogus values from malformed manglings.
* valops.c (value_struct_elt_for_reference): Guard against
blindly using NULL return value from lookup_symbol.
symtab.h, tm-i386v4.h, valprint.c, values.c: Lint.
* breakpoint.c, c-exp.y, coffread.c, command.c, environ.c, eval.c,
findvar.c, infcmd.c, infptrace.c, infrun.c, m2-exp.y, parse.c,
putenv.c, solib.c, sparc-xdep.c, symtab.c, tm-i386v.h, tm-sparc.h,
utils.c, valarith.c, valops.c, valprint.c, values.c:
Replace bcopy() use with memcpy(), which is more standard and can
take advantage of gcc's builtin functions for increased performance.
* breakpoint.c, buildsym.c, coffread.c, dbxread.c, i386-tdep.c,
ieee-float.c, infcmd.c, sparc-tdep.c, stack.c, symtab.c, symtab.h,
target.c, values.c:
Replace bzero() use with memset(), which is more standard and can
take advantage of gcc's builtin functions for increased performance.
* i386-tdep.c, main.c, valprint.c:
Replace bcmp() use with memcmp(), which is more standard and can
take advantage of gcc's builtin functions for increased performance.
* symtab.c (decode_line_1): Until C++ support stabilizes, when
C++ lookups fail, print possibly helpful hint about completion.
* cplus-dem.c (demangle_signature): Fix ARM style demangling
for static data members.
* dbxread.c (dbx_psymtab_to_symtab_1): Fix prototype.
* config/ncr3000.mh (INSTALL): Don't use /usr/ucb/install,
it's broken on ncr3000's.
Change 'modifier' to char from unsigned char. Cast single use
that needs to be unsigned char.
* symtab.h (SYMBOL_BASEREG_VALID): Explain disabling.
* utils.c (strdup_demangled): Add function.
* defs.h (strdup_demangled): Add prototype.
* stack.c (return_command): Demangle C++ function names for query.
* infcmd.c (jump_command): Demangle C++ function names for query.
* cplus-dem.c (consume_count): New function and prototype.
* cplus-dem.c (demangle_class, gnu_special, demangle_func_type,
do_type): Replace conversion code with consume_count().
* cplus-dem.c (gnu_special): Fix demangled of static members.
* source.c (list_command): Print demangled function names
when appropriate. Fix supplied by Peter Schauer.
* defs.h: if xm.h doesn't define FOPEN_RB, include "fopen-same.h",
allowing hosts with different text and binary file formats to
work.
* coffread.c (read_coff_symtab): changed calling convention and
operation - now it opens its own file with FOPEN_RB rather than
duping and fdopening the provided handle.
* dbxread.c, cplus-dem.c: #include mangling.
* exec.c: If O_BINARY isn't defined, set it to 0, call openp for
binary files oring in the right bit.
* utils.c, terminal.h, inflow.c: hackery because dos doesn't have terminals.
* remote-hms.c: cleanup to use the new remote serial stuff
* serial.h, ser-termios.c, ser-go32.c: newfiles to provide host
independent remote terminal I/O.
* remote.c: if DONT_USE_REMOTE is defined, then don't use it.
* source.c (openp): fix off by one problem removing / - can now
open a source file in the root directory with DOS.
* values.c (value_as_pointer): remove bogus address bits from
long. (unpack_long): unpack into unsigned long/short if pointer.
* Makefile.in (DEMANGLE_OPTS): Remove obsolete -Dnounderscore
* Makefile.in (demangle): New target to create standalone
demangler with same code and options as internal demangler.
* cplus-dem.c: Massive restructuring, rewriting, cleanups, etc
to support ARM style and Lucid style demangling, improve
maintainability, fix several demangling bugs. More changes
to follow.
* defs.h (strstr): Add ANSI compatible prototype.
* valprint.c (type_print_1): Demangle using ansi option.
* config/ncr3000.mt (DEMANGLE_OPTS): Remove -Dnounderscore.
* objfiles.c (free_objfile): Only try to unmap files when
reusable objfiles are supported.
* valprint.c (type_print_varspec_suffix): Add parameter that
specifies if C++ demangling included function arguments. Use
it to suppress printing extra pair of ()'s.
* valprint.c (type_print_1): Fix problem with printing demangled
C++ function types where demangled type includes the function
args.
Allows selection of C++ demangler to be a configuration option
until multiple demanglers are supported.
* demangle.h: New include file for extended demangler support.
* breakpoint.c, gdbtypes.c, printcmd.c, stack.c, symtab.c,
utils.c, valprint.c: Include "demangle.h" and change all calls
to cplus_demangle() or fputs_demangled() to use individual
demangling options.
* valprint.c (type_print_1): Change options to cplus_demangle
to print demangled function args. Still broken, but now less so.
* cplus-dem.c: Include demangle.h, reorganize and update some
comments to reflect reality.
* cplus-dem.c (cplus_demangle, cplus_mangle_opname): Change
second arg from fixed integer to bit based multiple options.
* cplus-dem.c (optable): Reformat and replace ansi members with
bit based options.
* cplus-dem.c (do_type): Fix bug with parsing missing return type.
* All GDB files that #include defs.h: Removed stdio.h.
(defs.h): #include stdio.h.
This has been tested by building GDBs for all targets hosted on Sun4.
None of the build problems were related to stdio.h inclusion. (n.b.
many configurations don't build for other reasons.)
to make prototypes for all functions declared here.
* cplus-dem.c: Avoid declaring xmalloc and xrealloc.
* c-exp.y: Rename SIGNED, OR, and AND to avoid conflict.
* environ.c: Include <stdio.h> before defs.h. Minor cleanup.
* ieee-float.h: Use PARAMS for prototypes; make some params const.
* ieee-float.c, valarith.c: Include <stdio.h>. Lint. b*=>mem*.
* m2-exp.y: Remove unused CONST; Rename OR and AND.
* utils.c: Avoid declaring malloc and realloc. Lint.
(request_quit): Accept signal-number parameter.
* cplus-dem.c: Move CPLUS_MARKER define to after defs.h.
* infptrace.c (PT_WRITE_D, PT_READ_D): Use correct values.
(This still doesn't seem to make MIPS bkpts work.)
* mipsread.c: Remove dup "Reading symbol data..." msg.
(symbol_file_command, add_file_command): Remove, obsol.
* printcmd.c (ptype_command): Say "an enum" rather than "a enum".
Wrap output appropriately.
* stack.c (locals_info, catch_info, args_info): Check
selected_frame rather than target_has_stack or coredumping.
* valprint.c (type_print_varspec_suffix): Wrap "ptype" output of
enums appropriately.