[PATCH] D15332: new clang-tidy checker readability-non-const-parameter
Daniel Marjamäki via cfe-commits
cfe-commits at lists.llvm.org
Tue Mar 22 06:11:40 PDT 2016
danielmarjamaki added inline comments.
================
Comment at: test/clang-tidy/readability-non-const-parameter.cpp:116-134
@@ +115,21 @@
+
+// CHECK-MESSAGES: :[[@LINE+1]]:18: warning: parameter 'p' can be const
+int return1(int *p) {
+ // CHECK-FIXES: {{^}}int return1(const int *p) {{{$}}
+ return *p;
+}
+
+// CHECK-MESSAGES: :[[@LINE+1]]:25: warning: parameter 'p' can be const
+const int *return2(int *p) {
+ // CHECK-FIXES: {{^}}const int *return2(const int *p) {{{$}}
+ return p;
+}
+
+// CHECK-MESSAGES: :[[@LINE+1]]:25: warning: parameter 'p' can be const
+const int *return3(int *p) {
+ // CHECK-FIXES: {{^}}const int *return3(const int *p) {{{$}}
+ return p + 1;
+}
+
+// CHECK-MESSAGES: :[[@LINE+1]]:27: warning: parameter 'p' can be const
+const char *return4(char *p) {
----------------
rsmith wrote:
> The wording of this warning, and the name of the check, are highly misleading.
>
> It's *not* the parameter that can be const, it's the parameter's *pointee*.
I understand. Figuring out a better message is not easy. I and a collegue brain stormed:
pointer parameter 'p' could be declared with const 'const int *p'
pointer parameter 'p' could be pointer to const
pointer parameter 'p' declaration could be pointer to const
missing const in pointer parameter 'p' declaration
declaration of pointer parameter 'p' could be 'const int *p'
Do you think any of these would be good?
http://reviews.llvm.org/D15332
More information about the cfe-commits
mailing list