mirror of
https://github.com/nArnoSNES/tcc-65816.git
synced 2024-06-12 13:29:29 +00:00
60 lines
716 B
C
60 lines
716 B
C
int errflag;
|
|
|
|
long long
|
|
f (long long x, long long y)
|
|
{
|
|
long long r;
|
|
|
|
errflag = 0;
|
|
r = x + y;
|
|
if (x >= 0)
|
|
{
|
|
if ((y < 0) || (r >= 0))
|
|
return r;
|
|
}
|
|
else
|
|
{
|
|
if ((y > 0) || (r < 0))
|
|
return r;
|
|
}
|
|
errflag = 1;
|
|
return 0;
|
|
}
|
|
|
|
main ()
|
|
{
|
|
f (0, 0);
|
|
if (errflag)
|
|
abort ();
|
|
|
|
f (1, -1);
|
|
if (errflag)
|
|
abort ();
|
|
|
|
f (-1, 1);
|
|
if (errflag)
|
|
abort ();
|
|
|
|
f (0x80000000LL, 0x80000000LL);
|
|
if (!errflag)
|
|
abort ();
|
|
|
|
f (0x80000000LL, -1LL);
|
|
if (!errflag)
|
|
abort ();
|
|
|
|
f (0x7fffffffLL, 0x7fffffffLL);
|
|
if (!errflag)
|
|
abort ();
|
|
|
|
f (0x7fffffffLL, 1LL);
|
|
if (!errflag)
|
|
abort ();
|
|
|
|
f (0x7fffffffLL, 0x80000000LL);
|
|
if (errflag)
|
|
abort ();
|
|
|
|
exit (0);
|
|
}
|