HIPE bug?

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

HIPE bug?

Lon Willett
Hi all,

I've tried the R8B-0 release with HIPE (--enable-hipe), and ran across
the following problem in one of my tests.  Apparently, when adding two
fixnums overflows into a bignum, hipe compiled code fails to recognize
this.  e.g. when I compile and run:


add(X,Y) ->
    X + Y.

test() ->
    16#7FFFFFF = add(16#7FFFFFF,0),
    16#8000000 = add(16#8000000,0),
    16#8000001 = add(16#8000000,1),
    case add(16#7FFFFFF,1) of
        16#8000000 -> ok;
        -16#7FFFFFF -> error

with "+native", hipebug:test() return 'error', while without it, it
returns 'ok' (this is on an i386 running redhat 6.2, OTP was built
with gcc 3.0.1).

Is this a known limitation, or a bug in the general implementation, or
just a bug on my system (or in gcc)?