[PATCH] D38363: [dwarfdump] Verify that CUs have a unit DIE.
Jonas Devlieghere via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 28 08:16:40 PDT 2017
JDevlieghere created this revision.
This patch adds a check to the DWARF verifier to detect CUs without a
unit DIE.
Repository:
rL LLVM
https://reviews.llvm.org/D38363
Files:
lib/DebugInfo/DWARF/DWARFVerifier.cpp
test/tools/llvm-dwarfdump/X86/empty-CU.s
Index: test/tools/llvm-dwarfdump/X86/empty-CU.s
===================================================================
--- /dev/null
+++ test/tools/llvm-dwarfdump/X86/empty-CU.s
@@ -0,0 +1,21 @@
+# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
+# RUN: | not llvm-dwarfdump --verify --debug-info - \
+# RUN: | FileCheck %s
+# CHECK: Error: Compilation unit without unit DIE.
+
+ .section __DWARF,__debug_info,regular,debug
+.long 8 # CU length
+.short 3 # Version
+.long 0 # Abbrev offset
+.byte 4 # AddrSize
+.byte 1 # Abbrev 1
+.long 7 # Unit lengthh...
+.short 3
+.long 0
+.byte 4
+ .section __DWARF,__debug_abbrev,regular,debug
+.byte 1 # Abbrev code
+.byte 0x11 # TAG_compile_unit
+.byte 0 # no children
+.byte 0 # no attributes
+.byte 0
Index: lib/DebugInfo/DWARF/DWARFVerifier.cpp
===================================================================
--- lib/DebugInfo/DWARF/DWARFVerifier.cpp
+++ lib/DebugInfo/DWARF/DWARFVerifier.cpp
@@ -179,9 +179,14 @@
}
}
- DieRangeInfo RI;
- DWARFDie Die = Unit.getUnitDIE(/* ExtractUnitDIEOnly = */ false);
- NumUnitErrors += verifyDieRanges(Die, RI);
+ if (DWARFDie Die = Unit.getUnitDIE(/* ExtractUnitDIEOnly = */ false)) {
+ DieRangeInfo RI;
+ NumUnitErrors += verifyDieRanges(Die, RI);
+ } else {
+ OS << "Error: Compilation unit without unit DIE.\n";
+ NumUnitErrors++;
+ }
+
return NumUnitErrors == 0;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38363.116997.patch
Type: text/x-patch
Size: 1446 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170928/33f50e68/attachment.bin>
More information about the llvm-commits
mailing list