summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/test/clang-tidy/google-explicit-constructor.cpp
diff options
context:
space:
mode:
authorAlexander Kornienko <alexfh@google.com>2016-12-23 15:03:12 +0000
committerAlexander Kornienko <alexfh@google.com>2016-12-23 15:03:12 +0000
commitbbd853632185a6e3154137ce5776dc72ebd3bd2a (patch)
tree14d75c96ca0901ab49b115467d7b8623de8b1991 /clang-tools-extra/test/clang-tidy/google-explicit-constructor.cpp
parentb9ff23a40240d03cec020bb4e366c789ac8ac664 (diff)
downloadbcm5719-llvm-bbd853632185a6e3154137ce5776dc72ebd3bd2a.tar.gz
bcm5719-llvm-bbd853632185a6e3154137ce5776dc72ebd3bd2a.zip
[clang-tidy] Flag implicit conversion operators.
llvm-svn: 290434
Diffstat (limited to 'clang-tools-extra/test/clang-tidy/google-explicit-constructor.cpp')
-rw-r--r--clang-tools-extra/test/clang-tidy/google-explicit-constructor.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang-tools-extra/test/clang-tidy/google-explicit-constructor.cpp b/clang-tools-extra/test/clang-tidy/google-explicit-constructor.cpp
index b49ce7bd1e8..f8a154e559d 100644
--- a/clang-tools-extra/test/clang-tidy/google-explicit-constructor.cpp
+++ b/clang-tools-extra/test/clang-tidy/google-explicit-constructor.cpp
@@ -38,6 +38,7 @@ struct A {
explicit A(void *x) {}
explicit A(void *x, void *y) {}
+ explicit operator bool() const { return true; }
explicit A(const A& a) {}
// CHECK-MESSAGES: :[[@LINE-1]]:12: warning: copy constructor should not be declared explicit [google-explicit-constructor]
@@ -62,6 +63,10 @@ struct B {
B(const std::initializer_list<unsigned> &list2) {}
B(std::initializer_list<unsigned> &&list3) {}
+ operator bool() const { return true; }
+ // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: 'operator bool' must be marked explicit to avoid unintentional implicit conversions [google-explicit-constructor]
+ // CHECK-FIXES: {{^ }}explicit operator bool() const { return true; }
+
explicit B(::std::initializer_list<double> list4) {}
// CHECK-MESSAGES: :[[@LINE-1]]:12: warning: initializer-list constructor should not be declared explicit [google-explicit-constructor]
// CHECK-FIXES: {{^ }}B(::std::initializer_list<double> list4) {}
OpenPOWER on IntegriCloud