]> git.saurik.com Git - apple/objc4.git/blob - test/bool.c
c12cc32eecd84e558b4877e529e7f14130ef6897
[apple/objc4.git] / test / bool.c
1 // TEST_CFLAGS -funsigned-char
2 // (verify -funsigned-char doesn't change the definition of BOOL)
3
4 #include "test.h"
5 #include <objc/objc.h>
6
7 #if TARGET_OS_OSX
8 # define RealBool 0
9 #elif TARGET_OS_IOS || TARGET_OS_BRIDGE
10 # if (__arm__ && !__armv7k__) || __i386__
11 # define RealBool 0
12 # else
13 # define RealBool 1
14 # endif
15 #else
16 # define RealBool 1
17 #endif
18
19 #if __OBJC__ && !defined(__OBJC_BOOL_IS_BOOL)
20 # error no __OBJC_BOOL_IS_BOOL
21 #endif
22
23 #if RealBool != OBJC_BOOL_IS_BOOL
24 # error wrong OBJC_BOOL_IS_BOOL
25 #endif
26
27 #if RealBool == OBJC_BOOL_IS_CHAR
28 # error wrong OBJC_BOOL_IS_CHAR
29 #endif
30
31 int main()
32 {
33 const char *expected __unused =
34 #if RealBool
35 "B"
36 #else
37 "c"
38 #endif
39 ;
40 #if __OBJC__
41 const char *enc = @encode(BOOL);
42 testassert(0 == strcmp(enc, expected));
43 #endif
44 succeed(__FILE__);
45 }