steakhal added inline comments.

================
Comment at: 
clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:958
+
+  unsigned getNumArgs() const override { return getDecl()->getNumParams(); }
+
----------------
NoQ wrote:
> Charusso wrote:
> > `return getOriginExpr()->getNumArgs()`
> This wouldn't compile. `CXXDeleteExpr` is not a `CallExpr`.
> 
> It sounds like there are currently [[ 
> http://www.cplusplus.com/reference/new/operator%20delete/ | five different 
> `operator delete`s ]]:
> {F11474783}
> 
> And, unlike `operator new`, there's no option to provide custom "placement" 
> arguments.
> 
> So i think the logic in this patch is correct but we should do some custom 
> logic for all 5 cases in the `getArgExpr` method, where argument expressions 
> for the extra arguments will have to be conjured out of thin air (or we might 
> as well return null).
> It sounds like there are currently five different `operator delete`s:
I think it is even worse since C++17 and C++20 introduced a couple of others 
like:
 - overloads with `std::align_val_t` parameter (C++17)
 - overloads with `std::destroying_delete_t` parameter (C++20) which I haven't 
heard of yet :D

You can check it in the draft: http://eel.is/c++draft/new.delete
And of course at cppreference as well: 
https://en.cppreference.com/w/cpp/memory/new/operator_delete


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75430/new/

https://reviews.llvm.org/D75430



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to