annotate ir/irsymbol.h @ 812:6c2ff06c4201

Fixed a nasty bug with how interface vtables for class initializers were output, causing some class fields to be skipped. Fixed a problem in definition of ClassInfos where an invalid constant was potentially used. This needs to be looked into proper as it might happen again in the future.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Mon, 01 Dec 2008 04:37:54 +0100
parents eef8ac26c66c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
664
eef8ac26c66c Some missed LLVMDC -> LDC.
Christian Kamm <kamm incasoftware de>
parents: 175
diff changeset
1 #ifndef LDC_IR_IRSYMBOL_H
eef8ac26c66c Some missed LLVMDC -> LDC.
Christian Kamm <kamm incasoftware de>
parents: 175
diff changeset
2 #define LDC_IR_IRSYMBOL_H
156
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
3
173
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
4 #include <set>
156
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
5
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
6 struct IrModule;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
7 struct IrFunction;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
8 struct IrStruct;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
9 struct IrGlobal;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
10 struct IrLocal;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
11 struct IrField;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
12 struct IrVar;
173
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
13 struct Dsymbol;
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
14
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
15 namespace llvm {
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
16 struct Value;
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
17 }
156
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
18
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
19 struct IrDsymbol
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
20 {
173
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
21 static std::set<IrDsymbol*> list;
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
22 static void resetAll();
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
23
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
24 // overload all of these to make sure
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
25 // the static list is up to date
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
26 IrDsymbol();
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
27 IrDsymbol(const IrDsymbol& s);
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
28 ~IrDsymbol();
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
29
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
30 void reset();
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
31
156
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
32 Module* DModule;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
33
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
34 bool resolved;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
35 bool declared;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
36 bool initialized;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
37 bool defined;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
38
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
39 IrModule* irModule;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
40
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
41 IrStruct* irStruct;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
42
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
43 IrFunction* irFunc;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
44
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
45 IrGlobal* irGlobal;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
46 IrLocal* irLocal;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
47 IrField* irField;
173
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
48 IrVar* getIrVar();
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
49 llvm::Value*& getIrValue();
175
c44e6a711885 [svn r191] Fixed: array literals did not support all type/storage combinations.
lindquist
parents: 173
diff changeset
50
c44e6a711885 [svn r191] Fixed: array literals did not support all type/storage combinations.
lindquist
parents: 173
diff changeset
51 bool isSet();
156
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
52 };
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
53
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
54 #endif