Re: [PATCH -mm] sys_semctl gcc 4.1 warning fix

From: Andrew Morton
Date: Wed May 10 2006 - 19:08:41 EST


Al Viro <viro@xxxxxxxxxxxxxxxx> wrote:
>
> On Wed, May 10, 2006 at 03:31:29PM -0700, David S. Miller wrote:
> > From: Al Viro <viro@xxxxxxxxxxxxxxxx>
> > Date: Wed, 10 May 2006 23:10:24 +0100
> >
> > > But that's the argument in favour of using diff, not shutting the
> > > bogus warnings up...
> >
> > IMHO, the tree should build with -Werror without exception.
> > Once you have that basis, new ones will not show up easily
> > and the hard part of the battle has been won.
> >
> > Yes, people will post a lot of bogus versions of warning fixes, but
> > we're already good at flaming those off already :-)
>
> Alternatively, gcc could get saner. Seriously, some very common patterns
> trigger that shit - e.g. function that returns error or 0 and stores
> value to *pointer_argument in case of success. It's a clear regression
> in 4.x and IMO should be treated as gcc bug.

Sure - it's sad and we need some workaround.

The init_self() thingy seemed reasonable to me - it shuts up the warning
and has no runtime cost. What we could perhaps do is to make

#define init_self(x) (x = x)

only if the problematic gcc versions are detected. Later, if/when gcc gets
fixed up, we use

#define init_self(x) x

Or something. Probably a more specific name than "init_self" is needed in
this case - something that indicates that it's a specific workaround for
specific gcc versions.

-
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/