diff gen/toir.c @ 25:12fd8ce55d9c trunk

[svn r29] * Fixed structs inside struct literals
author lindquist
date Thu, 04 Oct 2007 10:22:56 +0200
parents 25bb577878e8
children 99737f94abfb
line wrap: on
line diff
--- a/gen/toir.c	Thu Oct 04 10:13:21 2007 +0200
+++ b/gen/toir.c	Thu Oct 04 10:22:56 2007 +0200
@@ -1378,7 +1378,12 @@
                 elem* ve = vx->toElem(p);
                 llvm::Value* val = ve->getValue();
                 Logger::cout() << *val << " | " << *arrptr << '\n';
-                new llvm::StoreInst(val, arrptr, p->scopebb());
+                if (vx->type->ty == Tstruct) {
+                    TypeStruct* ts = (TypeStruct*)vx->type;
+                    LLVM_DtoStructCopy(ts,arrptr,val);
+                }
+                else
+                    new llvm::StoreInst(val, arrptr, p->scopebb());
                 delete ve;
             }
             else {