blob: 39e8fdab6f26330a24c46e234d891eb07a5f7e05 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#include <mcheck.h>
#include <obstack.h>
#include <stdio.h>
#include <stdlib.h>
int
main (void)
{
struct obstack ob;
int n;
mcheck_pedantic (NULL);
#define obstack_chunk_alloc malloc
#define obstack_chunk_free free
obstack_init (&ob);
for (n = 0; n < 40000; ++n)
{
mcheck_check_all ();
obstack_printf (&ob, "%.*s%05d", 1 + n % 7, "foobarbaz", n);
if (n % 777 == 0)
obstack_finish (&ob);
}
/* Another loop where we finish all objects, each of size 1. This will
manage to call `obstack_print' with all possible positions inside
an obstack chunk. */
for (n = 0; n < 40000; ++n)
{
mcheck_check_all ();
obstack_printf (&ob, "%c", 'a' + n % 26);
obstack_finish (&ob);
}
/* And a final check. */
mcheck_check_all ();
return 0;
}
|