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