Hi list,

Here is a simple C program that does not compile and execute correclty with TCC (on i386, both with TCC 0.9.25 and with the latest sources; it works on AMD64):

#include <stdio.h>

long long int ll[] = { 1LL, 2LL };
unsigned long long int ull[] = { 1ULL, 2ULL };

int main ()
{
  long long int lli;
  unsigned long long int ulli;
  lli = 1LL;
  printf ("%lld ", ll[lli]); printf ("%lld ", ll[1LL]); printf ("%lld\n", 
ll[1]);
  printf ("%lld %lld %lld\n", ll[lli], ll[1LL], ll[1]);
  if (ll[lli] == 2LL) printf ("OK "); else printf ("KO ");
  if (ll[1LL] == 2LL) printf ("OK "); else printf ("KO ");
  if (ll[1] == 2LL) printf ("OK\n"); else printf ("KO\n");
  ulli = 1ULL;
  printf ("%llu ", ull[ulli]); printf ("%llu ", ull[1ULL]); printf ("%llu\n", 
ull[1]);
  printf ("%llu %llu %llu\n", ull[ulli], ull[1ULL], ull[1]);
  if (ull[ulli] == 2ULL) printf ("OK "); else printf ("KO ");
  if (ull[1ULL] == 2ULL) printf ("OK "); else printf ("KO ");
  if (ull[1] == 2ULL) printf ("OK\n"); else printf ("KO\n");
  return 0;
}

It should obviously print:

2 2 2
2 2 2
OK OK OK
2 2 2
2 2 2
OK OK OK

but it prints:

0 2 2
2 2 2
KO OK OK
0 2 2
2 2 2
KO OK OK

--ghe

_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to