1// RUN: %clang_cc1 -Werror=objc-signed-char-bool %s -fixit-recompile -fixit-to-temporary -E -o - | FileCheck %s
2
3typedef signed char BOOL;
4
5BOOL b;
6
7int main() {
8  BOOL b = 2;
9  // CHECK: BOOL b = 2 ? YES : NO;
10
11  b = b ? 2 : 1;
12  // CHECK: b = b ? 2 ? YES : NO : 1;
13
14  b = b ? 1 : 2;
15  // CHECK: b = b ? 1 : 2 ? YES : NO;
16
17  b = b ? 2 : 2;
18  // CHECK: b = b ? 2 ? YES : NO : 2 ? YES : NO;
19
20  b = 1 + 1;
21  // CHECK: b = (1 + 1) ? YES : NO;
22
23  b = 1 | 2;
24  // CHECK: b = (1 | 2) ? YES : NO;
25
26  b = 1 << 1;
27  // CHECK: b = (1 << 1) ? YES : NO;
28
29  int i;
30
31  b = i;
32  // CHECK: b = i ? YES : NO;
33
34  b = i * 2;
35  // CHECK: b = (i * 2) ? YES : NO;
36
37  b = 1 ? 2 : 3;
38  // CHECK: b = 1 ? 2 ? YES : NO : 3 ? YES : NO;
39}
40
41@interface BoolProp
42@property BOOL b;
43@end
44
45void f(BoolProp *bp) {
46  bp.b = 43;
47  // CHECK: bp.b = 43 ? YES : NO;
48
49  [bp setB:43];
50  // CHECK: [bp setB:43 ? YES : NO];
51
52  int i;
53
54  bp.b = i;
55  // CHECK: bp.b = i ? YES : NO;
56
57  bp.b = i + 1;
58  // CHECK: bp.b = (i + 1) ? YES : NO;
59}
60