diff options
author | Ben Cheng <bccheng@google.com> | 2013-03-28 11:14:20 -0700 |
---|---|---|
committer | Ben Cheng <bccheng@google.com> | 2013-03-28 12:40:33 -0700 |
commit | af0c51ac87ab2a87caa03fa108f0d164987a2764 (patch) | |
tree | 4b8b470f7c5b69642fdab8d0aa1fbc148d02196b /gcc-4.8/libmudflap/testsuite/libmudflap.c/heap-scalestress.c | |
parent | d87cae247d39ebf4f5a6bf25c932a14d2fdb9384 (diff) | |
download | toolchain_gcc-af0c51ac87ab2a87caa03fa108f0d164987a2764.tar.gz toolchain_gcc-af0c51ac87ab2a87caa03fa108f0d164987a2764.tar.bz2 toolchain_gcc-af0c51ac87ab2a87caa03fa108f0d164987a2764.zip |
[GCC 4.8] Initial check-in of GCC 4.8.0
Change-Id: I0719d8a6d0f69b367a6ab6f10eb75622dbf12771
Diffstat (limited to 'gcc-4.8/libmudflap/testsuite/libmudflap.c/heap-scalestress.c')
-rw-r--r-- | gcc-4.8/libmudflap/testsuite/libmudflap.c/heap-scalestress.c | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/gcc-4.8/libmudflap/testsuite/libmudflap.c/heap-scalestress.c b/gcc-4.8/libmudflap/testsuite/libmudflap.c/heap-scalestress.c new file mode 100644 index 000000000..6e7813ba2 --- /dev/null +++ b/gcc-4.8/libmudflap/testsuite/libmudflap.c/heap-scalestress.c @@ -0,0 +1,79 @@ +/* zz30 + * + * demonstrate a splay-tree depth problem +*/ + +#include <stdlib.h> +#include <stdio.h> +#include <unistd.h> + +#ifndef SCALE +#define SCALE 10000 +#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" } */ |