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