[flang-commits] [flang] 581b654 - [flang][OpenMP] Add semantics test: named COMMON + member with firstprivate+lastprivate is valid (#162234)

via flang-commits flang-commits at lists.llvm.org
Thu Oct 16 08:31:12 PDT 2025


Author: Krish Gupta
Date: 2025-10-16T16:31:09+01:00
New Revision: 581b654f4005a5fd1389dc93fd97be03a5329edf

URL: https://github.com/llvm/llvm-project/commit/581b654f4005a5fd1389dc93fd97be03a5329edf
DIFF: https://github.com/llvm/llvm-project/commit/581b654f4005a5fd1389dc93fd97be03a5329edf.diff

LOG: [flang][OpenMP] Add semantics test: named COMMON + member with firstprivate+lastprivate is valid (#162234)

This adds a positive semantics test showing that:

- A named COMMON block in a clause is equivalent to listing all explicit
members.
- The same list item may appear in both firstprivate and lastprivate on
the same construct.

The reporter example in #162033 therefore conforms to OpenMP and Flang
is correct to accept it. This test documents and locks in that behavior
to avoid regressions.
<img width="1606" height="350" alt="image"
src="https://github.com/user-attachments/assets/0b464c58-b9cc-43e0-8d1f-1c5a5b993bf6"
/>

Co-authored-by: Krish Gupta <krishgupta at Krishs-MacBook-Air.local>

Added: 
    flang/test/Semantics/OpenMP/omp-common-fp-lp.f90

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/flang/test/Semantics/OpenMP/omp-common-fp-lp.f90 b/flang/test/Semantics/OpenMP/omp-common-fp-lp.f90
new file mode 100644
index 0000000000000..c995aa2c83503
--- /dev/null
+++ b/flang/test/Semantics/OpenMP/omp-common-fp-lp.f90
@@ -0,0 +1,20 @@
+! RUN: %flang_fc1 -fopenmp -fopenmp-version=51 -fsyntax-only %s 2>&1 | FileCheck %s --allow-empty
+! CHECK-NOT: error:
+
+! Regression test for issue #162033.
+! Verify that a named COMMON block can appear in a data-sharing clause together
+! with one of its members in another clause on the same construct. This is valid
+! in OpenMP >= 5.1 because:
+!  - A named COMMON in a clause is equivalent to listing all its explicit members
+!  - A list item may appear in both FIRSTPRIVATE and LASTPRIVATE on the same directive
+! OpenMP 5.0 explicitly forbade this combination.
+
+subroutine sub1()
+  common /com/ j
+  j = 10
+!$omp parallel do firstprivate(j) lastprivate(/com/)
+  do i = 1, 10
+     j = j + 1
+  end do
+!$omp end parallel do
+end


        


More information about the flang-commits mailing list