summaryrefslogtreecommitdiffstats
path: root/chromium-69.0.3497.81-gcc8-alignof.patch
blob: 234b391824871e0a309b0beaf5c858ae36f8dddc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
diff -up chromium-69.0.3497.81/mojo/public/c/system/macros.h.gcc8-alignof chromium-69.0.3497.81/mojo/public/c/system/macros.h
--- chromium-69.0.3497.81/mojo/public/c/system/macros.h.gcc8-alignof	2018-09-06 10:11:54.336432699 -0400
+++ chromium-69.0.3497.81/mojo/public/c/system/macros.h	2018-09-06 10:13:56.555727572 -0400
@@ -27,7 +27,13 @@
   (sizeof(void*) == 4 ? 32 : 0)
 
 // Like the C++11 |alignof| operator.
-#if __cplusplus >= 201103L
+#if defined(__GNUC__) && __GNUC__ >= 8
+// GCC 8 has changed the alignof operator to return the minimal alignment
+// required by the target ABI, instead of the preferred alignment.
+// This means that on 32-bit x86, it will return 4 instead of 8.
+// Use __alignof__ instead to avoid this.
+#define MOJO_ALIGNOF(type) __alignof__(type)
+#elif __cplusplus >= 201103L
 #define MOJO_ALIGNOF(type) alignof(type)
 #elif defined(__GNUC__)
 #define MOJO_ALIGNOF(type) __alignof__(type)