diff options
-rw-r--r-- | www/cxx_status.html | 2281 |
1 files changed, 47 insertions, 2234 deletions
diff --git a/www/cxx_status.html b/www/cxx_status.html index 8477f03dfc..654c6a7591 100644 --- a/www/cxx_status.html +++ b/www/cxx_status.html @@ -3,7 +3,7 @@ <html> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>Clang - C++ Support</title> + <title>Clang - C++ and C++'0x Status</title> <link type="text/css" rel="stylesheet" href="menu.css"> <link type="text/css" rel="stylesheet" href="content.css"> <style type="text/css"> @@ -22,31 +22,28 @@ <div id="content"> <!--*************************************************************************--> -<h1>C++ Support in Clang</h1> +<h1>C++ and C++'0x Support in Clang</h1> <!--*************************************************************************--> <p>Last updated: $Date$</p> -<h1>Clang C++ Status</h1> - <ul> <li><a href="#projects">Projects Building with Clang</a></li> <li><a href="#specification">Implementation Status by Section</a></li> <li><a href="#cxx0x">C++0x Status</a></li> </ul> -<p>Clang currently implements nearly all of the ISO C++ 1998 standard (including the defects addressed in the ISO C++ 2003 standard). However, the implementation of Clang C++ is still quite immature, with many remaining bugs that are likely to cause compiler crashes, erroneous errors and warnings, and miscompiled code. The <a href="http://llvm.org/bugs/">LLVM bug tracker</a> contains a Clang C++ component that tracks known Clang C++ bugs.</p> +<p>Clang currently implements all of the ISO C++ 1998 standard (including + the defects addressed in the ISO C++ 2003 standard) except for 'export'. + However, the implementation of Clang C++ is still somewhat immature, with + remaining bugs that may cause compiler crashes, erroneous errors and warnings, + or miscompiled code. The <a href="http://llvm.org/bugs/">LLVM bug tracker</a> + contains a Clang C++ component that tracks known Clang C++ bugs.</p> <h2 id="projects">Projects Building with Clang</h2> - <p>Clang is now capable of compiling some language C++ projects, or -large pieces of such projects. The following table describes various -projects that we have attempted to compile with Clang along with the results of that attempt.</p> - - <p> At this point in time, each new C++ project typically uncovers -new bugs. We keep track of these in the <a - href="http://llvm.org/bugs/">LLVM bug tracker</a> via tracking bugs, -which are used to relate all of the bugs known to affect that -particular project. Introducing a new project in this list typically requires a liason familiar with LLVM or Clang development, who is able to provide detailed bug reports and track progress for the particular project.</p> + <p>Clang is now capable of compiling large C++ projects, and the following + table describes various projects that we have attempted to compile with + Clang++.</p> <table width="689" border="1" cellspacing="0"> <tr> @@ -68,20 +65,29 @@ particular project. Introducing a new project in this list typically requires a <td></td> </tr> <tr> + <td><a href="http://www.boost.org">Boost</a></td> + <td><a href="http://blog.llvm.org/2010/05/clang-builds-boost.html">Compiles + and passes regression tests</a> on Darwin/X86-64.</td> + <td>May 20, 2010</td> + <td><a href="http://llvm.org/bugs/show_bug.cgi?id=6023">PR6023</a></td> + </tr> + <tr> <td><a href="http://qt.nokia.com">Qt</a></td> <td>Partially compiles; miscompilation of uic prevents complete compilation, qmake works, some small examples also.</td> <td>February 9, 2010</td> <td><a href="http://llvm.org/bugs/show_bug.cgi?id=5881">PR5881</a></td> </tr> - <tr> - <td><a href="http://www.boost.org">Boost</a></td> - <td>Some libraries (e.g., Boost.MPL) successfully build and pass regression tests, the majority still fail.</td> - <td>February 5, 2010</td> - <td><a href="http://llvm.org/bugs/show_bug.cgi?id=6023">PR6023</a></td> - </tr> </table> - <h2 id="specification">Implementation Status by Section</h2> +<h2 id="cxx0x">C++0x Implementation status</h2> + +<p>Clang's development effort is focused primarily on fixing bugs in the current +ISO C++ standard (1998/2003). This section tracks the status of various C++0x +features. In general, the implementations of these features are far less +developed than C++98/03 features.</p> + + +<h2 id="specification">Implementation Status by Feature</h2> <!-- Within this table: The colors we're using to color-code our level @@ -96,9 +102,9 @@ of support for a given section: --> <p>The following table is used to help track our implementation - progress toward implementing the complete C++03 standard. We use a + progress toward implementing the complete C++'0x standard. We use a simple, somewhat arbitrary color-coding scheme to describe the - relative completeness of features by section:</p> + relative completeness of features:</p> <table width="689" border="1" cellspacing="0"> <tr> @@ -125,2239 +131,46 @@ of support for a given section: <p>A feature is "complete" when the appropriate Clang component (Parse, AST, Sema, CodeGen) implements the behavior described in all of the -paragraphs in the relevant C++ standard. Note that many C++ features are -actually described in several different sections within the standard. The major components are:</p> +paragraphs in the relevant C++'0x draft standard. The major +components are:</p> <dl> <dt>Parse</dt> - <dd>Clang is able to parse the grammar of this feature (or the grammar described by this section), but does not necessarily do anything with the parsed result. Use Clang's <code>-fsyntax-only</code> option to parse C++ programs.</dd> + <dd>Clang is able to parse the grammar of this feature (or the grammar + described by this section), but does not necessarily do anything with the + parsed result. Use Clang's <code>-fsyntax-only</code> option to parse C++ + programs.</dd> <dt>AST</dt> - <dd>Clang builds an abstract syntax tree (AST) for the feature, but does not necessarily perform any type-checking. Use Clang's <code>-ast-print</code> option to print the resulting ASTs.</dd> + <dd>Clang builds an abstract syntax tree (AST) for the feature, but does not + necessarily perform any type-checking. Use Clang's <code>-ast-print</code> + option to print the resulting ASTs.</dd> <dt>Sema</dt> - <dd>Clang parses and type-checks this feature and provides a well-formed AST annotated with types. Use Clang's <code>-fsyntax-only</code> to type-check code.</dd> + <dd>Clang parses and type-checks this feature and provides a well-formed AST + annotated with types. Use Clang's <code>-fsyntax-only</code> to type-check + code.</dd> <dt>CodeGen</dt> - <dd>Clang parses, type-checks, and generates code for this feature, allowing one to compile and execute programs.</dd> + <dd>Clang parses, type-checks, and generates code for this feature, allowing + one to compile and execute programs.</dd> </dl> -<p>Updates to this table are welcome! Since Clang already supports -much of C, and therefore much C++, many of the currently-white cells -could be filled in. If you wish to do so, please compare Clang's -implementation against the C++ standard and provide a patch that -updates the table accordingly. Tests for the various features are also +<p>Updates to this table are welcome! Tests for the various features are also welcome!</p> <table width="689" border="1" cellspacing="0"> +<tr><td colspan="6" align="center" bgcolor="#ffffcc">C++0x Features</td> +</tr> <tr> - <th>Section</th> + <th>Feature</th> <th>Parse</th> <th>AST</th> <th>Sema</th> <th>CodeGen</th> <th>Notes</th> </tr> -<tr> - <td>2 [lex]</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 2.1 [lex.phases]</td> - <td class="advanced" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td>Extended characters aren't handled.</td> -</tr> -<tr> - <td> 2.2 [lex.charset]</td> - <td class="basic"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td>No support for extended characters.</td> -</tr> -<tr> - <td> 2.3 [lex.trigraph]</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 2.4 [lex.pptoken]</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 2.5 [lex.digraph]</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 2.6 [lex.token]</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 2.7 [lex.comment]</td> - <td class="advanced" align="center"></td> - <td></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td>NDR "form feed or vtab in comment" is not diagnosed.</td> -</tr> -<tr> - <td> 2.8 [lex.header]</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 2.9 [lex.ppnumber]</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 2.10 [lex.name]</td> - <td class="advanced" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td>No support for extended characters</td> -</tr> -<tr> - <td> 2.11 [lex.key]</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 2.12 [lex.operators]</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 2.13 [lex.literal]</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 2.13.1 [lex.icon]</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 2.13.2 [lex.ccon]</td> - <td class="advanced" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td>Poor support for extended characters</td> -</tr> -<tr> - <td> 2.13.3 [lex.fcon]</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 2.13.4 [lex.string]</td> - <td class="advanced" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td>Poor support for extended characters</td> -</tr> -<tr> - <td> 2.13.5 [lex.bool]</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> -<td>3 [basic]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 3.1 [basic.def]</td> - <td></td> - <td></td> - <td></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 3.2 [basic.def.odr]</td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 3.3 [basic.scope]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 3.3.1 [basic.scope.pdecl]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 3.3.2 [basic.scope.local]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 3.3.3 [basic.scope.proto]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 3.3.4 [basic.funscope]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 3.3.5 [basic.scope.namespace]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="complete"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 3.3.6 [basic.scope.class]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="advanced"></td> - <td class="na">N/A</td> - <td>Does not check that reordering the members of a class maintains semantics.</td> -</tr> -<tr> - <td> 3.3.7 [basic.scope.hiding]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 3.4 [basic.lookup]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 3.4.1 [basic.lookup.unqual]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="advanced"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 3.4.2 [basic.lookup.argdep]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="complete"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 3.4.3 [basic.lookup.qual]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="advanced"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 3.4.3.1 [class.qual]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="advanced"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 3.4.3.2 [namespace.qual]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="advanced"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr><td> 3.4.4 [basic.lookup.elab]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr> - <td> 3.4.5 [basic.lookup.classref]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="advanced"></td> - <td class="na">N/A</td> - <td>Missing ambiguity/consistency checks for paragraphs 3 (~type-name) and 7 (conversion-type-id)</td> -</tr> -<tr> - <td> 3.4.6 [basic.lookup.udir]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="medium"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr><td> 3.5 [basic.link]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.6 [basic.start]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.6.1 [basic.start.main]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.6.2 [basic.start.init]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.6.3 [basic.start.term]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.7 [basic.stc]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.7.1 [basic.stc.static]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.7.2 [basic.stc.auto]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.7.3 [basic.stc.dynamic]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.7.3.1 [basic.stc.dynamic.allocation]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.7.3.2 [basic.stc.dynamic.deallocation]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.7.4 [basic.stc.inherit]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.8 [basic.life]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.9 [basic.types]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.9.1 [basic.fundamental]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.9.2 [basic.compound]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.9.3 [basic.type.qualifier]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 3.10 [basic.lval]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr> - <td>4 [conv]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 4.1 [conv.lval]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> <!-- p2: sizeof --> - <td></td> - <td></td> -</tr> -<tr> - <td> 4.2 [conv.array]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 4.3 [conv.func]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 4.4 [conv.qual]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 4.5 [conv.prom]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 4.6 [conv.fpprom]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 4.7 [conv.integral]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 4.8 [conv.double]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 4.9 [conv.fpint]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 4.10 [conv.ptr]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 4.11 [conv.mem]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 4.12 [conv.bool]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td>5 [expr]</td> - <td class="na">N/A</td> - <td class="na">N/A</td> - <td class="complete" align="center">✓</td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 5.1 [expr.prim]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td></td> - <td></td> -</tr> -<tr><td> 5.2 [expr.post]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr> - <td> 5.2.1 [expr.sub]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.2.2 [expr.call]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.2.3 [expr.type.conv]</td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.2.4 [expr.pseudo]</td> - <td class="complete"></td> - <td class="complete"></td> - <td class="complete"></td> - <td class="complete"></td> - <td></td> -</tr> -<tr> - <td> 5.2.5 [expr.ref]</td> - <td class="complete" align="center"></td> - <td class="complete"></td> - <td class="complete"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.2.6 [expr.post.incr]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.2.7 [expr.dynamic.cast]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.2.8 [expr.typeid]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.2.9 [expr.static.cast]</td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.2.10 [expr.reinterpret.cast]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.2.11 [expr.const.cast]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr><td> 5.3 [expr.unary]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 5.3.1 [expr.unary.op]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr> - <td> 5.3.1p1 Unary *</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.3.1p2-5 Unary &</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.3.1p6 Unary +</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.3.1p7 Unary -</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.3.1p8 Unary !</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.3.1p9 Unary ~</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.3.2 [expr.pre.incr]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.3.3 [expr.sizeof]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.3.4 [expr.new]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td></td> - <td>operator delete is not looked up, initialization not quite correct</td> -</tr> -<tr> - <td> 5.3.5 [expr.delete]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.4 [expr.cast]</td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.5 [expr.mptr.oper]</td> - <td class="complete" align="center"></td> - <td class="advanced"></td> - <td class="advanced"></td> - <td></td> - <td>Dereferenced member function pointers have the wrong type(see FIXME in CheckPointerToMemberOperands).</td> -</tr> -<tr> - <td> 5.6 [expr.mul]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.7 [expr.add]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.8 [expr.shift]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.9 [expr.rel]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.10 [expr.eq]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.11 [expr.bit.and]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.12 [expr.xor]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.13 [expr.or]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.14 [expr.log.and]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.15 [expr.log.or]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.16 [expr.cond]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td>some invalid hierarchy casts still accepted, but that's a general problem</td> -</tr> -<tr> - <td> 5.17 [expr.ass]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.18 [expr.comma]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td cl |