Packages that implement CRC32 algorithm are pure and always terminate.
This avoids spurious warnings when using them from GNATprove.
gcc/ada/ChangeLog:
* libgnat/g-crc32.ads (CRC32): Annotate as pure and always terminating.
* libgnat/s-crc32.ads (CRC32): Annotate as pure and always terminating.
with Interfaces;
with System.CRC32;
-package GNAT.CRC32 is
+package GNAT.CRC32 with Pure, Always_Terminates is
subtype CRC32 is System.CRC32.CRC32;
-- Used to represent CRC32 values, which are 32 bit bit-strings
with Interfaces;
-package System.CRC32 is
+package System.CRC32 with Pure, Always_Terminates is
type CRC32 is new Interfaces.Unsigned_32;
-- Used to represent CRC32 values, which are 32 bit bit-strings