OSDN Git Service

Daily bump.
[pf3gnuchains/gcc-fork.git] / gcc / real.c
index 2f4e858..1e1083f 100644 (file)
@@ -1862,6 +1862,11 @@ real_from_string (REAL_VALUE_TYPE *r, const char *str)
              str++;
            }
        }
+
+      /* If the mantissa is zero, ignore the exponent.  */
+      if (!cmp_significand_0 (r))
+       goto underflow;
+
       if (*str == 'p' || *str == 'P')
        {
          bool exp_neg = false;
@@ -1934,6 +1939,10 @@ real_from_string (REAL_VALUE_TYPE *r, const char *str)
            }
        }
 
+      /* If the mantissa is zero, ignore the exponent.  */
+      if (r->cl == rvc_zero)
+       goto underflow;
+
       if (*str == 'e' || *str == 'E')
        {
          bool exp_neg = false;
@@ -2193,8 +2202,12 @@ real_nan (REAL_VALUE_TYPE *r, const char *str, int quiet,
        str++;
       if (*str == '0')
        {
-         if (*++str == 'x')
-           str++, base = 16;
+         str++;
+         if (*str == 'x' || *str == 'X')
+           {
+             base = 16;
+             str++;
+           }
          else
            base = 8;
        }
@@ -4426,8 +4439,8 @@ const struct real_format decimal_quad_format =
     1,  /* log10 */
     34,
     34,
-    -6414,
-    6413,
+    -6143,
+    6144,
     127,
     127,
     true,