From 4ab5d8c17b7b8ca792979997fb3a13b2c9eeba8b Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Fri, 18 Sep 2020 09:04:12 +0200 Subject: [PATCH] [Ada] Document characteristics of ordinary fixed point types gcc/ada/ * doc/gnat_rm/implementation_defined_characteristics.rst: Adjust the entries of 3.5.9(8) and 3.5.9(10). * gnat_rm.texi: Regenerate. --- .../gnat_rm/implementation_defined_characteristics.rst | 15 ++++++++------- gcc/ada/gnat_rm.texi | 15 ++++++++------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst b/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst index 71e1834..3174825 100644 --- a/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst +++ b/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst @@ -147,18 +147,19 @@ Type Representation * "The small of an ordinary fixed point type. See 3.5.9(8)." -``Fine_Delta`` is 2**(-63) +The small is the largest power of two that does not exceed the delta. * "What combinations of small, range, and digits are supported for fixed point types. See 3.5.9(10)." -Any combinations are permitted that do not result in a small less than -``Fine_Delta`` and do not result in a mantissa larger than 63 bits. -If the mantissa is larger than 53 bits on machines where Long_Long_Float -is 64 bits (true of all architectures except x86), then the output from -Text_IO is accurate to only 53 bits, rather than the full mantissa. This -is because floating-point conversions are used to convert fixed point. +For an ordinary fixed point type, the small must lie in 2**(-80) .. 2**80 +and the range in -10.0**36 .. 10.0**36; any combination is permitted that +does not result in a mantissa larger than 63 bits. However, if the mantissa +is larger than 53 bits on machines where Long_Long_Float is 64 bits (true +of all architectures except x86), then the output from Text_IO may be +accurate to only 53 bits, rather than the full mantissa. This is because +floating-point conversions may be used to convert fixed point. * diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi index 0ec8509..9992cf4 100644 --- a/gcc/ada/gnat_rm.texi +++ b/gcc/ada/gnat_rm.texi @@ -15675,7 +15675,7 @@ Representation "The small of an ordinary fixed point type. See 3.5.9(8)." @end itemize -@code{Fine_Delta} is 2**(-63) +The small is the largest power of two that does not exceed the delta. @itemize * @@ -15685,12 +15685,13 @@ Representation supported for fixed point types. See 3.5.9(10)." @end itemize -Any combinations are permitted that do not result in a small less than -@code{Fine_Delta} and do not result in a mantissa larger than 63 bits. -If the mantissa is larger than 53 bits on machines where Long_Long_Float -is 64 bits (true of all architectures except x86), then the output from -Text_IO is accurate to only 53 bits, rather than the full mantissa. This -is because floating-point conversions are used to convert fixed point. +For an ordinary fixed point type, the small must lie in 2**(-80) .. 2**80 +and the range in -10.0**36 .. 10.0**36; any combination is permitted that +does not result in a mantissa larger than 63 bits. However, if the mantissa +is larger than 53 bits on machines where Long_Long_Float is 64 bits (true +of all architectures except x86), then the output from Text_IO may be +accurate to only 53 bits, rather than the full mantissa. This is because +floating-point conversions may be used to convert fixed point. @itemize * -- 2.7.4