diff dmd/declaration.h @ 50:6fcc08a4d406 trunk

[svn r54] Added support for nested delegates referencing parent's stack variables. Replaced tester.sh with a version written in D. A few bugfixes.
author lindquist
date Mon, 22 Oct 2007 15:40:56 +0200
parents 8b0e809563df
children a9d29e9f1fed
line wrap: on
line diff
--- a/dmd/declaration.h	Fri Oct 19 17:43:46 2007 +0200
+++ b/dmd/declaration.h	Mon Oct 22 15:40:56 2007 +0200
@@ -15,6 +15,8 @@
 #pragma once
 #endif /* __DMC__ */
 
+#include <set>
+
 #include "dsymbol.h"
 #include "lexer.h"
 #include "mtype.h"
@@ -125,8 +127,8 @@
 
     Declaration *isDeclaration() { return this; }
 
-    virtual void toObjFile();           // compile to .obj file
-    
+    virtual void toObjFile();           // compile to .obj file
+    
     bool llvmTouched;
 };
 
@@ -255,6 +257,9 @@
 
     // Eliminate need for dynamic_cast
     VarDeclaration *isVarDeclaration() { return (VarDeclaration *)this; }
+
+    // LLVMDC
+    int llvmNestedIndex;
 };
 
 /**************************************************************/
@@ -514,6 +519,8 @@
 
     bool llvmQueued;
     llvm::Value* llvmThisVar;
+    std::set<VarDeclaration*> llvmNestedVars;
+    llvm::Value* llvmNested;
 };
 
 struct FuncAliasDeclaration : FuncDeclaration