[llvm] Add Offoading to llvm-readobj and llvm-objcopy (PR #141978)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Thu May 29 10:00:30 PDT 2025
================
@@ -124,88 +124,89 @@ static Error executeObjcopyOnRawBinary(ConfigManager &ConfigMgr,
static Error executeObjcopy(ConfigManager &ConfigMgr) {
CommonConfig &Config = ConfigMgr.Common;
- Expected<FilePermissionsApplier> PermsApplierOrErr =
- FilePermissionsApplier::create(Config.InputFilename);
- if (!PermsApplierOrErr)
- return PermsApplierOrErr.takeError();
-
- std::function<Error(raw_ostream & OutFile)> ObjcopyFunc;
-
- OwningBinary<llvm::object::Binary> BinaryHolder;
- std::unique_ptr<MemoryBuffer> MemoryBufferHolder;
-
- if (Config.InputFormat == FileFormat::Binary ||
- Config.InputFormat == FileFormat::IHex) {
- ErrorOr<std::unique_ptr<MemoryBuffer>> BufOrErr =
- MemoryBuffer::getFileOrSTDIN(Config.InputFilename);
- if (!BufOrErr)
- return createFileError(Config.InputFilename, BufOrErr.getError());
- MemoryBufferHolder = std::move(*BufOrErr);
-
- if (Config.InputFormat == FileFormat::Binary)
- ObjcopyFunc = [&](raw_ostream &OutFile) -> Error {
- // Handle FileFormat::Binary.
- return executeObjcopyOnRawBinary(ConfigMgr, *MemoryBufferHolder,
- OutFile);
- };
- else
- ObjcopyFunc = [&](raw_ostream &OutFile) -> Error {
- // Handle FileFormat::IHex.
- return executeObjcopyOnIHex(ConfigMgr, *MemoryBufferHolder, OutFile);
- };
- } else {
- Expected<OwningBinary<llvm::object::Binary>> BinaryOrErr =
- createBinary(Config.InputFilename);
- if (!BinaryOrErr)
- return createFileError(Config.InputFilename, BinaryOrErr.takeError());
- BinaryHolder = std::move(*BinaryOrErr);
-
- if (Archive *Ar = dyn_cast<Archive>(BinaryHolder.getBinary())) {
- // Handle Archive.
- if (Error E = executeObjcopyOnArchive(ConfigMgr, *Ar))
- return E;
+ if (Config.NeedPositional) {
+ Expected<FilePermissionsApplier> PermsApplierOrErr =
+ FilePermissionsApplier::create(Config.InputFilename);
+ if (!PermsApplierOrErr)
+ return PermsApplierOrErr.takeError();
+
+ std::function<Error(raw_ostream & OutFile)> ObjcopyFunc;
+
+ OwningBinary<llvm::object::Binary> BinaryHolder;
+ std::unique_ptr<MemoryBuffer> MemoryBufferHolder;
+
+ if (Config.InputFormat == FileFormat::Binary ||
+ Config.InputFormat == FileFormat::IHex) {
+ ErrorOr<std::unique_ptr<MemoryBuffer>> BufOrErr =
+ MemoryBuffer::getFileOrSTDIN(Config.InputFilename);
+ if (!BufOrErr)
+ return createFileError(Config.InputFilename, BufOrErr.getError());
+ MemoryBufferHolder = std::move(*BufOrErr);
+
+ if (Config.InputFormat == FileFormat::Binary)
----------------
arsenm wrote:
Braces
https://github.com/llvm/llvm-project/pull/141978
More information about the llvm-commits
mailing list