/* { dg-options "-fno-strict-overflow" } */
typedef unsigned char __uint8_t;
typedef __uint8_t uint8_t;
typedef uint8_t u8_t;
typedef struct ip_addr ip_addr_t;
char *
ipaddr_ntoa_r (const ip_addr_t * addr, char *buf, int buflen)
{
  char inv[3];
  char *rp;
  u8_t *ap;
  u8_t n;
  u8_t i;
  int len = 0;
  for (n = 0; n < 4; n++)
    {
      while (*ap);
      while (i--)
	{
	  if (len++ >= buflen)
	    return ((void *) 0);
	  *rp++ = inv[i];
	} ap++;
    }
}