[PATCH] D135920: [clang][Sema] Use correct array size for diagnostic
serge via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 17 13:54:28 PDT 2022
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
More information about the cfe-commits
mailing list