OSDN Git Service

[llvm-symbolizer] Allow single letter command flags grouping.
authorDmitry Venikov <quolyk@gmail.com>
Wed, 23 Jan 2019 09:49:37 +0000 (09:49 +0000)
committerDmitry Venikov <quolyk@gmail.com>
Wed, 23 Jan 2019 09:49:37 +0000 (09:49 +0000)
Summary: Currently llvm-symbolizer doesn't allow flags combining. This patch allows such grouping behavior just like addr2line. Motivation: https://bugs.llvm.org/show_bug.cgi?id=40304

Reviewers: jhenderson, ruiu

Reviewed By: jhenderson

Subscribers: rupprecht, llvm-commits

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

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

test/tools/llvm-symbolizer/flag-grouping.test [new file with mode: 0644]
tools/llvm-symbolizer/llvm-symbolizer.cpp

diff --git a/test/tools/llvm-symbolizer/flag-grouping.test b/test/tools/llvm-symbolizer/flag-grouping.test
new file mode 100644 (file)
index 0000000..ec03268
--- /dev/null
@@ -0,0 +1,7 @@
+RUN: llvm-symbolizer -inlining -apC -obj=%p/Inputs/addr.exe < %p/Inputs/addr.inp | FileCheck %s
+
+CHECK: some text
+CHECK: 0x40054d: inctwo
+CHECK: (inlined by) inc
+CHECK  (inlined by) main
+CHECK: some text2
index 7414a9d..7affb0f 100644 (file)
@@ -65,7 +65,7 @@ static cl::opt<bool>
 ClDemangle("demangle", cl::init(true), cl::desc("Demangle function names"));
 static cl::alias
 ClDemangleShort("C", cl::desc("Alias for -demangle"),
-                cl::NotHidden, cl::aliasopt(ClDemangle));
+                cl::NotHidden, cl::aliasopt(ClDemangle), cl::Grouping);
 static cl::opt<bool>
 ClNoDemangle("no-demangle", cl::init(false),
              cl::desc("Don't demangle function names"));
@@ -105,7 +105,7 @@ ClPrintAddressAliasAddresses("addresses", cl::desc("Alias for -print-address"),
                              cl::NotHidden, cl::aliasopt(ClPrintAddress));
 static cl::alias
 ClPrintAddressAliasA("a", cl::desc("Alias for -print-address"),
-                     cl::NotHidden, cl::aliasopt(ClPrintAddress));
+                     cl::NotHidden, cl::aliasopt(ClPrintAddress), cl::Grouping);
 
 // -pretty-print, -p
 static cl::opt<bool>
@@ -113,7 +113,7 @@ static cl::opt<bool>
                   cl::desc("Make the output more human friendly"));
 static cl::alias ClPrettyPrintShort("p", cl::desc("Alias for -pretty-print"),
                                     cl::NotHidden,
-                                    cl::aliasopt(ClPrettyPrint));
+                                    cl::aliasopt(ClPrettyPrint), cl::Grouping);
 
 static cl::opt<int> ClPrintSourceContextLines(
     "print-source-context-lines", cl::init(0),