]> git.saurik.com Git - apple/objc4.git/blob - test/bool.c
objc4-818.2.tar.gz
[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 # if __x86_64__
9 # define RealBool 0
10 # else
11 # define RealBool 1
12 # endif
13 #elif TARGET_OS_IOS || TARGET_OS_BRIDGE
14 # if (__arm__ && !__armv7k__) || __i386__
15 # define RealBool 0
16 # else
17 # define RealBool 1
18 # endif
19 #else
20 # define RealBool 1
21 #endif
22
23 #if __OBJC__ && !defined(__OBJC_BOOL_IS_BOOL)
24 # error no __OBJC_BOOL_IS_BOOL
25 #endif
26
27 #if RealBool != OBJC_BOOL_IS_BOOL
28 # error wrong OBJC_BOOL_IS_BOOL
29 #endif
30
31 #if RealBool == OBJC_BOOL_IS_CHAR
32 # error wrong OBJC_BOOL_IS_CHAR
33 #endif
34
35 int main()
36 {
37 const char *expected __unused =
38 #if RealBool
39 "B"
40 #else
41 "c"
42 #endif
43 ;
44 #if __OBJC__
45 const char *enc = @encode(BOOL);
46 testassert(0 == strcmp(enc, expected));
47 #endif
48 succeed(__FILE__);
49 }