tree 52303c2d307dcfa5a0e03586515dc7e409ea86a3
parent 139add531a5533a7591527a3e6cee7dca0f795c3
author alx32 <103613512+alx32@users.noreply.github.com> 1741859689 -0700
committer GitHub <noreply@github.com> 1741859689 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJn0qtpCRC1aQ7uu5UhlAAArgMQACBTxRJwrJC9YHmNWKfhSyzV
 /cj1ex3f9Gosorywq0CE6IGRRj2YC+5pgDTt/CDNJ1D+ztai6ZEJLCBW3HLKxZBU
 ibk0waKvdUfHrZeTOnwfh8vkssxSnPIPjN6xBP8b1JtQewo6AuviKoX0iu51N4FW
 rwHnSS2BYMwC98mrL/8N2mpAFfvYRz1OYTfn2fdErHvtm66rFFsr93rRaWPMYUKH
 3YKE3KoQ1RvKej3EcjgTCYqN4uoYc91nRZip4ju3fnwkpvySDvUs4fbN1CZpPY3r
 a5sy08vimTpFccTrnOQJy4mqzHlIKov0MKfj6q0AEccwSML/PbESxEnbjHDMeY/1
 brornHeNmrWFXDGLC2dsdfkMNQkvYKtLucSLlbHbsuGFFvSdXOkFuBIKwadRsqI3
 6pctaFzCUJeBE5qVDYaCjQtcmM79KQMcIOWYBAAaHNc8xtCKSVRfgsBqfVt8xf34
 34O85xnzcIij8OJaPeJ9ByM7LPXYcgN+JzcrMhxESDIfdO+9o0T00u5dfimB/2Gy
 wxnfzjyNTYk7Au6IZjvlpHLmW1vENfHWUv9vwDapC0i9DocdsfqVj/AhCrXE39bP
 DARVzL9kp2LG1DQYNBYSL27KbQn4o96WwkzUFh3snRh1Pj9ejXPEQcVGvac5Y7nv
 1q2waHjq+ZQ4Ap+TdFRy
 =RDRQ
 -----END PGP SIGNATURE-----
 

[DWARFLinker] Adjust DW_AT_LLVM_stmt_sequence for rewritten line tables (#128953)

**Summary:**  
This update adds handling for `DW_AT_LLVM_stmt_sequence` attributes in
the DWARF linker. These attributes point to rows in the line table,
which gets rewritten during linking. Since the row positions change, the
offsets in these attributes need to be updated to match the new layout
in the output `.debug_line` section. The changes add new data structures
and tweak existing functions to track and fix these attributes.

**Background**
In https://github.com/llvm/llvm-project/pull/110192 we added support to
clang to generate the `DW_AT_LLVM_stmt_sequence` attribute for
`DW_TAG_subprogram`'s. Corresponding RFC: [New DWARF Attribute for
Symbolication of Merged
Functions](https://discourse.llvm.org/t/rfc-new-dwarf-attribute-for-symbolication-of-merged-functions/79434).
This attribute holds a label pointing to the offset in the line table
where the function's line entries begin.

**Implementation details:**  
Here’s what’s changed in the code:  
- **New Tracking in `CompileUnit`:** A `StmtSeqListAttributes` vector is
added to the `CompileUnit` class. It stores the locations where
`DW_AT_LLVM_stmt_sequence` attributes need to be patched, recorded when
cloning DIEs (debug info entries).
- **Updated `emitLineTableForUnit` Function:** This function now has an
optional `RowOffsets` parameter. It collects the byte offsets of each
row in the output line table. We only need to use this functionality if
`DW_AT_LLVM_stmt_sequence` attributes are present in the unit.
- **Row Tracking with `TrackedRow`:** A `TrackedRow` struct keeps track
of each input row’s original index and whether it starts a sequence in
the output table. This links old rows to their new positions in the
rewritten line table. Several implementations were considered and
prototyped here, but so far this has proven the simplest and cleanest
approach.
- **Patching Step:** After the line table is written, the linker uses
the data in `TrackedRow`'s objects and `RowOffsets` array to update the
`DW_AT_LLVM_stmt_sequence` attributes with the correct offsets.
