forked from OSchip/llvm-project
llvm-dwp: Support empty .dwo files
Though a bit odd, this is handy for a few reasons - for example, in a build system that wants consistent input/output of build steps, but where split-dwarf might be overriden/disabled by the user on a per-file basis. llvm-svn: 261987
This commit is contained in:
parent
ce63c2053d
commit
5d6d4dc306
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
RUN: llvm-dwp %p/../Inputs/empty.dwo -o %t
|
||||
RUN: llvm-dwarfdump %t | FileCheck %s
|
||||
|
||||
CHECK-LABEL: .debug_cu_index
|
||||
CHECK-NOT: version
|
||||
CHECK-LABEL: .debug_tu_index
|
||||
CHECK-NOT: version
|
||||
CHECK: .debug_
|
|
@ -219,6 +219,9 @@ static void
|
|||
writeIndex(MCStreamer &Out, MCSection *Section,
|
||||
ArrayRef<unsigned> ContributionOffsets,
|
||||
const MapVector<uint64_t, UnitIndexEntry> &IndexEntries) {
|
||||
if (IndexEntries.empty())
|
||||
return;
|
||||
|
||||
unsigned Columns = 0;
|
||||
for (auto &C : ContributionOffsets)
|
||||
if (C)
|
||||
|
@ -397,8 +400,9 @@ static std::error_code write(MCStreamer &Out, ArrayRef<std::string> Inputs) {
|
|||
}
|
||||
}
|
||||
|
||||
assert(!AbbrevSection.empty());
|
||||
assert(!InfoSection.empty());
|
||||
if (InfoSection.empty())
|
||||
continue;
|
||||
|
||||
if (!CurCUIndexSection.empty()) {
|
||||
DWARFUnitIndex CUIndex(DW_SECT_INFO);
|
||||
DataExtractor CUIndexData(CurCUIndexSection,
|
||||
|
@ -448,13 +452,11 @@ static std::error_code write(MCStreamer &Out, ArrayRef<std::string> Inputs) {
|
|||
return Err;
|
||||
}
|
||||
|
||||
if (!TypeIndexEntries.empty()) {
|
||||
// Lie about there being no info contributions so the TU index only includes
|
||||
// the type unit contribution
|
||||
ContributionOffsets[0] = 0;
|
||||
writeIndex(Out, MCOFI.getDwarfTUIndexSection(), ContributionOffsets,
|
||||
TypeIndexEntries);
|
||||
}
|
||||
// Lie about there being no info contributions so the TU index only includes
|
||||
// the type unit contribution
|
||||
ContributionOffsets[0] = 0;
|
||||
writeIndex(Out, MCOFI.getDwarfTUIndexSection(), ContributionOffsets,
|
||||
TypeIndexEntries);
|
||||
|
||||
// Lie about the type contribution
|
||||
ContributionOffsets[DW_SECT_TYPES - DW_SECT_INFO] = 0;
|
||||
|
|
Loading…
Reference in New Issue