aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRobert Dewar <dewar@adacore.com>2005-11-15 15:00:09 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2005-11-15 15:00:09 +0100
commit70b352b52f59065a464bc2ff57f75b49b8c52950 (patch)
tree45c557a5c80271852e09a250de095534ff9943f9 /gcc
parentec210799885849f60e0c156ba52ee088d6b26da1 (diff)
downloadgcc-70b352b52f59065a464bc2ff57f75b49b8c52950.zip
gcc-70b352b52f59065a464bc2ff57f75b49b8c52950.tar.gz
gcc-70b352b52f59065a464bc2ff57f75b49b8c52950.tar.bz2
interfac.ads: Change declarations of IEEE float types so that we no longer need a separate...
2005-11-14 Robert Dewar <dewar@adacore.com> * interfac.ads: Change declarations of IEEE float types so that we no longer need a separate version of this package for VMS. From-SVN: r106987
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/interfac.ads26
1 files changed, 15 insertions, 11 deletions
diff --git a/gcc/ada/interfac.ads b/gcc/ada/interfac.ads
index 15cfd9c..38e5cda 100644
--- a/gcc/ada/interfac.ads
+++ b/gcc/ada/interfac.ads
@@ -35,11 +35,6 @@
-- --
------------------------------------------------------------------------------
--- Assumes integer sizes of 8, 16, 32 and 64 are available, and that the
--- floating-point formats are IEEE compatible.
-
--- Note: There is a specialized version of this package for OpenVMS
-
package Interfaces is
pragma Pure;
@@ -153,17 +148,26 @@ package Interfaces is
pragma Import (Intrinsic, Rotate_Left);
pragma Import (Intrinsic, Rotate_Right);
- -- Floating point types. We assume that we are on an IEEE machine, and
- -- that the types Short_Float and Long_Float in Standard refer to the
- -- 32-bit short and 64-bit long IEEE forms. Furthermore, if there is
- -- an extended float, we assume that it is available as Long_Long_Float.
+ -- IEEE Floating point types. Note that the form of these definitions
+ -- ensures that the work on VMS, even if the standard library is compiled
+ -- using a Float_Representation pragma for Vax_Float.
+
+ pragma Warnings (Off);
+ -- Turn off warnings for targets not providing IEEE floating-point types
+
+ type IEEE_Float_32 is digits 6;
+ pragma Float_Representation (IEEE_Float, IEEE_Float_32);
+
+ type IEEE_Float_64 is digits 15;
+ pragma Float_Representation (IEEE_Float, IEEE_Float_64);
+
+ -- If there is an IEEE extended float available on the machine, we assume
+ -- that it is available as Long_Long_Float.
-- Note: it is harmless, and explicitly permitted, to include additional
-- types in interfaces, so it is not wrong to have IEEE_Extended_Float
-- defined even if the extended format is not available.
- type IEEE_Float_32 is new Short_Float;
- type IEEE_Float_64 is new Long_Float;
type IEEE_Extended_Float is new Long_Long_Float;
end Interfaces;