https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102413
--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:0d39eb28fd2ab00306bd7c0a87b6c0ed615b5d12 commit r12-3831-g0d39eb28fd2ab00306bd7c0a87b6c0ed615b5d12 Author: Jakub Jelinek <ja...@redhat.com> Date: Thu Sep 23 10:07:49 2021 +0200 openmp: Diagnose omp::directive attribute without balanced token argument [PR102413] If omp::directive attribute argument starting with the opening ( is not a balanced token sequence, then cp_parser_skip_balanced_tokens (parser, 1) returns 1, but the code was subtracting 2 from it and iterating until it was 0, so for the non-balanced case it iterated from (size_t) -1 down to 0. The following patch just diagnoses that as an error. 2021-09-23 Jakub Jelinek <ja...@redhat.com> PR c++/102413 * parser.c (cp_parser_omp_directive_args): Diagnose if omp::directive is not followed by a balanced token sequence starting with open paren. * g++.dg/gomp/attrs-14.C: New test.