OSDN Git Service

Stephen L Moshier <moshier@mediaone.net>
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Apr 2000 07:57:37 +0000 (07:57 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Apr 2000 07:57:37 +0000 (07:57 +0000)
        * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
        * real.c (toe64): Revert previous change.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33097 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/real.c
gcc/real.h

index 595d54a..3888e78 100644 (file)
@@ -1,3 +1,8 @@
+2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
+
+       * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
+       * real.c (toe64): Revert previous change.
+
 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
 
        * objc/objc-act.c: Include ggc.h.
index f26635b..b8a59b3 100644 (file)
@@ -3646,9 +3646,13 @@ toe64 (a, b)
   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;
+      /* 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
index 3aba2e2..a85ca74 100644 (file)
@@ -68,6 +68,11 @@ Boston, MA 02111-1307, USA.  */
 #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