diff --git a/llvm/tools/llvm-objcopy/CopyConfig.cpp b/llvm/tools/llvm-objcopy/CopyConfig.cpp index 1fde54dd290a..63e672eddd4e 100644 --- a/llvm/tools/llvm-objcopy/CopyConfig.cpp +++ b/llvm/tools/llvm-objcopy/CopyConfig.cpp @@ -902,13 +902,16 @@ parseInstallNameToolOptions(ArrayRef ArgsArr) { Config.RPathsToUpdate.insert({Old, New}); } - if (auto *Arg = InputArgs.getLastArg(INSTALL_NAME_TOOL_id)) + if (auto *Arg = InputArgs.getLastArg(INSTALL_NAME_TOOL_id)) { Config.SharedLibId = Arg->getValue(); - - for (auto *Arg : InputArgs.filtered(INSTALL_NAME_TOOL_change)) { - Config.InstallNamesToUpdate.insert({Arg->getValue(0), Arg->getValue(1)}); + if (Config.SharedLibId->empty()) + return createStringError(errc::invalid_argument, + "cannot specify an empty id"); } + for (auto *Arg : InputArgs.filtered(INSTALL_NAME_TOOL_change)) + Config.InstallNamesToUpdate.insert({Arg->getValue(0), Arg->getValue(1)}); + SmallVector Positional; for (auto Arg : InputArgs.filtered(INSTALL_NAME_TOOL_UNKNOWN)) return createStringError(errc::invalid_argument, "unknown argument '%s'", diff --git a/llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp b/llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp index 68cbdbbf6be8..de372ac0d138 100644 --- a/llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp +++ b/llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp @@ -181,13 +181,9 @@ static Error processLoadCommands(const CopyConfig &Config, Object &Obj) { for (LoadCommand &LC : Obj.LoadCommands) { switch (LC.MachOLoadCommand.load_command_data.cmd) { case MachO::LC_ID_DYLIB: - if (Config.SharedLibId) { - StringRef Id = Config.SharedLibId.getValue(); - if (Id.empty()) - return createStringError(errc::invalid_argument, - "cannot specify an empty id"); - updateLoadCommandPayloadString(LC, Id); - } + if (Config.SharedLibId) + updateLoadCommandPayloadString( + LC, *Config.SharedLibId); break; case MachO::LC_RPATH: {