view tests/mini/bug33.d @ 1109:97d80437cb80

Fix field access from inline asm. See tests/mini/asm10.d
author Frits van Bommel <fvbommel wxs.nl>
date Thu, 12 Mar 2009 23:48:43 +0100
parents 1bb99290e03a
children
line wrap: on
line source

module bug33;

extern(C) int memcmp(void*,void*,size_t);

private int string_cmp(char[] s1, char[] s2)
{
    auto len = s1.length;
    if (s2.length < len)
        len = s2.length;
    int result = memcmp(s1.ptr, s2.ptr, len);
    if (result == 0)
        result = cast(int)(cast(ptrdiff_t)s1.length - cast(ptrdiff_t)s2.length);
    return result;
}

struct S
{
    char[] toString()
    {
        return "S";
    }
}

int func()
{
    S a,b;
    return string_cmp(a.toString(),b.toString());
}

void main()
{
    assert(func() == 0);
}