https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107863
--- Comment #10 from Hongtao.liu <crazylht at gmail dot com> --- I notice there's TARGET_PROMOTE_PROTOTYPES which can prevent unsigend char 255 be extended to int 255 which is a more perfect solution to this problem. But we can only get fntype in this hook, ideally we should check fndecl to make sure it's target specific builtins since we don't want to prevent promotion for args in other normal functions.