comparison gen/classes.h @ 213:7816aafeea3c trunk

[svn r229] Updated the object.d implementation to the latest Tango. Fixed a bunch of the built-in typeinfos for arrays, they did not inherit TypeInfo_Array. Applied patch to tango/text/convert/Layout.d by fvbommel, closes #47 . Cleaned up some type code. Replaced uses of llvm::Type with LLType (a typedef), same for Value and Constant. Fixed a few cases where typeinfo for user structs could be emitted multiple times, seems to still be some cases of this :/
author lindquist
date Fri, 30 May 2008 19:32:04 +0200
parents 1d6cfdbc97f0
children 0806379a5eca
comparison
equal deleted inserted replaced
212:4c2689d57ba4 213:7816aafeea3c
23 23
24 void DtoDeclareClassInfo(ClassDeclaration* cd); 24 void DtoDeclareClassInfo(ClassDeclaration* cd);
25 void DtoDefineClassInfo(ClassDeclaration* cd); 25 void DtoDefineClassInfo(ClassDeclaration* cd);
26 26
27 DValue* DtoNewClass(TypeClass* type, NewExp* newexp); 27 DValue* DtoNewClass(TypeClass* type, NewExp* newexp);
28 void DtoInitClass(TypeClass* tc, llvm::Value* dst); 28 void DtoInitClass(TypeClass* tc, LLValue* dst);
29 DValue* DtoCallClassCtor(TypeClass* type, CtorDeclaration* ctor, Array* arguments, llvm::Value* mem); 29 DValue* DtoCallClassCtor(TypeClass* type, CtorDeclaration* ctor, Array* arguments, LLValue* mem);
30 void DtoFinalizeClass(llvm::Value* inst); 30 void DtoFinalizeClass(LLValue* inst);
31 31
32 DValue* DtoCastClass(DValue* val, Type* to); 32 DValue* DtoCastClass(DValue* val, Type* to);
33 DValue* DtoDynamicCastObject(DValue* val, Type* to); 33 DValue* DtoDynamicCastObject(DValue* val, Type* to);
34 34
35 DValue* DtoCastInterfaceToObject(DValue* val, Type* to); 35 DValue* DtoCastInterfaceToObject(DValue* val, Type* to);
36 DValue* DtoDynamicCastInterface(DValue* val, Type* to); 36 DValue* DtoDynamicCastInterface(DValue* val, Type* to);
37 37
38 llvm::Value* DtoIndexClass(llvm::Value* ptr, ClassDeclaration* cd, Type* t, unsigned os, std::vector<unsigned>& idxs); 38 LLValue* DtoIndexClass(LLValue* ptr, ClassDeclaration* cd, Type* t, unsigned os, std::vector<unsigned>& idxs);
39 39
40 llvm::Value* DtoVirtualFunctionPointer(DValue* inst, FuncDeclaration* fdecl); 40 LLValue* DtoVirtualFunctionPointer(DValue* inst, FuncDeclaration* fdecl);
41 41
42 #endif 42 #endif