tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Tinycc-devel] tcc 0.9.21: wrong code generated for casts


From: Bruno Haible
Subject: [Tinycc-devel] tcc 0.9.21: wrong code generated for casts
Date: Thu, 28 Oct 2004 15:05:29 +0200
User-agent: KMail/1.5

/* Hi, this file exposes bugs in tcc-0.9.21. It prints 0 0 0 0 while the
   correct result is 1 1 1 1. */

#include <stdbool.h>
#include <stdio.h>

bool uint_char (char *p) {
  return (char)(unsigned int)*p == *p;
}

bool ulong_char (char *p) {
  return (char)(unsigned long)*p == *p;
}

bool uint_short (short *p) {
  return (short)(unsigned int)*p == *p;
}

bool ulong_short (short *p) {
  return (short)(unsigned long)*p == *p;
}

int main ()
{
  char x = -3;
  short y = -5;

  printf ("%d %d %d %d\n",
          uint_char (&x), ulong_char (&x), uint_short (&y), ulong_short (&y));
  return 0;
}





reply via email to

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