diff gen/toobj.cpp @ 486:a34078905d01

Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in. Reimplemented support for nested functions/class using a new approach. Added error on taking address of intrinsic. Fixed problems with the ->syntaxCopy of TypeFunction delegate exp. Removed DtoDType and replaced all uses with ->toBasetype() instead. Removed unused inplace stuff. Fixed a bunch of issues in the runtime unittests, not complete yet. Added mini tests.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Sun, 10 Aug 2008 08:37:38 +0200
parents a3f3c2770a0d
children 017ca8645a1f
line wrap: on
line diff
--- a/gen/toobj.cpp	Sat Aug 09 09:03:52 2008 +0200
+++ b/gen/toobj.cpp	Sun Aug 10 08:37:38 2008 +0200
@@ -55,9 +55,17 @@
 
 void Module::genobjfile(int multiobj)
 {
+    bool logenabled = Logger::enabled();
+    if (llvmForceLogging && !logenabled)
+    {
+        Logger::enable();
+    }
+
     Logger::cout() << "Generating module: " << (md ? md->toChars() : toChars()) << '\n';
     LOG_SCOPE;
 
+    //printf("codegen: %s\n", srcfile->toChars());
+
     // start by deleting the old object file
     deleteObjFile();
 
@@ -161,10 +169,10 @@
 
     if (global.params.fqnPaths)
     {
-        bcpath = LLPath(md->toChars());
+        bcpath = LLPath(mname);
         bcpath.appendSuffix("bc");
 
-        llpath = LLPath(md->toChars());
+        llpath = LLPath(mname);
         llpath.appendSuffix("ll");
     }
     else
@@ -190,6 +198,11 @@
     delete ir.module;
     gTargetData = 0;
     gIR = NULL;
+    
+    if (llvmForceLogging && !logenabled)
+    {
+        Logger::disable();
+    }
 }
 
 /* ================================================================== */