view tests/mini/bug33.d @ 1624:ae8a94d87ca9

Merge DMD r318: bugzilla 2029 Typesafe variadic functions don't... bugzilla 2029 Typesafe variadic functions don't work in CTFE. --- dmd/aggregate.h | 1 + dmd/struct.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 0 deletions(-)
author Leandro Lucarella <llucax@gmail.com>
date Wed, 06 Jan 2010 15:18:22 -0300
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);
}