Index: llvm/test/tools/llvm-objdump/X86/source-interleave-prefix-windows.test =================================================================== --- llvm/test/tools/llvm-objdump/X86/source-interleave-prefix-windows.test +++ llvm/test/tools/llvm-objdump/X86/source-interleave-prefix-windows.test @@ -6,6 +6,6 @@ ; RUN: sed -e "s,SRC_COMPDIR,/Inputs,g" %p/Inputs/source-interleave.ll > %t.ll ; RUN: llc -o %t.o -filetype=obj -mtriple=x86_64-pc-linux %t.ll -; RUN: llvm-objdump --prefix 'myprefix/\' --source %t.o 2>&1 | FileCheck %s -DFILE=%t.o -DPREFIX='myprefix' +; RUN: llvm-objdump --prefix='myprefix/\' --source %t.o 2>&1 | FileCheck %s -DFILE=%t.o -DPREFIX='myprefix' ; CHECK: warning: '[[FILE]]': failed to find source [[PREFIX]]/Inputs\source-interleave-x86_64.c Index: llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test =================================================================== --- llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test +++ llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test @@ -11,7 +11,7 @@ ; RUN: sed -e "s,SRC_COMPDIR,./Inputs,g" %p/Inputs/source-interleave.ll > %t-relative-path.ll ; RUN: llc -o %t-relative-path.o -filetype=obj -mtriple=x86_64-pc-linux %t-relative-path.ll -; RUN: llvm-objdump --prefix myprefix --source %t-relative-path.o 2>&1 | \ +; RUN: llvm-objdump --prefix=myprefix --source %t-relative-path.o 2>&1 | \ ; RUN: FileCheck %s --check-prefix=CHECK-BROKEN-PREFIX -DFILE=%t-relative-path.o -DPREFIX=. -DCOMPDIR=/Inputs ; CHECK-BROKEN-PREFIX: warning: '[[FILE]]': failed to find source [[PREFIX]][[COMPDIR]]{{[/\\]}}source-interleave-x86_64.c @@ -19,7 +19,7 @@ ; RUN: sed -e "s,SRC_COMPDIR,/Inputs,g" %p/Inputs/source-interleave.ll > %t-missing-prefix.ll ; RUN: llc -o %t-missing-prefix.o -filetype=obj -mtriple=x86_64-pc-linux %t-missing-prefix.ll -; RUN: llvm-objdump --prefix %p --source %t-missing-prefix.o 2>&1 | \ +; RUN: llvm-objdump --prefix=%p --source %t-missing-prefix.o 2>&1 | \ ; RUN: FileCheck %s --check-prefix=CHECK-MISSING-PREFIX-FIX ; CHECK-MISSING-PREFIX-FIX: ; int foo() { @@ -27,18 +27,18 @@ ; RUN: sed -e "s,SRC_COMPDIR,%/p/Inputs,g" %p/Inputs/source-interleave.ll > %t-correct-prefix.ll ; RUN: llc -o %t-correct-prefix.o -filetype=obj -mtriple=x86_64-pc-linux %t-correct-prefix.ll -; RUN: llvm-objdump --prefix myprefix --source %t-correct-prefix.o 2>&1 | \ +; RUN: llvm-objdump --prefix=myprefix --source %t-correct-prefix.o 2>&1 | \ ; RUN: FileCheck %s --check-prefix=CHECK-BROKEN-PREFIX -DFILE=%t-correct-prefix.o -DPREFIX=myprefix%/p -DCOMPDIR=/Inputs ;; Using only a prefix separator is the same as not using the `--prefix` option. -; RUN: llvm-objdump --prefix / --source %t-missing-prefix.o 2>&1 | \ +; RUN: llvm-objdump --prefix=/ --source %t-missing-prefix.o 2>&1 | \ ; RUN: FileCheck %s --check-prefix=CHECK-BROKEN-PREFIX -DFILE=%t-missing-prefix.o -DPREFIX='' -DCOMPDIR=/Inputs ;; All trailing separators on the prefix are discarded. ;; The prefix 'myprefix//' is converted to 'myprefix'. -; RUN: llvm-objdump --prefix myprefix// --source %t-missing-prefix.o 2>&1 | \ +; RUN: llvm-objdump --prefix=myprefix// --source %t-missing-prefix.o 2>&1 | \ ; RUN: FileCheck %s --check-prefix=CHECK-BROKEN-PREFIX -DFILE=%t-missing-prefix.o -DPREFIX=myprefix -DCOMPDIR=/Inputs ;; Test invalid source interleave fixed by adding the correct prefix and @@ -46,7 +46,7 @@ ; RUN: sed -e "s,SRC_COMPDIR,/extra/Inputs,g" %p/Inputs/source-interleave.ll > %t-extra-path-prefix.ll ; RUN: llc -o %t-extra-path-prefix.o -filetype=obj -mtriple=x86_64-pc-linux %t-extra-path-prefix.ll -; RUN: llvm-objdump --prefix %p --prefix-strip 1 --source %t-extra-path-prefix.o 2>&1 | \ +; RUN: llvm-objdump --prefix=%p --prefix-strip=1 --source %t-extra-path-prefix.o 2>&1 | \ ; RUN: FileCheck %s --check-prefix=CHECK-MISSING-PREFIX-FIX ;; Test do not skip extra separators. The --prefix-strip should take into @@ -56,36 +56,36 @@ ; RUN: sed -e "s,SRC_COMPDIR,//extra/Inputs,g" %p/Inputs/source-interleave.ll > %t-extra-sep-path-prefix.ll ; RUN: llc -o %t-extra-sep-path-prefix.o -filetype=obj -mtriple=x86_64-pc-linux %t-extra-sep-path-prefix.ll -; RUN: llvm-objdump --prefix %p --prefix-strip 2 --source %t-extra-sep-path-prefix.o 2>&1 | \ +; RUN: llvm-objdump --prefix=%p --prefix-strip=2 --source %t-extra-sep-path-prefix.o 2>&1 | \ ; RUN: FileCheck %s --check-prefix=CHECK-MISSING-PREFIX-FIX ;; Test --prefix-strip value of 0. No effect. -;; SRC_COMPDIR is set to '/Inputs' before and after --prefix-strip 0. +;; SRC_COMPDIR is set to '/Inputs' before and after --prefix-strip=0. -; RUN: llvm-objdump --prefix %p --prefix-strip 0 --source %t-missing-prefix.o 2>&1 | \ +; RUN: llvm-objdump --prefix=%p --prefix-strip=0 --source %t-missing-prefix.o 2>&1 | \ ; RUN: FileCheck %s --check-prefix=CHECK-MISSING-PREFIX-FIX ;; Test --prefix-strip value equal to the number of directory components. -;; SRC_COMPDIR is set to '/Inputs' before --prefix-strip 1. -;; SRC_COMPDIR becomes '' after --prefix-strip 1. +;; SRC_COMPDIR is set to '/Inputs' before --prefix-strip=1. +;; SRC_COMPDIR becomes '' after --prefix-strip=1. -; RUN: llvm-objdump --prefix %p/Inputs --prefix-strip 1 --source %t-missing-prefix.o 2>&1 | \ +; RUN: llvm-objdump --prefix=%p/Inputs --prefix-strip=1 --source %t-missing-prefix.o 2>&1 | \ ; RUN: FileCheck %s --check-prefix=CHECK-MISSING-PREFIX-FIX ;; Test --prefix-strip value greater than the number of components. -;; SRC_COMPDIR is set to '/Inputs' before --prefix-strip 2. -;; SRC_COMPDIR becomes '' after --prefix-strip 2. +;; SRC_COMPDIR is set to '/Inputs' before --prefix-strip=2. +;; SRC_COMPDIR becomes '' after --prefix-strip=2. -; RUN: llvm-objdump --prefix %p/Inputs --prefix-strip 2 --source %t-missing-prefix.o 2>&1 | \ +; RUN: llvm-objdump --prefix=%p/Inputs --prefix-strip=2 --source %t-missing-prefix.o 2>&1 | \ ; RUN: FileCheck %s --check-prefix=CHECK-MISSING-PREFIX-FIX ;; Test negative value --prefix-strip. Reports an error. -; RUN: not llvm-objdump --prefix %p --prefix-strip '-1' --source %t-missing-prefix.o 2>&1 | \ +; RUN: not llvm-objdump --prefix=%p --prefix-strip='-1' --source %t-missing-prefix.o 2>&1 | \ ; RUN: FileCheck %s --check-prefix=CHECK-INVALID-PREFIX-STRIP -DOPTION='-1' -; CHECK-INVALID-PREFIX-STRIP: {{.*}}llvm-objdump{{.*}}: error: --prefix-strip: expected a non-negative integer, but got '[[OPTION]]' +; CHECK-INVALID-PREFIX-STRIP: {{.*}}llvm-objdump{{.*}}: error: --prefix-strip=: expected a non-negative integer, but got '[[OPTION]]' ;; Test text value --prefix-strip. Reports an error. -; RUN: not llvm-objdump --prefix %p --prefix-strip foo --source %t-missing-prefix.o 2>&1 | \ +; RUN: not llvm-objdump --prefix=%p --prefix-strip=foo --source %t-missing-prefix.o 2>&1 | \ ; RUN: FileCheck %s --check-prefix=CHECK-INVALID-PREFIX-STRIP -DOPTION='foo' Index: llvm/tools/llvm-objdump/ObjdumpOpts.td =================================================================== --- llvm/tools/llvm-objdump/ObjdumpOpts.td +++ llvm/tools/llvm-objdump/ObjdumpOpts.td @@ -180,10 +180,10 @@ HelpText<"Ignored for compatibility with GNU objdump">; def : Flag<["-"], "w">, Alias; -def prefix : Separate<["--"], "prefix">, +def prefix_EQ : Joined<["--"], "prefix=">, HelpText<"Add prefix to absolute paths">; -def prefix_strip : Separate<["--"], "prefix-strip">, +def prefix_strip_EQ : Joined<["--"], "prefix-strip=">, HelpText<"Strip out initial directories from absolute " "paths. No effect without --prefix">; Index: llvm/tools/llvm-objdump/llvm-objdump.cpp =================================================================== --- llvm/tools/llvm-objdump/llvm-objdump.cpp +++ llvm/tools/llvm-objdump/llvm-objdump.cpp @@ -2560,8 +2560,8 @@ TripleName = InputArgs.getLastArgValue(OBJDUMP_triple_EQ).str(); UnwindInfo = InputArgs.hasArg(OBJDUMP_unwind_info); Wide = InputArgs.hasArg(OBJDUMP_wide); - Prefix = InputArgs.getLastArgValue(OBJDUMP_prefix).str(); - parseIntArg(InputArgs, OBJDUMP_prefix_strip, PrefixStrip); + Prefix = InputArgs.getLastArgValue(OBJDUMP_prefix_EQ).str(); + parseIntArg(InputArgs, OBJDUMP_prefix_strip_EQ, PrefixStrip); if (const opt::Arg *A = InputArgs.getLastArg(OBJDUMP_debug_vars_EQ)) { DbgVariables = StringSwitch(A->getValue()) .Case("ascii", DVASCII)