diff --git a/llvm/include/llvm/IR/DebugInfoMetadata.h b/llvm/include/llvm/IR/DebugInfoMetadata.h index 91cda271f498b..0f6a206cab75f 100644 --- a/llvm/include/llvm/IR/DebugInfoMetadata.h +++ b/llvm/include/llvm/IR/DebugInfoMetadata.h @@ -2237,7 +2237,7 @@ class DILocation : public MDNode { friend class MDNode; #ifdef EXPERIMENTAL_KEY_INSTRUCTIONS uint64_t AtomGroup : 61; - uint8_t AtomRank : 3; + uint64_t AtomRank : 3; #endif DILocation(LLVMContext &C, StorageType Storage, unsigned Line, diff --git a/llvm/lib/IR/LLVMContextImpl.h b/llvm/lib/IR/LLVMContextImpl.h index ad5fb802029fe..7b2ff6cf80972 100644 --- a/llvm/lib/IR/LLVMContextImpl.h +++ b/llvm/lib/IR/LLVMContextImpl.h @@ -316,7 +316,7 @@ template <> struct MDNodeKeyImpl { Metadata *InlinedAt; bool ImplicitCode; uint64_t AtomGroup : 61; - uint8_t AtomRank : 3; + uint64_t AtomRank : 3; MDNodeKeyImpl(unsigned Line, unsigned Column, Metadata *Scope, Metadata *InlinedAt, bool ImplicitCode, uint64_t AtomGroup, @@ -338,7 +338,7 @@ template <> struct MDNodeKeyImpl { unsigned getHashValue() const { return hash_combine(Line, Column, Scope, InlinedAt, ImplicitCode, AtomGroup, - AtomRank); + (uint8_t)AtomRank); } };