c: Add C2X BOOL_MAX and BOOL_WIDTH to limits.h
authorJoseph Myers <joseph@codesourcery.com>
Fri, 10 Jul 2020 21:35:51 +0000 (21:35 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Fri, 10 Jul 2020 21:35:51 +0000 (21:35 +0000)
commitb2104239c8f23ff3463dba64f1c9266896ce4fae
tree4177a3e3664db3169d964d1a98cda4eeefca6d39
parented1d3639e42dccc9372f11c6231c3ffe0589fd1c
c: Add C2X BOOL_MAX and BOOL_WIDTH to limits.h

C2X adds BOOL_MAX and BOOL_WIDTH macros to <limits.h>.  As GCC only
supports values 0 and 1 for _Bool (regardless of the number of bits in
the representation, other bits are padding bits and if any of them are
nonzero, the representation is a trap representation), the values of
those macros can just be hardcoded directly in <limits.h> rather than
needing corresponding predefined macros.

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

gcc/
* glimits.h [__STDC_VERSION__ > 201710L] (BOOL_MAX, BOOL_WIDTH):
New macros.

gcc/testsuite/
* gcc.dg/c11-bool-limits-1.c, gcc.dg/c2x-bool-limits-1.c: New
tests.
gcc/glimits.h
gcc/testsuite/gcc.dg/c11-bool-limits-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c2x-bool-limits-1.c [new file with mode: 0644]