summaryrefslogtreecommitdiff
path: root/net-libs/nodejs/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-04-27 06:16:36 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-04-27 06:16:36 +0100
commit4936e2350e0b4aae482b12c7ce02aaa3c7e64842 (patch)
tree90d2fac7757077a3f7dc724e89fb40c1e843cf0a /net-libs/nodejs/files
parentc23a7f2796a181331872d4c55ea25940d1386b3d (diff)
gentoo auto-resync : 27:04:2023 - 06:16:36
Diffstat (limited to 'net-libs/nodejs/files')
-rw-r--r--net-libs/nodejs/files/nodejs-fix-incomplete-type.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/net-libs/nodejs/files/nodejs-fix-incomplete-type.patch b/net-libs/nodejs/files/nodejs-fix-incomplete-type.patch
new file mode 100644
index 000000000000..e204421597d0
--- /dev/null
+++ b/net-libs/nodejs/files/nodejs-fix-incomplete-type.patch
@@ -0,0 +1,44 @@
+From 0164c09d4025df2bd1a42f14de29166aa0e7ac7a Mon Sep 17 00:00:00 2001
+From: Richard Lau <rlau@redhat.com>
+Date: Wed, 26 Apr 2023 15:46:00 -0400
+Subject: [PATCH] deps: V8: cherry-pick c5ab3e4f0c5a
+
+Original commit message:
+
+ libstdc++: fix incomplete type in v8::internal::is_subtype<T, U>
+
+ Using std::convertible with incomplete types is UB. However, till
+ GCC 12 it was accepted and std::convertible returned false.
+ This fails now for e.g. v8::internal::WasmArray. Use
+ std::disjunction and std::conjunction instead which are short-
+ circuiting, because std::is_base_of<T, T> is already true.
+
+ Bug: chromium:957519
+ Change-Id: Ia26643dbdf0fb00d5586c71ae6b18e8d0f3cf96e
+ Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4394663
+ Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
+ Reviewed-by: Clemens Backes <clemensb@chromium.org>
+ Cr-Commit-Position: refs/heads/main@{#86904}
+
+Refs: https://github.com/v8/v8/commit/c5ab3e4f0c5a3ce880941184ef8447c27cd19a93
+---
+ common.gypi | 2 +-
+ deps/v8/src/codegen/tnode.h | 5 +++--
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/deps/v8/src/codegen/tnode.h b/deps/v8/src/codegen/tnode.h
+index cd7bd8db98c24..7629e89ad693f 100644
+--- a/deps/v8/src/codegen/tnode.h
++++ b/deps/v8/src/codegen/tnode.h
+@@ -269,8 +269,9 @@ using BuiltinPtr = Smi;
+ template <class T, class U>
+ struct is_subtype {
+ static const bool value =
+- std::is_base_of<U, T>::value || (std::is_same<U, MaybeObject>::value &&
+- std::is_convertible<T, Object>::value);
++ std::disjunction<std::is_base_of<U, T>,
++ std::conjunction<std::is_same<U, MaybeObject>,
++ std::is_convertible<T, Object>>>::value;
+ };
+ template <class T1, class T2, class U>
+ struct is_subtype<UnionT<T1, T2>, U> {