So far we did not document the changes for C made in GCC 16 on the website. Here is a patch that adds some which I am aware of. It also starts a section for GCC 17. Ok?
diff --git a/htdocs/gcc-16/changes.html b/htdocs/gcc-16/changes.html index 9d9128e1..924dd785 100644 --- a/htdocs/gcc-16/changes.html +++ b/htdocs/gcc-16/changes.html @@ -222,6 +222,33 @@ for general information.</p> <li>Android support has been improved.</li> </ul> <!-- <h3 id="c-family">C family</h3> --> +<h3 id="c">C</h3> + +<ul> + <li>Improvements to GNU extensions including: + <ul> + <li>The + <a href="https://gcc.gnu.org/onlinedocs/gcc-16.1.0/gcc/Common-Attributes.html"><code>counted_by</code></a> + attribute supports members of pointer type.</li> + <li>The + <a href="https://gcc.gnu.org/onlinedocs/gcc-16.1.0/gcc/_005fMaxof-and-_005fMinof.html"><code>_Maxof<code></a> + and + <a href="https://gcc.gnu.org/onlinedocs/gcc-16.1.0/gcc/_005fMaxof-and-_005fMinof.html"><code>_Minof<code></a> + operators can be used to determine maximum and minimum representable values of an integer type.</li> + <li>A compound literal with empty initializer can have a variable size.</li> + <li>Nested functions that do not access the environment are guaranteed not + to require run-time generation of a trampoline (even when not optimizing).</li> + </ul> + </li> + <li>Some more C2y features have been implemented: + <ul> + <li>Static assertions can be used in expressions.</li> + <li>Unspecified and variably-modified arrays can be used as type names in generic associations.</li> + <li>Many diagnostics were implemented for situations that have undefined behavior in previous + language modes and which are now constraint violations.</li> + </ul> + </li> +</ul> <h3 id="cxx">C++</h3> diff --git a/htdocs/gcc-17/changes.html b/htdocs/gcc-17/changes.html index 0452a7f1..2e982cc5 100644 --- a/htdocs/gcc-17/changes.html +++ b/htdocs/gcc-17/changes.html @@ -74,6 +74,22 @@ a work-in-progress.</p> <!-- <h3 id="ada">Ada</h3> --> <!-- <h3 id="c-family">C family</h3> --> +<h3 id="c">C</h3> + +<ul> + <li>Improvements to GNU extensions including: + <ul> + <li>The new built-in functions + <a href="https://gcc.gnu.org/onlinedocs/gcc/Constructing-Calls.html"> + <code>__builtin_call_static_chain</code></a> and + <a href="https://gcc.gnu.org/onlinedocs/gcc/Constructing-Calls.html"> + <code>__builtin_call_code_address</code></a> can be used to obtain the + static chain and the underlying code address of a nested function. + This allows calling of the nested function indirectly without the use + of a trampoline. + </ul> + </li> +</ul> <h3 id="cxx">C++</h3> <h4 id="libstdcxx">Runtime Library (libstdc++)</h4>
