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