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