summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/cp/mangle.c
diff options
context:
space:
mode:
authorpfg <pfg@FreeBSD.org>2013-12-20 16:01:02 +0000
committerpfg <pfg@FreeBSD.org>2013-12-20 16:01:02 +0000
commita13c7f1bacebd0a570bd9fd58a79c6fd62cbbe9b (patch)
treeaaf1024abcd7c55552e09fd22908a6bf93b28ff8 /contrib/gcc/cp/mangle.c
parent73daf98b85e2c7445882b02abbcbeec0a4e5430a (diff)
downloadFreeBSD-src-a13c7f1bacebd0a570bd9fd58a79c6fd62cbbe9b.zip
FreeBSD-src-a13c7f1bacebd0a570bd9fd58a79c6fd62cbbe9b.tar.gz
gcc: merge upstream fix and new feature.
Fix for PR c++/29928 Add support for Rvalue references as described here: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html Obtained from: gcc 4.3 (rev. 124724, 125211; GPLv2) MFC after: 2 weeks
Diffstat (limited to 'contrib/gcc/cp/mangle.c')
-rw-r--r--contrib/gcc/cp/mangle.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/contrib/gcc/cp/mangle.c b/contrib/gcc/cp/mangle.c
index 8bfdc20..6a49350 100644
--- a/contrib/gcc/cp/mangle.c
+++ b/contrib/gcc/cp/mangle.c
@@ -1541,6 +1541,10 @@ write_local_name (const tree function, const tree local_entity,
::= G <type> # imaginary (C 2000) [not supported]
::= U <source-name> <type> # vendor extended type qualifier
+ C++0x extensions
+
+ <type> ::= RR <type> # rvalue reference-to
+
TYPE is a type node. */
static void
@@ -1635,6 +1639,8 @@ write_type (tree type)
break;
case REFERENCE_TYPE:
+ if (TYPE_REF_IS_RVALUE (type))
+ write_char('R');
write_char ('R');
write_type (TREE_TYPE (type));
break;
OpenPOWER on IntegriCloud