diff options
Diffstat (limited to 'www/chromium/files/patch-v8_include_v8config.h')
-rw-r--r-- | www/chromium/files/patch-v8_include_v8config.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/www/chromium/files/patch-v8_include_v8config.h b/www/chromium/files/patch-v8_include_v8config.h new file mode 100644 index 000000000000..18b8adbb56b8 --- /dev/null +++ b/www/chromium/files/patch-v8_include_v8config.h @@ -0,0 +1,21 @@ +--- v8/include/v8config.h.orig 2020-03-03 18:55:34 UTC ++++ v8/include/v8config.h +@@ -273,7 +273,18 @@ + # define V8_HAS_ATTRIBUTE_WARN_UNUSED_RESULT \ + (__has_attribute(warn_unused_result)) + ++// Work around Clang bug present in 9.0.1, at least. ++// ++// Clang stores alignment as a 32-bit unsigned integer, but V8 only uses ++// V8_ASSUME_ALIGNED() for a 4GB (2^32) alignment ++// (kPtrComprIsolateRootAlignment). As such, the alignment overflows and ++// becomes zero, triggering an internal Clang assertion that alignment must not ++// be zero. ++#if 0 + # define V8_HAS_BUILTIN_ASSUME_ALIGNED (__has_builtin(__builtin_assume_aligned)) ++#else ++# define V8_HAS_BUILTIN_ASSUME_ALIGNED 0 ++#endif + # define V8_HAS_BUILTIN_BSWAP16 (__has_builtin(__builtin_bswap16)) + # define V8_HAS_BUILTIN_BSWAP32 (__has_builtin(__builtin_bswap32)) + # define V8_HAS_BUILTIN_BSWAP64 (__has_builtin(__builtin_bswap64)) |