https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103950

--- Comment #10 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Note the reason why the standard is written this way is because in K&R C, every
function argument was promoted to int as there were no prototypes and then the
function would cast it back to char/unsigned char, etc. So this is carrying
forward backwards compatibility.

So again what GCC is doing is correct even if it seems wrong and the functions
(or macros) need to do the casting to follow the C standard and all.

Reply via email to