The following program returns 1 while it should return 0.

----------from here----------
#define SQUISH(n) (!!((n) & 0xF))

#define HEX2BIN(n) (SQUISH(n))

#define FLAGS(f) HEX2BIN(0x##f##U)

int
main ()
{
    return FLAGS(0);
}
----------to here----------

It properly returns 0 if FLAGS is changed to HEX2BIN or SQUISH, or if
I preprocess the code with GNU cpp.  I can't figure out how to stop
the compilation after the preprocessing phase in tcc.  I have other
things I want to do, so I'm not digging further into this.

This behavior is consistently repeatable with tcc version 0.9.23 on
Debian GNU/Linux sid (unstable) running on a Pentium M.  I tried both
Debian's binary package and the tarball put up at tinycc.org.


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

Reply via email to