diff dmd/expression.c @ 723:55f6c2e454d7

Implemented correct parameter order according to x86-32 ABI documentation. Changed AA types to just a void* .
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Sat, 25 Oct 2008 06:03:28 +0200
parents a26b0c5d5942
children ef7fe998f9b3
line wrap: on
line diff
--- a/dmd/expression.c	Thu Oct 23 19:42:55 2008 +0200
+++ b/dmd/expression.c	Sat Oct 25 06:03:28 2008 +0200
@@ -684,12 +684,16 @@
 		    //arg->error("cannot modify slice %s", arg->toChars());
 	    }
 
+// LDC we don't want this!
+#if !IN_LLVM
 	    // Convert static arrays to pointers
 	    tb = arg->type->toBasetype();
 	    if (tb->ty == Tsarray)
 	    {
 		arg = arg->checkToPointer();
 	    }
+#endif
+
 
 	    // Convert lazy argument to a delegate
 	    if (p->storageClass & STClazy)
@@ -701,7 +705,8 @@
 	{
 
 	    // If not D linkage, do promotions
-	    if (tf->linkage != LINKd)
+        // LDC: don't do promotions on intrinsics
+	    if (tf->linkage != LINKd && tf->linkage != LINKintrinsic)
 	    {
 		// Promote bytes, words, etc., to ints
 		arg = arg->integralPromotions(sc);