/* This test demonstrated an obscure bug in malloclists handling caused by
   multiple blocks hashing to the same list and one being overwritten at
   realloc time due to bad ordering of the things happening.  Now runs
   without error. */

#include <stdlib.h>
#include <stdio.h>

int main ( void )
{
  char* p;
  int i;
  for (i = 0; i < 10000; i++) {
    p = malloc(10 + 10 * (i % 100));
    p = realloc(p, 500);
    p = realloc(p, 600);
    free(p);
  }
  return 0;
}