Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 02 Feb 2009 20:42:32 +0100
From:      Christoph Mallon <christoph.mallon@gmx.de>
To:        FreeBSD Current <freebsd-current@freebsd.org>,  FreeBSD Hackers <freebsd-hackers@freebsd.org>
Subject:   write-only variables in src/sys/ - possible bugs
Message-ID:  <49874CA8.5090605@gmx.de>

next in thread | raw e-mail | index | archive | help
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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49874CA8.5090605>