[PATCH] D86870: [analyzer] Add more tests for ArrayBoundCheckerV2

Balázs Benics via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 1 01:52:35 PDT 2020


steakhal added inline comments.


================
Comment at: clang/test/Analysis/out-of-bounds-false-positive.c:34
+
+void symbolic_uint_and_int0(unsigned len) {
+  (void)a[len + 1]; // no-warning
----------------
martong wrote:
> Hmm, this seems to be quite redundant with the `size_t` tests. Why is it not enough to have test for one unsigned type?
> Are you trying to check for overflow errors? Then I'd expect to have indexes around UINT_MAX and so on. 
> 
> Same comment applies to the tests with the signed types.
In the current implementation - and in any implementation of the checker logic will have to deal with //integral-promotion// during the //simplification// of the //array indexer expression// and the given //extent//.
All of these can have different signess and bitwidth which makes the implementation quite tricky.

In fact, this resulted in the bug, which this patch-stack aims to fix.
I'm gonna highlight the related parts in the refactoring patch if you think it helps.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D86870



More information about the cfe-commits mailing list