Mercurial > projects > ldc
diff gen/toir.c @ 28:1c80c18f3c82 trunk
[svn r32] * Fixed problems with arrays members of aggregates
author | lindquist |
---|---|
date | Thu, 04 Oct 2007 12:49:37 +0200 |
parents | 92408a3a2bac |
children | 253a5fc4033a |
line wrap: on
line diff
--- a/gen/toir.c Thu Oct 04 11:39:53 2007 +0200 +++ b/gen/toir.c Thu Oct 04 12:49:37 2007 +0200 @@ -228,12 +228,16 @@ LOG_SCOPE; elem* e = new elem; const llvm::Type* t = LLVM_DtoType(type); - if (llvm::isa<llvm::StructType>(t)) - t = llvm::PointerType::get(t); - Logger::cout() << *t << '\n'; - e->val = llvm::Constant::getNullValue(t); + + if (type->ty == Tarray) { + assert(llvm::isa<llvm::StructType>(t)); + e->val = llvm::ConstantAggregateZero::get(t); + } + else + e->val = llvm::Constant::getNullValue(t); assert(e->val); - Logger::cout() << *e->val << '\n'; + + Logger::cout() << "null value is now " << *e->val << '\n'; e->type = elem::NUL; return e; }