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 mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to