summaryrefslogtreecommitdiff
path: root/clang-tools-extra/test
diff options
context:
space:
mode:
authorMalcolm Parsons <malcolm.parsons@gmail.com>2018-11-27 16:23:39 +0000
committerMalcolm Parsons <malcolm.parsons@gmail.com>2018-11-27 16:23:39 +0000
commit7e86abec1da8003634bfb4f8f99f200cd8215075 (patch)
tree50ce0ab54eeacd8c534852220986d79143de2f9f /clang-tools-extra/test
parent00cbe9c9e9432d3bd519f8a824222e3c2b7ff6e2 (diff)
[clang-tidy] Ignore bool -> single bit bitfield conversion in readability-implicit-bool-conversion
Summary: There is no ambiguity / information loss in this conversion Reviewers: alexfh, aaron.ballman, hokein Reviewed By: alexfh Subscribers: xazax.hun, cfe-commits Differential Revision: https://reviews.llvm.org/D54941
Diffstat (limited to 'clang-tools-extra/test')
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-implicit-bool-conversion.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/clang-tools-extra/test/clang-tidy/readability-implicit-bool-conversion.cpp b/clang-tools-extra/test/clang-tidy/readability-implicit-bool-conversion.cpp
index 1cc0f4f51e8..d5e9bee4294 100644
--- a/clang-tools-extra/test/clang-tidy/readability-implicit-bool-conversion.cpp
+++ b/clang-tools-extra/test/clang-tidy/readability-implicit-bool-conversion.cpp
@@ -444,14 +444,27 @@ struct S {
int a;
int b : 1;
int c : 2;
+
+ S(bool a, bool b, bool c) : a(a), b(b), c(c) {}
+ // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: implicit conversion bool -> 'int'
+ // CHECK-MESSAGES: :[[@LINE-2]]:45: warning: implicit conversion bool -> 'int'
+ // CHECK-FIXES: S(bool a, bool b, bool c) : a(static_cast<int>(a)), b(b), c(static_cast<int>(c)) {}
};
-bool f(const S& s) {
+bool f(S& s) {
functionTaking<bool>(s.a);
// CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'int' -> bool
// CHECK-FIXES: functionTaking<bool>(s.a != 0);
functionTaking<bool>(s.b);
// CHECK-FIXES: functionTaking<bool>(s.b);
+ s.a = true;
+ // CHECK-MESSAGES: :[[@LINE-1]]:9: warning: implicit conversion bool -> 'int'
+ // CHECK-FIXES: s.a = 1;
+ s.b = true;
+ // CHECK-FIXES: s.b = true;
+ s.c = true;
+ // CHECK-MESSAGES: :[[@LINE-1]]:9: warning: implicit conversion bool -> 'int'
+ // CHECK-FIXES: s.c = 1;
functionTaking<bool>(s.c);
// CHECK-MESSAGES: :[[@LINE-1]]:24: warning: implicit conversion 'int' -> bool
// CHECK-FIXES: functionTaking<bool>(s.c != 0);