Fernando Oleo Blanco <irvise...@irvise.xyz> writes:

> Dear all,
>
> just like last year, I would like to commit the changes that took place
> over at GNAT for GCC v14. The patch is attached to the email. Hopefully
> it is good enough to just be added to master. If you see something wrong
> or if you would like to add anything to it, feel free :) Feedback is
> always welcomed.

Fernando,

Thank you for this work! I have a few comments, see below.

diff --git a/htdocs/gcc-14/changes.html b/htdocs/gcc-14/changes.html
index 85ccc54d..e6c96c9f 100644
--- a/htdocs/gcc-14/changes.html
+++ b/htdocs/gcc-14/changes.html
@@ -171,7 +171,49 @@ a work-in-progress.</p>
 <!-- .................................................................. -->
 <h2 id="languages">New Languages and Language specific improvements</h2>

-<!-- <h3 id="ada">Ada</h3> -->
+<h3 id="ada">Ada</h3>
+
+<ul>
+  <li>Several new aspects and contracts have been implemented:

Maybe worth noting that these are implementation defined aspects.

+    <ul>
+      <li><code>Exceptional_Cases</code> may be specified for procedures and
+      functions with side effects; it can be used to list exceptions that might
+      be propagated by the subprogram with side effects in the context of its
+      precondition, and associate them with a specific postcondition. For more
+      information, refer to SPARK 2014 Reference Manual, section 6.1.9.</li>
+      <li><code>User_Aspect</code> takes an argument that is the name of an
+      aspect defined by a User_Aspect_Definition configuration pragma.</li>
+      <li><code>Local_Restrictions</code> is used to specify that a particular
+      subprogram does not violate one or more local restrictions, nor can it
+      call a subprogram that is not subject to the same requirements.</li>
+      <li><code>Side_Effects</code> is equivalent to <code>pragma
+      Side_Effecs</code>.</li>
+      <li><code>Always_Terminates</code> is a boolean equivalent to 
<code>pragma
+      Always_Terminates</code></li>
+      <li><code>Ghost_Predicate</code></li>

It looks like Ghost_Predicate is missing some text here.

It may be a good thing to link to the actual documentation for these
options. Thanks to some documention changes, we can now link to
an option directly. For example:

https://gcc.gnu.org/onlinedocs/gnat_rm/Implementation-Defined-Pragmas.html

You would need to point to the correct version (this one points to
current devel version).

+    </ul>
+  </li>
+  <li>The new attributes and contracts have been applied to the relevant parts
+    of the Ada library and more code has been proven to be correct.</li>
+  <li>Initial support for the
+  <a 
href="https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/";><code>CHERI</code></a>
+  architecture.</li>
+  <li>Support for the <code>LoongArch</code> architecture.</li>
+  <li>Hardening improvements:
+    <ul>
+      <li>Use of the new <code>-fharden*</code> options. Most
+      notably <code>-fharden-compares</code>,
+      <code>-fharden-conditional-branches</code> and
+      <code>-fharden-control-flow-redundancy</code>.</li>
+      <li>Custom bools with higher Hamming distance.</li>
+      <li>The <code>strub</code> attribute has been added for functions and

Same as above for doc links:

https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html#index-fharden-compares

+      variables in order to automatically zero-out their stack upon use or
+      return.</li>
+    </ul>
+  </li>
+  <li>Further clean up and improvements to the GNAT code.</li>
+  <li>Support for vxWorks 7 Cert RTP has been removed.</li>
+</ul>

 <!-- <h3 id="c-family">C family</h3> -->

Reply via email to