summaryrefslogtreecommitdiffstats
path: root/www/cxx_status.html
diff options
context:
space:
mode:
Diffstat (limited to 'www/cxx_status.html')
-rw-r--r--www/cxx_status.html40
1 files changed, 28 insertions, 12 deletions
diff --git a/www/cxx_status.html b/www/cxx_status.html
index e2ab51f..ac1862a 100644
--- a/www/cxx_status.html
+++ b/www/cxx_status.html
@@ -11,6 +11,7 @@
.svn { background-color: #FFFF99 }
.full { background-color: #CCFF99 }
.na { background-color: #DDDDDD }
+ span:target { background-color: #FFFFBB; outline: #DDDD55 solid thin; }
th { background-color: #FFDDAA }
</style>
</head>
@@ -23,7 +24,7 @@
<!--*************************************************************************-->
<h1>C++98 and C++11 Support in Clang</h1>
<!--*************************************************************************-->
-<p>Last updated: $Date: 2012-10-23 02:32:41 +0200 (Tue, 23 Oct 2012) $</p>
+<p>Last updated: $Date: 2013-03-18 22:57:52 +0100 (Mon, 18 Mar 2013) $</p>
<h2 id="cxx98">C++98 implementation status</h2>
@@ -38,9 +39,11 @@
<p>Clang provides support for a number of features included in the new <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50372">ISO C++ Standard, ISO/IEC 14882:2011</a>. The following table describes which C++11 features have been implemented in Clang and in which Clang versions they became available.</p>
-<p>You can use Clang in C++11 mode either
-with <a href="http://libcxx.llvm.org/">libc++</a> or with gcc's libstdc++.
-Patches are needed to make <a href="libstdc++4.4-clang0x.patch">libstdc++-4.4</a>
+<p>By default, Clang builds C++ code according to the C++98 standard, with many
+C++11 features accepted as extensions. You can use Clang in C++11 mode with the
+<code>-std=c++11</code> option. Clang's C++11 mode can be used
+with <a href="http://libcxx.llvm.org/">libc++</a> or with gcc's libstdc++, but
+patches are needed to make <a href="libstdc++4.4-clang0x.patch">libstdc++-4.4</a>
work with Clang in C++11 mode. Patches are also needed to make
<a href="libstdc++4.6-clang11.patch">libstdc++-4.6</a>,
and <a href="libstdc++4.7-clang11.patch">libstdc++-4.7</a> work with Clang
@@ -171,7 +174,7 @@ releases prior to version 3.2 in C++11 mode.</p>
<tr>
<td>Generalized attributes</td>
<td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf">N2761</a></td>
- <td class="none" align="center">No</td>
+ <td class="svn" align="center">SVN <a href="#n2761">(1)</a></td>
</tr>
<tr>
<td>Generalized constant expressions</td>
@@ -181,7 +184,7 @@ releases prior to version 3.2 in C++11 mode.</p>
<tr>
<td>Alignment support</td>
<td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf">N2341</a></td>
- <td class="full" align="center">Clang 3.0</td>
+ <td class="svn" align="center">SVN</td>
</tr>
<!-- Skipped N1627: Conditionally-support behavior -->
<!-- Skipped N1727: Changing Undefined Behavior into Diagnosable Errors -->
@@ -300,7 +303,7 @@ releases prior to version 3.2 in C++11 mode.</p>
<tr>
<td>Sequence points</td>
<td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html">N2239</a></td>
- <td class="none" align="center">No</td>
+ <td class="svn" align="center">SVN</td>
</tr>
<tr>
<td>Atomic operations</td>
@@ -310,7 +313,7 @@ releases prior to version 3.2 in C++11 mode.</p>
<tr>
<td>Strong Compare and Exchange</td>
<td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2748.html">N2748</a></td>
- <td class="full" align="center">Clang 3.1</td>
+ <td class="full" align="center">Clang 3.1 <a href="#n2748">(2)</a></td>
</tr>
<tr>
<td>Bidirectional Fences</td>
@@ -321,12 +324,12 @@ releases prior to version 3.2 in C++11 mode.</p>
<tr>
<td>Memory model</td>
<td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm">N2429</a></td>
- <td class="none" align="center">No</td>
+ <td class="full" align="center">Clang 3.2</td>
</tr>
<tr>
<td>Data-dependency ordering: atomics and memory model</td>
<td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm">N2664</a></td>
- <td class="none" align="center">No</td>
+ <td class="full" align="center">Clang 3.2 <a href="#n2664">(3)</a></td>
</tr>
<tr>
<td>Propagating exceptions</td>
@@ -351,7 +354,7 @@ releases prior to version 3.2 in C++11 mode.</p>
<tr>
<td>Dynamic initialization and destruction with concurrency</td>
<td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm">N2660</a></td>
- <td class="none" align="center">No</td>
+ <td class="full" align="center">Clang 2.9</td>
</tr>
<tr class="separator">
@@ -375,9 +378,22 @@ releases prior to version 3.2 in C++11 mode.</p>
<tr>
<td>Extended integral types</td>
<td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf">N1988</a></td>
- <td class="none" align="center">No</td>
+ <td class="na" align="center">N/A <a href="#n1988">(4)</a></td>
</tr>
</table>
+
+<p>
+<span id="n2761">(1): The <code>[[carries_dependency]]</code> attribute
+has no effect.</span><br>
+<span id="n2748">(2): All compare-exchange operations are emitted as
+strong compare-exchanges.</span><br>
+<span id="n2664">(3): <code>memory_order_consume</code> is lowered to
+<code>memory_order_acquire</code>.</span><br>
+<span id="n1988">(4): <code>__int128</code> is not treated as an extended
+integer type, because changing <code>intmax_t</code> would be an
+ABI-incompatible change.</span>
+</p>
+
</div>
</body>
</html>
OpenPOWER on IntegriCloud