From 94c04c3e54e2670c7b15877471d7a475b5926acd Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Thu, 6 Feb 2020 11:24:09 +0100 Subject: QTypeRevision: Disallow floats and doubles as arguments Previously those would be implicitly casted to qint8, with interesting results. Change-Id: I145a737a7ef7a6f5212461b9f6a1fcb5d7780558 Reviewed-by: Shawn Rutledge Reviewed-by: Fabian Kosmale --- src/corelib/tools/qversionnumber.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/tools/qversionnumber.h b/src/corelib/tools/qversionnumber.h index 03a27548b8..2f886346c9 100644 --- a/src/corelib/tools/qversionnumber.h +++ b/src/corelib/tools/qversionnumber.h @@ -47,6 +47,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -334,11 +335,11 @@ public: template = true> static constexpr bool isValidSegment(Integer segment) { - return segment >= Integer(0) && segment < Integer(SegmentUnknown); + return segment >= Integer(0) + && (std::numeric_limits::max() < Integer(SegmentUnknown) + || segment < Integer(SegmentUnknown)); } - static constexpr bool isValidSegment(qint8 segment) { return segment >= 0; } - template = true, if_valid_segment_type = true> -- cgit v1.2.3