aboutsummaryrefslogtreecommitdiff
path: root/www/deno/files/patch-cargo-crates_v8_v8_include_v8config.h
diff options
context:
space:
mode:
Diffstat (limited to 'www/deno/files/patch-cargo-crates_v8_v8_include_v8config.h')
-rw-r--r--www/deno/files/patch-cargo-crates_v8_v8_include_v8config.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/www/deno/files/patch-cargo-crates_v8_v8_include_v8config.h b/www/deno/files/patch-cargo-crates_v8_v8_include_v8config.h
new file mode 100644
index 000000000000..41c2307ea961
--- /dev/null
+++ b/www/deno/files/patch-cargo-crates_v8_v8_include_v8config.h
@@ -0,0 +1,21 @@
+--- cargo-crates/v8-0.34.0/v8/include/v8config.h.orig 2020-06-26 16:28:04 UTC
++++ cargo-crates/v8-0.34.0/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))