annotate ir/irtype.cpp @ 783:d268bf419a09

hgignore updates for CMake.
author Christian Kamm <kamm incasoftware de>
date Sat, 22 Nov 2008 21:11:26 +0100
parents aca17e55b7a5
children 340acf1535d0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
173
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
1 #include "gen/llvm.h"
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
2 #include "ir/ir.h"
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
3 #include "ir/irtype.h"
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
4
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
5 std::set<IrType*> IrType::list;
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
6
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
7 void IrType::resetAll()
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
8 {
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
9 std::set<IrType*>::iterator it;
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
10 for(it = list.begin(); it != list.end(); ++it)
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
11 (*it)->reset();
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
12 }
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
13
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
14 IrType::IrType()
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
15 {
174
16e676ae5ab4 [svn r190] Fixed array concatenation for some broken cases.
lindquist
parents: 173
diff changeset
16 assert(list.insert(this).second);
173
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
17 reset();
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
18 }
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
19
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
20 IrType::IrType(const IrType& s)
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
21 {
174
16e676ae5ab4 [svn r190] Fixed array concatenation for some broken cases.
lindquist
parents: 173
diff changeset
22 assert(list.insert(this).second);
173
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
23 type = s.type;
193
aca17e55b7a5 [svn r209] Fixed: exotic array to pointer casts were broken.
lindquist
parents: 174
diff changeset
24 #if OPAQUE_VTBLS
173
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
25 vtblType = s.type;
193
aca17e55b7a5 [svn r209] Fixed: exotic array to pointer casts were broken.
lindquist
parents: 174
diff changeset
26 #endif
173
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
27 }
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
28
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
29 IrType::~IrType()
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
30 {
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
31 list.erase(this);
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
32 }
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
33
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
34 void IrType::reset()
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
35 {
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
36 type = NULL;
193
aca17e55b7a5 [svn r209] Fixed: exotic array to pointer casts were broken.
lindquist
parents: 174
diff changeset
37 #if OPAQUE_VTBLS
173
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
38 vtblType = NULL;
193
aca17e55b7a5 [svn r209] Fixed: exotic array to pointer casts were broken.
lindquist
parents: 174
diff changeset
39 #endif
173
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents:
diff changeset
40 }