[Ada] Prove double precision integer arithmetic unit
commitbbe3c88351bc98a9866720e03ef76e8caf516461
authorPierre-Alexandre Bazin <bazin@adacore.com>
Thu, 4 Nov 2021 09:48:46 +0000 (4 10:48 +0100)
committerPierre-Marie de Rodat <derodat@adacore.com>
Wed, 10 Nov 2021 08:57:40 +0000 (10 08:57 +0000)
tree0bbac2b99c63e565ca7ff967c14b065b238f2cdf
parent99f8a653683b2e3f14713656c79dc2b721c38e0f
[Ada] Prove double precision integer arithmetic unit

gcc/ada/

* libgnat/a-nbnbig.ads: Mark the unit as Pure.
* libgnat/s-aridou.adb: Add contracts and ghost code for proof.
(Scaled_Divide): Reorder operations and use of temporaries in
two places to facilitate proof.
* libgnat/s-aridou.ads: Add full functional contracts.
* libgnat/s-arit64.adb: Mark in SPARK.
* libgnat/s-arit64.ads: Add contracts similar to those from
s-aridou.ads.
* rtsfind.ads: Document the limitation that runtime units
loading does not work for private with-clauses.
gcc/ada/libgnat/a-nbnbig.ads
gcc/ada/libgnat/s-aridou.adb
gcc/ada/libgnat/s-aridou.ads
gcc/ada/libgnat/s-arit64.adb
gcc/ada/libgnat/s-arit64.ads
gcc/ada/rtsfind.ads