include: Added macros for unions and structs that should remain nameless regardless NONAMELESSUNION/NONAMELESSSTRUCT definition.

oldstable
Jacek Caban 2010-12-23 16:05:29 +01:00 committed by Alexandre Julliard
parent fea5767a02
commit 45be01952a
3 changed files with 47 additions and 9 deletions

View File

@ -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)

View File

@ -46,15 +46,15 @@ typedef struct _INTERNET_CACHE_CONFIG_INFOA
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 @@ typedef struct _INTERNET_CACHE_CONFIG_INFOW
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;

View File

@ -230,6 +230,44 @@ extern "C" {
#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)