On Thu, 9 Mar 2006, Bruce Momjian wrote:

Martijn van Oosterhout wrote:
-- Start of PGP signed section.
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.

We care.  :-)

Why? I don't think we are able to run 'embedded' now as it is, so its not like we're dealign with system with small disk spaces :) how much bigger would adding that exit() make the binary? Martijn, could you do a build with/without it and compare sizes?

----
Marc G. Fournier           Hub.Org Networking Services (http://www.hub.org)
Email: [EMAIL PROTECTED]           Yahoo!: yscrappy              ICQ: 7615664

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to