On Thu, Nov 20, 2008 at 08:50:22AM +0100, Masha Rabinovich wrote:
> int a = 2.0 ? 0 : 1;
> int b = (_Bool)2.0;
> int c = !2.0;
> int d = 2.0;
> int e = (char)500;
>
> int main()
> {
> printf("%d %d %d %d %d\n", a, b, c, d, e);
> }
>
> GCC output: 0 1 0 2 -12
>
> TCC output: 1 0 1 0 500
Nice example. It triggers three bugs:
- constants are cast only inside functions
- '?' does not cast to bool
- '!' does not cast to bool
See http://repo.or.cz/w/tinycc/daniel.git
The fix for the first bug needs thorough testing before it is ready for
inclusion.
Daniel
_______________________________________________
Tinycc-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/tinycc-devel