changeset 101:169fda3a77d4 trunk

[svn r105] -inline does nothing for now, the -On setting can already be used to trigger it. Fixed a rare bug in AddrExp.
author lindquist
date Fri, 16 Nov 2007 10:01:24 +0100
parents 5071469303d4
children 027b8d8b71ec
files dmd/mars.c gen/toir.cpp llvmdc.kdevelop.filelist
diffstat 3 files changed, 11 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/dmd/mars.c	Fri Nov 16 08:21:47 2007 +0100
+++ b/dmd/mars.c	Fri Nov 16 10:01:24 2007 +0100
@@ -15,7 +15,7 @@
 #include <assert.h>
 #include <limits.h>
 #include <string>
-#include <vaarg.h>
+#include <cstdarg>
 
 #if _WIN32
 #include <windows.h>
@@ -469,8 +469,12 @@
 		}
 	    }
 #endif
-	    else if (strcmp(p + 1, "inline") == 0)
-		global.params.useInline = 1;
+	    else if (strcmp(p + 1, "inline") == 0) {
+            // TODO
+            // the ast rewrites dmd does for inling messes up the ast
+            // someday maybe we can support it, for now llvm does an excellent job at inlining
+            global.params.useInline = 0; //1
+        }
 	    else if (strcmp(p + 1, "nofloat") == 0)
 		global.params.nofloat = 1;
 	    else if (strcmp(p + 1, "quiet") == 0)
--- a/gen/toir.cpp	Fri Nov 16 08:21:47 2007 +0100
+++ b/gen/toir.cpp	Fri Nov 16 10:01:24 2007 +0100
@@ -1468,6 +1468,9 @@
             fd->toObjFile();
         return new DFuncValue(fd, fd->llvmValue);
     }
+    else if (DImValue* im = v->isIm()) {
+        return v;
+    }
     return new DFieldValue(type, v->getLVal(), false);
 }
 
--- a/llvmdc.kdevelop.filelist	Fri Nov 16 08:21:47 2007 +0100
+++ b/llvmdc.kdevelop.filelist	Fri Nov 16 10:01:24 2007 +0100
@@ -299,6 +299,7 @@
 test/bug63.d
 test/bug64.d
 test/bug66.d
+test/bug67.d
 test/bug7.d
 test/bug8.d
 test/bug9.d