if (__gconv_builtin (inbuf == NULL || *inbuf == NULL), 0)
if (__builtin_expect (inbuf == NULL || *inbuf == NULL, 0))
iconv (iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf,       size_t *outbytesleft){  __gconv_t gcd = (__gconv_t) cd;  char *outstart = outbuf ? *outbuf : NULL;  size_t converted;  int result;  if (__gconv_builtin (inbuf == NULL || *inbuf == NULL), 0)    {      if (outbuf == NULL || *outbuf == NULL)	result = __gconv (gcd, NULL, NULL, NULL, NULL, &converted);      else	result = __gconv (gcd, NULL, NULL, (unsigned char **) outbuf,			  (unsigned char *) (outstart + *outbytesleft),			  &converted);    }  else    {      const char *instart = *inbuf;      result = __gconv (gcd, (const unsigned char **) inbuf,			(const unsigned char *)  (*inbuf + *inbytesleft),			(unsigned char **) outbuf,			(unsigned char *) (*outbuf + *outbytesleft),			&converted);      *inbytesleft -= *inbuf - instart;    }  if (outstart != NULL)    *outbytesleft -= *outbuf - outstart;  switch (__builtin_expect (result, __GCONV_OK))    {    case __GCONV_ILLEGAL_DESCRIPTOR:      __set_errno (EBADF);      converted = (size_t) -1L;      break;    case __GCONV_ILLEGAL_INPUT:      __set_errno (EILSEQ);      converted = (size_t) -1L;      break;    case __GCONV_FULL_OUTPUT:      __set_errno (E2BIG);      converted = (size_t) -1L;      break;    case __GCONV_INCOMPLETE_INPUT:      __set_errno (EINVAL);      converted = (size_t) -1L;      break;    case __GCONV_EMPTY_INPUT:    case __GCONV_OK:      /* Nothing.  */      break;    default:      assert (!"Nothing like this should happen");    }  return converted;}