[rtems commit] semopen.c: Address set but unused variable warning

Gedare Bloom gedare at rtems.org
Mon Sep 23 13:47:17 UTC 2013


Fix the prototype issues :) Either make the functions static or figure
out where the function prototype belongs in some header file.

-Gedare

On Mon, Sep 23, 2013 at 9:37 AM, Joel Sherrill
<Joel.Sherrill at oarcorp.com> wrote:
> If you see any other patches which could use a better approach just ping me. I will try to fix in the plane.
>
> Gedare Bloom <gedare at rtems.org> wrote:
>
>
> You can't always win.
>
> On Mon, Sep 23, 2013 at 9:15 AM, Joel Sherrill
> <Joel.Sherrill at oarcorp.com> wrote:
>> You get a statement with no effect warning.
>>
>> Joel Sherrill <Joel.Sherrill at oarcorp.com> wrote:
>>
>>
>> Does that work or generate an warning about statement with no effect?
>>
>> Gedare Bloom <gedare at rtems.org> wrote:
>>
>>
>> On Sun, Sep 22, 2013 at 10:45 AM, Joel Sherrill
>> <joel.sherrill at oarcorp.com> wrote:
>>> There is precedence for using the compiler attributes
>>> so I just added that and switched.
>>>
>> I think it might be better to avoid compiler attributes when there is
>> a language-level alternative that is compiler-agnostic. In this case,
>> the use of:
>> (void) var;
>> seems fine to me.
>>
>>> Thanks for the feedback.
>>>
>>> If we have a print format string to use for mode_t and
>>> wchar_t, a few more cases would be fixed.
>>>
>>> On 9/22/2013 7:32 AM, Pavel Pisa wrote:
>>>> 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
>>>> _______________________________________________
>>>> rtems-devel mailing list
>>>> rtems-devel at rtems.org
>>>> http://www.rtems.org/mailman/listinfo/rtems-devel
>>>>
>>>
>>>
>>>
>>> --
>>> Joel Sherrill, Ph.D.             Director of Research & Development
>>> joel.sherrill at OARcorp.com        On-Line Applications Research
>>> Ask me about RTEMS: a free RTOS  Huntsville AL 35805
>>> Support Available                (256) 722-9985
>>> _______________________________________________
>>> rtems-devel mailing list
>>> rtems-devel at rtems.org
>>> http://www.rtems.org/mailman/listinfo/rtems-devel
>>
>> _______________________________________________
>> rtems-devel mailing list
>> rtems-devel at rtems.org
>> http://www.rtems.org/mailman/listinfo/rtems-devel



More information about the devel mailing list