Mercurial > projects > ldc
annotate test/ptrarith.d @ 203:e881c9b1c738 trunk
[svn r219] Fixed: the tango/lib/gc/basic garbage collector now compiles and links into an executable (change in tango/lib/llvmdc-posix.mak), closes #5 .
Changed: removed the crappy realloc based dynamic memory runtime and started moving over to DMD style runtime support, part of moving to real GC.
Fixed: dynamic arrays now use GC runtime for allocating memory.
Fixed: new expression now use GC for allocating memory.
Changed: revamped the dynamic array support routines related to dynamic memory.
Fixed: assertions no longer create exsessive allocas.
Changed: misc. minor cleanups.
author | lindquist |
---|---|
date | Tue, 13 May 2008 14:42:09 +0200 |
parents | c53b6e3fe49a |
children | d9d5d59873d8 |
rev | line source |
---|---|
1 | 1 void main() |
2 { | |
3 printf("Pointer arithmetic test\n"); | |
4 int* p; | |
5 printf("0x%x\n", p); | |
6 assert(p++ is null); | |
7 assert(cast(size_t)p == 4); | |
8 printf("0x%x\n", p); | |
9 p--; | |
10 assert(p is null); | |
11 printf("0x%x\n", p); | |
12 int d = 4; | |
13 p+=d; | |
14 printf("0x%x\n", p); | |
15 assert(cast(size_t)p == 16); | |
16 d = 2; | |
17 p+=d; | |
18 printf("0x%x\n", p); | |
19 assert(cast(size_t)p == 0x18); | |
20 d = 6; | |
21 p-=d; | |
22 printf("0x%x\n", p); | |
23 assert(p is null); | |
24 printf(" SUCCESS\n"); | |
25 } | |
26 | |
27 void fill_byte_array(ubyte* a, size_t n, ubyte v) | |
28 { | |
29 auto p = a; | |
30 auto end = a+n; | |
31 while (p !is end) | |
32 *p++ = v; | |
33 } |