about summary refs log tree commit diff
path: root/src/stdio/fwrite.c
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2017-04-22 17:48:37 -0400
committerRich Felker <dalias@aerifal.cx>2017-04-22 17:48:37 -0400
commit58e2396a9aa23c132faf4198ca4d779c84955b38 (patch)
treec44110554d20ffaefe7a286aac5842999fd29d81 /src/stdio/fwrite.c
parente1232f5b5185e8f337806841018369407e32e77d (diff)
downloadmusl-58e2396a9aa23c132faf4198ca4d779c84955b38.tar.gz
musl-58e2396a9aa23c132faf4198ca4d779c84955b38.tar.xz
musl-58e2396a9aa23c132faf4198ca4d779c84955b38.zip
remove va_arg hacks in printf core with undefined behavior
the code being removed was written to optimize for size assuming the
compiler cannot collapse code paths for different types with the same
underlying representation. modern compilers sometimes succeed in
making this optimization themselves, but either way it's a small size
difference and not worth the source-level complexity or the UB
involved in this hack.

some incorrect use of va_arg still remains, particularly use of void *
where the actual argument has a different pointer type. fixing this
requires some actual code additions, rather than just removing cruft,
so I'm leaving it to be done later as a separate commit.
Diffstat (limited to 'src/stdio/fwrite.c')
0 files changed, 0 insertions, 0 deletions