Index: memcheck/mc_main.c =================================================================== --- memcheck/mc_main.c (revision 10880) +++ memcheck/mc_main.c (working copy) @@ -4658,6 +4658,7 @@ LeakCheckMode MC_(clo_leak_check) = LC_Summary; VgRes MC_(clo_leak_resolution) = Vg_HighRes; Bool MC_(clo_show_reachable) = False; +Bool MC_(clo_show_possible) = True; Bool MC_(clo_workaround_gcc296_bugs) = False; Int MC_(clo_malloc_fill) = -1; Int MC_(clo_free_fill) = -1; @@ -4711,6 +4712,7 @@ if VG_BOOL_CLO(arg, "--partial-loads-ok", MC_(clo_partial_loads_ok)) {} else if VG_BOOL_CLO(arg, "--show-reachable", MC_(clo_show_reachable)) {} + else if VG_BOOL_CLO(arg, "--show-possible", MC_(clo_show_possible)) {} else if VG_BOOL_CLO(arg, "--workaround-gcc296-bugs", MC_(clo_workaround_gcc296_bugs)) {} @@ -4776,6 +4778,7 @@ " --leak-check=no|summary|full search for memory leaks at exit? [summary]\n" " --leak-resolution=low|med|high differentiation of leak stack traces [high]\n" " --show-reachable=no|yes show reachable blocks in leak check? [no]\n" +" --show-possible=no|yes show possibly lost blocks in leak check? [yes]\n" " --undef-value-errors=no|yes check for undefined value errors [yes]\n" " --track-origins=no|yes show origins of undefined values? [no]\n" " --partial-loads-ok=no|yes too hard to explain here; see manual [no]\n" Index: memcheck/mc_include.h =================================================================== --- memcheck/mc_include.h (revision 10880) +++ memcheck/mc_include.h (working copy) @@ -395,6 +395,9 @@ /* In leak check, show reachable-but-not-freed blocks? default: NO */ extern Bool MC_(clo_show_reachable); +/* In leak check, show possibly-lost blocks? default: YES */ +extern Bool MC_(clo_show_possible); + /* Assume accesses immediately below %esp are due to gcc-2.96 bugs. * default: NO */ extern Bool MC_(clo_workaround_gcc296_bugs); Index: memcheck/mc_leakcheck.c =================================================================== --- memcheck/mc_leakcheck.c (revision 10880) +++ memcheck/mc_leakcheck.c (working copy) @@ -845,7 +845,8 @@ print_record = is_full_check && ( MC_(clo_show_reachable) || Unreached == lr->key.state || - Possible == lr->key.state ); + ( MC_(clo_show_possible) && + Possible == lr->key.state ) ); // We don't count a leaks as errors with --leak-check=summary. // Otherwise you can get high error counts with few or no error // messages, which can be confusing. Also, you could argue that