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

Reply via email to