1LLVM-CXXMAP(1)                       LLVM                       LLVM-CXXMAP(1)
2
3
4

NAME

6       llvm-cxxmap - Mangled name remapping tool
7

SYNOPSIS

9       llvm-cxxmap [options] symbol-file-1 symbol-file-2
10

DESCRIPTION

12       The  llvm-cxxmap  tool  performs  fuzzy  matching of C++ mangled names,
13       based on a file describing name components that  should  be  considered
14       equivalent.
15
16       The  symbol  files  should contain a list of C++ mangled names (one per
17       line).  Blank lines and lines starting with # are ignored.  The  output
18       is a list of pairs of equivalent symbols, one per line, of the form
19
20          <symbol-1> <symbol-2>
21
22       where  <symbol-1>  is  a  symbol from symbol-file-1 and <symbol-2> is a
23       symbol from symbol-file-2. Mappings for which the two symbols are iden‐
24       tical are omitted.
25

OPTIONS

27       -remapping-file=file, -r=file
28              Specify  a  file  containing  a  list  of equivalence rules that
29              should be used to determine whether two symbols are  equivalent.
30              Required.  See REMAPPING FILE.
31
32       -output=file, -o=file
33              Specify a file to write the list of matched names to. If unspec‐
34              ified, the list will be written to stdout.
35
36       -Wambiguous
37              Produce a warning if there are  multiple  equivalent  (but  dis‐
38              tinct) symbols in symbol-file-2.
39
40       -Wincomplete
41              Produce  a  warning if symbol-file-1 contains a symbol for which
42              there is no equivalent symbol in symbol-file-2.
43

REMAPPING FILE

45       The remapping file is a text file containing lines of the form
46
47          fragmentkind fragment1 fragment2
48
49       where fragmentkind is  one  of  name,  type,  or  encoding,  indicating
50       whether  the  following mangled name fragments are <name>s, <type>s, or
51       <encoding>s, respectively.  Blank lines and lines starting with  #  are
52       ignored.
53
54       For  convenience,  built-in  <substitution>s  such  as  St  and  Ss are
55       accepted as <name>s (even though they technically are not <name>s).
56
57       For example, to specify  that  absl::string_view  and  std::string_view
58       should  be treated as equivalent, the following remapping file could be
59       used:
60
61          # absl::string_view is considered equivalent to std::string_view
62          type N4absl11string_viewE St17basic_string_viewIcSt11char_traitsIcEE
63
64          # std:: might be std::__1:: in libc++ or std::__cxx11:: in libstdc++
65          name St St3__1
66          name St St7__cxx11
67
68       NOTE:
69          Symbol remapping is currently only supported for C++  mangled  names
70          following  the  Itanium C++ ABI mangling scheme. This covers all C++
71          targets supported by Clang other than Windows targets.
72

AUTHOR

74       Maintained by the LLVM Team (https://llvm.org/).
75
77       2003-2019, LLVM Project
78
79
80
81
828                                 2019-04-25                    LLVM-CXXMAP(1)
Impressum