aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/c-family/ChangeLog5
-rw-r--r--gcc/c-family/c-common.c6
-rw-r--r--gcc/c/ChangeLog4
-rw-r--r--gcc/c/c-decl.c5
-rw-r--r--gcc/testsuite/ChangeLog9
-rw-r--r--gcc/testsuite/gcc.dg/dfp/c11-keywords-1.c7
-rw-r--r--gcc/testsuite/gcc.dg/dfp/c11-keywords-2.c7
-rw-r--r--gcc/testsuite/gcc.dg/dfp/c2x-keywords-1.c7
-rw-r--r--gcc/testsuite/gcc.dg/dfp/c2x-keywords-2.c7
-rw-r--r--gcc/testsuite/gcc.dg/dfp/constants-c99.c2
-rw-r--r--gcc/testsuite/gcc.dg/dfp/keywords-c89.c4
-rw-r--r--gcc/testsuite/gcc.dg/dfp/keywords-c99.c4
-rw-r--r--gcc/testsuite/gcc.dg/dfp/keywords-ignored-c99.c15
13 files changed, 57 insertions, 25 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index a41e910..a0ce54b 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,8 @@
+2019-10-11 Joseph Myers <joseph@codesourcery.com>
+
+ * c-common.c (c_common_reswords): Do not use D_EXT for _Decimal32,
+ _Decimal64 and _Decimal128.
+
2019-10-10 Joseph Myers <joseph@codesourcery.com>
* c-cppbuiltin.c (c_cpp_builtins): Do not define macros for DFP
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
index 7169813..909f52a 100644
--- a/gcc/c-family/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -351,9 +351,9 @@ const struct c_common_resword c_common_reswords[] =
{ "_Float32x", RID_FLOAT32X, D_CONLY },
{ "_Float64x", RID_FLOAT64X, D_CONLY },
{ "_Float128x", RID_FLOAT128X, D_CONLY },
- { "_Decimal32", RID_DFLOAT32, D_CONLY | D_EXT },
- { "_Decimal64", RID_DFLOAT64, D_CONLY | D_EXT },
- { "_Decimal128", RID_DFLOAT128, D_CONLY | D_EXT },
+ { "_Decimal32", RID_DFLOAT32, D_CONLY },
+ { "_Decimal64", RID_DFLOAT64, D_CONLY },
+ { "_Decimal128", RID_DFLOAT128, D_CONLY },
{ "_Fract", RID_FRACT, D_CONLY | D_EXT },
{ "_Accum", RID_ACCUM, D_CONLY | D_EXT },
{ "_Sat", RID_SAT, D_CONLY | D_EXT },
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index fa1001c..894f5e7 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,7 @@
+2019-10-11 Joseph Myers <joseph@codesourcery.com>
+
+ * c-decl.c (declspecs_add_type): Use pedwarn_c11 for DFP types.
+
2019-10-10 Jakub Jelinek <jakub@redhat.com>
* c-parser.c (c_parser_omp_all_clauses): Add NESTED_P argument, if
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c
index 132fa3e..f67033b 100644
--- a/gcc/c/c-decl.c
+++ b/gcc/c/c-decl.c
@@ -10959,8 +10959,9 @@ declspecs_add_type (location_t loc, struct c_declspecs *specs,
error_at (loc,
("decimal floating-point not supported "
"for this target"));
- pedwarn (loc, OPT_Wpedantic,
- "ISO C does not support decimal floating-point");
+ pedwarn_c11 (loc, OPT_Wpedantic,
+ "ISO C does not support decimal floating-point "
+ "before C2X");
return specs;
case RID_FRACT:
case RID_ACCUM:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 488eba9..2459275 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2019-10-11 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/dfp/c11-keywords-1.c, gcc.dg/dfp/c11-keywords-2.c,
+ gcc.dg/dfp/c2x-keywords-1.c, gcc.dg/dfp/c2x-keywords-2.c: New
+ tests.
+ * gcc.dg/dfp/keywords-ignored-c99.c: Remove test.
+ * gcc.dg/dfp/constants-c99.c, gcc.dg/dfp/keywords-c89.c,
+ gcc.dg/dfp/keywords-c99.c: Use -pedantic-errors.
+
2019-10-11 Tobias Burnus <tobias@codesourcery.com>
PR fortran/92050
diff --git a/gcc/testsuite/gcc.dg/dfp/c11-keywords-1.c b/gcc/testsuite/gcc.dg/dfp/c11-keywords-1.c
new file mode 100644
index 0000000..5a5c862
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/dfp/c11-keywords-1.c
@@ -0,0 +1,7 @@
+/* Test that _Decimal* keywords diagnosed in C11 mode: -pedantic. */
+/* { dg-do compile } */
+/* { dg-options "-std=c11 -pedantic" } */
+
+_Decimal32 d32; /* { dg-warning "ISO C does not support" } */
+_Decimal64 d64; /* { dg-warning "ISO C does not support" } */
+_Decimal128 d128; /* { dg-warning "ISO C does not support" } */
diff --git a/gcc/testsuite/gcc.dg/dfp/c11-keywords-2.c b/gcc/testsuite/gcc.dg/dfp/c11-keywords-2.c
new file mode 100644
index 0000000..7c7f3d9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/dfp/c11-keywords-2.c
@@ -0,0 +1,7 @@
+/* Test that _Decimal* keywords diagnosed in C11 mode: -pedantic-errors. */
+/* { dg-do compile } */
+/* { dg-options "-std=c11 -pedantic-errors" } */
+
+_Decimal32 d32; /* { dg-error "ISO C does not support" } */
+_Decimal64 d64; /* { dg-error "ISO C does not support" } */
+_Decimal128 d128; /* { dg-error "ISO C does not support" } */
diff --git a/gcc/testsuite/gcc.dg/dfp/c2x-keywords-1.c b/gcc/testsuite/gcc.dg/dfp/c2x-keywords-1.c
new file mode 100644
index 0000000..a3a1da5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/dfp/c2x-keywords-1.c
@@ -0,0 +1,7 @@
+/* Test that _Decimal* keywords are accepted in C2X mode. */
+/* { dg-do compile } */
+/* { dg-options "-std=c2x -pedantic-errors" } */
+
+_Decimal32 d32;
+_Decimal64 d64;
+_Decimal128 d128;
diff --git a/gcc/testsuite/gcc.dg/dfp/c2x-keywords-2.c b/gcc/testsuite/gcc.dg/dfp/c2x-keywords-2.c
new file mode 100644
index 0000000..9655dd0
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/dfp/c2x-keywords-2.c
@@ -0,0 +1,7 @@
+/* Test that _Decimal* keywords are accepted in C2X mode: compat warnings. */
+/* { dg-do compile } */
+/* { dg-options "-std=c2x -Wc11-c2x-compat" } */
+
+_Decimal32 d32; /* { dg-warning "ISO C does not support" } */
+_Decimal64 d64; /* { dg-warning "ISO C does not support" } */
+_Decimal128 d128; /* { dg-warning "ISO C does not support" } */
diff --git a/gcc/testsuite/gcc.dg/dfp/constants-c99.c b/gcc/testsuite/gcc.dg/dfp/constants-c99.c
index 6a48bf5..5a135c5 100644
--- a/gcc/testsuite/gcc.dg/dfp/constants-c99.c
+++ b/gcc/testsuite/gcc.dg/dfp/constants-c99.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-std=c99 -Wno-overflow" } */
+/* { dg-options "-std=c99 -Wno-overflow -pedantic-errors" } */
/* N1150 6: Constants.
C99 6.4.4.2: Floating constants. */
diff --git a/gcc/testsuite/gcc.dg/dfp/keywords-c89.c b/gcc/testsuite/gcc.dg/dfp/keywords-c89.c
index 8c96d60..a67c3d6 100644
--- a/gcc/testsuite/gcc.dg/dfp/keywords-c89.c
+++ b/gcc/testsuite/gcc.dg/dfp/keywords-c89.c
@@ -1,7 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-std=c89" } */
+/* { dg-options "-std=c89 -pedantic-errors" } */
-/* Decimal float keywords are not recognized in C89 mode. */
+/* Decimal float keywords are diagnosed in pedantic C89 mode. */
_Decimal32 x; /* { dg-error "" } */
_Decimal64 y; /* { dg-error "" } */
diff --git a/gcc/testsuite/gcc.dg/dfp/keywords-c99.c b/gcc/testsuite/gcc.dg/dfp/keywords-c99.c
index 8a62fb9..f51900e 100644
--- a/gcc/testsuite/gcc.dg/dfp/keywords-c99.c
+++ b/gcc/testsuite/gcc.dg/dfp/keywords-c99.c
@@ -1,7 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-std=c99" } */
+/* { dg-options "-std=c99 -pedantic-errors" } */
-/* Decimal float keywords are not recognized in C99 mode. */
+/* Decimal float keywords are diagnosed in pedantic C99 mode. */
_Decimal32 x; /* { dg-error "" } */
_Decimal64 y; /* { dg-error "" } */
diff --git a/gcc/testsuite/gcc.dg/dfp/keywords-ignored-c99.c b/gcc/testsuite/gcc.dg/dfp/keywords-ignored-c99.c
deleted file mode 100644
index a4258aa..0000000
--- a/gcc/testsuite/gcc.dg/dfp/keywords-ignored-c99.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-std=c99" } */
-
-/* Decimal float keywords are not reserved for c99. */
-
-int _Decimal32 (void)
-{
- return 0;
-}
-
-int foo (int i)
-{
- int _Decimal64 = i * 2;
- return _Decimal64;
-}