Mercurial > projects > ldc
diff gen/structs.h @ 100:5071469303d4 trunk
[svn r104] TONS OF FIXES.
Split up declaration, constant initializer gen and definition for globals, structs, classes and functions.
Improved ClassInfo support (not complete), not in vtable yet.
Fixed a bunch of forward reference problems.
Much more. Major commit! :)
author | lindquist |
---|---|
date | Fri, 16 Nov 2007 08:21:47 +0100 |
parents | 058d3925950e |
children | 027b8d8b71ec |
line wrap: on
line diff
--- a/gen/structs.h Thu Nov 15 00:24:44 2007 +0100 +++ b/gen/structs.h Fri Nov 16 08:21:47 2007 +0100 @@ -2,10 +2,29 @@ #define LLVMD_GEN_STRUCTS_H struct StructInitializer; + const llvm::Type* DtoStructType(Type* t); + llvm::Value* DtoStructZeroInit(llvm::Value* v); llvm::Value* DtoStructCopy(llvm::Value* dst, llvm::Value* src); + llvm::Constant* DtoConstStructInitializer(StructInitializer* si); + +/** + * Provides the llvm declaration for a struct + */ +void DtoDeclareStruct(StructDeclaration* sd); + +/** + * Constructs the constant default initializer a struct + */ +void DtoConstInitStruct(StructDeclaration* sd); + +/** + * Provides the llvm definition for a struct + */ +void DtoDefineStruct(StructDeclaration* sd); + llvm::Value* DtoIndexStruct(llvm::Value* ptr, StructDeclaration* sd, Type* t, unsigned os, std::vector<unsigned>& idxs); struct DUnionField