Mercurial > projects > ldc
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; |