英語版
このページの英語版を見る

dmd.tocsym

Dシンボルをリンカが理解できるシンボルに変換する。
Authors:

ソース tocsym.d

Symbol* toSymbolX(Dsymbol ds, const(char)* prefix, SC sclass, type* t, const(char)* suffix);
ヘルパー
Symbol* toSymbol(Dsymbol s);
Symbol* toImport(Dsymbol ds);
シンボルからインポートシンボルを生成する。
Symbol* toThunkSymbol(FuncDeclaration fd, int offset);
thunksは、入力される「this」ポインタを「offset」で調整する。
Classsym* fake_classsym(Identifier id);
構造体シンボルを偽造する。
Symbol* toVtblSymbol(ClassDeclaration cd, bool genCsymbol = true);
これはClassData経由でアクセスできるが、(rtti比較のように)直接必要となることが多いので、直接アクセスできるようにする。 これはClassData経由でアクセスできるが、(rtti比較のように)直接必要とされることが多いので、直接アクセスできるようにする。
Symbol* toInitializer(AggregateDeclaration ad);
構造体/クラスのスタティック・イニシャライザを作成する。
Symbol* toSymbol(StructLiteralExp sle);
Symbol* toSymbolCpp(ClassDeclaration cd);
C++クラスcdの場合は、_cpp_type_info_ptrのインスタンスを生成し、_cpp_type_info_ptrにポインタを代入する。 のインスタンスを生成し、C++型情報へのポインタを代入する。
Parameters:
ClassDeclaration cd C++ クラス
Returns:
cpp_type_info_ptrのインスタンスのシンボル
Symbol* toSymbolCppTypeInfo(ClassDeclaration cd);
C++クラスcdのC++型情報のシンボルを生成する。
Parameters:
ClassDeclaration cd C++クラス
Returns:
cdのrtti型情報のシンボル
Symbol* toSymbol(Type t);
クラス型をCシンボルに変換する。
Parameters:
Type t クラス型
Returns:
対応するシンボル
Srcpos toSrcpos(Loc loc);
Locをバックエンドに変換する Srcpos
Parameters:
Loc loc ソースコードの位置
Returns:
指定された場所に対応する Srcpos バックエンド構造体