Commit e84abfa4 by Paolo Carlini Committed by Paolo Carlini

re PR c++/60211 (ICE with #pragma GCC ivdep and for-loop on global scope)

/cp
2015-02-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/60211
	* parser.c (cp_parser_pragma): Diagnose PRAGMA_IVDEP at
	pragma_external context.

/testsuite
2015-02-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/60211
	* g++.dg/parse/ivdep-2.C: New.
	* g++.dg/parse/ivdep-3.C: Likewise.

From-SVN: r220689
parent d1ae5966
2015-02-13 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/60211
* parser.c (cp_parser_pragma): Diagnose PRAGMA_IVDEP at
pragma_external context.
2015-02-13 Jason Merrill <jason@redhat.com>
PR c++/65051
......
......@@ -33060,6 +33060,12 @@ cp_parser_pragma (cp_parser *parser, enum pragma_context context)
case PRAGMA_IVDEP:
{
if (context == pragma_external)
{
error_at (pragma_tok->location,
"%<#pragma GCC ivdep%> must be inside a function");
break;
}
cp_parser_skip_to_pragma_eol (parser, pragma_tok);
cp_token *tok;
tok = cp_lexer_peek_token (the_parser->lexer);
......
2015-02-13 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/60211
* g++.dg/parse/ivdep-2.C: New.
* g++.dg/parse/ivdep-3.C: Likewise.
2015-02-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/64506
......
// PR c++/60211
void foo()
{}
int i;
#pragma GCC ivdep // { dg-error "must be inside a function" }
for (i = 0; i < 2; ++i) // { dg-error "expected|type" }
;
} // { dg-error "expected" }
// PR c++/60211
void foo()
{}
#pragma GCC ivdep // { dg-error "must be inside a function" }
for (int i = 0; i < 2; ++i) // { dg-error "expected|type" }
;
} // { dg-error "expected" }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment