[flang-commits] [flang] a9782fe - [flang] Correct IsHostAssociated() to be true for BLOCK constructs

Peter Klausler via flang-commits flang-commits at lists.llvm.org
Sat Jul 23 10:47:04 PDT 2022


Author: Peter Klausler
Date: 2022-07-23T10:46:54-07:00
New Revision: a9782fead3205fbcd8512acc057820e4235d8131

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

LOG: [flang] Correct IsHostAssociated() to be true for BLOCK constructs

The predicate IsHostAssocited() was implemented in a way that would
return true only for cases of host association into a module or inner
subprogram.  Technically, the use of a name in a BLOCK construct
that is not declared therein is considered in the Fortran standard
to also be a form of host association, and this matters when doing
error checking on DATA statements.

Differential Revision: https://reviews.llvm.org/D130388

Added: 
    

Modified: 
    flang/include/flang/Semantics/scope.h
    flang/include/flang/Semantics/tools.h
    flang/lib/Semantics/data-to-inits.cpp
    flang/lib/Semantics/resolve-names.cpp
    flang/lib/Semantics/tools.cpp
    flang/test/Semantics/OpenACC/acc-symbols01.f90
    flang/test/Semantics/OpenMP/omp-do-schedule03.f90
    flang/test/Semantics/OpenMP/omp-do-schedule04.f90
    flang/test/Semantics/OpenMP/omp-do01-positivecase.f90
    flang/test/Semantics/OpenMP/omp-do04-positivecase.f90
    flang/test/Semantics/OpenMP/omp-do05-positivecase.f90
    flang/test/Semantics/OpenMP/omp-do06-positivecases.f90
    flang/test/Semantics/OpenMP/omp-do11.f90
    flang/test/Semantics/OpenMP/omp-do12.f90
    flang/test/Semantics/OpenMP/omp-do14.f90
    flang/test/Semantics/OpenMP/omp-do17.f90
    flang/test/Semantics/OpenMP/omp-reduction08.f90
    flang/test/Semantics/OpenMP/omp-reduction09.f90
    flang/test/Semantics/OpenMP/omp-symbol01.f90
    flang/test/Semantics/OpenMP/omp-symbol02.f90
    flang/test/Semantics/OpenMP/omp-symbol03.f90
    flang/test/Semantics/OpenMP/omp-symbol04.f90
    flang/test/Semantics/OpenMP/omp-symbol05.f90
    flang/test/Semantics/OpenMP/omp-symbol06.f90
    flang/test/Semantics/OpenMP/omp-symbol07.f90
    flang/test/Semantics/OpenMP/omp-symbol08.f90
    flang/test/Semantics/data16.f90
    flang/test/Semantics/symbol05.f90
    flang/test/Semantics/symbol09.f90
    flang/test/Semantics/symbol11.f90

Removed: 
    


################################################################################
diff  --git a/flang/include/flang/Semantics/scope.h b/flang/include/flang/Semantics/scope.h
index 7c42e7ff14fa6..d0fb37962dfb7 100644
--- a/flang/include/flang/Semantics/scope.h
+++ b/flang/include/flang/Semantics/scope.h
@@ -60,7 +60,8 @@ class Scope {
 
 public:
   ENUM_CLASS(Kind, Global, IntrinsicModules, Module, MainProgram, Subprogram,
-      BlockData, DerivedType, Block, Forall, ImpliedDos)
+      BlockData, DerivedType, BlockConstruct, Forall, OtherConstruct,
+      ImpliedDos)
   using ImportKind = common::ImportKind;
 
   // Create the Global scope -- the root of the scope tree

diff  --git a/flang/include/flang/Semantics/tools.h b/flang/include/flang/Semantics/tools.h
index 58e789ba85ab7..52bac01d3bb7c 100644
--- a/flang/include/flang/Semantics/tools.h
+++ b/flang/include/flang/Semantics/tools.h
@@ -38,6 +38,8 @@ const Scope &GetTopLevelUnitContaining(const Scope &);
 const Scope &GetTopLevelUnitContaining(const Symbol &);
 const Scope &GetProgramUnitContaining(const Scope &);
 const Scope &GetProgramUnitContaining(const Symbol &);
+const Scope &GetProgramUnitOrBlockConstructContaining(const Scope &);
+const Scope &GetProgramUnitOrBlockConstructContaining(const Symbol &);
 
 const Scope *FindModuleContaining(const Scope &);
 const Scope *FindModuleFileContaining(const Scope &);

diff  --git a/flang/lib/Semantics/data-to-inits.cpp b/flang/lib/Semantics/data-to-inits.cpp
index 99f14dd2b4e85..a77ce605a97d3 100644
--- a/flang/lib/Semantics/data-to-inits.cpp
+++ b/flang/lib/Semantics/data-to-inits.cpp
@@ -821,7 +821,7 @@ static bool ProcessScopes(const Scope &scope,
   case Scope::Kind::MainProgram:
   case Scope::Kind::Subprogram:
   case Scope::Kind::BlockData:
-  case Scope::Kind::Block: {
+  case Scope::Kind::BlockConstruct: {
     std::list<std::list<SymbolRef>> associations{GetStorageAssociations(scope)};
     for (const std::list<SymbolRef> &associated : associations) {
       if (std::find_if(associated.begin(), associated.end(), [](SymbolRef ref) {

diff  --git a/flang/lib/Semantics/resolve-names.cpp b/flang/lib/Semantics/resolve-names.cpp
index 06ffbd10b5d73..06694efa66d9d 100644
--- a/flang/lib/Semantics/resolve-names.cpp
+++ b/flang/lib/Semantics/resolve-names.cpp
@@ -1301,7 +1301,7 @@ void AccVisitor::AddAccSourceRange(const parser::CharBlock &source) {
 
 bool AccVisitor::Pre(const parser::OpenACCBlockConstruct &x) {
   if (NeedsScope(x)) {
-    PushScope(Scope::Kind::Block, nullptr);
+    PushScope(Scope::Kind::OtherConstruct, nullptr);
   }
   return true;
 }
@@ -1337,7 +1337,7 @@ class OmpVisitor : public virtual DeclarationVisitor {
   }
 
   bool Pre(const parser::OpenMPLoopConstruct &) {
-    PushScope(Scope::Kind::Block, nullptr);
+    PushScope(Scope::Kind::OtherConstruct, nullptr);
     return true;
   }
   void Post(const parser::OpenMPLoopConstruct &) { PopScope(); }
@@ -1357,7 +1357,7 @@ class OmpVisitor : public virtual DeclarationVisitor {
   }
 
   bool Pre(const parser::OpenMPSectionsConstruct &) {
-    PushScope(Scope::Kind::Block, nullptr);
+    PushScope(Scope::Kind::OtherConstruct, nullptr);
     return true;
   }
   void Post(const parser::OpenMPSectionsConstruct &) { PopScope(); }
@@ -1398,7 +1398,7 @@ void OmpVisitor::AddOmpSourceRange(const parser::CharBlock &source) {
 
 bool OmpVisitor::Pre(const parser::OpenMPBlockConstruct &x) {
   if (NeedsScope(x)) {
-    PushScope(Scope::Kind::Block, nullptr);
+    PushScope(Scope::Kind::OtherConstruct, nullptr);
   }
   return true;
 }
@@ -2202,7 +2202,8 @@ void ScopeHandler::PushScope(Scope::Kind kind, Symbol *symbol) {
 void ScopeHandler::PushScope(Scope &scope) {
   currScope_ = &scope;
   auto kind{currScope_->kind()};
-  if (kind != Scope::Kind::Block) {
+  if (kind != Scope::Kind::BlockConstruct &&
+      kind != Scope::Kind::OtherConstruct) {
     BeginScope(scope);
   }
   // The name of a module or submodule cannot be "used" in its scope,
@@ -2520,7 +2521,7 @@ void ScopeHandler::NotePossibleBadForwardRef(const parser::Name &name) {
   if (inSpecificationPart_ && name.symbol) {
     auto kind{currScope().kind()};
     if ((kind == Scope::Kind::Subprogram && !currScope().IsStmtFunction()) ||
-        kind == Scope::Kind::Block) {
+        kind == Scope::Kind::BlockConstruct) {
       bool isHostAssociated{&name.symbol->owner() == &currScope()
               ? name.symbol->has<HostAssocDetails>()
               : name.symbol->owner().Contains(currScope())};
@@ -4150,7 +4151,7 @@ Symbol &DeclarationVisitor::HandleAttributeStmt(
     // these can be set on a symbol that is host-assoc or use-assoc
     if (!symbol &&
         (currScope().kind() == Scope::Kind::Subprogram ||
-            currScope().kind() == Scope::Kind::Block)) {
+            currScope().kind() == Scope::Kind::BlockConstruct)) {
       if (auto *hostSymbol{FindSymbol(name)}) {
         symbol = &MakeHostAssocSymbol(name, *hostSymbol);
       }
@@ -4170,7 +4171,7 @@ Symbol &DeclarationVisitor::HandleAttributeStmt(
 }
 // C1107
 bool DeclarationVisitor::CheckNotInBlock(const char *stmt) {
-  if (currScope().kind() == Scope::Kind::Block) {
+  if (currScope().kind() == Scope::Kind::BlockConstruct) {
     Say(MessageFormattedText{
         "%s statement is not allowed in a BLOCK construct"_err_en_US, stmt});
     return false;
@@ -5302,7 +5303,7 @@ void DeclarationVisitor::CheckSaveStmts() {
     if (auto *symbol{currScope().FindCommonBlock(name)}) {
       auto &objects{symbol->get<CommonBlockDetails>().objects()};
       if (objects.empty()) {
-        if (currScope().kind() != Scope::Kind::Block) {
+        if (currScope().kind() != Scope::Kind::BlockConstruct) {
           Say(name,
               "'%s' appears as a COMMON block in a SAVE statement but not in"
               " a COMMON statement"_err_en_US);
@@ -6037,7 +6038,7 @@ bool ConstructVisitor::Pre(const parser::DataStmtValue &x) {
 
 bool ConstructVisitor::Pre(const parser::DoConstruct &x) {
   if (x.IsDoConcurrent()) {
-    PushScope(Scope::Kind::Block, nullptr);
+    PushScope(Scope::Kind::OtherConstruct, nullptr);
   }
   return true;
 }
@@ -6060,7 +6061,7 @@ void ConstructVisitor::Post(const parser::ForallStmt &) { PopScope(); }
 
 bool ConstructVisitor::Pre(const parser::BlockStmt &x) {
   CheckDef(x.v);
-  PushScope(Scope::Kind::Block, nullptr);
+  PushScope(Scope::Kind::BlockConstruct, nullptr);
   return false;
 }
 bool ConstructVisitor::Pre(const parser::EndBlockStmt &x) {
@@ -6075,7 +6076,7 @@ void ConstructVisitor::Post(const parser::Selector &x) {
 
 void ConstructVisitor::Post(const parser::AssociateStmt &x) {
   CheckDef(x.t);
-  PushScope(Scope::Kind::Block, nullptr);
+  PushScope(Scope::Kind::OtherConstruct, nullptr);
   const auto assocCount{std::get<std::list<parser::Association>>(x.t).size()};
   for (auto nthLastAssoc{assocCount}; nthLastAssoc > 0; --nthLastAssoc) {
     SetCurrentAssociation(nthLastAssoc);
@@ -6104,7 +6105,7 @@ bool ConstructVisitor::Pre(const parser::Association &x) {
 
 bool ConstructVisitor::Pre(const parser::ChangeTeamStmt &x) {
   CheckDef(x.t);
-  PushScope(Scope::Kind::Block, nullptr);
+  PushScope(Scope::Kind::OtherConstruct, nullptr);
   PushAssociation();
   return true;
 }
@@ -6192,7 +6193,7 @@ void ConstructVisitor::Post(const parser::SelectRankStmt &x) {
 }
 
 bool ConstructVisitor::Pre(const parser::SelectTypeConstruct::TypeCase &) {
-  PushScope(Scope::Kind::Block, nullptr);
+  PushScope(Scope::Kind::OtherConstruct, nullptr);
   return true;
 }
 void ConstructVisitor::Post(const parser::SelectTypeConstruct::TypeCase &) {
@@ -6200,7 +6201,7 @@ void ConstructVisitor::Post(const parser::SelectTypeConstruct::TypeCase &) {
 }
 
 bool ConstructVisitor::Pre(const parser::SelectRankConstruct::RankCase &) {
-  PushScope(Scope::Kind::Block, nullptr);
+  PushScope(Scope::Kind::OtherConstruct, nullptr);
   return true;
 }
 void ConstructVisitor::Post(const parser::SelectRankConstruct::RankCase &) {

diff  --git a/flang/lib/Semantics/tools.cpp b/flang/lib/Semantics/tools.cpp
index 1a46e87ff4720..5bb16bd29441a 100644
--- a/flang/lib/Semantics/tools.cpp
+++ b/flang/lib/Semantics/tools.cpp
@@ -76,6 +76,26 @@ const Scope &GetProgramUnitContaining(const Symbol &symbol) {
   return GetProgramUnitContaining(symbol.owner());
 }
 
+const Scope &GetProgramUnitOrBlockConstructContaining(const Scope &start) {
+  CHECK(!start.IsTopLevel());
+  return DEREF(FindScopeContaining(start, [](const Scope &scope) {
+    switch (scope.kind()) {
+    case Scope::Kind::Module:
+    case Scope::Kind::MainProgram:
+    case Scope::Kind::Subprogram:
+    case Scope::Kind::BlockData:
+    case Scope::Kind::BlockConstruct:
+      return true;
+    default:
+      return false;
+    }
+  }));
+}
+
+const Scope &GetProgramUnitOrBlockConstructContaining(const Symbol &symbol) {
+  return GetProgramUnitOrBlockConstructContaining(symbol.owner());
+}
+
 const Scope *FindPureProcedureContaining(const Scope &start) {
   // N.B. We only need to examine the innermost containing program unit
   // because an internal subprogram of a pure subprogram must also
@@ -202,9 +222,10 @@ bool IsCommonBlockContaining(const Symbol &block, const Symbol &object) {
 }
 
 bool IsUseAssociated(const Symbol &symbol, const Scope &scope) {
-  const Scope &owner{GetProgramUnitContaining(symbol.GetUltimate().owner())};
+  const Scope &owner{
+      GetProgramUnitOrBlockConstructContaining(symbol.GetUltimate().owner())};
   return owner.kind() == Scope::Kind::Module &&
-      owner != GetProgramUnitContaining(scope);
+      owner != GetProgramUnitOrBlockConstructContaining(scope);
 }
 
 bool DoesScopeContain(
@@ -229,9 +250,9 @@ static const Symbol &FollowHostAssoc(const Symbol &symbol) {
 }
 
 bool IsHostAssociated(const Symbol &symbol, const Scope &scope) {
-  const Scope &subprogram{GetProgramUnitContaining(scope)};
   return DoesScopeContain(
-      &GetProgramUnitContaining(FollowHostAssoc(symbol)), subprogram);
+      &GetProgramUnitOrBlockConstructContaining(FollowHostAssoc(symbol)),
+      GetProgramUnitOrBlockConstructContaining(scope));
 }
 
 bool IsInStmtFunction(const Symbol &symbol) {

diff  --git a/flang/test/Semantics/OpenACC/acc-symbols01.f90 b/flang/test/Semantics/OpenACC/acc-symbols01.f90
index 8e07f8d5c592e..ddb87711eecc5 100644
--- a/flang/test/Semantics/OpenACC/acc-symbols01.f90
+++ b/flang/test/Semantics/OpenACC/acc-symbols01.f90
@@ -14,11 +14,11 @@ program mm
   b = 2
  !$acc parallel present(c) firstprivate(b) private(a)
  !$acc loop
-  !DEF: /mm/Block1/i (AccPrivate, AccPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /mm/OtherConstruct1/i (AccPrivate, AccPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
-   !DEF: /mm/Block1/a (AccPrivate) HostAssoc INTEGER(4)
-   !REF: /mm/Block1/i
-   !DEF: /mm/Block1/b (AccFirstPrivate) HostAssoc INTEGER(4)
+   !DEF: /mm/OtherConstruct1/a (AccPrivate) HostAssoc INTEGER(4)
+   !REF: /mm/OtherConstruct1/i
+   !DEF: /mm/OtherConstruct1/b (AccFirstPrivate) HostAssoc INTEGER(4)
    a(i) = b(i)
   end do
  !$acc end parallel

diff  --git a/flang/test/Semantics/OpenMP/omp-do-schedule03.f90 b/flang/test/Semantics/OpenMP/omp-do-schedule03.f90
index 65f35292af8f4..8787b094d581a 100644
--- a/flang/test/Semantics/OpenMP/omp-do-schedule03.f90
+++ b/flang/test/Semantics/OpenMP/omp-do-schedule03.f90
@@ -15,11 +15,11 @@ program ompdoschedule
   !REF: /ompdoschedule/b
   b = 10
   !$omp do  schedule(static,b-b)
-  !DEF: /ompdoschedule/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /ompdoschedule/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   !REF: /ompdoschedule/n
   do i = 2,n+1
     !REF: /ompdoschedule/y
-    !REF: /ompdoschedule/Block1/i
+    !REF: /ompdoschedule/OtherConstruct1/i
     !REF: /ompdoschedule/z
     !REF: /ompdoschedule/a
     y(i) = z(i-1) + a(i)

diff  --git a/flang/test/Semantics/OpenMP/omp-do-schedule04.f90 b/flang/test/Semantics/OpenMP/omp-do-schedule04.f90
index f36cb318fee52..0d1e189593eac 100644
--- a/flang/test/Semantics/OpenMP/omp-do-schedule04.f90
+++ b/flang/test/Semantics/OpenMP/omp-do-schedule04.f90
@@ -20,10 +20,10 @@ subroutine tds
   !REF: /tds/k
   k = 12
   !$omp do  schedule(static,j-k)
-  !DEF: /tds/Block1/i (OmpPrivate,OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /tds/OtherConstruct1/i (OmpPrivate,OmpPreDetermined) HostAssoc INTEGER(4)
   do i = 1,10
     !REF: /tds/y
-    !REF: /tds/Block1/i
+    !REF: /tds/OtherConstruct1/i
     !REF: /tds/z
     !REF: /tds/a
     y(i) = z(i-1)+a(i)

diff  --git a/flang/test/Semantics/OpenMP/omp-do01-positivecase.f90 b/flang/test/Semantics/OpenMP/omp-do01-positivecase.f90
index 8d19cc21ed4d0..905fdbaf18476 100644
--- a/flang/test/Semantics/OpenMP/omp-do01-positivecase.f90
+++ b/flang/test/Semantics/OpenMP/omp-do01-positivecase.f90
@@ -10,7 +10,7 @@ program omp_do
   integer i
 
   !$omp do  firstprivate(k)
-  !DEF: /omp_do/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_do/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
     print *, "Hello"
   end do

diff  --git a/flang/test/Semantics/OpenMP/omp-do04-positivecase.f90 b/flang/test/Semantics/OpenMP/omp-do04-positivecase.f90
index 56eb333955cda..eb2d67bb8ceb2 100644
--- a/flang/test/Semantics/OpenMP/omp-do04-positivecase.f90
+++ b/flang/test/Semantics/OpenMP/omp-do04-positivecase.f90
@@ -11,7 +11,7 @@ program omp_do1
   integer i, j, k, n
   !$omp threadprivate (k,n)
   !$omp do
-  !DEF: /omp_do1/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_do1/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
     !REF: /omp_do1/j
     do j=1,10

diff  --git a/flang/test/Semantics/OpenMP/omp-do05-positivecase.f90 b/flang/test/Semantics/OpenMP/omp-do05-positivecase.f90
index 74ed8eb450c3f..b1d97b44567eb 100644
--- a/flang/test/Semantics/OpenMP/omp-do05-positivecase.f90
+++ b/flang/test/Semantics/OpenMP/omp-do05-positivecase.f90
@@ -9,7 +9,7 @@ program omp_do
   !DEF: /omp_do/n ObjectEntity INTEGER(4)
   integer i,n
   !$omp parallel
-  !DEF: /omp_do/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_do/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
     !$omp single
     print *, "hello"
@@ -19,13 +19,13 @@ program omp_do
 
   !$omp parallel  default(shared)
   !$omp do
-  !DEF: /omp_do/Block2/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_do/OtherConstruct2/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   !REF: /omp_do/n
   do i=1,n
     !$omp parallel
     !$omp single
     !DEF: /work EXTERNAL (Subroutine) ProcEntity
-    !REF: /omp_do/Block2/Block1/i
+    !REF: /omp_do/OtherConstruct2/OtherConstruct1/i
     call work(i, 1)
     !$omp end single
     !$omp end parallel

diff  --git a/flang/test/Semantics/OpenMP/omp-do06-positivecases.f90 b/flang/test/Semantics/OpenMP/omp-do06-positivecases.f90
index 741412550cfe0..2713b55fa2ecb 100644
--- a/flang/test/Semantics/OpenMP/omp-do06-positivecases.f90
+++ b/flang/test/Semantics/OpenMP/omp-do06-positivecases.f90
@@ -12,7 +12,7 @@ program omp_do
   !DEF: /omp_do/k ObjectEntity INTEGER(4)
   integer i, j, k
   !$omp do  ordered
-    !DEF: /omp_do/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+    !DEF: /omp_do/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
     do i=1,10
       !$omp ordered
       !DEF: /my_func EXTERNAL (Subroutine) ProcEntity

diff  --git a/flang/test/Semantics/OpenMP/omp-do11.f90 b/flang/test/Semantics/OpenMP/omp-do11.f90
index 4993922691ff4..faab457efff3c 100644
--- a/flang/test/Semantics/OpenMP/omp-do11.f90
+++ b/flang/test/Semantics/OpenMP/omp-do11.f90
@@ -9,11 +9,11 @@ program omp_do
   !DEF: /omp_do/k ObjectEntity INTEGER(4)
   integer i, j, k
   !$omp do
-  !DEF: /omp_do/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_do/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
     !REF: /omp_do/j
     do j=1,10
-      !REF: /omp_do/Block1/i
+      !REF: /omp_do/OtherConstruct1/i
       !REF: /omp_do/j
       print *, "it", i, j
     end do
@@ -27,9 +27,9 @@ subroutine omp_do2
   !DEF: /omp_do2/k ObjectEntity INTEGER(4)
   integer :: i = 0, k
   !$omp do
-  !DEF: /omp_do2/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_do2/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
-    !REF: /omp_do2/Block1/i
+    !REF: /omp_do2/OtherConstruct1/i
     print *, "it", i
   end do
   !$omp end do

diff  --git a/flang/test/Semantics/OpenMP/omp-do12.f90 b/flang/test/Semantics/OpenMP/omp-do12.f90
index cc8e53a16e97f..a057a246f7a99 100644
--- a/flang/test/Semantics/OpenMP/omp-do12.f90
+++ b/flang/test/Semantics/OpenMP/omp-do12.f90
@@ -5,15 +5,15 @@
 !DEF: /omp_cycle MainProgram
 program omp_cycle
   !$omp do  collapse(1)
-  !DEF: /omp_cycle/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_cycle/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=0,10
-    !REF: /omp_cycle/Block1/i
+    !REF: /omp_cycle/OtherConstruct1/i
     if (i<1) cycle
     !DEF: /omp_cycle/j (Implicit) ObjectEntity INTEGER(4)
     do j=0,10
       !DEF: /omp_cycle/k (Implicit) ObjectEntity INTEGER(4)
       do k=0,10
-        !REF: /omp_cycle/Block1/i
+        !REF: /omp_cycle/OtherConstruct1/i
         !REF: /omp_cycle/j
         !REF: /omp_cycle/k
         print *, i, j, k
@@ -23,15 +23,15 @@ program omp_cycle
   !$omp end do
 
   !$omp do  collapse(1)
-  !DEF: /omp_cycle/Block2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_cycle/OtherConstruct2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=0,10
     !REF: /omp_cycle/j
     do j=0,10
-      !REF: /omp_cycle/Block2/i
+      !REF: /omp_cycle/OtherConstruct2/i
       if (i<1) cycle
       !REF: /omp_cycle/k
       do k=0,10
-        !REF: /omp_cycle/Block2/i
+        !REF: /omp_cycle/OtherConstruct2/i
         !REF: /omp_cycle/j
         !REF: /omp_cycle/k
         print *, i, j, k
@@ -41,16 +41,16 @@ program omp_cycle
   !$omp end do
 
   !$omp do  collapse(2)
-  !DEF: /omp_cycle/Block3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_cycle/OtherConstruct3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=0,10
-    !DEF: /omp_cycle/Block3/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+    !DEF: /omp_cycle/OtherConstruct3/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
     do j=0,10
       !REF: /omp_cycle/k
       do k=0,10
-        !REF: /omp_cycle/Block3/i
+        !REF: /omp_cycle/OtherConstruct3/i
         if (i<1) cycle
-        !REF: /omp_cycle/Block3/i
-        !REF: /omp_cycle/Block3/j
+        !REF: /omp_cycle/OtherConstruct3/i
+        !REF: /omp_cycle/OtherConstruct3/j
         !REF: /omp_cycle/k
         print *, i, j, k
       end do
@@ -59,17 +59,17 @@ program omp_cycle
   !$omp end do
 
   !$omp do  collapse(3)
-  !DEF: /omp_cycle/Block4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_cycle/OtherConstruct4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=0,10
-    !DEF: /omp_cycle/Block4/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+    !DEF: /omp_cycle/OtherConstruct4/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
     do j=0,10
-      !DEF: /omp_cycle/Block4/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+      !DEF: /omp_cycle/OtherConstruct4/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
       do k=0,10
-        !REF: /omp_cycle/Block4/i
+        !REF: /omp_cycle/OtherConstruct4/i
         if (i<1) cycle
-        !REF: /omp_cycle/Block4/i
-        !REF: /omp_cycle/Block4/j
-        !REF: /omp_cycle/Block4/k
+        !REF: /omp_cycle/OtherConstruct4/i
+        !REF: /omp_cycle/OtherConstruct4/j
+        !REF: /omp_cycle/OtherConstruct4/k
         print *, i, j, k
       end do
     end do
@@ -77,17 +77,17 @@ program omp_cycle
   !$omp end do
 
   !$omp do  collapse(3)
-  !DEF: /omp_cycle/Block5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_cycle/OtherConstruct5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   foo:do i=0,10
-    !DEF: /omp_cycle/Block5/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+    !DEF: /omp_cycle/OtherConstruct5/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
     foo1:do j=0,10
-      !DEF: /omp_cycle/Block5/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+      !DEF: /omp_cycle/OtherConstruct5/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
       foo2:do k=0,10
-        !REF: /omp_cycle/Block5/i
+        !REF: /omp_cycle/OtherConstruct5/i
         if (i<1) cycle foo2
-        !REF: /omp_cycle/Block5/i
-        !REF: /omp_cycle/Block5/j
-        !REF: /omp_cycle/Block5/k
+        !REF: /omp_cycle/OtherConstruct5/i
+        !REF: /omp_cycle/OtherConstruct5/j
+        !REF: /omp_cycle/OtherConstruct5/k
         print *, i, j, k
       end do foo2
     end do foo1

diff  --git a/flang/test/Semantics/OpenMP/omp-do14.f90 b/flang/test/Semantics/OpenMP/omp-do14.f90
index dc3818a847ee6..5e8a5a64c2979 100644
--- a/flang/test/Semantics/OpenMP/omp-do14.f90
+++ b/flang/test/Semantics/OpenMP/omp-do14.f90
@@ -5,14 +5,14 @@
 !DEF: /omp_cycle MainProgram
 program omp_cycle
   !$omp do  collapse(1)
-  !DEF: /omp_cycle/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_cycle/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=0,10
     cycle
     !DEF: /omp_cycle/j (Implicit) ObjectEntity INTEGER(4)
     do j=0,10
       !DEF: /omp_cycle/k (Implicit) ObjectEntity INTEGER(4)
       do k=0,10
-        !REF: /omp_cycle/Block1/i
+        !REF: /omp_cycle/OtherConstruct1/i
         !REF: /omp_cycle/j
         !REF: /omp_cycle/k
         print *, i, j, k
@@ -22,14 +22,14 @@ program omp_cycle
   !$omp end do
 
   !$omp do  collapse(1)
-  !DEF: /omp_cycle/Block2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_cycle/OtherConstruct2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=0,10
     !REF: /omp_cycle/j
     do j=0,10
       cycle
       !REF: /omp_cycle/k
       do k=0,10
-        !REF: /omp_cycle/Block2/i
+        !REF: /omp_cycle/OtherConstruct2/i
         !REF: /omp_cycle/j
         !REF: /omp_cycle/k
         print *, i, j, k
@@ -39,15 +39,15 @@ program omp_cycle
   !$omp end do
 
   !$omp do  collapse(2)
-  !DEF: /omp_cycle/Block3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_cycle/OtherConstruct3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=0,10
-    !DEF: /omp_cycle/Block3/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+    !DEF: /omp_cycle/OtherConstruct3/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
     do j=0,10
       !REF: /omp_cycle/k
       do k=0,10
         cycle
-        !REF: /omp_cycle/Block3/i
-        !REF: /omp_cycle/Block3/j
+        !REF: /omp_cycle/OtherConstruct3/i
+        !REF: /omp_cycle/OtherConstruct3/j
         !REF: /omp_cycle/k
         print *, i, j, k
       end do
@@ -56,16 +56,16 @@ program omp_cycle
   !$omp end do
 
   !$omp do  collapse(3)
-  !DEF: /omp_cycle/Block4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_cycle/OtherConstruct4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=0,10
-    !DEF: /omp_cycle/Block4/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+    !DEF: /omp_cycle/OtherConstruct4/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
     do j=0,10
-      !DEF: /omp_cycle/Block4/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+      !DEF: /omp_cycle/OtherConstruct4/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
       do k=0,10
         cycle
-        !REF: /omp_cycle/Block4/i
-        !REF: /omp_cycle/Block4/j
-        !REF: /omp_cycle/Block4/k
+        !REF: /omp_cycle/OtherConstruct4/i
+        !REF: /omp_cycle/OtherConstruct4/j
+        !REF: /omp_cycle/OtherConstruct4/k
         print *, i, j, k
       end do
     end do
@@ -73,16 +73,16 @@ program omp_cycle
   !$omp end do
 
   !$omp do  ordered(3)
-  !DEF: /omp_cycle/Block5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_cycle/OtherConstruct5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   foo:do i=0,10
-    !DEF: /omp_cycle/Block5/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+    !DEF: /omp_cycle/OtherConstruct5/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
     foo1:do j=0,10
-      !DEF: /omp_cycle/Block5/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+      !DEF: /omp_cycle/OtherConstruct5/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
       foo2:do k=0,10
         cycle foo2
-        !REF: /omp_cycle/Block5/i
-        !REF: /omp_cycle/Block5/j
-        !REF: /omp_cycle/Block5/k
+        !REF: /omp_cycle/OtherConstruct5/i
+        !REF: /omp_cycle/OtherConstruct5/j
+        !REF: /omp_cycle/OtherConstruct5/k
         print *, i, j, k
       end do foo2
     end do foo1

diff  --git a/flang/test/Semantics/OpenMP/omp-do17.f90 b/flang/test/Semantics/OpenMP/omp-do17.f90
index 8339ce0429483..c0c59f16dee1b 100644
--- a/flang/test/Semantics/OpenMP/omp-do17.f90
+++ b/flang/test/Semantics/OpenMP/omp-do17.f90
@@ -9,21 +9,21 @@ program test
  !DEF: /test/k ObjectEntity INTEGER(4)
  integer i, j, k
  !$omp do  collapse(2)
- !DEF: /test/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+ !DEF: /test/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
  foo: do i=0,10
-  !DEF: /test/Block1/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /test/OtherConstruct1/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   foo1: do j=0,10
    !REF: /test/k
    foo2: do k=0,10
-    !REF: /test/Block1/i
+    !REF: /test/OtherConstruct1/i
     select case (i)
     case (5)
      cycle foo1
     case (7)
      cycle foo2
     end select
-    !REF: /test/Block1/i
-    !REF: /test/Block1/j
+    !REF: /test/OtherConstruct1/i
+    !REF: /test/OtherConstruct1/j
     !REF: /test/k
     print *, i, j, k
    end do foo2
@@ -31,23 +31,23 @@ program test
  end do foo
 
  !$omp do  collapse(2)
- !DEF: /test/Block2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+ !DEF: /test/OtherConstruct2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
  foo: do i=0,10
-  !DEF: /test/Block2/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /test/OtherConstruct2/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   foo1: do j=0,10
    !REF: /test/k
    foo2: do k=0,10
-    !REF: /test/Block2/i
+    !REF: /test/OtherConstruct2/i
     if (i<3) then
      cycle foo1
-     !REF: /test/Block2/i
+     !REF: /test/OtherConstruct2/i
     else if (i>8) then
      cycle foo1
     else
      cycle foo2
     end if
-    !REF: /test/Block2/i
-    !REF: /test/Block2/j
+    !REF: /test/OtherConstruct2/i
+    !REF: /test/OtherConstruct2/j
     !REF: /test/k
     print *, i, j, k
    end do foo2

diff  --git a/flang/test/Semantics/OpenMP/omp-reduction08.f90 b/flang/test/Semantics/OpenMP/omp-reduction08.f90
index 2fdc7f6d7cb5b..99163327cdafa 100644
--- a/flang/test/Semantics/OpenMP/omp-reduction08.f90
+++ b/flang/test/Semantics/OpenMP/omp-reduction08.f90
@@ -11,9 +11,9 @@ program omp_reduction
   !DEF: /omp_reduction/m ObjectEntity INTEGER(4)
   integer :: m = 12
   !$omp parallel do  reduction(max:k)
-  !DEF: /omp_reduction/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_reduction/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
-    !DEF: /omp_reduction/Block1/k (OmpReduction) HostAssoc INTEGER(4)
+    !DEF: /omp_reduction/OtherConstruct1/k (OmpReduction) HostAssoc INTEGER(4)
     !DEF: /omp_reduction/max ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity
     !REF: /omp_reduction/m
     k = max(k, m)
@@ -21,9 +21,9 @@ program omp_reduction
   !$omp end parallel do
 
   !$omp parallel do  reduction(min:k)
-  !DEF: /omp_reduction/Block2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_reduction/OtherConstruct2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
-    !DEF: /omp_reduction/Block2/k (OmpReduction) HostAssoc INTEGER(4)
+    !DEF: /omp_reduction/OtherConstruct2/k (OmpReduction) HostAssoc INTEGER(4)
     !DEF: /omp_reduction/min ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity
     !REF: /omp_reduction/m
     k = min(k, m)
@@ -31,9 +31,9 @@ program omp_reduction
   !$omp end parallel do
 
   !$omp parallel do  reduction(iand:k)
-  !DEF: /omp_reduction/Block3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_reduction/OtherConstruct3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
-    !DEF: /omp_reduction/Block3/k (OmpReduction) HostAssoc INTEGER(4)
+    !DEF: /omp_reduction/OtherConstruct3/k (OmpReduction) HostAssoc INTEGER(4)
     !DEF: /omp_reduction/iand ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity
     !REF: /omp_reduction/m
     k = iand(k, m)
@@ -41,9 +41,9 @@ program omp_reduction
   !$omp end parallel do
 
   !$omp parallel do  reduction(ior:k)
-  !DEF: /omp_reduction/Block4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_reduction/OtherConstruct4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
-    !DEF: /omp_reduction/Block4/k (OmpReduction) HostAssoc INTEGER(4)
+    !DEF: /omp_reduction/OtherConstruct4/k (OmpReduction) HostAssoc INTEGER(4)
     !DEF: /omp_reduction/ior ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity
     !REF: /omp_reduction/m
     k = ior(k, m)
@@ -51,9 +51,9 @@ program omp_reduction
   !$omp end parallel do
 
   !$omp parallel do  reduction(ieor:k)
-  !DEF: /omp_reduction/Block5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_reduction/OtherConstruct5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
-    !DEF: /omp_reduction/Block5/k (OmpReduction) HostAssoc INTEGER(4)
+    !DEF: /omp_reduction/OtherConstruct5/k (OmpReduction) HostAssoc INTEGER(4)
     !DEF: /omp_reduction/ieor ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity
     !REF: /omp_reduction/m
     k = ieor(k,m)

diff  --git a/flang/test/Semantics/OpenMP/omp-reduction09.f90 b/flang/test/Semantics/OpenMP/omp-reduction09.f90
index c8d4c448abf79..7dc02459ee4a1 100644
--- a/flang/test/Semantics/OpenMP/omp-reduction09.f90
+++ b/flang/test/Semantics/OpenMP/omp-reduction09.f90
@@ -14,9 +14,9 @@ program omp_reduction
 
   !$omp parallel  shared(k)
   !$omp do  reduction(+:k)
-  !DEF: /omp_reduction/Block1/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_reduction/OtherConstruct1/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
-    !DEF: /omp_reduction/Block1/Block1/k (OmpReduction) HostAssoc INTEGER(4)
+    !DEF: /omp_reduction/OtherConstruct1/OtherConstruct1/k (OmpReduction) HostAssoc INTEGER(4)
     k = k+1
   end do
   !$omp end do
@@ -24,7 +24,7 @@ program omp_reduction
 
 
   !$omp parallel do  reduction(+:a(10))
-  !DEF: /omp_reduction/Block2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_reduction/OtherConstruct2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
     !REF: /omp_reduction/k
     k = k+1
@@ -33,7 +33,7 @@ program omp_reduction
 
 
   !$omp parallel do  reduction(+:a(1:10:1))
-  !DEF: /omp_reduction/Block3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_reduction/OtherConstruct3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
     !REF: /omp_reduction/k
     k = k+1
@@ -41,7 +41,7 @@ program omp_reduction
   !$omp end parallel do
 
   !$omp parallel do  reduction(+:b(1:10:1,1:5,2))
-  !DEF: /omp_reduction/Block4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_reduction/OtherConstruct4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
     !REF: /omp_reduction/k
     k = k+1
@@ -49,7 +49,7 @@ program omp_reduction
   !$omp end parallel do
 
   !$omp parallel do  reduction(+:b(1:10:1,1:5,2:5:1))
-  !DEF: /omp_reduction/Block5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_reduction/OtherConstruct5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
     !REF: /omp_reduction/k
     k = k+1
@@ -58,27 +58,27 @@ program omp_reduction
 
   !$omp parallel  private(i)
   !$omp do reduction(+:k) reduction(+:j)
-  !DEF: /omp_reduction/Block6/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_reduction/OtherConstruct6/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
-    !DEF: /omp_reduction/Block6/Block1/k (OmpReduction) HostAssoc INTEGER(4)
+    !DEF: /omp_reduction/OtherConstruct6/OtherConstruct1/k (OmpReduction) HostAssoc INTEGER(4)
     k = k+1
   end do
   !$omp end do
   !$omp end parallel
 
   !$omp do reduction(-:k) reduction(*:j) reduction(-:l)
-  !DEF: /omp_reduction/Block7/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_reduction/OtherConstruct7/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
-    !DEF: /omp_reduction/Block7/k (OmpReduction) HostAssoc INTEGER(4)
+    !DEF: /omp_reduction/OtherConstruct7/k (OmpReduction) HostAssoc INTEGER(4)
     k = k+1
   end do
   !$omp end do
 
 
   !$omp do reduction(.and.:k) reduction(.or.:j) reduction(.eqv.:l)
-  !DEF: /omp_reduction/Block8/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /omp_reduction/OtherConstruct8/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
-    !DEF: /omp_reduction/Block8/k (OmpReduction) HostAssoc INTEGER(4)
+    !DEF: /omp_reduction/OtherConstruct8/k (OmpReduction) HostAssoc INTEGER(4)
     k = k+1
   end do
   !$omp end do

diff  --git a/flang/test/Semantics/OpenMP/omp-symbol01.f90 b/flang/test/Semantics/OpenMP/omp-symbol01.f90
index cff2ecb83d2ef..0b435a9ab9850 100644
--- a/flang/test/Semantics/OpenMP/omp-symbol01.f90
+++ b/flang/test/Semantics/OpenMP/omp-symbol01.f90
@@ -45,22 +45,22 @@ program mm
  !DEF: /mm/c (Implicit) ObjectEntity REAL(4)
  c = 2.0
 !$omp parallel do  private(a,t,/c/) shared(c)
- !DEF: /mm/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+ !DEF: /mm/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
  do i=1,10
-  !DEF: /mm/Block1/a (OmpPrivate) HostAssoc REAL(4)
+  !DEF: /mm/OtherConstruct1/a (OmpPrivate) HostAssoc REAL(4)
   !REF: /mm/b
-  !REF: /mm/Block1/i
+  !REF: /mm/OtherConstruct1/i
   a = a+b(i)
-  !DEF: /mm/Block1/t (OmpPrivate) HostAssoc TYPE(myty)
+  !DEF: /mm/OtherConstruct1/t (OmpPrivate) HostAssoc TYPE(myty)
   !REF: /md/myty/a
-  !REF: /mm/Block1/i
+  !REF: /mm/OtherConstruct1/i
   t%a = i
-  !DEF: /mm/Block1/y (OmpPrivate) HostAssoc REAL(4)
+  !DEF: /mm/OtherConstruct1/y (OmpPrivate) HostAssoc REAL(4)
   y = 0.
-  !DEF: /mm/Block1/x (OmpPrivate) HostAssoc REAL(4)
-  !REF: /mm/Block1/a
-  !REF: /mm/Block1/i
-  !REF: /mm/Block1/y
+  !DEF: /mm/OtherConstruct1/x (OmpPrivate) HostAssoc REAL(4)
+  !REF: /mm/OtherConstruct1/a
+  !REF: /mm/OtherConstruct1/i
+  !REF: /mm/OtherConstruct1/y
   x = a+i+y
   !REF: /mm/c
   c = 3.0

diff  --git a/flang/test/Semantics/OpenMP/omp-symbol02.f90 b/flang/test/Semantics/OpenMP/omp-symbol02.f90
index d1c49983290bf..f6ffc5500d0a4 100644
--- a/flang/test/Semantics/OpenMP/omp-symbol02.f90
+++ b/flang/test/Semantics/OpenMP/omp-symbol02.f90
@@ -11,9 +11,9 @@
   !DEF: /MainProgram1/c (Implicit) ObjectEntity REAL(4)
   c = 0
   !$omp parallel  private(a,b) shared(c,d)
-  !DEF: /MainProgram1/Block1/a (OmpPrivate) HostAssoc REAL(4)
+  !DEF: /MainProgram1/OtherConstruct1/a (OmpPrivate) HostAssoc REAL(4)
   a = 3.
-  !DEF: /MainProgram1/Block1/b (OmpPrivate) HostAssoc REAL(4)
+  !DEF: /MainProgram1/OtherConstruct1/b (OmpPrivate) HostAssoc REAL(4)
   b = 4
   !REF: /MainProgram1/c
   c = 5

diff  --git a/flang/test/Semantics/OpenMP/omp-symbol03.f90 b/flang/test/Semantics/OpenMP/omp-symbol03.f90
index e6ba7ded79e7c..93e9b7a3eae6b 100644
--- a/flang/test/Semantics/OpenMP/omp-symbol03.f90
+++ b/flang/test/Semantics/OpenMP/omp-symbol03.f90
@@ -7,14 +7,14 @@
   !DEF: /MainProgram1/b (Implicit) ObjectEntity REAL(4)
   b = 2
   !$omp parallel  private(a) shared(b)
-  !DEF: /MainProgram1/Block1/a (OmpPrivate) HostAssoc REAL(4)
+  !DEF: /MainProgram1/OtherConstruct1/a (OmpPrivate) HostAssoc REAL(4)
   a = 3.
   !REF: /MainProgram1/b
   b = 4
   !$omp parallel  private(b) shared(a)
-  !REF: /MainProgram1/Block1/a
+  !REF: /MainProgram1/OtherConstruct1/a
   a = 5.
-  !DEF: /MainProgram1/Block1/Block1/b (OmpPrivate) HostAssoc REAL(4)
+  !DEF: /MainProgram1/OtherConstruct1/OtherConstruct1/b (OmpPrivate) HostAssoc REAL(4)
   b = 6
   !$omp end parallel
   !$omp end parallel

diff  --git a/flang/test/Semantics/OpenMP/omp-symbol04.f90 b/flang/test/Semantics/OpenMP/omp-symbol04.f90
index d49524c188de6..808d1e0dd09be 100644
--- a/flang/test/Semantics/OpenMP/omp-symbol04.f90
+++ b/flang/test/Semantics/OpenMP/omp-symbol04.f90
@@ -9,12 +9,12 @@
   !REF: /MainProgram1/a
   a = 3.14
   !$omp parallel  private(a)
-  !DEF: /MainProgram1/Block1/a (OmpPrivate) HostAssoc REAL(8)
+  !DEF: /MainProgram1/OtherConstruct1/a (OmpPrivate) HostAssoc REAL(8)
   a = 2.
   !$omp do  private(a)
-  !DEF: /MainProgram1/Block1/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /MainProgram1/OtherConstruct1/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
-     !DEF: /MainProgram1/Block1/Block1/a (OmpPrivate) HostAssoc REAL(8)
+     !DEF: /MainProgram1/OtherConstruct1/OtherConstruct1/a (OmpPrivate) HostAssoc REAL(8)
      a = 1.
   end do
   !$omp end parallel

diff  --git a/flang/test/Semantics/OpenMP/omp-symbol05.f90 b/flang/test/Semantics/OpenMP/omp-symbol05.f90
index a1c0e554b93b8..fa0a8f65a4294 100644
--- a/flang/test/Semantics/OpenMP/omp-symbol05.f90
+++ b/flang/test/Semantics/OpenMP/omp-symbol05.f90
@@ -24,9 +24,9 @@ subroutine foo
     !REF: /mm/foo/a
     print *, a
     block
-      !DEF: /mm/foo/Block2/i ObjectEntity REAL(4)
+      !DEF: /mm/foo/BlockConstruct1/i ObjectEntity REAL(4)
       real i
-      !REF: /mm/foo/Block2/i
+      !REF: /mm/foo/BlockConstruct1/i
       i = 3.14
     end block
   end subroutine foo

diff  --git a/flang/test/Semantics/OpenMP/omp-symbol06.f90 b/flang/test/Semantics/OpenMP/omp-symbol06.f90
index 37d9243d10d48..906264eb12642 100644
--- a/flang/test/Semantics/OpenMP/omp-symbol06.f90
+++ b/flang/test/Semantics/OpenMP/omp-symbol06.f90
@@ -8,9 +8,9 @@
   !DEF: /MainProgram1/a (Implicit) ObjectEntity REAL(4)
   a = 1.
   !$omp parallel do  firstprivate(a) lastprivate(a)
-  !DEF: /MainProgram1/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /MainProgram1/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
-     !DEF: /MainProgram1/Block1/a (OmpFirstPrivate, OmpLastPrivate) HostAssoc REAL(4)
+     !DEF: /MainProgram1/OtherConstruct1/a (OmpFirstPrivate, OmpLastPrivate) HostAssoc REAL(4)
      a = 2.
   end do
 end program

diff  --git a/flang/test/Semantics/OpenMP/omp-symbol07.f90 b/flang/test/Semantics/OpenMP/omp-symbol07.f90
index ed44e13a42ea0..e2250f5c7908a 100644
--- a/flang/test/Semantics/OpenMP/omp-symbol07.f90
+++ b/flang/test/Semantics/OpenMP/omp-symbol07.f90
@@ -21,7 +21,7 @@ subroutine function_call_in_region
   !DEF: /function_call_in_region/b ObjectEntity REAL(4)
   real :: b = 5.
   !$omp parallel  default(none) private(a) shared(b)
-  !DEF: /function_call_in_region/Block1/a (OmpPrivate) HostAssoc REAL(4)
+  !DEF: /function_call_in_region/OtherConstruct1/a (OmpPrivate) HostAssoc REAL(4)
   !REF: /function_call_in_region/foo
   !REF: /function_call_in_region/b
   a = foo(b)

diff  --git a/flang/test/Semantics/OpenMP/omp-symbol08.f90 b/flang/test/Semantics/OpenMP/omp-symbol08.f90
index ab3988b9497d6..5c5aa4f24dd2e 100644
--- a/flang/test/Semantics/OpenMP/omp-symbol08.f90
+++ b/flang/test/Semantics/OpenMP/omp-symbol08.f90
@@ -31,18 +31,18 @@ subroutine test_do
  !REF: /test_do/i
  i = 99
 !$omp do  collapse(2)
- !DEF: /test_do/Block1/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+ !DEF: /test_do/OtherConstruct1/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
  do i=1,5
-  !DEF: /test_do/Block1/Block1/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /test_do/OtherConstruct1/OtherConstruct1/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do j=6,10
    !REF: /test_do/a
    a(1,1,1) = 0.
-   !DEF: /test_do/Block1/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+   !DEF: /test_do/OtherConstruct1/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
    do k=11,15
     !REF: /test_do/a
-    !REF: /test_do/Block1/k
-    !REF: /test_do/Block1/Block1/j
-    !REF: /test_do/Block1/Block1/i
+    !REF: /test_do/OtherConstruct1/k
+    !REF: /test_do/OtherConstruct1/OtherConstruct1/j
+    !REF: /test_do/OtherConstruct1/OtherConstruct1/i
     a(k,j,i) = 1.
    end do
   end do
@@ -61,18 +61,18 @@ subroutine test_pardo
  !DEF: /test_pardo/k ObjectEntity INTEGER(4)
  integer i, j, k
 !$omp parallel do  collapse(2) private(k) ordered(2)
- !DEF: /test_pardo/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+ !DEF: /test_pardo/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
  do i=1,5
-   !DEF: /test_pardo/Block1/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+   !DEF: /test_pardo/OtherConstruct1/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
     do j=6,10
    !REF: /test_pardo/a
    a(1,1,1) = 0.
-   !DEF: /test_pardo/Block1/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+   !DEF: /test_pardo/OtherConstruct1/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
    do k=11,15
     !REF: /test_pardo/a
-    !REF: /test_pardo/Block1/k
-    !REF: /test_pardo/Block1/j
-    !REF: /test_pardo/Block1/i
+    !REF: /test_pardo/OtherConstruct1/k
+    !REF: /test_pardo/OtherConstruct1/j
+    !REF: /test_pardo/OtherConstruct1/i
     a(k,j,i) = 1.
    end do
   end do
@@ -89,14 +89,14 @@ subroutine test_taskloop
  !DEF: /test_taskloop/j ObjectEntity INTEGER(4)
  integer i, j
 !$omp taskloop  private(j)
- !DEF: /test_taskloop/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+ !DEF: /test_taskloop/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
  do i=1,5
-  !DEF: /test_taskloop/Block1/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
-  !REF: /test_taskloop/Block1/i
+  !DEF: /test_taskloop/OtherConstruct1/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !REF: /test_taskloop/OtherConstruct1/i
   do j=1,i
    !REF: /test_taskloop/a
-   !REF: /test_taskloop/Block1/j
-   !REF: /test_taskloop/Block1/i
+   !REF: /test_taskloop/OtherConstruct1/j
+   !REF: /test_taskloop/OtherConstruct1/i
    a(j,i) = 3.14
   end do
  end do
@@ -132,20 +132,20 @@ subroutine dotprod (b, c, n, block_size, num_teams, block_threads)
 !$omp target  map(to:b,c)  map(tofrom:sum)
 !$omp teams  num_teams(num_teams) thread_limit(block_threads) reduction(+:sum)
 !$omp distribute
- !DEF: /dotprod/Block1/Block1/Block1/i0 (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+ !DEF: /dotprod/OtherConstruct1/OtherConstruct1/OtherConstruct1/i0 (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
  !REF: /dotprod/n
  !REF: /dotprod/block_size
  do i0=1,n,block_size
 !$omp parallel do  reduction(+:sum)
-  !DEF: /dotprod/Block1/Block1/Block1/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
-  !REF: /dotprod/Block1/Block1/Block1/i0
+  !DEF: /dotprod/OtherConstruct1/OtherConstruct1/OtherConstruct1/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !REF: /dotprod/OtherConstruct1/OtherConstruct1/OtherConstruct1/i0
   !DEF: /dotprod/min ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity
   !REF: /dotprod/block_size
   !REF: /dotprod/n
   do i=i0,min(i0+block_size, n)
-   !DEF: /dotprod/Block1/Block1/Block1/Block1/sum (OmpReduction) HostAssoc REAL(4)
+   !DEF: /dotprod/OtherConstruct1/OtherConstruct1/OtherConstruct1/OtherConstruct1/sum (OmpReduction) HostAssoc REAL(4)
    !REF: /dotprod/b
-   !REF: /dotprod/Block1/Block1/Block1/Block1/i
+   !REF: /dotprod/OtherConstruct1/OtherConstruct1/OtherConstruct1/OtherConstruct1/i
    !REF: /dotprod/c
    sum = sum+b(i)*c(i)
   end do
@@ -168,16 +168,16 @@ subroutine test_simd
  !DEF: /test_simd/k ObjectEntity INTEGER(4)
  integer i, j, k
 !$omp parallel do simd
- !DEF: /test_simd/Block1/i (OmpLinear, OmpPreDetermined) HostAssoc INTEGER(4)
+ !DEF: /test_simd/OtherConstruct1/i (OmpLinear, OmpPreDetermined) HostAssoc INTEGER(4)
  do i=1,5
-  !DEF: /test_simd/Block1/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /test_simd/OtherConstruct1/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do j=6,10
-   !DEF: /test_simd/Block1/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+   !DEF: /test_simd/OtherConstruct1/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
    do k=11,15
     !REF: /test_simd/a
-    !REF: /test_simd/Block1/k
-    !REF: /test_simd/Block1/j
-    !REF: /test_simd/Block1/i
+    !REF: /test_simd/OtherConstruct1/k
+    !REF: /test_simd/OtherConstruct1/j
+    !REF: /test_simd/OtherConstruct1/i
     a(k,j,i) = 3.14
    end do
   end do
@@ -195,16 +195,16 @@ subroutine test_simd_multi
  !DEF: /test_simd_multi/k ObjectEntity INTEGER(4)
  integer i, j, k
 !$omp parallel do simd  collapse(3)
- !DEF: /test_simd_multi/Block1/i (OmpLastPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+ !DEF: /test_simd_multi/OtherConstruct1/i (OmpLastPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
  do i=1,5
-  !DEF: /test_simd_multi/Block1/j (OmpLastPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /test_simd_multi/OtherConstruct1/j (OmpLastPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do j=6,10
-   !DEF: /test_simd_multi/Block1/k (OmpLastPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+   !DEF: /test_simd_multi/OtherConstruct1/k (OmpLastPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
    do k=11,15
     !REF: /test_simd_multi/a
-    !REF: /test_simd_multi/Block1/k
-    !REF: /test_simd_multi/Block1/j
-    !REF: /test_simd_multi/Block1/i
+    !REF: /test_simd_multi/OtherConstruct1/k
+    !REF: /test_simd_multi/OtherConstruct1/j
+    !REF: /test_simd_multi/OtherConstruct1/i
     a(k,j,i) = 3.14
    end do
   end do
@@ -228,17 +228,17 @@ subroutine test_seq_loop
   print *, i, j
   !$omp parallel
   !REF: /test_seq_loop/i
-  !DEF: /test_seq_loop/Block1/Block1/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /test_seq_loop/OtherConstruct1/OtherConstruct1/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   print *, i, j
   !$omp do
-  !DEF: /test_seq_loop/Block1/Block1/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
+  !DEF: /test_seq_loop/OtherConstruct1/OtherConstruct1/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
   do i=1,10
-   !REF: /test_seq_loop/Block1/Block1/j
+   !REF: /test_seq_loop/OtherConstruct1/OtherConstruct1/j
    do j=1,10
    end do
   end do
   !REF: /test_seq_loop/i
-  !REF: /test_seq_loop/Block1/Block1/j
+  !REF: /test_seq_loop/OtherConstruct1/OtherConstruct1/j
   print *, i, j
   !$omp end parallel
   !REF: /test_seq_loop/i

diff  --git a/flang/test/Semantics/data16.f90 b/flang/test/Semantics/data16.f90
index 7f8075c2ec662..dcaff787a9594 100644
--- a/flang/test/Semantics/data16.f90
+++ b/flang/test/Semantics/data16.f90
@@ -1,15 +1,17 @@
 ! RUN: %python %S/test_errors.py %s %flang_fc1
-! Ensure that implicit declarations work in DATA statements
-! appearing in specification parts of inner procedures; they
-! should not elicit diagnostics about initialization of host
-! associated objects.
 program main
  contains
   subroutine subr
     data foo/6.66/ ! implicit declaration of "foo": ok
+    integer m
     !ERROR: Implicitly typed local entity 'n' not allowed in specification expression
     real a(n)
     !ERROR: Host-associated object 'n' must not be initialized in a DATA statement
     data n/123/
+    block
+      real b(m)
+      !ERROR: Host-associated object 'm' must not be initialized in a DATA statement
+      data m/10/
+    end block
   end subroutine
 end program

diff  --git a/flang/test/Semantics/symbol05.f90 b/flang/test/Semantics/symbol05.f90
index 306127fce3968..a2781ed3d5d80 100644
--- a/flang/test/Semantics/symbol05.f90
+++ b/flang/test/Semantics/symbol05.f90
@@ -6,17 +6,17 @@ subroutine s1
  !DEF: /s1/x ObjectEntity INTEGER(4)
  integer x
  block
-  !DEF: /s1/Block1/y ObjectEntity INTEGER(4)
+  !DEF: /s1/BlockConstruct1/y ObjectEntity INTEGER(4)
   integer y
   !REF: /s1/x
   x = 1
-  !REF: /s1/Block1/y
+  !REF: /s1/BlockConstruct1/y
   y = 2.0
  end block
  block
-  !DEF: /s1/Block2/y ObjectEntity REAL(4)
+  !DEF: /s1/BlockConstruct2/y ObjectEntity REAL(4)
   real y
-  !REF: /s1/Block2/y
+  !REF: /s1/BlockConstruct2/y
   y = 3.0
  end block
 end subroutine
@@ -45,13 +45,13 @@ subroutine s3
  !DEF: /s3/j ObjectEntity INTEGER(8)
  integer(kind=8) j
  block
-  !DEF: /s3/Block1/t DerivedType
+  !DEF: /s3/BlockConstruct1/t DerivedType
   type :: t
-   !DEF: /s3/Block1/t/x ObjectEntity REAL(4)
-   !DEF: /s3/Block1/t/ImpliedDos1/i (Implicit) ObjectEntity INTEGER(4)
+   !DEF: /s3/BlockConstruct1/t/x ObjectEntity REAL(4)
+   !DEF: /s3/BlockConstruct1/t/ImpliedDos1/i (Implicit) ObjectEntity INTEGER(4)
    real :: x(10) = [(i, i=1,10)]
-   !DEF: /s3/Block1/t/y ObjectEntity REAL(4)
-   !DEF: /s3/Block1/t/ImpliedDos2/j ObjectEntity INTEGER(8)
+   !DEF: /s3/BlockConstruct1/t/y ObjectEntity REAL(4)
+   !DEF: /s3/BlockConstruct1/t/ImpliedDos2/j ObjectEntity INTEGER(8)
    real :: y(10) = [(j, j=1,10)]
   end type
  end block
@@ -73,10 +73,10 @@ subroutine s (x, y)
 !DEF: /s5 (Subroutine) Subprogram
 subroutine s5
  block
-  !DEF: /s5/Block1/x (Implicit) ObjectEntity REAL(4)
+  !DEF: /s5/BlockConstruct1/x (Implicit) ObjectEntity REAL(4)
   dimension :: x(2)
   block
-   !DEF: /s5/Block1/Block1/x (Implicit) ObjectEntity REAL(4)
+   !DEF: /s5/BlockConstruct1/BlockConstruct1/x (Implicit) ObjectEntity REAL(4)
    dimension :: x(3)
   end block
  end block
@@ -91,13 +91,13 @@ subroutine s6
   !DEF: /s6/k ObjectEntity INTEGER(4)
   integer i, j, k
   block
-    !DEF: /s6/Block1/i ASYNCHRONOUS, VOLATILE HostAssoc INTEGER(4)
+    !DEF: /s6/BlockConstruct1/i ASYNCHRONOUS, VOLATILE HostAssoc INTEGER(4)
     volatile :: i
-    !DEF: /s6/Block1/j ASYNCHRONOUS HostAssoc INTEGER(4)
+    !DEF: /s6/BlockConstruct1/j ASYNCHRONOUS HostAssoc INTEGER(4)
     asynchronous :: j
-    !REF: /s6/Block1/i
+    !REF: /s6/BlockConstruct1/i
     asynchronous :: i
-    !DEF: /s6/Block1/k TARGET (Implicit) ObjectEntity INTEGER(4)
+    !DEF: /s6/BlockConstruct1/k TARGET (Implicit) ObjectEntity INTEGER(4)
     target :: k
   end block
 end subroutine

diff  --git a/flang/test/Semantics/symbol09.f90 b/flang/test/Semantics/symbol09.f90
index 0b49f45cd9cc3..06dd4cdf7d925 100644
--- a/flang/test/Semantics/symbol09.f90
+++ b/flang/test/Semantics/symbol09.f90
@@ -25,10 +25,10 @@ subroutine s2
  real a(10)
  !DEF: /s2/i ObjectEntity INTEGER(4)
  integer i
- !DEF: /s2/Block1/i ObjectEntity INTEGER(4)
+ !DEF: /s2/OtherConstruct1/i ObjectEntity INTEGER(4)
  do concurrent(i=1:10)
   !REF: /s2/a
-  !REF: /s2/Block1/i
+  !REF: /s2/OtherConstruct1/i
   a(i) = i
  end do
  !REF: /s2/i
@@ -104,14 +104,14 @@ subroutine s6
  integer(kind=8) j
  !DEF: /s6/a ObjectEntity INTEGER(4)
  integer :: a(5) = 1
- !DEF: /s6/Block1/i ObjectEntity INTEGER(4)
- !DEF: /s6/Block1/j (LocalityLocal) HostAssoc INTEGER(8)
- !DEF: /s6/Block1/k (Implicit, LocalityLocalInit) HostAssoc INTEGER(4)
-  !DEF: /s6/Block1/a (LocalityShared) HostAssoc INTEGER(4)
+ !DEF: /s6/OtherConstruct1/i ObjectEntity INTEGER(4)
+ !DEF: /s6/OtherConstruct1/j (LocalityLocal) HostAssoc INTEGER(8)
+ !DEF: /s6/OtherConstruct1/k (Implicit, LocalityLocalInit) HostAssoc INTEGER(4)
+  !DEF: /s6/OtherConstruct1/a (LocalityShared) HostAssoc INTEGER(4)
  do concurrent(integer::i=1:5)local(j)local_init(k)shared(a)
-  !REF: /s6/Block1/a
-  !REF: /s6/Block1/i
-  !REF: /s6/Block1/j
+  !REF: /s6/OtherConstruct1/a
+  !REF: /s6/OtherConstruct1/i
+  !REF: /s6/OtherConstruct1/j
   a(i) = j+1
  end do
 end subroutine

diff  --git a/flang/test/Semantics/symbol11.f90 b/flang/test/Semantics/symbol11.f90
index b3e6e26f366da..1fbe685863a62 100644
--- a/flang/test/Semantics/symbol11.f90
+++ b/flang/test/Semantics/symbol11.f90
@@ -12,14 +12,14 @@ subroutine s1
  !REF: /s1/t
  !DEF: /s1/z ALLOCATABLE ObjectEntity CLASS(t)
  class(t), allocatable :: z
- !DEF: /s1/Block1/a AssocEntity REAL(8)
+ !DEF: /s1/OtherConstruct1/a AssocEntity REAL(8)
  !REF: /s1/x
- !DEF: /s1/Block1/b AssocEntity REAL(8)
- !DEF: /s1/Block1/c AssocEntity CLASS(t)
+ !DEF: /s1/OtherConstruct1/b AssocEntity REAL(8)
+ !DEF: /s1/OtherConstruct1/c AssocEntity CLASS(t)
  !REF: /s1/z
  associate (a => x, b => x+1, c => z)
   !REF: /s1/x
-  !REF: /s1/Block1/a
+  !REF: /s1/OtherConstruct1/a
   x = a
  end associate
 end subroutine
@@ -29,18 +29,18 @@ subroutine s2
  !DEF: /s2/x ObjectEntity CHARACTER(4_4,1)
  !DEF: /s2/y ObjectEntity CHARACTER(4_4,1)
  character(len=4) x, y
- !DEF: /s2/Block1/z AssocEntity CHARACTER(4_8,1)
+ !DEF: /s2/OtherConstruct1/z AssocEntity CHARACTER(4_8,1)
  !REF: /s2/x
  associate (z => x)
-  !REF: /s2/Block1/z
+  !REF: /s2/OtherConstruct1/z
   print *, "z:", z
  end associate
  !TODO: need correct length for z
- !DEF: /s2/Block2/z AssocEntity CHARACTER(8_8,1)
+ !DEF: /s2/OtherConstruct2/z AssocEntity CHARACTER(8_8,1)
  !REF: /s2/x
  !REF: /s2/y
  associate (z => x//y)
-  !REF: /s2/Block2/z
+  !REF: /s2/OtherConstruct2/z
   print *, "z:", z
  end associate
 end subroutine
@@ -68,17 +68,17 @@ subroutine s3
   !REF: /s3/t2
   class is (t2)
    !REF: /s3/i
-   !DEF: /s3/Block1/y TARGET AssocEntity TYPE(t2)
+   !DEF: /s3/OtherConstruct1/y TARGET AssocEntity TYPE(t2)
    !REF: /s3/t2/a2
    i = y%a2
   !REF: /s3/t1
   type is (t1)
    !REF: /s3/i
-   !DEF: /s3/Block2/y TARGET AssocEntity TYPE(t1)
+   !DEF: /s3/OtherConstruct2/y TARGET AssocEntity TYPE(t1)
    !REF: /s3/t1/a1
    i = y%a1
   class default
-   !DEF: /s3/Block3/y TARGET AssocEntity CLASS(t1)
+   !DEF: /s3/OtherConstruct3/y TARGET AssocEntity CLASS(t1)
    print *, y
  end select
 end subroutine
@@ -99,11 +99,11 @@ subroutine s4
  !REF: /s4/t2
  !DEF: /s4/x ObjectEntity TYPE(t2)
  type(t2) :: x
- !DEF: /s4/Block1/y AssocEntity TYPE(t1)
+ !DEF: /s4/OtherConstruct1/y AssocEntity TYPE(t1)
  !REF: /s4/x
  !REF: /s4/t2/b
  associate(y => x%b)
-  !REF: /s4/Block1/y
+  !REF: /s4/OtherConstruct1/y
   !REF: /s4/t1/a
   y%a = 0.0
  end associate
@@ -118,11 +118,11 @@ subroutine s5
  end type
  !DEF: /s5/b ObjectEntity REAL(4)
  real b
- !DEF: /s5/Block1/x AssocEntity TYPE(t)
+ !DEF: /s5/OtherConstruct1/x AssocEntity TYPE(t)
  !DEF: /s5/f (Function) Subprogram TYPE(t)
  associate(x => f())
   !REF: /s5/b
-  !REF: /s5/Block1/x
+  !REF: /s5/OtherConstruct1/x
   !REF: /s5/t/a
   b = x%a
  end associate


        


More information about the flang-commits mailing list