xref: /openbsd/gnu/llvm/clang/www/c_status.html (revision 5a38ef86)
1<!DOCTYPE html>
2<html>
3<head>
4  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5  <title>Clang - C Programming Language Status</title>
6  <link type="text/css" rel="stylesheet" href="menu.css">
7  <link type="text/css" rel="stylesheet" href="content.css">
8  <style type="text/css">
9    .none { background-color: #FFCCCC }
10    .partial { background-color: #FFE0B0 }
11    .unreleased { background-color: #FFFF99 }
12    .unknown { background-color: #FF55FF }
13    .full { background-color: #CCFF99 }
14    .na { background-color: #DDDDDD }
15    :target { background-color: #FFFFBB; outline: #DDDD55 solid thin; }
16    th { background-color: #FFDDAA }
17    td { vertical-align: middle }
18    tt { white-space: nowrap }
19  </style>
20</head>
21<body>
22
23<!--#include virtual="menu.html.incl"-->
24
25<div id="content">
26
27<!--*************************************************************************-->
28<h1>C Support in Clang</h1>
29<!--*************************************************************************-->
30
31<p>Clang implements the following published and upcoming ISO C standards:</p>
32
33<table width="689" border="1" cellspacing="0">
34<tr>
35 <th>Language Standard</th>
36 <th>Flag</th>
37 <th>Available in Clang?</th>
38</tr>
39<tr>
40 <td><a href="#c89">C89</a></td>
41 <td><tt>-std=c89</tt></td>
42 <td class="full" align="center">Yes</td>
43</tr>
44<tr>
45 <td><a href="#c99">C99</a></td>
46 <td><tt>-std=c99</tt></td>
47 <td class="unknown" align="center">Almost certainly</td>
48</tr>
49<tr>
50 <td><a href="#c11">C11</a></td>
51 <td><tt>-std=c11</tt></td>
52 <td class="unknown" align="center">Probably</td>
53</tr>
54<tr>
55 <td><a href="#c17">C17</a></td>
56 <td><tt>-std=c17</tt></td>
57 <td class="unknown" align="center">Maybe?</td>
58</tr>
59<tr>
60 <td><a href="#c2x">C2x</a></td>
61 <td><tt>-std=c2x</tt></td>
62 <td class="partial" align="center">Partial</td>
63</tr>
64</table>
65
66<p>The implementation status for C99, C11, and C17 are currently under
67investigation. Any proposal whose status in Clang is currently unknown
68will be marked in <span class="unknown">magenta</span>.</p>
69
70<p>The Clang community is continually striving to improve C standards
71compliance between releases. We implement the resolution for defect
72reports, but we do not currently track our DR status (help with
73tracking DR status is appreciated).</p>
74
75<p>The <a href="https://bugs.llvm.org/">LLVM bug tracker</a> contains a
76Clang C component that tracks known bugs with Clang's language
77conformance.</p>
78
79<h2 id="c89">C89 implementation status</h2>
80
81<p>Clang implements all of the ISO 9899:1990 (C89) standard.</p>
82<p>You can use Clang in C89 mode with the <code>-std=c89</code> or <code>-std=c90</code> options.</p>
83
84<h2 id="c99">C99 implementation status</h2>
85
86<p>Clang implements a significant portion of the ISO 9899:1999 (C99) standard, but the status of individual proposals is still under investigation.</p>
87<p>You can use Clang in C99 mode with the <code>-std=c99</code> option.</p>
88
89<h2 id="c11">C11 implementation status</h2>
90
91<p>Clang implements a significant portion of the ISO 9899:2011 (C11) standard, but the status of individual proposals is still under investigation.</p>
92<p>You can use Clang in C11 mode with the <code>-std=c11</code> option (use <code>-std=c1x</code> in Clang 3.0 and earlier).</p>
93
94<details>
95<summary>List of features and minimum Clang version with support</summary>
96
97<table width="689" border="1" cellspacing="0">
98 <tr>
99    <th>Language Feature</th>
100    <th>C11 Proposal</th>
101    <th>Available in Clang?</th>
102 </tr>
103    <tr>
104      <td>A finer-grained specification for sequencing</td>
105      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1252.htm">N1252</a></td>
106      <td class="unknown" align="center">Unknown</td>
107    </tr>
108    <tr>
109      <td>Clarification of expressions</td>
110      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1282.pdf">N1282</a></td>
111      <td class="unknown" align="center">Unknown</td>
112    </tr>
113    <tr>
114      <td>Extending the lifetime of temporary objects (factored approach)</td>
115      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1285.htm">N1285</a></td>
116      <td class="unknown" align="center">Unknown</td>
117    </tr>
118    <tr>
119      <td>Requiring signed char to have no padding bits</td>
120      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1310.htm">N1310</a></td>
121      <td class="unknown" align="center">Unknown</td>
122    </tr>
123    <tr>
124      <td>Initializing static or external variables</td>
125      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1311.pdf">N1311</a></td>
126      <td class="unknown" align="center">Unknown</td>
127    </tr>
128    <tr>
129      <td>Conversion between pointers and floating types</td>
130      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1316.htm">N1316</a></td>
131      <td class="full" align="center">Yes</td>
132    </tr>
133    <tr>
134      <td>Adding TR 19769 to the C Standard Library</td>
135      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1326.pdf">N1326</a></td>
136      <td class="full" align="center">Clang 3.3</td>
137    </tr>
138    <tr>
139      <td>Static assertions</td>
140      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1330.pdf">N1330</a></td>
141      <td class="full" align="center">Yes</td>
142    </tr>
143    <tr>
144      <td>Parallel memory sequencing model proposal</td>
145      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1349.htm">N1349</a></td>
146      <td class="unknown" align="center">Unknown</td>
147    </tr>
148    <tr>
149      <td>Analyzability (#1, #4 - conditionally normative)</td>
150      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1350.htm">N1350</a></td>
151      <td class="unknown" align="center">Unknown</td>
152    </tr>
153    <tr>
154      <td>FLT_EVAL_METHOD issues (first change only)</td>
155      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1353.pdf">N1353</a></td>
156      <td class="unknown" align="center">Unknown</td>
157    </tr>
158    <tr>
159      <td>_Bool bit-fields</td>
160      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1356.htm">N1356</a></td>
161      <td class="unknown" align="center">Unknown</td>
162    </tr>
163    <tr>
164      <td>Technical corrigendum for C1X</td>
165      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1359.htm">N1359</a></td>
166      <td class="unknown" align="center">Unknown</td>
167    </tr>
168    <tr>
169      <td>Benign typedef redefinition</td>
170      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1360.htm">N1360</a></td>
171      <td class="full" align="center">Clang 3.1</td>
172    </tr>
173    <tr>
174      <td>Thread-local storage</td>
175      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1364.htm">N1364</a></td>
176      <td class="full" align="center">Clang 3.3</td>
177    </tr>
178    <tr>
179      <td>Constant expressions</td>
180      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1365.htm">N1365</a></td>
181      <td class="unknown" align="center">Unknown</td>
182    </tr>
183    <tr>
184      <td>Contractions and expression evaluation methods</td>
185      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1367.htm">N1367</a></td>
186      <td class="unknown" align="center">Unknown</td>
187    </tr>
188    <tr>
189      <td>FLT_EVAL_METHOD and return</td>
190      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1382.htm">N1382</a></td>
191      <td class="unknown" align="center">Unknown</td>
192    </tr>
193    <tr>
194      <td>Floating-point to int/_Bool conversions</td>
195      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1391.htm">N1391</a></td>
196      <td class="unknown" align="center">Unknown</td>
197    </tr>
198    <tr>
199      <td>Analyzability (along the lines)</td>
200      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1394.htm">N1394</a></td>
201      <td class="unknown" align="center">Unknown</td>
202    </tr>
203    <tr>
204      <td>Wide function returns (alternate proposal)</td>
205      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1396.htm">N1396</a></td>
206      <td class="unknown" align="center">Unknown</td>
207    </tr>
208    <tr id="alignment">
209      <td rowspan="3">Alignment</td>
210    </tr>
211      <tr>
212        <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1397.htm">N1397</a></td>
213        <td class="full" align="center">Clang 3.2</td>
214      </tr>
215      <tr>
216        <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1447.htm">N1447</a></td>
217        <td class="full" align="center">Clang 3.2</td>
218      </tr>
219    <tr>
220      <td>Anonymous member-structures and unions (modulo "name lookup")</td>
221      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1406.pdf">N1406</a></td>
222      <td class="full" align="center">Yes</td>
223    </tr>
224    <tr>
225      <td>Completeness of types</td>
226      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1439.pdf">N1439</a></td>
227      <td class="unknown" align="center">Unknown</td>
228    </tr>
229    <tr>
230      <td>Generic macro facility</td>
231      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1441.htm">N1441</a></td>
232      <td class="full" align="center">Yes</td>
233    </tr>
234    <tr>
235      <td>Dependency ordering for C memory model</td>
236      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1444.htm">N1444</a></td>
237      <td class="unknown" align="center">Unknown</td>
238    </tr>
239    <tr>
240      <td>Subsetting the standard</td>
241      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1460.htm">N1460</a></td>
242      <td class="unknown" align="center">Unknown</td>
243    </tr>
244    <tr>
245      <td>Assumed types in F.9.2</td>
246      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1468.htm">N1468</a></td>
247      <td class="unknown" align="center">Unknown</td>
248    </tr>
249    <tr>
250      <td>Supporting the 'noreturn' property in C1x</td>
251      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1478.htm">N1478</a></td>
252      <td class="full" align="center">Clang 3.3</td>
253    </tr>
254    <tr>
255      <td>Updates to C++ memory model based on formalization</td>
256      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1480.htm">N1480</a></td>
257      <td class="unknown" align="center">Unknown</td>
258    </tr>
259    <tr>
260      <td>Explicit initializers for atomics</td>
261      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1482.htm">N1482</a></td>
262      <td class="unknown" align="center">Unknown</td>
263    </tr>
264    <tr>
265      <td>Atomics proposal (minus ternary op)</td>
266      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1485.pdf">N1485</a></td>
267      <td class="full" align="center">Yes</td>
268    </tr>
269    <tr>
270      <td>UTF-8 string literals</td>
271      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1488.htm">N1488</a></td>
272      <td class="full" align="center">Clang 3.3</td>
273    </tr>
274    <tr>
275      <td>Optimizing away infinite loops</td>
276      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1509.pdf">N1509</a></td>
277      <td class="full" align="center">Yes</td>
278    </tr>
279    <tr>
280      <td>Conditional normative status for Annex G</td>
281      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1514.pdf">N1514</a></td>
282      <td class="unknown" align="center">Unknown</td>
283    </tr>
284    <tr>
285      <td>Creation of complex value</td>
286      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1464.htm">N1464</a></td>
287      <td class="unknown" align="center">Unknown</td>
288    </tr>
289    <tr>
290      <td>Recommendations for extended identifier characters for C and C++</td>
291      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1518.htm">N1518</a></td>
292      <td class="unknown" align="center">Unknown</td>
293    </tr>
294    <tr>
295      <td>Atomic C1x/C++0x compatibility refinements (1st part only)</td>
296      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1526.pdf">N1526</a></td>
297      <td class="full" align="center">Yes</td>
298    </tr>
299    <tr>
300      <td>Atomic bitfields implementation defined</td>
301      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1530.pdf">N1530</a></td>
302      <td class="full" align="center">Yes</td>
303    </tr>
304    <tr>
305      <td>Small fix for the effect of alignment on struct/union type compatibility</td>
306      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1532.htm">N1532</a></td>
307      <td class="full" align="center">Yes</td>
308    </tr>
309    <tr>
310      <td>Synthesis re _Atomic</td>
311      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1537.htm">N1537</a></td>
312      <td class="unknown" align="center">Unknown</td>
313    </tr>
314    <tr>
315      <td>Clarification for wide evaluation</td>
316      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1531.pdf">N1531</a></td>
317      <td class="unknown" align="center">Unknown</td>
318    </tr>
319</table>
320</details>
321
322<h2 id="c17">C17 implementation status</h2>
323
324<p>There are no major changes in this edition, only technical corrections and clarifications that are tracked by Defect Report.</p>
325<p>You can use Clang in C17 mode with the <code>-std=c17</code> or <code>-std=c18</code> options (available in Clang 6 and later).</p>
326
327<h2 id="c2x">C2x implementation status</h2>
328
329<p>Clang has support for some of the features of the C standard following C17, informally referred to as C2x.</p>
330
331<p>You can use Clang in C2x mode with the <code>-std=c2x</code> option (available in Clang 9 and later).</p>
332
333<details open>
334<summary>List of features and minimum Clang version with support</summary>
335
336<table width="689" border="1" cellspacing="0">
337 <tr>
338    <th>Language Feature</th>
339    <th>C2x Proposal</th>
340    <th>Available in Clang?</th>
341 </tr>
342    <!-- Pre-Oct 2019 Papers -->
343    <tr>
344      <td>Evaluation formats</td>
345      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2186.pdf">N2186</a></td>
346      <td class="unknown" align="center">Unknown</td>
347    </tr>
348    <tr>
349      <td>Clarifying the restrict Keyword v2</td>
350      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2260.pdf">N2660</a></td>
351      <td class="unknown" align="center">Unknown</td>
352    </tr>
353    <tr>
354      <td>Harmonizing static_assert with C++</td>
355      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2265.pdf">N2665</a></td>
356      <td class="full" align="center">Clang 9</td>
357    </tr>
358    <tr>
359      <td>nodiscard attribute</td>
360      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2667.pdf">N2667</a></td>
361      <td class="full" align="center">Clang 9</td>
362    </tr>
363    <tr>
364      <td>maybe_unused attribute</td>
365      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2670.pdf">N2670</a></td>
366      <td class="full" align="center">Clang 9</td>
367    </tr>
368    <tr id="TS18661">
369      <td rowspan="6">TS 18661 Integration</td>
370    </tr>
371      <tr> <!-- Pre-Oct 2019 -->
372        <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2314.pdf">N2314</a></td>
373        <td class="unknown" align="center">Unknown</td>
374      </tr>
375      <tr> <!-- Pre-Oct 2019 -->
376        <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2341.pdf">N2341</a></td>
377        <td class="unknown" align="center">Unknown</td>
378      </tr>
379      <tr> <!-- Pre-Oct 2019 -->
380        <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2401.pdf">N2401</a></td>
381        <td class="unknown" align="center">Unknown</td>
382      </tr>
383      <tr> <!-- Pre-Oct 2019 -->
384        <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2359.pdf">N2359</a></td>
385        <td class="unknown" align="center">Unknown</td>
386      </tr>
387      <tr> <!-- Nov 2020 -->
388        <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2546.pdf">N2546</a></td>
389        <td class="unknown" align="center">Unknown</td>
390      </tr>
391    <tr>
392      <td>Preprocessor line numbers unspecified</td>
393      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2322.htm">N2322</a></td>
394      <td class="full" align="center">Yes</td>
395    </tr>
396    <tr>
397      <td>deprecated attribute</td>
398      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2334.pdf">N2334</a></td>
399      <td class="full" align="center">Clang 9</td>
400    </tr>
401    <tr id="Attributes">
402      <td rowspan="3">Attributes</td>
403    </tr>
404      <tr> <!-- Pre-Oct 2019 -->
405        <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2335.pdf">N2335</a></td>
406        <td class="full" align="center">Clang 9</td>
407      </tr>
408      <tr> <!-- Aug 2020 -->
409        <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2554.pdf">N2554</a></td>
410        <td class="full" align="center">Clang 9</td>
411      </tr>
412    <tr>
413      <td>Defining new types in offsetof</td>
414      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2350.htm">N2350</a></td>
415      <td class="full" align="center">Yes</td>
416    </tr>
417    <tr>
418      <td>fallthrough attribute</td>
419      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2408.pdf">N2408</a></td>
420      <td class="full" align="center">Clang 9</td>
421    </tr>
422    <tr>
423      <td>Two's complement sign representation</td>
424      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2412.pdf">N2412</a></td>
425      <td class="unknown" align="center">Unknown</td>
426    </tr>
427    <tr>
428      <td>Adding the u8 character prefix</td>
429      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2418.pdf">N2418</a></td>
430      <td class="none" align="center">No</td>
431    </tr>
432    <tr>
433      <td>Remove support for function definitions with identifier lists</td>
434      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2432.pdf">N2432</a></td>
435      <td class="none" align="center">No</td>
436    </tr>
437    <!-- Oct 2019 Papers -->
438    <tr>
439      <td>*_IS_IEC_60559 feature test macros</td>
440      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2379.htm">N2379</a></td>
441      <td class="unknown" align="center">Unknown</td>
442    </tr>
443    <tr>
444      <td>Floating-point negation and conversion</td>
445      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2416.pdf">N2416</a></td>
446      <td class="unknown" align="center">Unknown</td>
447    </tr>
448    <tr>
449      <td>Annex F.8 update for implementation extensions and rounding</td>
450      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2384.pdf">N2384</a></td>
451      <td class="unknown" align="center">Unknown</td>
452    </tr>
453    <tr>
454      <td>_Bool definitions for true and false</td>
455      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2393.pdf">N2393</a></td>
456      <td class="none" align="center">No</td>
457    </tr>
458    <!-- Mar 2020 Papers -->
459    <tr>
460      <td>[[nodiscard("should have a reason")]]</td>
461      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2448.pdf">N2448</a></td>
462      <td class="full" align="center">Clang 10</td>
463    </tr>
464    <tr>
465      <td>Allowing unnamed parameters in function definitions</td>
466      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2480.pdf">N2480</a></td>
467      <td class="full" align="center">Clang 11</td>
468    </tr>
469    <!-- Aug 2020 Papers -->
470    <tr>
471      <td>Free positioning of labels inside compound statements</td>
472      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2508.pdf">N2508</a></td>
473      <td class="none" align="center">No</td>
474    </tr>
475    <tr>
476      <td>Clarification request for C17 example of undefined behavior</td>
477      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2517.pdf">N2517</a></td>
478      <td class="none" align="center">No</td>
479    </tr>
480    <tr>
481      <td>Querying attribute support</td>
482      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2553.pdf">N2553</a></td>
483      <td class="full" align="center">Clang 9</td>
484    </tr>
485    <!-- Nov 2020 Papers -->
486    <tr>
487      <td>Binary literals</td>
488      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2549.pdf">N2549</a></td>
489      <td class="full" align="center">Clang 9</td>
490    </tr>
491    <tr>
492      <td>Allow duplicate attributes</td>
493      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2557.pdf">N2557</a></td>
494      <td class="unreleased" align="center">Clang 13</td>
495    </tr>
496    <tr>
497      <td>Character encoding of diagnostic text</td>
498      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2563.pdf">N2563</a></td>
499      <td class="full" align="center">Yes</td>
500    </tr>
501    <tr>
502      <td>What we think we reserve</td>
503      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2572.pdf">N2572</a></td>
504      <td class="partial" align="center">Partial</td>
505    </tr>
506    <tr>
507      <td>Decimal floating-point triples</td>
508      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2580.htm">N2580</a></td>
509      <td class="unknown" align="center">Unknown</td>
510    </tr>
511    <tr>
512      <td>Remove mixed wide string literal concatenation</td>
513      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2594.htm">N2594</a></td>
514      <td class="full" align="center">Clang 9</td>
515    </tr>
516    <tr>
517      <td>Update to IEC 60559:2020</td>
518      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2600.pdf">N2600</a></td>
519      <td class="unknown" align="center">Unknown</td>
520    </tr>
521    <tr>
522      <td>Compatibility of Pointers to Arrays with Qualifiers</td>
523      <td><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2607.pdf">N2607</a></td>
524      <td class="partial" align="center">Partial</td>
525    </tr>
526</table>
527</details>
528
529</div>
530</body>
531</html>
532
533