]> granicus.if.org Git - llvm/commitdiff
[llvm-symbolizer] Allow more flexible usage of -e.
authorIgor Kudrin <ikudrin@accesssoftek.com>
Thu, 4 Apr 2019 08:45:06 +0000 (08:45 +0000)
committerIgor Kudrin <ikudrin@accesssoftek.com>
Thu, 4 Apr 2019 08:45:06 +0000 (08:45 +0000)
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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357676 91177308-0d34-0410-b5e6-96231b3b80d8

test/tools/llvm-symbolizer/basic.s
test/tools/llvm-symbolizer/flag-grouping.test
tools/llvm-symbolizer/llvm-symbolizer.cpp

index c966f985a5034943411bdff3e5242d67b2d0f09c..b9d5c814024fb5fb120b032cd2c3dc4bfd06de87 100644 (file)
@@ -17,7 +17,9 @@ foo:
 
 # Check --obj aliases --exe, -e
 # 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
 
 # CHECK: basic.s:5:0
 # CHECK: basic.s:6:0
index 9341eca8bdc64537705c6141d41fa8463167173c..edc6d02c2b9f6c91aa54b5c0885a8b180bfb1208 100644 (file)
@@ -1,4 +1,7 @@
 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: 0x40054d: inctwo
index e410cfe14930c421df4efaf2f2542f24b00a84fe..359c64b37cec367875cea8cae4ee3eeb10e5e39e 100644 (file)
@@ -94,10 +94,9 @@ ClBinaryName("obj", cl::init(""),
 static cl::alias
 ClBinaryNameAliasExe("exe", cl::desc("Alias for -obj"),
                      cl::NotHidden, cl::aliasopt(ClBinaryName));
-static cl::alias
-ClBinaryNameAliasE("e", cl::desc("Alias for -obj"),
-                   cl::NotHidden, cl::aliasopt(ClBinaryName));
-
+static cl::alias ClBinaryNameAliasE("e", cl::desc("Alias for -obj"),
+                                    cl::NotHidden, cl::Grouping, cl::Prefix,
+                                    cl::aliasopt(ClBinaryName));
 
 static cl::opt<std::string>
     ClDwpName("dwp", cl::init(""),