From: Piotr Zegar Date: Sun, 30 Apr 2023 18:22:44 +0000 (+0000) Subject: [clang-tidy] Ignore declarations in bugprone-exception-escape X-Git-Tag: upstream/17.0.6~9933 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fc5f14c5fe78997fb01f9e921b0225f643171fe2;p=platform%2Fupstream%2Fllvm.git [clang-tidy] Ignore declarations in bugprone-exception-escape Warnings will now only be printed for function definitions, not declarations Reviewed By: isuckatcs Differential Revision: https://reviews.llvm.org/D148462 --- diff --git a/clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp index 276c46ca9fe9..635cc2ca05d1 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp @@ -52,7 +52,8 @@ void ExceptionEscapeCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { void ExceptionEscapeCheck::registerMatchers(MatchFinder *Finder) { Finder->addMatcher( - functionDecl(anyOf(isNoThrow(), cxxDestructorDecl(), + functionDecl(isDefinition(), + anyOf(isNoThrow(), cxxDestructorDecl(), cxxConstructorDecl(isMoveConstructor()), cxxMethodDecl(isMoveAssignmentOperator()), hasName("main"), hasName("swap"), diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst index 49f880c971a3..5695d59e8915 100644 --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -201,6 +201,10 @@ Changes in existing checks ` check. Global options of the same name should be used instead. +- Improved :doc:`bugprone-exception-escape + ` to not emit warnings for + forward declarations of functions. + - Improved :doc:`bugprone-fold-init-type ` to handle iterators that do not define `value_type` type aliases. diff --git a/clang-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape.cpp b/clang-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape.cpp index 142c8b114b7c..78d434854b09 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape.cpp @@ -655,7 +655,6 @@ int directly_recursive(int n) noexcept { } int indirectly_recursive(int n) noexcept; - // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: an exception may be thrown in function 'indirectly_recursive' which should not throw exceptions int recursion_helper(int n) { indirectly_recursive(n);