[FFmpeg-devel] Array bug in aes.c
Rich Felker
dalias
Fri Jan 18 04:34:28 CET 2008
On Fri, Jan 18, 2008 at 03:21:16AM +0100, Michael Niedermayer wrote:
> On Thu, Jan 17, 2008 at 02:16:19PM -0800, Mike Melanson wrote:
> > This comes from my blog's comments:
> > http://multimedia.cx/eggs/up-to-date-gcc/#comment-92872
> >
> > ================
> > Well, at least one of those warnings is an actual bug:
> > /tmp/fate/source/libavutil/aes.c:133: warning: array subscript is above
> > array bounds
> >
> > In aes.c:133:
> > if(!enc_multbl[0][sizeof(enc_multbl)/sizeof(enc_multbl[0][0])-1]){
> >
>
> > I take it this was meant:
> > if(!enc_multbl[0][sizeof(enc_multbl[0])/sizeof(enc_multbl[0][0])-1]){
>
> no, this would then be an actual bug
>
> how does one disable these warnings?
The problem is that gcc is wrongly enforcing array subscript bounds
for each dimension of the array rather than for the array as a whole.
Arguably it would be better anyway (more expressive) to use:
if(!enc_multbl[sizeof(enc_multbl)/sizeof(enc_multbl[0])-1][sizeof(enc_multbl[0])/sizeof(enc_multbl[0][0])-1]){
but both are ugly to read. Using a preprocessor macro for the max
values in each dimension would make the code a lot more legible, IMO.
Rich
More information about the ffmpeg-devel
mailing list