diff --git a/flang/lib/Semantics/expression.cpp b/flang/lib/Semantics/expression.cpp --- a/flang/lib/Semantics/expression.cpp +++ b/flang/lib/Semantics/expression.cpp @@ -1835,7 +1835,7 @@ static int GetPassIndex(const Symbol &proc) { CHECK(!proc.attrs().test(semantics::Attr::NOPASS)); std::optional passName{GetPassName(proc)}; - const auto *interface{semantics::FindInterface(proc)}; + const auto *interface { semantics::FindInterface(proc) }; if (!passName || !interface) { return 0; // first argument is passed-object } @@ -3215,26 +3215,28 @@ // be detected and represented (they're not expressions). // TODO: C1534: Don't allow a "restricted" specific intrinsic to be passed. std::optional actual; - std::visit(common::visitors{ - [&](const common::Indirection &x) { - actual = AnalyzeExpr(x.value()); - SetArgSourceLocation(actual, x.value().source); - }, - [&](const parser::AltReturnSpec &label) { - if (!isSubroutine) { - context_.Say( - "alternate return specification may not appear on" - " function reference"_err_en_US); - } - actual = ActualArgument(label.v); - }, - [&](const parser::ActualArg::PercentRef &) { - context_.Say("TODO: %REF() argument"_err_en_US); - }, - [&](const parser::ActualArg::PercentVal &) { - context_.Say("TODO: %VAL() argument"_err_en_US); - }, - }, + std::visit( + common::visitors{ + [&](const common::Indirection &x) { + actual = AnalyzeExpr(x.value()); + SetArgSourceLocation(actual, x.value().source); + }, + [&](const parser::AltReturnSpec &label) { + if (!isSubroutine) { + context_.Say("alternate return specification may not appear on" + " function reference"_err_en_US); + } + actual = ActualArgument(label.v); + }, + [&](const parser::ActualArg::PercentRef &) { + context_.Say( + "not yet implemented: %REF() intrinsic for arguments"_err_en_US); + }, + [&](const parser::ActualArg::PercentVal &) { + context_.Say( + "not yet implemetned: %VAL() intrinsic for arguments"_err_en_US); + }, + }, std::get(arg.t).u); if (actual) { if (const auto &argKW{std::get>(arg.t)}) { diff --git a/flang/lib/Semantics/resolve-names.cpp b/flang/lib/Semantics/resolve-names.cpp --- a/flang/lib/Semantics/resolve-names.cpp +++ b/flang/lib/Semantics/resolve-names.cpp @@ -4721,7 +4721,7 @@ } bool DeclarationVisitor::Pre(const parser::Union::UnionStmt &) { - Say("UNION is not yet supported"_err_en_US); // TODO + Say("not yet implemented: support for UNION"_err_en_US); // TODO return true; } diff --git a/flang/runtime/edit-output.cpp b/flang/runtime/edit-output.cpp --- a/flang/runtime/edit-output.cpp +++ b/flang/runtime/edit-output.cpp @@ -411,7 +411,7 @@ template bool RealOutputEditing::EditEXOutput(const DataEdit &) { io_.GetIoErrorHandler().Crash( - "EX output editing is not yet implemented"); // TODO + "not yet implemented: EX output editing"); // TODO } template bool RealOutputEditing::Edit(const DataEdit &edit) { diff --git a/flang/test/Semantics/struct01.f90 b/flang/test/Semantics/struct01.f90 --- a/flang/test/Semantics/struct01.f90 +++ b/flang/test/Semantics/struct01.f90 @@ -6,7 +6,7 @@ structure /s/ !ERROR: /s/ is not a known STRUCTURE record /s/ attemptToRecurse - !ERROR: UNION is not yet supported + !ERROR: not yet implemented: support for UNION union map integer j