diff options
author | pfg <pfg@FreeBSD.org> | 2013-12-20 16:01:02 +0000 |
---|---|---|
committer | pfg <pfg@FreeBSD.org> | 2013-12-20 16:01:02 +0000 |
commit | a13c7f1bacebd0a570bd9fd58a79c6fd62cbbe9b (patch) | |
tree | aaf1024abcd7c55552e09fd22908a6bf93b28ff8 /contrib/gcc/cp/mangle.c | |
parent | 73daf98b85e2c7445882b02abbcbeec0a4e5430a (diff) | |
download | FreeBSD-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.c | 6 |
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; |