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>

Reply via email to