rob at codeweavers.com
Wed Jan 17 13:41:01 CST 2007
Joel Parker wrote:
> As seen here <http://source.winehq.org/source/include/winnt.h#L152>,
> we seem to be going through a lot of trouble to enable anonymous structs
> and unions for those compilers that support it. Why do this, especially
> when we need to name them anyway for those that don't?
For compatibility with source code without NONAMELESSUNIONS/STRUCTS that
is compiled with compilers that support anonymous structs and unions.
> My reason for asking is that I'm doing a casual ANSI sweep of the code,
> and anonymous unions are causing problems (they're not allowed). I could
> just put in a test for __STRICT_ANSI__ and disable them if found, but
> that feels like gaming the system, and it's not a standard macro anyway.
> The best way (other than just naming all the structs/unions) is to test
> for __STDC__, but GCC includes that one even when not using -ansi mode.
I have never been a fan of changing code for the benefit of enabling
obscure compiler options that don't help to fix bugs, but I guess the
check for __STRICT_ANSI__ is the best.
More information about the wine-devel