Author: hokein Date: Thu Feb 4 08:06:49 2016 New Revision: 259787 URL: http://llvm.org/viewvc/llvm-project?rev=259787&view=rev Log: [clang-tidy] More friendly warning in "google-runtime-references" when meeting an unnamed function parameter.
Reviewers: alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D16882 Modified: clang-tools-extra/trunk/clang-tidy/google/NonConstReferences.cpp clang-tools-extra/trunk/test/clang-tidy/google-runtime-references.cpp Modified: clang-tools-extra/trunk/clang-tidy/google/NonConstReferences.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/google/NonConstReferences.cpp?rev=259787&r1=259786&r2=259787&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/google/NonConstReferences.cpp (original) +++ clang-tools-extra/trunk/clang-tidy/google/NonConstReferences.cpp Thu Feb 4 08:06:49 2016 @@ -108,9 +108,16 @@ void NonConstReferences::check(const Mat if (StringRef(ReferencedType.getAsString()).endswith("stream")) return; - diag(Parameter->getLocation(), - "non-const reference parameter '%0', make it const or use a pointer") - << Parameter->getName(); + if (Parameter->getName().empty()) { + diag(Parameter->getLocation(), + "non-const reference parameter at index %0, " + "make it const or use a pointer") + << Parameter->getFunctionScopeIndex(); + } else { + diag(Parameter->getLocation(), + "non-const reference parameter '%0', make it const or use a pointer") + << Parameter->getName(); + } } } // namespace runtime Modified: clang-tools-extra/trunk/test/clang-tidy/google-runtime-references.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/google-runtime-references.cpp?rev=259787&r1=259786&r2=259787&view=diff ============================================================================== --- clang-tools-extra/trunk/test/clang-tidy/google-runtime-references.cpp (original) +++ clang-tools-extra/trunk/test/clang-tidy/google-runtime-references.cpp Thu Feb 4 08:06:49 2016 @@ -40,7 +40,7 @@ void g3(ref a); void g4(int &a, int &b, int &); // CHECK-MESSAGES: [[@LINE-1]]:14: warning: non-const reference parameter 'a', {{.*}} // CHECK-MESSAGES: [[@LINE-2]]:22: warning: non-const reference parameter 'b', {{.*}} -// CHECK-MESSAGES: [[@LINE-3]]:30: warning: non-const reference parameter '', {{.*}} +// CHECK-MESSAGES: [[@LINE-3]]:30: warning: non-const reference parameter at index 2, {{.*}} class B { B(B& a) {} @@ -60,7 +60,7 @@ void B::g(int &b) {} // Don't warn on the first parameter of stream inserters. A& operator<<(A& s, int&) { return s; } -// CHECK-MESSAGES: [[@LINE-1]]:25: warning: non-const reference parameter '', {{.*}} +// CHECK-MESSAGES: [[@LINE-1]]:25: warning: non-const reference parameter at index 1, {{.*}} // Don't warn on either parameter of stream extractors. Both need to be // non-const references by convention. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits