[Lldb-commits] [PATCH] D138176: [dsymutil] Fix assertion: (Ref > InputDIE.getOffset()), function cloneDieReferenceAttribute
Jonas Devlieghere via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Wed Dec 14 15:43:48 PST 2022
JDevlieghere updated this revision to Diff 483018.
JDevlieghere added a comment.
Revert to old naming
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D138176/new/
https://reviews.llvm.org/D138176
Files:
llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h
llvm/lib/DWARFLinker/DWARFLinker.cpp
Index: llvm/lib/DWARFLinker/DWARFLinker.cpp
===================================================================
--- llvm/lib/DWARFLinker/DWARFLinker.cpp
+++ llvm/lib/DWARFLinker/DWARFLinker.cpp
@@ -935,9 +935,9 @@
}
if (!RefInfo.Clone) {
- assert(Ref > InputDIE.getOffset());
// We haven't cloned this DIE yet. Just create an empty one and
// store it. It'll get really cloned when we process it.
+ RefInfo.UnclonedReference = true;
RefInfo.Clone = DIE::get(DIEAlloc, dwarf::Tag(RefDie.getTag()));
}
NewRefDie = RefInfo.Clone;
@@ -950,8 +950,8 @@
// FIXME: we should be able to design DIEEntry reliance on
// DwarfDebug away.
uint64_t Attr;
- if (Ref < InputDIE.getOffset()) {
- // We must have already cloned that DIE.
+ if (Ref < InputDIE.getOffset() && !RefInfo.UnclonedReference) {
+ // We have already cloned that DIE.
uint32_t NewRefOffset =
RefUnit->getStartOffset() + NewRefDie->getOffset();
Attr = NewRefOffset;
Index: llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h
===================================================================
--- llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h
+++ llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h
@@ -78,6 +78,9 @@
/// Is ODR marking done?
bool ODRMarkingDone : 1;
+
+ /// Is this a reference to a DIE that hasn't been cloned yet?
+ bool UnclonedReference : 1;
};
CompileUnit(DWARFUnit &OrigUnit, unsigned ID, bool CanUseODR,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D138176.483018.patch
Type: text/x-patch
Size: 1515 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20221214/3c6ad753/attachment-0001.bin>
More information about the lldb-commits
mailing list