OSDN Git Service

* cp-demangle.c (__cxa_demangle): Pass DMGL_PARAMS to d_demangle.
[pf3gnuchains/gcc-fork.git] / libiberty / ChangeLog
index cc5699f..e21c34f 100644 (file)
@@ -1,3 +1,360 @@
+2004-02-24  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * cp-demangle.c (__cxa_demangle): Pass DMGL_PARAMS to d_demangle.
+
+       * cp-demangle.c (d_print_comp) [RESTRICT, VOLATILE, CONST]: Don't
+       push more than one of the same CV-qualifier on the top of the
+       stack.
+       (d_print_comp) [ARRAY_TYPE]: If the array itself is CV-qualified,
+       move the CV-qualifiers to apply to the element type instead.
+       (d_print_array_type): When checking the modifiers, keep looking
+       past ones which have been printed already.
+       * testsuite/demangle-expected: Add three test cases.
+
+2004-02-23  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * cp-demangle.c (__cxa_demangle): Adjust last patch to handle
+       empty string correctly.
+
+       * cp-demangle.c (__cxa_demangle): It is not an error if status is
+       not NULL.  It is an error if the mangled name is the same as a
+       built-in type name.
+       (main): If IN_GLIBCPP_V3 is defined, test __cxa_demangle rather
+       than cplus_demangle_v3.
+
+       * dyn-string.c: Remove test of IN_LIBGCC2 and IN_GLIBCPP_V3 and
+       the associated #define of RETURN_ON_ALLOCATION_FAILURE.
+
+2004-02-16  Matt Kraai  <kraai@alumni.cmu.edu>
+
+       * regex.c: Include <ansidecl.h>.
+       (regcomp): Cast i to int.
+       (regerror): Add ATTRIBUTE_UNUSED to parameter preg.
+
+2004-01-25  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * configure.ac: Add m4_pattern_allow(LIBOBJS).
+       * configure: Regenerate.
+
+2004-01-22  DJ Delorie  <dj@redhat.com>
+
+       * Makefile.in: Convert to ./ throughout.  Rebuild dependencies
+       with explicit build rules.
+       (VPATH): Remove.
+       (.c.o): Poison.
+       * configure.ac (pexecute, LIBOBJS): Add ./ .
+       * maint-tool: Build dependencies with explicit rules.
+
+2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * strdup.c (strdup): Constify the argument.
+
+2004-01-14  Loren J. Rittle  <ljrittle@acm.org>
+
+       * Makefile.in (distclean): Remove config.cache.
+
+2004-01-13  Daniel Jacobowitz  <drow@mvista.com>
+
+       * cp-demangle.c (d_make_comp): DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE
+       takes two parameters.
+       * cp-demint.c (cplus_demangle_fill_component): Likewise.
+
+2004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * cp-demangle.c: Include "cp-demangle.h".  If IN_GLIBCPP_V3 is
+       defined, rename some functions which are to become static via
+       #define.
+       (CP_STATIC_IF_GLIBCPP_V3): Define.
+       (struct d_operator_info): Move definition to cp-demangle.h, and
+       rename to demangle_operator_info.  Change all uses.
+       (enum d_builtin_type_print): Move definition to cp-demangle.h.
+       (struct d_builtin_type_info): Move definition to cp-demangle.h,
+       and rename to demangle_builtin_type_info.  Change all uses.
+       (enum d_comp_type): Move definition to include/demangle.h, and
+       rename to demangle_component_type, and change all enums to start
+       with DEMANGLE_COMPONENT_ instead of D_.  Change all uses.
+       (struct d_comp): Move definition to include/demangle.h, and rename
+       to demangle_component.  Change all uses.
+       (struct d_info): Move definition to cp-demangle.h.
+       (cplus_demangle_fill_name): New function.
+       (cplus_demangle_fill_extended_operator): New function.
+       (cplus_demangle_fill_ctor): New function.
+       (cplus_demangle_fill_dtor): New function.
+       (d_make_empty): Remove type parameter.  Change all callers.
+       (d_make_name): Use cplus_demangle_fill_name.
+       (d_make_extended_operator): Use
+       cplus_demangle_fill_extended_operator.
+       (d_make_ctor): Use cplus_demangle_fill_ctor.
+       (d_make_dtor): Use cplus_demangle_fill_dtor.
+       (cplus_demangle_mangled_name): Rename from d_mangled_name.  Make
+       non-static by default.  Change all callers.
+       (cplus_demangle_operators): Rename from d_operators.  Change all
+       uses.  Make non-static by default.  Add sentinel at end of array.
+       (d_operator_name): Adjust initialization of high for new sentinel
+       in cplus_demangle_operators.
+       (cplus_demangle_builtin_types): Rename from d_builtin_types.
+       Change all uses.  Make non-static by default.  Change initializer
+       to use D_BUILTIN_TYPE_COUNT instead of magic number 26.
+       (cplus_demangle_type): Rename from d_type.  Make non-static by
+       default.  Change all callers.
+       (cplus_demangle_init_info): Rename from d_init_info.  Make
+       non-static by default.  Change all callers.
+       * cp-demangle.h: New file.
+       * cp-demint.c: New file.
+       * Makefile.in: Rebuild dependencies.
+       (CFILES): Add cp-demint.c.
+       (REQUIRED_OFILES): Add cp-demint.o.
+
+2004-01-09  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * configure.in:  Rename file to ...
+       * configure.ac:  ... this.
+       * Makefile.in: Update a comment for above change.
+       * README: Likewise.
+       * config.in: Regenerate.
+
+2004-01-02  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * cp-demangle.c (d_encoding): When DMGL_PARAMS is not set, strip
+       CV-qualifiers from D_COMP_LOCAL_NAME right subtree.
+       * cplus-dem.c (demangle_arm_hp_template): Set DMGL_PARAMS when
+       demangling template parameters.
+       * testsuite/test-demangle.c (fail): New static function.
+       (main): Support new options in input file: --no-params,
+       --is-v3-ctor, and --is-v3-dtor.
+       * testsuite/demangle-expected: Add --no-params to most tests, and
+       add the correct result when parameters are not demangled.  Add
+       some simple tests for V3 constructor/destructor recognition.
+
+2003-12-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * cp-demangle.c (is_ctor_or_dtor): Fix error in last change.
+
+2003-12-22  Daniel Jacobowitz  <drow@mvista.com>
+
+       PR debug/13272
+       * Makefile.in (lbasename.o): Depend on filenames.h.
+       * lbasename.c: Include "filenames.h" instead of defining
+       its macros locally.
+
+2003-12-22  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * 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.
+
+2003-12-20  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * cp-demangle.c (d_identifier): In Java mode, skip an optional '$'
+       after the identifier.
+       * testsuite/demangle-expected: Add test case.
+
+2003-12-19  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       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.
+
+2003-12-15  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * cp-demangle.c (d_print_function_type): Print the function
+       parameters with no modifiers.
+       * testsuite/demangle-expected: Add test case.
+
+       * 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.
+
+2003-12-15  Brendan Kehoe  <brendan@zen.org>
+
+       * libiberty/Makefile.in (floatformat.o): Add dependency on
+       config.h to accompany change of 2003-12-03.
+
+2003-12-15  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       Fix handling of constructor/destructor of standard substitution:
+       * 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.
+
+2003-12-04  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * 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.
+
+2003-12-03  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * 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.
+
+2003-11-29  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * cp-demangle.c (d_demangle): Only return success if we consumed
+       the entire demangled string.
+       (is_ctor_or_dtor): Likewise.
+
+       * testsuite/demangle-expected: Revert one part of 2003-06-26 patch
+       to restore expected result of EDG test case to original expected
+       result.
+
+2003-11-26  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * 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.
+
+2003-11-25  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * cp-demangle.c (java_demangle_v3): Pass DMGL_PARAMS to
+       d_demangle.
+
+2003-11-22  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * cp-demangle.c (d_encoding): Add top_level parameter.  Change all
+       callers.
+       (print_usage): Display new -p option.
+       (long_options): Add --no-params.
+       (main): Accept and handle -p.
+
 2003-11-21  Ian Lance Taylor  <ian@wasabisystems.com>
 
        * cp-demangle.c (has_return_type): Skip qualifiers when checking