This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Warning for C Parameter Name Mismatch


On 3/8/19, David Brown <david.brown@hesbynett.no> wrote:
> On 09/03/2019 00:06, Joseph Myers wrote:
>> On Fri, 8 Mar 2019, Joel Sherrill wrote:
>>
>>> Can gcc report when the parameter name in a C prototype
>>> does not match that used in the implementation?
>>>
>>> int f(int x);
>>>
>>> int f(int y) {...}
>>
>> I think this would be normal and expected - an installed header would use
>> a reserved-namespace name for the parameter while the implementation uses
>> a non-reserved name that's more convenient for use within the
>> implementation.  (Thus anything like this would only be useful if it can
>> know that it's e.g. OK to have __y and y as the names, and some code no
>> doubt uses other such conventions relating the two names.)
>>
>
> I can appreciate that a warning like this is not for everyone.  But /I/
> would like and use such a warning for my own code.
>
> The kind of headers which would specifically use reserved or otherwise
> unusual parameter names are things like library headers - and you will
> not be compiling the implementation source code, and thus won't get a
> mismatch.  A warning like this would be used with your own header/source
> combinations - where your implementation is #include'ing the unit's
> header as a way of checking that you've got the function name and
> parameter types correct.  This warning would add parameter names to the
> things that are checked.
>
>

How would it handle the case where the parameter name is missing
entirely from the prototype? I see a lot of header files with their
prototypes written like that.

e.g.

int f(int);

int f(int y) {...}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]