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
sourceimpl Clone for SpecialName
impl Clone for SpecialName
sourcefn clone(&self) -> SpecialName
fn clone(&self) -> SpecialName
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for SpecialName
impl Debug for SpecialName
sourceimpl PartialEq<SpecialName> for SpecialName
impl PartialEq<SpecialName> for SpecialName
sourcefn 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 ==
. Read more
sourcefn ne(&self, other: &SpecialName) -> bool
fn ne(&self, other: &SpecialName) -> bool
This method tests for !=
.
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more