diff options
author | Alexander Shaposhnikov <shal1t712@gmail.com> | 2018-02-09 23:33:31 +0000 |
---|---|---|
committer | Alexander Shaposhnikov <shal1t712@gmail.com> | 2018-02-09 23:33:31 +0000 |
commit | fedb01603c66fe662ecab2c51e3fe4deb8544bf6 (patch) | |
tree | 42fa93f548676f0b389e6a8e2e3923eed253be41 /llvm/tools/llvm-objcopy/llvm-objcopy.cpp | |
parent | 99db883d55313ac98439b8031383abf82dcaafde (diff) | |
download | bcm5719-llvm-fedb01603c66fe662ecab2c51e3fe4deb8544bf6.tar.gz bcm5719-llvm-fedb01603c66fe662ecab2c51e3fe4deb8544bf6.zip |
[llvm-objcopy] Make modifications in-place if output is not specified
If the output file is not specified make the modifications in-place
(like binutils objcopy does). In particular, this fixes
the behavior of Clang -gsplit-dwarf (if Clang is configured to use llvm-objcopy),
previously it was creating .dwo files, but still leaving *dwo* sections in
the original binary.
Test plan: make check-all
Differential revision: https://reviews.llvm.org/D42873
llvm-svn: 324783
Diffstat (limited to 'llvm/tools/llvm-objcopy/llvm-objcopy.cpp')
-rw-r--r-- | llvm/tools/llvm-objcopy/llvm-objcopy.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp index 8f5243cefa0..7d230390872 100644 --- a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp +++ b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp @@ -72,8 +72,8 @@ LLVM_ATTRIBUTE_NORETURN void reportError(StringRef File, Error E) { } // end namespace llvm static cl::opt<std::string> InputFilename(cl::Positional, cl::desc("<input>")); -static cl::opt<std::string> OutputFilename(cl::Positional, cl::desc("<output>"), - cl::init("-")); +static cl::opt<std::string> OutputFilename(cl::Positional, cl::desc("[ <output> ]")); + static cl::opt<std::string> OutputFormat("O", cl::desc("Set output format to one of the following:" "\n\tbinary")); @@ -340,7 +340,9 @@ int main(int argc, char **argv) { auto Reader = CreateReader(); auto Obj = Reader->create(); - auto Writer = CreateWriter(*Obj, OutputFilename); + StringRef Output = + OutputFilename.getNumOccurrences() ? OutputFilename : InputFilename; + auto Writer = CreateWriter(*Obj, Output); HandleArgs(*Obj, *Reader); Writer->finalize(); Writer->write(); |