summaryrefslogtreecommitdiff
path: root/gnulib/doc/posix-headers/stdbool.texi
blob: de27763bc5d18586a20e7c196e00905dc99f80f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
@node stdbool.h
@section @file{stdbool.h}

POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/basedefs/stdbool.h.html}

Gnulib module: stdbool

Portability problems fixed by Gnulib:
@itemize
@item
This header file is missing on some platforms:
AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1.
@item
Some compilers have bugs relating to @samp{bool}.
@item
This header file defines @code{true} incorrectly on some platforms:
OpenBSD 4.7 with gcc 2.95.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
@code{<stdbool.h>} must be #included before @samp{_Bool} can be used.
@item
You cannot assume that @code{_Bool} is a typedef; it might be a macro.
@item
Bit-fields of type @samp{bool} are not supported.  Portable code
should use @samp{unsigned int foo : 1;} rather than @samp{bool foo : 1;}.
@item
Casts and automatic conversions to @samp{bool} don't test against the
zero value or the null pointer, as they should.  Such casts should only
be used if the casted value is known to be equal to 0 or 1.
@item
You cannot assume that casting a floating point literal to @samp{bool} will
result in a constant expression.
@end itemize