backport: parser.c (cp_parser_omp_declare): Change return type to bool from void, return true for declare simd.

Backported from mainline
	2017-11-23  Jakub Jelinek  <jakub@redhat.com>

	* parser.c (cp_parser_omp_declare): Change return type to bool from
	void, return true for declare simd.
	(cp_parser_pragma): Return cp_parser_omp_declare returned value
	rather than always false.

From-SVN: r255713
This commit is contained in:
Jakub Jelinek 2017-12-15 22:56:21 +01:00 committed by Jakub Jelinek
parent 29d1342c4b
commit 7c11fb2820
2 changed files with 14 additions and 7 deletions

View File

@ -1,6 +1,13 @@
2017-12-15 Jakub Jelinek <jakub@redhat.com> 2017-12-15 Jakub Jelinek <jakub@redhat.com>
Backported from mainline Backported from mainline
2017-11-23 Jakub Jelinek <jakub@redhat.com>
* parser.c (cp_parser_omp_declare): Change return type to bool from
void, return true for declare simd.
(cp_parser_pragma): Return cp_parser_omp_declare returned value
rather than always false.
2017-11-20 Jakub Jelinek <jakub@redhat.com> 2017-11-20 Jakub Jelinek <jakub@redhat.com>
PR c++/82781 PR c++/82781

View File

@ -37253,7 +37253,7 @@ cp_parser_omp_declare_reduction (cp_parser *parser, cp_token *pragma_tok,
initializer-clause[opt] new-line initializer-clause[opt] new-line
#pragma omp declare target new-line */ #pragma omp declare target new-line */
static void static bool
cp_parser_omp_declare (cp_parser *parser, cp_token *pragma_tok, cp_parser_omp_declare (cp_parser *parser, cp_token *pragma_tok,
enum pragma_context context) enum pragma_context context)
{ {
@ -37267,7 +37267,7 @@ cp_parser_omp_declare (cp_parser *parser, cp_token *pragma_tok,
cp_lexer_consume_token (parser->lexer); cp_lexer_consume_token (parser->lexer);
cp_parser_omp_declare_simd (parser, pragma_tok, cp_parser_omp_declare_simd (parser, pragma_tok,
context); context);
return; return true;
} }
cp_ensure_no_omp_declare_simd (parser); cp_ensure_no_omp_declare_simd (parser);
if (strcmp (p, "reduction") == 0) if (strcmp (p, "reduction") == 0)
@ -37275,23 +37275,24 @@ cp_parser_omp_declare (cp_parser *parser, cp_token *pragma_tok,
cp_lexer_consume_token (parser->lexer); cp_lexer_consume_token (parser->lexer);
cp_parser_omp_declare_reduction (parser, pragma_tok, cp_parser_omp_declare_reduction (parser, pragma_tok,
context); context);
return; return false;
} }
if (!flag_openmp) /* flag_openmp_simd */ if (!flag_openmp) /* flag_openmp_simd */
{ {
cp_parser_skip_to_pragma_eol (parser, pragma_tok); cp_parser_skip_to_pragma_eol (parser, pragma_tok);
return; return false;
} }
if (strcmp (p, "target") == 0) if (strcmp (p, "target") == 0)
{ {
cp_lexer_consume_token (parser->lexer); cp_lexer_consume_token (parser->lexer);
cp_parser_omp_declare_target (parser, pragma_tok); cp_parser_omp_declare_target (parser, pragma_tok);
return; return false;
} }
} }
cp_parser_error (parser, "expected %<simd%> or %<reduction%> " cp_parser_error (parser, "expected %<simd%> or %<reduction%> "
"or %<target%>"); "or %<target%>");
cp_parser_require_pragma_eol (parser, pragma_tok); cp_parser_require_pragma_eol (parser, pragma_tok);
return false;
} }
/* OpenMP 4.5: /* OpenMP 4.5:
@ -38211,8 +38212,7 @@ cp_parser_pragma (cp_parser *parser, enum pragma_context context, bool *if_p)
return false; return false;
case PRAGMA_OMP_DECLARE: case PRAGMA_OMP_DECLARE:
cp_parser_omp_declare (parser, pragma_tok, context); return cp_parser_omp_declare (parser, pragma_tok, context);
return false;
case PRAGMA_OACC_DECLARE: case PRAGMA_OACC_DECLARE:
cp_parser_oacc_declare (parser, pragma_tok); cp_parser_oacc_declare (parser, pragma_tok);