Mercurial > projects > ldc
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