aboutsummaryrefslogtreecommitdiffstats
path: root/community/chromium/gcc-fno-delete-null-pointer-checks.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/chromium/gcc-fno-delete-null-pointer-checks.patch')
-rw-r--r--community/chromium/gcc-fno-delete-null-pointer-checks.patch19
1 files changed, 19 insertions, 0 deletions
diff --git a/community/chromium/gcc-fno-delete-null-pointer-checks.patch b/community/chromium/gcc-fno-delete-null-pointer-checks.patch
new file mode 100644
index 0000000000..792cef60f6
--- /dev/null
+++ b/community/chromium/gcc-fno-delete-null-pointer-checks.patch
@@ -0,0 +1,19 @@
+diff --git a/v8/BUILD.gn b/v8/BUILD.gn
+index 3c03942..870b1e6 100644
+--- ./v8/BUILD.gn
++++ ./v8/BUILD.gn
+@@ -577,6 +577,14 @@ config("toolchain") {
+ defines += [ "V8_ANDROID_LOG_STDOUT" ]
+ }
+
++ if (!is_win && !is_clang) {
++ # GCC 6+ can optimize away pointer comparisons to null. This is
++ # problematic as V8 encodes Values through tagged pointers and comparisons
++ # with 0 are actually necessary in many cases. As a temporary Workaround
++ # we disable this optimization. See: https://crbug.com/v8/3782
++ cflags += [ "-fno-delete-null-pointer-checks" ]
++ }
++
+ # TODO(jochen): Support v8_enable_prof on Windows.
+ # TODO(jochen): Add support for compiling with simulators.
+