[clang-tools-extra] r342388 - [Clang-Tidy: modernize] Fix for modernize-redundant-void-arg: complains about variable cast to void

Alexander Kornienko via cfe-commits cfe-commits at lists.llvm.org
Mon Sep 17 06:17:33 PDT 2018


Ah, now I see your fix in r342389. Thanks!

On Mon, Sep 17, 2018 at 3:15 PM Alexander Kornienko <alexfh at google.com>
wrote:

> (If there's no clear idea of how to fix this, reverting until the fix is
> found is usually the best strategy.)
>
> On Mon, Sep 17, 2018 at 3:14 PM Alexander Kornienko <alexfh at google.com>
> wrote:
>
>> It looks like this commit breaks buildbots (e.g.
>> http://lab.llvm.org:8011/builders/clang-cmake-armv8-quick/builds/6711).
>> Could you take a look?
>>
>> On Mon, Sep 17, 2018 at 2:33 PM Idriss Riouak via cfe-commits <
>> cfe-commits at lists.llvm.org> wrote:
>>
>>> Author: idrissrio
>>> Date: Mon Sep 17 05:29:29 2018
>>> New Revision: 342388
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=342388&view=rev
>>> Log:
>>> [Clang-Tidy: modernize] Fix for modernize-redundant-void-arg: complains
>>> about variable cast to void
>>>
>>> Summary:
>>> Hello, i would like to suggest a fix for one of the checks in
>>> clang-tidy.The bug was reported in
>>> https://bugs.llvm.org/show_bug.cgi?id=32575 where you can find more
>>> information.
>>>
>>> For example:
>>> ```
>>> template <typename T0>
>>> struct S {
>>>   template <typename T>
>>>   void g() const {
>>>     int a;
>>>     (void)a;
>>>   }
>>> };
>>>
>>> void f() {
>>>   S<int>().g<int>();
>>> }
>>> ```
>>>
>>>
>>> this piece of code should not trigger any warning by the check
>>> modernize-redundant-void-arg but when we execute the following command
>>>
>>>
>>> ```
>>> clang_tidy -checks=-*,modernize-redundant-void-arg test.cpp -- -std=c++11
>>> ```
>>>
>>> we obtain the following warning:
>>>
>>> /Users/eco419/Desktop/clang-tidy.project/void-redundand_2/test.cpp:6:6:
>>> warning: redundant void argument list in function declaration
>>> [modernize-redundant-void-arg]
>>>     (void)a;
>>>      ^~~~
>>>
>>> Reviewers: aaron.ballman, hokein, alexfh, JonasToth
>>>
>>> Reviewed By: aaron.ballman, JonasToth
>>>
>>> Subscribers: JonasToth, lebedev.ri, cfe-commits
>>>
>>> Tags: #clang-tools-extra
>>>
>>> Differential Revision: https://reviews.llvm.org/D52135
>>>
>>> Modified:
>>>
>>> clang-tools-extra/trunk/clang-tidy/modernize/RedundantVoidArgCheck.cpp
>>>
>>> clang-tools-extra/trunk/test/clang-tidy/modernize-redundant-void-arg.cpp
>>>
>>> Modified:
>>> clang-tools-extra/trunk/clang-tidy/modernize/RedundantVoidArgCheck.cpp
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/modernize/RedundantVoidArgCheck.cpp?rev=342388&r1=342387&r2=342388&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> clang-tools-extra/trunk/clang-tidy/modernize/RedundantVoidArgCheck.cpp
>>> (original)
>>> +++
>>> clang-tools-extra/trunk/clang-tidy/modernize/RedundantVoidArgCheck.cpp Mon
>>> Sep 17 05:29:29 2018
>>> @@ -49,7 +49,7 @@ void RedundantVoidArgCheck::registerMatc
>>>      return;
>>>
>>>    Finder->addMatcher(functionDecl(parameterCountIs(0),
>>> unless(isImplicit()),
>>> -                                  unless(isExternC()))
>>> +                                  unless(isInstantiated()),
>>> unless(isExternC()))
>>>                           .bind(FunctionId),
>>>                       this);
>>>    Finder->addMatcher(typedefNameDecl().bind(TypedefId), this);
>>>
>>> Modified:
>>> clang-tools-extra/trunk/test/clang-tidy/modernize-redundant-void-arg.cpp
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/modernize-redundant-void-arg.cpp?rev=342388&r1=342387&r2=342388&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> clang-tools-extra/trunk/test/clang-tidy/modernize-redundant-void-arg.cpp
>>> (original)
>>> +++
>>> clang-tools-extra/trunk/test/clang-tidy/modernize-redundant-void-arg.cpp
>>> Mon Sep 17 05:29:29 2018
>>> @@ -488,3 +488,64 @@ void lambda_expression_with_macro_test()
>>>    // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: redundant void argument
>>> list in lambda expression [modernize-redundant-void-arg]
>>>    // CHECK-FIXES: []() BODY;
>>>  }
>>> +
>>> +struct S_1 {
>>> +  void g_1(void) const {
>>> +    // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: redundant void
>>> argument list in function definition [modernize-redundant-void-arg]
>>> +    // CHECK-FIXES: void g_1() const {
>>> +    int a;
>>> +    (void)a;
>>> +  }
>>> +
>>> +  void g_2() const {
>>> +    int a;
>>> +    (void)a;
>>> +  }
>>> +};
>>> +
>>> +template <typename T0>
>>> +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]
>>> +    // CHECK-FIXES: void g_1() const {
>>> +    int a;
>>> +    (void)a;
>>> +  }
>>> +
>>> +  void g_2() const {
>>> +    int a;
>>> +    (void)a;
>>> +  }
>>> +};
>>> +
>>> +template <typename T0>
>>> +struct S_3 {
>>> +  template <typename T1>
>>> +  void g_1(void) const {
>>> +    // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: redundant void
>>> argument list in function definition [modernize-redundant-void-arg]
>>> +    // CHECK-FIXES: void g_1() const {
>>> +    int a;
>>> +    (void)a;
>>> +  }
>>> +  template <typename T2>
>>> +  void g_2() const {
>>> +    int a;
>>> +    (void)a;
>>> +  }
>>> +};
>>> +
>>> +template <typename T1>
>>> +void g_3(void) {
>>> +  // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: redundant void argument
>>> list in function definition [modernize-redundant-void-arg]
>>> +  // CHECK-FIXES: void g_3(){
>>> +  int a;
>>> +  (void)a;
>>> +}
>>> +
>>> +//Template instantiation
>>> +void f_testTemplate() {
>>> +  S_1();
>>> +  S_2<int>();
>>> +  S_3<int>();
>>> +  g_3<int>();
>>> +}
>>>
>>>
>>> _______________________________________________
>>> cfe-commits mailing list
>>> cfe-commits at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180917/3a2fa561/attachment.html>


More information about the cfe-commits mailing list