[llvm-symbolizer] Allow more flexible usage of -e.

addr2line allows -e to be grouped with other options; it also allows it
to prefix the value. Thus, all the following usages are possible:

  * addr2line -f -e <bin> <addr>
  * addr2line -fe <bin> <addr>
  * addr2line -f e<bin> <addr>
  * addr2line -fe<bin> <addr>

This patch adds the same for llvm-symbolizer.

Differential Revision: https://reviews.llvm.org/D60196

llvm-svn: 357676
This commit is contained in:
Igor Kudrin 2019-04-04 08:45:06 +00:00
parent 0fed7b0564
commit 734a2bc737
3 changed files with 8 additions and 4 deletions

View File

@ -17,7 +17,9 @@ foo:
# Check --obj aliases --exe, -e # Check --obj aliases --exe, -e
# RUN: llvm-symbolizer 0xa 0xb --exe=%t.o | FileCheck %s # RUN: llvm-symbolizer 0xa 0xb --exe=%t.o | FileCheck %s
# RUN: llvm-symbolizer 0xa 0xb -e %t.o | FileCheck %s
# RUN: llvm-symbolizer 0xa 0xb -e=%t.o | FileCheck %s # RUN: llvm-symbolizer 0xa 0xb -e=%t.o | FileCheck %s
# RUN: llvm-symbolizer 0xa 0xb -e%t.o | FileCheck %s
# CHECK: basic.s:5:0 # CHECK: basic.s:5:0
# CHECK: basic.s:6:0 # CHECK: basic.s:6:0

View File

@ -1,4 +1,7 @@
RUN: llvm-symbolizer -apCi -obj=%p/Inputs/addr.exe < %p/Inputs/addr.inp | FileCheck %s RUN: llvm-symbolizer -apCi -obj=%p/Inputs/addr.exe < %p/Inputs/addr.inp | FileCheck %s
RUN: llvm-symbolizer -apCie %p/Inputs/addr.exe < %p/Inputs/addr.inp | FileCheck %s
RUN: llvm-symbolizer -apCie=%p/Inputs/addr.exe < %p/Inputs/addr.inp | FileCheck %s
RUN: llvm-symbolizer -apCie%p/Inputs/addr.exe < %p/Inputs/addr.inp | FileCheck %s
CHECK: some text CHECK: some text
CHECK: 0x40054d: inctwo CHECK: 0x40054d: inctwo

View File

@ -94,10 +94,9 @@ ClBinaryName("obj", cl::init(""),
static cl::alias static cl::alias
ClBinaryNameAliasExe("exe", cl::desc("Alias for -obj"), ClBinaryNameAliasExe("exe", cl::desc("Alias for -obj"),
cl::NotHidden, cl::aliasopt(ClBinaryName)); cl::NotHidden, cl::aliasopt(ClBinaryName));
static cl::alias static cl::alias ClBinaryNameAliasE("e", cl::desc("Alias for -obj"),
ClBinaryNameAliasE("e", cl::desc("Alias for -obj"), cl::NotHidden, cl::Grouping, cl::Prefix,
cl::NotHidden, cl::aliasopt(ClBinaryName)); cl::aliasopt(ClBinaryName));
static cl::opt<std::string> static cl::opt<std::string>
ClDwpName("dwp", cl::init(""), ClDwpName("dwp", cl::init(""),