* cp-demangle.c (CP_DYNAMIC_ARRAYS): Define if compiler supports
commit2c0843dba3f79033e044c2ead84f411bd54bcdbc
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 Dec 2003 15:45:12 +0000 (22 15:45 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 Dec 2003 15:45:12 +0000 (22 15:45 +0000)
tree1430188ec40fbbf7da5a3ce4bbd32be29adb13e8
parent22831f13fa47bc74d80462cd0fc5bdb904dc3679
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74933 138bc75d-0d04-0410-961f-82ee72b054a4
libiberty/ChangeLog
libiberty/cp-demangle.c