diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/parser.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/parse/pr96258.C | 5 |
2 files changed, 7 insertions, 4 deletions
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 592ce95..7ec7d42 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -13497,10 +13497,8 @@ cp_parser_declaration (cp_parser* parser) /* Try to figure out what kind of declaration is present. */ cp_token *token1 = cp_lexer_peek_token (parser->lexer); - cp_token *token2 = NULL; - - if (token1->type != CPP_EOF) - token2 = cp_lexer_peek_nth_token (parser->lexer, 2); + cp_token *token2 = (token1->type == CPP_EOF + ? token1 : cp_lexer_peek_nth_token (parser->lexer, 2)); /* Get the high-water mark for the DECLARATOR_OBSTACK. */ void *p = obstack_alloc (&declarator_obstack, 0); diff --git a/gcc/testsuite/g++.dg/parse/pr96258.C b/gcc/testsuite/g++.dg/parse/pr96258.C new file mode 100644 index 0000000..1b642e1 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/pr96258.C @@ -0,0 +1,5 @@ +// { dg-additional-options -fopenmp } +// { dg-require-effective-target fopenmp } +#pragma omp declare simd // { dg-error "not immediately followed by" } + +// { dg-error "-:expected unqualified-id" "" { target *-*-* } .+1 } |