diff gen/toobj.cpp @ 94:61615fa85940 trunk

[svn r98] Added support for std.c.stdlib.alloca via pragma(LLVM_internal, "alloca"). Added support for array .sort and .reverse properties. Fixed some bugs with pointer arithmetic. Disabled some DMD AST optimizations that was messing things up, destroying valuable information. Added a KDevelop project file, this is what I use for coding LLVMDC now :) Other minor stuff.
author lindquist
date Mon, 12 Nov 2007 06:32:46 +0100
parents ccca1c13e13a
children ce7ed8f59b99
line wrap: on
line diff
--- a/gen/toobj.cpp	Thu Nov 08 19:21:05 2007 +0100
+++ b/gen/toobj.cpp	Mon Nov 12 06:32:46 2007 +0100
@@ -81,7 +81,7 @@
     // debug info
     if (global.params.symdebug) {
         RegisterDwarfSymbols(ir.module);
-        ir.dwarfCompileUnit = DtoDwarfCompileUnit(this);
+        ir.dmodule->llvmCompileUnit = DtoDwarfCompileUnit(this,true);
     }
 
     // process module members
@@ -162,7 +162,7 @@
         Logger::println("vmoduleinfo");
     }
     if (needModuleInfo()) {
-        Logger::println("**** ATTENTION: module info is needed but skipped");
+        Logger::attention("module info is needed but skipped");
     }
 
 
@@ -905,7 +905,7 @@
     }
 
     if (isUnitTestDeclaration()) {
-        Logger::println("*** ATTENTION: ignoring unittest declaration: %s", toChars());
+        Logger::attention("ignoring unittest declaration: %s", toChars());
         return;
     }
 
@@ -948,7 +948,11 @@
 
     // debug info
     if (global.params.symdebug) {
-        llvmDwarfSubProgram = DtoDwarfSubProgram(this);
+        Module* mo = getModule();
+        if (!mo->llvmCompileUnit) {
+            mo->llvmCompileUnit = DtoDwarfCompileUnit(mo,false);
+        }
+        llvmDwarfSubProgram = DtoDwarfSubProgram(this, mo->llvmCompileUnit);
     }
 
     assert(f->llvmType);
@@ -1033,7 +1037,7 @@
                         vd->llvmValue = v;
                     }
                     else {
-                        Logger::println("*** ATTENTION: some unknown argument: %s", arg ? arg->toChars() : 0);
+                        Logger::attention("some unknown argument: %s", arg ? arg->toChars() : 0);
                     }
                 }