From cb017fd1b4fb0b6b93f6b1cff3c7f36d80b33c48 Mon Sep 17 00:00:00 2001 From: Eugene Epshteyn Date: Sun, 29 Mar 2026 15:49:44 -0400 Subject: [PATCH] [flang][OpenACC] Fix false DEFAULT(NONE) error for named DO loop construct names (#189204) In OpenACC semantic checking filter out symbols with MiscDetails, which include construct names, scope names, complex part designators, type parameter inquiries, etc. --- flang/lib/Semantics/resolve-directives.cpp | 2 +- flang/test/Semantics/OpenACC/acc-parallel.f90 | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/flang/lib/Semantics/resolve-directives.cpp b/flang/lib/Semantics/resolve-directives.cpp index d5cfcabc319a..fb241d2606b4 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() && !symbol.has() && !IsObjectWithVisibleDSA(symbol) && - !symbol.has()) { + !symbol.has() && !symbol.has()) { 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 b3120e63ff6a..a5a8890b63ff 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