From ff6d2cb0d5779d81e89d94d65c8d164602fa2567 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sat, 2 May 2020 11:48:20 -0700 Subject: [PATCH] Fix Clang 10 warning about LLONG_MAX being inexact in double validator.cpp:707:19: error: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Werror,- Wimplicit-int-float-conversion] Task-number: QTBUG-83666 Pick-To: 5.15 Change-Id: I99ab0f318b1c43b89888fffd160b4a95a258423b Reviewed-by: Fabian Kosmale Reviewed-by: Samuel Gaist --- src/gui/util/qvalidator.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gui/util/qvalidator.cpp b/src/gui/util/qvalidator.cpp index b968592c01..21641a76b4 100644 --- a/src/gui/util/qvalidator.cpp +++ b/src/gui/util/qvalidator.cpp @@ -693,8 +693,9 @@ QValidator::State QDoubleValidatorPrivate::validateWithLocale(QString &input, QL if (notation == QDoubleValidator::StandardNotation) { double max = qMax(qAbs(q->b), qAbs(q->t)); - if (max < double(LLONG_MAX)) { - qlonglong n = pow10(numDigits(qlonglong(max))); + qlonglong v; + if (convertDoubleTo(max, &v)) { + qlonglong n = pow10(numDigits(v)); // In order to get the highest possible number in the intermediate // range we need to get 10 to the power of the number of digits // after the decimal's and subtract that from the top number.