[mlir] minor documentation fix in GPUTransformOps.td (#121157)
[llvm-project.git] / clang-tools-extra / clang-tidy / performance / NoexceptMoveConstructorCheck.cpp
bloba77ca6aebb378e4c4a11d8ddf45a6753a7952901
1 //===--- NoexceptMoveConstructorCheck.cpp - clang-tidy---------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
9 #include "NoexceptMoveConstructorCheck.h"
10 #include "clang/ASTMatchers/ASTMatchFinder.h"
12 using namespace clang::ast_matchers;
14 // FixItHint - comment added to fix list.rst generation in add_new_check.py.
15 // Do not remove. Fixes are generated in base class.
17 namespace clang::tidy::performance {
19 void NoexceptMoveConstructorCheck::registerMatchers(MatchFinder *Finder) {
20 Finder->addMatcher(
21 cxxMethodDecl(unless(isDeleted()),
22 anyOf(cxxConstructorDecl(isMoveConstructor()),
23 isMoveAssignmentOperator()))
24 .bind(BindFuncDeclName),
25 this);
28 DiagnosticBuilder NoexceptMoveConstructorCheck::reportMissingNoexcept(
29 const FunctionDecl *FuncDecl) {
30 return diag(FuncDecl->getLocation(),
31 "move %select{assignment operator|constructor}0s should "
32 "be marked noexcept")
33 << CXXConstructorDecl::classof(FuncDecl);
36 void NoexceptMoveConstructorCheck::reportNoexceptEvaluatedToFalse(
37 const FunctionDecl *FuncDecl, const Expr *NoexceptExpr) {
38 diag(NoexceptExpr->getExprLoc(),
39 "noexcept specifier on the move %select{assignment "
40 "operator|constructor}0 evaluates to 'false'")
41 << CXXConstructorDecl::classof(FuncDecl);
44 } // namespace clang::tidy::performance