diff dmd/mtype.c @ 217:0806379a5eca trunk

[svn r233] Added: -oq command line option for writing fully qualified object names. Added: started support for x86 80bit floating point. Changed: aggregates passed by value now use the llvm 'byval' parameter attribute, also lays ground work for using other attributes. Changed: eliminated a lot more std::vectorS, these showed up pretty much at the top when profiling! Changed: performed other misc. cleanups. Changed: halt expression now call the new llvm trap intrinsic instead of an assert(0). Changed: dstress suite now passes -O0 by default, this only eliminates unreferenced globals, which speeds up linking quite a bit.
author lindquist
date Thu, 05 Jun 2008 06:38:36 +0200
parents f66219e0d530
children 4d006f7b2ada
line wrap: on
line diff
--- a/dmd/mtype.c	Tue Jun 03 22:32:59 2008 +0200
+++ b/dmd/mtype.c	Thu Jun 05 06:38:36 2008 +0200
@@ -2538,7 +2538,9 @@
 {
     Type *treturn = next ? next->syntaxCopy() : NULL;
     Arguments *params = Argument::arraySyntaxCopy(parameters);
-    Type *t = new TypeFunction(params, treturn, varargs, linkage);
+    TypeFunction *t = new TypeFunction(params, treturn, varargs, linkage);
+    t->llvmRetInPtr = llvmRetInPtr;
+    t->llvmUsesThis = llvmUsesThis;
     return t;
 }
 
@@ -5062,6 +5064,7 @@
     this->ident = ident;
     this->storageClass = storageClass;
     this->defaultArg = defaultArg;
+    this->llvmByVal = false;
 }
 
 Argument *Argument::syntaxCopy()
@@ -5070,6 +5073,7 @@
 		type ? type->syntaxCopy() : NULL,
 		ident,
 		defaultArg ? defaultArg->syntaxCopy() : NULL);
+    a->llvmByVal = llvmByVal;
     return a;
 }