------- Comment #13 from jvdelisle at gcc dot gnu dot org 2009-10-21 03:04 ------- With your patch, I am not seeing the double free. But I do get this:
85078576 85078520 85078576 85078576 2 2 ==27755== ==27755== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 6 from 2) ==27755== malloc/free: in use at exit: 8 bytes in 2 blocks. ==27755== malloc/free: 18 allocs, 16 frees, 3,785 bytes allocated. ==27755== For counts of detected errors, rerun with: -v ==27755== searching for pointers to 2 not-freed blocks. ==27755== checked 89,864 bytes. ==27755== ==27755== LEAK SUMMARY: ==27755== definitely lost: 4 bytes in 1 blocks. ==27755== possibly lost: 0 bytes in 0 blocks. ==27755== still reachable: 4 bytes in 1 blocks. ==27755== suppressed: 0 bytes in 0 blocks. ==27755== Rerun with --leak-check=full to see details of leaked memory. using the original test case with print locs etc. Maybe my system is tolerant. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41478