[PATCH, C++, CPP] Add C++1z to the preprocessor. Rename C++1y to C++14.

Ed Smith-Rowland 3dw4rd@verizon.net
Sat Jul 26 17:50:00 GMT 2014


On 07/16/2014 12:18 PM, Mike Stump wrote:
> On Jul 16, 2014, at 7:51 AM, Ed Smith-Rowland <3dw4rd@verizon.net> wrote:
>> 	Deprecate c++1y. Chane language to reflect greater confidence in C++14
> Chane -> Change.  I looked at your patch, all seems fine.  I like the documentation edits you did, nice job.
>
In the last patch I has missed a few testcases.  These are repaired and 
added to the patch.  Sorry for the noise.

built and tested on x86_64-linux.

OK?
-------------- next part --------------

libcpp/

2014-07-26  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Z, CLK_CXX1Z;
	Rename CLK_GNUCXX1Y, CLK_CXX1Y to CLK_GNUCXX14, CLK_CXX14;
	* init.c (struct lang_flags lang_defaults): Add column for trigraphs;
	Add rows for CLK_GNUCXX1Z, CLK_CXX1Z; (cpp_set_lang): Set trigraphs;
	(cpp_init_builtins): Set __cplusplus to 201402L for C++14;
	Set __cplusplus to 201500L for C++17.


gcc/c-family/

2014-07-26  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* c-common.h (enum cxx_dialect): Add cxx14.
	* c-opts.c (set_std_cxx1y): Rename to set_std_cxx14; Use cxx14.
	* c-ubsan.c (ubsan_instrument_shift): Change comment and logic from
	cxx_dialect == cxx11 || cxx_dialect == cxx1y to cxx_dialect >= cxx11.


gcc/cp/

2014-07-26  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* decl.c (compute_array_index_type, grokdeclarator,
	undeduced_auto_decl): Change from cxx1y to cxx14.
	* parser.c (cp_parser_unqualified_id, cp_parser_pseudo_destructor_name,
	cp_parser_lambda_introducer, cp_parser_lambda_declarator_opt,
	cp_parser_decltype, cp_parser_conversion_type_id,
	cp_parser_simple_type_specifier, cp_parser_type_id_1,
	cp_parser_template_type_arg, cp_parser_std_attribute,
	cp_parser_template_declaration_after_export): Ditto.
	* pt.c (tsubst): Ditto.
	* semantics.c (force_paren_expr, finish_decltype_type): Ditto.
	* typeck.c (comp_template_parms_position, cxx_sizeof_or_alignof_type,
	cp_build_addr_expr_1, maybe_warn_about_useless_cast): Ditto.


gcc/

2014-07-26  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
	Deprecate c++1y. Change language to reflect greater confidence in C++14.


gcc/testsuite/

2014-07-26  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* g++.dg/cpp0x/cplusplus.C: New.
	* g++.dg/cpp0x/cplusplus_0x.C: New.
	* g++.dg/cpp0x/auto3.C: Change c++1y to c++14.
	* g++.dg/cpp0x/auto41.C: Ditto.
	* g++.dg/cpp0x/auto9.C: Ditto.
	* g++.dg/cpp0x/initlist26.C: Ditto.
	* g++.dg/cpp0x/pr59111.C: Ditto.
	* g++.dg/cpp0x/trailing2.C: Ditto.
	* g++.dg/cpp1y/attr-deprecated.C: Ditto.
	* g++.dg/cpp1y/auto-dtor1.C: Ditto.
	* g++.dg/cpp1y/auto-fn1.C: Ditto.
	* g++.dg/cpp1y/auto-fn2.C: Ditto.
	* g++.dg/cpp1y/auto-fn3.C: Ditto.
	* g++.dg/cpp1y/auto-fn4.C: Ditto.
	* g++.dg/cpp1y/auto-fn5.C: Ditto.
	* g++.dg/cpp1y/auto-fn6.C: Ditto.
	* g++.dg/cpp1y/auto-fn7.C: Ditto.
	* g++.dg/cpp1y/auto-fn8.C: Ditto.
	* g++.dg/cpp1y/auto-fn9.C: Ditto.
	* g++.dg/cpp1y/auto-fn10.C: Ditto.
	* g++.dg/cpp1y/auto-fn11.C: Ditto.
	* g++.dg/cpp1y/auto-fn12.C: Ditto.
	* g++.dg/cpp1y/auto-fn13.C: Ditto.
	* g++.dg/cpp1y/auto-fn14.C: Ditto.
	* g++.dg/cpp1y/auto-fn15.C: Ditto.
	* g++.dg/cpp1y/auto-fn16.C: Ditto.
	* g++.dg/cpp1y/auto-fn17.C: Ditto.
	* g++.dg/cpp1y/auto-fn18.C: Ditto.
	* g++.dg/cpp1y/auto-fn19.C: Ditto.
	* g++.dg/cpp1y/auto-fn20.C: Ditto.
	* g++.dg/cpp1y/auto-fn21.C: Ditto.
	* g++.dg/cpp1y/auto-fn22.C: Ditto.
	* g++.dg/cpp1y/auto-fn23.C: Ditto.
	* g++.dg/cpp1y/auto-fn24.C: Ditto.
	* g++.dg/cpp1y/auto-fn25.C: Ditto.
	* g++.dg/cpp1y/auto-mangle1.C: Ditto.
	* g++.dg/cpp1y/auto-neg1.C: Ditto.
	* g++.dg/cpp1y/digit-sep.C: Ditto.
	* g++.dg/cpp1y/digit-sep-neg.C: Ditto.
	* g++.dg/cpp1y/digit-sep-cxx11-neg.C: Ditto.
	* g++.dg/cpp1y/fn-generic-member-ool.C: Ditto.
	* g++.dg/cpp1y/lambda-deduce-mult.C: Ditto.
	* g++.dg/cpp1y/lambda-generic.C: Ditto.
	* g++.dg/cpp1y/lambda-generic-cfun.C: Ditto.
	* g++.dg/cpp1y/lambda-generic-dep.C: Ditto.
	* g++.dg/cpp1y/lambda-generic-mixed.C: Ditto.
	* g++.dg/cpp1y/lambda-generic-udt.C: Ditto.
	* g++.dg/cpp1y/lambda-generic-variadic.C: Ditto.
	* g++.dg/cpp1y/lambda-generic-vla1.C: Ditto.
	* g++.dg/cpp1y/lambda-generic-x.C: Ditto.
	* g++.dg/cpp1y/lambda-generic-xcfun.C: Ditto.
	* g++.dg/cpp1y/lambda-generic-xudt.C: Ditto.
	* g++.dg/cpp1y/lambda-init.C: Ditto.
	* g++.dg/cpp1y/lambda-init1.C: Ditto.
	* g++.dg/cpp1y/lambda-init2.C: Ditto.
	* g++.dg/cpp1y/lambda-init3.C: Ditto.
	* g++.dg/cpp1y/lambda-init4.C: Ditto.
	* g++.dg/cpp1y/lambda-init5.C: Ditto.
	* g++.dg/cpp1y/lambda-init6.C: Ditto.
	* g++.dg/cpp1y/lambda-init7.C: Ditto.
	* g++.dg/cpp1y/lambda-init8.C: Ditto.
	* g++.dg/cpp1y/lambda-init9.C: Ditto.
	* g++.dg/cpp1y/mangle1.C: Ditto.
	* g++.dg/cpp1y/pr57640.C: Ditto.
	* g++.dg/cpp1y/pr57644.C: Ditto.
	* g++.dg/cpp1y/pr58500.C: Ditto.
	* g++.dg/cpp1y/pr58533.C: Ditto.
	* g++.dg/cpp1y/pr58534.C: Ditto.
	* g++.dg/cpp1y/pr58535.C: Ditto.
	* g++.dg/cpp1y/pr58536.C: Ditto.
	* g++.dg/cpp1y/pr58548.C: Ditto.
	* g++.dg/cpp1y/pr58549.C: Ditto.
	* g++.dg/cpp1y/pr58637.C: Ditto.
	* g++.dg/cpp1y/pr58708.C: Ditto.
	* g++.dg/cpp1y/pr59110.C: Ditto.
	* g++.dg/cpp1y/pr59112.C: Ditto.
	* g++.dg/cpp1y/pr59113.C: Ditto.
	* g++.dg/cpp1y/pr59629.C: Ditto.
	* g++.dg/cpp1y/pr59635.C: Ditto.
	* g++.dg/cpp1y/pr59636.C: Ditto.
	* g++.dg/cpp1y/pr59638.C: Ditto.
	* g++.dg/cpp1y/pr59867.C: Ditto.
	* g++.dg/cpp1y/pr60033.C: Ditto.
	* g++.dg/cpp1y/pr60052.C: Ditto.
	* g++.dg/cpp1y/pr60053.C: Ditto.
	* g++.dg/cpp1y/pr60054.C: Ditto.
	* g++.dg/cpp1y/pr60064.C: Ditto.
	* g++.dg/cpp1y/pr60065.C: Ditto.
	* g++.dg/cpp1y/pr60190.C: Ditto.
	* g++.dg/cpp1y/pr60311.C: Ditto.
	* g++.dg/cpp1y/pr60332.C: Ditto.
	* g++.dg/cpp1y/pr60376.C: Ditto.
	* g++.dg/cpp1y/pr60377.C: Ditto.
	* g++.dg/cpp1y/pr60384.C: Ditto.
	* g++.dg/cpp1y/pr60390.C: Ditto.
	* g++.dg/cpp1y/pr60391.C: Ditto.
	* g++.dg/cpp1y/pr60393.C: Ditto.
	* g++.dg/cpp1y/pr60573.C: Ditto.
	* g++.dg/cpp1y/pr60626.C: Ditto.
	* g++.dg/cpp1y/pr60627.C: Ditto.
	* g++.dg/cpp1y/regress1.C: Ditto.
	* g++.dg/cpp1y/system-binary-constants-1.C: Ditto.
	* g++.dg/cpp1y/udlit-char-template.C: Ditto.
	* g++.dg/cpp1y/udlit-char-template-neg.C: Ditto.
	* g++.dg/cpp1y/udlit-empty-string-neg.C: Ditto.
	* g++.dg/cpp1y/udlit-enc-prefix-neg.C: Ditto.
	* g++.dg/cpp1y/udlit-userdef-string.C: Ditto.
	* g++.dg/cpp1y/vla1.C: Ditto.
	* g++.dg/cpp1y/vla2.C: Ditto.
	* g++.dg/cpp1y/vla3.C: Ditto.
	* g++.dg/cpp1y/vla4.C: Ditto.
	* g++.dg/cpp1y/vla5.C: Ditto.
	* g++.dg/cpp1y/vla8.C: Ditto.
	* g++.dg/cpp1y/vla9.C: Ditto.
	* g++.dg/cpp1y/vla10.C: Ditto.
	* g++.dg/cpp1y/vla11.C: Ditto.
	* g++.dg/cpp1y/vla12.C: Ditto.
	* g++.dg/cpp1y/vla13.C: Ditto.
	* g++.dg/cpp1y/vla-initlist1.C: Ditto.
	* g++.dg/ext/vector23.C: Ditto.
	* g++.dg/ext/vla11.C: Ditto.
	* g++.dg/warn/Wvla-2.C: Ditto.
	* g++.dg/debug/dwarf2/auto1.C: Ditto.
	* g++.dg/cpp1z/typename-tmpl-tmpl-parm-ped-neg.C: Ditto.
	* g++.dg/cpp1y/cplusplus.C: Check for exact date.
	* g++.dg/cpp1y/cplusplus_1y.C: New.
	* g++.dg/cpp1z/cplusplus.C: New.

-------------- next part --------------
Index: libcpp/include/cpplib.h
===================================================================
--- libcpp/include/cpplib.h	(revision 213071)
+++ libcpp/include/cpplib.h	(working copy)
@@ -166,7 +166,7 @@
 enum c_lang {CLK_GNUC89 = 0, CLK_GNUC99, CLK_GNUC11,
 	     CLK_STDC89, CLK_STDC94, CLK_STDC99, CLK_STDC11,
 	     CLK_GNUCXX, CLK_CXX98, CLK_GNUCXX11, CLK_CXX11,
-	     CLK_GNUCXX1Y, CLK_CXX1Y, CLK_ASM};
+	     CLK_GNUCXX14, CLK_CXX14, CLK_GNUCXX1Z, CLK_CXX1Z, CLK_ASM};
 
 /* Payload of a NUMBER, STRING, CHAR or COMMENT token.  */
 struct GTY(()) cpp_string {
Index: libcpp/init.c
===================================================================
--- libcpp/init.c	(revision 213071)
+++ libcpp/init.c	(working copy)
@@ -90,26 +90,29 @@
   char user_literals;
   char binary_constants;
   char digit_separators;
+  char trigraphs;
 };
 
 static const struct lang_flags lang_defaults[] =
-{ /*              c99 c++ xnum xid c11 std  //   digr ulit rlit udlit bin_cst dig_sep */
-  /* GNUC89   */  { 0,  0,  1,   0,  0,  0,   1,   1,   0,   0,   0,    0,      0 },
-  /* GNUC99   */  { 1,  0,  1,   0,  0,  0,   1,   1,   1,   1,   0,    0,      0 },
-  /* GNUC11   */  { 1,  0,  1,   0,  1,  0,   1,   1,   1,   1,   0,    0,      0 },
-  /* STDC89   */  { 0,  0,  0,   0,  0,  1,   0,   0,   0,   0,   0,    0,      0 },
-  /* STDC94   */  { 0,  0,  0,   0,  0,  1,   0,   1,   0,   0,   0,    0,      0 },
-  /* STDC99   */  { 1,  0,  1,   0,  0,  1,   1,   1,   0,   0,   0,    0,      0 },
-  /* STDC11   */  { 1,  0,  1,   0,  1,  1,   1,   1,   1,   0,   0,    0,      0 },
-  /* GNUCXX   */  { 0,  1,  1,   0,  0,  0,   1,   1,   0,   0,   0,    0,      0 },
-  /* CXX98    */  { 0,  1,  1,   0,  0,  1,   1,   1,   0,   0,   0,    0,      0 },
-  /* GNUCXX11 */  { 1,  1,  1,   0,  1,  0,   1,   1,   1,   1,   1,    0,      0 },
-  /* CXX11    */  { 1,  1,  1,   0,  1,  1,   1,   1,   1,   1,   1,    0,      0 },
-  /* GNUCXX1Y */  { 1,  1,  1,   0,  1,  0,   1,   1,   1,   1,   1,    1,      1 },
-  /* CXX1Y    */  { 1,  1,  1,   0,  1,  1,   1,   1,   1,   1,   1,    1,      1 },
-  /* ASM      */  { 0,  0,  1,   0,  0,  0,   1,   0,   0,   0,   0,    0,      0 }
+{ /*              c99 c++ xnum xid c11 std // digr ulit rlit udlit bincst digsep trig */
+  /* GNUC89   */  { 0,  0,  1,  0,  0,  0,  1,  1,  0,   0,   0,    0,     0,     0 },
+  /* GNUC99   */  { 1,  0,  1,  0,  0,  0,  1,  1,  1,   1,   0,    0,     0,     0 },
+  /* GNUC11   */  { 1,  0,  1,  0,  1,  0,  1,  1,  1,   1,   0,    0,     0,     0 },
+  /* STDC89   */  { 0,  0,  0,  0,  0,  1,  0,  0,  0,   0,   0,    0,     0,     1 },
+  /* STDC94   */  { 0,  0,  0,  0,  0,  1,  0,  1,  0,   0,   0,    0,     0,     1 },
+  /* STDC99   */  { 1,  0,  1,  0,  0,  1,  1,  1,  0,   0,   0,    0,     0,     1 },
+  /* STDC11   */  { 1,  0,  1,  0,  1,  1,  1,  1,  1,   0,   0,    0,     0,     1 },
+  /* GNUCXX   */  { 0,  1,  1,  0,  0,  0,  1,  1,  0,   0,   0,    0,     0,     0 },
+  /* CXX98    */  { 0,  1,  1,  0,  0,  1,  1,  1,  0,   0,   0,    0,     0,     1 },
+  /* GNUCXX11 */  { 1,  1,  1,  0,  1,  0,  1,  1,  1,   1,   1,    0,     0,     0 },
+  /* CXX11    */  { 1,  1,  1,  0,  1,  1,  1,  1,  1,   1,   1,    0,     0,     1 },
+  /* GNUCXX14 */  { 1,  1,  1,  0,  1,  0,  1,  1,  1,   1,   1,    1,     1,     0 },
+  /* CXX14    */  { 1,  1,  1,  0,  1,  1,  1,  1,  1,   1,   1,    1,     1,     1 },
+  /* GNUCXX1Z */  { 1,  1,  1,  0,  1,  0,  1,  1,  1,   1,   1,    1,     1,     0 },
+  /* CXX1Z    */  { 1,  1,  1,  0,  1,  1,  1,  1,  1,   1,   1,    1,     1,     0 },
+  /* ASM      */  { 0,  0,  1,  0,  0,  0,  1,  0,  0,   0,   0,    0,     0,     0 }
   /* xid should be 1 for GNUC99, STDC99, GNUCXX, CXX98, GNUCXX11, CXX11,
-     GNUCXX1Y, and CXX1Y when no longer experimental (when all uses of
+     GNUCXX14, and CXX14 when no longer experimental (when all uses of
      identifiers in the compiler have been audited for correct handling
      of extended identifiers).  */
 };
@@ -128,7 +131,6 @@
   CPP_OPTION (pfile, extended_identifiers)	 = l->extended_identifiers;
   CPP_OPTION (pfile, c11_identifiers)		 = l->c11_identifiers;
   CPP_OPTION (pfile, std)			 = l->std;
-  CPP_OPTION (pfile, trigraphs)			 = l->std;
   CPP_OPTION (pfile, cplusplus_comments)	 = l->cplusplus_comments;
   CPP_OPTION (pfile, digraphs)			 = l->digraphs;
   CPP_OPTION (pfile, uliterals)			 = l->uliterals;
@@ -136,6 +138,7 @@
   CPP_OPTION (pfile, user_literals)		 = l->user_literals;
   CPP_OPTION (pfile, binary_constants)		 = l->binary_constants;
   CPP_OPTION (pfile, digit_separators)		 = l->digit_separators;
+  CPP_OPTION (pfile, trigraphs)			 = l->trigraphs;
 }
 
 /* Initialize library global state.  */
@@ -489,9 +492,12 @@
 
   if (CPP_OPTION (pfile, cplusplus))
     {
-      if (CPP_OPTION (pfile, lang) == CLK_CXX1Y
-	  || CPP_OPTION (pfile, lang) == CLK_GNUCXX1Y)
-	_cpp_define_builtin (pfile, "__cplusplus 201300L");
+      if (CPP_OPTION (pfile, lang) == CLK_CXX1Z
+	  || CPP_OPTION (pfile, lang) == CLK_GNUCXX1Z)
+	_cpp_define_builtin (pfile, "__cplusplus 201500L");
+      else if (CPP_OPTION (pfile, lang) == CLK_CXX14
+	  || CPP_OPTION (pfile, lang) == CLK_GNUCXX14)
+	_cpp_define_builtin (pfile, "__cplusplus 201402L");
       else if (CPP_OPTION (pfile, lang) == CLK_CXX11
 	       || CPP_OPTION (pfile, lang) == CLK_GNUCXX11)
 	_cpp_define_builtin (pfile, "__cplusplus 201103L");
Index: gcc/c-family/c-common.h
===================================================================
--- gcc/c-family/c-common.h	(revision 213071)
+++ gcc/c-family/c-common.h	(working copy)
@@ -640,8 +640,9 @@
   /* C++11  */
   cxx0x,
   cxx11 = cxx0x,
-  /* C++1y (C++14?) */
+  /* C++14  */
   cxx1y,
+  cxx14 = cxx1y,
   /* C++1z (C++17?) */
   cxx1z
 };
Index: gcc/c-family/c-opts.c
===================================================================
--- gcc/c-family/c-opts.c	(revision 213071)
+++ gcc/c-family/c-opts.c	(working copy)
@@ -115,7 +115,7 @@
 static void handle_OPT_d (const char *);
 static void set_std_cxx98 (int);
 static void set_std_cxx11 (int);
-static void set_std_cxx1y (int);
+static void set_std_cxx14 (int);
 static void set_std_cxx1z (int);
 static void set_std_c89 (int, int);
 static void set_std_c99 (int);
@@ -697,7 +697,7 @@
     case OPT_std_gnu__1y:
       if (!preprocessing_asm_p)
 	{
-	  set_std_cxx1y (code == OPT_std_c__1y /* ISO */);
+	  set_std_cxx14 (code == OPT_std_c__1y /* ISO */);
 	  if (code == OPT_std_c__1y)
 	    cpp_opts->ext_numeric_literals = 0;
 	}
@@ -1584,9 +1584,9 @@
 
 /* Set the C++ 201y draft standard (without GNU extensions if ISO).  */
 static void
-set_std_cxx1y (int iso)
+set_std_cxx14 (int iso)
 {
-  cpp_set_lang (parse_in, iso ? CLK_CXX1Y: CLK_GNUCXX1Y);
+  cpp_set_lang (parse_in, iso ? CLK_CXX14: CLK_GNUCXX14);
   flag_no_gnu_keywords = iso;
   flag_no_nonansi_builtin = iso;
   flag_iso = iso;
@@ -1593,7 +1593,7 @@
   /* C++11 includes the C99 standard library.  */
   flag_isoc94 = 1;
   flag_isoc99 = 1;
-  cxx_dialect = cxx1y;
+  cxx_dialect = cxx14;
 }
 
 /* Set the C++ 201z draft standard (without GNU extensions if ISO).  */
@@ -1600,7 +1600,7 @@
 static void
 set_std_cxx1z (int iso)
 {
-  cpp_set_lang (parse_in, iso ? CLK_CXX1Y: CLK_GNUCXX1Y);
+  cpp_set_lang (parse_in, iso ? CLK_CXX1Z: CLK_GNUCXX1Z);
   flag_no_gnu_keywords = iso;
   flag_no_nonansi_builtin = iso;
   flag_iso = iso;
@@ -1607,6 +1607,7 @@
   /* C++11 includes the C99 standard library.  */
   flag_isoc94 = 1;
   flag_isoc99 = 1;
+  flag_isoc11 = 1;
   cxx_dialect = cxx1z;
 }
 
Index: gcc/c-family/c-ubsan.c
===================================================================
--- gcc/c-family/c-ubsan.c	(revision 213071)
+++ gcc/c-family/c-ubsan.c	(working copy)
@@ -144,12 +144,12 @@
 			build_int_cst (TREE_TYPE (tt), 0));
     }
 
-  /* For signed x << y, in C++11/C++14, the following:
+  /* For signed x << y, in C++11 and later, the following:
      x < 0 || ((unsigned) x >> (precm1 - y))
      if > 1, is undefined.  */
   if (code == LSHIFT_EXPR
       && !TYPE_UNSIGNED (TREE_TYPE (op0))
-      && (cxx_dialect == cxx11 || cxx_dialect == cxx1y))
+      && (cxx_dialect >= cxx11))
     {
       tree x = fold_build2 (MINUS_EXPR, integer_type_node, precm1, op1);
       tt = fold_convert_loc (loc, unsigned_type_for (type0), op0);
Index: gcc/cp/decl.c
===================================================================
--- gcc/cp/decl.c	(revision 213071)
+++ gcc/cp/decl.c	(working copy)
@@ -8382,7 +8382,7 @@
 	   /* We don't allow VLAs at non-function scopes, or during
 	      tentative template substitution.  */
 	   || !at_function_scope_p ()
-	   || (cxx_dialect < cxx1y && !(complain & tf_error)))
+	   || (cxx_dialect < cxx14 && !(complain & tf_error)))
     {
       if (!(complain & tf_error))
 	return error_mark_node;
@@ -8394,7 +8394,7 @@
 	error ("size of array is not an integral constant-expression");
       size = integer_one_node;
     }
-  else if (cxx_dialect < cxx1y && pedantic && warn_vla != 0)
+  else if (cxx_dialect < cxx14 && pedantic && warn_vla != 0)
     {
       if (name)
 	pedwarn (input_location, OPT_Wvla, "ISO C++ forbids variable length array %qD", name);
@@ -8452,7 +8452,7 @@
 
 	  stabilize_vla_size (itype);
 
-	  if (cxx_dialect >= cxx1y && flag_exceptions)
+	  if (cxx_dialect >= cxx14 && flag_exceptions)
 	    {
 	      /* If the VLA bound is larger than half the address space,
 	         or less than zero, throw std::bad_array_length.  */
@@ -8597,7 +8597,7 @@
       return error_mark_node;
     }
 
-  if (cxx_dialect >= cxx1y && array_of_runtime_bound_p (type)
+  if (cxx_dialect >= cxx14 && array_of_runtime_bound_p (type)
       && (flag_iso || warn_vla > 0))
     pedwarn (input_location, OPT_Wvla, "array of array of runtime bound");
 
@@ -9612,7 +9612,7 @@
 			if (current_class_type
 			    && LAMBDA_TYPE_P (current_class_type))
 			  /* OK for C++11 lambdas.  */;
-			else if (cxx_dialect < cxx1y)
+			else if (cxx_dialect < cxx14)
 			  {
 			    error ("%qs function uses "
 				   "%<auto%> type specifier without trailing "
@@ -9838,7 +9838,7 @@
                    : G_("cannot declare pointer to qualified function type %qT"),
 		   type);
 
-	  if (cxx_dialect >= cxx1y && array_of_runtime_bound_p (type)
+	  if (cxx_dialect >= cxx14 && array_of_runtime_bound_p (type)
 	      && (flag_iso || warn_vla > 0))
 	    pedwarn (input_location, OPT_Wvla,
 		     declarator->kind == cdk_reference
@@ -10194,7 +10194,7 @@
 	  type = error_mark_node;
 	}
 
-      if (cxx_dialect >= cxx1y && array_of_runtime_bound_p (type)
+      if (cxx_dialect >= cxx14 && array_of_runtime_bound_p (type)
 	  && (flag_iso || warn_vla > 0))
 	pedwarn (input_location, OPT_Wvla,
 		 "typedef naming array of runtime bound");
@@ -10440,7 +10440,7 @@
 
       if (type_uses_auto (type))
 	{
-	  if (cxx_dialect >= cxx1y)
+	  if (cxx_dialect >= cxx14)
 	    error ("%<auto%> parameter not permitted in this context");
 	  else
 	    error ("parameter declared %<auto%>");
@@ -14567,7 +14567,7 @@
 bool
 undeduced_auto_decl (tree decl)
 {
-  if (cxx_dialect < cxx1y)
+  if (cxx_dialect < cxx14)
     return false;
   return type_uses_auto (TREE_TYPE (decl));
 }
Index: gcc/cp/parser.c
===================================================================
--- gcc/cp/parser.c	(revision 213071)
+++ gcc/cp/parser.c	(working copy)
@@ -4978,7 +4978,7 @@
 	/* ~auto means the destructor of whatever the object is.  */
 	if (cp_parser_is_keyword (token, RID_AUTO))
 	  {
-	    if (cxx_dialect < cxx1y)
+	    if (cxx_dialect < cxx14)
 	      pedwarn (input_location, 0,
 		       "%<~auto%> only available with "
 		       "-std=c++1y or -std=gnu++1y");
@@ -6903,7 +6903,7 @@
       && cp_lexer_nth_token_is_keyword (parser->lexer, 2, RID_AUTO)
       && !type_dependent_expression_p (object))
     {
-      if (cxx_dialect < cxx1y)
+      if (cxx_dialect < cxx14)
 	pedwarn (input_location, 0,
 		 "%<~auto%> only available with "
 		 "-std=c++1y or -std=gnu++1y");
@@ -9073,7 +9073,7 @@
 	{
 	  bool direct, non_constant;
 	  /* An explicit initializer exists.  */
-	  if (cxx_dialect < cxx1y)
+	  if (cxx_dialect < cxx14)
 	    pedwarn (input_location, 0,
 		     "lambda capture initializers "
 		     "only available with -std=c++1y or -std=gnu++1y");
@@ -9199,7 +9199,7 @@
      an opening angle if present.  */
   if (cp_lexer_next_token_is (parser->lexer, CPP_LESS))
     {
-      if (cxx_dialect < cxx1y)
+      if (cxx_dialect < cxx14)
 	pedwarn (parser->lexer->next_token->location, 0,
 		 "lambda templates are only available with "
 		 "-std=c++1y or -std=gnu++1y");
@@ -12177,7 +12177,7 @@
     return error_mark_node;
 
   /* decltype (auto) */
-  if (cxx_dialect >= cxx1y
+  if (cxx_dialect >= cxx14
       && cp_lexer_next_token_is_keyword (parser->lexer, RID_AUTO))
     {
       cp_lexer_consume_token (parser->lexer);
@@ -12360,7 +12360,7 @@
   if (! cp_parser_uncommitted_to_tentative_parse_p (parser)
       && type_uses_auto (type_specified))
     {
-      if (cxx_dialect < cxx1y)
+      if (cxx_dialect < cxx14)
 	{
 	  error ("invalid use of %<auto%> in conversion operator");
 	  return error_mark_node;
@@ -14721,13 +14721,13 @@
 
 	  if (current_class_type && LAMBDA_TYPE_P (current_class_type))
 	    {
-	      if (cxx_dialect < cxx1y)
+	      if (cxx_dialect < cxx14)
 		pedwarn (location_of (type), 0,
 			 "use of %<auto%> in lambda parameter declaration "
 			 "only available with "
 			 "-std=c++1y or -std=gnu++1y");
 	    }
-	  else if (cxx_dialect < cxx1y)
+	  else if (cxx_dialect < cxx14)
 	    pedwarn (location_of (type), 0,
 		     "use of %<auto%> in parameter declaration "
 		     "only available with "
@@ -18224,7 +18224,7 @@
   if (type_specifier_seq.type
       /* None of the valid uses of 'auto' in C++14 involve the type-id
 	 nonterminal, but it is valid in a trailing-return-type.  */
-      && !(cxx_dialect >= cxx1y && is_trailing_return)
+      && !(cxx_dialect >= cxx14 && is_trailing_return)
       && type_uses_auto (type_specifier_seq.type))
     {
       /* A type-id with type 'auto' is only ok if the abstract declarator
@@ -18257,7 +18257,7 @@
     = G_("types may not be defined in template arguments");
   r = cp_parser_type_id_1 (parser, true, false);
   parser->type_definition_forbidden_message = saved_message;
-  if (cxx_dialect >= cxx1y && type_uses_auto (r))
+  if (cxx_dialect >= cxx14 && type_uses_auto (r))
     {
       error ("invalid use of %<auto%> in template argument");
       r = error_mark_node;
@@ -22113,7 +22113,7 @@
       if (is_attribute_p ("noreturn", attr_id))
 	TREE_PURPOSE (TREE_PURPOSE (attribute)) = get_identifier ("gnu");
       /* C++14 deprecated attribute is equivalent to GNU's.  */
-      else if (cxx_dialect >= cxx1y && is_attribute_p ("deprecated", attr_id))
+      else if (cxx_dialect >= cxx14 && is_attribute_p ("deprecated", attr_id))
 	TREE_PURPOSE (TREE_PURPOSE (attribute)) = get_identifier ("gnu");
     }
 
@@ -23326,7 +23326,7 @@
 		  || !TEMPLATE_PARM_PARAMETER_PACK (DECL_INITIAL (parm)))
 		ok = false;
 	    }
-	  else if (num_parms == 2 && cxx_dialect >= cxx1y)
+	  else if (num_parms == 2 && cxx_dialect >= cxx14)
 	    {
 	      tree parm_type = TREE_VEC_ELT (parameter_list, 0);
 	      tree type = INNERMOST_TEMPLATE_PARMS (parm_type);
@@ -23341,7 +23341,7 @@
 	}
       if (!ok)
 	{
-	  if (cxx_dialect >= cxx1y)
+	  if (cxx_dialect >= cxx14)
 	    error ("literal operator template %qD has invalid parameter list."
 		   "  Expected non-type template argument pack <char...>"
 		   " or <typename CharT, CharT...>",
Index: gcc/cp/pt.c
===================================================================
--- gcc/cp/pt.c	(revision 213071)
+++ gcc/cp/pt.c	(working copy)
@@ -12043,7 +12043,7 @@
 	  r = cp_build_reference_type (type, TYPE_REF_IS_RVALUE (t));
 	r = cp_build_qualified_type_real (r, cp_type_quals (t), complain);
 
-	if (cxx_dialect >= cxx1y
+	if (cxx_dialect >= cxx14
 	    && !(TREE_CODE (t) == REFERENCE_TYPE && REFERENCE_VLA_OK (t))
 	    && array_of_runtime_bound_p (type)
 	    && (flag_iso || warn_vla > 0))
Index: gcc/cp/semantics.c
===================================================================
--- gcc/cp/semantics.c	(revision 213071)
+++ gcc/cp/semantics.c	(working copy)
@@ -1611,7 +1611,7 @@
 force_paren_expr (tree expr)
 {
   /* This is only needed for decltype(auto) in C++14.  */
-  if (cxx_dialect < cxx1y)
+  if (cxx_dialect < cxx14)
     return expr;
 
   /* If we're in unevaluated context, we can't be deducing a
@@ -7051,7 +7051,7 @@
 	}
     }
 
-  if (cxx_dialect >= cxx1y && array_of_runtime_bound_p (type)
+  if (cxx_dialect >= cxx14 && array_of_runtime_bound_p (type)
       && (flag_iso || warn_vla > 0))
     {
       if (complain & tf_warning_or_error)
Index: gcc/cp/typeck.c
===================================================================
--- gcc/cp/typeck.c	(revision 213071)
+++ gcc/cp/typeck.c	(working copy)
@@ -1148,7 +1148,7 @@
 
   /* In C++14 we can end up comparing 'auto' to a normal template
      parameter.  Don't confuse them.  */
-  if (cxx_dialect >= cxx1y && (is_auto (t1) || is_auto (t2)))
+  if (cxx_dialect >= cxx14 && (is_auto (t1) || is_auto (t2)))
     return TYPE_IDENTIFIER (t1) == TYPE_IDENTIFIER (t2);
 
   return true;
@@ -1558,7 +1558,7 @@
       return value;
     }
 
-  if (cxx_dialect >= cxx1y && array_of_runtime_bound_p (type)
+  if (cxx_dialect >= cxx14 && array_of_runtime_bound_p (type)
       && (flag_iso || warn_vla > 0))
     {
       if (complain & tf_warning_or_error)
@@ -5493,7 +5493,7 @@
 
   if (argtype != error_mark_node)
     {
-      if (cxx_dialect >= cxx1y && array_of_runtime_bound_p (argtype)
+      if (cxx_dialect >= cxx14 && array_of_runtime_bound_p (argtype)
 	  && (flag_iso || warn_vla > 0))
 	{
 	  if (complain & tf_warning_or_error)
@@ -6315,7 +6315,7 @@
       /* In C++14 mode, this interacts badly with force_paren_expr.  And it
 	 isn't necessary in any mode, because the code below handles
 	 glvalues properly.  For 4.9, just skip it in C++14 mode.  */
-      if (cxx_dialect < cxx1y && REFERENCE_REF_P (expr))
+      if (cxx_dialect < cxx14 && REFERENCE_REF_P (expr))
 	expr = TREE_OPERAND (expr, 0);
 
       if ((TREE_CODE (type) == REFERENCE_TYPE
Index: gcc/doc/invoke.texi
===================================================================
--- gcc/doc/invoke.texi	(revision 213071)
+++ gcc/doc/invoke.texi	(working copy)
@@ -1719,13 +1719,23 @@
 GNU dialect of @option{-std=c++11}.
 The name @samp{gnu++0x} is deprecated.
 
-@item c++1y
+@item c++14
+@itemx c++1y
+The 2014 ISO C++ standard plus amendments.
+The name @samp{c++1y} is deprecated.
+
+@item gnu++14
+@itemx gnu++1y
+GNU dialect of @option{-std=c++14}.
+The name @samp{gnu++1y} is deprecated.
+
+@item c++1z
 The next revision of the ISO C++ standard, tentatively planned for
-2014.  Support is highly experimental, and will almost certainly
+2017.  Support is highly experimental, and will almost certainly
 change in incompatible ways in future releases.
 
-@item gnu++1y
-GNU dialect of @option{-std=c++1y}.  Support is highly experimental,
+@item gnu++1z
+GNU dialect of @option{-std=c++1z}.  Support is highly experimental,
 and will almost certainly change in incompatible ways in future
 releases.
 @end table
@@ -2683,7 +2693,7 @@
 as C++11 user-defined literal numeric suffixes.
 This is on by default for all pre-C++11 dialects and all GNU dialects:
 @option{-std=c++98}, @option{-std=gnu++98}, @option{-std=gnu++11},
-@option{-std=gnu++1y}.
+@option{-std=gnu++14}.
 This option is off by default
 for ISO C++11 onwards (@option{-std=c++11}, ...).
 @end table
@@ -5454,7 +5464,7 @@
 @opindex fsanitize=vla-bound
 This option instructs the compiler to check that the size of a variable
 length array is positive.  This option does not have any effect in
-@option{-std=c++1y} mode, as the standard requires the exception be thrown
+@option{-std=c++14} mode, as the standard requires the exception be thrown
 instead.
 
 @item -fsanitize=null
Index: gcc/testsuite/g++.dg/cpp0x/cplusplus.C
===================================================================
--- gcc/testsuite/g++.dg/cpp0x/cplusplus.C	(revision 0)
+++ gcc/testsuite/g++.dg/cpp0x/cplusplus.C	(working copy)
@@ -0,0 +1,5 @@
+// { dg-do compile { target c++11_only } }
+
+#if __cplusplus != 201103L
+#error "__cplusplus != 201103L"
+#endif
Index: gcc/testsuite/g++.dg/cpp0x/cplusplus_0x.C
===================================================================
--- gcc/testsuite/g++.dg/cpp0x/cplusplus_0x.C	(revision 0)
+++ gcc/testsuite/g++.dg/cpp0x/cplusplus_0x.C	(working copy)
@@ -0,0 +1,6 @@
+// { dg-do compile }
+// { dg-options "-std=c++0x" }
+
+#if __cplusplus != 201103L
+#error "__cplusplus != 201103L"
+#endif
Index: gcc/testsuite/g++.dg/cpp0x/auto3.C
===================================================================
--- gcc/testsuite/g++.dg/cpp0x/auto3.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp0x/auto3.C	(working copy)
@@ -19,7 +19,7 @@
 // CWG issue 625
 A<auto> A2 = A1;		// { dg-error "" }
 
-auto foo() { }			// { dg-error "auto" "" { target { ! c++1y } } }
+auto foo() { }			// { dg-error "auto" "" { target { ! c++14 } } }
 
 void bar(auto i)		// { dg-error "incomplete|auto" }
 {
Index: gcc/testsuite/g++.dg/cpp0x/auto41.C
===================================================================
--- gcc/testsuite/g++.dg/cpp0x/auto41.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp0x/auto41.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/58550
 // { dg-do compile { target c++11 } }
 
-auto foo();			// { dg-error "auto" "" { target { ! c++1y } } }
-auto fp = foo;			// { dg-error "auto" "" { target c++1y } }
+auto foo();			// { dg-error "auto" "" { target { ! c++14 } } }
+auto fp = foo;			// { dg-error "auto" "" { target c++14 } }
Index: gcc/testsuite/g++.dg/cpp0x/auto9.C
===================================================================
--- gcc/testsuite/g++.dg/cpp0x/auto9.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp0x/auto9.C	(working copy)
@@ -15,13 +15,13 @@
 
 struct A
 {
-  operator auto ();				// { dg-error "auto" "" { target { ! c++1y } } }
-  operator auto *();				// { dg-error "auto" "" { target { ! c++1y } } }
+  operator auto ();				// { dg-error "auto" "" { target { ! c++14 } } }
+  operator auto *();				// { dg-error "auto" "" { target { ! c++14 } } }
 };
 
 struct A2
 {
-  operator auto () -> int;			// { dg-error "invalid use of" "" { target { ! c++1y } } }
+  operator auto () -> int;			// { dg-error "invalid use of" "" { target { ! c++14 } } }
   operator auto *() -> int;			// { dg-error "auto" }
 };
 
@@ -98,8 +98,8 @@
 template <typename T = auto> struct E {};	// { dg-error "invalid use of" }
 template <class T = auto *> struct F {};	// { dg-error "invalid use of|expected" }
 
-auto fnlate () -> auto;				// { dg-error "invalid use of" "" { target { ! c++1y } } }
-auto fnlate2 () -> auto *;			// { dg-error "invalid use of|expected" "" { target { ! c++1y } } }
+auto fnlate () -> auto;				// { dg-error "invalid use of" "" { target { ! c++14 } } }
+auto fnlate2 () -> auto *;			// { dg-error "invalid use of|expected" "" { target { ! c++14 } } }
 
 void
 badthrow () throw (auto)			// { dg-error "invalid use of" }
Index: gcc/testsuite/g++.dg/cpp0x/initlist26.C
===================================================================
--- gcc/testsuite/g++.dg/cpp0x/initlist26.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp0x/initlist26.C	(working copy)
@@ -1,6 +1,6 @@
 // PR c++/42059
 // { dg-do compile { target c++11 } }
-// { dg-options "" { target { ! c++1y } } }
+// { dg-options "" { target { ! c++14 } } }
 
 void
 foo (int i)
Index: gcc/testsuite/g++.dg/cpp0x/pr59111.C
===================================================================
--- gcc/testsuite/g++.dg/cpp0x/pr59111.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp0x/pr59111.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/59111
 // { dg-do compile { target c++11 } }
 
-auto& foo();	// { dg-error "type specifier without trailing return type" "" { target { ! c++1y } } }
+auto& foo();	// { dg-error "type specifier without trailing return type" "" { target { ! c++14 } } }
 int i = foo();	// { dg-error "" }
Index: gcc/testsuite/g++.dg/cpp0x/trailing2.C
===================================================================
--- gcc/testsuite/g++.dg/cpp0x/trailing2.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp0x/trailing2.C	(working copy)
@@ -3,7 +3,7 @@
 // { dg-do compile { target c++11 } }
 
 auto f1 () -> int;
-auto f2 ();		// { dg-error "without trailing return type" "" { target { ! c++1y } } }
+auto f2 ();		// { dg-error "without trailing return type" "" { target { ! c++14 } } }
 int f3 () -> int;	// { dg-error "trailing return type" }
 auto *f4 () -> int;	// { dg-error "trailing return type" }
 
@@ -10,7 +10,7 @@
 struct A
 {
   auto f5 () const -> int;
-  auto f6 ();		// { dg-error "without trailing return type" "" { target { ! c++1y } } }
+  auto f6 ();		// { dg-error "without trailing return type" "" { target { ! c++14 } } }
   int f7 () -> int;	// { dg-error "trailing return type" }
   auto *f8 () -> int;	// { dg-error "trailing return type" }
 };
Index: gcc/testsuite/g++.dg/cpp1y/attr-deprecated.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/attr-deprecated.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/attr-deprecated.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 class [[deprecated]] A
 {
Index: gcc/testsuite/g++.dg/cpp1y/auto-dtor1.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-dtor1.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-dtor1.C	(working copy)
@@ -1,5 +1,5 @@
 // DR 1586
-// { dg-do run { target c++1y } }
+// { dg-do run { target c++14 } }
 
 template <class T>
 void f (T* p)
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn1.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn1.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn1.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 constexpr auto f() { return (char)42; }
 #define SA(X) static_assert ((X),#X)
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn10.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn10.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn10.C	(working copy)
@@ -1,6 +1,6 @@
 // A template declared with auto should be declared with auto in an
 // explicit instantiation or explicit specialization, too.
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 template <class T>
 auto f(T t) { return t; }
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn11.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn11.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn11.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 auto f() { return; } 		// OK, return type is void
 auto* g() { return; }		// { dg-error "no value" }
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn12.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn12.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn12.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-final { scan-assembler "_ZN1AIiEcvDaEv" } }
 
 template <class T>
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn13.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn13.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn13.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 struct A {
   template <class T>
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn14.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn14.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn14.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/56177
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 auto f ();
 auto f () { return 33; }
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn15.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn15.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn15.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "-Wno-return-local-addr" }
 
 template<class,class> struct same_type;
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn16.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn16.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn16.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 template<class,class> struct ST;
 template<class T> struct ST<T,T> {};
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn17.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn17.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn17.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do run { target c++1y } }
+// { dg-do run { target c++14 } }
 
 int c;
 int d;
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn18.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn18.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn18.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 struct A
 {
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn19.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn19.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn19.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 template <class T>
 auto f() { return T::i; }
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn2.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn2.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn2.C	(working copy)
@@ -1,3 +1,3 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 auto f() { return f(); }	// { dg-error "auto" }
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn20.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn20.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn20.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 template <class T>
 auto f(T) { return 42; }
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn21.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn21.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn21.C	(working copy)
@@ -1,5 +1,5 @@
 // N3638: decltype(auto) must stand alone
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 void f();
 decltype(auto) g1() { return &f; }
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn22.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn22.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn22.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 struct A
 {
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn23.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn23.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn23.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/58561
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "-g" }
 
 auto foo();
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn24.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn24.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn24.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60314
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "-g" }
 
 // fine
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn25.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn25.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn25.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60574
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-require-effective-target lto }
 // { dg-options "-flto" }
 
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn3.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn3.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn3.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 bool b;
 auto f()
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn4.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn4.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn4.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 template <class T>
 constexpr auto f(T t) { return t+1; }
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn5.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn5.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn5.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do run { target c++1y } }
+// { dg-do run { target c++14 } }
 
 int i;
 auto& f() { return i; }
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn6.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn6.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn6.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 template <class T, class U> struct ST;
 template <class T> struct ST<T,T> {};
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn7.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn7.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn7.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 auto f();
 
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn8.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn8.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn8.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 auto f() { return 42; }		// { dg-message "old declaration .auto" }
 auto f();			// OK
Index: gcc/testsuite/g++.dg/cpp1y/auto-fn9.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-fn9.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-fn9.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-final { scan-assembler "_Z1fIiERDaRKT_S1_" } }
 
 template <class T>
Index: gcc/testsuite/g++.dg/cpp1y/auto-mangle1.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-mangle1.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-mangle1.C	(working copy)
@@ -1,5 +1,5 @@
 // Mangling for decltype(auto)
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 void f();
 
Index: gcc/testsuite/g++.dg/cpp1y/auto-neg1.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/auto-neg1.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/auto-neg1.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60312
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 template<typename> struct A;
 
Index: gcc/testsuite/g++.dg/cpp1y/cplusplus.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/cplusplus.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/cplusplus.C	(working copy)
@@ -1,5 +1,5 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14_only } }
 
-#if __cplusplus <= 201103L
-#error
+#if __cplusplus != 201402L
+#error "__cplusplus != 201402L"
 #endif
Index: gcc/testsuite/g++.dg/cpp1y/cplusplus_1y.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/cplusplus_1y.C	(revision 0)
+++ gcc/testsuite/g++.dg/cpp1y/cplusplus_1y.C	(working copy)
@@ -0,0 +1,6 @@
+// { dg-do compile }
+// { dg-options "-std=c++1y" }
+
+#if __cplusplus != 201402L
+#error "__cplusplus != 201402L"
+#endif
Index: gcc/testsuite/g++.dg/cpp1y/digit-sep-cxx11-neg.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/digit-sep-cxx11-neg.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/digit-sep-cxx11-neg.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target { ! c++1y } } }
+// { dg-do compile { target { ! c++14 } } }
 
 #define assert(E) if(!(E))__builtin_abort();
 
Index: gcc/testsuite/g++.dg/cpp1y/digit-sep-neg.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/digit-sep-neg.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/digit-sep-neg.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 int
 main()
Index: gcc/testsuite/g++.dg/cpp1y/digit-sep.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/digit-sep.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/digit-sep.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 #define assert(E) if(!(E))__builtin_abort();
 
Index: gcc/testsuite/g++.dg/cpp1y/fn-generic-member-ool.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/fn-generic-member-ool.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/fn-generic-member-ool.C	(working copy)
@@ -1,5 +1,5 @@
 // Out-of-line generic member function definitions.
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 struct A {
Index: gcc/testsuite/g++.dg/cpp1y/lambda-deduce-mult.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-deduce-mult.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-deduce-mult.C	(working copy)
@@ -1,7 +1,7 @@
 // Testcase for an extension to allow return type deduction when the lambda
 // contains more than just a single return-statement.
 
-// { dg-do run { target c++1y } }
+// { dg-do run { target c++14 } }
 
 bool b;
 template <class T>
Index: gcc/testsuite/g++.dg/cpp1y/lambda-generic-cfun.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-generic-cfun.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-generic-cfun.C	(working copy)
@@ -1,5 +1,5 @@
 // Generic lambda conversion to function ptr test from N3690 5.1.2.6
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 void f1(int (*)(int)) { }
Index: gcc/testsuite/g++.dg/cpp1y/lambda-generic-dep.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-generic-dep.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-generic-dep.C	(working copy)
@@ -1,5 +1,5 @@
 // Generic lambda type dependence test part from N3690 5.1.2.12
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 void f(int, const int (&)[2] = {}) { } // #1
 void f(const int&, const int (&)[1]) { } // #2
Index: gcc/testsuite/g++.dg/cpp1y/lambda-generic-mixed.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-generic-mixed.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-generic-mixed.C	(working copy)
@@ -1,5 +1,5 @@
 // Mixed explicit and implicit generic lambda test.
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 int main()
 {
Index: gcc/testsuite/g++.dg/cpp1y/lambda-generic-udt.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-generic-udt.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-generic-udt.C	(working copy)
@@ -1,6 +1,6 @@
 // Ensure that generic lambdas properly construct and destroy user types.
 // { dg-options "-DUSE_AUTO_SYNTAX" }
-// { dg-do run { target c++1y } }
+// { dg-do run { target c++14 } }
 
 int i = 3;
 
Index: gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic.C	(working copy)
@@ -1,5 +1,5 @@
 // Basic generic lambda test
-// { dg-do run { target c++1y } }
+// { dg-do run { target c++14 } }
 
 template <typename T, typename U> struct pair {};
 template <typename... T> struct tuple {};
Index: gcc/testsuite/g++.dg/cpp1y/lambda-generic-vla1.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-generic-vla1.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-generic-vla1.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/59271
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 extern "C" int printf (const char *, ...);
 
Index: gcc/testsuite/g++.dg/cpp1y/lambda-generic-x.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-generic-x.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-generic-x.C	(working copy)
@@ -1,5 +1,5 @@
 // Explicit generic lambda test from N3690 5.1.2.5
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 #include <iostream>
 
Index: gcc/testsuite/g++.dg/cpp1y/lambda-generic-xcfun.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-generic-xcfun.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-generic-xcfun.C	(working copy)
@@ -1,5 +1,5 @@
 // Explicit generic lambda conversion to function ptr test from N3690 5.1.2.6
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 void f1(int (*)(int)) { }
Index: gcc/testsuite/g++.dg/cpp1y/lambda-generic-xudt.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-generic-xudt.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-generic-xudt.C	(working copy)
@@ -1,5 +1,5 @@
 // Ensure that generic lambdas properly construct and destroy user types.
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "-DUSE_EXPLICIT_TEMPLATE_SYNTAX" }
 
 #include "lambda-generic-udt.C"
Index: gcc/testsuite/g++.dg/cpp1y/lambda-generic.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-generic.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-generic.C	(working copy)
@@ -1,5 +1,5 @@
 // Generic lambda test from N3690 5.1.2.5
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 #include <iostream>
 
Index: gcc/testsuite/g++.dg/cpp1y/lambda-init.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-init.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-init.C	(working copy)
@@ -1,5 +1,5 @@
-// Test for the explicit initializer extension of C++1y
-// { dg-do compile { target c++1y } }
+// Test for the explicit initializer extension of C++14
+// { dg-do compile { target c++14 } }
 
 int main()
 {
Index: gcc/testsuite/g++.dg/cpp1y/lambda-init1.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-init1.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-init1.C	(working copy)
@@ -1,6 +1,6 @@
 // N3648: capture init
 // { dg-options "-w" }
-// { dg-do run { target c++1y } }
+// { dg-do run { target c++14 } }
 
 int main()
 {
Index: gcc/testsuite/g++.dg/cpp1y/lambda-init2.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-init2.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-init2.C	(working copy)
@@ -1,5 +1,5 @@
 // N3648: redundancy and capture init
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 int main()
 {
Index: gcc/testsuite/g++.dg/cpp1y/lambda-init3.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-init3.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-init3.C	(working copy)
@@ -1,6 +1,6 @@
 // N3648: capture init at non-block scope
 // { dg-options "-w" }
-// { dg-do run { target c++1y } }
+// { dg-do run { target c++14 } }
 
 int i = 42;
 int j = [x=i]{ return x; }();
Index: gcc/testsuite/g++.dg/cpp1y/lambda-init4.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-init4.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-init4.C	(working copy)
@@ -1,5 +1,5 @@
 // N3648: capture init example from paper
-// { dg-do run { target c++1y } }
+// { dg-do run { target c++14 } }
 
 int x = 4;
 auto y = [&r = x, x = x+1]()->int {
Index: gcc/testsuite/g++.dg/cpp1y/lambda-init5.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-init5.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-init5.C	(working copy)
@@ -1,5 +1,5 @@
 // Test for paren and brace initializers
-// { dg-do run { target c++1y } }
+// { dg-do run { target c++14 } }
 
 #include <initializer_list>
 
Index: gcc/testsuite/g++.dg/cpp1y/lambda-init6.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-init6.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-init6.C	(working copy)
@@ -1,5 +1,5 @@
 // Test that captures are not named in the closure type.
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 int main()
 {
Index: gcc/testsuite/g++.dg/cpp1y/lambda-init7.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-init7.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-init7.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/59349
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 int foo () {
   [bar()]{};			// { dg-error "empty initializer" }
Index: gcc/testsuite/g++.dg/cpp1y/lambda-init8.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-init8.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-init8.C	(working copy)
@@ -1,5 +1,5 @@
 // DR1760: "no additional copy and destruction is performed"
-// { dg-do run { target c++1y } }
+// { dg-do run { target c++14 } }
 
 #include <cassert>
 
Index: gcc/testsuite/g++.dg/cpp1y/lambda-init9.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/lambda-init9.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/lambda-init9.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 void f()
 {
Index: gcc/testsuite/g++.dg/cpp1y/mangle1.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/mangle1.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/mangle1.C	(working copy)
@@ -1,5 +1,5 @@
 // Test that the parens don't show up in the mangling
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "-Wno-return-local-addr" }
 // { dg-final { scan-assembler "_Z1gI1AEDTdtfp_1iET_" } }
 
Index: gcc/testsuite/g++.dg/cpp1y/pr57640.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr57640.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr57640.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 #include <chrono>
 
Index: gcc/testsuite/g++.dg/cpp1y/pr57644.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr57644.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr57644.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 struct Foo
 {
Index: gcc/testsuite/g++.dg/cpp1y/pr58500.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr58500.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr58500.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/58500
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 struct A {};
Index: gcc/testsuite/g++.dg/cpp1y/pr58533.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr58533.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr58533.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/58533
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 void foo()
 {
Index: gcc/testsuite/g++.dg/cpp1y/pr58534.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr58534.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr58534.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/58534
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 template<typename> void foo(const auto&) {}
Index: gcc/testsuite/g++.dg/cpp1y/pr58535.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr58535.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr58535.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/58535
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 struct A
Index: gcc/testsuite/g++.dg/cpp1y/pr58536.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr58536.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr58536.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/58536
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 struct A
Index: gcc/testsuite/g++.dg/cpp1y/pr58548.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr58548.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr58548.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/58548
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 void foo(auto)
Index: gcc/testsuite/g++.dg/cpp1y/pr58549.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr58549.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr58549.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/58549
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 void foo(auto)
Index: gcc/testsuite/g++.dg/cpp1y/pr58637.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr58637.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr58637.C	(working copy)
@@ -1,4 +1,4 @@
 // PR c++/58637
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 template<> void foo(auto); // { dg-error "auto|not a template" }
Index: gcc/testsuite/g++.dg/cpp1y/pr58708.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr58708.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr58708.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do run { target c++1y } }
+// { dg-do run { target c++14 } }
 
 template<typename, typename>
   struct is_same
Index: gcc/testsuite/g++.dg/cpp1y/pr59110.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr59110.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr59110.C	(working copy)
@@ -1,4 +1,4 @@
 // PR c++/59110
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 int i = *(auto*)0; // { dg-error "" }
Index: gcc/testsuite/g++.dg/cpp1y/pr59112.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr59112.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr59112.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/59112
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 void foo()
 {
Index: gcc/testsuite/g++.dg/cpp1y/pr59113.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr59113.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr59113.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/59113
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 void foo()
 {
Index: gcc/testsuite/g++.dg/cpp1y/pr59629.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr59629.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr59629.C	(working copy)
@@ -1,4 +1,4 @@
 // PR c++/59629
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 void foo(int i = []{ auto 0; }()); // { dg-error "expected|could not convert" }
Index: gcc/testsuite/g++.dg/cpp1y/pr59635.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr59635.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr59635.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/59635
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 auto f = [] (auto, ...) { return 0; };
 
Index: gcc/testsuite/g++.dg/cpp1y/pr59636.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr59636.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr59636.C	(working copy)
@@ -1,4 +1,4 @@
 // PR c++/59636
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 auto f = []() { return []<>() {}; };  // { dg-error "expected identifier" }
Index: gcc/testsuite/g++.dg/cpp1y/pr59638.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr59638.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr59638.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/59638
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 void (*a)(auto);         // { dg-error "template declaration" }
Index: gcc/testsuite/g++.dg/cpp1y/pr59867.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr59867.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr59867.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/59867
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 using namespace std;
 
Index: gcc/testsuite/g++.dg/cpp1y/pr60033.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60033.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60033.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60033
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 template <typename... T>
 auto f(T&&... ts)
Index: gcc/testsuite/g++.dg/cpp1y/pr60052.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60052.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60052.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60052
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 struct A
Index: gcc/testsuite/g++.dg/cpp1y/pr60053.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60053.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60053.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60053
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 struct A
Index: gcc/testsuite/g++.dg/cpp1y/pr60054.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60054.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60054.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60054
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 template<typename T> T fooA(T);
 template<typename T> decltype(T{}) fooB(T);
Index: gcc/testsuite/g++.dg/cpp1y/pr60064.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60064.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60064.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60064
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 class A
Index: gcc/testsuite/g++.dg/cpp1y/pr60065.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60065.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60065.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60065
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 template <int> void foo(auto... x);
Index: gcc/testsuite/g++.dg/cpp1y/pr60190.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60190.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60190.C	(working copy)
@@ -1,4 +1,4 @@
 // PR c++/60190
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 auto f = []<int>() -> int() {}; // { dg-error "returning a function|expected" }
Index: gcc/testsuite/g++.dg/cpp1y/pr60311.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60311.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60311.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60311
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 template<void(*)(auto)> struct A {}; // { dg-error "auto" }
 
Index: gcc/testsuite/g++.dg/cpp1y/pr60332.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60332.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60332.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60332
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 void foo();
 
Index: gcc/testsuite/g++.dg/cpp1y/pr60376.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60376.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60376.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60376
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 struct A
 {
Index: gcc/testsuite/g++.dg/cpp1y/pr60377.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60377.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60377.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60377
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 void foo(auto, void (f*)()); // { dg-error "expected" }
Index: gcc/testsuite/g++.dg/cpp1y/pr60384.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60384.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60384.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60384
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 template<typename> int foo();
 
Index: gcc/testsuite/g++.dg/cpp1y/pr60390.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60390.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60390.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60390
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 struct A
Index: gcc/testsuite/g++.dg/cpp1y/pr60391.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60391.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60391.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60391
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 namespace N
Index: gcc/testsuite/g++.dg/cpp1y/pr60393.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60393.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60393.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60393
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 void (*f)(auto) + 0; // { dg-error "expected" }
Index: gcc/testsuite/g++.dg/cpp1y/pr60573.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60573.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60573.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60573
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 struct A
Index: gcc/testsuite/g++.dg/cpp1y/pr60626.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60626.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60626.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60626
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 struct A {};
Index: gcc/testsuite/g++.dg/cpp1y/pr60627.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/pr60627.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/pr60627.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60627
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "" }
 
 template<typename T> void foo(T) {}
Index: gcc/testsuite/g++.dg/cpp1y/regress1.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/regress1.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/regress1.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60409
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 struct A
 {
Index: gcc/testsuite/g++.dg/cpp1y/system-binary-constants-1.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/system-binary-constants-1.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/system-binary-constants-1.C	(working copy)
@@ -1,5 +1,5 @@
 // Origin: Dodji Seketeli <dodji@redhat.com>
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 #include "../system-binary-constants-1.h"
 
Index: gcc/testsuite/g++.dg/cpp1y/udlit-char-template-neg.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/udlit-char-template-neg.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/udlit-char-template-neg.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target { c++11 && { ! c++1y } } } }
+// { dg-do compile { target { c++11 && { ! c++14 } } } }
 
 template<typename CharT, CharT... String>
   int
Index: gcc/testsuite/g++.dg/cpp1y/udlit-char-template.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/udlit-char-template.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/udlit-char-template.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 template<typename CharT, CharT... String>
   int
Index: gcc/testsuite/g++.dg/cpp1y/udlit-empty-string-neg.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/udlit-empty-string-neg.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/udlit-empty-string-neg.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 int
 operator "*"_s(unsigned long long) // { dg-error "expected empty string after 'operator'" }
Index: gcc/testsuite/g++.dg/cpp1y/udlit-enc-prefix-neg.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/udlit-enc-prefix-neg.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/udlit-enc-prefix-neg.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 int
 operator L""_Ls(unsigned long long) // { dg-error "invalid encoding prefix in literal operator" }
Index: gcc/testsuite/g++.dg/cpp1y/udlit-userdef-string.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/udlit-userdef-string.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/udlit-userdef-string.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 #include "complex_literals.h"
 
Index: gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do run { target c++1y } }
+// { dg-do run { target c++14 } }
 
 #include <initializer_list>
 
Index: gcc/testsuite/g++.dg/cpp1y/vla1.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/vla1.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/vla1.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 #include <typeinfo>
 
Index: gcc/testsuite/g++.dg/cpp1y/vla10.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/vla10.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/vla10.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/57402
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 int i = 2;
 
Index: gcc/testsuite/g++.dg/cpp1y/vla11.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/vla11.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/vla11.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60251
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 void foo(int n)
 {
Index: gcc/testsuite/g++.dg/cpp1y/vla12.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/vla12.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/vla12.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60250
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 template<typename> void foo()
 {
Index: gcc/testsuite/g++.dg/cpp1y/vla13.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/vla13.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/vla13.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/60227
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 void foo(int n)
 {
Index: gcc/testsuite/g++.dg/cpp1y/vla2.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/vla2.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/vla2.C	(working copy)
@@ -1,5 +1,5 @@
 // N3639 allows initialization and capture of VLAs
-// { dg-do run { target c++1y } }
+// { dg-do run { target c++14 } }
 
 void f(int n)
 {
Index: gcc/testsuite/g++.dg/cpp1y/vla3.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/vla3.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/vla3.C	(working copy)
@@ -1,5 +1,5 @@
 // Test for throwing bad_array_length on invalid array length
-// { dg-do run { target c++1y } }
+// { dg-do run { target c++14 } }
 
 #include <new>
 
Index: gcc/testsuite/g++.dg/cpp1y/vla4.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/vla4.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/vla4.C	(working copy)
@@ -1,5 +1,5 @@
 // Test for range-based for with VLAs.
-// { dg-do run { target c++1y } }
+// { dg-do run { target c++14 } }
 
 #include <new>
 
Index: gcc/testsuite/g++.dg/cpp1y/vla5.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/vla5.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/vla5.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/55149
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 void test(int n) {
   int r[n];
Index: gcc/testsuite/g++.dg/cpp1y/vla8.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/vla8.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/vla8.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/55149
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 template<unsigned int TA>
  struct SA
Index: gcc/testsuite/g++.dg/cpp1y/vla9.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1y/vla9.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1y/vla9.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/57408
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 
 template<typename Callable>
   struct Impl
Index: gcc/testsuite/g++.dg/ext/vector23.C
===================================================================
--- gcc/testsuite/g++.dg/ext/vector23.C	(revision 213071)
+++ gcc/testsuite/g++.dg/ext/vector23.C	(working copy)
@@ -1,4 +1,4 @@
-/* { dg-do compile { target c++1y } } */
+/* { dg-do compile { target c++14 } } */
 /* { dg-options "-Wsign-conversion" } */
 // Ignore warning on some powerpc-linux configurations.
 // { dg-prune-output "non-standard ABI extension" }
Index: gcc/testsuite/g++.dg/ext/vla11.C
===================================================================
--- gcc/testsuite/g++.dg/ext/vla11.C	(revision 213071)
+++ gcc/testsuite/g++.dg/ext/vla11.C	(working copy)
@@ -1,6 +1,6 @@
 // Test that auto works with VLAs.
 // { dg-do compile { target c++11 } }
-// { dg-options "" { target { ! c++1y } } }
+// { dg-options "" { target { ! c++14 } } }
 
 void bar(int n)
 {
Index: gcc/testsuite/g++.dg/warn/Wvla-2.C
===================================================================
--- gcc/testsuite/g++.dg/warn/Wvla-2.C	(revision 213071)
+++ gcc/testsuite/g++.dg/warn/Wvla-2.C	(working copy)
@@ -1,4 +1,4 @@
-/* { dg-do compile { target { ! c++1y } } } */
+/* { dg-do compile { target { ! c++14 } } } */
 /* { dg-options "-pedantic-errors -Wvla" } */
 
 void func (int i)
Index: gcc/testsuite/g++.dg/debug/dwarf2/auto1.C
===================================================================
--- gcc/testsuite/g++.dg/debug/dwarf2/auto1.C	(revision 213071)
+++ gcc/testsuite/g++.dg/debug/dwarf2/auto1.C	(working copy)
@@ -1,5 +1,5 @@
 // PR c++/53756
-// { dg-do compile { target c++1y } }
+// { dg-do compile { target c++14 } }
 // { dg-options "-g -dA -fno-debug-types-section" }
 // We're looking for something like
 
Index: gcc/testsuite/g++.dg/cpp1z/typename-tmpl-tmpl-parm-ped-neg.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1z/typename-tmpl-tmpl-parm-ped-neg.C	(revision 213071)
+++ gcc/testsuite/g++.dg/cpp1z/typename-tmpl-tmpl-parm-ped-neg.C	(working copy)
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++1y_down } }
+// { dg-do compile { target c++14_down } }
 // { dg-options "-pedantic" }
 
 template<typename T>
Index: gcc/testsuite/g++.dg/cpp1z/cplusplus.C
===================================================================
--- gcc/testsuite/g++.dg/cpp1z/cplusplus.C	(revision 0)
+++ gcc/testsuite/g++.dg/cpp1z/cplusplus.C	(working copy)
@@ -0,0 +1,6 @@
+// { dg-do compile }
+// { dg-options "-std=c++1z" }
+
+#if __cplusplus <= 201402L
+#error "__cplusplus <= 201402L"
+#endif


More information about the Gcc-patches mailing list