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.

Thoughts?

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.

--
Rob Shearman



Reply via email to