Compiler warnings
Ethan Galstad
nagios at nagios.org
Thu Oct 18 18:30:26 CEST 2007
Andreas Ericsson wrote:
> Ahoy.
>
> I was digging around trying to fix a bunch of compiler-warnings, and
> noticed that pretty much every invocation of my_free() resulted in
> about a million warnings, such as this:
>
> ../xdata/xrddefault.c:190: warning: dereferencing type-punned
> pointer will break strict-aliasing rules
>
>
> Considering that not a single invocation of my_free() evaluates the
> return code of the function, a macro such as
>
> #define my_free(ptr) { if(ptr) { free(ptr); ptr = NULL; } }
>
> would do the trick, and also provide a slight performance improvement.
>
> Since a patch would be fairly huge, and I've kinda filled my quota
> for huge patches for today, the following sed-script will take care
> of the call-sites (requires sed 4.0.9 or later):
>
> sed -i 's/my_free[^&]*&\([^)]*\).*/my_free(\1);/' */*.c
>
Definitely a good idea. I've committed this to CVS after some manual
massaging post-sed.
Don't know why, but I get a SIGABRT if I don't comment out two my_free()
statements in xdata/xodtemplate.c in the
xodtemplate_get_inherited_string() function.
For the time being I've removed them. This will cause a small, but
one-time memory leak upon startup until the problem is fixed.
Ethan Galstad,
Nagios Developer
---
Email: nagios at nagios.org
Website: http://www.nagios.org
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
More information about the Developers
mailing list