Enum cpp_demangle::ast::SpecialName
source · pub enum SpecialName {
Show 15 variants
VirtualTable(TypeHandle),
Vtt(TypeHandle),
Typeinfo(TypeHandle),
TypeinfoName(TypeHandle),
VirtualOverrideThunk(CallOffset, Box<Encoding>),
VirtualOverrideThunkCovariant(CallOffset, CallOffset, Box<Encoding>),
Guard(Name),
GuardTemporary(Name, usize),
ConstructionVtable(TypeHandle, usize, TypeHandle),
TypeinfoFunction(TypeHandle),
TlsInit(Name),
TlsWrapper(Name),
JavaResource(Vec<ResourceName>),
TransactionClone(Box<Encoding>),
NonTransactionClone(Box<Encoding>),
}
Expand description
The <special-name>
production.
The <special-name>
production is spread in pieces through out the ABI
spec, and then there are a bunch of g++
extensions that have become de
facto.
5.1.4.1 Virtual Tables and RTTI
<special-name> ::= TV <type> # virtual table
::= TT <type> # VTT structure (construction vtable index)
::= TI <type> # typeinfo structure
::= TS <type> # typeinfo name (null-terminated byte string)
5.1.4.2 Virtual Override Thunks
<special-name> ::= T <call-offset> <base encoding>
<special-name> ::= Tc <call-offset> <call-offset> <base encoding>
5.1.4.4 Guard Variables
<special-name> ::= GV <object name> # Guard variable for one-time initialization
5.1.4.5 Lifetime-Extended Temporaries
<special-name> ::= GR <object name> _ # First temporary
<special-name> ::= GR <object name> <seq-id> _ # Subsequent temporaries
De Facto Standard Extensions
<special-name> ::= TC <type> <number> _ <type> # construction vtable
::= TF <type> # typinfo function
::= TH <name> # TLS initialization function
::= TW <name> # TLS wrapper function
::= Gr <resource name> # Java Resource
::= GTt <encoding> # Transaction-Safe function
::= GTn <encoding> # Non-Transaction-Safe function
Variants§
VirtualTable(TypeHandle)
A virtual table.
Vtt(TypeHandle)
A VTT structure (construction vtable index).
Typeinfo(TypeHandle)
A typeinfo structure.
TypeinfoName(TypeHandle)
A typeinfo name (null-terminated byte string).
VirtualOverrideThunk(CallOffset, Box<Encoding>)
A virtual override thunk.
VirtualOverrideThunkCovariant(CallOffset, CallOffset, Box<Encoding>)
A virtual override thunk with a covariant return type.
Guard(Name)
An initialization guard for some static storage.
GuardTemporary(Name, usize)
A temporary used in the initialization of a static storage and promoted to a static lifetime.
ConstructionVtable(TypeHandle, usize, TypeHandle)
A construction vtable structure.
TypeinfoFunction(TypeHandle)
A typeinfo function.
TlsInit(Name)
A TLS initialization function.
TlsWrapper(Name)
A TLS wrapper function.
JavaResource(Vec<ResourceName>)
A Java Resource.
TransactionClone(Box<Encoding>)
A function declared transaction-safe
NonTransactionClone(Box<Encoding>)
A function declared non-transaction-safe
Trait Implementations§
source§impl Clone for SpecialName
impl Clone for SpecialName
source§fn clone(&self) -> SpecialName
fn clone(&self) -> SpecialName
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read more