Fix &default fields in records not being initialized in coerced assignments.

Addresses #722
This commit is contained in:
Jon Siwek 2011-12-15 12:16:42 -06:00
parent f1e132cd1a
commit f302f2f3f2
15 changed files with 52 additions and 23 deletions

View file

@ -4053,7 +4053,14 @@ Val* RecordCoerceExpr::Fold(Val* v) const
val->Assign(i, rhs);
}
else
val->Assign(i, 0);
{
const Attr* def =
Type()->AsRecordType()->FieldDecl(i)->FindAttr(ATTR_DEFAULT);
if ( def )
val->Assign(i, def->AttrExpr()->Eval(0));
else
val->Assign(i, 0);
}
}
return val;