On Fri, 17 Oct 2025 at 22:43, Jonathan Wakely <[email protected]> wrote:
>
> On Fri, 17 Oct 2025 at 16:44, Joel Sherrill <[email protected]> wrote:
> >
> > I thought meaningless was sufficient but others in the discussion felt it
> > had value and wanted more. But the return value is scalar so it is const
> > implicitly. You can't modify it. Only assign or compare.
> >
> > I did ask someone from a company with a static analyzer and there is a
> > MISRA rule
> >
> > "It's extra chatter in our code. Which if it was not a MISRA violation, it
> > is certainly against the spirit of the guidelines which to me say "be
> > explicitly clear on everything and do not use conventions that obfuscate
> > the truth."
> >
> > The applicable rule is:
> > Rule 17.13 A function type shall not be type qualified (Required)
> >  The type qualifiers are const, volatile, restrict or _Atomic"
>
> Does the rule really say "function type"? Because that's not the same
> thing as a function's *return type*.

FWIW MISRA C++ 10.1.2 says it is inappropriate to declare a function's
return type as volatile.

>
>
> >
> > Now I have more to defend the warning with.
> >
> > Thanks.
> >
> >
> >
> > On Fri, Oct 17, 2025, 10:36 AM Jason Merrill <[email protected]> wrote:
> >
> > > Is there a reason not to remove the meaningless qualifiers?  Generally the
> > > rationale for warning about something that has no effect is that 
> > > presumably
> > > when you wrote it you expected it to do something.
> > >
> > > On Fri, Oct 17, 2025 at 5:50 PM Joel Sherrill <[email protected]> wrote:
> > >
> > >> Hi
> > >>
> > >> I have been trying to eliminate all warnings at -Wextra for RTEMS before
> > >> we
> > >> make our next major release. There were a handful of cases where
> > >> -Wignored-qualifiers. I understand it is meaningless to have qualifiers 
> > >> on
> > >> scalar return values, but I was hoping someone here might have more to 
> > >> add
> > >> for rationale than "has no effect".
> > >>
> > >> Is there any coding standard (MISRA, JPL, etc.) where this is explicitly
> > >> forbidden? Or mentioned?
> > >>
> > >> -Wignored-qualifiers (C and C++ only)
> > >> Warn if the return type of a function has a type qualifier such as const.
> > >> For ISO C such a type qualifier has no effect, since the value returned 
> > >> by
> > >> a function is not an lvalue. For C++, the warning is only emitted for
> > >> scalar types or void. ISO C prohibits qualified void return types on
> > >> function definitions, so such return types always receive a warning even
> > >> without this option.
> > >>
> > >> I have attached a simple C function which generates the warning if that
> > >> helps anyone.
> > >>
> > >> Thanks.
> > >>
> > >> --Joel Sherrill
> > >> RTEMS
> > >>
> > >

Reply via email to