mirror of
https://git.musl-libc.org/git/musl
synced 2025-02-20 20:24:28 +03:00
optimize internal putc_unlocked macro used in putc
to check whether flush due to line buffering is needed, the int-type character argument must be truncated to unsigned char for comparison. if the original value is subsequently passed to __overflow, it must be preserved, adding to register pressure. since it doesn't matter, truncate all uses so the original value is no longer live.
This commit is contained in:
parent
a21a6092cf
commit
d8870dcf38
@ -106,7 +106,8 @@ hidden void __getopt_msg(const char *, const char *, const char *, size_t);
|
||||
|
||||
#define putc_unlocked(c, f) \
|
||||
( (((unsigned char)(c)!=(f)->lbf && (f)->wpos!=(f)->wend)) \
|
||||
? *(f)->wpos++ = (c) : __overflow((f),(c)) )
|
||||
? *(f)->wpos++ = (unsigned char)(c) \
|
||||
: __overflow((f),(unsigned char)(c)) )
|
||||
|
||||
/* Caller-allocated FILE * operations */
|
||||
hidden FILE *__fopen_rb_ca(const char *, FILE *, unsigned char *, size_t);
|
||||
|
Loading…
x
Reference in New Issue
Block a user