URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Subversion Repositories openrisc_2011-10-31
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [libmudflap/] [testsuite/] [libmudflap.c/] [heap-scalestress.c] - Rev 635
Go to most recent revision | Compare with Previous | Blame | View Log
/* zz30 * * demonstrate a splay-tree depth problem */ #include <stdlib.h> #include <stdio.h> #include <unistd.h> #ifndef SCALE #define SCALE 100000 #endif struct list { struct list *next; }; int main () { struct list *head = NULL; struct list *tail = NULL; struct list *p; long n; int direction; for (direction = 0; direction < 2; direction++) { fprintf (stdout, "allocating\n"); fflush (stdout); for (n = 0; n < SCALE; ++n) { p = malloc (sizeof *p); if (NULL == p) { fprintf (stdout, "malloc failed\n"); break; } if (direction == 0) { /* add at tail */ p->next = NULL; if (NULL != tail) tail->next = p; else head = p; tail = p; } else { /* add at head */ p->next = head; if (NULL == tail) tail = p; head = p; } } fprintf (stdout, "freeing\n"); fflush (stdout); while (NULL != head) { p = head; head = head->next; free (p); } } fprintf (stdout, "done\n"); fflush (stdout); return (0); } /* { dg-output "allocating.*freeing.*allocating.*freeing.*done" } */
Go to most recent revision | Compare with Previous | Blame | View Log