cplus-dem.c (demangle_template_value_parm): Handle pointers-to-members.

* cplus-dem.c (demangle_template_value_parm): Handle
	pointers-to-members.
	(do_type): Handle template parameters as qualifiers.

From-SVN: r26350
This commit is contained in:
Mark Mitchell 1999-04-11 18:46:52 +00:00 committed by Mark Mitchell
parent c45df9c124
commit 391cdef056
3 changed files with 56 additions and 32 deletions

View File

@ -1,3 +1,9 @@
1999-04-11 Mark Mitchell <mark@codesourcery.com>
* cplus-dem.c (demangle_template_value_parm): Handle
pointers-to-members.
(do_type): Handle template parameters as qualifiers.
1999-04-01 Jim Blandy <jimb@zwingli.cygnus.com>
* cplus-dem.c: Attempt to handle overflows in counts with some

View File

@ -1504,6 +1504,12 @@ demangle_template_value_parm (work, mangled, s, tk)
}
}
else if (tk == tk_pointer || tk == tk_reference)
{
if (**mangled == 'Q')
success = demangle_qualified (work, mangled, s,
/*isfuncname=*/0,
/*append=*/1);
else
{
int symbol_len = consume_count (mangled);
if (symbol_len == -1)
@ -1536,6 +1542,7 @@ demangle_template_value_parm (work, mangled, s, tk)
}
*mangled += symbol_len;
}
}
return success;
}
@ -3040,11 +3047,6 @@ do_type (work, mangled, result)
member = **mangled == 'M';
(*mangled)++;
if (!isdigit ((unsigned char)**mangled) && **mangled != 't')
{
success = 0;
break;
}
string_append (&decl, ")");
string_prepend (&decl, SCOPE_STRING (work));
@ -3060,7 +3062,13 @@ do_type (work, mangled, result)
string_prependn (&decl, *mangled, n);
*mangled += n;
}
else
else if (**mangled == 'X' || **mangled == 'Y')
{
string temp;
do_type (work, mangled, &temp);
string_prepends (&decl, &temp);
}
else if (**mangled == 't')
{
string temp;
string_init (&temp);
@ -3074,6 +3082,12 @@ do_type (work, mangled, result)
else
break;
}
else
{
success = 0;
break;
}
string_prepend (&decl, "(");
if (member)
{

View File

@ -2466,3 +2466,7 @@ basic_string<char,string_char_traits<char>,allocator>::unLink(void)
_Utf390_1__1_9223372036854775807__9223372036854775
_Utf390_1__1_9223372036854775807__9223372036854775
#
--format=gnu
call__H1Z4Test_RX01_t1C2ZX01PMX01FPX01i_vQ2X016output
C<Test, Test::output> call<Test>(Test &)