Implement C++ semantics for C-style and functional-style casts. This regresses Clang extension conversions, like vectors, but allows conversions via constructors and conversion operators.
Add custom conversions to static_cast.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77076 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/www/cxx_status.html b/www/cxx_status.html
index e6ac8ae..74edb9c 100644
--- a/www/cxx_status.html
+++ b/www/cxx_status.html
@@ -540,10 +540,10 @@
<tr>
<td> 5.2.3 [expr.type.conv]</td>
<td class="complete" align="center"></td>
- <td class="complete" align="center"></td>
- <td class="basic"></td>
+ <td class="medium" align="center"></td>
+ <td class="advanced"></td>
<td></td>
- <td>Only between non-class types</td>
+ <td>Allows some invalid pointer conversions, AST has little information</td>
</tr>
<tr>
<td> 5.2.4 [expr.pseudo]</td>
@@ -588,10 +588,10 @@
<tr>
<td> 5.2.9 [expr.static.cast]</td>
<td class="complete" align="center"></td>
- <td class="complete" align="center"></td>
+ <td class="medium" align="center"></td>
<td class="advanced" align="center"></td>
<td></td>
- <td>Some custom conversions don't work.</td>
+ <td>Allows some invalid pointer conversions, AST has little information</td>
</tr>
<tr>
<td> 5.2.10 [expr.reinterpret.cast]</td>
@@ -694,10 +694,10 @@
<tr>
<td> 5.4 [expr.cast]</td>
<td class="complete" align="center"></td>
- <td class="complete" align="center"></td>
- <td class="medium"></td>
+ <td class="medium" align="center"></td>
+ <td class="advanced"></td>
<td></td>
- <td>Too lenient, and may not always have correct semantics</td>
+ <td>Allows some invalid pointer conversions, AST has little information</td>
</tr>
<tr>
<td> 5.5 [expr.mptr.oper]</td>