comparison ir/irdsymbol.h @ 1146:1860414bf3b7

* Moved ir/irsymbol.cpp/h into ir/irdsymbol.cpp/h. * Added #if IN_DMD versioning around DMD backend specific code in the D1 frontend, D2 is currently broken. * All part of a greater cleanup scheme.
author Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
date Thu, 26 Mar 2009 20:45:53 +0100
parents ir/irsymbol.h@eef8ac26c66c
children
comparison
equal deleted inserted replaced
1145:40caa8207b3e 1146:1860414bf3b7
1 #ifndef LDC_IR_IRDSYMBOL_H
2 #define LDC_IR_IRDSYMBOL_H
3
4 #include <set>
5
6 struct IrModule;
7 struct IrFunction;
8 struct IrStruct;
9 struct IrGlobal;
10 struct IrLocal;
11 struct IrField;
12 struct IrVar;
13 struct Dsymbol;
14
15 namespace llvm {
16 struct Value;
17 }
18
19 struct IrDsymbol
20 {
21 static std::set<IrDsymbol*> list;
22 static void resetAll();
23
24 // overload all of these to make sure
25 // the static list is up to date
26 IrDsymbol();
27 IrDsymbol(const IrDsymbol& s);
28 ~IrDsymbol();
29
30 void reset();
31
32 Module* DModule;
33
34 bool resolved;
35 bool declared;
36 bool initialized;
37 bool defined;
38
39 IrModule* irModule;
40
41 IrStruct* irStruct;
42
43 IrFunction* irFunc;
44
45 IrGlobal* irGlobal;
46 IrLocal* irLocal;
47 IrField* irField;
48 IrVar* getIrVar();
49 llvm::Value*& getIrValue();
50
51 bool isSet();
52 };
53
54 #endif