Implicit Convert Math Bug

Started by
1 comment, last by WitchLord 9 years, 6 months ago

I think there's a bug somewhere when compiling math operators and using implicit conversion functions. The following test fails.


int x = 1;
class A
{
    int val;
    A(int x)
    {
        val = x;
    }
    int opImplConv()
    {
        return val;
    }
}

A myA(5);

void main()
{
    assert(myA + (x + 1) == myA + x + 1);
}

The error seems to be that after the CALLINTF instruction for A::opImplConv there is no following CpyRtoV4. The error is in the bytecode generated on the left side of the comparison.

Also, if the global declaration of "x" is removed and a local declaration of "x" is added to the main function the bug is gone.

Advertisement

Thanks for the clear and precise bug report. I'll investigate it have it fixed as soon as possible.

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

I've fixed this in revision 2017.

Regards,

Andreas

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

This topic is closed to new replies.

Advertisement