Mercurial > projects > ldc
diff gen/structs.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 | 027b8d8b71ec |
children | 0806379a5eca |
line wrap: on
line diff
--- a/gen/structs.h Tue May 27 22:14:24 2008 +0200 +++ b/gen/structs.h Fri May 30 19:32:04 2008 +0200 @@ -3,12 +3,12 @@ struct StructInitializer; -const llvm::Type* DtoStructType(Type* t); +const LLType* DtoStructType(Type* t); -llvm::Value* DtoStructZeroInit(llvm::Value* v); -llvm::Value* DtoStructCopy(llvm::Value* dst, llvm::Value* src); +LLValue* DtoStructZeroInit(LLValue* v); +LLValue* DtoStructCopy(LLValue* dst, LLValue* src); -llvm::Constant* DtoConstStructInitializer(StructInitializer* si); +LLConstant* DtoConstStructInitializer(StructInitializer* si); /** * Resolves the llvm type for a struct @@ -30,14 +30,14 @@ */ void DtoDefineStruct(StructDeclaration* sd); -llvm::Value* DtoIndexStruct(llvm::Value* ptr, StructDeclaration* sd, Type* t, unsigned os, std::vector<unsigned>& idxs); +LLValue* DtoIndexStruct(LLValue* ptr, StructDeclaration* sd, Type* t, unsigned os, std::vector<unsigned>& idxs); struct DUnionField { unsigned offset; size_t size; - std::vector<const llvm::Type*> types; - llvm::Constant* init; + std::vector<const LLType*> types; + LLConstant* init; size_t initsize; DUnionField() { @@ -51,11 +51,11 @@ struct DUnionIdx { unsigned idx,idxos; - llvm::Constant* c; + LLConstant* c; DUnionIdx() : idx(0), c(0) {} - DUnionIdx(unsigned _idx, unsigned _idxos, llvm::Constant* _c) + DUnionIdx(unsigned _idx, unsigned _idxos, LLConstant* _c) : idx(_idx), idxos(_idxos), c(_c) {} bool operator<(const DUnionIdx& i) const { return (idx < i.idx) || (idx == i.idx && idxos < i.idxos); @@ -67,7 +67,7 @@ std::vector<DUnionField> fields; public: DUnion(); - llvm::Constant* getConst(std::vector<DUnionIdx>& in); + LLConstant* getConst(std::vector<DUnionIdx>& in); }; #endif