JonasToth added a comment.

> In https://reviews.llvm.org/D52135#1236220, @JonasToth wrote:
> 
>> Why is the cast to void diagnosed anyway? It is not an argument nor is it 
>> used in a function context. Do you have an explaination for that?
> 
> 
> Yes, this because when we find a function and the process it we are trying to 
> get the beginning and the end of the function in terms of source location. In 
> particular we have
> 
>    if (Function->isThisDeclarationADefinition()){
>      ...
>   }else{
>     removeVoidArgumentTokens(Result, Function->getSourceRange(),
>                                "function declaration");
>   }
> 
> 
> In this case **Function**  is nor a declaration or  definition so we fall in 
> the else case and so we are going to take the entire **sourceRange** of 
> **Function**.
>  The function **RedundantVoidArgCheck::removeVoidArgumentTokens** iterate 
> over this **sourceRange** and if an occurrence of '**(void)'** is found this 
> is replaced with** '()**'. In the our case **removeVoidArgumentTokens** will 
> find this occurrence in (void)a.
Thank you for the clarification!



================
Comment at: test/clang-tidy/modernize-redundant-void-arg.cpp:510
+struct S_2{
+ void g_1(void) const{
+  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: redundant void argument list in 
function definition [modernize-redundant-void-arg]
----------------
Nit. The formatting at the brace is a bit off.

Could you please add a testcase for a templated function as well?

```
template <typename T>
void bla(void) {

}
```

I think every possibility is then covered.


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D52135



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to