Fix iconv build with GCC mainline
commitc8126360dfa98024cc40bce915e126309993cdf9
authorJoseph Myers <joseph@codesourcery.com>
Mon, 23 Aug 2021 16:18:42 +0000 (23 16:18 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Mon, 23 Aug 2021 16:18:42 +0000 (23 16:18 +0000)
tree73efb7f5203827c4367668f8b67d3957311d285e
parenta4f5a3103fc3e7974dbe35b411cba9f670807cde
Fix iconv build with GCC mainline

Current GCC mainline produces -Wstringop-overflow errors building some
iconv converters, as discussed at
<https://gcc.gnu.org/pipermail/gcc/2021-July/236943.html>.  Add an
__builtin_unreachable call as suggested so that GCC can see the case
that would involve a buffer overflow is unreachable; because the
unreachability depends on valid conversion state being passed into the
function from previous conversion steps, it's not something the
compiler can reasonably deduce on its own.

Tested with build-many-glibcs.py that, together with
<https://sourceware.org/pipermail/libc-alpha/2021-August/130244.html>,
it restores the glibc build for powerpc-linux-gnu.
iconv/loop.c