Mercurial > projects > ldc
annotate tests/mini/arrays15.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 |
rev | line source |
---|---|
306
0baca2feb554
[svn r327] Fixed some more MinGW32 issues. It's now very close to working.
lindquist
parents:
305
diff
changeset
|
1 module arrays15; |
0baca2feb554
[svn r327] Fixed some more MinGW32 issues. It's now very close to working.
lindquist
parents:
305
diff
changeset
|
2 |
175
c44e6a711885
[svn r191] Fixed: array literals did not support all type/storage combinations.
lindquist
parents:
1
diff
changeset
|
3 extern(C) int printf(char*, ...); |
c44e6a711885
[svn r191] Fixed: array literals did not support all type/storage combinations.
lindquist
parents:
1
diff
changeset
|
4 |
1 | 5 void integer() |
6 { | |
7 auto arr = new int[16]; | |
8 arr[1] = 42; | |
9 arr[6] = 555; | |
10 print_int(arr); | |
11 delete arr; | |
12 } | |
13 | |
14 void floating() | |
15 { | |
16 auto arr = new float[6]; | |
17 arr[1] = 3.14159265; | |
18 arr[3] = 1.61803399; | |
19 print_float(arr); | |
20 delete arr; | |
21 } | |
22 | |
23 void print_int(int[] arr) | |
24 { | |
25 printf("arr[%lu] = [", arr.length); | |
26 for (auto i=0; i<arr.length; i++) | |
27 printf("%d,", arr[i]); | |
28 printf("\b]\n"); | |
29 } | |
30 | |
31 void print_float(float[] arr) | |
32 { | |
33 printf("arr[%lu] = [", arr.length); | |
34 for (auto i=0; i<arr.length; i++) | |
35 printf("%f,", arr[i]); | |
36 printf("\b]\n"); | |
37 } | |
38 | |
39 void main() | |
40 { | |
41 integer(); | |
42 floating(); | |
43 } |