1 --- src/3rdparty/chromium/v8/include/v8config.h.orig 2021-12-15 16:12:54 UTC 2 +++ src/3rdparty/chromium/v8/include/v8config.h 3 @@ -276,7 +276,18 @@ 4 # define V8_HAS_ATTRIBUTE_WARN_UNUSED_RESULT \ 5 (__has_attribute(warn_unused_result)) 6 7 +// Work around Clang bug present in 9.0.1, at least. 8 +// 9 +// Clang stores alignment as a 32-bit unsigned integer, but V8 only uses 10 +// V8_ASSUME_ALIGNED() for a 4GB (2^32) alignment 11 +// (kPtrComprIsolateRootAlignment). As such, the alignment overflows and 12 +// becomes zero, triggering an internal Clang assertion that alignment must not 13 +// be zero. 14 +#if 0 15 # define V8_HAS_BUILTIN_ASSUME_ALIGNED (__has_builtin(__builtin_assume_aligned)) 16 +#else 17 +# define V8_HAS_BUILTIN_ASSUME_ALIGNED 0 18 +#endif 19 # define V8_HAS_BUILTIN_BSWAP16 (__has_builtin(__builtin_bswap16)) 20 # define V8_HAS_BUILTIN_BSWAP32 (__has_builtin(__builtin_bswap32)) 21 # define V8_HAS_BUILTIN_BSWAP64 (__has_builtin(__builtin_bswap64)) 22