aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/parser.cc
diff options
context:
space:
mode:
authorTobias Burnus <tburnus@baylibre.com>2025-06-02 08:11:59 +0200
committerTobias Burnus <tburnus@baylibre.com>2025-06-02 08:11:59 +0200
commit3f67be6a45634add47d777dcd7a5f95ed313adee (patch)
tree2eba31d048f332192bda02e6d28d363f873c3f37 /gcc/cp/parser.cc
parentfbde111a3466f3870d00a574700fbb87c56d6c42 (diff)
parent21e0a742e7b70dcb9d8bed87a7d1b1b77b48b364 (diff)
downloadgcc-devel/omp/gcc-15.zip
gcc-devel/omp/gcc-15.tar.gz
gcc-devel/omp/gcc-15.tar.bz2
Merge branch 'releases/gcc-15' into devel/omp/gcc-15devel/omp/gcc-15
Merge up to r15-9755-g21e0a742e7b70d (2nd July 2025)
Diffstat (limited to 'gcc/cp/parser.cc')
-rw-r--r--gcc/cp/parser.cc16
1 files changed, 5 insertions, 11 deletions
diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc
index be86252..9c1d976 100644
--- a/gcc/cp/parser.cc
+++ b/gcc/cp/parser.cc
@@ -53390,7 +53390,6 @@ cp_parser_omp_metadirective (cp_parser *parser, cp_token *pragma_tok,
{
error_at (match_loc, "too many %<otherwise%> or %<default%> "
"clauses in %<metadirective%>");
- cp_parser_skip_to_end_of_block_or_statement (parser, true);
goto fail;
}
else
@@ -53400,14 +53399,12 @@ cp_parser_omp_metadirective (cp_parser *parser, cp_token *pragma_tok,
{
error_at (match_loc, "%<otherwise%> or %<default%> clause "
"must appear last in %<metadirective%>");
- cp_parser_skip_to_end_of_block_or_statement (parser, true);
goto fail;
}
if (!default_p && strcmp (p, "when") != 0)
{
error_at (match_loc, "%qs is not valid for %qs",
p, "metadirective");
- cp_parser_skip_to_end_of_block_or_statement (parser, true);
goto fail;
}
@@ -53476,7 +53473,6 @@ cp_parser_omp_metadirective (cp_parser *parser, cp_token *pragma_tok,
if (i == 0)
{
error_at (loc, "expected directive name");
- cp_parser_skip_to_end_of_block_or_statement (parser, true);
goto fail;
}
@@ -53549,7 +53545,10 @@ cp_parser_omp_metadirective (cp_parser *parser, cp_token *pragma_tok,
goto add;
case CPP_CLOSE_PAREN:
if (nesting_depth-- == 0)
- break;
+ {
+ cp_lexer_consume_token (parser->lexer);
+ break;
+ }
goto add;
default:
add:
@@ -53561,8 +53560,6 @@ cp_parser_omp_metadirective (cp_parser *parser, cp_token *pragma_tok,
break;
}
- cp_lexer_consume_token (parser->lexer);
-
if (!skip)
{
cp_token eol_token = {};
@@ -53694,11 +53691,8 @@ cp_parser_omp_metadirective (cp_parser *parser, cp_token *pragma_tok,
return;
fail:
- /* Skip the metadirective pragma. */
+ /* Skip the metadirective pragma. Do not skip the metadirective body. */
cp_parser_skip_to_pragma_eol (parser, pragma_tok);
-
- /* Skip the metadirective body. */
- cp_parser_skip_to_end_of_block_or_statement (parser, true);
}