[flang] Also fix bug#377
authorpeter klausler <pklausler@nvidia.com>
Tue, 2 Apr 2019 18:02:30 +0000 (11:02 -0700)
committerpeter klausler <pklausler@nvidia.com>
Tue, 2 Apr 2019 18:02:30 +0000 (11:02 -0700)
Original-commit: flang-compiler/f18@56631cf5e10a5f7f2909d8b83ede72b21d986348
Reviewed-on: https://github.com/flang-compiler/f18/pull/378
Tree-same-pre-rewrite: false

flang/lib/evaluate/formatting.cc

index a44a075..e5ebc2a 100644 (file)
@@ -212,14 +212,14 @@ static constexpr Precedence GetPrecedence(const Expr<SomeDerived> &expr) {
       [](const auto &x) { return ToPrecedence<std::decay_t<decltype(x)>>; },
       expr.u);
 }
+static constexpr Precedence GetPrecedence(const BOZLiteralConstant &) {
+  return Precedence::Primary;
+}
+static constexpr Precedence GetPrecedence(const NullPointer &) {
+  return Precedence::Primary;
+}
 static constexpr Precedence GetPrecedence(const Expr<SomeType> &expr) {
-  return std::visit(
-      common::visitors{
-          [](const BOZLiteralConstant &) { return Precedence::Primary; },
-          [](const NullPointer &) { return Precedence::Primary; },
-          [](const auto &x) { return GetPrecedence(x); },
-      },
-      expr.u);
+  return std::visit([](const auto &x) { return GetPrecedence(x); }, expr.u);
 }
 
 template<typename T> static bool IsNegatedScalarConstant(const Expr<T> &expr) {