[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Tinycc-devel] Bug: unsigned arithmetic on x86-64
From: |
ghe |
Subject: |
[Tinycc-devel] Bug: unsigned arithmetic on x86-64 |
Date: |
Tue, 16 Nov 2010 18:01:25 +0100 (CET) |
Hi list,
The following code fails with tcc version 0.9.25 on AMD64 (Debian): srem
and squo are correct, but urem and uquo are zero... The code works on
i386.
int main ()
{
unsigned long long int unum, uden, uquo, urem;
long long int snum, sden, squo, srem;
unum = 2111062325329920;
snum = unum;
uden = 52428800;
sden = uden;
uquo = unum / uden;
urem = unum % uden;
squo = snum / sden;
srem = snum % sden;
if (uquo != squo || urem != srem)
{
printf ("BUG:\n");
printf (" %lld != %lld\n", uquo, squo);
printf (" %lld != %lld\n", urem, srem);
}
else
printf ("OK\n");
}
Thanks,
--ghe
- [Tinycc-devel] Bug: unsigned arithmetic on x86-64,
ghe <=