comparison gen/toir.c @ 32:a86fe7496b58 trunk

[svn r36] * Fixed a bug where passing a regular argument to a ref argument did not allocate storage
author lindquist
date Thu, 04 Oct 2007 18:24:05 +0200
parents 881158a93592
children 4648206ca213
comparison
equal deleted inserted replaced
31:2841234d2aea 32:a86fe7496b58
984 assert(llargs[j] != 0); 984 assert(llargs[j] != 0);
985 } 985 }
986 else { 986 else {
987 Logger::println("as ptr arg"); 987 Logger::println("as ptr arg");
988 llargs[j] = arg->mem ? arg->mem : arg->val; 988 llargs[j] = arg->mem ? arg->mem : arg->val;
989 if (llargs[j]->getType() != llfnty->getParamType(j))
990 {
991 assert(llargs[j]->getType() == llfnty->getParamType(j)->getContainedType(0));
992 LLVM_DtoGiveArgumentStorage(arg);
993 new llvm::StoreInst(llargs[j], arg->mem, p->scopebb());
994 llargs[j] = arg->mem;
995 }
989 assert(llargs[j] != 0); 996 assert(llargs[j] != 0);
990 } 997 }
991 998
992 delete arg; 999 delete arg;
993 } 1000 }