diff --git a/llvm/include/llvm/Object/COFFImportFile.h b/llvm/include/llvm/Object/COFFImportFile.h index 035bc17126da3..2c06f529ecdfc 100644 --- a/llvm/include/llvm/Object/COFFImportFile.h +++ b/llvm/include/llvm/Object/COFFImportFile.h @@ -45,26 +45,7 @@ class COFFImportFile : public SymbolicFile { void moveSymbolNext(DataRefImpl &Symb) const override { ++Symb.p; } - Error printSymbolName(raw_ostream &OS, DataRefImpl Symb) const override { - switch (Symb.p) { - case ImpSymbol: - OS << "__imp_"; - break; - case ECAuxSymbol: - OS << "__imp_aux_"; - break; - } - const char *Name = Data.getBufferStart() + sizeof(coff_import_header); - if (Symb.p != ECThunkSymbol && COFF::isArm64EC(getMachine())) { - if (std::optional DemangledName = - getArm64ECDemangledFunctionName(Name)) { - OS << StringRef(*DemangledName); - return Error::success(); - } - } - OS << StringRef(Name); - return Error::success(); - } + Error printSymbolName(raw_ostream &OS, DataRefImpl Symb) const override; Expected getSymbolFlags(DataRefImpl Symb) const override { return SymbolRef::SF_Global; diff --git a/llvm/lib/Object/COFFImportFile.cpp b/llvm/lib/Object/COFFImportFile.cpp index 477c5bf98249f..48c3ea0ed8f4e 100644 --- a/llvm/lib/Object/COFFImportFile.cpp +++ b/llvm/lib/Object/COFFImportFile.cpp @@ -84,6 +84,27 @@ StringRef COFFImportFile::getExportName() const { return name; } +Error COFFImportFile::printSymbolName(raw_ostream &OS, DataRefImpl Symb) const { + switch (Symb.p) { + case ImpSymbol: + OS << "__imp_"; + break; + case ECAuxSymbol: + OS << "__imp_aux_"; + break; + } + const char *Name = Data.getBufferStart() + sizeof(coff_import_header); + if (Symb.p != ECThunkSymbol && COFF::isArm64EC(getMachine())) { + if (std::optional DemangledName = + getArm64ECDemangledFunctionName(Name)) { + OS << StringRef(*DemangledName); + return Error::success(); + } + } + OS << StringRef(Name); + return Error::success(); +} + static uint16_t getImgRelRelocation(MachineTypes Machine) { switch (Machine) { default: