Mercurial > projects > ldc
diff dmd/mtype.c @ 445:cc40db549aea
Changed the handling of variadic intrinsics a bit.
Removed the -fp80 option and made real be 80bit floats on X86, this is what the D spec really says it should be and fixes a bunch of issues.
Changed the handling of parameter attributes to a bit more generalized approach.
Added sext/zext attributes for byte/short/ubyte/ushort parameters, fixes #60 .
Parameter attribs now properly set for intrinsic calls if necessary.
Made the tango.math.Math patch less intrusive.
Fixed/added some mini tests.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Fri, 01 Aug 2008 17:59:58 +0200 |
parents | 722f5e90c39c |
children | a34078905d01 |
line wrap: on
line diff
--- a/dmd/mtype.c Fri Aug 01 01:12:33 2008 +0200 +++ b/dmd/mtype.c Fri Aug 01 17:59:58 2008 +0200 @@ -252,7 +252,7 @@ } // set real size and padding - if (global.params.useFP80) + if (global.params.cpu == ARCHx86) { REALSIZE = 12; REALPAD = 2; @@ -2653,6 +2653,7 @@ this->inuse = 0; this->llvmRetInPtr = false; this->llvmUsesThis = false; + this->llvmRetAttrs = 0; } Type *TypeFunction::syntaxCopy() @@ -2662,6 +2663,7 @@ TypeFunction *t = new TypeFunction(params, treturn, varargs, linkage); t->llvmRetInPtr = llvmRetInPtr; t->llvmUsesThis = llvmUsesThis; + t->llvmRetAttrs = llvmRetAttrs; return t; } @@ -5235,7 +5237,7 @@ this->ident = ident; this->storageClass = storageClass; this->defaultArg = defaultArg; - this->llvmByVal = false; + this->llvmAttrs = 0; } Argument *Argument::syntaxCopy() @@ -5244,7 +5246,7 @@ type ? type->syntaxCopy() : NULL, ident, defaultArg ? defaultArg->syntaxCopy() : NULL); - a->llvmByVal = llvmByVal; + a->llvmAttrs = llvmAttrs; return a; }