$OpenBSD: patch-src_rttr_detail_conversion_number_conversion_h,v 1.2 2020/08/17 14:41:00 rsadowski Exp $

Unbreak with LLVM10

Index: src/rttr/detail/conversion/number_conversion.h
--- src/rttr/detail/conversion/number_conversion.h.orig
+++ src/rttr/detail/conversion/number_conversion.h
@@ -98,9 +98,9 @@ typename std::enable_if<is_integer<F, T>::value &&
                         bool>::type
 convert_to(const F& from, T& to)
 {
-    if (from > std::numeric_limits<T>::max())
+    if (from > static_cast<F>(std::numeric_limits<T>::max()))
         return false; // value too large
-    else if (from < std::numeric_limits<T>::min())
+    else if (from < -static_cast<F>(std::numeric_limits<T>::max()))
         return false; // value too small
 
     to = static_cast<T>(from);
@@ -116,7 +116,7 @@ typename std::enable_if<is_integer<F, T>::value &&
                         bool>::type
 convert_to(const F& from, T& to)
 {
-    if (from > std::numeric_limits<T>::max())
+    if (from < 0 || from > static_cast<F>(std::numeric_limits<T>::max()))
         return false; // value too large
 
     to = static_cast<T>(from);
@@ -134,9 +134,9 @@ typename std::enable_if<std::is_floating_point<F>::val
                         bool>::type
 convert_to(const F& from, T& to)
 {
-    if (from > std::numeric_limits<T>::max())
+    if (from > static_cast<F>(std::numeric_limits<T>::max()))
         return false; // value too large
-    else if (from < -std::numeric_limits<T>::max())
+    else if (from < -static_cast<F>(std::numeric_limits<T>::max()))
         return false; // value to small
 
     to = static_cast<T>(from);
@@ -151,7 +151,7 @@ typename std::enable_if<std::is_floating_point<F>::val
                         bool>::type
 convert_to(const F& from, T& to)
 {
-    if (from < 0 || from > std::numeric_limits<T>::max())
+    if (from < 0 || from > static_cast<F>(std::numeric_limits<T>::max()))
         return false; // value too large
 
     to = static_cast<T>(from);
