Skip to content

[dsymutil] Add --linker parallel to more tests. #78581

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions llvm/include/llvm/DWARFLinker/AddressesMap.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,22 +38,22 @@ class AddressesMap {
/// Checks that the specified DWARF expression operand \p Op references live
/// code section and returns the relocation adjustment value (to get the
/// linked address this value might be added to the source expression operand
/// address).
/// address). Print debug output if \p Verbose is true.
/// \returns relocation adjustment value or std::nullopt if there is no
/// corresponding live address.
virtual std::optional<int64_t>
getExprOpAddressRelocAdjustment(DWARFUnit &U,
const DWARFExpression::Operation &Op,
uint64_t StartOffset, uint64_t EndOffset) = 0;
virtual std::optional<int64_t> getExprOpAddressRelocAdjustment(
DWARFUnit &U, const DWARFExpression::Operation &Op, uint64_t StartOffset,
uint64_t EndOffset, bool Verbose) = 0;

/// Checks that the specified subprogram \p DIE references the live code
/// section and returns the relocation adjustment value (to get the linked
/// address this value might be added to the source subprogram address).
/// Allowed kinds of input DIE: DW_TAG_subprogram, DW_TAG_label.
/// Print debug output if \p Verbose is true.
/// \returns relocation adjustment value or std::nullopt if there is no
/// corresponding live address.
virtual std::optional<int64_t>
getSubprogramRelocAdjustment(const DWARFDie &DIE) = 0;
getSubprogramRelocAdjustment(const DWARFDie &DIE, bool Verbose) = 0;

// Returns the library install name associated to the AddessesMap.
virtual std::optional<StringRef> getLibraryInstallName() = 0;
Expand Down Expand Up @@ -90,7 +90,7 @@ class AddressesMap {
/// second is the relocation adjustment value if the live address is
/// referenced.
std::pair<bool, std::optional<int64_t>>
getVariableRelocAdjustment(const DWARFDie &DIE) {
getVariableRelocAdjustment(const DWARFDie &DIE, bool Verbose) {
assert((DIE.getTag() == dwarf::DW_TAG_variable ||
DIE.getTag() == dwarf::DW_TAG_constant) &&
"Wrong type of input die");
Expand Down Expand Up @@ -149,9 +149,9 @@ class AddressesMap {
HasLocationAddress = true;
// Check relocation for the address.
if (std::optional<int64_t> RelocAdjustment =
getExprOpAddressRelocAdjustment(*U, Op,
AttrOffset + CurExprOffset,
AttrOffset + Op.getEndOffset()))
getExprOpAddressRelocAdjustment(
*U, Op, AttrOffset + CurExprOffset,
AttrOffset + Op.getEndOffset(), Verbose))
return std::make_pair(HasLocationAddress, *RelocAdjustment);
} break;
case dwarf::DW_OP_constx:
Expand All @@ -164,8 +164,8 @@ class AddressesMap {
if (std::optional<int64_t> RelocAdjustment =
getExprOpAddressRelocAdjustment(
*U, Op, *AddressOffset,
*AddressOffset +
DIE.getDwarfUnit()->getAddressByteSize()))
*AddressOffset + DIE.getDwarfUnit()->getAddressByteSize(),
Verbose))
return std::make_pair(HasLocationAddress, *RelocAdjustment);
}
} break;
Expand Down
7 changes: 4 additions & 3 deletions llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -465,7 +465,7 @@ DWARFLinker::getVariableRelocAdjustment(AddressesMap &RelocMgr,
if (std::optional<int64_t> RelocAdjustment =
RelocMgr.getExprOpAddressRelocAdjustment(
*U, Op, AttrOffset + CurExprOffset,
AttrOffset + Op.getEndOffset()))
AttrOffset + Op.getEndOffset(), Options.Verbose))
return std::make_pair(HasLocationAddress, *RelocAdjustment);
} break;
case dwarf::DW_OP_constx:
Expand All @@ -478,7 +478,8 @@ DWARFLinker::getVariableRelocAdjustment(AddressesMap &RelocMgr,
if (std::optional<int64_t> RelocAdjustment =
RelocMgr.getExprOpAddressRelocAdjustment(
*U, Op, *AddressOffset,
*AddressOffset + DIE.getDwarfUnit()->getAddressByteSize()))
*AddressOffset + DIE.getDwarfUnit()->getAddressByteSize(),
Options.Verbose))
return std::make_pair(HasLocationAddress, *RelocAdjustment);
}
} break;
Expand Down Expand Up @@ -552,7 +553,7 @@ unsigned DWARFLinker::shouldKeepSubprogramDIE(

assert(LowPc && "low_pc attribute is not an address.");
std::optional<int64_t> RelocAdjustment =
RelocMgr.getSubprogramRelocAdjustment(DIE);
RelocMgr.getSubprogramRelocAdjustment(DIE, Options.Verbose);
if (!RelocAdjustment)
return Flags;

Expand Down
4 changes: 2 additions & 2 deletions llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1372,7 +1372,7 @@ DIE *CompileUnit::createPlainDIEandCloneAttributes(
// Get relocation adjustment value for the current function.
FuncAddressAdjustment =
getContaingFile().Addresses->getSubprogramRelocAdjustment(
getDIE(InputDieEntry));
getDIE(InputDieEntry), false);
} else if (InputDieEntry->getTag() == dwarf::DW_TAG_label) {
// Get relocation adjustment value for the current label.
std::optional<uint64_t> lowPC =
Expand All @@ -1386,7 +1386,7 @@ DIE *CompileUnit::createPlainDIEandCloneAttributes(
// Get relocation adjustment value for the current variable.
std::pair<bool, std::optional<int64_t>> LocExprAddrAndRelocAdjustment =
getContaingFile().Addresses->getVariableRelocAdjustment(
getDIE(InputDieEntry));
getDIE(InputDieEntry), false);

HasLocationExpressionAddress = LocExprAddrAndRelocAdjustment.first;
if (LocExprAddrAndRelocAdjustment.first &&
Expand Down
3 changes: 2 additions & 1 deletion llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,8 @@ Error DWARFLinkerImpl::link() {
}

if (GlobalData.getOptions().Verbose) {
outs() << "OBJECT: " << Context->InputDWARFFile.FileName << "\n";
outs() << "DEBUG MAP OBJECT: " << Context->InputDWARFFile.FileName
<< "\n";

for (const std::unique_ptr<DWARFUnit> &OrigCU :
Context->InputDWARFFile.Dwarf->compile_units()) {
Expand Down
4 changes: 2 additions & 2 deletions llvm/lib/DWARFLinker/Parallel/DependencyTracker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -741,7 +741,7 @@ bool DependencyTracker::isLiveVariableEntry(const UnitEntryPairTy &Entry,
// enclosing function, unless requested explicitly.
std::pair<bool, std::optional<int64_t>> LocExprAddrAndRelocAdjustment =
Entry.CU->getContaingFile().Addresses->getVariableRelocAdjustment(
DIE);
DIE, Entry.CU->getGlobalData().getOptions().Verbose);

if (LocExprAddrAndRelocAdjustment.first)
Info.setHasAnAddress();
Expand Down Expand Up @@ -784,7 +784,7 @@ bool DependencyTracker::isLiveSubprogramEntry(const UnitEntryPairTy &Entry) {

RelocAdjustment =
Entry.CU->getContaingFile().Addresses->getSubprogramRelocAdjustment(
DIE);
DIE, Entry.CU->getGlobalData().getOptions().Verbose);
if (!RelocAdjustment)
return false;

Expand Down
2 changes: 2 additions & 0 deletions llvm/test/tools/dsymutil/absolute_symbol.test
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
RUN: dsymutil -dump-debug-map -oso-prepend-path %p %p/Inputs/absolute_sym.macho.i386 | FileCheck %s

RUN: dsymutil --linker parallel -dump-debug-map -oso-prepend-path %p %p/Inputs/absolute_sym.macho.i386 | FileCheck %s

The tested object file has been created by the dummy Objective-C code:
@interface Foo
@end
Expand Down
11 changes: 11 additions & 0 deletions llvm/test/tools/dsymutil/arch-option.test
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,17 @@ RUN: dsymutil -oso-prepend-path %p -dump-debug-map %p/Inputs/fat-test.arm.dylib
RUN: not dsymutil -oso-prepend-path %p -dump-debug-map %p/Inputs/fat-test.arm.dylib -arch arm42 2>&1 | FileCheck %s -check-prefix=BADARCH
RUN: not dsymutil -oso-prepend-path %p -dump-debug-map %p/Inputs/fat-test.arm.dylib -arch i386 2>&1 | FileCheck %s -check-prefix=EMPTY

RUN: dsymutil --linker parallel -oso-prepend-path %p -dump-debug-map %p/Inputs/fat-test.arm.dylib | FileCheck %s -check-prefixes=ARM64,ARMV7S,ARMV7,CHECK
RUN: dsymutil --linker parallel -oso-prepend-path %p -dump-debug-map %p/Inputs/fat-test.arm.dylib -arch all | FileCheck %s -check-prefixes=ARM64,ARMV7S,ARMV7,CHECK
RUN: dsymutil --linker parallel -oso-prepend-path %p -dump-debug-map %p/Inputs/fat-test.arm.dylib -arch='*' | FileCheck %s -check-prefixes=ARM64,ARMV7S,ARMV7,CHECK
RUN: dsymutil --linker parallel -oso-prepend-path %p -dump-debug-map %p/Inputs/fat-test.arm.dylib -arch arm64 | FileCheck %s -check-prefixes=ARM64,CHECK
RUN: dsymutil --linker parallel -oso-prepend-path %p -dump-debug-map %p/Inputs/fat-test.arm.dylib -arch arm | FileCheck %s -check-prefixes=ARMV7S,ARMV7,CHECK
RUN: dsymutil --linker parallel -oso-prepend-path %p -dump-debug-map %p/Inputs/fat-test.arm.dylib -arch armv7 | FileCheck %s -check-prefixes=ARMV7,CHECK
RUN: dsymutil --linker parallel -oso-prepend-path %p -dump-debug-map %p/Inputs/fat-test.arm.dylib -arch arm64 -arch armv7s | FileCheck %s -check-prefixes=ARM64,ARMV7S,CHECK
RUN: not dsymutil --linker parallel -oso-prepend-path %p -dump-debug-map %p/Inputs/fat-test.arm.dylib -arch arm42 2>&1 | FileCheck %s -check-prefix=BADARCH
RUN: not dsymutil --linker parallel -oso-prepend-path %p -dump-debug-map %p/Inputs/fat-test.arm.dylib -arch i386 2>&1 | FileCheck %s -check-prefix=EMPTY



ARMV7: ---
ARMV7-NOT: ...
Expand Down
2 changes: 2 additions & 0 deletions llvm/test/tools/dsymutil/archive-timestamp.test
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# RUN: dsymutil -no-output -oso-prepend-path=%p -y %s 2>&1 | FileCheck -DMSG=%errc_ENOENT %s

# RUN: dsymutil --linker parallel -no-output -oso-prepend-path=%p -y %s 2>&1 | FileCheck -DMSG=%errc_ENOENT %s

# This is the archive member part of basic-archive.macho.x86_64 debug map with corrupted timestamps.

# CHECK: warning: {{.*}}libbasic.a(basic2.macho.x86_64.o): [[MSG]]
Expand Down
5 changes: 5 additions & 0 deletions llvm/test/tools/dsymutil/basic-linking.test
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ RUN: dsymutil -no-output -verbose -oso-prepend-path=%p -D %p/Inputs %p/Inputs/ba
RUN: dsymutil -no-output -verbose -oso-prepend-path=%p -D %p/Inputs %p/Inputs/two-level-relink.macho.arm64.dylib | FileCheck %s --check-prefix=CHECK-RELINK-TWO
RUN: dsymutil -no-output -verbose -oso-prepend-path=%p -build-variant-suffix=_debug -D WrongPath -D %p/Inputs %p/Inputs/variant-relink.macho.arm64.dylib | FileCheck %s --check-prefix=CHECK-RELINK-VARIANT

RUN: dsymutil --linker parallel -no-output -verbose -oso-prepend-path=%p %p/Inputs/basic.macho.x86_64 | FileCheck %s
RUN: dsymutil --linker parallel -no-output -verbose -oso-prepend-path=%p %p/Inputs/basic-lto.macho.x86_64 | FileCheck %s --check-prefix=CHECK-LTO
RUN: dsymutil --linker parallel -no-output -verbose -oso-prepend-path=%p %p/Inputs/basic-archive.macho.x86_64 | FileCheck %s --check-prefix=CHECK-ARCHIVE
RUN: dsymutil --linker parallel -no-output -verbose -oso-prepend-path=%p %p/Inputs/basic.macho.x86_64 %p/Inputs/basic-lto.macho.x86_64 %p/Inputs/basic-archive.macho.x86_64 | FileCheck %s --check-prefixes=CHECK,CHECK-LTO,CHECK-ARCHIVE

This test check the basic Dwarf linking process through the debug dumps.

================================= Simple link ================================
Expand Down
7 changes: 7 additions & 0 deletions llvm/test/tools/dsymutil/debug-map-parsing.test
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@ RUN: dsymutil -verbose -dump-debug-map -oso-prepend-path=%p %p/Inputs/basic-arch
RUN: dsymutil -dump-debug-map %p/Inputs/basic.macho.x86_64 2>&1 | FileCheck -DMSG=%errc_ENOENT %s --check-prefix=NOT-FOUND
RUN: not dsymutil -dump-debug-map %p/Inputs/inexistant 2>&1 | FileCheck -DMSG=%errc_ENOENT %s --check-prefix=NO-EXECUTABLE

RUN: dsymutil --linker parallel -dump-debug-map -oso-prepend-path=%p %p/Inputs/basic.macho.x86_64 | FileCheck %s
RUN: dsymutil --linker parallel -dump-debug-map -oso-prepend-path=%p %p/Inputs/basic-lto.macho.x86_64 | FileCheck %s --check-prefix=CHECK-LTO
RUN: dsymutil --linker parallel -verbose -dump-debug-map -oso-prepend-path=%p %p/Inputs/basic-archive.macho.x86_64 2>&1 | FileCheck %s --check-prefix=CHECK-ARCHIVE
RUN: dsymutil --linker parallel -dump-debug-map %p/Inputs/basic.macho.x86_64 2>&1 | FileCheck -DMSG=%errc_ENOENT %s --check-prefix=NOT-FOUND
RUN: not dsymutil --linker parallel -dump-debug-map %p/Inputs/inexistant 2>&1 | FileCheck -DMSG=%errc_ENOENT %s --check-prefix=NO-EXECUTABLE



Check that We can parse the debug map of the basic executable.

Expand Down
3 changes: 3 additions & 0 deletions llvm/test/tools/dsymutil/dump-symtab.test
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
RUN: dsymutil -s %p/Inputs/fat-test.dylib | FileCheck -check-prefixes=ALL,I386 %s
RUN: dsymutil -arch i386 -s %p/Inputs/fat-test.dylib | FileCheck -check-prefixes=I386,ONE %s

RUN: dsymutil --linker parallel -s %p/Inputs/fat-test.dylib | FileCheck -check-prefixes=ALL,I386 %s
RUN: dsymutil --linker parallel -arch i386 -s %p/Inputs/fat-test.dylib | FileCheck -check-prefixes=I386,ONE %s


ALL: ----------------------------------------------------------------------
ALL-NEXT: Symbol table for: '{{.*}}fat-test.dylib' (x86_64)
Expand Down
2 changes: 2 additions & 0 deletions llvm/test/tools/dsymutil/fat-binary-output.test
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
RUN: dsymutil -f -verbose -no-output %p/Inputs/fat-test.dylib -oso-prepend-path %p | FileCheck %s

RUN: dsymutil --linker parallel -f -verbose -no-output %p/Inputs/fat-test.dylib -oso-prepend-path %p | FileCheck %s

This test doesn't produce any filesytstem output, we just look at the verbose
log output.

Expand Down
6 changes: 6 additions & 0 deletions llvm/test/tools/dsymutil/fat-header.test
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,14 @@ REQUIRES: system-darwin,arm-registered-target,aarch64-registered-target
RUN: dsymutil -oso-prepend-path %p %p/Inputs/fat-test.arm.dylib -o %t.fat32.dSYM
RUN: llvm-objdump -m --universal-headers %t.fat32.dSYM/Contents/Resources/DWARF/fat-test.arm.dylib | FileCheck %s -check-prefixes=FAT32

RUN: dsymutil --linker parallel -oso-prepend-path %p %p/Inputs/fat-test.arm.dylib -o %t.fat32.dSYM
RUN: llvm-objdump -m --universal-headers %t.fat32.dSYM/Contents/Resources/DWARF/fat-test.arm.dylib | FileCheck %s -check-prefixes=FAT32

RUN: dsymutil -oso-prepend-path %p %p/Inputs/fat-test.arm.dylib -o %t.fat64.dSYM -fat64
RUN: llvm-objdump -m --universal-headers %t.fat64.dSYM/Contents/Resources/DWARF/fat-test.arm.dylib | FileCheck %s -check-prefixes=FAT64

RUN: dsymutil --linker parallel -oso-prepend-path %p %p/Inputs/fat-test.arm.dylib -o %t.fat64.dSYM -fat64
RUN: llvm-objdump -m --universal-headers %t.fat64.dSYM/Contents/Resources/DWARF/fat-test.arm.dylib | FileCheck %s -check-prefixes=FAT64

FAT32: fat_magic FAT_MAGIC
FAT64: fat_magic FAT_MAGIC_64
2 changes: 2 additions & 0 deletions llvm/test/tools/dsymutil/yaml-object-address-rewrite.test
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# RUN: dsymutil -dump-debug-map -oso-prepend-path=%p -y %s | FileCheck %s
#
# RUN: dsymutil --linker parallel -dump-debug-map -oso-prepend-path=%p -y %s | FileCheck %s
#
# The YAML debug map bellow is the one from basic-archive.macho.x86_64 with
# the object addresses set to zero. Check that the YAML import is able to
# rewrite these addresses to the right values.
Expand Down
22 changes: 12 additions & 10 deletions llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1025,13 +1025,13 @@ DwarfLinkerForBinary::AddressManager::getRelocValue(const ValidReloc &Reloc) {
std::optional<int64_t>
DwarfLinkerForBinary::AddressManager::hasValidRelocationAt(
const std::vector<ValidReloc> &AllRelocs, uint64_t StartOffset,
uint64_t EndOffset) {
uint64_t EndOffset, bool Verbose) {
std::vector<ValidReloc> Relocs =
getRelocations(AllRelocs, StartOffset, EndOffset);
if (Relocs.size() == 0)
return std::nullopt;

if (Linker.Options.Verbose)
if (Verbose)
printReloc(Relocs[0]);

return getRelocValue(Relocs[0]);
Expand Down Expand Up @@ -1061,7 +1061,7 @@ getAttributeOffsets(const DWARFAbbreviationDeclaration *Abbrev, unsigned Idx,
std::optional<int64_t>
DwarfLinkerForBinary::AddressManager::getExprOpAddressRelocAdjustment(
DWARFUnit &U, const DWARFExpression::Operation &Op, uint64_t StartOffset,
uint64_t EndOffset) {
uint64_t EndOffset, bool Verbose) {
switch (Op.getCode()) {
default: {
assert(false && "Specified operation does not have address operand");
Expand All @@ -1073,11 +1073,13 @@ DwarfLinkerForBinary::AddressManager::getExprOpAddressRelocAdjustment(
case dwarf::DW_OP_const4s:
case dwarf::DW_OP_const8s:
case dwarf::DW_OP_addr: {
return hasValidRelocationAt(ValidDebugInfoRelocs, StartOffset, EndOffset);
return hasValidRelocationAt(ValidDebugInfoRelocs, StartOffset, EndOffset,
Verbose);
} break;
case dwarf::DW_OP_constx:
case dwarf::DW_OP_addrx: {
return hasValidRelocationAt(ValidDebugAddrRelocs, StartOffset, EndOffset);
return hasValidRelocationAt(ValidDebugAddrRelocs, StartOffset, EndOffset,
Verbose);
} break;
}

Expand All @@ -1086,7 +1088,7 @@ DwarfLinkerForBinary::AddressManager::getExprOpAddressRelocAdjustment(

std::optional<int64_t>
DwarfLinkerForBinary::AddressManager::getSubprogramRelocAdjustment(
const DWARFDie &DIE) {
const DWARFDie &DIE, bool Verbose) {
const auto *Abbrev = DIE.getAbbreviationDeclarationPtr();

std::optional<uint32_t> LowPcIdx =
Expand All @@ -1103,7 +1105,7 @@ DwarfLinkerForBinary::AddressManager::getSubprogramRelocAdjustment(
std::tie(LowPcOffset, LowPcEndOffset) =
getAttributeOffsets(Abbrev, *LowPcIdx, Offset, *DIE.getDwarfUnit());
return hasValidRelocationAt(ValidDebugInfoRelocs, LowPcOffset,
LowPcEndOffset);
LowPcEndOffset, Verbose);
}
case dwarf::DW_FORM_addrx:
case dwarf::DW_FORM_addrx1:
Expand All @@ -1114,9 +1116,9 @@ DwarfLinkerForBinary::AddressManager::getSubprogramRelocAdjustment(
if (std::optional<uint64_t> AddressOffset =
DIE.getDwarfUnit()->getIndexedAddressOffset(
AddrValue->getRawUValue()))
return hasValidRelocationAt(ValidDebugAddrRelocs, *AddressOffset,
*AddressOffset +
DIE.getDwarfUnit()->getAddressByteSize());
return hasValidRelocationAt(
ValidDebugAddrRelocs, *AddressOffset,
*AddressOffset + DIE.getDwarfUnit()->getAddressByteSize(), Verbose);

Linker.reportWarning("no base offset for address table", SrcFileName);
return std::nullopt;
Expand Down
10 changes: 6 additions & 4 deletions llvm/tools/dsymutil/DwarfLinkerForBinary.h
Original file line number Diff line number Diff line change
Expand Up @@ -192,18 +192,20 @@ class DwarfLinkerForBinary {

/// Checks that there is a relocation in the \p Relocs array against a
/// debug map entry between \p StartOffset and \p NextOffset.
/// Print debug output if \p Verbose is set.
///
/// \returns relocation value if relocation exist, otherwise std::nullopt.
std::optional<int64_t>
hasValidRelocationAt(const std::vector<ValidReloc> &Relocs,
uint64_t StartOffset, uint64_t EndOffset);
uint64_t StartOffset, uint64_t EndOffset,
bool Verbose);

std::optional<int64_t> getExprOpAddressRelocAdjustment(
DWARFUnit &U, const DWARFExpression::Operation &Op,
uint64_t StartOffset, uint64_t EndOffset) override;
uint64_t StartOffset, uint64_t EndOffset, bool Verbose) override;

std::optional<int64_t>
getSubprogramRelocAdjustment(const DWARFDie &DIE) override;
std::optional<int64_t> getSubprogramRelocAdjustment(const DWARFDie &DIE,
bool Verbose) override;

std::optional<StringRef> getLibraryInstallName() override;

Expand Down
6 changes: 3 additions & 3 deletions llvm/tools/llvm-dwarfutil/DebugInfoLinker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ class ObjFileAddressMap : public AddressesMap {
// should be renamed into has valid address ranges
bool hasValidRelocs() override { return HasValidAddressRanges; }

std::optional<int64_t>
getSubprogramRelocAdjustment(const DWARFDie &DIE) override {
std::optional<int64_t> getSubprogramRelocAdjustment(const DWARFDie &DIE,
bool Verbose) override {
assert((DIE.getTag() == dwarf::DW_TAG_subprogram ||
DIE.getTag() == dwarf::DW_TAG_label) &&
"Wrong type of input die");
Expand All @@ -101,7 +101,7 @@ class ObjFileAddressMap : public AddressesMap {
std::optional<int64_t>
getExprOpAddressRelocAdjustment(DWARFUnit &U,
const DWARFExpression::Operation &Op,
uint64_t, uint64_t) override {
uint64_t, uint64_t, bool Verbose) override {
switch (Op.getCode()) {
default: {
assert(false && "Specified operation does not have address operand");
Expand Down