* cp-demangle.c (CP_DYNAMIC_ARRAYS): Define if compiler supports
dynamic arrays.
(struct d_operator_info): Add len field.
(struct d_builtin_type_info): Add len and java_len fields.
(struct d_standard_sub_info): Add simple_len, full_len, and
set_last_name_len fields.
(struct d_comp): Add len field to s_string.
(struct d_info): Add send, did_subs, and expansion fields.
(d_append_string_constant): Define.
(d_append_string): Remove. Change all users to use
d_append_string_constant or d_append_buffer instead.
(d_make_sub): Add len parameter. Change all callers.
(d_name): Increase expansion when substituting std::.
(d_unqualified_name): Increase expansion for an operator.
(d_number): Don't use multiplication for negative numbers.
(d_identifier): Make sure there are enough characters in the
string for the specified length. Adjust expansion for an
anonymous namespace.
(d_operators): Initialize len field.
(d_special_name, d_ctor_dtor_name): Increase expansion.
(d_builtin_types): Initialize len and java_len fields.
(d_type): Increase expansion for a builtin type.
(d_cv_qualifiers): Increase expansion for each qualifier.
(d_bare_function_type): Decrease expansion when removing single
void parameter.
(d_template_param): Increment did_subs.
(d_expression): Increase expansion for an operator.
(d_expr_primary): Decrease expansion for a type we will print
specially.
(standard_subs): Initialize new fields.
(d_substitution): Increment did_subs when doing a normal
substitution. Increase expansion for a special substitution.
(d_print): Add estimate parameter. Change all callers.
(d_print_comp) [D_COMP_NAME]: Handle C++ case inline.
(d_print_comp) [D_COMP_BINARY]: Use length to avoid strcmp call.
(d_print_java_identifier): Rename from d_print_identifier. Handle
only Java case. Change caller.
(d_init_info): Change return type to void. Change all callers.
Initialize send, did_subs, and expansion fields. Do not
initialize comps and subs fields.
(d_demangle): Ifdef CP_DYNAMIC_ARRAYS, allocate comps and subs
arrays on stack. Make an estimate of the length of the demangled
name. Ifdef CP_DEMANGLE_DEBUG, print estimation failures.
(is_ctor_or_dtor): Ifdef CP_DYNAMIC_ARRAYS, allocate comps and
subs arrays on stack.
From-SVN: r74933
* cp-demangle.c (d_identifier): In Java mode, skip an optional '$'
after the identifier.
* testsuite/demangle-expected: Add test case.
From-SVN: r74885
Fix for PR c++/13447:
* cp-demangle.c (enum d_comp_type): Add D_COMP_LOCAL_NAME.
(d_dump, d_make_comp): Handle D_COMP_LOCAL_NAME.
(is_ctor_dtor_or_conversion): Handle D_COMP_LOCAL_NAME like
D_COMP_QUAL_NAME.
(is_ctor_or_dtor): Likewise.
(d_local_name): Use D_COMP_LOCAL_NAME rather than
D_COMP_QUAL_NAME.
(d_print_comp) [D_COMP_LOCAL_NAME]: New.
(d_prinT_comp) [D_COMP_TYPED_NAME]: If the left tree is
D_COMP_LOCAL_NAME, pull any qualifiers off its right subtree.
(d_print_mod_list): Handle D_COMP_LOCAL_NAME.
* testsuite/demangle-expected: Add two test cases.
* cp-demangle.c (d_print_function_type): Clear the global modifier
list when printing the modifiers, not just when printing the
function parameters.
* testsuite/demangle-expected: Add two test cases.
From-SVN: r74850
* cp-demangle.c (d_print_function_type): Print the function
parameters with no modifiers.
* testsuite/demangle-expected: Add test case.
From-SVN: r74652
* cp-demangle.c (d_demangle): If DMGL_PARAMS is not set, don't
expect that we've read the entire string.
(is_ctor_or_dtor): Don't expect that we've read the entire
string--reverse patch of 2003-11-29.
From-SVN: r74651
* cp-demangle.c (struct d_standard_sub_info): Define.
(d_substitution): Add prefix argument. Change all callers.
Rework handling of standard substitutions to print full name when
qualifying a constructor/destructor, or when DMGL_VERBOSE is set.
* testsuite/demangle-expected: Add test case.
Fix handling of negative literal constants:
* cp-demangle.c (enum d_comp_type): Add D_COMP_LITERAL_NEG.
(d_dump, d_make_comp): Handle D_COMP_LITERAL_NEG.
(d_expr_primary): Use D_COMP_LITERAL_NEG for a negative number.
(d_print_comp): Handle D_COMP_LITERAL_NEG.
* testsuite/demangle-expected: Add test case.
From-SVN: r74632
* cp-demangle.c (IS_UPPER, IS_LOWER): Define.
(d_last_char): Define new macro.
(d_make_name): Reject an empty name.
(d_prefix, d_unqualified_name, d_type): Use new IS_* macros.
(d_substitution, d_print_identifier): Likewise.
(d_print_comp) [D_COMP_OPERATOR]: Likewise.
(d_print_comp) [D_COMP_TEMPLATE]: Use new d_last_char macro.
(d_print_mod) Use new d_last_char macro.
(d_print_cast): Use new d_last_char macro.
(is_ctor_or_dtor): Don't leak memory.
Fix handling of member function modifiers:
* cp-demangle.c (enum d_comp_type): Add D_COMP_RESTRICT_THIS,
D_COMP_VOLATILE_THIS, and D_COMP_CONST_THIS.
(d_dump): Dump new d_comp_type values.
(d_make_comp): Accept new d_comp_type values.
(has_return_type): Only accept _THIS variants of qualifiers.
(d_encoding): Without DMGL_PARAMS, only remove _THIS variants of
qualifiers.
(d_cv_qualifiers): Add member_fn parameter. Change all callers.
(d_print_comp) [D_COMP_TYPED_NAME]: Rather than removing
qualifiers and printing them at the end, add _THIS qualifiers to
the modifier list.
(d_print_comp) [D_COMP_*_THIS]: New cases.
(d_print_comp) [D_COMP_PTRMEM_TYPE]: Remove special handling of
qualifiers.
(d_print_mod_list): Add suffix parameter. Change all callers.
Keep walking the list even if the current modifier has been
printed.
(d_print_mod): Handle new _THIS qualifiers.
(d_print_function_type): Handle new _THIS qualifiers when deciding
whether to print a parenthesis. Put a space before the
parenthesis in some cases. Call d_print_mod_list again at the
end, passing suffix as 1.
(is_ctor_or_dtor): Look for new _THIS qualifiers.
* testsuite/demangle-expected: Add test case.
Fix for PR gcc/13304:
* cp-demangle.c (d_print_comp) [D_COMP_TEMPLATE]: If the character
before the '<' is itself a '<', insert a space.
(d_print_cast): Likewise.
* testsuite/demangle-expected: Add test case.
Fix for PR gcc/13244:
* cp-demangle.c (d_print_comp) [D_COMP_BINARY]: Wrap an expression
which uses the '>' operator in an extra layer of parens.
* testsuite/demangle-expected: Add test case.
From-SVN: r74290
* floatformat.c: Include "config.h" and <string.h> if available.
(INFINITY, NAN): Define if not defined by <math.h>.
(floatformat_to_double): Handle NaN, infinity, and denormalized
numbers.
(floatformat_from_double): Likewise.
(ieee_test): In debugging code, use little endian rather than big
endian. Correct tests to handle NaN and to check correct sign of
zero. Omit m68k extended test.
(main): Add more debugging cases.
From-SVN: r74237
* cp-demangle.c (struct d_print_mod): Add templates field.
(d_make_builtin_type): Check for NULL type.
(d_make_extended_operator): Check for NULL name.
(d_make_ctor, d_make_dtor): Likewise.
(d_mangled_name): Add top_level parameter. Change all callers.
(d_encoding): If DMGL_PARAMS is not set, strip off initial
CV-qualifiers.
(d_type): Check some return values we rely on.
(d_bare_function_type, d_array_type): Likewise.
(d_pointer_to_member_type, d_template_args): Likewise.
(d_add_substitution): Fail if argument is NULL.
(d_print_resize): Check whether buf is NULL.
(d_print_comp): Save current templates list with each modifier.
Don't pass the modifier list down when printing a template.
(d_print_cast): Don't pass the modifier list down when printing a
template.
(d_print_mod_list): Temporarily set templates list while printing
a modifier.
(d_print_mod): Check that buf is not NULL before using it.
(d_print_function_type): Print parens if there is no modifier.
(d_init_info): Permit as many substitutions as there are
characters in the mangled name.
* testsuite/demangle-expected: Add two new test cases.
From-SVN: r73970
* cp-demangle.c (has_return_type): Skip qualifiers when checking
whether we have a template.
* testsuite/demangle-expected: Add four new tests.
From-SVN: r73819
* testsuite/demangle-expected: Minor changes to match output of
new demangler: adjust whitespace in four tests, and change order
of qualifiers in one test.
From-SVN: r73813
* cp-demangle.c (demangle_operator_name): Remove space before
"sizeof".
(demangle_type_ptr): Put qualifiers in the right place. Handle
qualifiers in pointer to member specially.
(demangle_type): Handle qualifiers for pointer or reference
specially. Handle function type.
(demangle_local_name): Save and restore caret around demangling of
initial encoding.
From-SVN: r73723
Jan Hubicka <jh@suse.cz>
* vasprintf.c (int_vasprintf): Pass va_list by value.
Use va_copy for copying va_list.
(vasprintf): Pass va_list by value.
From-SVN: r73098
* aclocal.m4: Include acx.m4 and no-executables.m4.
(libiberty_AC_FUNC_STRNCMP): Use AC_LIBOBJ.
(LIB_AC_PROG_CC): Remove.
* configure.in: Update AC_PREREQ to 2.57. Use GCC_NO_EXECUTABLES.
Use AC_PROG_CC and set ac_libiberty_warn_cflags instead of using
LIB_AC_PROG_CC. Use AC_LIBOBJ. Call AC_ISC_POSIX later, only if
performing link tests.
* configure: Regenerated.
From-SVN: r70860
2003-07-02 Danny Smith <dannysmith@users.source.forge.net>
* pex-win32.c (fix_argv): Ensure that the executable pathname
uses Win32 backslashes.
(pexecute): Cast away constness when assigning *errmsg_arg.
From-SVN: r68862
include:
* safe-ctype.h (HC_UNKNOWN, HC_ASCII, HC_EBCDIC): Rename to
HOST_CHARSET_UNKNOWN, HOST_CHARSET_ASCII, HOST_CHARSET_EBCDIC
respectively.
libiberty:
* safe-ctype.c: Use HOST_CHARSET_ASCII and HOST_CHARSET_EBCDIC,
not HC_ASCII and HC_EBCDIC.
Add documentation in form expected by gather-docs.
* hex.c: Use HOST_CHARSET, not hand-coded check of character set.
* Makefile.in, functions.texi: Regenerate.
gcc:
* config/i370/i370.c, config/i370/i370.h: Use HOST_CHARSET_ASCII
and HOST_CHARSET_EBCDIC, not HC_ASCII and HC_EBCDIC.
From-SVN: r68335
* configure.in: Add check for malloc.h needed by
m68k for function free().
* configure: Regenerated.
* config.in: Add HAVE_MALLOC_H.
* hashtab.c: include malloc.h were available for
free().
From-SVN: r68213
libiberty/ChangeLog:
2003-05-14 Jim Blandy <jimb@redhat.com>
* hex.c (_hex_value): Make this unsigned.
(hex_value): Update documentation for new return type. hex_value
now expands to an unsigned int expression, to avoid unexpected
sign extension when we store it in a bfd_vma, which is larger than
int on some platforms.
* functions.texi: Regenerated.
include/ChangeLog:
2003-05-14 Jim Blandy <jimb@redhat.com>
* libiberty.h (hex_value): Make the value an unsigned int, to
avoid unexpected sign-extension when cast to unsigned types larger
than int --- like bfd_vma, on some platforms.
(_hex_value): Update declaration.
From-SVN: r66840
* argv.c: Fix comments.
* calloc.c: Don't unnecessarily include "libiberty.h".
(bzero): Add prototype.
* floatformat.c: Include "ansidecl.h", rely on ANSI_PROTOTYPES.
* getcwd.c (getcwd): Use standard definition to avoid conflicts
with system headers.
* hashtab.c (htab_traverse): Delete unused variables.
* rename.c: Include "ansidecl.h".
(rename): Use standard definition to avoid conflicts with system
headers.
* strsignal.c: Rely on ANSI_PROTOTYPES.
* strstr.c: Check GNUC >= 2, not GNUC == 2.
* vfprintf.c: Include "ansidecl.h", rely on ANSI_PROTOTYPES.
* vprintf.c: Include "ansidecl.h" earlier, rely on
ANSI_PROTOTYPES.
* vsprintf.c: Include "ansidecl.h" earlier, rely on
ANSI_PROTOTYPES and possibly include <stdarg.h>.
* Makefile.in: Regenerate dependencies.
From-SVN: r65659
* hashtab.c (htab_expand): Compute the size of hashtable based
on the number of elements actually used.
(htab_traverse): Call htab_expand when table is too empty.
From-SVN: r64246
* cplus-dem.c (demangle_integral_value): Correction to reflect
patch of 2002-01-10 in order to also make negative multi-digits
without leading underscore work.
From-SVN: r64179
* configure.in: Check for sys/systemcfg.h and
_system_configuration.
* physmem.c: Add support for AIX. Tweek formatting as per
upstream coreutils beta.
From-SVN: r63287
* configure.in: Check for sys/sysctl.h and sysctl.
* physmem.c: Add support for *bsd and darwin.
* Makefile.in: Generate depedency for physmem.o.
Co-Authored-By: Geoffrey Keating <geoffk@apple.com>
Co-Authored-By: Richard Earnshaw <rearnsha@arm.com>
From-SVN: r63285
* Makefile.in (libiberty_topdir): New subst.
(mkinstalldirs): Redefine in terms of the above.
* configure.in: AC_SUBST it.
* configure: Regenerate.
From-SVN: r62155
libf2c:
2003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
* Makefile.in (FLAGS_TO_PASS): Also pass DESTDIR.
(install, uninstall): Prepend $(DESTDIR) to destination
paths in all (un)installation commands.
libiberty:
2003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
* Makefile.in (FLAGS_TO_PASS): Also pass DESTDIR.
libobjc:
2003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
* Makefile.in (FLAGS_TO_PASS): Also pass DESTDIR.
(install-libs, install-headers): Prepend $(DESTDIR) to
destination paths in all (un)installation commands.
libstdc++:
2003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
* include/Makefile.am (install-data-local): Prepend
$(DESTDIR) to destination paths in all (un)installation
commands. Use ${c_base_builddir} and ${std_builddir}
as destination subdirectories to achieve consistency with
preceding mkinstalldirs commands. No effect because both
variables contain "." only.
* include/Makefile.in: Regenerate.
From-SVN: r61082
* libiberty/cplus-dem.c (ada_demangle): Get rid of unneeded
variable and of strict-aliasing warning.
(grow_vect): Use char as first parameter.
From-SVN: r57866
gcc:
* Makefile.in: Remove all references to s-under and underscore.c.
* collect2.c, tlink.c: Change all uses of prepends_underscore
to look directly at USER_LABEL_PREFIX.
gcc/cp:
* Make-lang.in: Build cp/cxxfilt.o from $(srcdir)/cp/cxxfilt.c,
and c++filt from cxxfilt.o + version.o + $(LIBDEPS).
* cxxfilt.c: New file: split from libiberty/cplus-dem.c, with
minor adjustments (use version_string, eliminate yet another
duplicate of xmalloc)
libiberty:
* cplus-dem.c: Code code under #ifdef MAIN moved to gcc/cp/cxxfilt.c.
* testsuite/Makefile.in: Adjust for test-demangle.
* testsuite/regress-demangle: Deleted.
* testsuite/test-demangle.c: New file.
* testsuite/demangle-expected: Change \$ to $ throughout, now that
this file is not being read by a shell script.
From-SVN: r57037
* regex.c (re_error_msgid): Just use a simple array of strings.
(re_compile_pattern): Compensate.
(re_comp): Likewise.
(re_comp): Likewise.
(regerror): Likewise.
From-SVN: r56106
PR c++/7112
* g++.dg/template/sizeof2.C: New test.
PR c++/7112
* mangle.c (write_expression): Add mangling for sizeof when
applied to a type.
* operators.def: Remove stale comment.
* cp-demangle.c (demangle_operator_name): Add type_arg parameter.
Set it for the "st" operator.
(demangle_expression): Handle expressions with types as arguments.
From-SVN: r55169
* configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
script entry, and set LD to it when configuring multilibs.
* configure: Rebuilt.
From-SVN: r53278
* configure.in (AC_TYPE_PID_T): Use it.
* configure: Regenerated.
* getruntime.c: Include <sys/types.h>.
* waitpid.c: Likewise. Use pid_t, not int, as the type of "pid".
From-SVN: r53264
2002-04-01 Phil Edwards <pme@gcc.gnu.org>
* cp-demangle.c (__cxa_demangle): Also protect with IN_GLIBCPP_V3.
(is_gnu_v3_mangled_ctor, is_gnu_v3_mangled_ctor): Conditionally
not compile if IN_GLIBCPP_V3 defined.
* dyn-string.c: Also allow IN_GLIBCPP_V3 to change allocation scheme.
From-SVN: r51708
* splay-tree.c (splay_tree_xmalloc_allocate,
splay_tree_xmalloc_deallocate): Use K&R-style definitions, not
prototyped definitions. Mark `data' arguments as unused.
From-SVN: r50384
include:
Allow the user to specify functions for allocating memory for
splay tree roots and nodes.
* splay-tree.h (splay_tree_allocate_fn, splay_tree_deallocate_fn):
New types.
(splay_tree): New fields: `allocate', `deallocate', and
`allocate_data'.
(splay_tree_new_with_allocator): New function declaration.
libiberty:
* splay-tree.c (splay_tree_xmalloc_allocate,
splay_tree_xmalloc_deallocate): New functions.
(splay_tree_new): Call splay_tree_new_with_allocator, passing the
above functions and a dummy data pointer.
(splay_tree_new_with_allocator): New function.
(splay_tree_delete_helper, splay_tree_delete, splay_tree_insert,
splay_tree_remove): Use the splay tree's allocation and
deallocation functions.
From-SVN: r49968
* testsuite/demangle-expected: Add test case for infinite loop in
demangler.
* cplus-dem.c (demangle_arm_hp_template): Stop trying to demangle
if do_type() doesn't make any progress --- prevents an infinite
loop.
From-SVN: r49875
2002-02-18 Carlo Wood <carlo@gnu.org>
PR c++/5390
* cplus-dem.c (demangle_integral_value): Accept multi-digit
numbers that do not start with an underscore; This is needed
for integer template parameters. This doesn't break anything
because multi-digit numbers are never followed by a digit.
* testsuite/demangle-expected: Corrected all mangled test
cases with multi-digit template parameters: g++ 2.95.x does
not generate underscores around these parameters.
From-SVN: r49851
2002-02-02 H.J. Lu (hjl@gnu.org)
* cp-demangle.c (cp_demangle_type): Do not protect with
IN_LIBGCC2.
(cplus_demangle_v3_all): New.
(cplus_demangle_v3): Call cplus_demangle_v3_all.
(cplus_demangle_v3_type): Call cplus_demangle_v3_all.
* cplus-dem.c (cplus_demangle_v3_p): New function pointer.
Initialized to cplus_demangle_v3.
(cplus_demangle_with_style): Call cplus_demangle_v3_p instead
of cplus_demangle_v3.
(main): Set cplus_demangle_v3_p to cplus_demangle_v3_type for
command line symbol.
* testsuite/regress-demangle: Pass the mangled name at the
command line.
From-SVN: r49456
2002-01-30 Phil Edwards <pme@gcc.gnu.org>
* cp-demangle.c (cp_demangle_type): Do not protect with IN_LIBGCC2.
(cplus_demangle_v3): Mimic __cxa_demangle and fall back on
cp_demangle_type.
* testsuite/demangle-expected: New gnu-v3 test.
From-SVN: r49353
* Makefile.in (TESTLIB): New. This library is for future
testsuites.
(CFILES, REQUIRED_OFILES, CONFIGURED_OFILES): Re-alphabetize,
break down by letter.
(REQUIRED_OFILES): List long-to-compile files first.
(maint-deps): New, target for updating dependencies.
(dependencies): Update.
* maint-tool: Add dependency-generating option.
* configure.in: Check for _doprnt even if we're not providing it.
* configure: Regenerate.
* _doprnt.c: Modifications to allow compiling on any platform.
* copysign.c: Likewise.
* putenv.c: Likewise.
* setenv.c: Likewise.
* vsprintf.c: Likewise.
From-SVN: r49090
* libiberty/mkstemps.c (mkstemps): On VMS, open temp file with option
that causes it to be deleted when closed.
* gcc/gcc.c (delete_if_ordinary): Backout previous change.
From-SVN: r48872
* gcc/configure.in: Hardcode that vfork works on VMS host.
* gcc/configure: Regenerated.
* libiberty/configure.in: Hardcode that vfork works on VMS host.
* libiberty/configure: Regenerated.
From-SVN: r47869
2001-11-27 DJ Delorie <dj@redhat.com>
Zack Weinberg <zack@codesourcery.com>
When build != host, create libiberty for the build machine.
* Makefile.in (TARGET_CONFIGARGS, BUILD_CONFIGARGS): Replace
CONFIG_ARGUMENTS.
(ALL_BUILD_MODULES_LIST, BUILD_CONFIGDIRS, BUILD_SUBDIR):
New variables.
(ALL_BUILD_MODULES, CONFIGURE_BUILD_MODULES): New variables
and rules.
(all.normal): Depend on ALL_BUILD_MODULES.
(CONFIGURE_TARGET_MODULES rule): Use TARGET_CONFIGARGS.
(all-build-libiberty): Depend on configure-build-libiberty.
* configure: Calculate and substitute proper value for
ALL_BUILD_MODULES.
* configure.in: Create the build subdirectory.
Calculate and substitute TARGET_CONFIGARGS (formerly
CONFIG_ARGUMENTS); also BUILD_SUBDIR and BUILD_CONFIGARGS (new).
libiberty:
2001-11-27 Zack Weinberg <zack@codesourcery.com>
* _doprnt.c: Moved here from gcc/doprint.c. Adjust to build
in libiberty context. Fix typo in leading comment.
* configure.in: Fix various AC_DEFINEs so autoheader works.
If any of vprintf, vsprintf, vfprintf is missing from libc,
then AC_REPLACE_FUNCS(_doprnt).
From-SVN: r47393
* Makefile.in (stamp-h): Depend on Makefile for proper
serialization.
(*-subdir): Depend on config.h for proper serialization.
Co-Authored-By: Daniel Jacobowitz <drow@mvista.com>
From-SVN: r47354
* config.in (HAVE_UINTPTR_T): Provide autoconf stub.
* configure.in (HAVE_UINTPTR_T): Test for system defining
uintptr_t and define HAVE_UINTPTR_T appropriately.
* regex.c (uintptr_t): Do not provide a definition if the
system provided one.
From-SVN: r47068
2001-11-12 Jim Meyering <meyering@lucent.com>
* obstack.c (_): Honor the setting of ENABLE_NLS. Otherwise,
this code would end up calling gettext even in packages built
with --disable-nls.
* getopt.c (_): Likewise.
* regex.c (_): Likewise.
From-SVN: r46975
* configure.in: Don't use in-tree texinfo, because libiberty must
be built before it. Check for makeinfo version 4 or higher.
* functions.texi: Regenerate.
From-SVN: r45846
include:
* libiberty.h (reconcat): New function.
libiberty:
* concat.c (reconcat): New function.
gcc:
* c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC. Avoid
leak by passing malloc'ed pointer to reconcat, not concat.
From-SVN: r45789
Merge from libc:
* regex.c (wcs_regex_compile): Use appropriate string
to compare with collating element.
Fix the padding for the alignment.
From-SVN: r44838
Merge from glibc:
* regex.c: Declare wcs functions only if compiling with
MBS_SUPPORT.
Don't use #elif for traditional C.
* regex.c: Revamp memory allocation for WCHAR functions to
not use too much stack.
From-SVN: r44471
* cp-demangle.c (demangle_v3_with_details,
is_gnu_v3_mangled_ctor, is_gnu_v3_mangled_dtor): Use K+R style
function definition.
* ternary.c: Use K+R style function definitions. Use PTR, not
void *. Make arguments constant where possible.
* demangle.h: Use PARAMS for all prototypes.
* ternary.h: Use PARAMS for all prototypes. Use PTR, not void *.
Make arguments constant where possible.
From-SVN: r41910
2001-04-15 Daniel Berlin <dan@cgsoftware.com>
* ternary.h: New file - Ternary search tree header.
2001-04-15 Daniel Berlin <dan@cgsoftware.com>
* ternary.c: New file - Ternary search tree implementation.
* Makefile.in: Add ternary.o, and ternary.c dependencies.
From-SVN: r41380
* mangle.c (write_discriminator): Use `_0' for discriminator 1,
not `_'.
* cp-demangle.c (demangle_discriminator): `_0' is discriminator #1,
`_' not followed by a digit is invalid.
From-SVN: r40795
* cp-demangle.c (struct demangling_def): New fields:
is_constructor and is_destructor.
(demangling_new): Initialize them.
(demangle_ctor_dtor_name): Set them, if we detect a constructor
or destructor.
(demangle_v3_with_details, is_gnu_v3_mangled_ctor,
is_gnu_v3_mangled_dtor): New functions.
From-SVN: r40713
* choose-temp.c: Split off make_temp_file, and the code
duplicated between it and choose_temp_base, into...
* make-temp-file.c: ... here; new file.
* Makefile.in (CFILES): Add make-temp-file.c.
(REQUIRED_OFILES): Add make-temp-file.o.
From-SVN: r40683
* libiberty/lbasename.c: New file.
* libiberty/Makefile.in: Update for lbasename.
* include/libiberty.h: Add lbasename.
Co-Authored-By: John David Anglin <dave@hiauly1.hia.nrc.ca>
From-SVN: r40363
* cp-demangle.c (NAMESPACE_SEPARATOR): New define.
(struct demangling_def): Add `style' field.
(demangling_new): New parameter `style'. Set it in demangling_t.
(demangle_prefix): Use NAMESPACE_SEPARATOR.
(demangle_type_ptr): Don't emit pointer symbol if doing Java output.
(cp_demangle): New parameter `style'. Pass it to demangling_new().
(main): Call cp_demangle with extra parameter.
(java_demangle_v3): New function.
(java_builtin_type_names): New. Table of primitive type names used
for Java demangling.
(demangle_builtin_type): Look up in java_builtin_type_names if doing
Java output.
* cplus-dem.c (cplus_demangle): Use java_demangle_v3 to do Java
demangling.
(long_options): Remove obsolete `java' option.
(main): Remove explicit handling of `java' option. Instead, pass style
parameter in cplus_demangle flags as gdb does.
* testsuite/demangle.expected: Add some Java test cases.
From-SVN: r39399
* fnmatch.c: Make the note about the origins of this file more
accurate, at least until we can sync with glibc.
* getopt.c: Ditto.
* getopt1.c: Ditto.
* md5.c: Ditto.
* obstack.c: Ditto.
From-SVN: r38550
include:
* safe-ctype.h: New file.
libiberty:
* safe-ctype.c: New file.
* Makefile.in (CFILES): Add safe-ctype.c.
(REQUIRED_OFILES): Add safe-ctype.o.
* argv.c: Define ISBLANK and use it, not isspace.
* basename.c, cplus-dem.c, fnmatch.c, pexecute.c, strtod.c,
strtol.c, strtoul.c: Include safe-ctype.h, not ctype.h. Use
uppercase ctype macros. Don't test ISUPPER(c)/ISLOWER(c)
before calling TOLOWER(c)/TOUPPER(c).
gcc:
* Makefile.in (HOST_RTL): Add safe-ctype.o.
(safe-ctype.o): New rule.
* system.h: Include safe-ctype.h, not ctype.h. No need to
wrap ctype macros.
* cpphash.h: Zap IStable and related macros. Define is_* in
terms of safe-ctype.h macros.
* cppinit.c: Delete the IStable and all related code.
* tradcpp.c: Delete is_idchar, is_idstart, is_hor_space, and
is_space arrays. Delete initialize_char_syntax. Change all
references to the above arrays to use macros instead.
* tradcpp.h: Define is_idchar, is_idstart, is_space, and
is_nvspace in terms of safe_ctype.h's macros.
* tradcif.y: is_idchar, is_idstart are macros not arrays.
* config/i370/i370.c, config/winnt/dirent.c,
config/winnt/fixinc-nt.c, config/winnt/ld.c:
Use uppercase ctype macros. If we included ctype.h,
include safe-ctype.h instead.
* fixinc/fixfixes.c: Use uppercase ctype macros. Don't test
ISLOWER(c) before calling TOUPPER(c).
* fixinc/fixincl.c (extract_quoted_files): Simplify out some gunk.
* fixinc/gnu-regex.c: Include safe-ctype.h, not ctype.h. No need to
wrap ctype macros. Don't test ISUPPER(x) before calling TOLOWER(x).
gcc/ch:
* lex.c: Don't bother checking whether ISUPPER(c) before
calling TOLOWER(c). Don't bother checking whether isascii(c)
before testing ISSPACE(c); ISSPACE(c) includes '\n'.
gcc/f:
* Make-lang.in: Link f/fini with safe-ctype.o.
* bad.c: Don't test ISUPPER(c) || ISLOWER(c) before calling TOUPPER(c).
* com.c: Use TOUPPER, not ffesrc_toupper.
* fini.c: Don't test ISALPHA(c) before calling TOUPPER(c)/TOLOWER(c).
* intrin.c: Don't test IN_CTYPE_DOMAIN(c).
* src.c: Delete ffesrc_toupper_ and ffesrc_tolower_ and their
initializing code; use TOUPPER and TOLOWER instead of
ffesrc_toupper and ffesrc_tolower.
* src.h: Don't declare ffesrc_toupper_ or ffesrc_tolower_.
Don't define ffesrc_toupper or ffesrc_tolower.
gcc/java:
* jvgenmain.c: Use ISPRINT not isascii.
From-SVN: r38124
* cp-demangle.c: s/new_abi/v3/.
* cplus-dem.c: Likewise.
(current_demangling_style): Now auto_demangling.
(cplus_demangle): Try v3 demangling if AUTO_DEMANGLING.
(main): Use standard symbol chars for auto_demangling.
From-SVN: r38002
gcc:
* Makefile.in, config.gcc, configure.in: Expunge remaining
traces of facility for running MD files through C preprocessor.
libiberty:
* aclocal.m4 (LIB_AC_PROG_CC): Moved here from configure.in.
(AC_DEFINE_NOAUTOHEADER): New - work around bug in autoheader.
* configure.in: Call AC_C_INLINE and AC_C_CONST. Use three
argument form of AC_DEFINE in dummy definitions block. Use
AC_DEFINE_NOAUTOHEADER for real definitions of things defined
in dummy block. Preload cache variables instead of bypassing
tests, where possible.
* acconfig.h: Removed.
* xmalloc.c (xmalloc_failed): New function, does error
reporting on failed allocation.
(xmalloc, xcalloc, xrealloc): Use it.
* libiberty.h: Move #includes to top. Prototype xmalloc_failed.
From-SVN: r37650
* hashtab.c (htab_expand): Change to return int. Use calloc or
xcalloc depending on htab->return_allocation_failure. Return zero
if calloc fails.
(htab_create): Update comment to cover memory allocation.
(htab_try_create): New.
(htab_find_slot_with_hash): Return NULL if htab_expand fails.
Update comment to cover this.
From-SVN: r37247