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.