From 8384cd81267f63a044c67bfde0c604d1a7c1bee1 Mon Sep 17 00:00:00 2001 From: Dmitry Venikov Date: Wed, 23 Jan 2019 09:49:37 +0000 Subject: [PATCH] [llvm-symbolizer] Allow single letter command flags grouping. 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 | 7 +++++++ tools/llvm-symbolizer/llvm-symbolizer.cpp | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 test/tools/llvm-symbolizer/flag-grouping.test diff --git a/test/tools/llvm-symbolizer/flag-grouping.test b/test/tools/llvm-symbolizer/flag-grouping.test new file mode 100644 index 00000000000..ec032689e15 --- /dev/null +++ b/test/tools/llvm-symbolizer/flag-grouping.test @@ -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 diff --git a/tools/llvm-symbolizer/llvm-symbolizer.cpp b/tools/llvm-symbolizer/llvm-symbolizer.cpp index 7414a9db284..7affb0fdd33 100644 --- a/tools/llvm-symbolizer/llvm-symbolizer.cpp +++ b/tools/llvm-symbolizer/llvm-symbolizer.cpp @@ -65,7 +65,7 @@ static cl::opt 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 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 @@ -113,7 +113,7 @@ static cl::opt 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 ClPrintSourceContextLines( "print-source-context-lines", cl::init(0), -- 2.50.1