root/trunk/src/irstate.h

Revision 428, 1.4 kB (checked in by walter, 2 years ago)

remove tabs, any trailing spaces

  • Property svn:eol-style set to native
Line 
1 // Compiler implementation of the D programming language
2 // Copyright (c) 1999-2008 by Digital Mars
3 // All Rights Reserved
4 // written by Walter Bright
5 // http://www.digitalmars.com
6
7 #ifndef DMD_CONTEXT_H
8 #define DMD_CONTEXT_H
9
10 #ifdef __DMC__
11 #pragma once
12 #endif /* __DMC__ */
13
14 struct Module;
15 struct Statement;
16 struct block;
17 struct Dsymbol;
18 struct Identifier;
19 struct Symbol;
20 struct FuncDeclaration;
21 struct Blockx;
22 struct Array;
23 struct elem;
24
25 struct IRState
26 {
27     IRState *prev;
28     Statement *statement;
29     Module *m;                  // module
30     Dsymbol *symbol;
31     Identifier *ident;
32     Symbol *shidden;            // hidden parameter to function
33     Symbol *sthis;              // 'this' parameter to function (member and nested)
34     Symbol *sclosure;           // pointer to closure instance
35     Blockx *blx;
36     Array *deferToObj;          // array of Dsymbol's to run toObjFile(int multiobj) on later
37     elem *ehidden;              // transmit hidden pointer to CallExp::toElem()
38     Symbol *startaddress;
39
40     block *breakBlock;
41     block *contBlock;
42     block *switchBlock;
43     block *defaultBlock;
44
45     IRState(IRState *irs, Statement *s);
46     IRState(IRState *irs, Dsymbol *s);
47     IRState(Module *m, Dsymbol *s);
48
49     block *getBreakBlock(Identifier *ident);
50     block *getContBlock(Identifier *ident);
51     block *getSwitchBlock();
52     block *getDefaultBlock();
53     FuncDeclaration *getFunc();
54     int arrayBoundsCheck();
55 };
56
57 #endif /* DMD_CONTEXT_H */
Note: See TracBrowser for help on using the browser.