This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
free() and implicit conversion to a function pointer (was: Use of initialized variable in strtod.c)
- From: Jeffrey Walton <noloader at gmail dot com>
- To: Joel Sherrill <joel dot sherrill at oarcorp dot com>
- Cc: "newlib at sourceware dot org" <newlib at sourceware dot org>
- Date: Wed, 15 Mar 2017 18:48:12 -0400
- Subject: free() and implicit conversion to a function pointer (was: Use of initialized variable in strtod.c)
- Authentication-results: sourceware.org; auth=none
- Reply-to: noloader at gmail dot com
> But this in __call_atexit.c is definitely correct. It is
> treating free() as a weak symbol and the only way to
> silence Coverity is to add an annotation.
>
> 136 /* Don't dynamically free the atexit array if free is not
> 137 available. */
>
> CID 175323 (#1 of 1): Function address comparison (BAD_COMPARE)
> func_conv: This implicit conversion to a function pointer is suspicious:
> free.
> Did you intend to call free?
> 138 if (!free)
> 139 break;
Well, I have not encountered that one (yet). Since Coverity is
complaining about an implicit conversion, maybe the following will
help to avoid the implicit part (and sidestep the finding):
if (free != NULL)
break;
Or perhaps:
if ((void*)free != NULL)
break;
If that works to clear the finding, then it is one of those items I
write-off as "working and playing well with the tools".
Jeff