[PATCH] D66325: [analyzer] CastValueChecker: Store the dynamic types and casts

Csaba Dabis via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 19 15:20:51 PDT 2019


Charusso added inline comments.


================
Comment at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h:32
+/// A set of dynamic cast informations.
+REGISTER_SET_WITH_PROGRAMSTATE(DynamicCastSet, clang::ento::DynamicCastInfo)
 
----------------
NoQ wrote:
> Emm, so you're saving successes and failures of all casts //regardless of which object is getting casted//? That's definitely not sufficient. If `X` is a `Stmt` that isn't an `Expr`, you can't automatically infer that `Y` is a `Stmt` that isn't an `Expr` for any object `Y` other than `X` . This information needs to be per-object. Then you'll need to clean it up in `checkDeadSymbols`.
I have two implementations, the other is set factory based on memory regions. Is it would be a good idea to go through all the regions every time and all their casts to know every possible cast-assumption? I have made it, and I felt like it is overcomplicated as the DynamicTypeMap could be used for asking what is the type now and whether we have better precision and update that information therefore we could update the cast-set as well.


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

https://reviews.llvm.org/D66325





More information about the cfe-commits mailing list