From ffea5536df746f1863a67306dcd5df98a61a4595 Mon Sep 17 00:00:00 2001 From: Ville Voutilainen Date: Sat, 31 Oct 2015 21:42:01 +0200 Subject: [PATCH] Remove support for N3994, terse range-for, which was not adopted. /cp 2015-10-31 Ville Voutilainen Remove the implementation of N3994, terse range-for loops. * parser.c (cp_parser_for_init_statement): Remove the parsing of a terse range-for. /testsuite 2015-10-31 Ville Voutilainen Remove the implementation of N3994, terse range-for loops. * g++.dg/cpp1z/range-for1.C: Remove. From-SVN: r229632 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/parser.c | 16 ---------------- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/cpp1z/range-for1.C | 12 ------------ 4 files changed, 11 insertions(+), 28 deletions(-) delete mode 100644 gcc/testsuite/g++.dg/cpp1z/range-for1.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index d283cbe5f3a..ad7087ee58c 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2015-10-31 Ville Voutilainen + + Remove the implementation of N3994, terse range-for loops. + * parser.c (cp_parser_for_init_statement): Remove the parsing + of a terse range-for. + 2015-10-31 Jason Merrill Implement multiple 'auto' feature from Concepts TS. diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 19e306df4ba..24cb47faf4a 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -11279,22 +11279,6 @@ cp_parser_for_init_statement (cp_parser* parser, tree *decl) bool is_range_for = false; bool saved_colon_corrects_to_scope_p = parser->colon_corrects_to_scope_p; - if (cp_lexer_next_token_is (parser->lexer, CPP_NAME) - && cp_lexer_nth_token_is (parser->lexer, 2, CPP_COLON)) - { - /* N3994 -- for (id : init) ... */ - if (cxx_dialect < cxx1z) - pedwarn (input_location, 0, "range-based for loop without a " - "type-specifier only available with " - "-std=c++1z or -std=gnu++1z"); - tree name = cp_parser_identifier (parser); - tree type = cp_build_reference_type (make_auto (), /*rval*/true); - *decl = build_decl (input_location, VAR_DECL, name, type); - pushdecl (*decl); - cp_lexer_consume_token (parser->lexer); - return true; - } - /* A colon is used in range-based for. */ parser->colon_corrects_to_scope_p = false; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d6956cf95ff..0034ef2a30c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-10-31 Ville Voutilainen + + Remove the implementation of N3994, terse range-for loops. + * g++.dg/cpp1z/range-for1.C: Remove. + 2015-10-31 Eric Botcazou * gnat.dg/discr45.adb: New test. diff --git a/gcc/testsuite/g++.dg/cpp1z/range-for1.C b/gcc/testsuite/g++.dg/cpp1z/range-for1.C deleted file mode 100644 index 7e6d05580c8..00000000000 --- a/gcc/testsuite/g++.dg/cpp1z/range-for1.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options "-std=c++1z -pedantic-errors" } - -extern "C" int printf (const char *, ...); -#include - -int main() -{ - for (i : {1,2}) - { - printf ("%d ", i); - } -} -- 2.30.2