@@ -5,30 +5,30 @@ bool IntToTrue = 1;
5
5
// CHECK-FIXES: {{^}}bool IntToTrue = true;{{$}}
6
6
7
7
bool IntToFalse (0 );
8
- // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: {{.*}}
8
+ // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: converting integer literal to bool
9
9
// CHECK-FIXES: {{^}}bool IntToFalse(false);{{$}}
10
10
11
11
bool LongLongToTrue{0x1LL };
12
- // CHECK-MESSAGES: :[[@LINE-1]]:21: warning: {{.*}}
12
+ // CHECK-MESSAGES: :[[@LINE-1]]:21: warning: converting integer literal to bool
13
13
// CHECK-FIXES: {{^}}bool LongLongToTrue{true};{{$}}
14
14
15
15
bool ExplicitCStyleIntToFalse = (bool )0 ;
16
- // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: {{.*}}
16
+ // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: converting integer literal to bool
17
17
// CHECK-FIXES: {{^}}bool ExplicitCStyleIntToFalse = false;{{$}}
18
18
19
19
bool ExplicitFunctionalIntToFalse = bool (0 );
20
- // CHECK-MESSAGES: :[[@LINE-1]]:37: warning: {{.*}}
20
+ // CHECK-MESSAGES: :[[@LINE-1]]:37: warning: converting integer literal to bool
21
21
// CHECK-FIXES: {{^}}bool ExplicitFunctionalIntToFalse = false;{{$}}
22
22
23
23
bool ExplicitStaticIntToFalse = static_cast <bool >(0 );
24
- // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: {{.*}}
24
+ // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: converting integer literal to bool
25
25
// CHECK-FIXES: {{^}}bool ExplicitStaticIntToFalse = false;{{$}}
26
26
27
27
#define TRUE_MACRO 1
28
28
// CHECK-FIXES: {{^}}#define TRUE_MACRO 1{{$}}
29
29
30
30
bool MacroIntToTrue = TRUE_MACRO;
31
- // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: converting integer literal to bool, use bool literal instead [modernize-use-bool-literals]
31
+ // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: converting integer literal to bool
32
32
// CHECK-FIXES: {{^}}bool MacroIntToTrue = TRUE_MACRO;{{$}}
33
33
34
34
#define FALSE_MACRO bool (0 )
@@ -37,7 +37,7 @@ bool MacroIntToTrue = TRUE_MACRO;
37
37
bool TrueBool = true; // OK
38
38
39
39
bool FalseBool = bool (FALSE_MACRO);
40
- // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: {{.*}}
40
+ // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: converting integer literal to bool
41
41
// CHECK-FIXES: {{^}}bool FalseBool = bool(FALSE_MACRO);{{$}}
42
42
43
43
void boolFunction (bool bar) {
@@ -52,28 +52,28 @@ unsigned long long LongInteger = 1; // OK
52
52
// CHECK-FIXES: {{^}}#define MACRO_DEPENDENT_CAST(x) static_cast<bool>(x){{$}}
53
53
54
54
bool MacroDependentBool = MACRO_DEPENDENT_CAST(0 );
55
- // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: {{.*}}
55
+ // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: converting integer literal to bool
56
56
// CHECK-FIXES: {{^}}bool MacroDependentBool = MACRO_DEPENDENT_CAST(0);{{$}}
57
57
58
58
bool ManyMacrosDependent = MACRO_DEPENDENT_CAST(FALSE_MACRO);
59
- // CHECK-MESSAGES: :[[@LINE-1]]:49: warning: {{.*}}
59
+ // CHECK-MESSAGES: :[[@LINE-1]]:49: warning: converting integer literal to bool
60
60
// CHECK-FIXES: {{^}}bool ManyMacrosDependent = MACRO_DEPENDENT_CAST(FALSE_MACRO);{{$}}
61
61
62
62
class FooClass {
63
63
public:
64
64
FooClass () : JustBool(0 ) {}
65
- // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: {{.*}}
65
+ // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: converting integer literal to bool
66
66
// CHECK-FIXES: {{^ *}}FooClass() : JustBool(false) {}{{$}}
67
67
FooClass (int ) : JustBool{0 } {}
68
- // CHECK-MESSAGES: :[[@LINE-1]]:28: warning: {{.*}}
68
+ // CHECK-MESSAGES: :[[@LINE-1]]:28: warning: converting integer literal to bool
69
69
// CHECK-FIXES: {{^ *}}FooClass(int) : JustBool{false} {}{{$}}
70
70
private:
71
71
bool JustBool;
72
72
bool BoolWithBraces{0 };
73
- // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: {{.*}}
73
+ // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: converting integer literal to bool
74
74
// CHECK-FIXES: {{^ *}}bool BoolWithBraces{false};{{$}}
75
75
bool BoolFromInt = 0 ;
76
- // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: {{.*}}
76
+ // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: converting integer literal to bool
77
77
// CHECK-FIXES: {{^ *}}bool BoolFromInt = false;{{$}}
78
78
bool SimpleBool = true ; // OK
79
79
};
@@ -93,13 +93,13 @@ void valueDependentTemplateFunction() {
93
93
template <typename type>
94
94
void anotherTemplateFunction (type) {
95
95
bool JustBool = 0 ;
96
- // CHECK-MESSAGES: :[[@LINE-1]]:19: warning: {{.*}}
96
+ // CHECK-MESSAGES: :[[@LINE-1]]:19: warning: converting integer literal to bool
97
97
// CHECK-FIXES: {{^ *}}bool JustBool = false;{{$}}
98
98
}
99
99
100
100
int main () {
101
101
boolFunction (1 );
102
- // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: {{.*}}
102
+ // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: converting integer literal to bool
103
103
// CHECK-FIXES: {{^ *}}boolFunction(true);{{$}}
104
104
105
105
boolFunction (false );
@@ -113,6 +113,36 @@ int main() {
113
113
anotherTemplateFunction (1 );
114
114
115
115
IntToTrue = 1 ;
116
- // CHECK-MESSAGES: :[[@LINE-1]]:15: warning: {{.*}}
116
+ // CHECK-MESSAGES: :[[@LINE-1]]:15: warning: converting integer literal to bool
117
117
// CHECK-FIXES: {{^ *}}IntToTrue = true;{{$}}
118
118
}
119
+
120
+ static int Value = 1 ;
121
+
122
+ bool Function1 () {
123
+ bool Result = Value == 1 ? 1 : 0 ;
124
+ // CHECK-MESSAGES: :[[@LINE-1]]:30: warning: converting integer literal to bool
125
+ // CHECK-MESSAGES: :[[@LINE-2]]:34: warning: converting integer literal to bool
126
+ // CHECK-FIXES: {{^ *}}bool Result = Value == 1 ? true : false;{{$}}
127
+ return Result;
128
+ }
129
+
130
+ bool Function2 () {
131
+ return Value == 1 ? 1 : 0 ;
132
+ // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: converting integer literal to bool
133
+ // CHECK-MESSAGES: :[[@LINE-2]]:27: warning: converting integer literal to bool
134
+ // CHECK-FIXES: {{^ *}}return Value == 1 ? true : false;{{$}}
135
+ }
136
+
137
+ void foo () {
138
+ bool Result;
139
+ Result = Value == 1 ? true : 0 ;
140
+ // CHECK-MESSAGES: :[[@LINE-1]]:32: warning: converting integer literal to bool
141
+ // CHECK-FIXES: {{^ *}}Result = Value == 1 ? true : false;{{$}}
142
+ Result = Value == 1 ? false : bool (0 );
143
+ // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: converting integer literal to bool
144
+ // CHECK-FIXES: {{^ *}}Result = Value == 1 ? false : false;{{$}}
145
+ Result = Value == 1 ? (bool )0 : false ;
146
+ // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: converting integer literal to bool
147
+ // CHECK-FIXES: {{^ *}}Result = Value == 1 ? false : false;{{$}}
148
+ }
0 commit comments