Mercurial > projects > ldc
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); |