JonasToth added inline comments.

================
Comment at: test/clang-tidy/readability-strlen-argument.cpp:1
+// RUN: %check_clang_tidy %s readability-strlen-argument %t
+
----------------
danielmarjamaki wrote:
> JonasToth wrote:
> > Same as documentation, maybe a little more telling examples to test on.
> > What happens with `char**`, an array of strings? Accessing those one by one 
> > would be possible with an addition or subscriptoperation.
> how do you mean with char**. If you access those one by one it will look 
> something like this right?
> 
>     char **A;
>     strlen(*(A+N));
> 
> such code is not matched as far as I see.
Iam not sure if I understood the goal of the check.
For me, it looks like the determination of the length of a substring, say we 
skip the first 10 characters, who long would the end still be.

your example is correctly what i thought of and i think as well it would not be 
matched .

```strlen(A+N)``` would not compile? The types do not match, but could there 
weird things happen?


================
Comment at: test/clang-tidy/readability-strlen-argument.cpp:11
+  X = strlen(Str + 10);
+  // CHECK-FIXES: {{^}}  X = (strlen(Str) - 10);{{$}}
+
----------------
sberg wrote:
> but if any of the first ten chars in Str can be NUL, then the change is 
> bogus?  (I guess I fail to see the reason for this check)
intersting point. If the Array holds a long list of string concatenated and 
seperated by `0`, the offsetting would be a valid usecase.
(are strings in programm executables stored like this?)

But i have no idea if that is actually a scenario. usually i use `std::string` 
:)


Repository:
  rL LLVM

https://reviews.llvm.org/D32346



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

Reply via email to