Module: wine Branch: master Commit: 7f69436ea874ad7c0b39f0f60e07d26da3dcb353 URL: http://source.winehq.org/git/wine.git/?a=commit;h=7f69436ea874ad7c0b39f0f60e...
Author: Alexandre Julliard julliard@winehq.org Date: Sat Nov 21 14:23:22 2009 +0100
include: Specify explicit alignment for __int64 types.
---
dlls/msvcrt/msvcrt.h | 12 ++++++------ include/msvcrt/crtdefs.h | 12 +++++++++++- include/msvcrt/io.h | 4 ++-- include/msvcrt/stdio.h | 2 +- include/msvcrt/wchar.h | 2 +- include/ws2def.h | 2 +- 6 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index 337a17c..1de0c7b 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -64,8 +64,8 @@ typedef unsigned int MSVCRT__dev_t; typedef int MSVCRT__off_t; typedef int MSVCRT_clock_t; typedef int MSVCRT___time32_t; -typedef __int64 MSVCRT___time64_t; -typedef __int64 MSVCRT_fpos_t; +typedef __int64 DECLSPEC_ALIGN(8) MSVCRT___time64_t; +typedef __int64 DECLSPEC_ALIGN(8) MSVCRT_fpos_t;
typedef void (*__cdecl MSVCRT_terminate_handler)(void); typedef void (*__cdecl MSVCRT_terminate_function)(void); @@ -316,7 +316,7 @@ struct MSVCRT__finddata32i64_t { MSVCRT___time32_t time_create; MSVCRT___time32_t time_access; MSVCRT___time32_t time_write; - __int64 size; + __int64 DECLSPEC_ALIGN(8) size; char name[260]; };
@@ -334,7 +334,7 @@ struct MSVCRT__finddata64_t { MSVCRT___time64_t time_create; MSVCRT___time64_t time_access; MSVCRT___time64_t time_write; - __int64 size; + __int64 DECLSPEC_ALIGN(8) size; char name[260]; };
@@ -352,7 +352,7 @@ struct MSVCRT__wfinddata32i64_t { MSVCRT___time32_t time_create; MSVCRT___time32_t time_access; MSVCRT___time32_t time_write; - __int64 size; + __int64 DECLSPEC_ALIGN(8) size; MSVCRT_wchar_t name[260]; };
@@ -370,7 +370,7 @@ struct MSVCRT__wfinddata64_t { MSVCRT___time64_t time_create; MSVCRT___time64_t time_access; MSVCRT___time64_t time_write; - __int64 size; + __int64 DECLSPEC_ALIGN(8) size; MSVCRT_wchar_t name[260]; };
diff --git a/include/msvcrt/crtdefs.h b/include/msvcrt/crtdefs.h index 2a101a9..61116e9 100644 --- a/include/msvcrt/crtdefs.h +++ b/include/msvcrt/crtdefs.h @@ -80,6 +80,16 @@ # endif #endif
+#ifndef DECLSPEC_ALIGN +# if defined(_MSC_VER) && (_MSC_VER >= 1300) && !defined(MIDL_PASS) +# define DECLSPEC_ALIGN(x) __declspec(align(x)) +# elif defined(__GNUC__) +# define DECLSPEC_ALIGN(x) __attribute__((aligned(x))) +# else +# define DECLSPEC_ALIGN(x) +# endif +#endif + #ifndef _MSVCRT_LONG_DEFINED #define _MSVCRT_LONG_DEFINED /* we need 32-bit longs even on 64-bit */ @@ -129,7 +139,7 @@ typedef __msvcrt_long __time32_t; #endif
#ifndef _TIME64_T_DEFINED -typedef __int64 __time64_t; +typedef __int64 DECLSPEC_ALIGN(8) __time64_t; #define _TIME64_T_DEFINED #endif
diff --git a/include/msvcrt/io.h b/include/msvcrt/io.h index e15dff1..c7ba9ab 100644 --- a/include/msvcrt/io.h +++ b/include/msvcrt/io.h @@ -44,7 +44,7 @@ struct _finddatai64_t time_t time_create; time_t time_access; time_t time_write; - __int64 size; + __int64 DECLSPEC_ALIGN(8) size; char name[260]; }; #endif /* _FINDDATA_T_DEFINED */ @@ -65,7 +65,7 @@ struct _wfinddatai64_t { time_t time_create; time_t time_access; time_t time_write; - __int64 size; + __int64 DECLSPEC_ALIGN(8) size; wchar_t name[260]; }; #endif /* _WFINDDATA_T_DEFINED */ diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h index 1b3872c..b309ebb 100644 --- a/include/msvcrt/stdio.h +++ b/include/msvcrt/stdio.h @@ -72,7 +72,7 @@ typedef struct _iobuf #endif /* _FILE_DEFINED */
#ifndef _FPOS_T_DEFINED -typedef __int64 fpos_t; +typedef __int64 DECLSPEC_ALIGN(8) fpos_t; #define _FPOS_T_DEFINED #endif
diff --git a/include/msvcrt/wchar.h b/include/msvcrt/wchar.h index fe76166..66d3a81 100644 --- a/include/msvcrt/wchar.h +++ b/include/msvcrt/wchar.h @@ -111,7 +111,7 @@ struct _wfinddatai64_t { time_t time_create; time_t time_access; time_t time_write; - __int64 size; + __int64 DECLSPEC_ALIGN(8) size; wchar_t name[260]; };
diff --git a/include/ws2def.h b/include/ws2def.h index f2f7223..585647b 100644 --- a/include/ws2def.h +++ b/include/ws2def.h @@ -58,7 +58,7 @@ typedef struct _CSADDR_INFO { typedef struct WS(sockaddr_storage) { short ss_family; char __ss_pad1[WS(_SS_PAD1SIZE)]; - __int64 __ss_align; + __int64 DECLSPEC_ALIGN(8) __ss_align; char __ss_pad2[WS(_SS_PAD2SIZE)]; } SOCKADDR_STORAGE, *PSOCKADDR_STORAGE, *LPSOCKADDR_STORAGE;