Mercurial > projects > ldc
view test/ptrarith.d @ 237:a168a2c3ea48 trunk
[svn r253] Removed -inlineasm option. inline asm is now enabled by default unless the new -noasm option is passed.
Tried adding a stack trace print when compiler crashes, not sure it's working though.
Changed data layouts to match that of llvm-gcc.
Fixed casting function pointers.
Added support checks in AsmStatement.
author | lindquist |
---|---|
date | Sun, 08 Jun 2008 19:09:24 +0200 |
parents | c53b6e3fe49a |
children | d9d5d59873d8 |
line wrap: on
line source
void main() { printf("Pointer arithmetic test\n"); int* p; printf("0x%x\n", p); assert(p++ is null); assert(cast(size_t)p == 4); printf("0x%x\n", p); p--; assert(p is null); printf("0x%x\n", p); int d = 4; p+=d; printf("0x%x\n", p); assert(cast(size_t)p == 16); d = 2; p+=d; printf("0x%x\n", p); assert(cast(size_t)p == 0x18); d = 6; p-=d; printf("0x%x\n", p); assert(p is null); printf(" SUCCESS\n"); } void fill_byte_array(ubyte* a, size_t n, ubyte v) { auto p = a; auto end = a+n; while (p !is end) *p++ = v; }