================
@@ -31,9 +31,20 @@ AST_MATCHER_P(FunctionDecl, isInstantiatedFrom,
Matcher<FunctionDecl>,
Finder, Builder);
}
-AST_MATCHER_P(CXXMethodDecl, isOperatorOverloading,
- llvm::SmallVector<OverloadedOperatorKind>, Kinds) {
- return llvm::is_contained(Kinds, Node.getOverloadedOperator());
+constexpr std::initializer_list<OverloadedOperatorKind>
+ AssignmentOverloadedOperatorKinds = {
+ OO_Equal, OO_PlusEqual, OO_MinusEqual, OO_StarEqual,
+ OO_SlashEqual, OO_PercentEqual, OO_CaretEqual, OO_AmpEqual,
+ OO_PipeEqual, OO_LessLessEqual, OO_GreaterGreaterEqual, OO_PlusPlus,
+ OO_MinusMinus};
+
+AST_MATCHER(CXXOperatorCallExpr, isAssignmentOverloadedOperatorCall) {
+ return llvm::is_contained(AssignmentOverloadedOperatorKinds,
+ Node.getOperator());
+}
+AST_MATCHER(CXXMethodDecl, isAssignmentOverloadedOperatorMethod) {
+ return llvm::is_contained(AssignmentOverloadedOperatorKinds,
----------------
PiotrZSL wrote:
getOverloadedOperator belongs to FunctionDecl, change this from Method to
Function, and same in calee, in such case you will also cover calls to free
standing operators called directly.
https://github.com/llvm/llvm-project/pull/84922
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits