[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:31 PDT 2025


================
@@ -1542,27 +1564,30 @@ objcopy::parseStripOptions(ArrayRef<const char *> RawArgsArr,
     exit(0);
   }
 
-  SmallVector<StringRef, 2> Positional;
-  for (auto *Arg : InputArgs.filtered(STRIP_UNKNOWN))
-    return createStringError(errc::invalid_argument, "unknown argument '%s'",
-                             Arg->getAsString(InputArgs).c_str());
-  for (auto *Arg : InputArgs.filtered(STRIP_INPUT))
-    Positional.push_back(Arg->getValue());
-  std::copy(DashDash, RawArgsArr.end(), std::back_inserter(Positional));
-
-  if (Positional.empty())
-    return createStringError(errc::invalid_argument, "no input file specified");
-
-  if (Positional.size() > 1 && InputArgs.hasArg(STRIP_output))
-    return createStringError(
-        errc::invalid_argument,
-        "multiple input files cannot be used in combination with -o");
-
   ConfigManager ConfigMgr;
   CommonConfig &Config = ConfigMgr.Common;
   ELFConfig &ELFConfig = ConfigMgr.ELF;
   MachOConfig &MachOConfig = ConfigMgr.MachO;
 
+  SmallVector<StringRef, 2> Positional;
+  if (Config.NeedPositional) {
+    for (auto *Arg : InputArgs.filtered(STRIP_UNKNOWN))
+      return createStringError(errc::invalid_argument, "unknown argument '%s'",
+                               Arg->getAsString(InputArgs).c_str());
+    for (auto *Arg : InputArgs.filtered(STRIP_INPUT))
+      Positional.push_back(Arg->getValue());
+    std::copy(DashDash, RawArgsArr.end(), std::back_inserter(Positional));
+
+    if (Positional.empty())
+      return createStringError(errc::invalid_argument,
+                               "no input file specified");
+
+    if (Positional.size() > 1 && InputArgs.hasArg(STRIP_output))
----------------
arsenm wrote:

Braces 

https://github.com/llvm/llvm-project/pull/141978


More information about the llvm-commits mailing list