On Tue, Jun 26, 2007 at 05:25:06PM -0700, Linus Torvalds wrote: > > > On Wed, 27 Jun 2007, Al Viro wrote: > > > > > extern int a; > > > extern int as1[(a = 2)]; > > > > sparse simply doesn't check that. We don't have anything resembling > > support of VLA. > > Well, the above has two bugs that sparse could notice _independently_ of > variable-sized arrays: > - assignment outside of a function > - variable size array that isn't an automatic variable Right; what I'm saying is that we don't do any checks on array sizes at all, mostly since nobody is brave enough to deal with VLAs (which we'll have to do if we start doing that). > (strictly speaking, that's not even a variable size - it's a constant 2, > just with a non-constant expression - maybe you misread the "=" as an > "==") With == it would be a different bug ;-) BTW, VLA can be not just auto variable - it can be used in derivation of such (i.e. you can say int (*p)[n], just not for anything not in block or prototype scope). And $DEITY help us[1] when ({...}) comes into the game, since it allows leaking types out of the scope they'd been declared in... [1] or gcc - it gets an ICE galore in that class of testcases - To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html