Fix bug on gcc13
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
This commit is contained in:
parent
1047bf482c
commit
443480e5d2
@ -0,0 +1,41 @@
|
|||||||
|
From a6cc04e2e21212cd6dae6d868002549bfd0cba21 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stephan Hartmann <stha09@googlemail.com>
|
||||||
|
Date: Mon, 3 Apr 2023 12:19:34 +0200
|
||||||
|
Subject: [PATCH 2/2] 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}
|
||||||
|
---
|
||||||
|
deps/v8/src/codegen/tnode.h | 5 +++--
|
||||||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/deps/v8/src/codegen/tnode.h b/deps/v8/src/codegen/tnode.h
|
||||||
|
index 1f2a3dcfd9c5e3007d2de5bbe730eaac1aec3066..9360425c2edfc5e2369152a0f75aae21f3120645 100644
|
||||||
|
--- a/deps/v8/src/codegen/tnode.h
|
||||||
|
+++ b/deps/v8/src/codegen/tnode.h
|
||||||
|
@@ -266,8 +266,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> {
|
||||||
|
--
|
||||||
|
2.40.0
|
||||||
|
|
@ -148,6 +148,7 @@ Source111: undici-5.21.0-stripped.tar.gz
|
|||||||
Source112: wasi-sdk-14.0-linux.tar.gz
|
Source112: wasi-sdk-14.0-linux.tar.gz
|
||||||
|
|
||||||
Patch: 0001-Remove-unused-OpenSSL-config.patch
|
Patch: 0001-Remove-unused-OpenSSL-config.patch
|
||||||
|
Patch: 0002-libstdc-fix-incomplete-type-in-v8-internal-is_subtyp.patch
|
||||||
|
|
||||||
%if 0%{?nodejs_default}
|
%if 0%{?nodejs_default}
|
||||||
%global pkgname nodejs
|
%global pkgname nodejs
|
||||||
|
Loading…
Reference in New Issue
Block a user