[PATCH] D63722: [docs][llvm-cxxfilt] Write llvm-cxxfilt documentation

James Henderson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 24 09:21:35 PDT 2019


jhenderson created this revision.
jhenderson added reviewers: rupprecht, MaskRay, compnerd, mattd.
Herald added a project: LLVM.

There was a stub for llvm-cxxfilt, but it didn't describe the options. Additionally, it was in markdown, which was causing issues, so as discussed in D63211 <https://reviews.llvm.org/D63211>, this change replaces the existing stub with an RST file.


Repository:
  rL LLVM

https://reviews.llvm.org/D63722

Files:
  docs/CommandGuide/llvm-cxxfilt.md
  docs/CommandGuide/llvm-cxxfilt.rst


Index: docs/CommandGuide/llvm-cxxfilt.rst
===================================================================
--- docs/CommandGuide/llvm-cxxfilt.rst
+++ docs/CommandGuide/llvm-cxxfilt.rst
@@ -0,0 +1,79 @@
+llvm-cxxfilt - LLVM symbol name demangler
+=========================================
+
+SYNOPSIS
+--------
+
+:program:`llvm-cxxfilt` [*options*] [*mangled names...*]
+
+DESCRIPTION
+-----------
+
+The :program:`llvm-cxxfilt` is a symbol demangler that can be used as a
+replacement for the GNU :program:`c++filt` tool. It takes a series of symbol
+names and prints their demangled form on the standard output stream. If a name
+cannot be demangled, it is simply printed as is.
+
+If no names are specified on the command-line, names are read interactively from
+the standard input stream. When reading names from standard input, each input
+line is split on characters that are not part of valid Itanium name manglings,
+i.e. characters that are not alphanumeric, '.', '$', or '_'. Separators between
+names are copied to the output as is.
+
+EXAMPLE
+-------
+
+.. code-block:: console
+
+  $ llvm-cxxfilt _Z3foov _Z3bari not_mangled
+  foo()
+  bar(int)
+  not_mangled
+  $ cat input.txt
+  | _Z3foov *** _Z3bari *** not_mangled |
+  $ llvm-cxxfilt < input.txt
+  | foo() *** bar(int) *** not_mangled |
+
+OPTIONS
+-------
+
+.. option:: --format=<value>, -s
+
+  Mangling scheme to assume. Valid values are ``auto`` (default, auto-detect the
+  style) and ``gnu`` (assume GNU/Itanium style).
+
+.. option:: --help, -h
+
+ Print a summary of command line options.
+
+.. option:: --help-list
+
+ Print an uncategorized summary of command line options.
+
+.. option:: --strip-underscore, -_
+
+  Discard a single leading underscore, if present, from each input name before
+  demangling.
+
+.. option:: --types, -t
+
+  Attempt to demangle names as type names as well as function names.
+
+.. option:: --version
+
+  Display the version of this program.
+
+.. option:: @<FILE>
+
+ Read command-line options from response file `<FILE>`.
+
+EXIT CODE
+---------
+
+:program:`llvm-cxxfilt` returns 0 unless it encounters a usage error, in which
+case a non-zero exit code is returned.
+
+SEE ALSO
+--------
+
+:manpage:`llvm-nm(1)`
Index: docs/CommandGuide/llvm-cxxfilt.md
===================================================================
--- docs/CommandGuide/llvm-cxxfilt.md
+++ docs/CommandGuide/llvm-cxxfilt.md
@@ -1,10 +0,0 @@
-# llvm-cxxfilt - a symbol demangler
-
-## SYNOPSIS
-
-**llvm-cxxfilt** [*options*]
-
-## DESCRIPTION
-
-**llvm-cxxfilt** is symbol demangler that can be used as a replacement for the
-GNU **c++filt** tool.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D63722.206236.patch
Type: text/x-patch
Size: 2645 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190624/35a9b962/attachment-0001.bin>


More information about the llvm-commits mailing list