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; \