https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120518

            Bug ID: 120518
           Summary: nvptx offloading: "OpenMP: Handle more cases in
                    user/condition selector" regresses C++
                    'c-c++-common/gomp/metadirective-target-device-2.c'
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Keywords: openmp, testsuite-fail
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tschwinge at gcc dot gnu.org
                CC: burnus at gcc dot gnu.org, jakub at gcc dot gnu.org,
                    sandra at gcc dot gnu.org
  Target Milestone: ---
            Target: nvptx

In a nvptx offloading configuration (have not yet tested GCN offloading), the
recent commit r16-1044-g08c299a410b9314957e48a87f5bf50a4c034b744 "OpenMP:
Handle more cases in user/condition selector" causes:

    @@ -50266,8 +50266,8 @@ PASS:
c-c++-common/gomp/metadirective-target-device-2.c  -std=c++17  scan-tree-d
    PASS: c-c++-common/gomp/metadirective-target-device-2.c  -std=c++17 
scan-tree-dump optimized "f8 match failed"
    PASS: c-c++-common/gomp/metadirective-target-device-2.c  -std=c++17 
scan-tree-dump-not optimized "f2 match failed"
    PASS: c-c++-common/gomp/metadirective-target-device-2.c  -std=c++17 
scan-tree-dump-not optimized "f3 match failed"
    [-PASS:-]{+FAIL:+} c-c++-common/gomp/metadirective-target-device-2.c 
-std=c++17  scan-tree-dump-not optimized "f6 match failed"
    [-PASS:-]{+FAIL:+} c-c++-common/gomp/metadirective-target-device-2.c 
-std=c++17  scan-tree-dump-not optimized "f7 match failed"
    PASS: c-c++-common/gomp/metadirective-target-device-2.c  -std=c++17 (test
for excess errors)

Etc. -- but for C++ only, not for C.

The before vs. after 'diff' of 'metadirective-target-device-2.c.271t.optimized'
includes:

     void f6 (int n, double * a, double s)
     {
    [...]
    +  GOMP_error ("f6 match failed", 18446744073709551615);
    [...]
     }

..., and:

     void f7 (int n, double * a, double s)
     {
    [...]
    +  GOMP_error ("f7 match failed", 18446744073709551615);
    [...]
     }

Reply via email to