diff options
author | Douglas Yung <douglas.yung@sony.com> | 2019-01-24 00:34:09 +0000 |
---|---|---|
committer | Douglas Yung <douglas.yung@sony.com> | 2019-01-24 00:34:09 +0000 |
commit | 7876c0ecf22f291fcbaf9ba507bad31e3d0bf1c4 (patch) | |
tree | 0c6500f60da50703101c68b9ebc4a4c1a9544043 | |
parent | addb7ab2ae2234b4b49e3f29e72762d8ee90bcef (diff) | |
download | bcm5719-llvm-7876c0ecf22f291fcbaf9ba507bad31e3d0bf1c4.tar.gz bcm5719-llvm-7876c0ecf22f291fcbaf9ba507bad31e3d0bf1c4.zip |
[llvm-symbolizer] Add support for -i and -inlines as aliases for -inlining
This change adds two options, -i and -inlines as aliases for the -inlining option to llvm-symbolizer to improve compatibility with the GNU addr2line utility which accepts these options.
It also modifies existing tests that use -inlining to exercise these new aliases as well.
This fixes PR40073.
Reviewed by: jhenderson, Quolyk, ruiu
Differential Revision: https://reviews.llvm.org/D57083
llvm-svn: 351999
-rw-r--r-- | llvm/docs/CommandGuide/llvm-symbolizer.rst | 2 | ||||
-rw-r--r-- | llvm/test/tools/llvm-symbolizer/coff-dwarf.test | 6 | ||||
-rw-r--r-- | llvm/test/tools/llvm-symbolizer/coff-exports.test | 6 | ||||
-rw-r--r-- | llvm/test/tools/llvm-symbolizer/flag-grouping.test | 2 | ||||
-rw-r--r-- | llvm/test/tools/llvm-symbolizer/sym.test | 4 | ||||
-rw-r--r-- | llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp | 7 |
6 files changed, 25 insertions, 2 deletions
diff --git a/llvm/docs/CommandGuide/llvm-symbolizer.rst b/llvm/docs/CommandGuide/llvm-symbolizer.rst index 2e69a20442c..afd94483a42 100644 --- a/llvm/docs/CommandGuide/llvm-symbolizer.rst +++ b/llvm/docs/CommandGuide/llvm-symbolizer.rst @@ -91,7 +91,7 @@ OPTIONS Don't print demangled function names. -.. option:: -inlining +.. option:: -inlining, -inlines, -i If a source code location is in an inlined function, prints all the inlnied frames. Defaults to true. diff --git a/llvm/test/tools/llvm-symbolizer/coff-dwarf.test b/llvm/test/tools/llvm-symbolizer/coff-dwarf.test index 50763a6bde6..ac3d3bd689f 100644 --- a/llvm/test/tools/llvm-symbolizer/coff-dwarf.test +++ b/llvm/test/tools/llvm-symbolizer/coff-dwarf.test @@ -1,6 +1,12 @@ RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ RUN: | llvm-symbolizer --inlining --relative-address -obj="%p/Inputs/coff-dwarf.exe" \ RUN: | FileCheck %s +RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ +RUN: | llvm-symbolizer --inlines --relative-address -obj="%p/Inputs/coff-dwarf.exe" \ +RUN: | FileCheck %s +RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ +RUN: | llvm-symbolizer -i --relative-address -obj="%p/Inputs/coff-dwarf.exe" \ +RUN: | FileCheck %s This test relies on UnDecorateSymbolName, which is Windows-only. REQUIRES: target-windows, system-windows diff --git a/llvm/test/tools/llvm-symbolizer/coff-exports.test b/llvm/test/tools/llvm-symbolizer/coff-exports.test index dde90fb4273..470d198a415 100644 --- a/llvm/test/tools/llvm-symbolizer/coff-exports.test +++ b/llvm/test/tools/llvm-symbolizer/coff-exports.test @@ -1,6 +1,12 @@ RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ RUN: | llvm-symbolizer --inlining --relative-address -obj="%p/Inputs/coff-exports.exe" \ RUN: | FileCheck %s +RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ +RUN: | llvm-symbolizer --inlines --relative-address -obj="%p/Inputs/coff-exports.exe" \ +RUN: | FileCheck %s +RUN: grep '^ADDR:' %s | sed -s 's/ADDR: //' \ +RUN: | llvm-symbolizer -i --relative-address -obj="%p/Inputs/coff-exports.exe" \ +RUN: | FileCheck %s This test relies on UnDecorateSymbolName, which is Win32-only. REQUIRES: system-windows diff --git a/llvm/test/tools/llvm-symbolizer/flag-grouping.test b/llvm/test/tools/llvm-symbolizer/flag-grouping.test index c8ae547a5fc..9341eca8bdc 100644 --- a/llvm/test/tools/llvm-symbolizer/flag-grouping.test +++ b/llvm/test/tools/llvm-symbolizer/flag-grouping.test @@ -1,4 +1,4 @@ -RUN: llvm-symbolizer -inlining -apfC -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 CHECK: some text CHECK: 0x40054d: inctwo diff --git a/llvm/test/tools/llvm-symbolizer/sym.test b/llvm/test/tools/llvm-symbolizer/sym.test index 623eb4cf57b..50c710ad179 100644 --- a/llvm/test/tools/llvm-symbolizer/sym.test +++ b/llvm/test/tools/llvm-symbolizer/sym.test @@ -22,6 +22,10 @@ RUN: llvm-symbolizer -addresses -obj=%p/Inputs/addr.exe < %p/Inputs/addr.inp | F RUN: llvm-symbolizer -a -obj=%p/Inputs/addr.exe < %p/Inputs/addr.inp | FileCheck %s RUN: llvm-symbolizer -inlining -print-address -pretty-print -obj=%p/Inputs/addr.exe < %p/Inputs/addr.inp | FileCheck -check-prefix="PRETTY" %s RUN: llvm-symbolizer -inlining -print-address -p -obj=%p/Inputs/addr.exe < %p/Inputs/addr.inp | FileCheck -check-prefix="PRETTY" %s +RUN: llvm-symbolizer -inlines -print-address -pretty-print -obj=%p/Inputs/addr.exe < %p/Inputs/addr.inp | FileCheck -check-prefix="PRETTY" %s +RUN: llvm-symbolizer -inlines -print-address -p -obj=%p/Inputs/addr.exe < %p/Inputs/addr.inp | FileCheck -check-prefix="PRETTY" %s +RUN: llvm-symbolizer -i -print-address -pretty-print -obj=%p/Inputs/addr.exe < %p/Inputs/addr.inp | FileCheck -check-prefix="PRETTY" %s +RUN: llvm-symbolizer -i -print-address -p -obj=%p/Inputs/addr.exe < %p/Inputs/addr.inp | FileCheck -check-prefix="PRETTY" %s RUN: echo "0x1" > %t.input RUN: llvm-symbolizer -obj=%p/Inputs/zero < %t.input | FileCheck -check-prefix="ZERO" %s diff --git a/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp b/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp index 83b39d9d018..0134f1c6a1e 100644 --- a/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp +++ b/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp @@ -58,6 +58,13 @@ static cl::opt<bool> static cl::opt<bool> ClPrintInlining("inlining", cl::init(true), cl::desc("Print all inlined frames for a given address")); +static cl::alias + ClPrintInliningAliasI("i", cl::desc("Alias for -inlining"), + cl::NotHidden, cl::aliasopt(ClPrintInlining), + cl::Grouping); +static cl::alias + ClPrintInliningAliasInlines("inlines", cl::desc("Alias for -inlining"), + cl::NotHidden, cl::aliasopt(ClPrintInlining)); // -basenames, -s static cl::opt<bool> ClBasenames("basenames", cl::init(false), |