>As an aside is the correct fix: > > (signed char)tty->a_member_of_type_char == -1 This is not a desirable fix, because it assumes that one has access to an ansi compiler. Actually, it specifically assumes you have GCC. In ANSI C, a casted lvalue is not required to be a lvalue, and with some compilers it is not.