aaron.ballman added inline comments.

================
Comment at: 
clang-tidy/cppcoreguidelines/ProBoundsArrayToPointerDecayCheck.cpp:40
@@ +39,3 @@
+
+  diag(MatchedCast->getExprLoc(), "do not (implicitly) convert an array to a 
pointer");
+}
----------------
klimek wrote:
> aaron.ballman wrote:
> > klimek wrote:
> > > Can't we provide a fixit?
> > I think the fixit that the C++ Core Guidelines wants is to use array_view, 
> > which isn't available to everyone and can't be applied locally (for 
> > instance, it may require changing a function parameter instead of the 
> > argument passed to the function).
> https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#-bounds3-no-array-to-pointer-decay
> says that &a[0] is an OK work around (makes the thing visible)
Hmm, I missed that part, but you're right. I wonder if they intended that to be 
used as a workaround or not, however. It's not an array decay because it's an 
explicit subscript of the array, and a unary op. It's certainly a functional 
workaround, though. I would worry about more complex cases:
```
size_t g();
void h(int *);

void f() {
  int a[5];
  h(a + g() - 10); // Convert to &a[g() - 10];
}
```


http://reviews.llvm.org/D13640



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

Reply via email to