1.15.10 Table of demangling code characters
The following special characters are used in mangling:
- `A'
- Indicates a C++ array type.
- `b'
- Encodes the C++
bool
type,
and the Java boolean
type.
- `B'
- Used for squangling. Similar in concept to the 'T' non-squangled code.
- `c'
- Encodes the C++
char
type, and the Java byte
type.
- `C'
- A modifier to indicate a
const
type.
Also used to indicate a const
member function
(in which cases it precedes the encoding of the method's class).
- `d'
- Encodes the C++ and Java
double
types.
- `e'
- Indicates extra unknown arguments
...
.
- `E'
- Indicates the opening parenthesis of an expression.
- `f'
- Encodes the C++ and Java
float
types.
- `F'
- Used to indicate a function type.
- `H'
- Used to indicate a template function.
- `i'
- Encodes the C++ and Java
int
types.
- `I'
- Encodes typedef names of the form
intn_t
, where n is a
positive decimal number. The `I' is followed by either two
hexidecimal digits, which encode the value of n, or by an
arbitrary number of hexidecimal digits between underscores. For
example, `I40' encodes the type int64_t
, and `I_200_'
encodes the type int512_t
.
- `J'
- Indicates a complex type.
- `K'
- Used by squangling to compress qualified names.
- `l'
- Encodes the C++
long
type.
- `n'
- Immediate repeated type. Followed by the repeat count.
- `N'
- Repeated type. Followed by the repeat count of the repeated type,
followed by the type index of the repeated type. Due to a bug in
g++ 2.7.2, this is only generated if index is 0. Superceded by
`n' when squangling.
- `P'
- Indicates a pointer type. Followed by the type pointed to.
- `Q'
- Used to mangle qualified names, which arise from nested classes.
Also used for namespaces.
In Java used to mangle package-qualified names, and inner classes.
- `r'
- Encodes the GNU C++
long double
type.
- `R'
- Indicates a reference type. Followed by the referenced type.
- `s'
- Encodes the C++ and java
short
types.
- `S'
- A modifier that indicates that the following integer type is signed.
Only used with
char
.
Also used as a modifier to indicate a static member function.
- `t'
- Indicates a template instantiation.
- `T'
- A back reference to a previously seen type.
- `U'
- A modifier that indicates that the following integer type is unsigned.
Also used to indicate that the following class or namespace name
is encoded using Unicode-mangling.
- `u'
- The
restrict
type qualifier.
- `v'
- Encodes the C++ and Java
void
types.
- `V'
- A modifier for a
volatile
type or method.
- `w'
- Encodes the C++
wchar_t
type, and the Java char
types.
- `W'
- Indicates the closing parenthesis of an expression.
- `x'
- Encodes the GNU C++
long long
type, and the Java long
type.
- `X'
- Encodes a template type parameter, when part of a function type.
- `Y'
- Encodes a template constant parameter, when part of a function type.
- `Z'
- Used for template type parameters.
The letters `G', `M', `O', and `p'
also seem to be used for obscure purposes ...
This document was generated
by system on December, 2 2004
using texi2html