diff gen/toir.c @ 62:b86e00b938a5 trunk

[svn r66] Added support for imaginary floating point types
author lindquist
date Thu, 25 Oct 2007 09:48:36 +0200
parents 2c3cd3596187
children b688ad419f8c
line wrap: on
line diff
--- a/gen/toir.c	Thu Oct 25 09:26:17 2007 +0200
+++ b/gen/toir.c	Thu Oct 25 09:48:36 2007 +0200
@@ -328,10 +328,11 @@
 {
     Logger::print("RealExp::toConstElem: %s | %s\n", toChars(), type->toChars());
     LOG_SCOPE;
-    const llvm::Type* fty = LLVM_DtoType(type);
-    if (type->ty == Tfloat32)
+    Type* t = LLVM_DtoDType(type);
+    const llvm::Type* fty = LLVM_DtoType(t);
+    if (t->ty == Tfloat32 || t->ty == Timaginary32)
         return llvm::ConstantFP::get(fty,float(value));
-    else if (type->ty == Tfloat64 || type->ty == Tfloat80)
+    else if (t->ty == Tfloat64 || t->ty == Timaginary64 || t->ty == Tfloat80 || t->ty == Timaginary80)
         return llvm::ConstantFP::get(fty,double(value));
     assert(0);
     return NULL;