Actions

icon Post
text/html Subscribe
text/html Unsubscribe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [cxx-abi-dev] C++0x: Mangling of rvalue reference types


  • To: "Daveed Vandevoorde" <daveed@xxxxxxx>
  • Subject: Re: [cxx-abi-dev] C++0x: Mangling of rvalue reference types
  • From: "Doug Gregor" <doug.gregor@xxxxxxxxx>
  • Date: Mon, 2 Jul 2007 10:42:54 -0400

On 6/29/07, Daveed Vandevoorde <daveed@xxxxxxx> wrote:

On Jun 29, 2007, at 8:59 AM, Doug Gregor wrote:

> On 6/29/07, Hommel Andreas-r58171 <andreas.hommel@xxxxxxxxxxxxx>
> wrote:
>> FWIW, the reference implementation in the Metrowerks compiler was
>> using
>> "O" to mangle rvalue refs.
>
> That's a strong argument. I'm perfectly happy with "O", then.

Mark, the 'O' patch for rvalue references is below. I can ping you in
a few days if you want to hold off before committing it.

 - Doug

--- orig-abi.html       2007-06-28 16:04:49.000000000 -0400
+++ abi.html    2007-06-29 10:37:51.000000000 -0400
@@ -3717,8 +3717,8 @@
                                  size_t* n,
                                  int* status);
}
-
-</code></pre>
+</pre>
+</code>

<ul>
<p>
@@ -4147,14 +4147,15 @@
cv-qualifiers and/or pointer, reference, complex, or imaginary types:

<pre><font color=blue><code>
-  &lt;type> ::= &lt;CV-qualifiers> &lt;type>
-        ::= P &lt;type>        # pointer-to
-        ::= R &lt;type>        # reference-to
-        ::= C &lt;type>        # complex pair (C 2000)
-        ::= G &lt;type>        # imaginary (C 2000)
-        ::= U &lt;source-name> &lt;type>       # vendor extended type qualifier
+  &lt;type&gt; ::= &lt;CV-qualifiers&gt; &lt;type&gt;
+        ::= P &lt;type&gt;     # pointer-to
+        ::= R &lt;type&gt;     # reference-to
+        ::= O &lt;type&gt;     # rvalue reference-to (C++0x)
+        ::= C &lt;type&gt;     # complex pair (C 2000)
+        ::= G &lt;type&gt;     # imaginary (C 2000)
+        ::= U &lt;source-name&gt; &lt;type&gt; # vendor extended type qualifier

-  &lt;CV-qualifiers> ::= [r] [V] [K]   # restrict (C99), volatile, const
+  &lt;CV-qualifiers&gt; ::= [r] [V] [K]        # restrict (C99),
volatile, const

</pre></font></code>

--- orig-abi-mangling.html      2007-07-02 09:56:47.000000000 -0400
+++ abi-mangling.html   2007-07-02 09:55:55.000000000 -0400
@@ -95,6 +95,7 @@
<tr><td>oper</td> <td>o</td> <td> o </td> <td> Operator || </td> </tr>
<tr><td>oper</td> <td>o</td> <td> r </td> <td> Operator | </td> </tr>
<tr><td>oper</td> <td>o</td> <td> R </td> <td> Operator |= </td> </tr>
+<tr><td>type</td> <td>O</td> <td></td> <td> rvalue reference type
(C++0x) </td> </tr>
<tr><td>oper</td> <td>p</td> <td> l </td> <td> Operator + </td> </tr>
<tr><td>oper</td> <td>p</td> <td> L </td> <td> Operator += </td> </tr>
<tr><td>oper</td> <td>p</td> <td> m </td> <td> Operator ->* </td> </tr>