[PATCH] D151579: Fix -u option in dsymutil, to not emit an extra DW_LNE_set_address if the original line table was empty
Alexey Lapshin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon May 29 14:07:31 PDT 2023
avl added inline comments.
================
Comment at: llvm/lib/DWARFLinker/DWARFStreamer.cpp:854-855
- if (LineTable.Rows.empty()) {
+ if (LineTable.Rows.empty() ||
+ (LineTable.Rows.size() == 1 && LineTable.Rows[0].EndSequence)) {
// We only have the dummy entry, dsymutil emits an entry with a 0
----------------
JDevlieghere wrote:
> Would it make sense to hoist that into the `LineTable` class and have a method `LineTable::empty()` that returns exactly this?
In that case LineTable::empty() would in fact not match with real number of LineTable.Rows(). It looks a bit sloppy.
Another alternative might be implementing what described in DWARFLinker.cpp:
// FIXME: this only removes the unneeded end_sequence if the
// sequences have been inserted in order. Using a global sort like
// described in generateLineTableForUnit() and delaying the end_sequene
// elimination to emitLineTableForUnit() we can get rid of all of them.
Running such cleanup code for no-update and update modes will probably make output equal for both modes.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D151579/new/
https://reviews.llvm.org/D151579
More information about the llvm-commits
mailing list