(using Splint 3.0.1.6)

I know some people find gotos to be heresy, but still, I reckon
they're a good way of getting an approximation to exception handling
without the performance hit (or using C++!)

This code snippet:

  *trc = nc ; /* Line 568 */

  return TRUE ;

 FAIL:

  free( nc ) ; /* Line 574 */

  *trc = NULL ;

  return FALSE ;

gives the warning:

blah.c(574): Kept storage nc passed as only param: free (nc)
  storage is transferred to a non-temporary reference after being passed as keep 
parameter. The storage may be released or new aliases created. (Use -kepttrans to 
inhibit warning)
   blah.c(568): Storage nc becomes kept

Now there's no way line 574 can be executed in the same call as line
568, so I'd say this was a bug. What do you think?

Jon


Reply via email to