diff --git a/flang/include/flang/Evaluate/type.h b/flang/include/flang/Evaluate/type.h index 6ab09f60789d2..a57d8107b7e33 100644 --- a/flang/include/flang/Evaluate/type.h +++ b/flang/include/flang/Evaluate/type.h @@ -142,7 +142,7 @@ class DynamicType { return charLengthParamValue_; } constexpr std::optional knownLength() const { -#if !__clang__ && __GNUC__ == 7 +#if defined(_GLIBCXX_RELEASE) && _GLIBCXX_RELEASE == 7 if (knownLength_ < 0) { return std::nullopt; } @@ -222,7 +222,7 @@ class DynamicType { TypeCategory category_{TypeCategory::Derived}; // overridable default int kind_{0}; const semantics::ParamValue *charLengthParamValue_{nullptr}; -#if !__clang__ && __GNUC__ == 7 +#if defined(_GLIBCXX_RELEASE) && _GLIBCXX_RELEASE == 7 // GCC 7's optional<> lacks a constexpr operator= std::int64_t knownLength_{-1}; #else