Mercurial > projects > ldc
diff dmd/declaration.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 | 70d6113eeb8c |
children | 5b5194b25f33 |
line wrap: on
line diff
--- a/dmd/declaration.h Thu Nov 15 00:24:44 2007 +0100 +++ b/dmd/declaration.h Fri Nov 16 08:21:47 2007 +0100 @@ -24,6 +24,8 @@ namespace llvm { class Value; } +struct IRFunction; +struct IRGlobal; struct Expression; struct Statement; @@ -128,8 +130,6 @@ Declaration *isDeclaration() { return this; } virtual void toObjFile(); // compile to .obj file - - bool llvmTouched; }; /**************************************************************/ @@ -263,6 +263,8 @@ int llvmFieldIndex; size_t llvmFieldIndexOffset; bool llvmNeedsStorage; + llvm::Constant* llvmConstInit; + IRGlobal* llvmIRGlobal; }; /**************************************************************/ @@ -293,6 +295,8 @@ void emitComment(Scope *sc); Symbol *toSymbol(); + + ClassInfoDeclaration* isClassInfoDeclaration() { return this; } }; struct ModuleInfoDeclaration : VarDeclaration @@ -558,6 +562,7 @@ llvm::Value* llvmArgPtr; llvm::Constant* llvmDwarfSubProgram; bool llvmRunTimeHack; + IRFunction* llvmIRFunc; }; struct FuncAliasDeclaration : FuncDeclaration