diff options
Diffstat (limited to 'llvm/include/llvm/Object/WasmTraits.h')
-rw-r--r-- | llvm/include/llvm/Object/WasmTraits.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/llvm/include/llvm/Object/WasmTraits.h b/llvm/include/llvm/Object/WasmTraits.h index ebcd00b1522..049d72f79e4 100644 --- a/llvm/include/llvm/Object/WasmTraits.h +++ b/llvm/include/llvm/Object/WasmTraits.h @@ -24,14 +24,20 @@ template <typename T> struct DenseMapInfo; // Traits for using WasmSignature in a DenseMap. template <> struct DenseMapInfo<wasm::WasmSignature> { static wasm::WasmSignature getEmptyKey() { - return wasm::WasmSignature{{}, 1}; + wasm::WasmSignature Sig; + Sig.State = wasm::WasmSignature::Empty; + return Sig; } static wasm::WasmSignature getTombstoneKey() { - return wasm::WasmSignature{{}, 2}; + wasm::WasmSignature Sig; + Sig.State = wasm::WasmSignature::Tombstone; + return Sig; } static unsigned getHashValue(const wasm::WasmSignature &Sig) { - unsigned H = hash_value(Sig.ReturnType); - for (int32_t Param : Sig.ParamTypes) + uintptr_t H = hash_value(Sig.State); + for (auto Ret : Sig.Returns) + H = hash_combine(H, Ret); + for (auto Param : Sig.Params) H = hash_combine(H, Param); return H; } |