[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