diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b6502ec3727..a84ea4950d1 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,6 +1,13 @@ 2017-12-15 Jakub Jelinek Backported from mainline + 2017-11-23 Jakub Jelinek + + * 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 PR c++/82781 diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index d2904e920b8..b060ac8dcd1 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -37253,7 +37253,7 @@ cp_parser_omp_declare_reduction (cp_parser *parser, cp_token *pragma_tok, initializer-clause[opt] new-line #pragma omp declare target new-line */ -static void +static bool cp_parser_omp_declare (cp_parser *parser, cp_token *pragma_tok, 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_parser_omp_declare_simd (parser, pragma_tok, context); - return; + return true; } cp_ensure_no_omp_declare_simd (parser); 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_parser_omp_declare_reduction (parser, pragma_tok, context); - return; + return false; } if (!flag_openmp) /* flag_openmp_simd */ { cp_parser_skip_to_pragma_eol (parser, pragma_tok); - return; + return false; } if (strcmp (p, "target") == 0) { cp_lexer_consume_token (parser->lexer); cp_parser_omp_declare_target (parser, pragma_tok); - return; + return false; } } cp_parser_error (parser, "expected % or % " "or %"); cp_parser_require_pragma_eol (parser, pragma_tok); + return false; } /* OpenMP 4.5: @@ -38211,8 +38212,7 @@ cp_parser_pragma (cp_parser *parser, enum pragma_context context, bool *if_p) return false; case PRAGMA_OMP_DECLARE: - cp_parser_omp_declare (parser, pragma_tok, context); - return false; + return cp_parser_omp_declare (parser, pragma_tok, context); case PRAGMA_OACC_DECLARE: cp_parser_oacc_declare (parser, pragma_tok);