From 0eb966c8248b290385980ffdad26553a520ace13 Mon Sep 17 00:00:00 2001 From: Yuanfang Chen Date: Sat, 22 Jun 2019 00:22:57 +0000 Subject: [PATCH] [llvm-objdump] Move --start-address >= --stop-address check out of the -d code. Summary: Move it into `main` function so the checking is effective for all actions user may do with llvm-objdump; notably, -r and -s in addition to existing -d. Match GNU behavior. Reviewers: jhenderson, grimar, MaskRay, rupprecht Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63631 llvm-svn: 364118 --- llvm/test/tools/llvm-objdump/X86/start-stop-address.test | 4 ++-- llvm/tools/llvm-objdump/llvm-objdump.cpp | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/llvm/test/tools/llvm-objdump/X86/start-stop-address.test b/llvm/test/tools/llvm-objdump/X86/start-stop-address.test index 3f76e793a629..3ce57fd04e5b 100644 --- a/llvm/test/tools/llvm-objdump/X86/start-stop-address.test +++ b/llvm/test/tools/llvm-objdump/X86/start-stop-address.test @@ -67,6 +67,6 @@ // OUT-OF-RANGE-NOT: Disassembly -// RUN: not llvm-objdump -d %t.out --start-address=0x40 --stop-address=0x3f 2>&1 | FileCheck %s --check-prefix ERRMSG -// RUN: not llvm-objdump -d %t.out --start-address=0x40 --stop-address=0x40 2>&1 | FileCheck %s --check-prefix ERRMSG +// RUN: not llvm-objdump %t.out --start-address=0x40 --stop-address=0x3f 2>&1 | FileCheck %s --check-prefix ERRMSG +// RUN: not llvm-objdump %t.out --start-address=0x40 --stop-address=0x40 2>&1 | FileCheck %s --check-prefix ERRMSG // ERRMSG: start address should be less than stop address. diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp index fc3acb457e41..23c25d59d5dd 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.cpp +++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp @@ -1453,9 +1453,6 @@ static void disassembleObject(const Target *TheTarget, const ObjectFile *Obj, } static void disassembleObject(const ObjectFile *Obj, bool InlineRelocs) { - if (StartAddress >= StopAddress) - error("start address should be less than stop address"); - const Target *TheTarget = getTarget(Obj); // Package up features to be passed to target/subtarget @@ -2116,6 +2113,9 @@ int main(int argc, char **argv) { cl::ParseCommandLineOptions(argc, argv, "llvm object file dumper\n"); + if (StartAddress >= StopAddress) + error("start address should be less than stop address"); + ToolName = argv[0]; // Defaults to a.out if no filenames specified.