NoQ added inline comments.
================ Comment at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:916-918 + virtual const CXXInheritedCtorInitExpr *getOriginExpr() const { + return cast<CXXInheritedCtorInitExpr>(AnyFunctionCall::getOriginExpr()); + } ---------------- steakhal wrote: > Why is this function virtual? > If we want such behavior we should mark the `CallEvent::getOriginExpr` > virtual and just //override// it here. > As-of-now, this just hides the previous implementation, causing potential > problems. > > This code-smell occures several times across this class hierachy. > > Is this the expected behavior @NoQ? I think you're right, it should have been virtual from the start. Weird. Probably the only reason this works is that all overrides do literally the same thing, just cast to different types. But if even one of them doesn't we're in trouble. Yeah this needs to be fixed. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D74735/new/ https://reviews.llvm.org/D74735 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits