> -----Original Message----- > From: yaffs-bounces@lists.aleph1.co.uk [mailto:yaffs- > bounces@lists.aleph1.co.uk] On Behalf Of Charles Manning > Sent: Wednesday, 16 December 2009 2:27 PM > To: yaffs@lists.aleph1.co.uk > Subject: [Yaffs] Static code analysis hints > > Hello All > > In the interests of continued yaffs improvement I'm looking into static > code analysis tools. > > I know yaffs has some poor signed/unsigned mixing that has caused issues > in the past and is (hopefully) currently benign. I would, however like > to improve things by running the code through checkers. > If signed/unsigned mixing is a worry, what about the GCC flags "-Wall -W" (I'm thinking of "-Wsign-compare" in particular)? > I looked at splint, but it seems to get quite upset about legal constructs > such as the doubly linked list code. I am a bit concerned that once all > the noisy flags are turned off the test is not really doing anything. > You can turn these flags on/off by using decorated comments, but that makes > the code pretty ugly. > > Any hints appreciated. > Yaffs, as kernel code, does not have the same set of constraints as an average userland program - for instance, you assume -fno-strict-aliasing, and I'd think every decent static checker would complain about the code that relies on that (and it's bitten me, grumble grumble) - but you're not realistically worried about that. What about the Linux kernel checker, sparse? Granted, the address-space and locking-order checks won't be all that great for Yaffs, but will the rest help? J