diff options
-rw-r--r-- | src/corelib/tools/qversionnumber.h | 7 |
1 files changed, 4 insertions, 3 deletions
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 <QtCore/qvector.h> #include <QtCore/qmetatype.h> #include <QtCore/qtypeinfo.h> +#include <limits> QT_BEGIN_NAMESPACE @@ -334,11 +335,11 @@ public: template<typename Integer, if_valid_segment_type<Integer> = true> static constexpr bool isValidSegment(Integer segment) { - return segment >= Integer(0) && segment < Integer(SegmentUnknown); + return segment >= Integer(0) + && (std::numeric_limits<Integer>::max() < Integer(SegmentUnknown) + || segment < Integer(SegmentUnknown)); } - static constexpr bool isValidSegment(qint8 segment) { return segment >= 0; } - template<typename Major, typename Minor, if_valid_segment_type<Major> = true, if_valid_segment_type<Minor> = true> |