From: Yuanfang Chen Date: Sat, 22 Jun 2019 00:22:57 +0000 (+0000) Subject: [llvm-objdump] Move --start-address >= --stop-address check out of the X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d142165668c126688c6b3253110e418c795a705d;p=llvm [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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364118 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/tools/llvm-objdump/X86/start-stop-address.test b/test/tools/llvm-objdump/X86/start-stop-address.test index 3f76e793a62..3ce57fd04e5 100644 --- a/test/tools/llvm-objdump/X86/start-stop-address.test +++ b/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/tools/llvm-objdump/llvm-objdump.cpp b/tools/llvm-objdump/llvm-objdump.cpp index fc3acb457e4..23c25d59d5d 100644 --- a/tools/llvm-objdump/llvm-objdump.cpp +++ b/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.