summaryrefslogtreecommitdiff
path: root/libiberty/cp-demangle.c
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2001-08-07 16:15:04 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2001-08-07 16:15:04 +0000
commit6539a5d820cfb8b5e592da6108d1ebf657cae962 (patch)
treebdd684270e8ecb28dc1649f1031b40a08c272a4f /libiberty/cp-demangle.c
parentbd10a7cd7256848f2a2b54e6f7b4a250b19da1d8 (diff)
downloadgcc-6539a5d820cfb8b5e592da6108d1ebf657cae962.tar.gz
* cp-demangle.c (demangle_special_name): "GR" -> "reference temporary
for". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44694 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libiberty/cp-demangle.c')
-rw-r--r--libiberty/cp-demangle.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index a6a2c1e9f1a..5ee8a2b457c 100644
--- a/libiberty/cp-demangle.c
+++ b/libiberty/cp-demangle.c
@@ -1842,11 +1842,27 @@ demangle_special_name (dm)
if (peek == 'G')
{
- /* A guard variable name. Consume the G. */
+ /* Consume the G. */
advance_char (dm);
- RETURN_IF_ERROR (demangle_char (dm, 'V'));
- RETURN_IF_ERROR (result_add (dm, "guard variable for "));
- RETURN_IF_ERROR (demangle_name (dm, &unused));
+ switch (peek_char (dm))
+ {
+ case 'V':
+ /* A guard variable name. */
+ advance_char (dm);
+ RETURN_IF_ERROR (result_add (dm, "guard variable for "));
+ RETURN_IF_ERROR (demangle_name (dm, &unused));
+ break;
+
+ case 'R':
+ /* A reference temporary. */
+ advance_char (dm);
+ RETURN_IF_ERROR (result_add (dm, "reference temporary for "));
+ RETURN_IF_ERROR (demangle_name (dm, &unused));
+ break;
+
+ default:
+ return "Unrecognized <special-name>.";
+ }
}
else if (peek == 'T')
{