diff --git a/src/corelib/plugin/quuid.cpp b/src/corelib/plugin/quuid.cpp index 77b9696eb51..e0e395ab1a0 100644 --- a/src/corelib/plugin/quuid.cpp +++ b/src/corelib/plugin/quuid.cpp @@ -994,10 +994,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); }