diff options
author | shadchin <shadchin@yandex-team.ru> | 2022-02-10 16:44:39 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:39 +0300 |
commit | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (patch) | |
tree | 64175d5cadab313b3e7039ebaa06c5bc3295e274 /contrib/libs/llvm12/tools/llvm-objcopy/COFF/COFFObjcopy.cpp | |
parent | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (diff) | |
download | ydb-e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0.tar.gz |
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/llvm12/tools/llvm-objcopy/COFF/COFFObjcopy.cpp')
-rw-r--r-- | contrib/libs/llvm12/tools/llvm-objcopy/COFF/COFFObjcopy.cpp | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/contrib/libs/llvm12/tools/llvm-objcopy/COFF/COFFObjcopy.cpp b/contrib/libs/llvm12/tools/llvm-objcopy/COFF/COFFObjcopy.cpp index cb2d66df74..b5de8a45a8 100644 --- a/contrib/libs/llvm12/tools/llvm-objcopy/COFF/COFFObjcopy.cpp +++ b/contrib/libs/llvm12/tools/llvm-objcopy/COFF/COFFObjcopy.cpp @@ -39,12 +39,12 @@ static uint64_t getNextRVA(const Object &Obj) { Obj.IsPE ? Obj.PeHeader.SectionAlignment : 1); } -static Expected<std::vector<uint8_t>> -createGnuDebugLinkSectionContents(StringRef File) { +static Expected<std::vector<uint8_t>> +createGnuDebugLinkSectionContents(StringRef File) { ErrorOr<std::unique_ptr<MemoryBuffer>> LinkTargetOrErr = MemoryBuffer::getFile(File); if (!LinkTargetOrErr) - return createFileError(File, LinkTargetOrErr.getError()); + return createFileError(File, LinkTargetOrErr.getError()); auto LinkTarget = std::move(*LinkTargetOrErr); uint32_t CRC32 = llvm::crc32(arrayRefFromStringRef(LinkTarget->getBuffer())); @@ -81,17 +81,17 @@ static void addSection(Object &Obj, StringRef Name, ArrayRef<uint8_t> Contents, Obj.addSections(Sec); } -static Error addGnuDebugLink(Object &Obj, StringRef DebugLinkFile) { - Expected<std::vector<uint8_t>> Contents = +static Error addGnuDebugLink(Object &Obj, StringRef DebugLinkFile) { + Expected<std::vector<uint8_t>> Contents = createGnuDebugLinkSectionContents(DebugLinkFile); - if (!Contents) - return Contents.takeError(); - - addSection(Obj, ".gnu_debuglink", *Contents, + if (!Contents) + return Contents.takeError(); + + addSection(Obj, ".gnu_debuglink", *Contents, IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_DISCARDABLE); - - return Error::success(); + + return Error::success(); } static void setSectionFlags(Section &Sec, SectionFlag AllFlags) { @@ -179,7 +179,7 @@ static Error handleArgs(const CopyConfig &Config, Object &Obj) { Sym.Name = I->getValue(); } - auto ToRemove = [&](const Symbol &Sym) -> Expected<bool> { + auto ToRemove = [&](const Symbol &Sym) -> Expected<bool> { // For StripAll, all relocations have been stripped and we remove all // symbols. if (Config.StripAll || Config.StripAllGNU) @@ -188,10 +188,10 @@ static Error handleArgs(const CopyConfig &Config, Object &Obj) { if (Config.SymbolsToRemove.matches(Sym.Name)) { // Explicitly removing a referenced symbol is an error. if (Sym.Referenced) - return createStringError( - llvm::errc::invalid_argument, - "'" + Config.OutputFilename + "': not stripping symbol '" + - Sym.Name.str() + "' because it is named in a relocation"); + return createStringError( + llvm::errc::invalid_argument, + "'" + Config.OutputFilename + "': not stripping symbol '" + + Sym.Name.str() + "' because it is named in a relocation"); return true; } @@ -216,12 +216,12 @@ static Error handleArgs(const CopyConfig &Config, Object &Obj) { } return false; - }; + }; + + // Actually do removals of symbols. + if (Error Err = Obj.removeSymbols(ToRemove)) + return Err; - // Actually do removals of symbols. - if (Error Err = Obj.removeSymbols(ToRemove)) - return Err; - if (!Config.SetSectionFlags.empty()) for (Section &Sec : Obj.getMutableSections()) { const auto It = Config.SetSectionFlags.find(Sec.Name); @@ -246,8 +246,8 @@ static Error handleArgs(const CopyConfig &Config, Object &Obj) { } if (!Config.AddGnuDebugLink.empty()) - if (Error E = addGnuDebugLink(Obj, Config.AddGnuDebugLink)) - return E; + if (Error E = addGnuDebugLink(Obj, Config.AddGnuDebugLink)) + return E; if (Config.AllowBrokenLinks || !Config.BuildIdLinkDir.empty() || Config.BuildIdLinkInput || Config.BuildIdLinkOutput || |