Andrew Morton
2022-Apr-14 20:30 UTC
[PATCH 1/3] sched/headers: Fix compilation error with GCC 12
On Thu, 14 Apr 2022 17:21:01 +0200 Peter Zijlstra <peterz at infradead.org> wrote:> > +/* The + 1 below places the pointers within the range of their array */ > > #define for_class_range(class, _from, _to) \ > > - for (class = (_from); class != (_to); class--) > > + for (class = (_from); class + 1 != (_to) + 1; class--) > > Urgh, so now we get less readable code, just because GCC is being > stupid? > > What's wrong with negative array indexes? memory is memory, stuff works.What's more, C is C. Glorified assembly language in which people do odd stuff. But this is presumably a released gcc version and we need to do something. And presumably, we need to do a backportable something, so people can compile older kernels with gcc-12. Is it possible to suppress just this warning with a gcc option? And if so, are we confident that this warning will never be useful in other places in the kernel? If no||no then we'll need to add workarounds such as these?
Peter Zijlstra
2022-Apr-17 15:52 UTC
[PATCH 1/3] sched/headers: Fix compilation error with GCC 12
On Thu, Apr 14, 2022 at 01:30:50PM -0700, Andrew Morton wrote:> On Thu, 14 Apr 2022 17:21:01 +0200 Peter Zijlstra <peterz at infradead.org> wrote: > > > > +/* The + 1 below places the pointers within the range of their array */ > > > #define for_class_range(class, _from, _to) \ > > > - for (class = (_from); class != (_to); class--) > > > + for (class = (_from); class + 1 != (_to) + 1; class--) > > > > Urgh, so now we get less readable code, just because GCC is being > > stupid? > > > > What's wrong with negative array indexes? memory is memory, stuff works. > > What's more, C is C. Glorified assembly language in which people do odd > stuff. > > But this is presumably a released gcc version and we need to do > something. And presumably, we need to do a backportable something, so > people can compile older kernels with gcc-12. > > Is it possible to suppress just this warning with a gcc option? And if > so, are we confident that this warning will never be useful in other > places in the kernel? > > If no||no then we'll need to add workarounds such as these?-Wno-array-bounds Is the obvious fix-all cure. The thing is, I want to hear if this new warning has any actual use or is just crack induced madness like many of the warnings we turn off.