On Mon, Aug 27, 2007 at 09:00:42AM -0700, Paul Cochrane wrote: > In looking through some of the warnings that Coverity Prevent has > thrown up one common thing has come up which I'd like some advice > about. We are getting "leaked storage" errors often associated with > variables declared as SymReg[1]. For example, in > compilers/imcc/pbc.c, at line 1463, the variable 'r' is assigned and > then goes out of scope a few lines afterwards. This Coverity picks up > as being leaked storage. However, if I put C<mem_sys_free(r);> at the > end of the relevant block, C<make test> fails. There are other > instances as well compilers/imcc/imcparser.c:2964 (i.e. > compilers/imcc/imcc.y:598) and compilers/imcc/imcparser.c:675, > compilers/imcc/imcparser.c659 (this time with the variable 'r3').
There are definitely some memory leaks here. I've seen these in Valgrind reports for a while. My best explanation is that we stick these new pointers in memory somewhere, but don't free them appropriately. I haven't been able to perform sufficient lifetime analysis to track down where they go and where to free them, yet. Patches welcome. -- c