re PR c++/67160 (static_assert feature test macro)
authorPaolo Carlini <paolo.carlini@oracle.com>
Tue, 18 Aug 2015 14:38:51 +0000 (14:38 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Tue, 18 Aug 2015 14:38:51 +0000 (14:38 +0000)
c-family/
2015-08-18  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/67160
* c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_static_assert value
in c++1z mode.

testsuite/
2015-08-18  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/67160
* g++.dg/cpp1z/feat-cxx1z.C: New.

From-SVN: r226972

gcc/c-family/ChangeLog
gcc/c-family/c-cppbuiltin.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C [new file with mode: 0644]

index 86e421fc732f4e2d0b608d5ca30da40622693aed..6200d1bc0260c83a79a44edf31fbb38def6578bb 100644 (file)
@@ -1,3 +1,9 @@
+2015-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/67160
+       * c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_static_assert value
+       in c++1z mode.
+
 2015-08-17  Marek Polacek  <polacek@redhat.com>
 
        * c-pretty-print.c (pp_c_cv_qualifiers): Remove code dealing
index 6e18a77f227cf24bf99fbd0cb16bb08ade47509d..0e45a576e9b180c4ab474f94bc8166a9f0880ea7 100644 (file)
@@ -832,7 +832,7 @@ c_cpp_builtins (cpp_reader *pfile)
 
       if (cxx_dialect >= cxx11)
        {
-         /* Set feature test macros for C++11  */
+         /* Set feature test macros for C++11.  */
          cpp_define (pfile, "__cpp_unicode_characters=200704");
          cpp_define (pfile, "__cpp_raw_strings=200710");
          cpp_define (pfile, "__cpp_unicode_literals=200710");
@@ -841,7 +841,8 @@ c_cpp_builtins (cpp_reader *pfile)
          if (cxx_dialect == cxx11)
            cpp_define (pfile, "__cpp_constexpr=200704");
          cpp_define (pfile, "__cpp_range_based_for=200907");
-         cpp_define (pfile, "__cpp_static_assert=200410");
+         if (cxx_dialect <= cxx14)
+           cpp_define (pfile, "__cpp_static_assert=200410");
          cpp_define (pfile, "__cpp_decltype=200707");
          cpp_define (pfile, "__cpp_attributes=200809");
          cpp_define (pfile, "__cpp_rvalue_reference=200610");
@@ -855,7 +856,7 @@ c_cpp_builtins (cpp_reader *pfile)
        }
       if (cxx_dialect > cxx11)
        {
-         /* Set feature test macros for C++14  */
+         /* Set feature test macros for C++14.  */
          cpp_define (pfile, "__cpp_return_type_deduction=201304");
          cpp_define (pfile, "__cpp_init_captures=201304");
          cpp_define (pfile, "__cpp_generic_lambdas=201304");
@@ -865,6 +866,11 @@ c_cpp_builtins (cpp_reader *pfile)
          cpp_define (pfile, "__cpp_variable_templates=201304");
          cpp_define (pfile, "__cpp_digit_separators=201309");
        }
+      if (cxx_dialect > cxx14)
+       {
+         /* Set feature test macros for C++1z.  */
+         cpp_define (pfile, "__cpp_static_assert=201411");
+       }
       if (flag_concepts)
        /* Use a value smaller than the 201507 specified in
           the TS, since we don't yet support extended auto.  */
index 97322ac25d5321e3442e894d8243cbadff0345d4..ede4dc492a6cbbaffa37d8ac704d1c5dab41417f 100644 (file)
@@ -1,3 +1,8 @@
+2015-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/67160
+       * g++.dg/cpp1z/feat-cxx1z.C: New.
+
 2015-08-18  Marek Polacek  <polacek@redhat.com>
 
        PR middle-end/67222
diff --git a/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C b/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C
new file mode 100644 (file)
index 0000000..b3e742c
--- /dev/null
@@ -0,0 +1,8 @@
+// { dg-do compile }
+// { dg-options "-std=c++1z" }
+
+#ifndef __cpp_static_assert
+#  error "__cpp_static_assert"
+#elif __cpp_static_assert != 201411
+#  error "__cpp_static_assert != 201411"
+#endif