[PATCH] D12473: [clang-tidy] Add old style function check
Piotr Dziwinski via cfe-commits
cfe-commits at lists.llvm.org
Sun Aug 30 13:53:35 PDT 2015
@Aaron: Yes, I'm aware of that. I wanted to show that my check does not
take this into account.
In C++ this code is equivalent, so I think nothing should be reported,
unless we really want to get rid of that void, but I suppose this other
check does it already.
And when it comes to C, in well-formed C code, we should never see those
two definitions of allright() and allright(void), as they are
declarations of different functions. If I try to add empty bodies {} to
define them, this example won't even compile.
So anyway, I still don't understand the problem here, unless somebody
explains it in clearer terms.
Best regards,
Piotr Dziwinski
On 2015-08-30 22:43, Aaron Ballman wrote:
> On Sun, Aug 30, 2015 at 4:39 PM, Piotr Dziwinski via cfe-commits
> <cfe-commits at lists.llvm.org> wrote:
>> piotrdz added a comment.
>>
>> @Eugene: I don't understand, what does declaring function with "void" argument have in common with this review? I only check here variable declarations inside functions.
>>
>> Maybe you meant my other review for inconsistent declaration parameter names? If so, this is how it behaves currently:
>>
>> $ cat test.c
>> void allright();
>> void allright(void);
>>
>> void notallright(int a);
>> void notallright(int b);
>>
>> $ clang-tidy -checks='-*,readability-inconsistent-declaration-parameter-name' test.c -- -std=c11
>> 1 warning generated.
>> /work/clang-trunk/test.c:4:6: warning: function 'notallright' has other declaration with different parameter name(s) [readability-inconsistent-declaration-parameter-name]
>> void notallright(int a);
>> ^
>> /work/clang-trunk/test.c:5:6: note: other declaration seen here
>> void notallright(int b);
>>
>> So I see no reason to add specific checks for functions with "void" parameter, unless you see something wrong with this behavior?
> In C, void allright(); is a function accepting a variable number of
> arguments, and void alright(void); is a function accepting no
> arguments. In C++, they are both functions accepting no arguments.
>
> ~Aaron
More information about the cfe-commits
mailing list