Re: Sparse warning: bitmap.h: bad constant expression

From: Mikael Pettersson
Date: Tue Sep 02 2003 - 05:25:13 EST


=?iso-8859-1?Q?J=F6rn?= Engel writes:
> On Mon, 1 September 2003 18:57:02 -0700, Dave Olien wrote:
> >
> > The problem seems to be that sparse currently will only accept array
> > declarations with a size that can be evaluated at compile time to
> > a fixed value. So an array declaration of the form:
> >
> > int asize;
> > int data[asize];
> >
> > will fail. sparse needs to be modified to recognize this type of
> > declaration with a variable array size. That'll take a few hours of
> > someone's time to fix.
>
> Not quite true. The above is an implicit call to alloca and should
> not exist in the kernel. No need to hack support into sparse.

If data is a local variable then this is perfectly valid example of a
C99 variable-length array (VLA). This works at least with gcc-2.95.3
and newer, and gcc handles it by itself w/o calling alloca().

Of course, VLAs should be bounded in size to avoid overflowing the
kernel stack, but that doesn't make them illegal per se.

/Mikael
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/