summarylogtreecommitdiffstats
path: root/fix_return_size.patch
blob: 37a51ba7a4633afcbeaa41d209d32d333983ac25 (plain)
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
47
48
49
50
--- src/libffi-3.2.1/src/x86/ffi.c.orig	2016-07-20 21:24:49.000771900 +0100
+++ src/libffi-3.2.1/src/x86/ffi.c	2016-07-20 21:25:09.918786700 +0100
@@ -65,7 +65,8 @@
   if ((ecif->cif->flags == FFI_TYPE_STRUCT
        || ecif->cif->flags == FFI_TYPE_MS_STRUCT)
 #ifdef X86_WIN64
-      && ((ecif->cif->rtype->size & (1 | 2 | 4 | 8)) == 0)
+      && (ecif->cif->rtype->size != 1 && ecif->cif->rtype->size != 2
+          && ecif->cif->rtype->size != 4 && ecif->cif->rtype->size != 8)
 #endif
       )
     {
@@ -108,7 +109,7 @@
 #ifdef X86_WIN64
       if (z > FFI_SIZEOF_ARG
           || ((*p_arg)->type == FFI_TYPE_STRUCT
-              && (z & (1 | 2 | 4 | 8)) == 0)
+              && (z != 1 && z != 2 && z != 4 && z != 8))
 #if FFI_TYPE_DOUBLE != FFI_TYPE_LONGDOUBLE
           || ((*p_arg)->type == FFI_TYPE_LONGDOUBLE)
 #endif
@@ -360,7 +361,8 @@
 #ifdef X86_WIN64
   if (rvalue == NULL
       && cif->flags == FFI_TYPE_STRUCT
-      && ((cif->rtype->size & (1 | 2 | 4 | 8)) == 0))
+      && cif->rtype->size != 1 && cif->rtype->size != 2
+      && cif->rtype->size != 4 && cif->rtype->size != 8)
     {
       ecif.rvalue = alloca((cif->rtype->size + 0xF) & ~0xF);
     }
@@ -545,7 +547,8 @@
   if ((cif->flags == FFI_TYPE_STRUCT
        || cif->flags == FFI_TYPE_MS_STRUCT)
 #ifdef X86_WIN64
-      && ((cif->rtype->size & (1 | 2 | 4 | 8)) == 0)
+      && ((cif->rtype->size != 1 && cif->rtype->size != 2
+           && cif->rtype->size != 4 && cif->rtype->size != 8))
 #endif
       )
     {
@@ -608,7 +611,7 @@
 #ifdef X86_WIN64
       if (z > FFI_SIZEOF_ARG
           || ((*p_arg)->type == FFI_TYPE_STRUCT
-              && (z & (1 | 2 | 4 | 8)) == 0)
+              && (z != 1 && z != 2 && z != 4 && z != 8))
 #if FFI_TYPE_DOUBLE != FFI_TYPE_LONGDOUBLE
           || ((*p_arg)->type == FFI_TYPE_LONGDOUBLE)
 #endif