[flang] Dodge two bogus warnings from g++ 8.1
authorpeter klausler <pklausler@nvidia.com>
Wed, 7 Aug 2019 16:18:20 +0000 (09:18 -0700)
committerpeter klausler <pklausler@nvidia.com>
Wed, 7 Aug 2019 16:18:20 +0000 (09:18 -0700)
Original-commit: flang-compiler/f18@aa19aeb92aedb02310a081f794c7a2046e801e2d
Reviewed-on: https://github.com/flang-compiler/f18/pull/633

flang/lib/evaluate/expression.cc
flang/lib/evaluate/tools.h

index 0d412c9..4e260bb 100644 (file)
@@ -88,9 +88,8 @@ std::optional<DynamicType> ExpressionBase<A>::GetType() const {
         [&](const auto &x) -> std::optional<DynamicType> {
           if constexpr (!common::HasMember<decltype(x), TypelessExpression>) {
             return x.GetType();
-          } else {
-            return std::nullopt;
           }
+          return std::nullopt;  // w/o "else" to dodge bogus g++ 8.1 warning
         },
         derived().u);
   }
index 0b3dc38..7658dc9 100644 (file)
@@ -217,9 +217,8 @@ std::optional<DataRef> ExtractDataRef(const Designator<T> &d) {
       [](const auto &x) -> std::optional<DataRef> {
         if constexpr (common::HasMember<decltype(x), decltype(DataRef::u)>) {
           return DataRef{x};
-        } else {
-          return std::nullopt;
         }
+        return std::nullopt;  // w/o "else" to dodge bogus g++ 8.1 warning
       },
       d.u);
 }