-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Bruno Haible <[EMAIL PROTECTED]> writes:
> Hi Mark, > > > I see the following: > > > > #if 0 > > # ifndef UINT_FAST16_MAX > > # if < 32 > > # define UINT_FAST16_MAX (((1 << ( - 1)) - 1) * 2 + 1) > > # else > > # define UINT_FAST16_MAX (((1UL << ( - 1)) - 1) * 2 + 1) > > # endif > > # endif > > #else > > > > I am not at all certain that all compilers will ignore illegal > > preprocessor expressions in a '#if 0' block. So, should some > > other expression for '# if < 32' be generated? > > Let's see :-) There are chances that all compilers will ignore > these, because > - ISO C 99 section 6.10.1 paragraph 5 says so, Hmmm... ISO C 89 is the standard of interest in this case, otherwise a conforming <stdint.h> file would already exist. The C89 standard has slighly different section numbers.... in this case, section 6.8.1, but the text appears to be the same. FWIW: I just tried a simple test case on a Cray Y-MP EL running UNICOS 9.0 and it does indeed skip that entire block. > - there is no reason and never was a reason to evaluate #if > conditionals inside a #if 0 block. Thanks, -- Mark -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (FreeBSD) iD8DBQFEkuJjCg7APGsDnFERArX8AJ0a/RS+pK47cOR1krRW60NhQLWcEQCdEdaO I3e51O7oV6sHSA3DH2lNvWY= =qtgE -----END PGP SIGNATURE-----