kamm@664: #ifndef LDC_GEN_CLASSES_H kamm@664: #define LDC_GEN_CLASSES_H lindquist@100: lindquist@217: #include "gen/structs.h" lindquist@217: lindquist@100: /** lindquist@102: * Resolves the llvm type for a class declaration lindquist@102: */ lindquist@102: void DtoResolveClass(ClassDeclaration* cd); lindquist@102: lindquist@102: /** lindquist@100: * Provides the llvm declaration for a class declaration lindquist@100: */ lindquist@100: void DtoDeclareClass(ClassDeclaration* cd); lindquist@100: lindquist@100: /** lindquist@100: * Constructs the constant initializer for a class declaration lindquist@100: */ lindquist@100: void DtoConstInitClass(ClassDeclaration* cd); lindquist@100: lindquist@100: /** lindquist@100: * Provides the llvm definition for a class declaration lindquist@100: */ lindquist@100: void DtoDefineClass(ClassDeclaration* cd); lindquist@100: lindquist@100: void DtoDeclareClassInfo(ClassDeclaration* cd); lindquist@100: void DtoDefineClassInfo(ClassDeclaration* cd); lindquist@100: tomas@486: DValue* DtoNewClass(Loc loc, TypeClass* type, NewExp* newexp); lindquist@213: void DtoInitClass(TypeClass* tc, LLValue* dst); lindquist@213: DValue* DtoCallClassCtor(TypeClass* type, CtorDeclaration* ctor, Array* arguments, LLValue* mem); lindquist@213: void DtoFinalizeClass(LLValue* inst); lindquist@100: lindquist@114: DValue* DtoCastClass(DValue* val, Type* to); lindquist@114: DValue* DtoDynamicCastObject(DValue* val, Type* to); lindquist@133: lindquist@114: DValue* DtoCastInterfaceToObject(DValue* val, Type* to); lindquist@133: DValue* DtoDynamicCastInterface(DValue* val, Type* to); lindquist@113: tomas@705: LLValue* DtoIndexClass(LLValue* src, ClassDeclaration* sd, VarDeclaration* vd); lindquist@132: lindquist@213: LLValue* DtoVirtualFunctionPointer(DValue* inst, FuncDeclaration* fdecl); lindquist@133: lindquist@100: #endif