dmd.tocsym

Convert a D symbol to a symbol the linker understands (with mangled name).

Members

Functions

aaGetSymbol
Symbol* aaGetSymbol(TypeAArray taa, const(char)* func, int flags)

Determine the right symbol to look up an associative array element. Input: flags 0 don't add value signature 1 add value signature

fake_classsym
Classsym* fake_classsym(Identifier id)

Fake a struct symbol.

toImport
Symbol* toImport(Symbol* sym)
toImport
Symbol* toImport(Dsymbol ds)

Generate import symbol from symbol.

toInitializer
Symbol* toInitializer(AggregateDeclaration ad)

Create the static initializer for the struct/class.

toSymbol
Symbol* toSymbol(Dsymbol s)
toSymbol
Symbol* toSymbol(StructLiteralExp sle)
toSymbolCpp
Symbol* toSymbolCpp(ClassDeclaration cd)

For C++ class cd, generate an instance of __cpp_type_info_ptr and populate it with a pointer to the C++ type info.

toSymbolCppTypeInfo
Symbol* toSymbolCppTypeInfo(ClassDeclaration cd)

Generate Symbol of C++ type info for C++ class cd.

toSymbolX
Symbol* toSymbolX(Dsymbol ds, const(char)* prefix, int sclass, type* t, const(char)* suffix)

Helper

toThunkSymbol
Symbol* toThunkSymbol(FuncDeclaration fd, int offset)

Thunks adjust the incoming 'this' pointer by 'offset'.

toVtblSymbol
Symbol* toVtblSymbol(ClassDeclaration cd)

This is accessible via the ClassData, but since it is frequently needed directly (like for rtti comparisons), make it directly accessible.

Meta

Suggestion Box / Bug Report