On Wed, 12 Mar 2008, FX Coudert wrote: > I propose we implement target macros INT_FAST8_TYPE_SIZE (and so on for 16, 32 > and 64): they would be defined to -1 in defaults.h (meaning that int_fastN_t > types are not available), and independent targets can redefine them. > Front-ends and the middle-end can then use it if they feel like it. Attached > is a patch implementing this idea, including target definitions for linux, > darwin, mingw, AIX, IRIX, OpenBSD, Solaris 2.10.
TARGET_64BIT is not a constant but depends on command-line options and will not be defined at all for some GNU/Linux targets, so your Linux definition is incorrect. I suggest runtime-variable values depending on a target-independent macro such as LONG_TYPE_SIZE. Also remember the various GNU/Linux targets that do not use config/linux.h (alpha, rs6000, sparc). Note that the size is not enough for implementing <stdint.h>, you need the actual type as well to get C++ mangling right. So I suggest using type-name strings as is done for the other standard typedefs, rather than having these macros different from all the others, even if at first you do not define all the information needed for all the other <stdint.h> types and so do not implement <stdint.h> itself. -- Joseph S. Myers [EMAIL PROTECTED]