https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100152
--- Comment #29 from Iain Sandoe <iains at gcc dot gnu.org> --- what is also somewhat peculiar is that replacing the first function in the reduced test case with "extern void ___UTF_8_put(char *a, int b);" changes the code-gen for the second function.