blob: 2cf1060b3d796f10dc87f50a9ef308314b27eb91 [file] [log] [blame]
njn47363ab2003-04-21 13:24:40 +00001#include <stdio.h>
2#include <stdlib.h>
3#include "../memcheck.h"
4
5int main(void)
6{
7 int x;
8 int y = 0;
9 int* reachable;
10 int* dubious;
11 int* leaked;
12 int n_reachable = 0;
13 int n_dubious = 0;
14 int n_leaked = 0;
15 int n_suppressed = 0;
njn47363ab2003-04-21 13:24:40 +000016
17 /* Error counting */
18 printf("errors: %d\n", VALGRIND_COUNT_ERRORS);
19
20 if (x == 0) {
21 y++;
22 } else {
23 y--;
24 }
25
26 printf("errors: %d\n", VALGRIND_COUNT_ERRORS);
27
28 /* Leak checking */
29 VALGRIND_DO_LEAK_CHECK;
30 VALGRIND_COUNT_LEAKS(n_leaked, n_dubious, n_reachable, n_suppressed);
sewardj0b666d82003-07-08 00:13:51 +000031 if (n_reachable == 24) n_reachable = 0; /* handle glibc differences */
njn47363ab2003-04-21 13:24:40 +000032 printf("leaks: %dB, %dB, %dB, %dB\n",
33 n_leaked, n_dubious, n_reachable, n_suppressed);
34
35 leaked = malloc(77);
36 leaked = 0;
37
38 dubious = malloc(88);
39 dubious += 10;
40
41 reachable = malloc(99);
42
43 VALGRIND_DO_LEAK_CHECK;
njne8b5c052003-07-22 22:03:58 +000044 VALGRIND_DO_LEAK_CHECK;
njn47363ab2003-04-21 13:24:40 +000045 VALGRIND_COUNT_LEAKS(n_leaked, n_dubious, n_reachable, n_suppressed);
sewardj0b666d82003-07-08 00:13:51 +000046 if (n_reachable == 147) n_reachable = 99; /* handle glibc differences */
njn47363ab2003-04-21 13:24:40 +000047 printf("leaks: %dB, %dB, %dB, %dB\n",
48 n_leaked, n_dubious, n_reachable, n_suppressed);
49
50 printf("errors: %d\n", VALGRIND_COUNT_ERRORS);
51
52 return 0;
53}