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>
# base is the nominal target function of thunk
<special-name> ::= Tc <call-offset> <call-offset> <base encoding>
# base is the nominal target function of thunk
# first call-offset is 'this' adjustment
# second call-offset is result adjustment
5.1.4.4 Guard Variables
<special-name> ::= GV <object name> # Guard variable for one-time initialization
# No <type>
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 moresource§impl Debug for SpecialName
impl Debug for SpecialName
source§impl PartialEq<SpecialName> for SpecialName
impl PartialEq<SpecialName> for SpecialName
source§fn eq(&self, other: &SpecialName) -> bool
fn eq(&self, other: &SpecialName) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl Eq for SpecialName
impl StructuralEq for SpecialName
impl StructuralPartialEq for SpecialName
Auto Trait Implementations§
impl RefUnwindSafe for SpecialName
impl Send for SpecialName
impl Sync for SpecialName
impl Unpin for SpecialName
impl UnwindSafe for SpecialName
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more