Added operator overloading for unary operators, post-increment, and
post-decrement, including support for generating all of the built-in
operator candidates for these operators.
C++ and C have different rules for the arguments to the builtin unary
'+' and '-'. Implemented both variants in Sema::ActOnUnaryOp.
In C++, pre-increment and pre-decrement return lvalues. Update
Expr::isLvalue accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59638 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/www/cxx_status.html b/www/cxx_status.html
index c8b8d57..7c51fb3 100644
--- a/www/cxx_status.html
+++ b/www/cxx_status.html
@@ -826,8 +826,8 @@
<tr>
<td> 13.3.1.2 [over.match.oper]</td>
<td class="complete" align="center">✓</td>
- <td class="broken" align="center"></td>
- <td class="broken" align="center"></td>
+ <td class="medium" align="center"></td>
+ <td class="medium" align="center"></td>
<td class="broken" align="center"></td>
<td></td>
</tr>
@@ -943,27 +943,27 @@
<td class="advanced" align="center"></td>
<td class="medium" align="center"></td>
<td class="broken" align="center"></td>
- <td>Most overloaded operators can only be called with function syntax, e.g., <code>operator+(x)</code>.</td>
+ <td>Some overloaded operators can only be called with function syntax, e.g., <code>operator[](x)</code>.</td>
</tr>
<tr>
<td> 13.5.1 [over.unary]</td>
- <td class="advanced" align="center"></td>
+ <td class="na" align="center">N/A</td>
<td class="advanced" align="center"></td>
- <td class="basic" align="center"></td>
+ <td class="advanced" align="center"></td>
<td class="broken" align="center"></td>
<td></td>
</tr>
<tr>
<td> 13.5.2 [over.binary]</td>
- <td class="advanced" align="center"></td>
+ <td class="na" align="center">N/A</td>
<td class="advanced" align="center"></td>
- <td class="medium" align="center"></td>
+ <td class="advanced" align="center"></td>
<td class="broken" align="center"></td>
<td></td>
</tr>
<tr>
<td> 13.5.3 [over.ass]</td>
- <td class="advanced" align="center"></td>
+ <td class="na" align="center">N/A</td>
<td class="advanced" align="center"></td>
<td class="basic" align="center"></td>
<td class="broken" align="center"></td>
@@ -971,7 +971,7 @@
</tr>
<tr>
<td> 13.5.4 [over.call]</td>
- <td class="advanced" align="center"></td>
+ <td class="na" align="center">N/A</td>
<td class="advanced" align="center"></td>
<td class="basic" align="center"></td>
<td class="broken" align="center"></td>
@@ -979,7 +979,7 @@
</tr>
<tr>
<td> 13.5.5 [over.sub]</td>
- <td class="advanced" align="center"></td>
+ <td class="na" align="center">N/A</td>
<td class="advanced" align="center"></td>
<td class="basic" align="center"></td>
<td class="broken" align="center"></td>
@@ -987,21 +987,29 @@
</tr>
<tr>
<td> 13.5.6 [over.ref]</td>
- <td class="advanced" align="center"></td>
+ <td class="na" align="center">N/A</td>
<td class="advanced" align="center"></td>
- <td class="basic" align="center"></td>
+ <td class="advanced" align="center"></td>
<td class="broken" align="center"></td>
<td></td>
</tr>
<tr>
<td> 13.5.7 [over.inc]</td>
- <td class="advanced" align="center"></td>
+ <td class="na" align="center">N/A</td>
<td class="advanced" align="center"></td>
- <td class="basic" align="center"></td>
+ <td class="advanced" align="center"></td>
<td class="broken" align="center"></td>
<td></td>
</tr>
-<tr><td> 13.6 [over.built]</td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr>
+ <td> 13.6 [over.built]</td>
+ <td class="na" align="center">N/A</td>
+ <td class="advanced" align="center"></td>
+ <td class="medium" align="center"></td>
+ <td class="broken" align="center"></td>
+ <td>Missing pointer-to-member versions (p11, p16) and support for
+ the ternary operator (p24, p25).</td>
+</tr>
<tr><td>14 [temp]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td> 14.1 [temp.param]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td> 14.2 [temp.names]</td><td></td><td></td><td></td><td></td><td></td></tr>