martong 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
----------------
steakhal wrote:
> martong wrote:
> > steakhal wrote:
> > > 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.
> > Okay, makes sense. 
> > 
> > It's just very painful to have code repetitions, even in the test code. In 
> > gtest unittests we can have tests with type parameters to avoid this kind 
> > of repetition. But I guess, there is no way to get rid of this repetition 
> > in lit tests.
> You can imagine duplicating all of this several times, since the constant in 
> the subscript expression could also have different types, such as: 
> `unsigned`, `long`, `unsigned long`, etc. Potentially uncovering bugs.
> However, I was reluctant to add those as well :|
> 
> I could introduce a macro, to expand these - but IMO macros in tests ehh. 
> probably reduces readability.
Macros, ehh. 

Could it work if we instantiated a test function template with the types as 
parameters? AFAIK, we analyze all instantiations as top level. The problem 
seems to be with the `-verify` and matching the `expected-warning` for each 
instantiation...


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D86870

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

Reply via email to