summaryrefslogtreecommitdiff
path: root/gcc/ada/einfo.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-22 09:28:24 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-22 09:28:24 +0000
commite8548746a5f859f185985d092e08839492f70f21 (patch)
tree7f0e836c6c46bdea870554de215d6ec19f206413 /gcc/ada/einfo.ads
parent701d57a469be1d9ec623d0896a939936df2a0593 (diff)
downloadgcc-e8548746a5f859f185985d092e08839492f70f21.tar.gz
2010-10-22 Geert Bosch <bosch@adacore.com>
* gcc-interface/Make-lang.in: Remove ttypef.ads * checks.adb: Use Machine_Mantissa_Value and Machine_Radix_Value instead of Machine_Mantissa and Machine_Radix. * cstand.adb (P_Float_Range): Directly print the Type_Low_Bound and Type_High_Bound of the type, instead of choosing constants from Ttypef. (Set_Float_Bounds): Compute the bounds based on Machine_Radix_Value, Machine_Emax_Value and Machine_Mantissa_Value instead of special-casing each type. * einfo.ads (Machine_Emax_Value, Machine_Emin_Value, Machine_Mantissa_Value, Machine_Radix_Value, Model_Emin_Value, Model_Epsilon_Value, Model_Mantissa_Value, Model_Small_Value, Safe_Emax_Value, Safe_First_Value, Safe_Last_Value): Add new synthesized floating point attributes. * einfo.adb (Float_Rep): Determine the kind of floating point representation used for a given type. (Machine_Emax_Value, Machine_Emin_Value, Machine_Mantissa_Value, Machine_Radix_Value): Implement based on Float_Rep_Kind of a type and the number of digits in the type. (Model_Emin_Value, Model_Epsilon_Value, Model_Mantissa_Value, Model_Small_Value, Safe_Emax_Value, Safe_First_Value, Safe_Last_Value): Implement new synthesized floating point attributes based on the various machine attributes. * eval_fat.ads: Remove Machine_Mantissa and Machine_Radix. * eval_fat.adb (Machine_Mantissa, Machine_Radix): Remove. Use the Machine_Mantissa_Value and Machine_Radix_Value functions instead. * exp_vfpt.adb (VAXFF_Digits, VAXDF_Digits, VAXFG_Digits): Define local constants, instead of using constants from Ttypef. * gnat_rm.texi: Reword comments referencing Ttypef. * sem_attr.ads: Reword comment referencing Ttypef. * sem_attr.adb (Float_Attribute_Universal_Integer, Float_Attribute_Universal_Real): Remove. (Attribute_Machine_Emax, Attribute_Machine_Emin, Attribute_Machine_Mantissa, Attribute_Model_Epsilon, Attribute_Model_Mantissa, Attribute_Model_Small, Attribute_Safe_Emax, Attribute_Safe_First, Attribute_Safe_Last, Model_Small_Value): Use attributes in Einfo instead of Float_Attribute_Universal_Real and Float_Attribute_Universal_Integer and all explicit constants. * sem_util.ads, sem_util.adb (Real_Convert): Remove. * sem_vfpt.adb (VAXDF_Digits, VAXFF_Digits, VAXGF_Digits, IEEEL_Digits, IEEES_Digits): New local constants, in order to remove dependency on Ttypef. * tbuild.ads (Make_Float_Literal): New function. * tbuild.adb (Make_Float_Literal): New function to create a new N_Real_Literal, constructing it as simple as possible for best output of constants in -gnatS. * ttypef.ads: Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165808 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/einfo.ads')
-rw-r--r--gcc/ada/einfo.ads22
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads
index e45d3d7c2f6..f496a131a9c 100644
--- a/gcc/ada/einfo.ads
+++ b/gcc/ada/einfo.ads
@@ -5094,6 +5094,17 @@ package Einfo is
-- E_Floating_Point_Type
-- E_Floating_Point_Subtype
-- Digits_Value (Uint17)
+ -- Machine_Emax_Value (synth)
+ -- Machine_Emin_Value (synth)
+ -- Machine_Mantissa_Value (synth)
+ -- Machine_Radix_Value (synth)
+ -- Model_Emin_Value (synth)
+ -- Model_Epsilon_Value (synth)
+ -- Model_Mantissa_Value (synth)
+ -- Model_Small_Value (synth)
+ -- Safe_Emax_Value (synth)
+ -- Safe_First_Value (synth)
+ -- Safe_Last_Value (synth)
-- Scalar_Range (Node20)
-- Type_Low_Bound (synth)
-- Type_High_Bound (synth)
@@ -6334,6 +6345,14 @@ package Einfo is
function Is_Task_Record_Type (Id : E) return B;
function Is_Wrapper_Package (Id : E) return B;
function Last_Formal (Id : E) return E;
+ function Machine_Emax_Value (Id : E) return U;
+ function Machine_Emin_Value (Id : E) return U;
+ function Machine_Mantissa_Value (Id : E) return U;
+ function Machine_Radix_Value (Id : E) return U;
+ function Model_Emin_Value (Id : E) return U;
+ function Model_Epsilon_Value (Id : E) return R;
+ function Model_Mantissa_Value (Id : E) return U;
+ function Model_Small_Value (Id : E) return R;
function Next_Component (Id : E) return E;
function Next_Component_Or_Discriminant (Id : E) return E;
function Next_Discriminant (Id : E) return E;
@@ -6347,6 +6366,9 @@ package Einfo is
function Parameter_Mode (Id : E) return Formal_Kind;
function Primitive_Operations (Id : E) return L;
function Root_Type (Id : E) return E;
+ function Safe_Emax_Value (Id : E) return U;
+ function Safe_First_Value (Id : E) return R;
+ function Safe_Last_Value (Id : E) return R;
function Scope_Depth_Set (Id : E) return B;
function Size_Clause (Id : E) return N;
function Stream_Size_Clause (Id : E) return N;