NoQ added inline comments.
================ Comment at: clang/test/Analysis/cast-value-hierarchy-fp-suppression.cpp:25-27 + if (isa<B>(a)) + if (isa<C>(a)) + clang_analyzer_warnIfReached(); // no-warning ---------------- Charusso wrote: > NoQ wrote: > > Why is `(isa<B>(a) && isa<C>(a))` deemed possible in the first test but not > > in the second test? o_o > In `test_downcast()` we assume that `a` is a record type of `D` where `D` is > a `B` and `D` is a `C`. However in `test_downcast_infeasible()` if `a` is > not a record type of `D` is cannot be both `B` and `C` at the same time. That > is the purpose of `CastVisitor`. I mean, it contradicts to how the program *actually* works, so we should either not do that, or provide a reeeeeaaaaaallly compelling explanation of why we do this (as in "Extraordinary Claims Require Extraordinary Evidence"). CHANGES SINCE LAST ACTION https://reviews.llvm.org/D67079/new/ https://reviews.llvm.org/D67079 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits