* options.cc: Include "demangle.h".

(parse_optional_string): New function.
	(parse_long_option): Handle takes_optional_argument.
	(parse_short_option): Update dash_z initializer.  Handle
	takes_optional_argument.
	(General_options::General_options): Initialize do_demangle_.
	(General_options::finalize): Set do_demangle_.  Handle demangling
	style.
	* options.h (parse_optional_string): Declare.
	(struct One_option): Add optional_arg field.  Update constructor.
	Update call constructor calls.  Add takes_optional_argument
	function.
	(DEFINE_var): Add optional_arg__ parameter.  Change all callers.
	(DEFINE_optional_string): Define.
	(General_options::demangle): Change from DEFINE_bool to
	DEFINE_optional_string.
	(General_options::no_demangle): New function.
	(General_options::do_demangle): New function.
	(General_options::set_do_demangle): New function.
	(General_options::execstack_status_): Move definition to end of
	class definition.
	(General_options::static_): Likewise.
	(General_options::do_demangle_): New field.
	* object.cc (big_endian>::get_symbol_location_info): Call
	Options::do_demangle, not Options::demangle.
	* symtab.cc (demangle): Likewise.
This commit is contained in:
Ian Lance Taylor
2008-03-24 03:48:29 +00:00
parent b5615ead1b
commit 086a18414a
5 changed files with 131 additions and 24 deletions

View File

@ -79,7 +79,7 @@ Symbol::init_fields(const char* name, const char* version,
static std::string
demangle(const char* name)
{
if (!parameters->options().demangle())
if (!parameters->options().do_demangle())
return name;
// cplus_demangle allocates memory for the result it returns,