]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
OpenMP/C++: Fix label mangling in metadirective body [PR122378]
authorPaul-Antoine Arras <parras@baylibre.com>
Fri, 24 Oct 2025 09:05:27 +0000 (11:05 +0200)
committerPaul-Antoine Arras <parras@baylibre.com>
Tue, 28 Oct 2025 09:57:34 +0000 (10:57 +0100)
Testcase c-c++-common/gomp/attrs-metadirective-2.c failed in C++ when
OFFLOAD_TARGET_NAMES=nvptx-none. That was caused by label mangling being applied
to the use but not to the declaration.
This is now fixed by mangling the declaration as well.

PR c++/122378

gcc/cp/ChangeLog:

* parser.cc (cp_parser_label_declaration): Mangle label declaration in a
metadirective region.

(cherry picked from commit d9f720f2ce39b56e91209c0283049f8e0ae8e7fc)

gcc/cp/parser.cc

index da65d4e4fcc29bd51ef58df487da090fe9254fe2..9cd5d7cb27ff0f415d260f7629d0de3b859f93ee 100644 (file)
@@ -32369,6 +32369,8 @@ cp_parser_label_declaration (cp_parser* parser)
       /* If we failed, stop.  */
       if (identifier == error_mark_node)
        break;
+      if (parser->omp_metadirective_state)
+       identifier = mangle_metadirective_region_label (parser, identifier);
       /* Declare it as a label.  */
       finish_label_decl (identifier);
       /* If the next token is a `;', stop.  */