On Thu, Jun 12, 2025 at 06:59:02PM +0200, Jakub Jelinek wrote: > On Thu, Jun 12, 2025 at 12:50:00PM -0400, Marek Polacek wrote: > > + <tr> > > + <!-- r15-4729-g972f653cad2aed --> > > + <td>More Modern Bit Utilities</td> > > + <td><a > > href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3367.htm">N3367</a></td> > > + <!-- XXX Fully done? --> > > + <td class="supported"><a href="../gcc-15/changes.html#c">15</a></td> > > I think everything that needs compiler support is in GCC 15, but it is > mostly a library thing which still needs to be written and only when that is > done we'll know for sure.
Ok, I removed the note (but left it as supported). > > + <!-- see patches in https://gcc.gnu.org/PR117023 --> > > + <td>Allow zero length operations on null pointers</td> > > + <td><a > > href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3322.pdf">N3322</a></td> > > + <td class="supported"><a href="../gcc-15/changes.html#c">15</a></td> > > + <td>compiler side only</td> > > This is just partial in GCC 15, there is the N3466 paper that amended this > and compiler side of that is awaiting patch review for GCC 16. > So I think this bullet should mention both the papers and show the first > one implemented in GCC 15 and second one unimplemented yet. Thanks, done here: Ok for wwwdocs? -- >8 -- diff --git a/htdocs/projects/c-status.html b/htdocs/projects/c-status.html index 7e522bc3..4959db30 100644 --- a/htdocs/projects/c-status.html +++ b/htdocs/projects/c-status.html @@ -31,7 +31,6 @@ GCC has experimental and incomplete support for ISO C2y. command-line flag, or <code>-std=gnu2y</code> to enable GNU extensions as well.</p> -<!-- <table class="cxxstatus"> <tr class="separator"> <th>Feature</th> @@ -40,13 +39,109 @@ as well.</p> <th>Notes</th> </tr> <tr> + <!-- r15-1190-g0cf68222d2df3a --> + <td>Generic selection expression with a type operand</td> + <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3260.pdf">N3260</a></td> + <td class="supported"><a href="../gcc-15/changes.html#c">15</a></td> + <td></td> + </tr> + <tr> + <!-- r15-1300-g3bb21028698be3 --> + <td>Support ++ and -- on complex values</td> + <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3259.pdf">N3259</a></td> + <td class="supported"><a href="../gcc-15/changes.html#c">15</a></td> + <td></td> + </tr> + <tr> + <!-- r15-2690-g4b9ba9cee95119 --> + <td>Accessing byte arrays</td> + <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3254.pdf">N3254</a></td> + <td class="supported"><a href="../gcc-15/changes.html#c">15</a></td> + <td></td> + </tr> + <tr> + <!-- r15-1382-gedf514f83fa410 --> + <td><code>alignof</code> of an incomplete array type.</td> + <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3273.pdf">N3273</a></td> + <td class="supported"><a href="../gcc-15/changes.html#c">15</a></td> + <td></td> + </tr> + <tr> + <!-- r15-4403-ge020116db05635 --> + <td>Obsolete implicitly octal literals</td> + <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3353.htm">N3353</a></td> + <td class="partial"><a href="../gcc-15/changes.html#c">15</a></td> + <td>support for new syntax added but nothing deprecated yet + (<a href="https://gcc.gnu.org/PR117028">PR117028</a>)</td> + </tr> + <tr> + <!-- r15-4369-g50f27896adb272 --> + <td>Named loops</td> + <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3355.htm">N3355</a></td> + <td class="supported"><a href="../gcc-15/changes.html#c">15</a></td> + <td></td> + </tr> + <tr> + <!-- r15-4729-g972f653cad2aed --> + <td>More Modern Bit Utilities</td> + <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3367.htm">N3367</a></td> + <td class="supported"><a href="../gcc-15/changes.html#c">15</a></td> + <td></td> + </tr> + <tr> + <!-- r15-4766-gabcfe1e51c18b1 --> + <td>Case range expressions</td> + <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3370.htm">N3370</a></td> + <td class="supported"><a href="../gcc-15/changes.html#c">15</a></td> + <td></td> + </tr> + <tr> + <!-- r15-5053-g440be01b079415 --> + <td><code>if</code> declarations</td> + <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3356.htm">N3356</a></td> + <td class="supported"><a href="../gcc-15/changes.html#c">15</a></td> + <td></td> + </tr> + <tr> + <!-- r15-5189-geb45d151fa1780 --> + <td>Introduce complex literals</td> + <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3298.htm">N3298</a></td> + <td class="supported"><a href="../gcc-15/changes.html#c">15</a></td> <td></td> + </tr> + <tr> + <!-- r15-5555-g7272e09c9b1bd3 --> + <td>Abs Without Undefined Behavior</td> + <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3349.pdf">N3349</a></td> + <td class="supported"><a href="../gcc-15/changes.html#c">15</a></td> + <td>also a library feature</td> + </tr> + <tr> + <!-- see patches in https://gcc.gnu.org/PR117023 --> + <td rowspan=2>Allow zero length operations on null pointers</td> + <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3322.pdf">N3322</a></td> + <td class="supported"><a href="../gcc-15/changes.html#c">15</a></td> + <td rowspan=2>compiler side only</td> + </tr> + <tr> + <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3466.pdf">N3466</a></td> + <td class="unsupported center">No</td> + </tr> + <tr> + <!-- r16-916-g517c9487f8fdc4 --> + <td><code>_Countof</code></td> + <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3369.pdf">N3369</a>, + <a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3469.htm">N3469</a></td> + <td class="supported"><a href="../gcc-16/changes.html#c">16</a></td> <td></td> - <td class="supported"><a href="../gcc-4.9/changes.html#c"></a></td> + </tr> + <tr> + <td>Restartable Functions for Efficient Character Conversions</td> + <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3366.htm">N3366</a></td> + <td class="unsupported"> <a href="https://gcc.gnu.org/PR117020">No</a></td> <td></td> </tr> </table> ---> <h2 id="c23">C23 Support in GCC</h2>