When mode_t is char- or short-like, it will be promoted to the pure
int when it is passed as the variable argument [1], so we should pass
'int' to the va_arg.
I had also eliminated fflush for the stream opened read-only, since
it will always fail and there is no need to flush read-only streams.
[1] http://c-faq.com/~scs/cclass/int/sx11c.html
Feature safe: yes
PR: 152304