Mercurial > projects > ldc
comparison dmd2/irstate.h @ 1452:638d16625da2
LDC 2 compiles again.
author | Robert Clipsham <robert@octarineparrot.com> |
---|---|
date | Sat, 30 May 2009 17:23:32 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1423:42bd767ec5a4 | 1452:638d16625da2 |
---|---|
1 | |
2 // Compiler implementation of the D programming language | |
3 // Copyright (c) 1999-2008 by Digital Mars | |
4 // All Rights Reserved | |
5 // written by Walter Bright | |
6 // http://www.digitalmars.com | |
7 | |
8 #ifndef DMD_CONTEXT_H | |
9 #define DMD_CONTEXT_H | |
10 | |
11 #ifdef __DMC__ | |
12 #pragma once | |
13 #endif /* __DMC__ */ | |
14 | |
15 struct Module; | |
16 struct Statement; | |
17 struct block; | |
18 struct Dsymbol; | |
19 struct Identifier; | |
20 struct Symbol; | |
21 struct FuncDeclaration; | |
22 struct Blockx; | |
23 struct Array; | |
24 struct elem; | |
25 | |
26 struct IRState | |
27 { | |
28 IRState *prev; | |
29 Statement *statement; | |
30 Module *m; // module | |
31 Dsymbol *symbol; | |
32 Identifier *ident; | |
33 Symbol *shidden; // hidden parameter to function | |
34 Symbol *sthis; // 'this' parameter to function (member and nested) | |
35 Symbol *sclosure; // pointer to closure instance | |
36 Blockx *blx; | |
37 Array *deferToObj; // array of Dsymbol's to run toObjFile(int multiobj) on later | |
38 elem *ehidden; // transmit hidden pointer to CallExp::toElem() | |
39 Symbol *startaddress; | |
40 | |
41 block *breakBlock; | |
42 block *contBlock; | |
43 block *switchBlock; | |
44 block *defaultBlock; | |
45 | |
46 IRState(IRState *irs, Statement *s); | |
47 IRState(IRState *irs, Dsymbol *s); | |
48 IRState(Module *m, Dsymbol *s); | |
49 | |
50 block *getBreakBlock(Identifier *ident); | |
51 block *getContBlock(Identifier *ident); | |
52 block *getSwitchBlock(); | |
53 block *getDefaultBlock(); | |
54 FuncDeclaration *getFunc(); | |
55 }; | |
56 | |
57 #endif /* DMD_CONTEXT_H */ |