if (__builtin_expect (n == (size_t) -1, 0))
/* Something wrong. Fall back to single byte matching. */
goto try_singlebyte;
wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
assert (mbsinit (&ps));
(void) mbsrtowcs (wstring, &string, n + 1, &ps);
}