diff options
Diffstat (limited to 'llvm/tools/llvm-objcopy/llvm-objcopy.cpp')
-rw-r--r-- | llvm/tools/llvm-objcopy/llvm-objcopy.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp index 69b23b6..ee882ff 100644 --- a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp +++ b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp @@ -320,7 +320,7 @@ static Error executeObjcopy(CopyConfig &Config) { namespace { -enum class ToolType { Objcopy, Strip, InstallNameTool }; +enum class ToolType { Objcopy, Strip, InstallNameTool, BitcodeStrip }; } // anonymous namespace @@ -341,7 +341,9 @@ int main(int argc, char **argv) { (I + Tool.size() == Stem.size() || !isAlnum(Stem[I + Tool.size()])); }; ToolType Tool = ToolType::Objcopy; - if (Is("strip")) + if (Is("bitcode-strip") || Is("bitcode_strip")) + Tool = ToolType::BitcodeStrip; + else if (Is("strip")) Tool = ToolType::Strip; else if (Is("install-name-tool") || Is("install_name_tool")) Tool = ToolType::InstallNameTool; @@ -361,10 +363,13 @@ int main(int argc, char **argv) { auto Args = makeArrayRef(NewArgv).drop_front(); Expected<DriverConfig> DriverConfig = - (Tool == ToolType::Strip) ? parseStripOptions(Args, reportWarning) - : ((Tool == ToolType::InstallNameTool) - ? parseInstallNameToolOptions(Args) - : parseObjcopyOptions(Args, reportWarning)); + (Tool == ToolType::Strip) + ? parseStripOptions(Args, reportWarning) + : ((Tool == ToolType::InstallNameTool) + ? parseInstallNameToolOptions(Args) + : ((Tool == ToolType::BitcodeStrip) + ? parseBitcodeStripOptions(Args) + : parseObjcopyOptions(Args, reportWarning))); if (!DriverConfig) { logAllUnhandledErrors(DriverConfig.takeError(), WithColor::error(errs(), ToolName)); |