Revert "[Flang][OpenMP] Add semantic check for OpenMP Private, Firstp… · llvm/llvm-project@0000030 (original) (raw)

`@@ -279,18 +279,6 @@ class OmpAttributeVisitor : DirectiveAttributeVisitorllvm::omp::Directive {

`

279

279

`return true;

`

280

280

` }

`

281

281

``

282

``

`-

bool Pre(const parser::StmtFunctionStmt &x) {

`

283

``

`-

const auto &parsedExpr{std::get<parser::Scalarparser::Expr>(x.t)};

`

284

``

`-

if (const auto *expr{GetExpr(parsedExpr)}) {

`

285

``

`-

for (const Symbol &symbol : evaluate::CollectSymbols(*expr)) {

`

286

``

`-

if (!IsStmtFunctionDummy(symbol)) {

`

287

``

`-

stmtFunctionExprSymbols_.insert(symbol.GetUltimate());

`

288

``

`-

}

`

289

``

`-

}

`

290

``

`-

}

`

291

``

`-

return true;

`

292

``

`-

}

`

293

``

-

294

282

`bool Pre(const parser::OpenMPBlockConstruct &);

`

295

283

`void Post(const parser::OpenMPBlockConstruct &);

`

296

284

``

`@@ -530,7 +518,7 @@ class OmpAttributeVisitor : DirectiveAttributeVisitorllvm::omp::Directive {

`

530

518

`void CheckDataCopyingClause(

`

531

519

`const parser::Name &, const Symbol &, Symbol::Flag);

`

532

520

`void CheckAssocLoopLevel(std::int64_t level, const parser::OmpClause *clause);

`

533

``

`-

void CheckPrivateDSAObject(

`

``

521

`+

void CheckObjectInNamelist(

`

534

522

`const parser::Name &, const Symbol &, Symbol::Flag);

`

535

523

`void CheckSourceLabel(const parser::Label &);

`

536

524

`void CheckLabelContext(const parser::CharBlock, const parser::CharBlock,

`

`@@ -1585,7 +1573,7 @@ void OmpAttributeVisitor::ResolveOmpObject(

`

1585

1573

`CheckMultipleAppearances(*name, *symbol, ompFlag);

`

1586

1574

` }

`

1587

1575

`if (privateDataSharingAttributeFlags.test(ompFlag)) {

`

1588

``

`-

CheckPrivateDSAObject(*name, *symbol, ompFlag);

`

``

1576

`+

CheckObjectInNamelist(*name, *symbol, ompFlag);

`

1589

1577

` }

`

1590

1578

``

1591

1579

`if (ompFlag == Symbol::Flag::OmpAllocate) {

`

`@@ -1779,7 +1767,7 @@ void OmpAttributeVisitor::CheckDataCopyingClause(

`

1779

1767

` }

`

1780

1768

`}

`

1781

1769

``

1782

``

`-

void OmpAttributeVisitor::CheckPrivateDSAObject(

`

``

1770

`+

void OmpAttributeVisitor::CheckObjectInNamelist(

`

1783

1771

`const parser::Name &name, const Symbol &symbol, Symbol::Flag ompFlag) {

`

1784

1772

`const auto &ultimateSymbol{symbol.GetUltimate()};

`

1785

1773

` llvm::StringRef clauseName{"PRIVATE"};

`

`@@ -1794,14 +1782,6 @@ void OmpAttributeVisitor::CheckPrivateDSAObject(

`

1794

1782

`"Variable '%s' in NAMELIST cannot be in a %s clause"_err_en_US,

`

1795

1783

` name.ToString(), clauseName.str());

`

1796

1784

` }

`

1797

``

-

1798

``

`-

if (stmtFunctionExprSymbols_.find(ultimateSymbol) !=

`

1799

``

`-

stmtFunctionExprSymbols_.end()) {

`

1800

``

`-

context_.Say(name.source,

`

1801

``

`-

"Variable '%s' in STATEMENT FUNCTION expression cannot be in a "

`

1802

``

`-

"%s clause"_err_en_US,

`

1803

``

`-

name.ToString(), clauseName.str());

`

1804

``

`-

}

`

1805

1785

`}

`

1806

1786

``

1807

1787

`void OmpAttributeVisitor::CheckSourceLabel(const parser::Label &label) {

`