[llvm] [BOLT] Fix debug line emission for functions in multiple compilation units (PR #151230)
Alexander Yermolovich via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 4 11:14:28 PDT 2025
================
@@ -679,74 +681,104 @@ void BinaryEmitter::emitConstantIslands(BinaryFunction &BF, bool EmitColdPart,
SMLoc BinaryEmitter::emitLineInfo(const BinaryFunction &BF, SMLoc NewLoc,
SMLoc PrevLoc, bool FirstInstr,
MCSymbol *&InstrLabel) {
- DWARFUnit *FunctionCU = BF.getDWARFUnit();
- const DWARFDebugLine::LineTable *FunctionLineTable = BF.getDWARFLineTable();
- assert(FunctionCU && "cannot emit line info for function without CU");
-
- DebugLineTableRowRef RowReference = DebugLineTableRowRef::fromSMLoc(NewLoc);
-
- // Check if no new line info needs to be emitted.
- if (RowReference == DebugLineTableRowRef::NULL_ROW ||
+ if (NewLoc.getPointer() == nullptr ||
NewLoc.getPointer() == PrevLoc.getPointer())
return PrevLoc;
+ const ClusteredRows *Cluster = ClusteredRows::fromSMLoc(NewLoc);
+
+ auto addToLineTable = [&](DebugLineTableRowRef RowReference,
+ const DWARFUnit *TargetCU, unsigned Flags,
----------------
ayermolo wrote:
Pass by reference if it can't be null, otherwise check.
https://github.com/llvm/llvm-project/pull/151230
More information about the llvm-commits
mailing list