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) {
`