From 4e454776e1a4fcbaed217522178f7fb497cd301d Mon Sep 17 00:00:00 2001 From: emsr Date: Sat, 23 Aug 2014 16:50:22 +0000 Subject: libcpp/ 2014-08-23 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. * expr.c (cpp_classify_number): Change C++1y to C++14 in binary constants error message. gcc/c-family/ 2014-08-23 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-08-23 Edward Smith-Rowland <3dw4rd@verizon.net> * decl.c (compute_array_index_type, grokdeclarator, undeduced_auto_decl): Change from cxx1y to cxx14. *lambda.c(add_capture()): Change error message from C++1y to C++14. * 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. * tree.c: Change comment. * typeck.c (comp_template_parms_position, cxx_sizeof_or_alignof_type, cp_build_addr_expr_1, maybe_warn_about_useless_cast): Ditto. gcc/ 2014-08-23 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-08-23 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/var-templ1.C: Ditto. * g++.dg/cpp1y/var-templ2.C: Ditto. * g++.dg/cpp1y/var-templ3.C: Ditto. * g++.dg/cpp1y/var-templ4.C: Ditto. * g++.dg/cpp1y/var-templ5.C: Ditto. * g++.dg/cpp1y/var-templ6.C: Ditto. * g++.dg/cpp1y/var-templ7.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. * gcc/testsuite/g++.dg/ubsan/cxx1y-vla.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/system-binary-constants-1.C: Check C++14 instead of C++1y in error message. * g++.dg/system-binary-constants-1.C: Ditto. * g++.dg/cpp1y/cplusplus_1y.C: New. * g++.dg/cpp1z/cplusplus.C: New. * lib/target-supports.exp: (check_effective_target_c++1y*): Rename to check_effective_target_c++14* (check_effective_target_c++11_only): Call check_effective_target_c++14; (check_effective_target_c++11_down): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214400 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 + gcc/c-family/ChangeLog | 7 + gcc/c-family/c-common.h | 3 +- gcc/c-family/c-opts.c | 13 +- gcc/c-family/c-ubsan.c | 4 +- gcc/cp/ChangeLog | 17 +++ gcc/cp/decl.c | 24 ++-- gcc/cp/lambda.c | 2 +- gcc/cp/parser.c | 38 +++--- gcc/cp/pt.c | 6 +- gcc/cp/semantics.c | 4 +- gcc/cp/tree.c | 2 +- gcc/cp/typeck.c | 8 +- gcc/doc/invoke.texi | 22 +++- gcc/testsuite/ChangeLog | 145 +++++++++++++++++++++ gcc/testsuite/g++.dg/cpp0x/auto3.C | 2 +- gcc/testsuite/g++.dg/cpp0x/auto41.C | 4 +- gcc/testsuite/g++.dg/cpp0x/auto9.C | 10 +- gcc/testsuite/g++.dg/cpp0x/cplusplus.C | 5 + gcc/testsuite/g++.dg/cpp0x/cplusplus_0x.C | 6 + gcc/testsuite/g++.dg/cpp0x/initlist26.C | 2 +- gcc/testsuite/g++.dg/cpp0x/pr59111.C | 2 +- gcc/testsuite/g++.dg/cpp0x/trailing2.C | 4 +- gcc/testsuite/g++.dg/cpp1y/attr-deprecated.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-dtor1.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn1.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn10.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn11.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn12.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn13.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn14.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn15.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn16.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn17.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn18.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn19.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn2.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn20.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn21.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn22.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn23.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn24.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn25.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn3.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn4.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn5.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn6.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn7.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn8.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-fn9.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-mangle1.C | 2 +- gcc/testsuite/g++.dg/cpp1y/auto-neg1.C | 2 +- gcc/testsuite/g++.dg/cpp1y/cplusplus.C | 6 +- gcc/testsuite/g++.dg/cpp1y/cplusplus_1y.C | 6 + gcc/testsuite/g++.dg/cpp1y/digit-sep-cxx11-neg.C | 2 +- gcc/testsuite/g++.dg/cpp1y/digit-sep-neg.C | 2 +- gcc/testsuite/g++.dg/cpp1y/digit-sep.C | 2 +- gcc/testsuite/g++.dg/cpp1y/fn-generic-member-ool.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-deduce-mult.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-generic-cfun.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-generic-dep.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-generic-mixed.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-generic-udt.C | 2 +- .../g++.dg/cpp1y/lambda-generic-variadic.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-generic-vla1.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-generic-x.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-generic-xcfun.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-generic-xudt.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-generic.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-init.C | 4 +- gcc/testsuite/g++.dg/cpp1y/lambda-init1.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-init2.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-init3.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-init4.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-init5.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-init6.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-init7.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-init8.C | 2 +- gcc/testsuite/g++.dg/cpp1y/lambda-init9.C | 2 +- gcc/testsuite/g++.dg/cpp1y/mangle1.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr57640.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr57644.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr58500.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr58533.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr58534.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr58535.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr58536.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr58548.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr58549.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr58637.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr58708.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr59110.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr59112.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr59113.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr59629.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr59635.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr59636.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr59638.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr59867.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60033.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60052.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60053.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60054.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60064.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60065.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60190.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60311.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60332.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60376.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60377.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60384.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60390.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60391.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60393.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60573.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60626.C | 2 +- gcc/testsuite/g++.dg/cpp1y/pr60627.C | 2 +- gcc/testsuite/g++.dg/cpp1y/regress1.C | 2 +- .../g++.dg/cpp1y/system-binary-constants-1.C | 4 +- .../g++.dg/cpp1y/udlit-char-template-neg.C | 2 +- gcc/testsuite/g++.dg/cpp1y/udlit-char-template.C | 2 +- .../g++.dg/cpp1y/udlit-empty-string-neg.C | 2 +- gcc/testsuite/g++.dg/cpp1y/udlit-enc-prefix-neg.C | 2 +- gcc/testsuite/g++.dg/cpp1y/udlit-userdef-string.C | 2 +- gcc/testsuite/g++.dg/cpp1y/var-templ1.C | 3 +- gcc/testsuite/g++.dg/cpp1y/var-templ2.C | 3 +- gcc/testsuite/g++.dg/cpp1y/var-templ3.C | 3 +- gcc/testsuite/g++.dg/cpp1y/var-templ4.C | 3 +- gcc/testsuite/g++.dg/cpp1y/var-templ5.C | 3 +- gcc/testsuite/g++.dg/cpp1y/var-templ6.C | 2 +- gcc/testsuite/g++.dg/cpp1y/var-templ7.C | 2 +- gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C | 2 +- gcc/testsuite/g++.dg/cpp1y/vla1.C | 2 +- gcc/testsuite/g++.dg/cpp1y/vla10.C | 2 +- gcc/testsuite/g++.dg/cpp1y/vla11.C | 2 +- gcc/testsuite/g++.dg/cpp1y/vla12.C | 2 +- gcc/testsuite/g++.dg/cpp1y/vla13.C | 2 +- gcc/testsuite/g++.dg/cpp1y/vla2.C | 2 +- gcc/testsuite/g++.dg/cpp1y/vla3.C | 2 +- gcc/testsuite/g++.dg/cpp1y/vla4.C | 2 +- gcc/testsuite/g++.dg/cpp1y/vla5.C | 2 +- gcc/testsuite/g++.dg/cpp1y/vla8.C | 2 +- gcc/testsuite/g++.dg/cpp1y/vla9.C | 2 +- gcc/testsuite/g++.dg/cpp1z/cplusplus.C | 6 + .../g++.dg/cpp1z/typename-tmpl-tmpl-parm-ped-neg.C | 2 +- gcc/testsuite/g++.dg/debug/dwarf2/auto1.C | 2 +- gcc/testsuite/g++.dg/ext/vector23.C | 2 +- gcc/testsuite/g++.dg/ext/vla11.C | 2 +- gcc/testsuite/g++.dg/system-binary-constants-1.C | 2 +- gcc/testsuite/g++.dg/ubsan/cxx1y-vla.C | 2 +- gcc/testsuite/g++.dg/warn/Wvla-2.C | 2 +- gcc/testsuite/lib/target-supports.exp | 15 ++- libcpp/ChangeLog | 11 ++ libcpp/expr.c | 2 +- libcpp/include/cpplib.h | 2 +- libcpp/init.c | 50 ++++--- 156 files changed, 458 insertions(+), 234 deletions(-) create mode 100644 gcc/testsuite/g++.dg/cpp0x/cplusplus.C create mode 100644 gcc/testsuite/g++.dg/cpp0x/cplusplus_0x.C create mode 100644 gcc/testsuite/g++.dg/cpp1y/cplusplus_1y.C create mode 100644 gcc/testsuite/g++.dg/cpp1z/cplusplus.C diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d01509ab450..063648dbaf1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-08-23 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. + 2014-08-23 John David Anglin PR target/62038 diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 3be9622a58c..8f5bf105564 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,10 @@ +2014-08-23 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. + 2014-08-22 Jason Merrill * c.opt (std=gnu++17): Fix alias. diff --git a/gcc/c-family/c-common.h b/gcc/c-family/c-common.h index 20b65e99663..f621a3af040 100644 --- a/gcc/c-family/c-common.h +++ b/gcc/c-family/c-common.h @@ -640,8 +640,9 @@ enum cxx_dialect { /* C++11 */ cxx0x, cxx11 = cxx0x, - /* C++1y (C++14?) */ + /* C++14 */ cxx1y, + cxx14 = cxx1y, /* C++1z (C++17?) */ cxx1z }; diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c index ddc480be1dd..42f175928fd 100644 --- a/gcc/c-family/c-opts.c +++ b/gcc/c-family/c-opts.c @@ -116,7 +116,7 @@ static bool done_preinclude; 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); @@ -702,7 +702,7 @@ c_common_handle_option (size_t scode, const char *arg, int value, 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; } @@ -1589,29 +1589,30 @@ set_std_cxx11 (int iso) /* 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; /* 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). */ 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; /* C++11 includes the C99 standard library. */ flag_isoc94 = 1; flag_isoc99 = 1; + flag_isoc11 = 1; cxx_dialect = cxx1z; } diff --git a/gcc/c-family/c-ubsan.c b/gcc/c-family/c-ubsan.c index e048c53ac3e..f0d9b700623 100644 --- a/gcc/c-family/c-ubsan.c +++ b/gcc/c-family/c-ubsan.c @@ -146,12 +146,12 @@ ubsan_instrument_shift (location_t loc, enum tree_code code, 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); diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 04b0e00b6ca..e770ab0d035 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,20 @@ +2014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net> + + * decl.c (compute_array_index_type, grokdeclarator, + undeduced_auto_decl): Change from cxx1y to cxx14. + *lambda.c(add_capture()): Change error message from C++1y to C++14. + * 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. + * tree.c: Change comment. + * typeck.c (comp_template_parms_position, cxx_sizeof_or_alignof_type, + cp_build_addr_expr_1, maybe_warn_about_useless_cast): Ditto. + 2014-08-23 Jason Merrill Allow non-constexpr variable templates. diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 35ede7a0d81..e83192ad749 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -8413,7 +8413,7 @@ compute_array_index_type (tree name, tree size, tsubst_flags_t complain) /* 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; @@ -8425,7 +8425,7 @@ compute_array_index_type (tree name, tree size, tsubst_flags_t complain) 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); @@ -8483,7 +8483,7 @@ compute_array_index_type (tree name, tree size, tsubst_flags_t complain) 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. */ @@ -8499,7 +8499,7 @@ compute_array_index_type (tree name, tree size, tsubst_flags_t complain) DECL_ATTRIBUTES (current_function_decl))) { - /* From C++1y onwards, we throw an exception on a negative + /* From C++14 onwards, we throw an exception on a negative length size of an array; see above. */ /* We have to add 1 -- in the ubsan routine we generate @@ -8628,7 +8628,7 @@ create_array_type_for_decl (tree name, tree type, tree size) 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"); @@ -9648,14 +9648,14 @@ grokdeclarator (const cp_declarator *declarator, 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 " "% type specifier without trailing " "return type", name); inform (input_location, "deduced return type " - "only available with -std=c++1y or " - "-std=gnu++1y"); + "only available with -std=c++14 or " + "-std=gnu++14"); } else if (virtualp) { @@ -9872,7 +9872,7 @@ grokdeclarator (const cp_declarator *declarator, : 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 @@ -10229,7 +10229,7 @@ grokdeclarator (const cp_declarator *declarator, 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"); @@ -10475,7 +10475,7 @@ grokdeclarator (const cp_declarator *declarator, if (type_uses_auto (type)) { - if (cxx_dialect >= cxx1y) + if (cxx_dialect >= cxx14) error ("% parameter not permitted in this context"); else error ("parameter declared %"); @@ -14629,7 +14629,7 @@ fndecl_declared_return_type (tree fn) bool undeduced_auto_decl (tree decl) { - if (cxx_dialect < cxx1y) + if (cxx_dialect < cxx14) return false; return type_uses_auto (TREE_TYPE (decl)); } diff --git a/gcc/cp/lambda.c b/gcc/cp/lambda.c index ddaa9406727..0d8d4551a0f 100644 --- a/gcc/cp/lambda.c +++ b/gcc/cp/lambda.c @@ -474,7 +474,7 @@ add_capture (tree lambda, tree id, tree orig_init, bool by_reference_p, } else if (variably_modified_type_p (type, NULL_TREE)) { - error ("capture of variable-size type %qT that is not a C++1y array " + error ("capture of variable-size type %qT that is not a C++14 array " "of runtime bound", type); if (TREE_CODE (type) == ARRAY_TYPE && variably_modified_type_p (TREE_TYPE (type), NULL_TREE)) diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 7d8b7101cd1..f0beb42cd20 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -4970,10 +4970,10 @@ cp_parser_unqualified_id (cp_parser* parser, /* ~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"); + "-std=c++14 or -std=gnu++14"); cp_lexer_consume_token (parser->lexer); return build_nt (BIT_NOT_EXPR, make_auto ()); } @@ -6895,10 +6895,10 @@ cp_parser_pseudo_destructor_name (cp_parser* parser, && 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"); + "-std=c++14 or -std=gnu++14"); cp_lexer_consume_token (parser->lexer); cp_lexer_consume_token (parser->lexer); *scope = NULL_TREE; @@ -9058,10 +9058,10 @@ cp_parser_lambda_introducer (cp_parser* parser, tree lambda_expr) { 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"); + "only available with -std=c++14 or -std=gnu++14"); capture_init_expr = cp_parser_initializer (parser, &direct, &non_constant); explicit_init_p = true; @@ -9184,10 +9184,10 @@ cp_parser_lambda_declarator_opt (cp_parser* parser, tree lambda_expr) 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"); + "-std=c++14 or -std=gnu++14"); cp_lexer_consume_token (parser->lexer); @@ -12162,7 +12162,7 @@ cp_parser_decltype (cp_parser *parser) 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); @@ -12345,7 +12345,7 @@ cp_parser_conversion_type_id (cp_parser* parser) 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 % in conversion operator"); return error_mark_node; @@ -14710,17 +14710,17 @@ cp_parser_simple_type_specifier (cp_parser* parser, 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 % in lambda parameter declaration " "only available with " - "-std=c++1y or -std=gnu++1y"); + "-std=c++14 or -std=gnu++14"); } - else if (cxx_dialect < cxx1y) + else if (cxx_dialect < cxx14) pedwarn (location_of (type), 0, "use of % in parameter declaration " "only available with " - "-std=c++1y or -std=gnu++1y"); + "-std=c++14 or -std=gnu++14"); else pedwarn (location_of (type), OPT_Wpedantic, "ISO C++ forbids use of % in parameter " @@ -18215,7 +18215,7 @@ cp_parser_type_id_1 (cp_parser* parser, bool is_template_arg, 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 @@ -18248,7 +18248,7 @@ static tree cp_parser_template_type_arg (cp_parser *parser) = 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 % in template argument"); r = error_mark_node; @@ -22104,7 +22104,7 @@ cp_parser_std_attribute (cp_parser *parser) 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"); } @@ -23317,7 +23317,7 @@ cp_parser_template_declaration_after_export (cp_parser* parser, bool member_p) || !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); @@ -23332,7 +23332,7 @@ cp_parser_template_declaration_after_export (cp_parser* parser, bool member_p) } 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 " " or ", diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 14b5bfb190a..a40f9d2ad7c 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -2310,10 +2310,10 @@ check_template_variable (tree decl) int wanted = num_template_headers_for_class (ctx); if (!TYPE_P (ctx) || !CLASSTYPE_TEMPLATE_INFO (ctx)) { - if (cxx_dialect < cxx1y) + if (cxx_dialect < cxx14) pedwarn (DECL_SOURCE_LOCATION (decl), 0, "variable templates only available with " - "-std=c++1y or -std=gnu++1y"); + "-std=c++14 or -std=gnu++14"); // Namespace-scope variable templates should have a template header. ++wanted; @@ -12131,7 +12131,7 @@ tsubst (tree t, tree args, tsubst_flags_t complain, tree in_decl) 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)) diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index aed820cdda5..a54011f7ce9 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -1610,7 +1610,7 @@ tree 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 @@ -7064,7 +7064,7 @@ finish_decltype_type (tree expr, bool id_expression_or_member_access_p, } } - 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) diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index c9199f2c186..d0e11806ef6 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -904,7 +904,7 @@ build_array_of_n_type (tree elt, int n) return build_cplus_array_type (elt, build_index_type (size_int (n - 1))); } -/* True iff T is a C++1y array of runtime bound (VLA). */ +/* True iff T is a C++14 array of runtime bound (VLA). */ bool array_of_runtime_bound_p (tree t) diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index fa3283d18bd..05fd48e372d 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -1154,7 +1154,7 @@ comp_template_parms_position (tree t1, tree t2) /* 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; @@ -1566,7 +1566,7 @@ cxx_sizeof_or_alignof_type (tree type, enum tree_code op, bool complain) 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) @@ -5526,7 +5526,7 @@ cp_build_addr_expr_1 (tree arg, bool strict_lvalue, tsubst_flags_t complain) 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) @@ -6348,7 +6348,7 @@ maybe_warn_about_useless_cast (tree type, tree expr, tsubst_flags_t complain) /* 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 diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index dda8e91250c..83437830d50 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -1722,13 +1722,23 @@ The name @samp{c++0x} is deprecated. 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 @@ -2676,7 +2686,7 @@ When this option is turned off these suffixes are treated 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 @@ -5510,7 +5520,7 @@ call into a diagnostics message call instead. When reaching the @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 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9f40c35c159..e04f5b34e7c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,148 @@ +2014-08-23 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/var-templ1.C: Ditto. + * g++.dg/cpp1y/var-templ2.C: Ditto. + * g++.dg/cpp1y/var-templ3.C: Ditto. + * g++.dg/cpp1y/var-templ4.C: Ditto. + * g++.dg/cpp1y/var-templ5.C: Ditto. + * g++.dg/cpp1y/var-templ6.C: Ditto. + * g++.dg/cpp1y/var-templ7.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. + * gcc/testsuite/g++.dg/ubsan/cxx1y-vla.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/system-binary-constants-1.C: Check C++14 instead of C++1y + in error message. + * g++.dg/system-binary-constants-1.C: Ditto. + * g++.dg/cpp1y/cplusplus_1y.C: New. + * g++.dg/cpp1z/cplusplus.C: New. + * lib/target-supports.exp: + (check_effective_target_c++1y*): Rename to check_effective_target_c++14* + (check_effective_target_c++11_only): Call check_effective_target_c++14; + (check_effective_target_c++11_down): Ditto. + 2014-08-22 Marek Polacek PR c++/62199 diff --git a/gcc/testsuite/g++.dg/cpp0x/auto3.C b/gcc/testsuite/g++.dg/cpp0x/auto3.C index c2e5519ecf7..5bfed1be3cb 100644 --- a/gcc/testsuite/g++.dg/cpp0x/auto3.C +++ b/gcc/testsuite/g++.dg/cpp0x/auto3.C @@ -19,7 +19,7 @@ A A1; // CWG issue 625 A 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" } { diff --git a/gcc/testsuite/g++.dg/cpp0x/auto41.C b/gcc/testsuite/g++.dg/cpp0x/auto41.C index b2a77550fda..b1551e2e580 100644 --- a/gcc/testsuite/g++.dg/cpp0x/auto41.C +++ b/gcc/testsuite/g++.dg/cpp0x/auto41.C @@ -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 } } diff --git a/gcc/testsuite/g++.dg/cpp0x/auto9.C b/gcc/testsuite/g++.dg/cpp0x/auto9.C index 205bb960cc9..0c0f39f02c6 100644 --- a/gcc/testsuite/g++.dg/cpp0x/auto9.C +++ b/gcc/testsuite/g++.dg/cpp0x/auto9.C @@ -15,13 +15,13 @@ const std::type_info &t2 = typeid (auto *); // { dg-error "auto" } 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 @@ baz (int i, ...) template struct E {}; // { dg-error "invalid use of" } template 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" } diff --git a/gcc/testsuite/g++.dg/cpp0x/cplusplus.C b/gcc/testsuite/g++.dg/cpp0x/cplusplus.C new file mode 100644 index 00000000000..b2f0ccd3d30 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/cplusplus.C @@ -0,0 +1,5 @@ +// { dg-do compile { target c++11_only } } + +#if __cplusplus != 201103L +#error "__cplusplus != 201103L" +#endif diff --git a/gcc/testsuite/g++.dg/cpp0x/cplusplus_0x.C b/gcc/testsuite/g++.dg/cpp0x/cplusplus_0x.C new file mode 100644 index 00000000000..6ba2a6cc333 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/cplusplus_0x.C @@ -0,0 +1,6 @@ +// { dg-do compile } +// { dg-options "-std=c++0x" } + +#if __cplusplus != 201103L +#error "__cplusplus != 201103L" +#endif diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist26.C b/gcc/testsuite/g++.dg/cpp0x/initlist26.C index 81d304f0e9e..260ddd48f5e 100644 --- a/gcc/testsuite/g++.dg/cpp0x/initlist26.C +++ b/gcc/testsuite/g++.dg/cpp0x/initlist26.C @@ -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) diff --git a/gcc/testsuite/g++.dg/cpp0x/pr59111.C b/gcc/testsuite/g++.dg/cpp0x/pr59111.C index 4e48854418f..62d8e8f86ec 100644 --- a/gcc/testsuite/g++.dg/cpp0x/pr59111.C +++ b/gcc/testsuite/g++.dg/cpp0x/pr59111.C @@ -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 "" } diff --git a/gcc/testsuite/g++.dg/cpp0x/trailing2.C b/gcc/testsuite/g++.dg/cpp0x/trailing2.C index 888d6f958f1..bfc2712a74a 100644 --- a/gcc/testsuite/g++.dg/cpp0x/trailing2.C +++ b/gcc/testsuite/g++.dg/cpp0x/trailing2.C @@ -3,14 +3,14 @@ // { 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" } 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" } }; diff --git a/gcc/testsuite/g++.dg/cpp1y/attr-deprecated.C b/gcc/testsuite/g++.dg/cpp1y/attr-deprecated.C index 698268a7768..ec6f232b858 100644 --- a/gcc/testsuite/g++.dg/cpp1y/attr-deprecated.C +++ b/gcc/testsuite/g++.dg/cpp1y/attr-deprecated.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } class [[deprecated]] A { diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-dtor1.C b/gcc/testsuite/g++.dg/cpp1y/auto-dtor1.C index 0a109fe8a1c..9d90a0f2022 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-dtor1.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-dtor1.C @@ -1,5 +1,5 @@ // DR 1586 -// { dg-do run { target c++1y } } +// { dg-do run { target c++14 } } template void f (T* p) diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn1.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn1.C index 7a5b4908adc..0df09ab7ab1 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn1.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn1.C @@ -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) diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn10.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn10.C index 890cfda1205..8e08911465d 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn10.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn10.C @@ -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 auto f(T t) { return t; } diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn11.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn11.C index 132f959db29..b6a4b324b7c 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn11.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn11.C @@ -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" } diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn12.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn12.C index 04ea81929d3..224f2789bcd 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn12.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn12.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-final { scan-assembler "_ZN1AIiEcvDaEv" } } template diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn13.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn13.C index 8f4e105019f..96b4b0c64aa 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn13.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn13.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } struct A { template diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn14.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn14.C index f17c0e289c3..d82b21fc960 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn14.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn14.C @@ -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; } diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn15.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn15.C index 987aa96b7bb..ba9f3579f62 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn15.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn15.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "-Wno-return-local-addr" } template struct same_type; diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn16.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn16.C index 233f26f8118..46177239ddc 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn16.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn16.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } template struct ST; template struct ST {}; diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn17.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn17.C index ee668b626a1..1647107e54a 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn17.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn17.C @@ -1,4 +1,4 @@ -// { dg-do run { target c++1y } } +// { dg-do run { target c++14 } } int c; int d; diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn18.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn18.C index ca1b0b03379..528d3d45ed7 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn18.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn18.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } struct A { diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn19.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn19.C index ecd8b91e885..28cea112866 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn19.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn19.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } template auto f() { return T::i; } diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn2.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn2.C index f89c86ce313..0d39551ff2c 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn2.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn2.C @@ -1,3 +1,3 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } auto f() { return f(); } // { dg-error "auto" } diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn20.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn20.C index 818b6f5da67..a516bcfb0e8 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn20.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn20.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } template auto f(T) { return 42; } diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn21.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn21.C index df23a81486d..4db1c86c8d9 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn21.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn21.C @@ -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; } diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn22.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn22.C index 0077b89e4cd..b16a7644c0f 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn22.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn22.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } struct A { diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn23.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn23.C index f153e2a7fa1..896318ceb0a 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn23.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn23.C @@ -1,5 +1,5 @@ // PR c++/58561 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "-g" } auto foo(); diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn24.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn24.C index dfff2029c1d..e9bbc735b4d 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn24.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn24.C @@ -1,5 +1,5 @@ // PR c++/60314 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "-g" } // fine diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn25.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn25.C index 24680f16d05..fdad4653560 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn25.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn25.C @@ -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" } diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn3.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn3.C index 73ec5a7c8d2..4436e84bcd3 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn3.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn3.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } bool b; auto f() diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn4.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn4.C index 4c3227a0e1f..c2e1893523c 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn4.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn4.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } template constexpr auto f(T t) { return t+1; } diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn5.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn5.C index b8571400263..17ce4d29124 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn5.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn5.C @@ -1,4 +1,4 @@ -// { dg-do run { target c++1y } } +// { dg-do run { target c++14 } } int i; auto& f() { return i; } diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn6.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn6.C index 123132ddf0c..17ca6f22c50 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn6.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn6.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } template struct ST; template struct ST {}; diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn7.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn7.C index deb664c3bd8..3bef5987ac2 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn7.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn7.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } auto f(); diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn8.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn8.C index 1badd6a5e81..651c66cb297 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn8.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn8.C @@ -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 diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn9.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn9.C index 018d42cce6b..54cfa0de4e8 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-fn9.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn9.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-final { scan-assembler "_Z1fIiERDaRKT_S1_" } } template diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-mangle1.C b/gcc/testsuite/g++.dg/cpp1y/auto-mangle1.C index 0ea437ca460..0cb44599ff2 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-mangle1.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-mangle1.C @@ -1,5 +1,5 @@ // Mangling for decltype(auto) -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } void f(); diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-neg1.C b/gcc/testsuite/g++.dg/cpp1y/auto-neg1.C index a6f31f63def..e1973e5d9a4 100644 --- a/gcc/testsuite/g++.dg/cpp1y/auto-neg1.C +++ b/gcc/testsuite/g++.dg/cpp1y/auto-neg1.C @@ -1,5 +1,5 @@ // PR c++/60312 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } template struct A; diff --git a/gcc/testsuite/g++.dg/cpp1y/cplusplus.C b/gcc/testsuite/g++.dg/cpp1y/cplusplus.C index 2cfd84fada0..7c07d6c8b03 100644 --- a/gcc/testsuite/g++.dg/cpp1y/cplusplus.C +++ b/gcc/testsuite/g++.dg/cpp1y/cplusplus.C @@ -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 diff --git a/gcc/testsuite/g++.dg/cpp1y/cplusplus_1y.C b/gcc/testsuite/g++.dg/cpp1y/cplusplus_1y.C new file mode 100644 index 00000000000..0e8f3eeb8ad --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/cplusplus_1y.C @@ -0,0 +1,6 @@ +// { dg-do compile } +// { dg-options "-std=c++1y" } + +#if __cplusplus != 201402L +#error "__cplusplus != 201402L" +#endif diff --git a/gcc/testsuite/g++.dg/cpp1y/digit-sep-cxx11-neg.C b/gcc/testsuite/g++.dg/cpp1y/digit-sep-cxx11-neg.C index 453fe106a24..411ba52b523 100644 --- a/gcc/testsuite/g++.dg/cpp1y/digit-sep-cxx11-neg.C +++ b/gcc/testsuite/g++.dg/cpp1y/digit-sep-cxx11-neg.C @@ -1,4 +1,4 @@ -// { dg-do compile { target { ! c++1y } } } +// { dg-do compile { target { ! c++14 } } } #define assert(E) if(!(E))__builtin_abort(); diff --git a/gcc/testsuite/g++.dg/cpp1y/digit-sep-neg.C b/gcc/testsuite/g++.dg/cpp1y/digit-sep-neg.C index 377228cf4b5..3d4c616ccb1 100644 --- a/gcc/testsuite/g++.dg/cpp1y/digit-sep-neg.C +++ b/gcc/testsuite/g++.dg/cpp1y/digit-sep-neg.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } int main() diff --git a/gcc/testsuite/g++.dg/cpp1y/digit-sep.C b/gcc/testsuite/g++.dg/cpp1y/digit-sep.C index cc670fe06db..111e7a55d79 100644 --- a/gcc/testsuite/g++.dg/cpp1y/digit-sep.C +++ b/gcc/testsuite/g++.dg/cpp1y/digit-sep.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } #define assert(E) if(!(E))__builtin_abort(); diff --git a/gcc/testsuite/g++.dg/cpp1y/fn-generic-member-ool.C b/gcc/testsuite/g++.dg/cpp1y/fn-generic-member-ool.C index 1d7c812d067..60ac52eff5b 100644 --- a/gcc/testsuite/g++.dg/cpp1y/fn-generic-member-ool.C +++ b/gcc/testsuite/g++.dg/cpp1y/fn-generic-member-ool.C @@ -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 { diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-deduce-mult.C b/gcc/testsuite/g++.dg/cpp1y/lambda-deduce-mult.C index 478d6a50bab..f1c7ba94825 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-deduce-mult.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-deduce-mult.C @@ -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 diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-cfun.C b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-cfun.C index 0069a6eaed9..dd64d560cc0 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-cfun.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-cfun.C @@ -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)) { } diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-dep.C b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-dep.C index c22bb97ecaf..dbf8b70f862 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-dep.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-dep.C @@ -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 diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-mixed.C b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-mixed.C index 3e67ebd16f6..59b5ccaa957 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-mixed.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-mixed.C @@ -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() { diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-udt.C b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-udt.C index f0e9a5bbe65..3597fa8053a 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-udt.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-udt.C @@ -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; diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic.C b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic.C index 7065ac606f7..6d2d250f393 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic.C @@ -1,5 +1,5 @@ // Basic generic lambda test -// { dg-do run { target c++1y } } +// { dg-do run { target c++14 } } template struct pair {}; template struct tuple {}; diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-vla1.C b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-vla1.C index f646b85b5b0..90407da97c5 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-vla1.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-vla1.C @@ -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 *, ...); diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-x.C b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-x.C index b722aa7b23b..5334091ef5f 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-x.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-x.C @@ -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 diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-xcfun.C b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-xcfun.C index fbd74220d40..d8f5ec15aed 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-xcfun.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-xcfun.C @@ -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)) { } diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-xudt.C b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-xudt.C index f6e9e5bffc6..b3492dd85d3 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-xudt.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-xudt.C @@ -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" diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-generic.C b/gcc/testsuite/g++.dg/cpp1y/lambda-generic.C index 9721e87d96b..9bd744c362c 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-generic.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic.C @@ -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 diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-init.C b/gcc/testsuite/g++.dg/cpp1y/lambda-init.C index f9a80059bd5..b474893be8c 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-init.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-init.C @@ -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() { diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-init1.C b/gcc/testsuite/g++.dg/cpp1y/lambda-init1.C index 25254641419..e9105fc1297 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-init1.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-init1.C @@ -1,6 +1,6 @@ // N3648: capture init // { dg-options "-w" } -// { dg-do run { target c++1y } } +// { dg-do run { target c++14 } } int main() { diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-init2.C b/gcc/testsuite/g++.dg/cpp1y/lambda-init2.C index 83ec57e6757..e4f31cfa2da 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-init2.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-init2.C @@ -1,5 +1,5 @@ // N3648: redundancy and capture init -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } int main() { diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-init3.C b/gcc/testsuite/g++.dg/cpp1y/lambda-init3.C index 43372284679..49ebde7ff6b 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-init3.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-init3.C @@ -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; }(); diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-init4.C b/gcc/testsuite/g++.dg/cpp1y/lambda-init4.C index 0affb31bd5e..787ffc0476d 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-init4.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-init4.C @@ -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 { diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-init5.C b/gcc/testsuite/g++.dg/cpp1y/lambda-init5.C index b136f45ea7b..5976de0f073 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-init5.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-init5.C @@ -1,5 +1,5 @@ // Test for paren and brace initializers -// { dg-do run { target c++1y } } +// { dg-do run { target c++14 } } #include diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-init6.C b/gcc/testsuite/g++.dg/cpp1y/lambda-init6.C index e2530004f5c..d6c1587487d 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-init6.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-init6.C @@ -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() { diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-init7.C b/gcc/testsuite/g++.dg/cpp1y/lambda-init7.C index 224cd1a61bf..c943c48dfb0 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-init7.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-init7.C @@ -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" } diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-init8.C b/gcc/testsuite/g++.dg/cpp1y/lambda-init8.C index 3a61b74eaed..21933bd3e1b 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-init8.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-init8.C @@ -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 diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-init9.C b/gcc/testsuite/g++.dg/cpp1y/lambda-init9.C index c13a3d9e09e..a86f03e0f1d 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-init9.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-init9.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } void f() { diff --git a/gcc/testsuite/g++.dg/cpp1y/mangle1.C b/gcc/testsuite/g++.dg/cpp1y/mangle1.C index 0642f147984..092b2fa7684 100644 --- a/gcc/testsuite/g++.dg/cpp1y/mangle1.C +++ b/gcc/testsuite/g++.dg/cpp1y/mangle1.C @@ -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_" } } diff --git a/gcc/testsuite/g++.dg/cpp1y/pr57640.C b/gcc/testsuite/g++.dg/cpp1y/pr57640.C index b9debe1455d..0c76a08aecc 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr57640.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr57640.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } #include diff --git a/gcc/testsuite/g++.dg/cpp1y/pr57644.C b/gcc/testsuite/g++.dg/cpp1y/pr57644.C index 080572168dd..ec595a21b7d 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr57644.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr57644.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } struct Foo { diff --git a/gcc/testsuite/g++.dg/cpp1y/pr58500.C b/gcc/testsuite/g++.dg/cpp1y/pr58500.C index ec7d564b4bd..bb68cbc1999 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr58500.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr58500.C @@ -1,5 +1,5 @@ // PR c++/58500 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "" } struct A {}; diff --git a/gcc/testsuite/g++.dg/cpp1y/pr58533.C b/gcc/testsuite/g++.dg/cpp1y/pr58533.C index 34d43aabdcb..c8a93d3388d 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr58533.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr58533.C @@ -1,5 +1,5 @@ // PR c++/58533 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } void foo() { diff --git a/gcc/testsuite/g++.dg/cpp1y/pr58534.C b/gcc/testsuite/g++.dg/cpp1y/pr58534.C index dd5073182c7..e38e1f3f667 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr58534.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr58534.C @@ -1,5 +1,5 @@ // PR c++/58534 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "" } template void foo(const auto&) {} diff --git a/gcc/testsuite/g++.dg/cpp1y/pr58535.C b/gcc/testsuite/g++.dg/cpp1y/pr58535.C index e0718480b3b..b36be8f4a45 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr58535.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr58535.C @@ -1,5 +1,5 @@ // PR c++/58535 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "" } struct A diff --git a/gcc/testsuite/g++.dg/cpp1y/pr58536.C b/gcc/testsuite/g++.dg/cpp1y/pr58536.C index 05c00b362d5..a4b6f553efd 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr58536.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr58536.C @@ -1,5 +1,5 @@ // PR c++/58536 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "" } struct A diff --git a/gcc/testsuite/g++.dg/cpp1y/pr58548.C b/gcc/testsuite/g++.dg/cpp1y/pr58548.C index 122b96f500d..6a78de46c3f 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr58548.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr58548.C @@ -1,5 +1,5 @@ // PR c++/58548 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "" } void foo(auto) diff --git a/gcc/testsuite/g++.dg/cpp1y/pr58549.C b/gcc/testsuite/g++.dg/cpp1y/pr58549.C index 1b54af4a675..2f76399d8dd 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr58549.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr58549.C @@ -1,5 +1,5 @@ // PR c++/58549 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "" } void foo(auto) diff --git a/gcc/testsuite/g++.dg/cpp1y/pr58637.C b/gcc/testsuite/g++.dg/cpp1y/pr58637.C index ecc92581140..caa60af6306 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr58637.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr58637.C @@ -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" } diff --git a/gcc/testsuite/g++.dg/cpp1y/pr58708.C b/gcc/testsuite/g++.dg/cpp1y/pr58708.C index 226b318f650..6fc374f1e56 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr58708.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr58708.C @@ -1,4 +1,4 @@ -// { dg-do run { target c++1y } } +// { dg-do run { target c++14 } } template struct is_same diff --git a/gcc/testsuite/g++.dg/cpp1y/pr59110.C b/gcc/testsuite/g++.dg/cpp1y/pr59110.C index c78d645cc34..dba9cea0dc2 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr59110.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr59110.C @@ -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 "" } diff --git a/gcc/testsuite/g++.dg/cpp1y/pr59112.C b/gcc/testsuite/g++.dg/cpp1y/pr59112.C index bc9d99eb3f4..fc67e3820d1 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr59112.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr59112.C @@ -1,5 +1,5 @@ // PR c++/59112 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } void foo() { diff --git a/gcc/testsuite/g++.dg/cpp1y/pr59113.C b/gcc/testsuite/g++.dg/cpp1y/pr59113.C index 8d2bf7fbf7c..3d7dd61ac94 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr59113.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr59113.C @@ -1,5 +1,5 @@ // PR c++/59113 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } void foo() { diff --git a/gcc/testsuite/g++.dg/cpp1y/pr59629.C b/gcc/testsuite/g++.dg/cpp1y/pr59629.C index b6e561f2e01..f66e64eb6a2 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr59629.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr59629.C @@ -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" } diff --git a/gcc/testsuite/g++.dg/cpp1y/pr59635.C b/gcc/testsuite/g++.dg/cpp1y/pr59635.C index 80d9f4de43c..9af99397dc7 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr59635.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr59635.C @@ -1,5 +1,5 @@ // PR c++/59635 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } auto f = [] (auto, ...) { return 0; }; diff --git a/gcc/testsuite/g++.dg/cpp1y/pr59636.C b/gcc/testsuite/g++.dg/cpp1y/pr59636.C index 6128753e08e..847cecdf5a5 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr59636.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr59636.C @@ -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" } diff --git a/gcc/testsuite/g++.dg/cpp1y/pr59638.C b/gcc/testsuite/g++.dg/cpp1y/pr59638.C index ce90483ce8c..a34b6571865 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr59638.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr59638.C @@ -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 "" } diff --git a/gcc/testsuite/g++.dg/cpp1y/pr59867.C b/gcc/testsuite/g++.dg/cpp1y/pr59867.C index 0cc33db0138..2c4f1d046bf 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr59867.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr59867.C @@ -1,5 +1,5 @@ // PR c++/59867 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } using namespace std; diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60033.C b/gcc/testsuite/g++.dg/cpp1y/pr60033.C index f918d33fddd..c083facb43a 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60033.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60033.C @@ -1,5 +1,5 @@ // PR c++/60033 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } template auto f(T&&... ts) diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60052.C b/gcc/testsuite/g++.dg/cpp1y/pr60052.C index 6ac77202045..25d20acdf84 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60052.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60052.C @@ -1,5 +1,5 @@ // PR c++/60052 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "" } struct A diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60053.C b/gcc/testsuite/g++.dg/cpp1y/pr60053.C index 846039052f8..a8f5ba1ca3f 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60053.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60053.C @@ -1,5 +1,5 @@ // PR c++/60053 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "" } struct A diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60054.C b/gcc/testsuite/g++.dg/cpp1y/pr60054.C index 6b5179ac7dd..f51120f6425 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60054.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60054.C @@ -1,5 +1,5 @@ // PR c++/60054 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } template T fooA(T); template decltype(T{}) fooB(T); diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60064.C b/gcc/testsuite/g++.dg/cpp1y/pr60064.C index e61704e8ecd..add3f05cbbd 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60064.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60064.C @@ -1,5 +1,5 @@ // PR c++/60064 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "" } class A diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60065.C b/gcc/testsuite/g++.dg/cpp1y/pr60065.C index 2cf8da12bc7..56505b7bc04 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60065.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60065.C @@ -1,5 +1,5 @@ // PR c++/60065 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "" } template void foo(auto... x); diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60190.C b/gcc/testsuite/g++.dg/cpp1y/pr60190.C index 9a5b484a667..9e439ceb9ea 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60190.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60190.C @@ -1,4 +1,4 @@ // PR c++/60190 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } auto f = []() -> int() {}; // { dg-error "returning a function|expected" } diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60311.C b/gcc/testsuite/g++.dg/cpp1y/pr60311.C index 001e99327e6..6d32831f866 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60311.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60311.C @@ -1,5 +1,5 @@ // PR c++/60311 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } template struct A {}; // { dg-error "auto" } diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60332.C b/gcc/testsuite/g++.dg/cpp1y/pr60332.C index c0a67a9f6cd..e75ab8584e3 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60332.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60332.C @@ -1,5 +1,5 @@ // PR c++/60332 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } void foo(); diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60376.C b/gcc/testsuite/g++.dg/cpp1y/pr60376.C index 51d088a2a95..9585dd2ca77 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60376.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60376.C @@ -1,5 +1,5 @@ // PR c++/60376 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } struct A { diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60377.C b/gcc/testsuite/g++.dg/cpp1y/pr60377.C index 6d1d416ec8b..ab35ba9b172 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60377.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60377.C @@ -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" } diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60384.C b/gcc/testsuite/g++.dg/cpp1y/pr60384.C index f206647e640..44806cd69e6 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60384.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60384.C @@ -1,5 +1,5 @@ // PR c++/60384 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } template int foo(); diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60390.C b/gcc/testsuite/g++.dg/cpp1y/pr60390.C index 5cd5539f82e..38d0e4bd6cd 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60390.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60390.C @@ -1,5 +1,5 @@ // PR c++/60390 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "" } struct A diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60391.C b/gcc/testsuite/g++.dg/cpp1y/pr60391.C index 68746aedf39..7e3570498bc 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60391.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60391.C @@ -1,5 +1,5 @@ // PR c++/60391 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "" } namespace N diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60393.C b/gcc/testsuite/g++.dg/cpp1y/pr60393.C index 8e89be49935..27fe2b72296 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60393.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60393.C @@ -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" } diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60573.C b/gcc/testsuite/g++.dg/cpp1y/pr60573.C index 2f607071c4f..da730f80f06 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60573.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60573.C @@ -1,5 +1,5 @@ // PR c++/60573 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "" } struct A diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60626.C b/gcc/testsuite/g++.dg/cpp1y/pr60626.C index 314d6dacf10..686db7306b9 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60626.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60626.C @@ -1,5 +1,5 @@ // PR c++/60626 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "" } struct A {}; diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60627.C b/gcc/testsuite/g++.dg/cpp1y/pr60627.C index 9e2116e9cb5..64eb6359221 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr60627.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr60627.C @@ -1,5 +1,5 @@ // PR c++/60627 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } // { dg-options "" } template void foo(T) {} diff --git a/gcc/testsuite/g++.dg/cpp1y/regress1.C b/gcc/testsuite/g++.dg/cpp1y/regress1.C index 5bb804258eb..d4566d0a216 100644 --- a/gcc/testsuite/g++.dg/cpp1y/regress1.C +++ b/gcc/testsuite/g++.dg/cpp1y/regress1.C @@ -1,5 +1,5 @@ // PR c++/60409 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } struct A { diff --git a/gcc/testsuite/g++.dg/cpp1y/system-binary-constants-1.C b/gcc/testsuite/g++.dg/cpp1y/system-binary-constants-1.C index 951fa3c5f19..ec2d5858ea8 100644 --- a/gcc/testsuite/g++.dg/cpp1y/system-binary-constants-1.C +++ b/gcc/testsuite/g++.dg/cpp1y/system-binary-constants-1.C @@ -1,5 +1,5 @@ // Origin: Dodji Seketeli -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } #include "../system-binary-constants-1.h" @@ -9,5 +9,5 @@ foo (void) #if BINARY_INT_CONSTANT_IN_SYSTEM_HEADER return 23; #endif - return 0b1101; // { dg-bogus "binary constants are a C..1y feature or GCC extension" } + return 0b1101; // { dg-bogus "binary constants are a C..14 feature or GCC extension" } } diff --git a/gcc/testsuite/g++.dg/cpp1y/udlit-char-template-neg.C b/gcc/testsuite/g++.dg/cpp1y/udlit-char-template-neg.C index c99b2f7278e..e77ea45890d 100644 --- a/gcc/testsuite/g++.dg/cpp1y/udlit-char-template-neg.C +++ b/gcc/testsuite/g++.dg/cpp1y/udlit-char-template-neg.C @@ -1,4 +1,4 @@ -// { dg-do compile { target { c++11 && { ! c++1y } } } } +// { dg-do compile { target { c++11 && { ! c++14 } } } } template int diff --git a/gcc/testsuite/g++.dg/cpp1y/udlit-char-template.C b/gcc/testsuite/g++.dg/cpp1y/udlit-char-template.C index d6b44d9c0f0..989b9babd1f 100644 --- a/gcc/testsuite/g++.dg/cpp1y/udlit-char-template.C +++ b/gcc/testsuite/g++.dg/cpp1y/udlit-char-template.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } template int diff --git a/gcc/testsuite/g++.dg/cpp1y/udlit-empty-string-neg.C b/gcc/testsuite/g++.dg/cpp1y/udlit-empty-string-neg.C index 4f1a34a5cdc..1b7f4fa2559 100644 --- a/gcc/testsuite/g++.dg/cpp1y/udlit-empty-string-neg.C +++ b/gcc/testsuite/g++.dg/cpp1y/udlit-empty-string-neg.C @@ -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'" } diff --git a/gcc/testsuite/g++.dg/cpp1y/udlit-enc-prefix-neg.C b/gcc/testsuite/g++.dg/cpp1y/udlit-enc-prefix-neg.C index 51def3aca39..039ab2fb451 100644 --- a/gcc/testsuite/g++.dg/cpp1y/udlit-enc-prefix-neg.C +++ b/gcc/testsuite/g++.dg/cpp1y/udlit-enc-prefix-neg.C @@ -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" } diff --git a/gcc/testsuite/g++.dg/cpp1y/udlit-userdef-string.C b/gcc/testsuite/g++.dg/cpp1y/udlit-userdef-string.C index f6c3baec922..cad4a1dfc66 100644 --- a/gcc/testsuite/g++.dg/cpp1y/udlit-userdef-string.C +++ b/gcc/testsuite/g++.dg/cpp1y/udlit-userdef-string.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } #include "complex_literals.h" diff --git a/gcc/testsuite/g++.dg/cpp1y/var-templ1.C b/gcc/testsuite/g++.dg/cpp1y/var-templ1.C index 9219303737c..856198a1097 100644 --- a/gcc/testsuite/g++.dg/cpp1y/var-templ1.C +++ b/gcc/testsuite/g++.dg/cpp1y/var-templ1.C @@ -1,5 +1,4 @@ -// { dg-do run } -// { dg-options "-std=c++1y" } +// { dg-do run { target c++14 } } template struct S1 diff --git a/gcc/testsuite/g++.dg/cpp1y/var-templ2.C b/gcc/testsuite/g++.dg/cpp1y/var-templ2.C index 315ac3e048a..c734f413145 100644 --- a/gcc/testsuite/g++.dg/cpp1y/var-templ2.C +++ b/gcc/testsuite/g++.dg/cpp1y/var-templ2.C @@ -1,5 +1,4 @@ -// { dg-do compile } -// { dg-options "-std=c++1y" } +// { dg-do compile { target c++14 } } // Template variables and static member variables of template classes are // often confused. diff --git a/gcc/testsuite/g++.dg/cpp1y/var-templ3.C b/gcc/testsuite/g++.dg/cpp1y/var-templ3.C index d3fbad4bc88..52ef6688a73 100644 --- a/gcc/testsuite/g++.dg/cpp1y/var-templ3.C +++ b/gcc/testsuite/g++.dg/cpp1y/var-templ3.C @@ -1,5 +1,4 @@ -// { dg-do run } -// { dg-options "-std=c++1y" } +// { dg-do run { target c++14 } } template constexpr int var = sizeof (T); diff --git a/gcc/testsuite/g++.dg/cpp1y/var-templ4.C b/gcc/testsuite/g++.dg/cpp1y/var-templ4.C index 1d6cf1d6918..4ad7be68c5c 100644 --- a/gcc/testsuite/g++.dg/cpp1y/var-templ4.C +++ b/gcc/testsuite/g++.dg/cpp1y/var-templ4.C @@ -1,5 +1,4 @@ -// { dg-do run } -// { dg-options "-std=c++1y" } +// { dg-do run { target c++14 } } template constexpr int var = sizeof (T); diff --git a/gcc/testsuite/g++.dg/cpp1y/var-templ5.C b/gcc/testsuite/g++.dg/cpp1y/var-templ5.C index a8b7122ddd8..a10f3888b6e 100644 --- a/gcc/testsuite/g++.dg/cpp1y/var-templ5.C +++ b/gcc/testsuite/g++.dg/cpp1y/var-templ5.C @@ -1,5 +1,4 @@ -// { dg-do run } -// { dg-options "-std=c++1y" } +// { dg-do run { target c++14 } } template struct S1 diff --git a/gcc/testsuite/g++.dg/cpp1y/var-templ6.C b/gcc/testsuite/g++.dg/cpp1y/var-templ6.C index 2125d6c9487..23ebfbe74f8 100644 --- a/gcc/testsuite/g++.dg/cpp1y/var-templ6.C +++ b/gcc/testsuite/g++.dg/cpp1y/var-templ6.C @@ -1,4 +1,4 @@ -// { dg-options "-std=c++1y" } +// { dg-do compile { target c++14 } } template constexpr bool Class = __is_class(T); diff --git a/gcc/testsuite/g++.dg/cpp1y/var-templ7.C b/gcc/testsuite/g++.dg/cpp1y/var-templ7.C index 1e59cf42738..07453af796c 100644 --- a/gcc/testsuite/g++.dg/cpp1y/var-templ7.C +++ b/gcc/testsuite/g++.dg/cpp1y/var-templ7.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } template T var = 0; diff --git a/gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C b/gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C index b642ed41580..7b7aa926532 100644 --- a/gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C +++ b/gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C @@ -1,4 +1,4 @@ -// { dg-do run { target c++1y } } +// { dg-do run { target c++14 } } #include diff --git a/gcc/testsuite/g++.dg/cpp1y/vla1.C b/gcc/testsuite/g++.dg/cpp1y/vla1.C index 5708cf84e2f..cea17ef7375 100644 --- a/gcc/testsuite/g++.dg/cpp1y/vla1.C +++ b/gcc/testsuite/g++.dg/cpp1y/vla1.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } #include diff --git a/gcc/testsuite/g++.dg/cpp1y/vla10.C b/gcc/testsuite/g++.dg/cpp1y/vla10.C index c3f71b5c206..38fb145ae20 100644 --- a/gcc/testsuite/g++.dg/cpp1y/vla10.C +++ b/gcc/testsuite/g++.dg/cpp1y/vla10.C @@ -1,5 +1,5 @@ // PR c++/57402 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } int i = 2; diff --git a/gcc/testsuite/g++.dg/cpp1y/vla11.C b/gcc/testsuite/g++.dg/cpp1y/vla11.C index c84b0bbb9af..ca226352879 100644 --- a/gcc/testsuite/g++.dg/cpp1y/vla11.C +++ b/gcc/testsuite/g++.dg/cpp1y/vla11.C @@ -1,5 +1,5 @@ // PR c++/60251 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } void foo(int n) { diff --git a/gcc/testsuite/g++.dg/cpp1y/vla12.C b/gcc/testsuite/g++.dg/cpp1y/vla12.C index d605e72a482..7fc9987367c 100644 --- a/gcc/testsuite/g++.dg/cpp1y/vla12.C +++ b/gcc/testsuite/g++.dg/cpp1y/vla12.C @@ -1,5 +1,5 @@ // PR c++/60250 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } template void foo() { diff --git a/gcc/testsuite/g++.dg/cpp1y/vla13.C b/gcc/testsuite/g++.dg/cpp1y/vla13.C index 9b69452d1d6..f5dab26c621 100644 --- a/gcc/testsuite/g++.dg/cpp1y/vla13.C +++ b/gcc/testsuite/g++.dg/cpp1y/vla13.C @@ -1,5 +1,5 @@ // PR c++/60227 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } void foo(int n) { diff --git a/gcc/testsuite/g++.dg/cpp1y/vla2.C b/gcc/testsuite/g++.dg/cpp1y/vla2.C index 6aa5fcfe955..c9a452d9512 100644 --- a/gcc/testsuite/g++.dg/cpp1y/vla2.C +++ b/gcc/testsuite/g++.dg/cpp1y/vla2.C @@ -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) { diff --git a/gcc/testsuite/g++.dg/cpp1y/vla3.C b/gcc/testsuite/g++.dg/cpp1y/vla3.C index 75470365a77..a3d8adb05c9 100644 --- a/gcc/testsuite/g++.dg/cpp1y/vla3.C +++ b/gcc/testsuite/g++.dg/cpp1y/vla3.C @@ -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 diff --git a/gcc/testsuite/g++.dg/cpp1y/vla4.C b/gcc/testsuite/g++.dg/cpp1y/vla4.C index 9de1d28fef1..29df98c7ce4 100644 --- a/gcc/testsuite/g++.dg/cpp1y/vla4.C +++ b/gcc/testsuite/g++.dg/cpp1y/vla4.C @@ -1,5 +1,5 @@ // Test for range-based for with VLAs. -// { dg-do run { target c++1y } } +// { dg-do run { target c++14 } } #include diff --git a/gcc/testsuite/g++.dg/cpp1y/vla5.C b/gcc/testsuite/g++.dg/cpp1y/vla5.C index 5f0dfdf3024..cc67a75b5dc 100644 --- a/gcc/testsuite/g++.dg/cpp1y/vla5.C +++ b/gcc/testsuite/g++.dg/cpp1y/vla5.C @@ -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]; diff --git a/gcc/testsuite/g++.dg/cpp1y/vla8.C b/gcc/testsuite/g++.dg/cpp1y/vla8.C index 5077ae343f9..2c821e14c46 100644 --- a/gcc/testsuite/g++.dg/cpp1y/vla8.C +++ b/gcc/testsuite/g++.dg/cpp1y/vla8.C @@ -1,5 +1,5 @@ // PR c++/55149 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } template struct SA diff --git a/gcc/testsuite/g++.dg/cpp1y/vla9.C b/gcc/testsuite/g++.dg/cpp1y/vla9.C index 5f49d11e913..eb58e1a01f8 100644 --- a/gcc/testsuite/g++.dg/cpp1y/vla9.C +++ b/gcc/testsuite/g++.dg/cpp1y/vla9.C @@ -1,5 +1,5 @@ // PR c++/57408 -// { dg-do compile { target c++1y } } +// { dg-do compile { target c++14 } } template struct Impl diff --git a/gcc/testsuite/g++.dg/cpp1z/cplusplus.C b/gcc/testsuite/g++.dg/cpp1z/cplusplus.C new file mode 100644 index 00000000000..e4b84fd6469 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1z/cplusplus.C @@ -0,0 +1,6 @@ +// { dg-do compile } +// { dg-options "-std=c++1z" } + +#if __cplusplus <= 201402L +#error "__cplusplus <= 201402L" +#endif diff --git a/gcc/testsuite/g++.dg/cpp1z/typename-tmpl-tmpl-parm-ped-neg.C b/gcc/testsuite/g++.dg/cpp1z/typename-tmpl-tmpl-parm-ped-neg.C index 48cb8ab0892..abd118b633a 100644 --- a/gcc/testsuite/g++.dg/cpp1z/typename-tmpl-tmpl-parm-ped-neg.C +++ b/gcc/testsuite/g++.dg/cpp1z/typename-tmpl-tmpl-parm-ped-neg.C @@ -1,4 +1,4 @@ -// { dg-do compile { target c++1y_down } } +// { dg-do compile { target c++14_down } } // { dg-options "-pedantic" } template diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/auto1.C b/gcc/testsuite/g++.dg/debug/dwarf2/auto1.C index aef29ee5d95..e38334bd23b 100644 --- a/gcc/testsuite/g++.dg/debug/dwarf2/auto1.C +++ b/gcc/testsuite/g++.dg/debug/dwarf2/auto1.C @@ -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 diff --git a/gcc/testsuite/g++.dg/ext/vector23.C b/gcc/testsuite/g++.dg/ext/vector23.C index 461d8a9e969..a50b2860e8b 100644 --- a/gcc/testsuite/g++.dg/ext/vector23.C +++ b/gcc/testsuite/g++.dg/ext/vector23.C @@ -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" } diff --git a/gcc/testsuite/g++.dg/ext/vla11.C b/gcc/testsuite/g++.dg/ext/vla11.C index e448be325fb..c283a187d01 100644 --- a/gcc/testsuite/g++.dg/ext/vla11.C +++ b/gcc/testsuite/g++.dg/ext/vla11.C @@ -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) { diff --git a/gcc/testsuite/g++.dg/system-binary-constants-1.C b/gcc/testsuite/g++.dg/system-binary-constants-1.C index fbf8bb2c96d..614f9265d41 100644 --- a/gcc/testsuite/g++.dg/system-binary-constants-1.C +++ b/gcc/testsuite/g++.dg/system-binary-constants-1.C @@ -14,5 +14,5 @@ foo (void) warning. */ return 23; #endif - return 0b1101; /* { dg-warning "binary constants are a C..1y feature or GCC extension" } */ + return 0b1101; /* { dg-warning "binary constants are a C..14 feature or GCC extension" } */ } diff --git a/gcc/testsuite/g++.dg/ubsan/cxx1y-vla.C b/gcc/testsuite/g++.dg/ubsan/cxx1y-vla.C index 7023c70cea0..c44ad787c96 100644 --- a/gcc/testsuite/g++.dg/ubsan/cxx1y-vla.C +++ b/gcc/testsuite/g++.dg/ubsan/cxx1y-vla.C @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-fsanitize=vla-bound -Wall -Wno-unused-variable -std=c++1y" } */ +/* { dg-options "-fsanitize=vla-bound -Wall -Wno-unused-variable -std=c++14" } */ /* { dg-shouldfail "ubsan" } */ int diff --git a/gcc/testsuite/g++.dg/warn/Wvla-2.C b/gcc/testsuite/g++.dg/warn/Wvla-2.C index df479d0b0bc..eacd2123754 100644 --- a/gcc/testsuite/g++.dg/warn/Wvla-2.C +++ b/gcc/testsuite/g++.dg/warn/Wvla-2.C @@ -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) diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 1c28c262d20..f96d78281b4 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -5683,7 +5683,7 @@ proc check_effective_target_c++ { } { } # Check whether the current active language standard supports the features -# of C++11/C++1y by checking for the presence of one of the -std +# of C++11/C++14 by checking for the presence of one of the -std # flags. This assumes that the default for the compiler is C++98, and that # there will never be multiple -std= arguments on the command line. proc check_effective_target_c++11_only { } { @@ -5696,28 +5696,29 @@ proc check_effective_target_c++11 { } { if [check_effective_target_c++11_only] { return 1 } - return [check_effective_target_c++1y] + return [check_effective_target_c++14] } proc check_effective_target_c++11_down { } { if ![check_effective_target_c++] { return 0 } - return ![check_effective_target_c++1y] + return ![check_effective_target_c++14] } -proc check_effective_target_c++1y_only { } { +proc check_effective_target_c++14_only { } { if ![check_effective_target_c++] { return 0 } return [check-flags { { } { } { -std=c++1y -std=gnu++1y -std=c++14 -std=gnu++14 } }] } -proc check_effective_target_c++1y { } { - if [check_effective_target_c++1y_only] { + +proc check_effective_target_c++14 { } { + if [check_effective_target_c++14_only] { return 1 } return [check_effective_target_c++1z] } -proc check_effective_target_c++1y_down { } { +proc check_effective_target_c++14_down { } { if ![check_effective_target_c++] { return 0 } diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 89c840658f0..1b4e31d6be2 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,14 @@ +2014-08-23 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. + * expr.c (cpp_classify_number): Change C++1y to C++14 in binary + constants error message. + 2014-08-20 Marek Polacek * include/cpplib.h (cpp_options): Use signed char. diff --git a/libcpp/expr.c b/libcpp/expr.c index 147bd97c5ec..07f1b2fb419 100644 --- a/libcpp/expr.c +++ b/libcpp/expr.c @@ -687,7 +687,7 @@ cpp_classify_number (cpp_reader *pfile, const cpp_token *token, && CPP_PEDANTIC (pfile)) cpp_error_with_line (pfile, CPP_DL_PEDWARN, virtual_location, 0, CPP_OPTION (pfile, cplusplus) - ? "binary constants are a C++1y feature " + ? "binary constants are a C++14 feature " "or GCC extension" : "binary constants are a GCC extension"); diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h index 9f87ff8b514..28fc0f8965f 100644 --- a/libcpp/include/cpplib.h +++ b/libcpp/include/cpplib.h @@ -166,7 +166,7 @@ enum cpp_ttype 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 { diff --git a/libcpp/init.c b/libcpp/init.c index b80951544d4..0d2f73718be 100644 --- a/libcpp/init.c +++ b/libcpp/init.c @@ -90,26 +90,29 @@ struct lang_flags 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_set_lang (cpp_reader *pfile, enum c_lang lang) 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_set_lang (cpp_reader *pfile, enum c_lang lang) 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 @@ cpp_init_builtins (cpp_reader *pfile, int hosted) 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"); @@ -509,7 +515,9 @@ cpp_init_builtins (cpp_reader *pfile, int hosted) _cpp_define_builtin (pfile, "__STDC_VERSION__ 199901L"); if (CPP_OPTION (pfile, uliterals) - && !CPP_OPTION (pfile, cplusplus)) + && !(CPP_OPTION (pfile, cplusplus) + && (CPP_OPTION (pfile, lang) == CLK_GNUCXX + || CPP_OPTION (pfile, lang) == CLK_CXX98))) { _cpp_define_builtin (pfile, "__STDC_UTF_16__ 1"); _cpp_define_builtin (pfile, "__STDC_UTF_32__ 1"); -- cgit v1.2.1