write-only variables in src/sys/ - possible bugs
Max Laier
max at love2party.net
Mon Feb 2 12:47:32 PST 2009
On Monday 02 February 2009 20:42:32 Christoph Mallon wrote:
> Hi,
>
> I compiled a list of all local variables in src/sys/ (r188000), which
> are only written to, but never read. This is more than the GCC warning,
> which only complains about variables, which are only declared (and maybe
> initialised) and not used otherwise. In contrast this list contains
> variables with the following usage pattern:
>
> int w = 42; // GCC warns about this ...
> int x; // ... but not this
> x = 23;
> x++;
> return 0;
>
> The list contains about 700 entries. About three dozen concern variables
> named 'error'. Here's one *example* from the list:
>
> sys/dev/kbdmux/kbdmux.c:1304
>
> In the function kbdmux_modevent() the variable 'error' is assigned
> values eight times, but at the end of the function there is just a
> return 0; and the variable is never read. Probably the value should be
> returned.
>
> You can find the list here:
> http://tron.homeunix.org/unread_variables.log
>
> The list was generated by cparser, a C99 compiler, which uses libFIRM
> for optimisation and code generation (lang/cparser in the ports).
>
>
> A small disclaimer: There might be some false positives due to errors
> which are caused by HEAD sources in combination with my installed 7.x
> headers plus a hacked up build process. Also some warnings are the
> result from variables, which are only used in debug macros, so td =
> curthread; KASSERT(td != NULL); provokes a warning (I consider this bad
> style). Nonetheless the number of false positives should be low. If
> there is interest, then I can compile a "proper" list.
Are you interested in false positive reports? If so, I think
sys/contrib/pf/net/pf.c:2931 is one. Seems cparser is confused by the union
in struct assignment, maybe? Or it suffers from the similar issue with
switch/case-statements as gcc. saddr is read from in all but the default
case.
--
/"\ Best regards, | mlaier at freebsd.org
\ / Max Laier | ICQ #67774661
X http://pf4freebsd.love2party.net/ | mlaier at EFnet
/ \ ASCII Ribbon Campaign | Against HTML Mail and News
More information about the freebsd-current
mailing list