Skip to content

Latest commit

 

History

History
208 lines (115 loc) · 5.49 KB

File metadata and controls

208 lines (115 loc) · 5.49 KB

Itanium C++ mangling

Table of contents

  1. General Structure
  2. Operator Encodings
  3. Other Special Functions and Entities
  4. Type encodings
  5. Expressions
  6. Scope Encoding
  7. Closure Types (Lambdas)
  8. Compression
  9. Index of rules

Source: Itanium C++ ABI

General Structure

mangled-name

Rule Definitions
mangled-name _Z encoding

encoding

Rule Definitions
encoding name bare-function-type

name

Rule Definitions
name nested-name
unscoped-name

unscoped-name

Rule Definitions
unscoped-name unqualified-name

nested-name

Rule Definitions
nested-name N [CV-qualifiers] prefix unqualified-name E

prefix

Rule Definitions
prefix unqualified-name
prefix unqualified-name

unqualified-name

Rule Definitions
unqualified-name source-name

source-name

Rule Definitions
source-name positive-length-number identifier

identifier

Rule Definitions Comments
identifier unqualified-source-code-identifier identifier is a pseudo-terminal representing the characters in the unqualified identifier for the entity in the source code.

Operator Encodings

Other Special Functions and Entities

Type encodings

type

Rule Definitions
type builtin-type
class-enum-type
nested-name

CV-qualifiers

Rule Definitions Comments
CV-qualifiers [V] [K] Volatile, const.

builtin-type

Rule Definitions Comments
builtin-type v void
w wchar_t
b bool
c char
s short
i int
j unsigned int
l long
f float
d double
z ellipsis

bare-function-type

Rule Definitions
bare-function-type type +

class-enum-type

Rule Definitions Comments
class-enum-type unscoped-name Non-dependent type name, dependent type name, or dependent typename-specifier.

Expressions

Scope Encoding

Closure Types (Lambdas)

Compression

Index of rules