Commit Graph

75 Commits

Author SHA1 Message Date
Ian Lance Taylor
0b167d51ed re PR other/18623 (4 * libiberty local variables set but never used)
PR other/18623
	* cp-demangle.c (d_call_offset): Remove useless local variables
	offset and virtual_offset.
	* cplus-dem.c (ada_demangle): Remove useless local variable
	at_start_name.
	(demangle_template): Remove useless local variable start.

From-SVN: r91133
2004-11-24 02:19:10 +00:00
Ian Lance Taylor
00a5aa9c30 re PR c++/16240 (g++ generates incorrect mangled name)
PR other/16240
	* cp-demangle.c (d_expr_primary): Check for a failure return from
	cplus_demangle_type.

From-SVN: r83791
2004-06-28 15:23:33 +00:00
Ian Lance Taylor
31058ee354 cp-demangle.h (enum d_builtin_type_print): Add D_PRINT_UNSIGNED...
* cp-demangle.h (enum d_builtin_type_print): Add D_PRINT_UNSIGNED,
	D_PRINT_UNSIGNED_LONG, D_PRINT_LONG_LONG,
	D_PRINT_UNSIGNED_LONG_LONG, D_PRINT_FLOAT.
	* cp-demangle.c (cplus_demangle_builtin_types): Change char and
	short types to D_PRINT_DEFAULT.  Change other integer types to use
	new D_PRINT_* values where appropriate.  Change float types to
	D_PRINT_FLOAT.
	(d_print_comp) [LITERAL, LITERAL_NEG]: Handle new D_PRINT_*
	values.
	* testsuite/demangle-expected: Adjust two test cases.

	* cp-demangle.c (d_print_function_type): Print a space before the
	parenthesis around the function type in more cases.
	* testsuite/demangle-expected: Adjust one test case.

From-SVN: r78421
2004-02-25 04:51:39 +00:00
Ian Lance Taylor
93f20626db cp-demangle.c (d_print_comp): Don't emit extra parentheses around a cast.
* cp-demangle.c (d_print_comp) [UNARY]: Don't emit extra
	parentheses around a cast.
	* testsuite/demangle-expected: Adjust two test cases to match new
	output.

From-SVN: r78416
2004-02-25 01:45:49 +00:00
Ian Lance Taylor
dbd6ec2bdc * cp-demangle.c (__cxa_demangle): Pass DMGL_PARAMS to d_demangle.
From-SVN: r78355
2004-02-24 06:42:26 +00:00
Ian Lance Taylor
80a19ac825 cp-demangle.c (d_print_comp): Don't push more than one of the same CV-qualifier on the top of the stack.
* 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.

From-SVN: r78354
2004-02-24 06:32:16 +00:00
Ian Lance Taylor
e8ed4ac21e cp-demangle.c (__cxa_demangle): Adjust last patch to handle empty string correctly.
* cp-demangle.c (__cxa_demangle): Adjust last patch to handle
	empty string correctly.

From-SVN: r78353
2004-02-24 04:02:22 +00:00
Ian Lance Taylor
4a368ffd95 cp-demangle.c (__cxa_demangle): It is not an error if status is not NULL.
2004-02-23  Ian Lance Taylor  <ian@wasabisystems.com>

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

From-SVN: r78348
2004-02-24 02:49:24 +00:00
Daniel Jacobowitz
d4f3ce5cc0 cp-demangle.c (d_make_comp): DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE takes two parameters.
* cp-demangle.c (d_make_comp): DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE
	takes two parameters.
	* cp-demint.c (cplus_demangle_fill_component): Likewise.

From-SVN: r75819
2004-01-13 21:35:12 +00:00
Ian Lance Taylor
5e777af517 demangle.h (enum demangle_component_type): Define.
* demangle.h (enum demangle_component_type): Define.
	(struct demangle_operator_info): Declare.
	(struct demangle_builtin_type_info): Declare.
	(struct demangle_component): Define.
	(cplus_demangle_fill_component): Declare.
	(cplus_demangle_fill_name): Declare.
	(cplus_demangle_fill_builtin_type): Declare.
	(cplus_demangle_fill_operator): Declare.
	(cplus_demangle_fill_extended_operator): Declare.
	(cplus_demangle_fill_ctor, cplus_demangle_fill_dtor): Declare.
	(cplus_demangle_v3_components): Declare.
	(cplus_demangle_print): Declare.

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

From-SVN: r75748
2004-01-12 19:46:31 +00:00
Ian Lance Taylor
e4796f1c88 cp-demangle.c (d_encoding): When DMGL_PARAMS is not set...
* 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.

From-SVN: r75336
2004-01-02 20:33:55 +00:00
Kaveh R. Ghazi
4d42522958 * cp-demangle.c (is_ctor_or_dtor): Fix error in last change.
From-SVN: r75030
2003-12-26 01:54:43 +00:00
Ian Lance Taylor
2d6c4025cc cp-demangle.c (CP_DYNAMIC_ARRAYS): Define if compiler supports dynamic arrays.
* 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
2003-12-22 15:45:12 +00:00
Ian Lance Taylor
2307e075c1 cp-demangle.c (d_identifier): In Java mode, skip an optional '$' after the identifier.
* cp-demangle.c (d_identifier): In Java mode, skip an optional '$'
	after the identifier.
	* testsuite/demangle-expected: Add test case.

From-SVN: r74885
2003-12-20 15:53:06 +00:00
Ian Lance Taylor
a91d1af087 re PR c++/13447 (Another demangler problem with method cv-qualifiers)
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
2003-12-19 21:14:35 +00:00
Ian Lance Taylor
cbc278f440 cp-demangle.c (d_print_function_type): Print the function parameters with no modifiers.
* cp-demangle.c (d_print_function_type): Print the function
	parameters with no modifiers.
	* testsuite/demangle-expected: Add test case.

From-SVN: r74652
2003-12-15 23:29:31 +00:00
Ian Lance Taylor
8d686df280 cp-demangle.c (d_demangle): If DMGL_PARAMS is not set, don't expect that we've read the entire string.
* 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
2003-12-15 23:18:49 +00:00
Ian Lance Taylor
374caa503b 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.

From-SVN: r74632
2003-12-15 14:37:25 +00:00
Ian Lance Taylor
a51753e47f re PR other/13304 (demangler bad output, "operator<<" insteads of "operator< <")
* 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
2003-12-04 19:48:44 +00:00
Ian Lance Taylor
f26deb3d44 cp-demangle.c (d_demangle): Only return success if we consumed the entire demangled string.
* cp-demangle.c (d_demangle): Only return success if we consumed
	the entire demangled string.
	(is_ctor_or_dtor): Likewise.

From-SVN: r74129
2003-12-01 22:04:04 +00:00
Ian Lance Taylor
81dc098b39 cp-demangle.c (struct d_print_mod): Add templates field.
* 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
2003-11-26 23:33:05 +00:00
Ian Lance Taylor
eb459c81bf cp-demangle.c (java_demangle_v3): Pass DMGL_PARAMS to d_demangle.
* cp-demangle.c (java_demangle_v3): Pass DMGL_PARAMS to
	d_demangle.

From-SVN: r73931
2003-11-25 21:04:41 +00:00
Ian Lance Taylor
ad07f5e522 cp-demangle.c (d_encoding): Add top_level parameter.
* 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.

From-SVN: r73884
2003-11-24 18:42:39 +00:00
Ian Lance Taylor
0ba5c8a2be cp-demangle.c (has_return_type): Skip qualifiers when checking whether we have a template.
* 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
2003-11-21 21:34:55 +00:00
Ian Lance Taylor
bd6946d1bf * cp-demangle.c: Complete rewrite.
From-SVN: r73788
2003-11-21 03:27:58 +00:00
Mark Mitchell
6df5a5c72a cp-demangle.c (demangle_type): Correct thinko in substitution processing.
* cp-demangle.c (demangle_type): Correct thinko in substitution
	processing.

From-SVN: r73751
2003-11-20 01:48:41 +00:00
Ian Lance Taylor
820555e6f9 cp-demangle.c (demangle_operator_name): Remove space before "sizeof".
* 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
2003-11-19 04:06:50 +00:00
Nathanael Nerode
2b81b2c970 * cp-demangle.c: Clarify what package(s) this is part of.
From-SVN: r70361
2003-08-12 06:58:17 +00:00
Carlo Wood
41fe940407 cp-demangle.c: Fix typo in "char_traints" string-literal.
2003-05-03  Carlo Wood  <carlo@alinoe.com>

	* cp-demangle.c: Fix typo in "char_traints" string-literal.

From-SVN: r66427
2003-05-03 14:09:35 +00:00
John David Anglin
f08b7eee21 cp-demangle.c (demangling_new): Cast 0 to enum.
* cp-demangle.c (demangling_new): Cast 0 to enum.
	(demangle_char): Cast return of strdup to char *.
	(is_gnu_v3_mangled_ctor): Cast 0 to enum.
	(is_gnu_v3_mangled_dtor): Likewise.
	* cplus-dem.c (grow_vect): Cast return of xrealloc to void *.
	(work_stuff_copy_to_from): Cast return of xmalloc to char **.
	* fibheap.c (fibnode_new): Cast return of xcalloc to fibnode_t.
	* md5.c (md5_process_bytes): Cast results back to const void *.
	(md5_process_block): Add cast to const md5_uint32 *.
	* regex.c (re_compile_fastmap): Cast enum to UCHAR_T.
	* safe-ctype.c (L, XL, U, XU, D, P, _, C, Z, M, V, T, S): Add cast to
	unsigned short.
	* splay-tree.c (splay_tree_xmalloc_allocate): Cast return of xmalloc
	to void *.
	* vasprintf.c (int_vasprintf): Cast return of malloc to char *.

From-SVN: r57330
2002-09-20 02:40:51 +00:00
Jason Merrill
28a34ec177 cp-demangle.c (demangle_identifier): Support extended Unicode characters.
* cp-demangle.c (demangle_identifier): Support extended Unicode
        characters.

From-SVN: r55354
2002-07-09 19:57:09 -04:00
Kaveh R. Ghazi
8432659258 cp-demangle.c (demangle_v3_with_details): Wrap in !defined IN_GLIBCPP_V3.
* cp-demangle.c (demangle_v3_with_details): Wrap in
	!defined IN_GLIBCPP_V3.

From-SVN: r55335
2002-07-09 00:32:22 +00:00
Mark Mitchell
5d69ba1faa re PR c++/7112 (Regression: ICE on C++ code involving templates and sizeof)
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
2002-07-02 03:19:22 +00:00
Phil Edwards
bd7e6f2d20 cp-demangle.c (__cxa_demangle): Also protect with IN_GLIBCPP_V3.
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
2002-04-01 21:55:12 +00:00
Bryce McKinlay
a8f55e51dc cp-demangle.c (java_demangle_v3): Don't try to release "demangled" if it is NULL.
* cp-demangle.c (java_demangle_v3): Don't try to release "demangled"
	if it is NULL.

From-SVN: r51594
2002-03-30 03:30:36 +00:00
Mark Mitchell
b3dd43df63 cp-demangle.c: Add libgcc exception to cp-demangle.c copyright notice.
* cp-demangle.c: Add libgcc exception to cp-demangle.c copyright
	notice.

From-SVN: r50679
2002-03-12 20:34:15 +00:00
Jason Merrill
c13db5d119 demangle.h (cplus_demangle_v3): Add "options" parm.
* demangle.h (cplus_demangle_v3): Add "options" parm.
        (cplus_demangle_v3_type): Remove prototype.
        (DMGL_VERBOSE): New macro.
        (DMGL_TYPES): New macro.

        * cplus-dem.c (flags): Add DMGL_VERBOSE
        (cplus_demangle_v3_p): Remove.
        (demangle_it): Add DMGL_TYPES to passed flags.
        * cp-demangle.c (cplus_demangle_v3_all): Remove.
        (cplus_demangle_v3_type): Remove.
        (cplus_demangle_v3): Add options parm.

        * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.

From-SVN: r49525
2002-02-05 11:33:31 -05:00
H.J. Lu
d74697b84d cp-demangle.c (cp_demangle_type): Do not protect with IN_LIBGCC2.
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-02-02 20:00:36 -08:00
H.J. Lu
3a441e3884 cp-demangle.c (cp_demangle_type): Call demangling_new with DMGL_GNU_V3.
2002-02-01  H.J. Lu  <hjl@gnu.org>

	* cp-demangle.c (cp_demangle_type): Call demangling_new with
	DMGL_GNU_V3.

From-SVN: r49409
2002-02-01 12:37:13 -08:00
Phil Edwards
6d747e63e0 cp-demangle.c: Revert yesterday's change.
2002-01-31  Phil Edwards  <pme@gcc.gnu.org>

	* cp-demangle.c:  Revert yesterday's change.

From-SVN: r49386
2002-02-01 01:27:21 +00:00
Phil Edwards
46ab74b1fd cp-demangle.c (cp_demangle_type): Do not protect with IN_LIBGCC2.
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
2002-01-31 01:03:05 +00:00
Kaveh R. Ghazi
5e65297bbb gcc.c (default_compilers): Const-ify.
* gcc.c (default_compilers): Const-ify.
	* mips-tdump.c (stab_names): Likewise.
	* mips-tfile.c (map_coff_types, map_coff_storage,
	map_coff_sym_type, map_coff_derived_type, stabs_symbol,
	pseudo_ops_t, pseudo_ops): Likewise.
	* protoize.c (default_include): Likewise

f:
	* com.c (clear_binding_level): Const-ify.
	(ffecom_arglist_expr_): Likewise.
	* info.c (ffeinfo_types_): Don't needlessly zero init.
	* lex.c (ffelex_hash_kludge): Const-ify.

java:
	* parse.y (src_parse_roots): Don't needlessly zero init.

libiberty:
	* cp-demangle.c (long_options): Const-ify.
	* cplus-dem.c (long_options): Likewise.

From-SVN: r48485
2002-01-02 23:18:59 +00:00
Kaveh R. Ghazi
0be6abca22 demangle.h (demangler_engine): Const-ify.
include:
	* demangle.h (demangler_engine): Const-ify.
	* libiberty.h (buildargv): Likewise.

libiberty:
	* argv.c (buildargv, tests, main): Const-ify.
	* cp-demangle.c (operator_code): Likewise.
	* cplus-dem.c (optable, libiberty_demanglers,
	cplus_demangle_set_style, cplus_demangle_name_to_style,
	print_demangler_list): Likewise.
	* hashtab.c (higher_prime_number): Likewise.
	* strcasecmp.c (charmap): Likewise.
	* strerror.c (error_info, strerror, main): Likewise.
	* strncasecmp.c (charmap): Likewise.
	* strsignal.c (signal_info): Likewise.

From-SVN: r46060
2001-10-07 14:45:04 +00:00
Jason Merrill
056400f19d cp-demangle.c (demangle_special_name): "GR" -> "reference temporary for".
* cp-demangle.c (demangle_special_name): "GR" -> "reference temporary
        for".

From-SVN: r44694
2001-08-07 12:15:04 -04:00
Zack Weinberg
641b2721c4 cp-demangle.c (demangle_v3_with_details, [...]): Use K+R style function definition.
* 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-05-08 06:13:58 +00:00
Jakub Jelinek
f1a0345cf6 mangle.c (write_discriminator): Use _0' for discriminator 1, not _'.
* 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
2001-03-23 23:12:55 +01:00
Jim Blandy
a519fba6e8 cp-demangle.c (string_list_delete): Don't forget to free the actual contents of the string.
* cp-demangle.c (string_list_delete): Don't forget to free the
actual contents of the string.

From-SVN: r40744
2001-03-22 15:15:18 +00:00
Jim Blandy
7dce2effb4 cp-demangle.c (struct demangling_def): New fields: is_constructor and is_destructor.
* 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
2001-03-21 15:01:40 -05:00
Bryce McKinlay
3b60dd8e10 Add support for Java demangling under the v3 ABI:
* 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
2001-02-02 00:27:39 +00:00
Jason Merrill
b5d1497d5e cp-demangle.c (cplus_demangle_v3): Check that it's a v3 mangled name before allocating the dyn_string.
* cp-demangle.c (cplus_demangle_v3): Check that it's a v3 mangled
        name before allocating the dyn_string.

From-SVN: r38043
2000-12-05 12:29:12 -05:00