MAX_LONG_DOUBLE_TYPE_SIZE
Stephen L Moshier
moshier@mediaone.net
Tue Apr 11 12:16:00 GMT 2000
Please put in these minor changes.
The macro MAX_LONG_DOUBLE_TYPE_SIZE seems to lack documentation
and it breaks an intended size check in real.c.
* real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
* real.c (toe64): Revert previous change.
*** real.h 2000/03/25 18:34:03 1.1
--- real.h 2000/04/11 18:47:40
*************** Boston, MA 02111-1307, USA. */
*** 68,73 ****
--- 68,78 ----
#ifndef LONG_DOUBLE_TYPE_SIZE
#define LONG_DOUBLE_TYPE_SIZE 64
#endif
+ /* MAX_LONG_DOUBLE_TYPE_SIZE is a constant tested by #if.
+ LONG_DOUBLE_TYPE_SIZE can vary at compiler run time.
+ So long as macros like REAL_VALUE_TO_TARGET_LONG_DOUBLE cannot
+ vary too, however, then XFmode and TFmode long double
+ cannot both be supported at the same time. */
#ifndef MAX_LONG_DOUBLE_TYPE_SIZE
#define MAX_LONG_DOUBLE_TYPE_SIZE LONG_DOUBLE_TYPE_SIZE
#endif
*** real.c 2000/03/25 18:34:03 1.1
--- real.c 2000/04/11 18:42:25
*************** toe64 (a, b)
*** 3646,3654 ****
else
{
q = b + 4; /* point to output exponent */
! #if MAX_LONG_DOUBLE_TYPE_SIZE == 96
! /* Clear the last two bytes of 12-byte Intel format */
! *(q+1) = 0;
#endif
}
#endif
--- 3646,3658 ----
else
{
q = b + 4; /* point to output exponent */
! /* The purpose of this conditional is to avoid scribbling beyond
! the end of a long double, in case the type is only 80 bits wide. */
! if (LONG_DOUBLE_TYPE_SIZE == 96)
! {
! /* Clear the last two bytes of 12-byte Intel format */
! *(q+1) = 0;
! }
#endif
}
#endif
More information about the Gcc-patches
mailing list