mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-04-18 09:49:02 +02:00
Added IrTypeFunction and IrTypeDelegate and eliminated IrDType. This means the Type::ir field can be removed. It's the final part needed for the move to a slightly more sane type system. Now the whole thing just needs to be cleaned up :P
Added -v-cg switch, which right now just prints "codegen: module.name (module/name.d)" to stdout, this can really help figuring out where, in some complex build command, things go wrong.
This commit is contained in:
42
ir/irtypefunction.h
Normal file
42
ir/irtypefunction.h
Normal file
@@ -0,0 +1,42 @@
|
||||
#ifndef __LDC_IR_IRTYPEFUNCTION_H__
|
||||
#define __LDC_IR_IRTYPEFUNCTION_H__
|
||||
|
||||
#include "ir/irtype.h"
|
||||
|
||||
class IrFuncTy;
|
||||
|
||||
///
|
||||
class IrTypeFunction : public IrType
|
||||
{
|
||||
public:
|
||||
///
|
||||
IrTypeFunction(Type* dt);
|
||||
|
||||
///
|
||||
IrTypeFunction* isFunction() { return this; }
|
||||
|
||||
///
|
||||
const llvm::Type* buildType();
|
||||
|
||||
IrFuncTy* fty() { return irfty; }
|
||||
|
||||
protected:
|
||||
///
|
||||
IrFuncTy* irfty;
|
||||
};
|
||||
|
||||
///
|
||||
class IrTypeDelegate : public IrType
|
||||
{
|
||||
public:
|
||||
///
|
||||
IrTypeDelegate(Type* dt);
|
||||
|
||||
///
|
||||
IrTypeDelegate* isDelegate() { return this; }
|
||||
|
||||
///
|
||||
const llvm::Type* buildType();
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user