[PATCH] D135920: [clang][Sema] Use correct array size for diagnostic
Bill Wendling via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 13 16:04:53 PDT 2022
void added inline comments.
================
Comment at: clang/lib/Sema/SemaChecking.cpp:16068
DiagRuntimeBehavior(BaseExpr->getBeginLoc(), BaseExpr,
PDiag(DiagID) << toString(index, 10, true)
- << toString(size, 10, true)
----------------
shafik wrote:
> `index` is also wrong as you can see from the diagnostic below `array index 32768 is past`.
>
> I think what you want is `index.getNumWords()` and `size.getNumWords()`.
I'm not so sure about the `index` part. The `sizeof(foo)` bit is 32768, so that part of the diagnostic is technically correct. (The best kind of correct! :-)
As for `getNumWords()`, won't that just default to the size of the array in `int`'s?
================
Comment at: clang/lib/Sema/SemaChecking.cpp:16070
- << toString(size, 10, true)
+ << toString(ArrayTy->getSize(), 10, true)
<< (unsigned)size.getLimitedValue(~0U)
<< IndexExpr->getSourceRange());
----------------
shafik wrote:
> It is not clear what this is for.
>
> If we look at `warn_array_index_exceeds_bounds` in `DiagnosticSemaKinds.td` we can see that `element%s2` which I believe is a typo and means that this argument is lost.
I think it's to (somehow) specify whether or not to add an `s` to the end of `element`...but I'm not 100% sure.
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