On Wed, Mar 08, 2006 at 06:42:45PM -0500, Greg Stark wrote: > Ben Chelf <[EMAIL PROTECTED]> writes: > > > >>>#ifdef STATIC_ANALYSIS > > >>>#define ereport(elevel, rest) \ > > >>> (errstart(elevel, __FILE__, __LINE__, PG_FUNCNAME_MACRO) ? \ > > >>> (errfinish rest) : (void) 0), (elevel >= ERROR ? exit(0) : 0) > > >>>#else > > >>>/* Normal def */ > > >>>#endif > > > > As for Coverity, if the elevel that's passed to the ereport is really a > > constant, the above #ifdef should absolutely do the trick for us so we know > > to > > stop analyzing on that path...Let me know if it doesn't actually do that ;) > > If you're willing to require elevel to always be a constant then why not just > tack on the (elevel >= ERROR ? exit(0) : 0) onto the end of the regular > definition of ereport instead of having an ifdef?
Well, the only cost would be a useless call to exit() for each elog/ereport with an elevel >= ERROR. It bloats the binary a bit. Not sure whether people care enough about that. Have a nice day, -- Martijn van Oosterhout <kleptog@svana.org> http://svana.org/kleptog/ > Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a > tool for doing 5% of the work and then sitting around waiting for someone > else to do the other 95% so you can sue them.
signature.asc
Description: Digital signature