aboutsummaryrefslogtreecommitdiff
path: root/gcc/c/c-parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/c/c-parser.c')
-rw-r--r--gcc/c/c-parser.c40
1 files changed, 20 insertions, 20 deletions
diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c
index 5cc3892..024dbd2 100644
--- a/gcc/c/c-parser.c
+++ b/gcc/c/c-parser.c
@@ -991,24 +991,24 @@ c_parser_skip_to_end_of_parameter (c_parser *parser)
end of line marker. */
static void
-c_parser_skip_to_pragma_eol (c_parser *parser)
+c_parser_skip_to_pragma_eol (c_parser *parser, bool error_if_not_eol = true)
{
gcc_assert (parser->in_pragma);
parser->in_pragma = false;
- if (!c_parser_require (parser, CPP_PRAGMA_EOL, "expected end of line"))
- while (true)
- {
- c_token *token = c_parser_peek_token (parser);
- if (token->type == CPP_EOF)
- break;
- if (token->type == CPP_PRAGMA_EOL)
- {
- c_parser_consume_token (parser);
- break;
- }
- c_parser_consume_token (parser);
- }
+ if (error_if_not_eol && c_parser_peek_token (parser)->type != CPP_PRAGMA_EOL)
+ c_parser_error (parser, "expected end of line");
+
+ cpp_ttype token_type;
+ do
+ {
+ c_token *token = c_parser_peek_token (parser);
+ token_type = token->type;
+ if (token_type == CPP_EOF)
+ break;
+ c_parser_consume_token (parser);
+ }
+ while (token_type != CPP_PRAGMA_EOL);
parser->error = false;
}
@@ -13223,7 +13223,7 @@ c_parser_omp_for (location_t loc, c_parser *parser,
}
if (!flag_openmp) /* flag_openmp_simd */
{
- c_parser_skip_to_pragma_eol (parser);
+ c_parser_skip_to_pragma_eol (parser, false);
return NULL_TREE;
}
@@ -13448,7 +13448,7 @@ c_parser_omp_parallel (location_t loc, c_parser *parser,
}
else if (!flag_openmp) /* flag_openmp_simd */
{
- c_parser_skip_to_pragma_eol (parser);
+ c_parser_skip_to_pragma_eol (parser, false);
return NULL_TREE;
}
else if (c_parser_next_token_is (parser, CPP_NAME))
@@ -13708,7 +13708,7 @@ c_parser_omp_distribute (location_t loc, c_parser *parser,
}
if (!flag_openmp) /* flag_openmp_simd */
{
- c_parser_skip_to_pragma_eol (parser);
+ c_parser_skip_to_pragma_eol (parser, false);
return NULL_TREE;
}
@@ -13776,7 +13776,7 @@ c_parser_omp_teams (location_t loc, c_parser *parser,
}
if (!flag_openmp) /* flag_openmp_simd */
{
- c_parser_skip_to_pragma_eol (parser);
+ c_parser_skip_to_pragma_eol (parser, false);
return NULL_TREE;
}
@@ -13921,7 +13921,7 @@ c_parser_omp_target (c_parser *parser, enum pragma_context context)
}
else if (!flag_openmp) /* flag_openmp_simd */
{
- c_parser_skip_to_pragma_eol (parser);
+ c_parser_skip_to_pragma_eol (parser, false);
return false;
}
else if (strcmp (p, "data") == 0)
@@ -14604,7 +14604,7 @@ c_parser_omp_declare (c_parser *parser, enum pragma_context context)
}
if (!flag_openmp) /* flag_openmp_simd */
{
- c_parser_skip_to_pragma_eol (parser);
+ c_parser_skip_to_pragma_eol (parser, false);
return;
}
if (strcmp (p, "target") == 0)