Fix D1 build.

This commit is contained in:
David Nadlinger 2013-02-07 00:49:52 +01:00
parent 060ba45c8e
commit 28a65ff689
2 changed files with 14 additions and 0 deletions

View file

@ -34,6 +34,12 @@ cl::list<std::string> runargs("run",
cl::Positional,
cl::PositionalEatsArgs);
#if DMDV1
static cl::opt<bool, true> useDeprecated("d",
cl::desc("Allow deprecated language features"),
cl::ZeroOrMore,
cl::location(global.params.useDeprecated));
#else
static cl::opt<ubyte, true> useDeprecated(
cl::desc("Allow deprecated code/language features:"),
cl::ZeroOrMore,
@ -44,6 +50,7 @@ static cl::opt<ubyte, true> useDeprecated(
clEnumValEnd),
cl::location(global.params.useDeprecated),
cl::init(2));
#endif
#if DMDV2
cl::opt<bool, true> enforcePropertySyntax("property",

View file

@ -2923,6 +2923,8 @@ DValue* StructLiteralExp::toElem(IRState* p)
Logger::print("StructLiteralExp::toElem: %s @ %s\n", toChars(), type->toChars());
LOG_SCOPE;
#if DMDV2
if (sinit)
{
// Copied from VarExp::toElem, need to clean this mess up.
@ -2937,6 +2939,7 @@ DValue* StructLiteralExp::toElem(IRState* p)
initsym = DtoBitCast(initsym, DtoType(ts->pointerTo()));
return new DVarValue(type, initsym);
}
#endif
// make sure the struct is fully resolved
sd->codegen(Type::sir);
@ -3006,8 +3009,10 @@ DValue* StructLiteralExp::toElem(IRState* p)
// store the initializer there
DtoAssign(loc, &field, val, TOKconstruct);
#if DMDV2
if (expr)
callPostblit(loc, expr, field.getLVal());
#endif
// Also zero out padding bytes counted as being part of the type in DMD
// but not in LLVM; e.g. real/x86_fp80.
@ -3035,6 +3040,7 @@ LLConstant* StructLiteralExp::toConstElem(IRState* p)
Logger::print("StructLiteralExp::toConstElem: %s @ %s\n", toChars(), type->toChars());
LOG_SCOPE;
#if DMDV2
if (sinit)
{
// Copied from VarExp::toConstElem, need to clean this mess up.
@ -3046,6 +3052,7 @@ LLConstant* StructLiteralExp::toConstElem(IRState* p)
return ts->sym->ir.irStruct->getDefaultInit();
}
#endif
// make sure the struct is resolved
sd->codegen(Type::sir);