John Regehr wrote:

Sorry, I mean it prints "-255".

I'm using tcc-0.9.24 on Ubnutu Linux.

John Regehr



John Regehr wrote:

For the program below, tcc emits a program that prints "255" whereas most compilers would say that the program should print "1".

Of course wrapping the signed scalar p_99 has undefined behavior, so what I am asking is: is tcc intentionally exploiting the undefinedness of the program, or is this a bug?

Thanks,

John Regehr



#include <stdio.h>

int g_254;

void func_97 (signed char p_99);
void func_97 (signed char p_99)
{
  for (; p_99; p_99 -= 1)
    g_254 = p_99;
}

int
main (void)
{
  func_97 (-1);
  printf ("%d\n", g_254);
  return 0;
}



-255 seems strange! Runing it myself, I would say -256. Strange tcc result!

--

            Philippe Ribet


SmartEiffel:
one methodoology, one language,
highest quality kept secret.
Visit http://smarteiffel.loria.fr




_______________________________________________
Tinycc-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to