diff options
Diffstat (limited to 'gcc/cp/mangle.c')
-rw-r--r-- | gcc/cp/mangle.c | 13 |
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 (); } |