Mercurial > projects > ldc
diff gen/tollvm.cpp @ 264:a9dae3da4e87 trunk
[svn r285] Fixed D -> bool LLVM helper for floating point values.
Changed the way D-style varargs are passed, now each param should be aligned to size_t.sizeof.
author | lindquist |
---|---|
date | Sat, 14 Jun 2008 17:28:13 +0200 |
parents | b604c56945b0 |
children | 6b62e8cdf970 |
line wrap: on
line diff
--- a/gen/tollvm.cpp Sat Jun 14 06:13:35 2008 +0200 +++ b/gen/tollvm.cpp Sat Jun 14 17:28:13 2008 +0200 @@ -330,14 +330,16 @@ return new llvm::ICmpInst(llvm::ICmpInst::ICMP_NE, val, zero, "tmp", gIR->scopebb()); } } + else if (t->isFloatingPoint()) + { + LLValue* zero = llvm::Constant::getNullValue(t); + return new llvm::FCmpInst(llvm::FCmpInst::FCMP_ONE, val, zero, "tmp", gIR->scopebb()); + } else if (isaPointer(t)) { LLValue* zero = llvm::Constant::getNullValue(t); return new llvm::ICmpInst(llvm::ICmpInst::ICMP_NE, val, zero, "tmp", gIR->scopebb()); } - else - { - Logger::cout() << *t << '\n'; - } + std::cout << "unsupported -> bool : " << *t << '\n'; assert(0); return 0; }