serge-sans-paille added inline comments.

================
Comment at: clang/test/SemaCXX/array-bounds.cpp:240
 
-    ((char*)foo)[sizeof(foo)] = '\0';  // expected-warning {{array index 32768 
is past the end of the array (which contains 32768 elements)}}
+    ((char*)foo)[sizeof(foo)] = '\0';  // expected-warning {{array index 32768 
is past the end of the array (which contains 4096 elements)}}
 
----------------
kees wrote:
> serge-sans-paille wrote:
> > I find this new message quite confusing, because the array index is given 
> > in terms of char elements, while the array size is given in terms of double 
> > elements. I actually find the original message more consistent to that 
> > respect.
> Perhaps show both element count and byte offset?
> 
> `array index $count is $(bytes - end_of_array_in_bytes) past the end of the 
> array (which contains $end_of_array_in_bytes bytes of $array_max_index 
> elements)`
if we have no cast, I find the version without the patch  just fine.

If we have a cast, I suggest we just express the result in bytes, something 
along those lines (inspired by your suggestion):

    array index $count is $(bytes - end_of_array_in_bytes) bytes past the end 
of the allocated memory for that array (which contains $end_of_array_in_bytes 
bytes)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D135920/new/

https://reviews.llvm.org/D135920

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

Reply via email to