================ @@ -709,6 +710,77 @@ class CXXInstanceCall : public AnyFunctionCall { } }; +/// Represents a static C++ operator call. +/// +/// "A" in this example. +/// However, "B" and "C" are represented by SimpleFunctionCall. +/// \code +/// struct S { +/// int pad; +/// static void operator()(int x, int y); +/// }; +/// S s{10}; +/// void (*fptr)(int, int) = &S::operator(); +/// +/// s(1, 2); // A +/// S::operator()(1, 2); // B +/// fptr(1, 2); // C +/// \endcode +class CXXStaticOperatorCall : public SimpleFunctionCall { + friend class CallEventManager; + +protected: + CXXStaticOperatorCall(const CallExpr *CE, ProgramStateRef St, ---------------- tomasz-kaminski-sonarsource wrote:
To guaranteee that cast in `getOriginExpr` is correct. ```suggestion CXXStaticOperatorCall(const CXXOperatorCallExpr *CE, ProgramStateRef St, ``` https://github.com/llvm/llvm-project/pull/84972 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits