diff options
Diffstat (limited to 'www')
-rw-r--r-- | www/analyzer/annotations.html | 62 | ||||
-rw-r--r-- | www/analyzer/latest_checker.html.incl | 2 | ||||
-rw-r--r-- | www/clang-tutorial.html | 56 | ||||
-rw-r--r-- | www/comparison.html | 6 | ||||
-rw-r--r-- | www/cxx_compatibility.html | 23 | ||||
-rw-r--r-- | www/cxx_status.html | 2283 | ||||
-rw-r--r-- | www/get_started.html | 5 |
7 files changed, 193 insertions, 2244 deletions
diff --git a/www/analyzer/annotations.html b/www/analyzer/annotations.html index 6204713..5184aed 100644 --- a/www/analyzer/annotations.html +++ b/www/analyzer/annotations.html @@ -53,7 +53,9 @@ recognized by GCC. Their use can be conditioned using preprocessor macros <li><a href="#cocoa_mem">Cocoa & Core Foundation Memory Management Annotations</a> <ul> <li><a href="#attr_ns_returns_retained">Attribute 'ns_returns_retained'</a></li> + <li><a href="#attr_ns_returns_not_retained">Attribute 'ns_returns_not_retained'</a></li> <li><a href="#attr_cf_returns_retained">Attribute 'cf_returns_retained'</a></li> + <li><a href="#attr_cf_returns_not_retained">Attribute 'cf_returns_not_retained'</a></li> </ul> </li> </ul> @@ -190,6 +192,36 @@ use 'cf_returns_retained'.</p> <img src="images/example_ns_returns_retained.png"> +<h4 id="attr_ns_returns_not_retained">Attribute 'ns_returns_not_retained' +(Clang-specific)</h4> + +<p>The 'ns_returns_not_retained' attribute is the complement of '<a +href="#attr_ns_returns_retained">ns_returns_retained</a>'. Where a function or +method may appear to obey the Cocoa conventions and return a retained Cocoa +object, this attribute can be used to indicate that the object reference +returned should not be considered as an "owning" reference being +returned to the caller.</p> + +<p>Usage is identical to <a +href="#attr_ns_returns_retained">ns_returns_retained</a>. When using the +attribute, be sure to declare it within the proper macro that checks for +its availability, as it is not available in earlier versions of the analyzer:</p> + +<pre class="code_example"> +<span class="command">$ cat test.m</span> +#ifndef __has_feature // Optional. +#define __has_feature(x) 0 // Compatibility with non-clang compilers. +#endif + +#ifndef NS_RETURNS_NOT_RETAINED +#if __has_feature(attribute_ns_returns_not_retained) +<span class="code_highlight">#define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained))</span> +#else +#define NS_RETURNS_NOT_RETAINED +#endif +#endif +</pre> + <h4 id="attr_cf_returns_retained">Attribute 'cf_returns_retained' (Clang-specific)</h4> @@ -288,6 +320,36 @@ collection:</p> <img src="images/example_cf_returns_retained_gc.png"> +<h4 id="attr_cf_returns_not_retained">Attribute 'cf_returns_not_retained' +(Clang-specific)</h4> + +<p>The 'cf_returns_not_retained' attribute is the complement of '<a +href="#attr_cf_returns_retained">cf_returns_retained</a>'. Where a function or +method may appear to obey the Core Foundation or Cocoa conventions and return +a retained Core Foundation object, this attribute can be used to indicate that +the object reference returned should not be considered as an +"owning" reference being returned to the caller.</p> + +<p>Usage is identical to <a +href="#attr_cf_returns_retained">cf_returns_retained</a>. When using the +attribute, be sure to declare it within the proper macro that checks for +its availability, as it is not available in earlier versions of the analyzer:</p> + +<pre class="code_example"> +<span class="command">$ cat test.m</span> +#ifndef __has_feature // Optional. +#define __has_feature(x) 0 // Compatibility with non-clang compilers. +#endif + +#ifndef CF_RETURNS_NOT_RETAINED +#if __has_feature(attribute_cf_returns_not_retained) +<span class="code_highlight">#define CF_RETURNS_NOT_RETAINED __attribute__((cf_returns_not_retained))</span> +#else +#define CF_RETURNS_NOT_RETAINED +#endif +#endif +</pre> + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <h2 id="custom_assertions">Custom Assertion Handlers</h2> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> diff --git a/www/analyzer/latest_checker.html.incl b/www/analyzer/latest_checker.html.incl index 4131306..ecc516a 100644 --- a/www/analyzer/latest_checker.html.incl +++ b/www/analyzer/latest_checker.html.incl @@ -1 +1 @@ -<b><a href="http://checker.minormatter.com/checker-240.tar.bz2">checker-240.tar.bz2</a></b> (built April 11, 2010) +<b><a href="http://files.me.com/tkremenek/mt0ve6">checker-241.tar.bz2</a></b> (built May 26, 2010) diff --git a/www/clang-tutorial.html b/www/clang-tutorial.html new file mode 100644 index 0000000..0e17046 --- /dev/null +++ b/www/clang-tutorial.html @@ -0,0 +1,56 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head> + <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> + <title>Clang - Quick Tutorial</title> + <link type="text/css" rel="stylesheet" href="menu.css" /> + <link type="text/css" rel="stylesheet" href="content.css" /> +</head> +<body> + +<!--#include virtual="menu.html.incl"--> + +<div id="content"> + +<h1>Tutorial</h1> + + <p>Invoking the BoostCon tool:</p> + <pre> +$ clang -cc1 -boostcon t.cpp +</pre> + + <p>Teach the BoostCon action to identify and print C++ classes:</p> + <pre> +bool VisitCXXRecordDecl(CXXRecordDecl *D) { + std::cout << D->getNameAsString() + << '\n'; + return false; +} +</pre> + + <p>Walk and print base classes of a class:</p> + <pre> +for(CXXRecordDecl::base_class_iterator + B = D->bases_begin(), BEnd = D->bases_end(); + B != BEnd; ++B) { + QualType BaseType = B->getType(); + std::cout << " " << BaseType.getAsString() + << '\n'; +} +</pre> + + <p>Retrieve the C++ class declaration from a base type:</p> + <pre> +if (const RecordType *RTy + = BaseType->getAs<RecordType>()) { + RecordDecl *Base = RTy->getDecl(); + if (CXXRecordDecl *BaseCXX + = dyn_cast<CXXRecordDecl>(Base)) { + + } +} +</pre> +</div> +</body> +</html> diff --git a/www/comparison.html b/www/comparison.html index 0a6a7c8..dcf6220 100644 --- a/www/comparison.html +++ b/www/comparison.html @@ -50,8 +50,10 @@ <ul> <li>GCC supports languages that clang does not aim to, such as Java, Ada, FORTRAN, etc.</li> - <li>GCC front-ends are very mature and already support C++. - <a href="cxx_status.html">clang's support for C++</a> is further behind.</li> + <li><a href="cxx_status.html">Clang support for C++</a> is more compliant + than GCC's in many ways, but is not as mature as GCC's. GCC has several + C++'0x features that Clang does not yet support (e.g. variadic + templates).</li> <li>GCC supports more targets than LLVM.</li> <li>GCC is popular and widely adopted.</li> <li>GCC does not require a C++ compiler to build it.</li> diff --git a/www/cxx_compatibility.html b/www/cxx_compatibility.html index bd48c6c..fe03240 100644 --- a/www/cxx_compatibility.html +++ b/www/cxx_compatibility.html @@ -42,14 +42,25 @@ C++-conformance bug in your code and how you can fix it.</p> <h2 id="vla">Variable-length arrays</h2> <!-- ======================================================================= --> -<p>GCC allows an array's size to be determined at run time. This, -however, is not standard C++. Furthermore, it is a potential security -hole as an incorrect array size may overflow the stack. If Clang tells -you <tt>"variable length arrays are not permitted in C++"</tt>, here -are some ways in which you can fix it:</p> +<p>GCC and C99 allow an array's size to be determined at run +time. This extension is not permitted in standard C++. However, Clang +supports such variable length arrays in very limited circumstances for +compatibility with GNU C and C99 programs:</p> + +<ul> + <li>The element type of a variable length array must be a POD + ("plain old data") type, which means that it cannot have any + user-declared constructors or destructors, base classes, or any + members if non-POD type. All C types are POD types.</li> + + <li>Variable length arrays cannot be used as the type of a non-type +template parameter.</li> </ul> + +<p>If your code uses variable length arrays in a manner that Clang doesn't support, there are several ways to fix your code: <ol> -<li>replace it with a fixed-size array if you can determine a +<li>replace the variable length array with a fixed-size array if you can + determine a reasonable upper bound at compile time; sometimes this is as simple as changing <tt>int size = ...;</tt> to <tt>const int size = ...;</tt> (if the definition of <tt>size</tt> is a compile-time diff --git a/www/cxx_status.html b/www/cxx_status.html index 9ba3200..8fccc2a 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,11 +22,9 @@ <div id="content"> <!--*************************************************************************--> -<h1>C++ Support in Clang</h1> +<h1>C++ and C++'0x Support in Clang</h1> <!--*************************************************************************--> -<p>Last updated: $Date: 2010-04-12 18:01:38 +0200 (Mon, 12 Apr 2010) $</p> - -<h1>Clang C++ Status</h1> +<p>Last updated: $Date: 2010-05-21 23:16:21 +0200 (Fri, 21 May 2010) $</p> <ul> <li><a href="#projects">Projects Building with Clang</a></li> @@ -34,19 +32,19 @@ <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' + (which has been removed from the C++'0x draft). + 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 +66,28 @@ 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.</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 class="complete" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 5.19 [expr.const]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="basic"></td> - <td></td> - <td>Uses C semantics</td> -</tr> -<tr> - <td>6 [stmt.stmt]</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> 6.1 [stmt.label]</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> 6.2 [stmt.expr]</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> 6.3 [stmt.block]</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> 6.4 [stmt.select]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td></td> - <td>Conversion of declarations to required types not really supported.</td> -</tr> -<tr> - <td> 6.4.1 [stmt.if]</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> 6.4.2 [stmt.switch]</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> 6.5 [stmt.iter]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td></td> - <td>Conversion of declarations to required types not really supported.</td> -</tr> -<tr> - <td> 6.5.1 [stmt.while]</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> 6.5.2 [stmt.do]</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> 6.5.3 [stmt.for]</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> 6.6 [stmt.jump]</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> 6.6.1 [stmt.break]</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> 6.6.2 [stmt.cont]</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> 6.6.3 [stmt.return]</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> 6.6.4 [stmt.goto]</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> 6.7 [stmt.dcl]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td></td> - <td>Existence and accessibility of destructors is not tested for.</td> -</tr> -<tr> - <td> 6.8 [stmt.ambig]</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>7 [dcl.dcl]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> - 7.1 [dcl.spec]</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> 7.1.1 [dcl.stc]</td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td></td> - <td>Linkage merging has some errors.</td> -</tr> -<tr> - <td> 7.1.2 [dcl.fct.spec]</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> 7.1.3 [dcl.typedef]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> -</tr> -<tr> - <td> 7.1.4 [dcl.friend]</td> - <td class="medium"></td> - <td class="medium"></td> - <td class="medium"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 7.1.5 [dcl.type]</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> 7.1.5.1 [dcl.type.cv]</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> 7.1.5.2 [dcl.type.simple]</td> - <td class="advanced"></td> - <td class="advanced"></td> - <td class="advanced"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 7.1.5.3 [dcl.type.elab]</td> - <td class="advanced"></td> - <td class="advanced"></td> - <td class="advanced"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 7.2 [dcl.enum]</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> 7.3 [basic.namespace]</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> 7.3.1 [namespace.def]</td> - <td class="advanced"></td> - <td class="advanced"></td> - <td class="advanced"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 7.3.1.1 [namespace.unnamed]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 7.3.1.2 [namespace.memdef]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="advanced"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 7.3.2 [namespace.alias]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 7.3.3 [namespace.udecl]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 7.3.4[namespace.udir]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="advanced"></td> - <td class="broken" align="center"></td> - <td>Example in p4 fails.</td> -</tr> -<tr><td> - 7.4 [dcl.asm]</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> 7.5 [dcl.link]</td> - <td class="complete" align="center"></td> - <td class="medium"></td> - <td class="medium"></td> - <td></td> - <td></td> -</tr> -<tr> - <td>8 [dcl.decl]</td><td></td><td></td><td></td><td></td><td></td> -</tr> -<tr> - <td> 8.1 [dcl.name]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 8.2 [dcl.ambig.res]</td> - <td class="complete" align="center">✓</td> - <td class="na" align="center">N/A</td> - <td class="complete" align="center">✓</td> - <td class="na">N/A</td> - <td></td> -</tr> -<tr> - <td> 8.3 [dcl.meaning]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na">N/A</td> - <td></td> -</tr> - <tr> - <td> 8.3.1 [dcl.ptr]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td></td> - </tr> - <tr> - <td> 8.3.2 [dcl.ref]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td></td> - </tr> - <tr> - <td> 8.3.3 [dcl.mptr]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td></td> - </tr> - <tr> - <td> 8.3.4 [dcl.array]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td></td> - </tr> - <tr> - <td> 8.3.5 [dcl.fct]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="na">N/A</td> - <td></td> - </tr> - <tr> - <td> 8.3.6 [dcl.fct.default]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na">N/A</td> - <td>Partial support for default arguments of templates.</td> -</tr> -<tr> - <td> 8.4 [dcl.fct.def]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="medium" align="center"></td> - <td></td> -</tr> -<tr> - <td> 8.5 [dcl.init]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td></td> -</tr> -<tr> - <td> 8.5.1[dcl.init.aggr]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td class="basic" align="center"></td> - <td>No CodeGen for dynamic initialization.</td> -</tr> -<tr> - <td> 8.5.2[dcl.init.string]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td class="basic" align="center"></td> - <td></td> -</tr> -<tr> - <td> 8.5.3 [dcl.init.ref]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td class="basic" align="center"></td> - <td></td> -</tr> -<tr> - <td>9 [class]</td> - <td class="advanced" align="center"></td> - <td></td> - <td></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 9.1 [class.name]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 9.2 [class.mem]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td></td> -</tr> -<tr> - <td> 9.3 [class.mfct]</td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="basic" align="center"></td> - <td></td> -</tr> -<tr> - <td> 9.3.1 [class.mfct.non-static]</td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="basic" align="center"></td> - <td></td> -</tr> -<tr> - <td> 9.3.2 [class.this]</td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="basic"></td> - <td></td> -</tr> -<tr> - <td> 9.4 [class.static]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="basic"></td> - <td></td> -</tr> -<tr> - <td> 9.4.1 [class.static.mfct]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="basic"></td> - <td></td> -</tr> -<tr> - <td> 9.4.2 [class.static.data]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="basic"></td> - <td></td> -</tr> -<tr> - <td> 9.5 [class.union]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete"></td> - <td class="complete"></td> - <td></td> -</tr> -<tr> - <td> 9.6 [class.bit]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td></td> -</tr> -<tr> - <td> 9.7 [class.nest]</td> - <td class="complete" align="center"></td> - <td class="advanced"></td> - <td class="advanced"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 9.8 [class.local]</td> - <td class="complete" align="center">✓</td> - <td class="complete" align="center">✓</td> - <td class="complete" align="center">✓</td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 9.9 [class.nested.type]</td> - <td class="complete" align="center">✓</td> - <td class="complete" align="center">✓</td> - <td class="complete" align="center">✓</td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td>10 [class.derived]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td></td> -</tr> -<tr> - <td> 10.1 [class.mi]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td></td> -</tr> -<tr> - <td> 10.2 [class.member.lookup]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 10.3 [class.virtual]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td></td> -</tr> -<tr> - <td> 10.4 [class.abstract]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> - </tr> -<tr> - <td>11 [class.access]</td> - <td class="medium" align="center"></td> - <td class="medium" align="center"></td> - <td class="broken" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 11.1 [class.access.spec]</td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="complete" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 11.2 [class.access.base]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="broken" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 11.3 [class.access.dcl]</td> - <td class="broken" align="center"></td> - <td class="broken" align="center"></td> - <td class="broken" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 11.4 [class.friend]</td> - <td class="medium" align="center"></td> - <td class="medium" align="center"></td> - <td class="medium" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 11.5 [class.protected]</td> - <td class="na" align="center"></td> - <td class="complete" align="center"></td> - <td class="broken" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 11.6 [class.access.virt]</td> - <td class="na" align="center"></td> - <td class="na" align="center"></td> - <td class="broken" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 11.7 [class.paths]</td> - <td class="na" align="center"></td> - <td class="na" align="center"></td> - <td class="broken" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 11.8 [class.access.nest]</td> - <td class="na" align="center"></td> - <td class="na" align="center"></td> - <td class="broken" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr><td>12 [special]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr> - <td> 12.1 [class.ctor]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td></td> -</tr> -<tr> - <td> 12.2 [class.temporary]</td> - <td class="na" align="center">N/A</td> - <td class="medium" align="center"></td> - <td class="medium" align="center"></td> - <td class="medium" align="center"></td> - <td></td> -</tr> -<tr> - <td> 12.3 [class.conv]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td></td> -</tr> -<tr> - <td> 12.3.1 [class.conv.ctor]</td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td></td> -</tr> -<tr> - <td> 12.3.2 [class.conv.fct]</td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td></td> -</tr> -<tr> - <td> 12.4 [class.dtor]</td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td class="medium" align="center"></td> - <td class="medium" align="center"></td> - <td></td> -</tr> -<tr><td> 12.5 [class.free]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 12.6 [class.init]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 12.6.1 [class.expl.init]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr> - <td> 12.6.2 [class.base.init]</td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td>Most of the semantics of base initializations are implemented.</td> -</tr> -<tr><td> 12.7 [class.cdtor]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr> - <td> 12.8 [class.copy]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td>Most of the semantics of copy constructors are implemented.</td> -</tr> - -<tr><td>13 [over]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr> - <td> 13.1 [over.load]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td></td> -</tr> -<tr> - <td> 13.2 [over.dcl]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3 [over.match]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.1 [over.match.funcs]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.1.1 [over.match.call]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.1.1.1 [over.call.func]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.1.1.2 [over.call.object]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.1.2 [over.match.oper]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.1.3 [over.match.ctor]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.1.4 [over.match.copy]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.1.5 [over.match.conv]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.1.6 [over.match.ref]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.2 [over.match.viable]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.3 [over.match.best]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.3.1 [over.best.ics]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.3.1.1 [over.ics.scs]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.3.1.2 [over.ics.user]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.3.1.3 [over.ics.ellipsis]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.3.1.4 [over.ics.ref]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.3.3.2 [over.ics.rank]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.4 [over.over]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.5 [over.oper]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.5.1 [over.unary]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.5.2 [over.binary]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.5.3 [over.ass]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.5.4 [over.call]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.5.5 [over.sub]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.5.6 [over.ref]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 13.5.7 [over.inc]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</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="na" align="center">N/A</td> - <td>Missing support for the ternary operator (p24, p25).</td> -</tr> -<tr> - <td>14 [temp]</td> - <td class="medium" align="center"></td> - <td class="basic" align="center"></td> - <td class="basic" align="center"></td> - <td class="broken" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.1 [temp.param]</td> - <td class="complete" align="center">✓</td> - <td class="complete" align="center">✓</td> - <td class="medium" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 14.2 [temp.names]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 14.3 [temp.arg]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 14.3.1 [temp.arg.type]</td> - <td class="complete" align="center">✓</td> - <td class="complete" align="center">✓</td> - <td class="complete" align="center"></td> - <td class="na" align="center">N/A</td> - <td>Paragraph 3 will be tested elsewhere</td> -</tr> -<tr> - <td> 14.3.2 [temp.arg.nontype]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 14.3.3 [temp.arg.template]</td> - <td class="complete" align="center"></td> - <td class="medium" align="center"></td> - <td class="basic" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 14.4 [temp.type]</td> - <td class="na" align="center">N/A</td> - <td class="complete" align="center">✓</td> - <td class="complete" align="center">✓</td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 14.5 [temp.decls]</td><td></td><td></td><td></td><td></td><td></td> -</tr> -<tr> - <td> 14.5.1 [temp.class]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.5.1.1 [temp.mem.func]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.5.1.2 [temp.mem.class]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.5.1.3 [temp.static]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.5.2 [temp.mem]</td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td class="medium" align="center"></td> - <td class="na" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.5.3 [temp.friend]</td> - <td class="medium" align="center"></td> - <td class="medium" align="center"></td> - <td class="broken" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 14.5.4 [temp.class.spec]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 14.5.4.1 [temp.class.spec.match]</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td class="complete" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 14.5.4.2 [temp.class.order]</td> - <td class="na" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 14.5.5.3 [temp.class.spec.mfunc]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 14.5.5 [temp.fct]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="medium" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.5.5.1 [temp.over.link]</td> - <td class="na" align="center"></td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 14.5.5.2 [temp.func.order]</td> - <td class="na" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 14.6 [temp.res]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.6.1 [temp.local]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.6.2 [temp.dep]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.6.2.1 [temp.dep.type]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.6.2.2 [temp.dep.expr]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.6.2.3 [temp.dep.constexpr]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.6.2.4 [temp.dep.temp]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.6.3 [temp.nondep]</td> - <td class="na" align="center">N/A</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="na" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.6.4 [temp.dep.res]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.6.4.1 [temp.point]</td> - <td class="na" align="center">N/A</td> - <td class="medium" align="center"></td> - <td class="medium" align="center"></td> - <td class="medium" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.6.4.2 [temp.dep.candidate]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center"></td> - <td>Not restricted to functions with external linkage</td> -</tr> -<tr> - <td> 14.6.5 [temp.inject]</td> - <td class="na" align="center">N/A</td> - <td class="basic" align="center"></td> - <td class="basic" align="center"></td> - <td class="na" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.7 [temp.spec]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.7.1 [temp.inst]</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.7.2 [temp.explicit]</td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="complete" align="center"></td> - <td>Cannot test paragraph 11 until access control is implemented.<br/> - ASTs do not carry enough information to reproduce source code accurately.</td> -</tr> -<tr> - <td> 14.7.3 [temp.expl.spec]</td> - <td class="complete" align="center">✓</td> - <td class="advanced" align="center"></td> - <td class="complete" align="center">✓</td> - <td class="complete" align="center"></td> - <td>ASTs do not carry enough information to reproduce source code accurately</td> -</tr> -<tr> - <td> 14.8 [temp.fct.spec]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.8.1 [temp.arg.explicit]</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.8.2 [temp.deduct]</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 14.8.2.1 [temp.deduct.call]</td> - <td class="na" align="center"></td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.8.2.2 [temp.deduct.funcaddr]</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 14.8.2.3 [temp.deduct.conv]</td> - <td class="na" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center"></td> - <td></td> -</tr> -<tr> - <td> 14.8.2.4 [temp.deduct.type]</td> - <td class="na" align="center">N/A</td> - <td class="complete" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 14.8.3 [temp.over]</td> - <td class="na" align="center"></td> - <td class="advanced" align="center"></td> - <td class="advanced" align="center"></td> - <td class="na" align="center"></td> - <td></td> -</tr> -<tr> - <td>15 [except]</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> 15.1 [except.throw]</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td></td> - <td></td> -</tr> -<tr> - <td> 15.2 [except.ctor]</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td></td> - <td></td> -</tr> -<tr> - <td> 15.3 [except.handle]</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td class="advanced" align="center"></td> - <td></td> - <td>Not all constraints are checked</td> -</tr> -<tr> - <td> 15.4 [except.spec]</td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="complete" align="center"></td> - <td class="broken"></td> - <td></td> -</tr> -<tr> - <td> 15.5 [except.special]</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 15.5.1 [except.terminate]</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 15.5.2 [except.unexpected]</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 15.5.3 [except.uncaught]</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td></td> -</tr> -<tr> - <td> 15.6 [except.access]</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td class="na" align="center">N/A</td> - <td>Redundant - struck from C++0x</td> -</tr> -<tr><td>16 [cpp]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 16.1 [cpp.cond]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 16.2 [cpp.include]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 16.3 [cpp.replace]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 16.3.1 [cpp.subst]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 16.3.2 [cpp.stringize]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 16.3.3 [cpp.concat]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 16.3.4 [cpp.rescan]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 16.3.5 [cpp.scope]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 16.4 [cpp.line]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 16.5 [cpp.error]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 16.6 [cpp.pragma]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 16.7 [cpp.null]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> 16.8 [cpp.predefined]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td>A [gram]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> A.1 [gram.key]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> A.2 [gram.lex]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> A.3 [gram.basic]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> A.4 [gram.expr]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> A.5 [gram.stmt]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> A.6 [gram.dcl]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> A.7 [gram.decl]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> A.8 [gram.class]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> A.9 [gram.derived]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> A.10 [gram.special]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> A.11 [gram.over]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> A.12 [gram.temp]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> A.13 [gram.except]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> A.14 [gram.cpp]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td>B [implimits]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td>C [diff]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.1 [diff.iso]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.1.1 [diff.lex]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.1.2 [diff.basic]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.1.3 [diff.expr]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.1.4 [diff.stat]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.1.5 [diff.dcl]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.1.6 [diff.decl]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.1.7 [diff.class]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.1.8 [diff.special]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.1.9 [diff.cpp]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.2 [diff.library]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.2.1 [diff.mods.to.headers]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.2.2 [diff.mods.to.definitions]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.2.2.2 [diff.wchar.t]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.2.2.3 [diff.header.iso646.h]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.2.2.4 [diff.null]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.2.3 [diff.mods.to.declarations]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.2.4 [diff.mods.to.behavior]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.2.4.1 [diff.offsetof]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> C.2.4.2 [diff.malloc]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td>D [depr]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> D.1 [depr.incr.bool]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> D.2 [depr.static]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> D.3 [depr.access.dcl]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> D.4 [depr.string]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td> D.5 [depr.c.headers]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr><td>E [extendid]</td><td></td><td></td><td></td><td></td><td></td></tr> -<tr> -</table> - <h2 id="cxx0x">C++0x Implementation status</h2> -<p>Clang's development effort is focused primarily on supporting 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> - -<table width="689" border="1" cellspacing="0"> - <td colspan="6" align="center" bgcolor="#ffffcc">C++0x Features</td> -</tr> <tr> <td>Explicit conversion operators (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf">N2437</a>)</td> <td class="complete" align="center"></td> diff --git a/www/get_started.html b/www/get_started.html index 141698f..96979af 100644 --- a/www/get_started.html +++ b/www/get_started.html @@ -61,6 +61,11 @@ follows:</p> <li>Note: For subsequent Clang development, you can just do make at the clang directory level.</li> </ul> + + <p>It is also possible to use CMake instead of the makefiles. With CMake it + is also possible to generate project files for several IDEs: Eclipse CDT4, + CodeBlocks, Qt-Creator (use the CodeBlocks generator), KDevelop3.</p> + <li>If you intend to work on Clang C++ support, you may need to tell it how to find your C++ standard library headers. If Clang cannot find your system libstdc++ headers, please follow these instructions:</li> |