aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJoffrey Huguet <huguet@adacore.com>2022-05-09 15:25:30 +0200
committerPierre-Marie de Rodat <derodat@adacore.com>2022-06-02 09:06:37 +0000
commitf03f48a3843046a4ee888db3b86c0efe3812e2c7 (patch)
tree006cb320f1a4edcdb6b9f540098a1e67a79e690a /gcc
parentf0b7fddbefbe7af7c14ed5f2def49bbdb4a6c919 (diff)
downloadgcc-f03f48a3843046a4ee888db3b86c0efe3812e2c7.zip
gcc-f03f48a3843046a4ee888db3b86c0efe3812e2c7.tar.gz
gcc-f03f48a3843046a4ee888db3b86c0efe3812e2c7.tar.bz2
[Ada] Add contracts to System.Address_To_Access_Conversions
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/libgnat/s-atacco.ads6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/ada/libgnat/s-atacco.ads b/gcc/ada/libgnat/s-atacco.ads
index 736210d..b3559ff 100644
--- a/gcc/ada/libgnat/s-atacco.ads
+++ b/gcc/ada/libgnat/s-atacco.ads
@@ -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);