]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[Ada] Add contracts to System.Address_To_Access_Conversions
authorJoffrey Huguet <huguet@adacore.com>
Mon, 9 May 2022 13:25:30 +0000 (15:25 +0200)
committerPierre-Marie de Rodat <derodat@adacore.com>
Thu, 2 Jun 2022 09:06:37 +0000 (09:06 +0000)
This patch adds SPARK annotations to subprograms from
System.Address_To_Access_Conversions. To_Pointer is considered to have
no global items, if the returned value has no aliases. To_Address is
forbidden in SPARK because addresses are not handled.

gcc/ada/

* libgnat/s-atacco.ads (To_Pointer): Add Global => null.
(To_Address): Add SPARK_Mode => Off.

gcc/ada/libgnat/s-atacco.ads

index 736210dc98b6919da62cddfe7b820adbed0eba0a..b3559ffed79fe3be5154f6b92f7daa33435baa0c 100644 (file)
@@ -54,8 +54,10 @@ package System.Address_To_Access_Conversions is
    --  optimizations that may cause unexpected results based on the assumption
    --  of no strict aliasing.
 
-   function To_Pointer (Value : Address)        return Object_Pointer;
-   function To_Address (Value : Object_Pointer) return Address;
+   function To_Pointer (Value : Address)        return Object_Pointer with
+     Global => null;
+   function To_Address (Value : Object_Pointer) return Address with
+     SPARK_Mode => Off;
 
    pragma Import (Intrinsic, To_Pointer);
    pragma Import (Intrinsic, To_Address);