forked from OSchip/llvm-project
[clang-tidy] When" -fno-exceptions is used", this warning is better to be suppressed.
Summary: "misc-noexcept-move-constructor" is better not to be issued when "-fno-exceptions" is set. Reviewers: chh, alexfh, aaron.ballman Reviewed By: aaron.ballman Subscribers: aaron.ballman, cfe-commits, xazax.hun Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D34002 llvm-svn: 304949
This commit is contained in:
parent
fa6fcff2e3
commit
98b74fc7d6
|
@ -20,7 +20,7 @@ namespace misc {
|
|||
void NoexceptMoveConstructorCheck::registerMatchers(MatchFinder *Finder) {
|
||||
// Only register the matchers for C++11; the functionality currently does not
|
||||
// provide any benefit to other languages, despite being benign.
|
||||
if (!getLangOpts().CPlusPlus11)
|
||||
if (!getLangOpts().CPlusPlus11 || !getLangOpts().CXXExceptions)
|
||||
return;
|
||||
|
||||
Finder->addMatcher(
|
||||
|
|
|
@ -1,16 +1,25 @@
|
|||
// RUN: %check_clang_tidy %s misc-noexcept-move-constructor %t
|
||||
// RUN: clang-tidy %s -checks="-*,misc-noexcept-move-constructor" -- -std=c++11 \
|
||||
// RUN: | FileCheck %s -check-prefix=CHECK-EXCEPTIONS \
|
||||
// RUN: -implicit-check-not="{{warning|error}}:"
|
||||
// RUN: clang-tidy %s -checks="-*,misc-noexcept-move-constructor" -- -fno-exceptions -std=c++11 \
|
||||
// RUN: | FileCheck %s -allow-empty -check-prefix=CHECK-NONEXCEPTIONS \
|
||||
// RUN: -implicit-check-not="{{warning|error}}:"
|
||||
|
||||
|
||||
class A {
|
||||
A(A &&);
|
||||
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: move constructors should be marked noexcept [misc-noexcept-move-constructor]
|
||||
// CHECK-EXCEPTIONS: :[[@LINE-1]]:3: warning: move constructors should be marked noexcept [misc-noexcept-move-constructor]
|
||||
// CHECK-NONEXCEPTIONS-NOT: warning:
|
||||
A &operator=(A &&);
|
||||
// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: move assignment operators should
|
||||
// CHECK-EXCEPTIONS: :[[@LINE-1]]:6: warning: move assignment operators should
|
||||
// CHECK-NONEXCEPTIONS-NOT: warning:
|
||||
};
|
||||
|
||||
struct B {
|
||||
static constexpr bool kFalse = false;
|
||||
B(B &&) noexcept(kFalse);
|
||||
// CHECK-MESSAGES: :[[@LINE-1]]:20: warning: noexcept specifier on the move constructor evaluates to 'false' [misc-noexcept-move-constructor]
|
||||
// CHECK-EXCEPTIONS: :[[@LINE-1]]:20: warning: noexcept specifier on the move constructor evaluates to 'false' [misc-noexcept-move-constructor]
|
||||
// CHECK-NONEXCEPTIONS-NOT: warning:
|
||||
};
|
||||
|
||||
class OK {};
|
||||
|
|
Loading…
Reference in New Issue