diff options
author | Andrzej Warzynski <andrzej.warzynski@arm.com> | 2022-03-28 10:46:47 +0000 |
---|---|---|
committer | Andrzej Warzynski <andrzej.warzynski@arm.com> | 2022-03-28 10:46:47 +0000 |
commit | 4ca111d4cb4c0b425268c86b54fb19c4be2e88dd (patch) | |
tree | 6d91dd6a88db439cb9a40447525270865fcae20d /flang/lib/Semantics/resolve-names-utils.cpp | |
parent | 8a2a966520023cd7d424e89b730c054f1f06f496 (diff) | |
download | llvm-4ca111d4cb4c0b425268c86b54fb19c4be2e88dd.zip llvm-4ca111d4cb4c0b425268c86b54fb19c4be2e88dd.tar.gz llvm-4ca111d4cb4c0b425268c86b54fb19c4be2e88dd.tar.bz2 |
Revert "[flang] Add & use a better visit()"
This reverts commit 2ab9990c9eb79682a4d4b183dfbc7612d3e55328. It has
caused multiple build failures:
* https://lab.llvm.org/buildbot/#/builders/177/builds/4346
* https://lab.llvm.org/buildbot/#/builders/180/builds/3803
* https://lab.llvm.org/buildbot/#/builders/175/builds/10419
* https://lab.llvm.org/buildbot/#/builders/191/builds/4318
* https://lab.llvm.org/buildbot/#/builders/173/builds/4274
* https://lab.llvm.org/buildbot/#/builders/181/builds/4297
All these bots failed with a time-out:
```
command timed out: 1200 seconds without output running [b'ninja', b'-j', b'32'], attempting to kill
```
I'm guessing that that's due to template instantiations failing at some
point (https://reviews.llvm.org/D122441 introduced a custom
implementation of std::visit). Everything seems fine when either:
* building on X86 with GCC or Clang (tested with GCC 9.3 and Clang 12)
* building on AArch64 with GCC (tested with GCC 11)
Diffstat (limited to 'flang/lib/Semantics/resolve-names-utils.cpp')
-rw-r--r-- | flang/lib/Semantics/resolve-names-utils.cpp | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/flang/lib/Semantics/resolve-names-utils.cpp b/flang/lib/Semantics/resolve-names-utils.cpp index 7aab694..2d8f2c1 100644 --- a/flang/lib/Semantics/resolve-names-utils.cpp +++ b/flang/lib/Semantics/resolve-names-utils.cpp @@ -126,7 +126,7 @@ void GenericSpecInfo::Analyze(const parser::DefinedOpName &name) { void GenericSpecInfo::Analyze(const parser::GenericSpec &x) { symbolName_ = x.source; - kind_ = common::visit( + kind_ = std::visit( common::visitors{ [&](const parser::Name &y) -> GenericKind { parseName_ = &y; @@ -134,7 +134,7 @@ void GenericSpecInfo::Analyze(const parser::GenericSpec &x) { return GenericKind::OtherKind::Name; }, [&](const parser::DefinedOperator &y) { - return common::visit( + return std::visit( common::visitors{ [&](const parser::DefinedOpName &z) -> GenericKind { Analyze(z); @@ -265,20 +265,19 @@ ArraySpec AnalyzeCoarraySpec( } ArraySpec ArraySpecAnalyzer::Analyze(const parser::ComponentArraySpec &x) { - common::visit([this](const auto &y) { Analyze(y); }, x.u); + std::visit([this](const auto &y) { Analyze(y); }, x.u); CHECK(!arraySpec_.empty()); return arraySpec_; } ArraySpec ArraySpecAnalyzer::Analyze(const parser::ArraySpec &x) { - common::visit(common::visitors{ - [&](const parser::AssumedSizeSpec &y) { - Analyze( - std::get<std::list<parser::ExplicitShapeSpec>>(y.t)); - Analyze(std::get<parser::AssumedImpliedSpec>(y.t)); - }, - [&](const parser::ImpliedShapeSpec &y) { Analyze(y.v); }, - [&](const auto &y) { Analyze(y); }, - }, + std::visit(common::visitors{ + [&](const parser::AssumedSizeSpec &y) { + Analyze(std::get<std::list<parser::ExplicitShapeSpec>>(y.t)); + Analyze(std::get<parser::AssumedImpliedSpec>(y.t)); + }, + [&](const parser::ImpliedShapeSpec &y) { Analyze(y.v); }, + [&](const auto &y) { Analyze(y); }, + }, x.u); CHECK(!arraySpec_.empty()); return arraySpec_; @@ -290,7 +289,7 @@ ArraySpec ArraySpecAnalyzer::AnalyzeDeferredShapeSpecList( return arraySpec_; } ArraySpec ArraySpecAnalyzer::Analyze(const parser::CoarraySpec &x) { - common::visit( + std::visit( common::visitors{ [&](const parser::DeferredCoshapeSpecList &y) { MakeDeferred(y.v); }, [&](const parser::ExplicitCoshapeSpec &y) { @@ -496,7 +495,7 @@ const EquivalenceObject *EquivalenceSets::Find( } bool EquivalenceSets::CheckDesignator(const parser::Designator &designator) { - return common::visit( + return std::visit( common::visitors{ [&](const parser::DataRef &x) { return CheckDataRef(designator.source, x); @@ -521,7 +520,7 @@ bool EquivalenceSets::CheckDesignator(const parser::Designator &designator) { bool EquivalenceSets::CheckDataRef( const parser::CharBlock &source, const parser::DataRef &x) { - return common::visit( + return std::visit( common::visitors{ [&](const parser::Name &name) { return CheckObject(name); }, [&](const common::Indirection<parser::StructureComponent> &) { @@ -533,7 +532,7 @@ bool EquivalenceSets::CheckDataRef( [&](const common::Indirection<parser::ArrayElement> &elem) { bool ok{CheckDataRef(source, elem.value().base)}; for (const auto &subscript : elem.value().subscripts) { - ok &= common::visit( + ok &= std::visit( common::visitors{ [&](const parser::SubscriptTriplet &) { context_.Say(source, // C924, R872 |