]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ada: Facilitate proof of Interfaces.C.To_Ada
authorYannick Moy <moy@adacore.com>
Wed, 22 Feb 2023 13:36:09 +0000 (13:36 +0000)
committerMarc Poulhiès <poulhies@adacore.com>
Tue, 23 May 2023 07:59:05 +0000 (09:59 +0200)
Nightly runs of GNATprove fail on proof of the assertion following
the loop. Add a loop invariant to facilitate that proof.

gcc/ada/

* libgnat/i-c.adb (To_Ada): Add loop invariant.

gcc/ada/libgnat/i-c.adb

index 9236189fc1529957fdcf4dda695324ebcefb8469..63aa2a2d53bbeccc442fa9053078256b2c669da0 100644 (file)
@@ -605,6 +605,7 @@ is
             pragma Loop_Invariant
               (for all J in Item'First .. From when J /= From =>
                  Item (J) /= char32_nul);
+            pragma Loop_Invariant (From <= Item'First + C_Length_Ghost (Item));
             pragma Loop_Variant (Increases => From);
 
             if From > Item'Last then