comparison 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
comparison
equal deleted inserted replaced
27:92408a3a2bac 28:1c80c18f3c82
226 { 226 {
227 Logger::print("NullExp::toElem(type=%s): %s\n", type->toChars(),toChars()); 227 Logger::print("NullExp::toElem(type=%s): %s\n", type->toChars(),toChars());
228 LOG_SCOPE; 228 LOG_SCOPE;
229 elem* e = new elem; 229 elem* e = new elem;
230 const llvm::Type* t = LLVM_DtoType(type); 230 const llvm::Type* t = LLVM_DtoType(type);
231 if (llvm::isa<llvm::StructType>(t)) 231
232 t = llvm::PointerType::get(t); 232 if (type->ty == Tarray) {
233 Logger::cout() << *t << '\n'; 233 assert(llvm::isa<llvm::StructType>(t));
234 e->val = llvm::Constant::getNullValue(t); 234 e->val = llvm::ConstantAggregateZero::get(t);
235 }
236 else
237 e->val = llvm::Constant::getNullValue(t);
235 assert(e->val); 238 assert(e->val);
236 Logger::cout() << *e->val << '\n'; 239
240 Logger::cout() << "null value is now " << *e->val << '\n';
237 e->type = elem::NUL; 241 e->type = elem::NUL;
238 return e; 242 return e;
239 } 243 }
240 244
241 ////////////////////////////////////////////////////////////////////////////////////////// 245 //////////////////////////////////////////////////////////////////////////////////////////