diff --git a/llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test b/llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test --- a/llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test +++ b/llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test @@ -89,3 +89,10 @@ ; 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' + +;; Test use of --prefix= and --prefix-strip= + +; 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: FileCheck %s --check-prefix=CHECK-MISSING-PREFIX-FIX diff --git a/llvm/tools/llvm-objdump/ObjdumpOpts.td b/llvm/tools/llvm-objdump/ObjdumpOpts.td --- a/llvm/tools/llvm-objdump/ObjdumpOpts.td +++ b/llvm/tools/llvm-objdump/ObjdumpOpts.td @@ -1,5 +1,12 @@ include "llvm/Option/OptParser.td" +multiclass Eq { + def NAME : Separate<["--"], name>; + def NAME #_eq : Joined<["--"], name #"=">, + Alias(NAME)>, + HelpText; +} + def help : Flag<["--"], "help">, HelpText<"Display available options (--help-hidden for more)">; @@ -180,12 +187,12 @@ HelpText<"Ignored for compatibility with GNU objdump">; def : Flag<["-"], "w">, Alias; -def prefix : Separate<["--"], "prefix">, - HelpText<"Add prefix to absolute paths">; - -def prefix_strip : Separate<["--"], "prefix-strip">, - HelpText<"Strip out initial directories from absolute " - "paths. No effect without --prefix">; +defm prefix : Eq<"prefix", "Add prefix to absolute paths">, + MetaVarName<"prefix">; +defm prefix_strip + : Eq<"prefix-strip", "Strip out initial directories from absolute " + "paths. No effect without --prefix">, + MetaVarName<"prefix">; def debug_vars_EQ : Joined<["--"], "debug-vars=">, Values<"unicode,ascii">;