Mercurial > projects > dstress
diff run/mini/staticarrays.d @ 1628:c6ef09dfba4d
add mini test set from ldc project
author | Moritz Warning <moritzwarning@web.de> |
---|---|
date | Mon, 10 Jan 2011 19:47:18 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/mini/staticarrays.d Mon Jan 10 19:47:18 2011 +0100 @@ -0,0 +1,78 @@ +extern(C) int printf(char*, ...); + +void numbers() +{ + bool[8] bools; + char[8] chars; + byte[8] bytes; + short[8] shorts; + int[8] ints; + long[8] longs; + float[8] floats; + double[8] doubles; + real[8] reals; + { + bools[7] = true; + floats[7] = 3.14159265; + { + printf("bools[0] = %d, bools[7] = %d\n", bools[0], bools[7]); + printf("floats[0] = %f, floats[7] = %f\n", floats[0], floats[7]); + } + } +} + +struct S +{ + int i = 42; + void print() + { + printf("S.i = %d\n", i); + } +} + +class C +{ + int i; + this() + { + i = 3; + } + void print() + { + printf("C.i = %d\n", i); + } +} + +void refs() +{ + void*[5] voids; + S*[5] structs; + C[5] classes; + + { + voids[0] = cast(void*)0xA; + printf("void* = %p\n", voids[0]); + } + { + structs[0] = new S; + structs[0].print(); + delete structs[0]; + } + { + classes[0] = new C; + classes[0].print(); + delete classes[0]; + } +} + +void vals() +{ + S[5] structs; +} + +void main() +{ + numbers(); + refs(); + vals(); +}