mbstate_t *state, int flags, void *data,
ucs4_internal_loop (const unsigned char **inptrp, const unsigned char *inend,		    unsigned char **outptrp, unsigned char *outend,		    mbstate_t *state, int flags, void *data,		    size_t *irreversible){  const unsigned char *inptr = *inptrp;  unsigned char *outptr = *outptrp;  size_t n_convert = MIN (inend - inptr, outend - outptr) / 4;  int result;  size_t cnt;  for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)    {      uint32_t inval;#if __BYTE_ORDER == __LITTLE_ENDIAN      inval = bswap_32 (*(uint32_t *) inptr);#else      inval = *(uint32_t *) inptr;#endif      if (__builtin_expect (inval, 0) > 0x7fffffff)	{	  if (flags & __GCONV_IGNORE_ERRORS)	    {	      /* Just ignore this character.  */	      ++*irreversible;	      continue;	    }	  *inptrp = inptr;	  *outptrp = outptr;	  return __GCONV_ILLEGAL_INPUT;	}      *((uint32_t *) outptr)++ = inval;    }  *inptrp = inptr;  *outptrp = outptr;  /* Determine the status.  */  if (*inptrp == inend)    result = __GCONV_EMPTY_INPUT;  else if (*outptrp == outend)    result = __GCONV_FULL_OUTPUT;  else    result = __GCONV_INCOMPLETE_INPUT;  return result;}