aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ginclude/float.h7
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/cr-decimal-dig-1.c14
4 files changed, 30 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e3ec20e..3b5fc9c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2016-09-19 Joseph Myers <joseph@codesourcery.com>
+ * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
+ (CR_DECIMAL_DIG): New macro.
+
+2016-09-19 Joseph Myers <joseph@codesourcery.com>
+
* ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
element.
diff --git a/gcc/ginclude/float.h b/gcc/ginclude/float.h
index de46a27..421f735 100644
--- a/gcc/ginclude/float.h
+++ b/gcc/ginclude/float.h
@@ -185,6 +185,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#endif /* C11 */
+#ifdef __STDC_WANT_IEC_60559_BFP_EXT__
+/* Number of decimal digits for which conversions between decimal
+ character strings and binary formats, in both directions, are
+ correctly rounded. */
+#define CR_DECIMAL_DIG __UINTMAX_MAX__
+#endif
+
#ifdef __STDC_WANT_IEC_60559_TYPES_EXT__
/* Constants for _FloatN and _FloatNx types from TS 18661-3. See
comments above for their semantics. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 741ec97..c825702 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,9 @@
2016-09-19 Joseph Myers <joseph@codesourcery.com>
+ * gcc.dg/cr-decimal-dig-1.c: New test.
+
+2016-09-19 Joseph Myers <joseph@codesourcery.com>
+
* gcc.dg/float128-align.c, gcc.dg/float128x-align.c,
gcc.dg/float16-align.c, gcc.dg/float32-align.c,
gcc.dg/float32x-align.c, gcc.dg/float64-align.c,
diff --git a/gcc/testsuite/gcc.dg/cr-decimal-dig-1.c b/gcc/testsuite/gcc.dg/cr-decimal-dig-1.c
new file mode 100644
index 0000000..2bbc40c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cr-decimal-dig-1.c
@@ -0,0 +1,14 @@
+/* Test TS 18661-1 CR_DECIMAL_DIG. */
+/* { dg-do compile } */
+/* { dg-options "-std=c11" } */
+
+#define __STDC_WANT_IEC_60559_BFP_EXT__
+#include <float.h>
+
+#ifndef CR_DECIMAL_DIG
+#error "CR_DECIMAL_DIG not defined"
+#endif
+
+#if CR_DECIMAL_DIG < DECIMAL_DIG + 3
+#error "CR_DECIMAL_DIG too small"
+#endif