diff ir/irdtype.cpp @ 1184:a6dbd571d417

Moved ir/irtype.* into ir/irdtype.*. Renamed IrType to IrDType, analogous to IrDSymbol.
author Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
date Tue, 31 Mar 2009 20:21:28 +0200
parents ir/irtype.cpp@340acf1535d0
children 2a92c115461d
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ir/irdtype.cpp	Tue Mar 31 20:21:28 2009 +0200
@@ -0,0 +1,34 @@
+#include "gen/llvm.h"
+#include "ir/ir.h"
+#include "ir/irdtype.h"
+
+std::set<IrDType*> IrDType::list;
+
+void IrDType::resetAll()
+{
+    std::set<IrDType*>::iterator it;
+    for(it = list.begin(); it != list.end(); ++it)
+        (*it)->reset();
+}
+
+IrDType::IrDType()
+{
+    assert(list.insert(this).second);
+    reset();
+}
+
+IrDType::IrDType(const IrDType& s)
+{
+    assert(list.insert(this).second);
+    type = s.type;
+}
+
+IrDType::~IrDType()
+{
+    list.erase(this);
+}
+
+void IrDType::reset()
+{
+    type = NULL;
+}