[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