Mercurial > projects > ldc
diff gen/toir.c @ 42:0b9b286b67b6 trunk
[svn r46] fix for shift operations
added a simple opengl binding in demos
author | lindquist |
---|---|
date | Fri, 19 Oct 2007 15:16:11 +0200 |
parents | 8b0e809563df |
children | ea65e12b0dd0 |
line wrap: on
line diff
--- a/gen/toir.c Fri Oct 19 07:45:35 2007 +0200 +++ b/gen/toir.c Fri Oct 19 15:16:11 2007 +0200 @@ -2250,10 +2250,14 @@ LOG_SCOPE; \ elem* u = e1->toElem(p); \ elem* v = e2->toElem(p); \ - llvm::Value* tmp = llvm::BinaryOperator::create(llvm::Instruction::Y, u->getValue(), v->getValue(), "tmp", p->scopebb()); \ - Logger::cout() << *tmp << '|' << *u->mem << '\n'; \ + llvm::Value* uval = u->getValue(); \ + assert(uval); \ + llvm::Value* vval = v->getValue(); \ + assert(vval); \ + llvm::Value* tmp = llvm::BinaryOperator::create(llvm::Instruction::Y, uval, vval, "tmp", p->scopebb()); \ if (u->mem == 0) \ LLVM_DtoGiveArgumentStorage(u); \ + Logger::cout() << *tmp << '|' << *u->mem << '\n'; \ new llvm::StoreInst(LLVM_DtoPointedType(u->mem, tmp), u->mem, p->scopebb()); \ delete u; \ delete v; \