Mercurial > projects > ldc
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);