Richard Guenther <rguenther@suse.de> 23.02.10 15:06 >>> ~matz/bin/opt/bin/intel64/icc -S t.i t.i(3): error: expression must have a constant value const long x = (long)((struct X *)0)->j - (long)(struct X *)0; ^
t.i(4): error: expression must have a constant value char a[(long)((struct X *)0)->j - (long)(struct X *)0]; ... so your assertion is not true.
Interesting - I tried icl 10.1 and 11.0 (Windows), and both accept that construct, even when turning off MSVC compatibility.
stddef.h is required for a C89 environment.
Even the Linux kernel doesn't provide one, nor does it generally (there may be a few exceptions) use other than linux/stddef.h. So this only is a theoretical requirement, and I think the compiler ought to honor this by at least providing a compatibility switch for changes like the one above. Jan -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-kernel+help@opensuse.org