On Sat, 25 Apr 2009, Denis Onischenko wrote:

> Thanks for the patch.
> 
> There are another error while building linux kernel with GCC 4.5.0
> revision 146771.
> 
> The minimal code for reproducing the error looks like:
> 
> extern unsigned int __invalid_size_argument;
> #define TYPECHECK(t)    ( sizeof(t) == sizeof(t[1]) ?  sizeof(t) :
> __invalid_size_argument )
> 
> enum {
>      ENUM_VALUE_NAME = TYPECHECK(int),

Is the kernel using this sort of non-integer-constant-expression in 
bit-field widths as well?  Sizes of file-scope arrays (OK, a special case 
for that was added for WINE)?  Null pointer constants (that's much more 
problematic to add special cases for)?  __builtin_choose_expr conditions?  
It seems to be making rather a lot of use of an old obscure undocumented 
extension.

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to