Fix casting an r-value to char.

For example:
int f(int i, int j) { return (char) (i + 1) == j; }
f(0x1234, 0x35) returned 0.

This bug caused zlib/uncompress return Z_DATA_ERROR on correct input.
Merge pull request #133 from pfusik/fix-char-cast

Fix casting an r-value to char.