[PATCH] D102943: Hashing: use a 64-bit storage type on all platforms.
Alexandre Rames via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri May 21 13:31:13 PDT 2021
arames created this revision.
Herald added subscribers: dexonsmith, usaxena95, kadircet, arphaman, hiraditya.
arames requested review of this revision.
Herald added projects: clang, LLVM, clang-tools-extra.
Herald added subscribers: cfe-commits, llvm-commits.
`size_t` varying across platforms can cause issues, for example mismatching
hashes when cross-compiling modules from a 64bit target to a 32bit target.
Although the comments note that `hash_code` values "are not stable to save or
persist", it is effectively used in such cases today, for example for implicit
module hashes.
Since hashing mechanisms in practice already use `uint64_t` for computations,
use `uint64_t` instead of `size_t` to store the value of `hash_code`.
This is similar to earlier changes in c0445098519defc4bd13624095fac92977c9cfe4.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D102943
Files:
clang-tools-extra/clangd/index/SymbolID.cpp
clang/include/clang/AST/DataCollection.h
clang/lib/Lex/HeaderSearch.cpp
llvm/include/llvm/ADT/Hashing.h
llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp
llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp
llvm/unittests/ADT/HashingTest.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D102943.347112.patch
Type: text/x-patch
Size: 8877 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210521/a994b429/attachment.bin>
More information about the cfe-commits
mailing list