IdrissRio updated this revision to Diff 165741.
IdrissRio added a comment.

Thank you @JonasToth. As you suggest I have added the test for the 
templatic function.


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D52135

Files:
  clang-tidy/modernize/RedundantVoidArgCheck.cpp
  test/clang-tidy/modernize-redundant-void-arg.cpp


Index: test/clang-tidy/modernize-redundant-void-arg.cpp
===================================================================
--- test/clang-tidy/modernize-redundant-void-arg.cpp
+++ test/clang-tidy/modernize-redundant-void-arg.cpp
@@ -488,3 +488,67 @@
   // 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>();
+}
Index: clang-tidy/modernize/RedundantVoidArgCheck.cpp
===================================================================
--- clang-tidy/modernize/RedundantVoidArgCheck.cpp
+++ clang-tidy/modernize/RedundantVoidArgCheck.cpp
@@ -49,7 +49,7 @@
     return;
 
   Finder->addMatcher(functionDecl(parameterCountIs(0), unless(isImplicit()),
-                                  unless(isExternC()))
+                                  unless(isInstantiated()), 
unless(isExternC()))
                          .bind(FunctionId),
                      this);
   Finder->addMatcher(typedefNameDecl().bind(TypedefId), this);


Index: test/clang-tidy/modernize-redundant-void-arg.cpp
===================================================================
--- test/clang-tidy/modernize-redundant-void-arg.cpp
+++ test/clang-tidy/modernize-redundant-void-arg.cpp
@@ -488,3 +488,67 @@
   // 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>();
+}
Index: clang-tidy/modernize/RedundantVoidArgCheck.cpp
===================================================================
--- clang-tidy/modernize/RedundantVoidArgCheck.cpp
+++ clang-tidy/modernize/RedundantVoidArgCheck.cpp
@@ -49,7 +49,7 @@
     return;
 
   Finder->addMatcher(functionDecl(parameterCountIs(0), unless(isImplicit()),
-                                  unless(isExternC()))
+                                  unless(isInstantiated()), unless(isExternC()))
                          .bind(FunctionId),
                      this);
   Finder->addMatcher(typedefNameDecl().bind(TypedefId), this);
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to