Compile LDC2 with VS2010 64bit (LDC changes only).

Contains all changes necessary to LDC specific source to compile LDC2 with VS2010. See https://github.com/D-Programming-Language/dmd/pull/516 for necessary changes to DMDFE.
This commit is contained in:
kai
2012-01-11 07:49:21 +01:00
parent 43057c64ec
commit 6726b5da13
9 changed files with 93 additions and 15 deletions

View File

@@ -14,7 +14,7 @@ struct IrVar;
struct Dsymbol;
namespace llvm {
struct Value;
class Value;
}
struct IrDsymbol

View File

@@ -84,6 +84,7 @@ struct IrFuncTy : IrBase
IrFuncTy()
: ret(NULL),
args(),
arg_sret(NULL),
arg_this(NULL),
arg_nest(NULL),
@@ -93,11 +94,47 @@ struct IrFuncTy : IrBase
reverseParams(false),
is_arg_this_ref(false)
{}
#if defined(_MSC_VER)
// Copy constructor and operator= seems to be requreid for MSC
IrFuncTy(const IrFuncTy& rhs)
: ret(rhs.ret),
args(IrFuncTy::ArgList(rhs.args)),
arg_sret(rhs.arg_sret),
arg_this(rhs.arg_this),
arg_nest(rhs.arg_nest),
arg_arguments(rhs.arg_arguments),
arg_argptr(rhs.arg_argptr),
c_vararg(rhs.c_vararg),
reverseParams(rhs.reverseParams),
is_arg_this_ref(rhs.is_arg_this_ref)
{}
IrFuncTy& operator=(const IrFuncTy& rhs)
{
ret = rhs.ret;
args = IrFuncTy::ArgList(rhs.args);
arg_sret = rhs.arg_sret;
arg_this = rhs.arg_this;
arg_nest = rhs.arg_nest;
arg_arguments = rhs.arg_arguments;
arg_argptr = rhs.arg_argptr;
c_vararg = rhs.c_vararg;
reverseParams = rhs.reverseParams;
is_arg_this_ref = rhs.is_arg_this_ref;
return *this;
}
#endif
void reset() {
ret = NULL;
arg_sret = arg_this = arg_nest = arg_arguments = arg_argptr = NULL;
#if defined(_MSC_VER)
args = IrFuncTy::ArgList();
#else
args.clear();
#endif
c_vararg = false;
reverseParams = false;
}

View File

@@ -12,7 +12,7 @@
//////////////////////////////////////////////////////////////////////////////
extern LLType* DtoType(Type* dt);
extern LLType* DtoSize_t();
extern LLIntegerType* DtoSize_t();
//////////////////////////////////////////////////////////////////////////////