char *p = buf;
for (; *p; p++)
- if (*p == '/' && p[1] == '/') {
+ if ((*p == '/' && p[1] == '/') || *p == '#') {
*p = 0;
break;
}
T(RN, 0x1p-100, 0, INEXACT)
T(RN, -0x1p-100, 0, INEXACT)
// TODO: return value is unspecified
+#if INVALID
T(RN, nan, 0, INVALID)
T(RN, inf, 0, INVALID)
T(RN, -inf, 0, INVALID)
T(RN, 0x1p+100, 0, INVALID)
T(RN, -0x1p+100, 0, INVALID)
+#endif
T(RN, 0x1p-100, 0, INEXACT)
T(RN, -0x1p-100, 0, INEXACT)
// TODO: return value is unspecified
+#if INVALID
T(RN, nan, 0, INVALID)
T(RN, inf, 0, INVALID)
T(RN, -inf, 0, INVALID)
T(RN, 0x1p+100, 0, INVALID)
T(RN, -0x1p+100, 0, INVALID)
+#endif
T(RN, 0x1p-100L, 0, INEXACT)
T(RN, -0x1p-100L, 0, INEXACT)
// TODO: return value is unspecified
+#if INVALID
T(RN, nan, 0, INVALID)
T(RN, inf, 0, INVALID)
T(RN, -inf, 0, INVALID)
T(RN, 0x1p+100L, 0, INVALID)
T(RN, -0x1p+100L, 0, INVALID)
+#endif
T(RN, 0x1p-100, 0, INEXACT)
T(RN, -0x1p-100, 0, INEXACT)
// TODO: return value is unspecified
+#if INVALID
T(RN, nan, 0, INVALID)
T(RN, inf, 0, INVALID)
T(RN, -inf, 0, INVALID)
T(RN, 0x1p+100, 0, INVALID)
T(RN, -0x1p+100, 0, INVALID)
+#endif
T(RN, 0x1p-100, 0, INEXACT)
T(RN, -0x1p-100, 0, INEXACT)
// TODO: return value is unspecified
+#if INVALID
T(RN, nan, 0, INVALID)
T(RN, inf, 0, INVALID)
T(RN, -inf, 0, INVALID)
T(RN, 0x1p+100, 0, INVALID)
T(RN, -0x1p+100, 0, INVALID)
+#endif
T(RN, 0x1p-100L, 0, INEXACT)
T(RN, -0x1p-100L, 0, INEXACT)
// TODO: return value is unspecified
+#if INVALID
T(RN, nan, 0, INVALID)
T(RN, inf, 0, INVALID)
T(RN, -inf, 0, INVALID)
T(RN, 0x1p+100L, 0, INVALID)
T(RN, -0x1p+100L, 0, INVALID)
+#endif
T(RN, 0x1p-100, 0, INEXACT)
T(RN, -0x1p-100, 0, INEXACT)
// TODO: return value is unspecified
+#if INVALID
T(RN, nan, 0, INVALID)
T(RN, inf, 0, INVALID)
T(RN, -inf, 0, INVALID)
T(RN, 0x1p+100, 0, INVALID)
T(RN, -0x1p+100, 0, INVALID)
+#endif
T(RN, 0x1p-100, 0, INEXACT)
T(RN, -0x1p-100, 0, INEXACT)
// TODO: return value is unspecified
+#if INVALID
T(RN, nan, 0, INVALID)
T(RN, inf, 0, INVALID)
T(RN, -inf, 0, INVALID)
T(RN, 0x1p+100, 0, INVALID)
T(RN, -0x1p+100, 0, INVALID)
+#endif
T(RN, 0x1p-100L, 0, INEXACT)
T(RN, -0x1p-100L, 0, INEXACT)
// TODO: return value is unspecified
+#if INVALID
T(RN, nan, 0, INVALID)
T(RN, inf, 0, INVALID)
T(RN, -inf, 0, INVALID)
T(RN, 0x1p+100L, 0, INVALID)
T(RN, -0x1p+100L, 0, INVALID)
+#endif
T(RN, 0x1p-100, 0, INEXACT)
T(RN, -0x1p-100, 0, INEXACT)
// TODO: return value is unspecified
+#if INVALID
T(RN, nan, 0, INVALID)
T(RN, inf, 0, INVALID)
T(RN, -inf, 0, INVALID)
T(RN, 0x1p+100, 0, INVALID)
T(RN, -0x1p+100, 0, INVALID)
+#endif
T(RN, 0x1p-100, 0, INEXACT)
T(RN, -0x1p-100, 0, INEXACT)
// TODO: return value is unspecified
+#if INVALID
T(RN, nan, 0, INVALID)
T(RN, inf, 0, INVALID)
T(RN, -inf, 0, INVALID)
T(RN, 0x1p+100, 0, INVALID)
T(RN, -0x1p+100, 0, INVALID)
+#endif
T(RN, 0x1p-100L, 0, INEXACT)
T(RN, -0x1p-100L, 0, INEXACT)
// TODO: return value is unspecified
+#if INVALID
T(RN, nan, 0, INVALID)
T(RN, inf, 0, INVALID)
T(RN, -inf, 0, INVALID)
T(RN, 0x1p+100L, 0, INVALID)
T(RN, -0x1p+100L, 0, INVALID)
+#endif
T(RN, 0x1.fffffffffffffp+1023, 0x0p+0L, 0x1.ffffffffffffep+1023, 0x0p+0, 0)
T(RN, 0x1p-1074, -inf, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW)
T(RN, 0x1p-1074, inf, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW)
+#if LDBL_MANT_DIG > DBL_MANT_DIG
T(RN, 0x1p-1074, 0x1.ffffffffffffffep-1075L, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW)
T(RN, 0x1p-1074, 0x1.000000000000002p-1074L, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW)
+T(RN, 0x1p+0, 0x1.0000000000000002p+0L, 0x1.0000000000001p+0, 0x0p+0, 0)
+T(RN, 0x1p+0, 0x1.fffffffffffffffep-1L, 0x1.fffffffffffffp-1, 0x0p+0, 0)
+#endif
T(RN, 0x1.ffffffffffffcp-1023, 0x1p+0L, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW)
T(RN, 0x1.ffffffffffffep-1023, 0x1p+0L, 0x1p-1022, 0x0p+0, 0)
T(RN, 0x1.0000000000001p-1022, 0x0p+0L, 0x1p-1022, 0x0p+0, 0)
T(RN, 0x1p-1022, 0x0p+0L, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW)
-T(RN, 0x1p+0, 0x1.0000000000000002p+0L, 0x1.0000000000001p+0, 0x0p+0, 0)
-T(RN, 0x1p+0, 0x1.fffffffffffffffep-1L, 0x1.fffffffffffffp-1, 0x0p+0, 0)
T(RN, 0x1p+0, 0x1p+0L, 0x1p+0, 0x0p+0, 0)
T(RN, 0x1p+0, -0x1p+0L, 0x1.fffffffffffffp-1, 0x0p+0, 0)
T(RN, -0x1p+0, 0x1p+0L, -0x1.fffffffffffffp-1, 0x0p+0, 0)
T(RN, 0x1.fffffep+127, 0x0p+0L, 0x1.fffffcp+127, 0x0p+0, 0)
T(RN, 0x1p-149, -inf, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW)
T(RN, 0x1p-149, inf, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW)
+#if LDBL_MANT_DIG > DBL_MANT_DIG
T(RN, 0x1p-149, 0x1.ffffffffffffffep-150L, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW)
T(RN, 0x1p-149, 0x1.000000000000002p-149L, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW)
+T(RN, 0x1p+0, 0x1.0000000000000002p+0L, 0x1.000002p+0, 0x0p+0, 0)
+T(RN, 0x1p+0, 0x1.fffffffffffffffep-1L, 0x1.fffffep-1, 0x0p+0, 0)
+#endif
+T(RN, 0x1p-149, 0x1.fffffffffffffp-150L, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW)
+T(RN, 0x1p-149, 0x1.0000000000001p-149L, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW)
+T(RN, 0x1p+0, 0x1.0000000000001p+0L, 0x1.000002p+0, 0x0p+0, 0)
+T(RN, 0x1p+0, 0x1.fffffffffffffp-1L, 0x1.fffffep-1, 0x0p+0, 0)
T(RN, 0x1.fffff8p-127, 0x1p+0L, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW)
T(RN, 0x1.fffffcp-127, 0x1p+0L, 0x1p-126, 0x0p+0, 0)
T(RN, 0x1.000002p-126, 0x0p+0L, 0x1p-126, 0x0p+0, 0)
T(RN, 0x1p-126, 0x0p+0L, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW)
-T(RN, 0x1p+0, 0x1.0000000000000002p+0L, 0x1.000002p+0, 0x0p+0, 0)
-T(RN, 0x1p+0, 0x1.fffffffffffffffep-1L, 0x1.fffffep-1, 0x0p+0, 0)
T(RN, 0x1p+0, 0x1p+0L, 0x1p+0, 0x0p+0, 0)
T(RN, 0x1p+0, -0x1p+0L, 0x1.fffffep-1, 0x0p+0, 0)
T(RN, -0x1p+0, 0x1p+0L, -0x1.fffffep-1, 0x0p+0, 0)