[rtems commit] semopen.c: Address set but unused variable warning
Pavel Pisa
ppisa4lists at pikron.com
Sun Sep 22 12:32:21 UTC 2013
Hello Ralf and others,
On Sunday 22 of September 2013 05:01:49 Ralf Corsepius wrote:
> > diff --git a/cpukit/posix/src/semopen.c b/cpukit/posix/src/semopen.c
> > index b863080..e61fad0 100644
> > --- a/cpukit/posix/src/semopen.c
> > +++ b/cpukit/posix/src/semopen.c
> > @@ -43,6 +43,14 @@
> > * parameters must be present.
> > */
> >
> > +/*
> > + * mode is set but never used. GCC gives a warning for this
> > + * and we need to tell GCC not to complain. But we have to
> > + * have it because we have to work through the variable
> > + * arguments to get to attr.
> > + */
> > +#pragma GCC diagnostic push
> > +#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
> > sem_t *sem_open(
> > const char *name,
> > int oflag,
> > @@ -137,3 +145,4 @@ return_id:
> > return (sem_t *)&the_semaphore->Object.id;
> > #endif
> > }
> > +#pragma GCC diagnostic pop
>
> Why this brutal and probably non-portable way to suppress warnings?
>
> Why doesn't __attribute__((unused)) or similar suffice?
I would prefer to see something like RTEMS_ATTR_UNUSED to support
multiple compilers. You can look at my collection of these in
uLUt definitions file
http://sourceforge.net/p/ulan/ulut/ci/master/tree/ulut/ul_utdefs.h
I declare file contents (by this e-mail) as free for public
domain use (uLUt as whole is is GPL/LGPL/MPL RTEMS compatible too).
As for the actual __attribute__((unused)) there is even portable
solution which does not depend on GCC extension.
{
int my_unused_var;
(void) my_unused_var;
}
This solution should be accepted by all compilers and is suggested
by some people as better option.
Best wishes,
Pavel
More information about the devel
mailing list