# HG changeset patch # User Christian Kamm # Date 1218265432 -7200 # Node ID 50f6e2337a6b0e5e5f4b6f15d7f01aeadbe12c76 # Parent 1e96c742be5aedcbe333e75dac13503f31a9de11 Default initialize temporary struct generated from struct literal. This makes sure padding is zeroed out. diff -r 1e96c742be5a -r 50f6e2337a6b gen/toir.cpp --- a/gen/toir.cpp Thu Aug 07 18:59:23 2008 +0200 +++ b/gen/toir.cpp Sat Aug 09 09:03:52 2008 +0200 @@ -2145,6 +2145,13 @@ LLValue* sptr = DtoAlloca(llt,"tmpstructliteral"); + // default init the struct to take care of padding + // and unspecified members + TypeStruct* ts = (TypeStruct*)type; + assert(ts->sym); + DtoForceConstInitDsymbol(ts->sym); + assert(ts->sym->ir.irStruct->init); + DtoAggrCopy(sptr, ts->sym->ir.irStruct->init); // num elements in literal unsigned n = elements->dim;