steakhal 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());
+  }
----------------
NoQ wrote:
> 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.
D90754 aims to fix this. Thank you.


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

Reply via email to