comparison gen/toir.cpp @ 915:a69941a2c470

Fix bug #199
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Mon, 02 Feb 2009 00:26:32 +0100
parents 29c0d1194033
children a4fcc13da3cd
comparison
equal deleted inserted replaced
914:a65a6996922f 915:a69941a2c470
2401 { 2401 {
2402 if (exprs[i]) 2402 if (exprs[i])
2403 { 2403 {
2404 DValue* v = exprs[i]->toElem(p); 2404 DValue* v = exprs[i]->toElem(p);
2405 inits[i] = v->getRVal(); 2405 inits[i] = v->getRVal();
2406
2407 // make sure we get inner structs/staticarrays right
2408 if (DtoIsPassedByRef(v->getType()))
2409 inits[i] = DtoLoad(inits[i]);
2406 } 2410 }
2407 } 2411 }
2408 2412
2409 // vector of values to build aggregate from 2413 // vector of values to build aggregate from
2410 std::vector<LLValue*> values = DtoStructLiteralValues(sd, inits); 2414 std::vector<LLValue*> values = DtoStructLiteralValues(sd, inits);