mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-12 10:53:14 +01:00
Branch statements now emit a new block after it. Fixed the _adSort runtime function had a bad signature. Added a missing dot prefix on compiler generated string tables for string switch. Fixed, PTRSIZE seems like it was wrong on 64bit, now it definitely gets set properly.
36 lines
659 B
D
36 lines
659 B
D
extern(C) int printf(char*, ...);
|
|
|
|
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;
|
|
}
|