tinycc-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]