diff --git a/src/corelib/plugin/quuid.cpp b/src/corelib/plugin/quuid.cpp index a28706d65d6..d89facf4c6a 100644 --- a/src/corelib/plugin/quuid.cpp +++ b/src/corelib/plugin/quuid.cpp @@ -998,10 +998,9 @@ QDebug operator<<(QDebug dbg, const QUuid &id) */ size_t qHash(const QUuid &uuid, size_t seed) noexcept { - return uuid.data1 ^ uuid.data2 ^ (uuid.data3 << 16) - ^ ((uuid.data4[0] << 24) | (uuid.data4[1] << 16) | (uuid.data4[2] << 8) | uuid.data4[3]) - ^ ((uuid.data4[4] << 24) | (uuid.data4[5] << 16) | (uuid.data4[6] << 8) | uuid.data4[7]) - ^ seed; + static_assert(std::has_unique_object_representations_v, + "Can't use qHashBits() if the type has padding holes."); + return qHashBits(&uuid, sizeof(QUuid), seed); }