Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.5.2, 6.6.0 Beta2, dev
-
None
-
Ubuntu 20.04, Clang 15, GCC 11, GCC 9
-
c86cf385d (dev), 2d4db1bff (6.5), 3a9bbf235 (6.6), 1845d4332 (dev), c4aa3b0dc (6.7)
Description
Besides QTBUG-116076, which is probably still fixable, we also have that
- qHash(42.f),
- qHash(42.), and probably also
- qHash(42.L
all produce different values.
Expectation would be, like in the epic, that equal values produce equal hash values.
This might be fixable in Qt 6, as the double and long double overloads are out-of-line, only the float one is inline and therefore immutable.
Attachments
Issue Links
- clones
-
QTBUG-116076 qHash(qfloat16(x), seed) != qHash(float(x), seed) unless seed == 0
- Closed
- is cloned by
-
QTBUG-116080 Inconsistent hashing between qint{32,64} on 32-bit platforms
- Closed
- relates to
-
QTBUG-116064 [REG SiC 6.4 -> 6.5] qHash(qfloat16(x)) is now ambiguous on GCC13
- Closed
Gerrit Reviews
For Gerrit Dashboard: QTBUG-116077 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
496753,3 | tst_QHashFunctions: extend the consistency() test with int/FP types | dev | qt/qtbase | Status: MERGED | +2 | 0 |
497081,2 | tst_QHashFunctions: extend the consistency() test with int/FP types | 6.6 | qt/qtbase | Status: MERGED | +2 | 0 |
497082,2 | tst_QHashFunctions: extend the consistency() test with int/FP types | 6.5 | qt/qtbase | Status: MERGED | +2 | 0 |
536950,6 | tst_QHashFunctions: make the consistency check table-driven | dev | qt/qtbase | Status: MERGED | +2 | 0 |
539549,2 | tst_QHashFunctions: make the consistency check table-driven | 6.7 | qt/qtbase | Status: MERGED | +2 | 0 |