aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/mangle.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp/mangle.c')
-rw-r--r--gcc/cp/mangle.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c
index d708a2b..7318f49 100644
--- a/gcc/cp/mangle.c
+++ b/gcc/cp/mangle.c
@@ -1544,6 +1544,9 @@ write_local_name (const tree function, const tree local_entity,
C++0x extensions
<type> ::= RR <type> # rvalue reference-to
+ <type> ::= Dt <expression> # decltype of an id-expression or
+ # class member access
+ <type> ::= DT <expression> # decltype of an expression
TYPE is a type node. */
@@ -1674,6 +1677,16 @@ write_type (tree type)
write_type (PACK_EXPANSION_PATTERN (type));
break;
+ case DECLTYPE_TYPE:
+ write_char ('D');
+ if (DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P (type))
+ write_char ('t');
+ else
+ write_char ('T');
+ write_expression (DECLTYPE_TYPE_EXPR (type));
+ write_char ('E');
+ break;
+
default:
gcc_unreachable ();
}