summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/global/qglobal
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2023-09-14 18:22:12 +0200
committerMarc Mutz <marc.mutz@qt.io>2023-12-09 05:29:23 +0100
commit28f1eb6c838529675613f05f990255d3b0a22f3a (patch)
tree7fc362cc7a6572cd8768af1e5f4885802f5c56b1 /tests/auto/corelib/global/qglobal
parentecef7046245f3adee9366d3543e4ed2a09f65735 (diff)
tst_QGlobal: work around ubsan issue in toString(qint128)
Found a problem on GCC 9.4 where asan/ubsan seems to break std::numeric_limits<int128>::min(): runtime error: negation of 0x80000000000000000000000000000000 cannot be represented in type '__int128'; cast to an unsigned type to negate this value to itself This is the -i _after_ we've already checked for ::min() two lines above. It works with Q_INT128_MIN, though, so use that. Pick-to: 6.6 Change-Id: I778980baf4e7eea9f8de06697d792241314acacd Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'tests/auto/corelib/global/qglobal')
-rw-r--r--tests/auto/corelib/global/qglobal/tst_qglobal.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/tests/auto/corelib/global/qglobal/tst_qglobal.cpp b/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
index 6da78555cb..b7c45b6480 100644
--- a/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
+++ b/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
@@ -37,7 +37,7 @@ namespace detail {
template <>
char *toString(const qint128 &i)
{
- if (i == std::numeric_limits<qint128>::min()) // -i is not representable, hardcode:
+ if (i == Q_INT128_MIN) // -i is not representable, hardcode:
return qstrdup("-170141183460469231731687303715884105728");
std::array<char, 64> buffer;
auto dst = detail::i128ToStringHelper(buffer, i < 0 ? -i : i);