Alexandre Julliard : include: Specify explicit alignment for __int64 types.

Alexandre Julliard julliard at winehq.org
Mon Nov 23 08:49:50 CST 2009


Module: wine
Branch: master
Commit: 7f69436ea874ad7c0b39f0f60e07d26da3dcb353
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=7f69436ea874ad7c0b39f0f60e07d26da3dcb353

Author: Alexandre Julliard <julliard at 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;
 




More information about the wine-cvs mailing list