[cfe-dev] linux build fix

Neil Booth neil at daikokuya.co.uk
Sun Dec 9 14:38:59 PST 2007

Chris Lattner wrote:-

> #define CHAR_BIT  __builtin_config_info("target_char_bit")
> #define SCHAR_MAX __builtin_config_info("target_schar_max")

Hmm, sounds familiar :)

> The 'risk' to this is that it will change the preprocessed output of  
> the compiler vs GCC.  For example, something silly like this will  
> expand differently.
> #define foo(x) # x
> foo(CHAR_BIT);
> However, anything that relies on that is dangerously non-conformant  
> anyway, so I don't feel too bad about breaking it :)

?  That always produces "CHAR_BIT".  If you an extra level of
indirection, so that it is actually expanded, presumably you and
GCC would get "8" each too.  I don't see a problem here.


More information about the cfe-dev mailing list