Mercurial > projects > ldc
view tests/minicomplex/arrays1.d @ 920:545f54041d91
Implemented proper support for naked asm using llvm module level asm. Still not 100% complete, but already 1000 times better that what we had before. Don's BignumX86 implementation from Tango (when turned into a standalone unittest) seems to fully work with no changes, and great performance :)
Fixed align N; in asm blocks.
Fixed inreg parameter passing on x86 for ref/out params.
Removed support for lazy initialization of function local static variables, I have no idea why I ever implemented this, it's not in the D spec, and DMD doesn't support it :P
Some of the global variable related changes might cause minor regressions, but they should be easily fixable.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Tue, 03 Feb 2009 08:54:57 +0100 |
parents | 1bb99290e03a |
children |
line wrap: on
line source
module tangotests.arrays1; import tango.stdc.stdio; void main() { real[] arr; print(arr); main2(); } void main2() { real[] arr = void; fill(arr); print(arr); main3(); } void main3() { } void print(real[] arr) { printf("len=%u ; ptr=%p\n", arr.length, arr.ptr); } void fill(ref real[] arr) { auto ptr = cast(void**)&arr; *ptr++ = cast(void*)0xbeefc0de; *ptr = cast(void*)0xbeefc0de; } void dg1(void delegate(int[]) dg) { dg2(dg); } void dg2(void delegate(int[]) dg) { dg(null); } void sarr1(int[16] sa) { sarr1(sa); } struct Str { size_t length; char* ptr; } void str1(Str str) { str1(str); } void str2(ref Str str) { str2(str); } void str3(out Str str) { str3(str); } void str4(Str* str) { str4(str); } void str5(Str);