include: Added macros for unions and structs that should remain nameless regardless NONAMELESSUNION/NONAMELESSSTRUCT definition.
diff --git a/Maketest.rules.in b/Maketest.rules.in index 31404d5..5725d41 100644 --- a/Maketest.rules.in +++ b/Maketest.rules.in
@@ -10,7 +10,7 @@ # DLLFLAGS = @DLLFLAGS@ -DEFS = -DWINE_STRICT_PROTOTYPES $(EXTRADEFS) +DEFS = -DWINE_STRICT_PROTOTYPES -DWINE_NO_NAMELESS_EXTENSION $(EXTRADEFS) MODULE = $(TESTDLL:%.dll=%)_test.exe TESTRESULTS = $(C_SRCS:.c=.ok)
diff --git a/include/winineti.h b/include/winineti.h index 27efa50..4f86db6 100644 --- a/include/winineti.h +++ b/include/winineti.h
@@ -46,15 +46,15 @@ BOOL fPerUser; DWORD dwSyncMode; DWORD dwNumCachePaths; - union + __C89_NAMELESSUNION union { - struct + __C89_NAMELESSSTRUCT struct { CHAR CachePath[MAX_PATH]; DWORD dwCacheSize; - } DUMMYSTRUCTNAME; + } __C89_NAMELESSSTRUCTNAME; INTERNET_CACHE_CONFIG_PATH_ENTRYA CachePaths[ANYSIZE_ARRAY]; - } DUMYUNIONNAME; + } __C89_NAMELESSUNIONNAME; DWORD dwNormalUsage; DWORD dwExemptUsage; } INTERNET_CACHE_CONFIG_INFOA, *LPINTERNET_CACHE_CONFIG_INFOA; @@ -68,15 +68,15 @@ BOOL fPerUser; DWORD dwSyncMode; DWORD dwNumCachePaths; - union + __C89_NAMELESSUNION union { - struct + __C89_NAMELESSSTRUCT struct { WCHAR CachePath[MAX_PATH]; DWORD dwCacheSize; - } DUMMYSTRUCTNAME; + } __C89_NAMELESSSTRUCTNAME; INTERNET_CACHE_CONFIG_PATH_ENTRYW CachePaths[ANYSIZE_ARRAY]; - } ; + } __C89_NAMELESSUNIONNAME; DWORD dwNormalUsage; DWORD dwExemptUsage; } INTERNET_CACHE_CONFIG_INFOW, *LPINTERNET_CACHE_CONFIG_INFOW;
diff --git a/include/winnt.h b/include/winnt.h index 65dde7a..6cd97bc 100644 --- a/include/winnt.h +++ b/include/winnt.h
@@ -230,6 +230,44 @@ #define DUMMYUNIONNAME8 u8 #endif /* !defined(NONAMELESSUNION) */ +#ifndef __C89_NAMELESSSTRUCT +# if !defined(__WINESRC__) && !defined(WINE_NO_NAMELESS_EXTENSION) +# ifdef __GNUC__ + /* Anonymous structs support starts with gcc 2.96/g++ 2.95 */ +# if (__GNUC__ > 2) || ((__GNUC__ == 2) && ((__GNUC_MINOR__ > 95) || ((__GNUC_MINOR__ == 95) && defined(__cplusplus)))) +# define __C89_NAMELESSSTRUCT __extension__ +# endif +# elif defined(_MSC_VER) +# define __C89_NAMELESSSTRUCT +# endif +# endif +# ifdef __C89_NAMELESSSTRUCT +# define __C89_NAMELESSSTRUCTNAME +# else +# define __C89_NAMELESSSTRUCT +# define __C89_NAMELESSSTRUCTNAME DUMMYSTRUCTNAME +# endif +#endif + +#ifndef __C89_NAMELESSUNION +# if !defined(__WINESRC__) && !defined(WINE_NO_NAMELESS_EXTENSION) +# ifdef __GNUC__ + /* Anonymous unions support starts with gcc 2.96/g++ 2.95 */ +# if (__GNUC__ > 2) || ((__GNUC__ == 2) && ((__GNUC_MINOR__ > 95) || ((__GNUC_MINOR__ == 95) && defined(__cplusplus)))) +# define __C89_NAMELESSUNION __extension__ +# endif +# elif defined(_MSC_VER) +# define __C89_NAMELESSUNION +# endif +# endif +# ifdef __C89_NAMELESSUNION +# define __C89_NAMELESSUNIONNAME +# else +# define __C89_NAMELESSUNION +# define __C89_NAMELESSUNIONNAME DUMMYUNIONNAME +# endif +#endif + /* C99 restrict support */ #if defined(ENABLE_RESTRICTED) && !defined(MIDL_PASS) && !defined(RC_INVOKED)