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.

Works for me on win64 with latest mob, maybe it was fixed:
  http://repo.or.cz/w/tinycc.git?a=shortlog;h=refs/heads/mob

Maybe we should release tcc-0.9.26, eventually.

--- grischka


Indeed, it also works for me. Sorry, I didn't check the latest development version before posting...

--ghe


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