view tests/mini/ptrarith.d @ 1622:a542ef277a84

Merge DMD r316: bugzilla 3628 can't cast null to int --- dmd/constfold.c | 2 +- dmd/optimize.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-)
author Leandro Lucarella <llucax@gmail.com>
date Wed, 06 Jan 2010 15:18:22 -0300
parents 1bb99290e03a
children
line wrap: on
line source

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;
}