diff --git a/clang-tools-extra/clang-tidy/fuchsia/OverloadedOperatorCheck.cpp b/clang-tools-extra/clang-tidy/fuchsia/OverloadedOperatorCheck.cpp index 8e6c74f322ef..4aab1e01d48f 100644 --- a/clang-tools-extra/clang-tidy/fuchsia/OverloadedOperatorCheck.cpp +++ b/clang-tools-extra/clang-tidy/fuchsia/OverloadedOperatorCheck.cpp @@ -21,6 +21,8 @@ AST_MATCHER(FunctionDecl, isFuchsiaOverloadedOperator) { if (CXXMethodNode->isCopyAssignmentOperator() || CXXMethodNode->isMoveAssignmentOperator()) return false; + if (CXXMethodNode->getParent()->isLambda()) + return false; } return Node.isOverloadedOperator(); } diff --git a/clang-tools-extra/test/clang-tidy/fuchsia-overloaded-operator.cpp b/clang-tools-extra/test/clang-tidy/fuchsia-overloaded-operator.cpp index be65a329dc6f..7f7a36e8c98b 100644 --- a/clang-tools-extra/test/clang-tidy/fuchsia-overloaded-operator.cpp +++ b/clang-tools-extra/test/clang-tidy/fuchsia-overloaded-operator.cpp @@ -19,3 +19,5 @@ A operator-(const A &A1, const A &A2); void operator delete(void*, void*) throw(); // CHECK-MESSAGES: [[@LINE-1]]:1: warning: overloading 'operator delete' is disallowed + +auto x = []{};