diff gen/tollvm.c @ 21:8d45266bbabe trunk

[svn r25] * Fixed a lot of problems with string literals * Fixed slice-slice copying assignment
author lindquist
date Thu, 04 Oct 2007 07:01:15 +0200
parents c05ef76f1c20
children 25bb577878e8
line wrap: on
line diff
--- a/gen/tollvm.c	Thu Oct 04 04:28:30 2007 +0200
+++ b/gen/tollvm.c	Thu Oct 04 07:01:15 2007 +0200
@@ -803,9 +803,10 @@
 
 llvm::Constant* LLVM_DtoInitializer(Type* type, Initializer* init)
 {
-    llvm::Constant* _init = 0;
+    llvm::Constant* _init = 0; // may return zero
     if (!init)
     {
+        Logger::println("default initializer");
         elem* e = type->defaultInit()->toElem(gIR);
         if (!e->inplace && !e->isNull()) {
             _init = llvm::cast<llvm::Constant>(e->getValue());
@@ -814,6 +815,7 @@
     }
     else if (ExpInitializer* ex = init->isExpInitializer())
     {
+        Logger::println("expression initializer");
         elem* e = ex->exp->toElem(gIR);
         if (!e->inplace && !e->isNull()) {
             _init = llvm::cast<llvm::Constant>(e->getValue());
@@ -822,14 +824,17 @@
     }
     else if (StructInitializer* si = init->isStructInitializer())
     {
+        Logger::println("struct initializer");
         _init = LLVM_DtoStructInitializer(si);
     }
     else if (ArrayInitializer* ai = init->isArrayInitializer())
     {
+        Logger::println("array initializer");
         _init = LLVM_DtoArrayInitializer(ai);
     }
     else if (init->isVoidInitializer())
     {
+        Logger::println("void initializer");
         const llvm::Type* ty = LLVM_DtoType(type);
         _init = llvm::Constant::getNullValue(ty);
     }