comparison 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
comparison
equal deleted inserted replaced
49:e5c4bece7fa1 50:6fcc08a4d406
12 #define DMD_DECLARATION_H 12 #define DMD_DECLARATION_H
13 13
14 #ifdef __DMC__ 14 #ifdef __DMC__
15 #pragma once 15 #pragma once
16 #endif /* __DMC__ */ 16 #endif /* __DMC__ */
17
18 #include <set>
17 19
18 #include "dsymbol.h" 20 #include "dsymbol.h"
19 #include "lexer.h" 21 #include "lexer.h"
20 #include "mtype.h" 22 #include "mtype.h"
21 23
253 void toObjFile(); // compile to .obj file 255 void toObjFile(); // compile to .obj file
254 int cvMember(unsigned char *p); 256 int cvMember(unsigned char *p);
255 257
256 // Eliminate need for dynamic_cast 258 // Eliminate need for dynamic_cast
257 VarDeclaration *isVarDeclaration() { return (VarDeclaration *)this; } 259 VarDeclaration *isVarDeclaration() { return (VarDeclaration *)this; }
260
261 // LLVMDC
262 int llvmNestedIndex;
258 }; 263 };
259 264
260 /**************************************************************/ 265 /**************************************************************/
261 266
262 // This is a shell around a back end symbol 267 // This is a shell around a back end symbol
512 517
513 FuncDeclaration *isFuncDeclaration() { return this; } 518 FuncDeclaration *isFuncDeclaration() { return this; }
514 519
515 bool llvmQueued; 520 bool llvmQueued;
516 llvm::Value* llvmThisVar; 521 llvm::Value* llvmThisVar;
522 std::set<VarDeclaration*> llvmNestedVars;
523 llvm::Value* llvmNested;
517 }; 524 };
518 525
519 struct FuncAliasDeclaration : FuncDeclaration 526 struct FuncAliasDeclaration : FuncDeclaration
520 { 527 {
521 FuncDeclaration *funcalias; 528 FuncDeclaration *funcalias;