diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp index 6533e8281631a8..1e33c2729e5d83 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp @@ -1650,7 +1650,8 @@ DIE &DwarfUnit::constructMemberDIE(DIE &Buffer, const DIDerivedType *DT) { addUInt(MemberDie, dwarf::DW_AT_byte_size, std::nullopt, FieldSize / 8); addUInt(MemberDie, dwarf::DW_AT_bit_size, std::nullopt, Size); - assert(DT->getOffsetInBits() <= std::numeric_limits::max()); + assert(DT->getOffsetInBits() <= + (uint64_t)std::numeric_limits::max()); int64_t Offset = DT->getOffsetInBits(); // We can't use DT->getAlignInBits() here: AlignInBits for member type // is non-zero if and only if alignment was forced (e.g. _Alignas()),