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