[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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 ...


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated by system on December, 2 2004 using texi2html