fix aliasing-based undefined behavior in mbsrtowcs
authorRich Felker <dalias@aerifal.cx>
Sun, 13 Oct 2019 21:21:36 +0000 (17:21 -0400)
committerRich Felker <dalias@aerifal.cx>
Sun, 13 Oct 2019 21:21:36 +0000 (17:21 -0400)
commit716745e00e304a650a8eef57c15fbd326168096e
tree97d03a73a95aea07aad13e79dda469ddaca4dd73
parentdb3cc9a319c788cf5241ea68d3fa86b43f35733e
fix aliasing-based undefined behavior in mbsrtowcs

mbsrtowcs contains "vectorized" loops to quickly step over bytes
without the high bit set; these have undefined behavior by virtue of
aliasing uint32_t over top of char data for the accesses.

commit 4d0a82170a25464c39522d7190b9fe302045ddb2 fixed the
corresponding usage in string functions by using the may_alias
attribute conditional on __GNUC__ and disabled the vectorized code in
its absence. do the same for mbsrtowcs.
src/multibyte/mbsrtowcs.c