[flang-commits] [flang] [flang][OpenACC] Fix false DEFAULT(NONE) error for named DO loop construct names (PR #189204)
via flang-commits
flang-commits at lists.llvm.org
Sat Mar 28 21:19:42 PDT 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-openacc
@llvm/pr-subscribers-flang-semantics
Author: Eugene Epshteyn (eugeneepshteyn)
<details>
<summary>Changes</summary>
In OpenACC semantic checking filter out symbols with MiscDetails, which include construct names, scope names, complex part designators, type parameter inquiries, etc.
---
Full diff: https://github.com/llvm/llvm-project/pull/189204.diff
2 Files Affected:
- (modified) flang/lib/Semantics/resolve-directives.cpp (+1-1)
- (modified) flang/test/Semantics/OpenACC/acc-parallel.f90 (+7)
``````````diff
diff --git a/flang/lib/Semantics/resolve-directives.cpp b/flang/lib/Semantics/resolve-directives.cpp
index d5cfcabc319ab..fb241d2606b47 100644
--- a/flang/lib/Semantics/resolve-directives.cpp
+++ b/flang/lib/Semantics/resolve-directives.cpp
@@ -1833,7 +1833,7 @@ void AccAttributeVisitor::Post(const parser::Name &name) {
const Symbol &symbol{name.symbol->GetUltimate()};
if (!symbol.owner().IsDerivedType() && !symbol.has<ProcEntityDetails>() &&
!symbol.has<SubprogramDetails>() && !IsObjectWithVisibleDSA(symbol) &&
- !symbol.has<AssocEntityDetails>()) {
+ !symbol.has<AssocEntityDetails>() && !symbol.has<MiscDetails>()) {
if (Symbol * found{currScope().FindSymbol(name.source)}) {
if (&symbol != found) {
// adjust the symbol within the region
diff --git a/flang/test/Semantics/OpenACC/acc-parallel.f90 b/flang/test/Semantics/OpenACC/acc-parallel.f90
index b3120e63ff6a1..a5a8890b63ff4 100644
--- a/flang/test/Semantics/OpenACC/acc-parallel.f90
+++ b/flang/test/Semantics/OpenACC/acc-parallel.f90
@@ -221,4 +221,11 @@ subroutine acc_parallel_default_none
end do
!$acc end parallel
!$acc end data
+
+ ! Named DO loop construct name should not be flagged by default(none).
+ !$acc parallel loop firstprivate(l) copyin(a) default(none)
+ outer: do i = 1, l
+ a(1,i) = 1
+ end do outer
+ !$acc end parallel
end subroutine acc_parallel_default_none
``````````
</details>
https://github.com/llvm/llvm-project/pull/189204
More information about the flang-commits
mailing list