++large;
atomic_increment (&large);
realloc (void *old, size_t len){  struct header *result = NULL;  struct header *real;  size_t old_len;  /* Determine real implementation if not already happened.  */  if (__builtin_expect (initialized <= 0, 0))    {      if (initialized == -1)	return NULL;      me ();    }  /* If this is not the correct program just use the normal function.  */  if (not_me)    return (*reallocp) (old, len);  if (old == NULL)    {      /* This is really a `malloc' call.  */      real = NULL;      old_len = 0;    }  else    {      real = ((struct header *) old) - 1;      if (real->magic != MAGIC)	/* This is no memory allocated here.  */	return (*reallocp) (old, len);      old_len = real->length;    }  /* Keep track of number of calls.  */  ++calls[idx_realloc];  if (len > old_len)    {      /* Keep track of total memory consumption for `realloc'.  */      total[idx_realloc] += len - old_len;      /* Keep track of total memory requirement.  */      grand_total += len - old_len;    }  /* Remember the size of the request.  */  if (len < 65536)    ++histogram[len / 16];  else    ++large;  /* Total number of calls of any of the functions.  */  ++calls_total;  /* Do the real work.  */  result = (struct header *) (*reallocp) (real, len + sizeof (struct header));  if (result == NULL)    {      ++failed[idx_realloc];      return NULL;    }  /* Record whether the reduction/increase happened in place.  */  if (real == result)    ++inplace;  /* Was the buffer increased?  */  if (old_len > len)    ++decreasing;  /* Update the allocation data and write out the records if necessary.  */  update_data (result, len, old_len);  /* Return the pointer to the user buffer.  */  return (void *) (result + 1);}