a.sidorin added a comment. Hi Artem! I like this change mostly but I also have some remarks.
================ Comment at: include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h:1279 /// associated element type, index, and super region. const ElementRegion *getElementRegion(QualType elementType, NonLoc Idx, + const SubRegion *superRegion, ---------------- I think we should perform a `cast<>` to `SubRegion` internally in order to keep API simple and do not force clients to introduce casts in their code. This will still allow us to keep nice suggestions about SubRegions/MemSpaces in our hierarchy. ================ Comment at: include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h:1347 private: - template <typename RegionTy, typename A1> - RegionTy* getSubRegion(const A1 a1, const MemRegion* superRegion); + template <typename RegionTy, typename SuperTy, typename A1> + RegionTy* getSubRegion(const A1 a1, const SuperTy* superRegion); ---------------- Maybe we should give types and paramers some more meaningful names as a part of refactoring? At least, the number in `A1` is not needed now. https://reviews.llvm.org/D26838 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits