summaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2005-11-15 14:00:09 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2005-11-15 14:00:09 +0000
commit6e60a0f084e6e9d477b60f12a204180ed65a745e (patch)
tree45c557a5c80271852e09a250de095534ff9943f9 /gcc/ada
parentdc05d3eae2d3f3d7ac37c9a5e4c17fc6a39dae00 (diff)
downloadgcc-6e60a0f084e6e9d477b60f12a204180ed65a745e.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106987 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada')
-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 15cfd9c87bb..38e5cdab736 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;