aaron.ballman added inline comments. ================ Comment at: clang-tidy/cppcoreguidelines/ProTypeStaticCastDowncastCheck.cpp:33 @@ +32,3 @@ + + SubExpr = SubExpr->IgnoreParens(); + QualType SourceType = SubExpr->getType(); ---------------- Will the type dependence check also look through parens, or should this move up a few lines?
================ Comment at: clang-tidy/cppcoreguidelines/ProTypeStaticCastDowncastCheck.cpp:42 @@ +41,3 @@ + const CXXRecordDecl* SourceDecl; + if (SourceType->isPointerType()) + SourceDecl = SourceType->getPointeeCXXRecordDecl(); ---------------- No need for this or the check above -- getPointeeCXXRecordDecl() already does the right thing for references. You should be able to do: ``` if (auto *DestDecl = DestType->getPointeeCXXRecordDecl()) { // etc } ``` Also note that auto DestDecl isn't a good idea as it hides the fact that DestDecl is a pointer from anyone reading the code. ================ Comment at: clang-tidy/cppcoreguidelines/ProTypeStaticCastDowncastCheck.cpp:51 @@ +50,3 @@ + if (DestDecl->isDerivedFrom(SourceDecl)) { + diag(MatchedCast->getOperatorLoc(), "do not use static_cast to cast from base to derived. Use " + "dynamic_cast instead. (C++ Core " ---------------- Formatting looks off on this; also, I don't think you need the parenthetical as that information is part of the checker name itself. http://reviews.llvm.org/D13368 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits