diff ir/irtypestruct.h @ 1228:79758fd2f48a

Added Doxygen file. Completely seperated type and symbol generation. Should fix a lot of bugs, but is not yet 100% complete.
author Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
date Wed, 15 Apr 2009 20:06:25 +0200
parents
children ec1d9dc1d32a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ir/irtypestruct.h	Wed Apr 15 20:06:25 2009 +0200
@@ -0,0 +1,52 @@
+#ifndef __LDC_IR_IRTYPESTRUCT_H__
+#define __LDC_IR_IRTYPESTRUCT_H__
+
+#include "ir/irtype.h"
+
+//////////////////////////////////////////////////////////////////////////////
+
+struct AggregateDeclaration;
+struct StructDeclaration;
+struct TypeStruct;
+
+//////////////////////////////////////////////////////////////////////////////
+
+class IrTypeAggr : public IrType
+{
+public:
+    ///
+    IrTypeAggr(AggregateDeclaration* ad);
+
+    ///
+    IrTypeAggr* isAggr()            { return this; }
+
+protected:
+    /// AggregateDeclaration this type represents.
+    AggregateDeclaration* aggr;
+};
+
+//////////////////////////////////////////////////////////////////////////////
+
+class IrTypeStruct : public IrTypeAggr
+{
+public:
+    ///
+    IrTypeStruct(StructDeclaration* sd);
+
+    ///
+    IrTypeStruct* isStruct()    { return this; }
+
+    ///
+    const llvm::Type* buildType();
+
+protected:
+    /// StructDeclaration this type represents.
+    StructDeclaration* sd;
+
+    /// DMD TypeStruct of this type.
+    TypeStruct* ts;
+};
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif