view tests/mini/sextzext.d @ 1615:3da302cc4966

Merge DMD r294: bugzilla 2816 Sudden-death static assert is not... bugzilla 2816 Sudden-death static assert is not very useful. --- dmd/expression.h | 12 ++++++ dmd/staticassert.c | 10 +--- dmd/template.c | 108 ++++++++++++++++++++++++++++++++++++++++++++++++---- dmd/template.h | 2 + 4 files changed, 117 insertions(+), 15 deletions(-)
author Leandro Lucarella <llucax@gmail.com>
date Wed, 06 Jan 2010 15:18:21 -0300
parents cc40db549aea
children
line wrap: on
line source

module mini.sextzext;

void main()
{
    byte sb  = sextreturn1();
    short ss = sextreturn2();
    assert(ss == -2);
    assert(sb == -2);
    assert(sextparam1(-42) == -42);
    assert(sextparam2(-42) == -42);

    ubyte ub  = zextreturn1();
    ushort us = zextreturn2();
    assert(ub == 2);
    assert(us == 2);
    assert(zextparam1(42) == 42);
    assert(zextparam2(42) == 42);

    assert(getchar() == 'a');
    assert(passchar('z') == 'z');

}

byte sextreturn1()
{
    return -2;
}
short sextreturn2()
{
    return -2;
}

ubyte zextreturn1()
{
    return 2;
}
ushort zextreturn2()
{
    return 2;
}

byte sextparam1(byte b)
{
    return b;
}
short sextparam2(short s)
{
    return s;
}

ubyte zextparam1(ubyte b)
{
    return b;
}
ushort zextparam2(ushort s)
{
    return s;
}

char getchar()
{
    return 'a';
}

char passchar(char ch)
{
    return ch;
}