[Bug c++/126709] [17 Regression] bad-array-section-10.C FAILs

"burnus at gcc dot gnu.org via Gcc-bugs" <[email protected]>
Newsgroups gmane.comp.gcc.bugs
Message-ID <[email protected]/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126709

--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> ---
commit r17-2994-gc1377cb693d79838e8ea5ea9aaabff45b39c6fd0
    Revert "OpenMP/OpenACC tests. vs C++26"    
    This reverts commit r16-5330-gedc821b60ce94b8ddb5d0b9ccdb9a0a4691371c7.

does

-#pragma omp target map(arr1[4,C: ])
+#pragma omp target map(arr1[4,C:])
 // { dg-warning "top-level comma expression in array subscript is deprecated"
"" { target c++20_only } .-1 }
 // { dg-error "cannot use multidimensional subscript in OpenMP array section"
"" { target c++23 } .-2 }

The problem here is that ':]' is consumed before skipping the following
']'/':]' via cp_parser_skip_to_closing_square_bracket.


Thus, we could either add another 'dg-error' line - or do the following, which
only affects this testcase. I am not sure what's better.

--- a/gcc/cp/parser.cc
+++ b/gcc/cp/parser.cc
@@ -9466,2 +9466,2 @@ post_colon_parsing:
-      if (!open_splice)
+      if (!open_splice && (!close_splice || index != error_mark_node))
        cp_lexer_consume_token (parser->lexer);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.