Mercurial > projects > ldc
annotate ir/irtype.h @ 313:a498b736a0bd trunk
[svn r334] Produce an error for zero-size types instead of segfaulting.
author | ChristianK |
---|---|
date | Sun, 29 Jun 2008 22:22:37 +0200 |
parents | 8ee2c46ff938 |
children | eef8ac26c66c |
rev | line source |
---|---|
158
287540c5f05e
[svn r174] added file missing from previous commit [173]
ChristianK
parents:
diff
changeset
|
1 #ifndef LLVMDC_IR_IRTYPE_H |
287540c5f05e
[svn r174] added file missing from previous commit [173]
ChristianK
parents:
diff
changeset
|
2 #define LLVMDC_IR_IRTYPE_H |
287540c5f05e
[svn r174] added file missing from previous commit [173]
ChristianK
parents:
diff
changeset
|
3 |
173
db9890b3fb64
[svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
158
diff
changeset
|
4 #include <set> |
158
287540c5f05e
[svn r174] added file missing from previous commit [173]
ChristianK
parents:
diff
changeset
|
5 |
287540c5f05e
[svn r174] added file missing from previous commit [173]
ChristianK
parents:
diff
changeset
|
6 namespace llvm { |
287540c5f05e
[svn r174] added file missing from previous commit [173]
ChristianK
parents:
diff
changeset
|
7 class PATypeHolder; |
287540c5f05e
[svn r174] added file missing from previous commit [173]
ChristianK
parents:
diff
changeset
|
8 } |
287540c5f05e
[svn r174] added file missing from previous commit [173]
ChristianK
parents:
diff
changeset
|
9 |
287540c5f05e
[svn r174] added file missing from previous commit [173]
ChristianK
parents:
diff
changeset
|
10 struct IrType |
287540c5f05e
[svn r174] added file missing from previous commit [173]
ChristianK
parents:
diff
changeset
|
11 { |
173
db9890b3fb64
[svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
158
diff
changeset
|
12 static std::set<IrType*> list; |
db9890b3fb64
[svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
158
diff
changeset
|
13 static void resetAll(); |
db9890b3fb64
[svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
158
diff
changeset
|
14 |
db9890b3fb64
[svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
158
diff
changeset
|
15 // overload all of these to make sure |
db9890b3fb64
[svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
158
diff
changeset
|
16 // the static list is up to date |
db9890b3fb64
[svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
158
diff
changeset
|
17 IrType(); |
db9890b3fb64
[svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
158
diff
changeset
|
18 IrType(const IrType& s); |
db9890b3fb64
[svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
158
diff
changeset
|
19 ~IrType(); |
db9890b3fb64
[svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
158
diff
changeset
|
20 |
db9890b3fb64
[svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
158
diff
changeset
|
21 void reset(); |
db9890b3fb64
[svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
158
diff
changeset
|
22 |
158
287540c5f05e
[svn r174] added file missing from previous commit [173]
ChristianK
parents:
diff
changeset
|
23 llvm::PATypeHolder* type; |
287540c5f05e
[svn r174] added file missing from previous commit [173]
ChristianK
parents:
diff
changeset
|
24 llvm::PATypeHolder* vtblType; |
287540c5f05e
[svn r174] added file missing from previous commit [173]
ChristianK
parents:
diff
changeset
|
25 }; |
287540c5f05e
[svn r174] added file missing from previous commit [173]
ChristianK
parents:
diff
changeset
|
26 |
287540c5f05e
[svn r174] added file missing from previous commit [173]
ChristianK
parents:
diff
changeset
|
27 #endif |