aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
diff options
context:
space:
mode:
authorAlex Brachet <alexbrachetmialot@gmail.com>2019-06-18 00:39:10 +0000
committerAlex Brachet <alexbrachetmialot@gmail.com>2019-06-18 00:39:10 +0000
commit774770093703bf9fb8e32a9fb056d0ec0b925701 (patch)
tree835e486cb4775af496960e01c1b9a5e4c1530cbe /llvm/tools/llvm-objcopy/llvm-objcopy.cpp
parent5a321b899e7a10b45c3ee4003fb2a048f35074a9 (diff)
downloadllvm-774770093703bf9fb8e32a9fb056d0ec0b925701.zip
llvm-774770093703bf9fb8e32a9fb056d0ec0b925701.tar.gz
llvm-774770093703bf9fb8e32a9fb056d0ec0b925701.tar.bz2
[llvm-strip] Error when using stdin twice
Summary: Implements bug [[ https://bugs.llvm.org/show_bug.cgi?id=42204 | 42204 ]]. llvm-strip now warns when the same input file is used more than once, and errors when stdin is used more than once. Reviewers: jhenderson, rupprecht, espindola, alexshap Reviewed By: jhenderson, rupprecht Subscribers: emaste, arichardson, jakehehrlich, MaskRay, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63122 llvm-svn: 363638
Diffstat (limited to 'llvm/tools/llvm-objcopy/llvm-objcopy.cpp')
-rw-r--r--llvm/tools/llvm-objcopy/llvm-objcopy.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
index 416b295..2ab77ea 100644
--- a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
+++ b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
@@ -82,6 +82,12 @@ LLVM_ATTRIBUTE_NORETURN void reportError(StringRef File, Error E) {
exit(1);
}
+ErrorSuccess reportWarning(Error E) {
+ assert(E);
+ WithColor::warning(errs(), ToolName) << toString(std::move(E));
+ return Error::success();
+}
+
} // end namespace objcopy
} // end namespace llvm
@@ -263,7 +269,7 @@ int main(int argc, char **argv) {
ToolName = argv[0];
bool IsStrip = sys::path::stem(ToolName).contains("strip");
Expected<DriverConfig> DriverConfig =
- IsStrip ? parseStripOptions(makeArrayRef(argv + 1, argc))
+ IsStrip ? parseStripOptions(makeArrayRef(argv + 1, argc), reportWarning)
: parseObjcopyOptions(makeArrayRef(argv + 1, argc));
if (!DriverConfig) {
logAllUnhandledErrors(DriverConfig.takeError(),