1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// Bruce Lowekamp <lowekamp@sipeerior.com> reported that in a program with a
3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// reachable leak, if you do:
4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown//
5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown//   valgrind --leak-check=yes --gen-suppressions=yes --show-reachable=no -q
6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown//
7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// it gives the y/n/c suppression prompt for errors that aren't shown.  This
8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// test checks that is fixed.
9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown//
10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// [The .vgtest file was later changed to use --leak-check=all so that if a
11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// suppression is (erroneously?) generated, the test doesn't wait for the user
12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// to press 'y', because that pauses the entire regtest system.]
13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <stdlib.h>
15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownint* a;
17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownint main ( void )
19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  a = malloc(1000);  // Becomes a reachable leak.
21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  a[0] = 0;
22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  return a[0];
23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
24