@@ -58,6 +58,7 @@ class ObjcopyOptTable : public opt::GenericOptTable {
58
58
public:
59
59
ObjcopyOptTable () : opt::GenericOptTable(objcopy_opt::ObjcopyInfoTable) {
60
60
setGroupedShortOptions (true );
61
+ setDashDashParsing (true );
61
62
}
62
63
};
63
64
@@ -650,17 +651,11 @@ parseChangeSectionAddr(StringRef ArgValue, StringRef OptionName,
650
651
// help flag is set then parseObjcopyOptions will print the help messege and
651
652
// exit.
652
653
Expected<DriverConfig>
653
- objcopy::parseObjcopyOptions (ArrayRef<const char *> RawArgsArr ,
654
+ objcopy::parseObjcopyOptions (ArrayRef<const char *> ArgsArr ,
654
655
function_ref<Error(Error)> ErrorCallback) {
655
656
DriverConfig DC;
656
657
ObjcopyOptTable T;
657
658
658
- const char *const *DashDash =
659
- llvm::find_if (RawArgsArr, [](StringRef Str) { return Str == " --" ; });
660
- ArrayRef<const char *> ArgsArr = ArrayRef (RawArgsArr.begin (), DashDash);
661
- if (DashDash != RawArgsArr.end ())
662
- DashDash = std::next (DashDash);
663
-
664
659
unsigned MissingArgumentIndex, MissingArgumentCount;
665
660
llvm::opt::InputArgList InputArgs =
666
661
T.ParseArgs (ArgsArr, MissingArgumentIndex, MissingArgumentCount);
@@ -671,7 +666,7 @@ objcopy::parseObjcopyOptions(ArrayRef<const char *> RawArgsArr,
671
666
" argument to '%s' is missing (expected %d value(s))" ,
672
667
InputArgs.getArgString (MissingArgumentIndex), MissingArgumentCount);
673
668
674
- if (InputArgs.size () == 0 && DashDash == RawArgsArr. end () ) {
669
+ if (InputArgs.size () == 0 ) {
675
670
printHelp (T, errs (), ToolType::Objcopy);
676
671
exit (1 );
677
672
}
@@ -695,7 +690,6 @@ objcopy::parseObjcopyOptions(ArrayRef<const char *> RawArgsArr,
695
690
696
691
for (auto *Arg : InputArgs.filtered (OBJCOPY_INPUT))
697
692
Positional.push_back (Arg->getValue ());
698
- std::copy (DashDash, RawArgsArr.end (), std::back_inserter (Positional));
699
693
700
694
if (Positional.empty ())
701
695
return createStringError (errc::invalid_argument, " no input file specified" );
0 commit comments