NoQ added a comment.

> I marked this patch as WIP because I could not create a test-case for it. 
> However in real projects this patch seems to reduce false positives 
> significantly.

False positives are hard to reduce via delta-debugging because they can be 
accidentally reduced into true positives, because the distinction between true 
positives and false positives cannot be tested automatically. But once you fix 
the false positive, `creduce` can be used to reduce them by writing down the 
condition as "the positive is there on the original clang but not on the 
modified clang". Strongly recommended :)

> Hmmm, shouldn't we add this to `MemRegion`'s interface instead?

I wouldn't insist, but this does indeed sound useful. I suggest 
`MemRegion::getMostDerivedObjectRegion()` or something like that.

> The member function `getBaseRegion()` of `MemRegion` does not work here 
> because it recursively retrieves the base region of multiple kinds of 
> `SubRegion`.

Also, ugh, that nomenclature: the base region of `CXXBaseObjectRegion` in fact 
represents the //derived// object.


Repository:
  rC Clang

https://reviews.llvm.org/D54466



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

Reply via email to