Package: wine / 5.0.3-3

warnings/arm-longdouble.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
description: sizeof(long double)=8 on arm architectures
author: Michael Gilbert <mgilbert@debian.org>

--- a/dlls/msvcrt/string.c
+++ b/dlls/msvcrt/string.c
@@ -1240,7 +1240,13 @@ int CDECL MSVCRT__atoldbl(MSVCRT__LDOUBL
   long double ld;
   TRACE("str %s value %p\n",str,value);
   ld = strtold(str,0);
+
+#ifdef __arm__
+  memcpy(value, &ld, 8);
+#else
   memcpy(value, &ld, 10);
+#endif
+
 #else
   FIXME("stub, str %s value %p\n",str,value);
 #endif
@@ -1256,7 +1262,13 @@ int CDECL __STRINGTOLD( MSVCRT__LDOUBLE
     long double ld;
     FIXME("%p %p %s %x partial stub\n", value, endptr, str, flags );
     ld = strtold(str,0);
+
+#ifdef __arm__
+    memcpy(value, &ld, 8);
+#else
     memcpy(value, &ld, 10);
+#endif
+
 #else
     FIXME("%p %p %s %x stub\n", value, endptr, str, flags );
 #endif
@@ -2164,7 +2176,12 @@ int CDECL MSVCRT_I10_OUTPUT(MSVCRT__LDOU
     char buf[I10_OUTPUT_MAX_PREC+9]; /* 9 = strlen("0.e+0000") + '\0' */
     char *p;
 
+#ifdef __arm__
+    memcpy(&ld, &ld80, 8);
+#else
     memcpy(&ld, &ld80, 10);
+#endif
+
     d = ld;
     TRACE("(%lf %d %x %p)\n", d, prec, flag, data);