Commit ec2288ff by Mark Mitchell Committed by Mark Mitchell

cplus-dem.c (type_kind_t): Add tk_reference.

	* cplus-dem.c (type_kind_t): Add tk_reference.
	(demangle_template_value_parm): Handle it.
	(do_type): Use it for references, instead of tk_pointer.

From-SVN: r23572
parent 0e714131
1998-11-08 Mark Mitchell <mark@markmitchell.com> 1998-11-08 Mark Mitchell <mark@markmitchell.com>
* cplus-dem.c (type_kind_t): Add tk_reference.
(demangle_template_value_parm): Handle it.
(do_type): Use it for references, instead of tk_pointer.
* cplus-dem.c (demangle_template_value_parm): Use cplus_demangle, * cplus-dem.c (demangle_template_value_parm): Use cplus_demangle,
not internal_cplus_demangle. not internal_cplus_demangle.
......
...@@ -234,6 +234,7 @@ typedef enum type_kind_t ...@@ -234,6 +234,7 @@ typedef enum type_kind_t
{ {
tk_none, tk_none,
tk_pointer, tk_pointer,
tk_reference,
tk_integral, tk_integral,
tk_bool, tk_bool,
tk_char, tk_char,
...@@ -1424,7 +1425,7 @@ demangle_template_value_parm (work, mangled, s, tk) ...@@ -1424,7 +1425,7 @@ demangle_template_value_parm (work, mangled, s, tk)
} }
} }
} }
else if (tk == tk_pointer) else if (tk == tk_pointer || tk == tk_reference)
{ {
int symbol_len = consume_count (mangled); int symbol_len = consume_count (mangled);
if (symbol_len == 0) if (symbol_len == 0)
...@@ -1442,7 +1443,8 @@ demangle_template_value_parm (work, mangled, s, tk) ...@@ -1442,7 +1443,8 @@ demangle_template_value_parm (work, mangled, s, tk)
or type-code information we have built up thus far; it is or type-code information we have built up thus far; it is
mangled independently. */ mangled independently. */
q = cplus_demangle (p, work->options); q = cplus_demangle (p, work->options);
string_appendn (s, "&", 1); if (tk == tk_pointer)
string_appendn (s, "&", 1);
/* FIXME: Pointer-to-member constants should get a /* FIXME: Pointer-to-member constants should get a
qualifying class name here. */ qualifying class name here. */
if (q) if (q)
...@@ -2611,7 +2613,7 @@ do_type (work, mangled, result) ...@@ -2611,7 +2613,7 @@ do_type (work, mangled, result)
(*mangled)++; (*mangled)++;
string_prepend (&decl, "&"); string_prepend (&decl, "&");
if (tk == tk_none) if (tk == tk_none)
tk = tk_pointer; tk = tk_reference;
break; break;
/* An array */ /* An array */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment