File: llvm-cxxmap.1

package info (click to toggle)
llvm-toolchain-13 1%3A13.0.1-6~deb10u4
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 1,418,792 kB
  • sloc: cpp: 5,290,827; ansic: 996,570; asm: 544,593; python: 188,212; objc: 72,027; lisp: 30,291; f90: 25,395; sh: 24,900; javascript: 9,780; pascal: 9,398; perl: 7,484; ml: 5,432; awk: 3,523; makefile: 2,892; xml: 953; cs: 573; fortran: 539
file content (154 lines) | stat: -rw-r--r-- 4,015 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
.\" Man page generated from reStructuredText.
.
.TH "LLVM-CXXMAP" "1" "2021-09-18" "13" "LLVM"
.SH NAME
llvm-cxxmap \- Mangled name remapping tool
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.SH SYNOPSIS
.sp
\fBllvm\-cxxmap\fP [\fIoptions\fP] \fIsymbol\-file\-1\fP \fIsymbol\-file\-2\fP
.SH DESCRIPTION
.sp
The \fBllvm\-cxxmap\fP tool performs fuzzy matching of C++ mangled names,
based on a file describing name components that should be considered equivalent.
.sp
The symbol files should contain a list of C++ mangled names (one per line).
Blank lines and lines starting with \fB#\fP are ignored. The output is a list
of pairs of equivalent symbols, one per line, of the form
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
<symbol\-1> <symbol\-2>
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
where \fB<symbol\-1>\fP is a symbol from \fIsymbol\-file\-1\fP and \fB<symbol\-2>\fP is
a symbol from \fIsymbol\-file\-2\fP\&. Mappings for which the two symbols are identical
are omitted.
.SH OPTIONS
.INDENT 0.0
.TP
.B \-remapping\-file=file, \-r=file
Specify a file containing a list of equivalence rules that should be used
to determine whether two symbols are equivalent. Required.
See \fI\%REMAPPING FILE\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-output=file, \-o=file
Specify a file to write the list of matched names to. If unspecified, the
list will be written to stdout.
.UNINDENT
.INDENT 0.0
.TP
.B \-Wambiguous
Produce a warning if there are multiple equivalent (but distinct) symbols in
\fIsymbol\-file\-2\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-Wincomplete
Produce a warning if \fIsymbol\-file\-1\fP contains a symbol for which there is no
equivalent symbol in \fIsymbol\-file\-2\fP\&.
.UNINDENT
.SH REMAPPING FILE
.sp
The remapping file is a text file containing lines of the form
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
fragmentkind fragment1 fragment2
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
where \fBfragmentkind\fP is one of \fBname\fP, \fBtype\fP, or \fBencoding\fP,
indicating whether the following mangled name fragments are
<\fI\%name\fP>s,
<\fI\%type\fP>s, or
<\fI\%encoding\fP>s,
respectively.
Blank lines and lines starting with \fB#\fP are ignored.
.sp
Unmangled C names can be expressed as an \fBencoding\fP that is a (length\-prefixed)
<\fI\%source\-name\fP>:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
# C function "void foo_bar()" is remapped to C++ function "void foo::bar()".
encoding 7foo_bar _Z3foo3barv
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
For convenience, built\-in <substitution>s such as \fBSt\fP and \fBSs\fP
are accepted as <name>s (even though they technically are not <name>s).
.sp
For example, to specify that \fBabsl::string_view\fP and \fBstd::string_view\fP
should be treated as equivalent, the following remapping file could be used:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
# absl::string_view is considered equivalent to std::string_view
type N4absl11string_viewE St17basic_string_viewIcSt11char_traitsIcEE

# std:: might be std::__1:: in libc++ or std::__cxx11:: in libstdc++
name St St3__1
name St St7__cxx11
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
\fBNOTE:\fP
.INDENT 0.0
.INDENT 3.5
Symbol remapping is currently only supported for C++ mangled names
following the Itanium C++ ABI mangling scheme. This covers all C++ targets
supported by Clang other than Windows targets.
.UNINDENT
.UNINDENT
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
.\" Generated by docutils manpage writer.
.