From: Jason Merrill Date: Thu, 26 Jun 2014 18:15:42 +0000 (-0400) Subject: parser.c (cp_parser_for_init_statement): Change range-for error to pedwarn. X-Git-Tag: releases/gcc-5.1.0~6631 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7fb3df5ef09e0da3963aa888584f6f7524e13b07;p=thirdparty%2Fgcc.git parser.c (cp_parser_for_init_statement): Change range-for error to pedwarn. * parser.c (cp_parser_for_init_statement): Change range-for error to pedwarn. From-SVN: r212044 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 669e7144f686..6fbd27afd501 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2014-06-26 Jason Merrill + * parser.c (cp_parser_for_init_statement): Change range-for error + to pedwarn. + N3994 Ranged-based for-loops: The Next Generation * parser.c (cp_lexer_nth_token_is): New. (cp_parser_for_init_statement): Allow "for (id : init)". diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 426dca439de4..a7edd4181ae1 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -10647,9 +10647,9 @@ cp_parser_for_init_statement (cp_parser* parser, tree *decl) is_range_for = true; if (cxx_dialect < cxx11) { - error_at (cp_lexer_peek_token (parser->lexer)->location, - "range-based % loops are not allowed " - "in C++98 mode"); + pedwarn (cp_lexer_peek_token (parser->lexer)->location, 0, + "range-based % loops only available with " + "-std=c++11 or -std=gnu++11"); *decl = error_mark_node; } } diff --git a/gcc/testsuite/g++.dg/cpp0x/range-for9.C b/gcc/testsuite/g++.dg/cpp0x/range-for9.C index c51cbf994698..6a50ec36c141 100644 --- a/gcc/testsuite/g++.dg/cpp0x/range-for9.C +++ b/gcc/testsuite/g++.dg/cpp0x/range-for9.C @@ -1,7 +1,6 @@ // Test for range-based for loop error in C++98 mode -// { dg-do compile } -// { dg-options "-std=c++98" } +// { dg-do compile { target { ! c++11 } } } void test() {