Fill in C++ status table for expressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60763 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Sebastian Redl 2008-12-09 14:40:01 +00:00
Родитель 0e9eabca26
Коммит 8b9ad38dab
1 изменённых файлов: 253 добавлений и 72 удалений

Просмотреть файл

@ -487,63 +487,70 @@ welcome!</p>
<td></td>
<td>Missing pointer-to-member conversions.</td>
</tr>
<tr><td>5 [expr]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr>
<td>&nbsp;&nbsp;5.1 [expr.prim]</td>
<td></td>
<td></td>
<td></td>
<td>5 [expr]</td>
<td class="na">N/A</td>
<td class="na">N/A</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr><td>&nbsp;&nbsp;5.2 [expr.post]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr>
<td>&nbsp;&nbsp;5.1 [expr.prim]</td>
<td class="medium" align="center"></td>
<td class="medium" align="center"></td>
<td class="medium" align="center"></td>
<td></td>
<td>template-ids are not supported, name lookup is not complete</td>
</tr>
<tr><td>&nbsp;&nbsp;5.2 [expr.post]</td><td></td><td></td><td></td><td></td><td>Note that overloading is not considered in this section</td></tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.1 [expr.sub]</td>
<td></td>
<td></td>
<td></td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.2 [expr.call]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="medium" align="center"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>Member calls don't work</td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.3 [expr.type.conv]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="basic"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>Only between non-class types</td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.4 [expr.pseudo]</td>
<td></td>
<td></td>
<td></td>
<td class="broken"></td>
<td class="broken"></td>
<td class="broken"></td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.5 [expr.ref]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="basic"></td>
<td class="basic"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>Only fields can be accessed</td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.6 [expr.post.incr]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="advanced"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>Decrement of bool is accepted, increment not warned about</td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;5.2.7 [expr.dynamic.cast]</td>
@ -587,15 +594,77 @@ welcome!</p>
</tr>
<tr><td>&nbsp;&nbsp;5.3 [expr.unary]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;5.3.1 [expr.unary.op]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;5.3.2 [expr.pre.incr]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;5.3.3 [expr.sizeof]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.3.1p1 Unary *</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.3.1p2-5 Unary &amp;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="basic" align="center"></td>
<td class="basic" align="center"></td>
<td></td>
<td>Member pointers not supported in any way</td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.3.1p6 Unary +</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.3.1p7 Unary -</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.3.1p8 Unary !</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.3.1p9 Unary ~</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;5.3.2 [expr.pre.incr]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="advanced"></td>
<td></td>
<td>Decrement of bool is accepted, increment not warned about</td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;5.3.3 [expr.sizeof]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;5.3.4 [expr.new]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="medium" align="center"></td>
<td class="medium" align="center"></td>
<td></td>
<td class="complete" align="center">&#x2713;</td>
<td class="advanced" align="center"></td>
<td></td>
<td>operator delete is not looked up, initialization not quite correct</td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;5.3.5 [expr.delete]</td>
@ -605,22 +674,134 @@ welcome!</p>
<td></td>
<td></td>
</tr>
<tr><td>&nbsp;&nbsp;5.4 [expr.cast]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;5.5 [expr.mptr.oper]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;5.6 [expr.mul]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;5.7 [expr.add]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;5.8 [expr.shift]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;5.9 [expr.rel]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;5.10 [expr.eq]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;5.11 [expr.bit.and]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;5.12 [expr.xor]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;5.13 [expr.or]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;5.14 [expr.log.and]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;5.15 [expr.log.or]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;5.16 [expr.cond]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;5.17 [expr.ass]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;5.18 [expr.comma]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;5.19 [expr.const]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr>
<td>&nbsp;&nbsp;5.4 [expr.cast]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="medium"></td>
<td></td>
<td>Too lenient, and may not always have correct semantics</td>
</tr>
<tr>
<td>&nbsp;&nbsp;5.5 [expr.mptr.oper]</td>
<td class="broken"></td>
<td class="broken"></td>
<td class="broken"></td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;5.6 [expr.mul]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;5.7 [expr.add]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;5.8 [expr.shift]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;5.9 [expr.rel]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;5.10 [expr.eq]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;5.11 [expr.bit.and]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;5.12 [expr.xor]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;5.13 [expr.or]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;5.14 [expr.log.and]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;5.15 [expr.log.or]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;5.16 [expr.cond]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="medium" align="center"></td>
<td></td>
<td>throw expressions not supported, type unification rules are based on C only</td>
</tr>
<tr>
<td>&nbsp;&nbsp;5.17 [expr.ass]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;5.18 [expr.comma]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td></td>
<td></td>
</tr>
<tr>
<td>&nbsp;&nbsp;5.19 [expr.const]</td>
<td class="complete" align="center">&#x2713;</td>
<td class="complete" align="center">&#x2713;</td>
<td class="basic"></td>
<td></td>
<td>Uses C semantics</td>
</tr>
<tr><td>6 [stmt.stmt]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;6.1 [stmt.label]</td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>&nbsp;&nbsp;6.2 [stmt.expr]</td><td></td><td></td><td></td><td></td><td></td></tr>