Index: llvm/lib/CodeGen/LiveDebugVariables.cpp =================================================================== --- llvm/lib/CodeGen/LiveDebugVariables.cpp +++ llvm/lib/CodeGen/LiveDebugVariables.cpp @@ -96,22 +96,13 @@ enum : unsigned { UndefLocNo = ~0U }; -/// Describes a location by number along with some flags about the original -/// usage of the location. +/// Describes a debug variable location by number. class DbgValueLocation { public: - DbgValueLocation(unsigned LocNo) - : LocNo(LocNo) { - static_assert(sizeof(*this) == sizeof(unsigned), "bad bitfield packing"); - assert(locNo() == LocNo && "location truncation"); - } - - DbgValueLocation() : LocNo(0) {} + DbgValueLocation() = default; + DbgValueLocation(unsigned LocNo) : LocNo(LocNo) {} - unsigned locNo() const { - // Fix up the undef location number, which gets truncated. - return LocNo == INT_MAX ? UndefLocNo : LocNo; - } + unsigned locNo() const { return LocNo; } bool isUndef() const { return locNo() == UndefLocNo; } DbgValueLocation changeLocNo(unsigned NewLocNo) const { @@ -129,7 +120,7 @@ } private: - unsigned LocNo; + unsigned LocNo = 0u; }; /// Map of where a user value is live, and its location.