зеркало из https://github.com/mozilla/gecko-dev.git
18 строки
647 B
Diff
18 строки
647 B
Diff
--- a/llvm/tools/dsymutil/DwarfLinker.cpp
|
|
+++ b/llvm/tools/dsymutil/DwarfLinker.cpp
|
|
@@ -1489,8 +1489,12 @@
|
|
uint64_t RefOffset = *RefValue.getAsReference(&Unit);
|
|
|
|
if ((RefCU = getUnitForOffset(Units, RefOffset)))
|
|
- if (const auto *RefDie = RefCU->getOrigUnit().getDIEForOffset(RefOffset))
|
|
- return RefDie;
|
|
+ if (const auto *RefDie = RefCU->getOrigUnit().getDIEForOffset(RefOffset)) {
|
|
+ // In a file with broken references, an attribute might point to a NULL
|
|
+ // DIE.
|
|
+ if(!RefDie->isNULL())
|
|
+ return RefDie;
|
|
+ }
|
|
|
|
Linker.reportWarning("could not find referenced DIE", &Unit, &DIE);
|
|
return nullptr;
|