Lgtm On Wed, Dec 17, 2025 at 3:27 AM hongxu via lists.openembedded.org <[email protected]> wrote:
> Compile webkitgtk failed with ICE > ... > |tmp/work/x86-64-v3-oe-linux/webkitgtk/2.50.0/sources/webkitgtk-2.50.0/ > Source/WebCore/platform/ScrollAnimationMomentum.cpp:96:6: internal compiler > error: in expand_debug_locations, at cfgexpand.cc:6042 > ... > > Backport a patch from upstream to fix the issue [1][2] > > [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122394 > [2] > https://gcc.gnu.org/cgit/gcc/commit/?id=e55dcff97708a4937dc4d8736b8b3074ebbff6f3 > > Signed-off-by: Hongxu Jia <[email protected]> > --- > meta/recipes-devtools/gcc/gcc-15.2.inc | 1 + > .../gcc/gcc/0027-gcc15-pr122394.patch | 88 +++++++++++++++++++ > 2 files changed, 89 insertions(+) > create mode 100644 meta/recipes-devtools/gcc/gcc/0027-gcc15-pr122394.patch > > diff --git a/meta/recipes-devtools/gcc/gcc-15.2.inc > b/meta/recipes-devtools/gcc/gcc-15.2.inc > index 3ed4600361..b02cc4fcb9 100644 > --- a/meta/recipes-devtools/gcc/gcc-15.2.inc > +++ b/meta/recipes-devtools/gcc/gcc-15.2.inc > @@ -73,6 +73,7 @@ SRC_URI = "${BASEURI} \ > file://0024-Avoid-hardcoded-build-paths-into-ppc-libgcc.patch \ > file://0025-gcc-testsuite-tweaks-for-mips-OE.patch \ > file://0026-fix-pr90579-testcases.patch \ > + file://0027-gcc15-pr122394.patch \ > file://0001-mapper-localhost-might-not-be-known.patch \ > " > > diff --git a/meta/recipes-devtools/gcc/gcc/0027-gcc15-pr122394.patch > b/meta/recipes-devtools/gcc/gcc/0027-gcc15-pr122394.patch > new file mode 100644 > index 0000000000..9ee371cef7 > --- /dev/null > +++ b/meta/recipes-devtools/gcc/gcc/0027-gcc15-pr122394.patch > @@ -0,0 +1,88 @@ > +From e55dcff97708a4937dc4d8736b8b3074ebbff6f3 Mon Sep 17 00:00:00 2001 > +From: Jakub Jelinek <[email protected]> > +Date: Mon, 27 Oct 2025 17:43:17 +0100 > +Subject: phiopt: Fix up DEBUG_EXPR_DECL creation in spaceship_replacement > + [PR122394] > + > +The following testcase ICEs in gcc 15 (and is at least latent in 12-14 > too), > +because the DEBUG_EXPR_DECL has incorrect mode. It has > +TREE_TYPE (orig_use_lhs) type, but TYPE_MODE (type) rather than > +TYPE_MODE (TREE_TYPE (orig_use_lhs)) where the two types are sometimes > +the same, but sometimes different (same if !has_cast_debug_uses, different > +otherwise). > + > +Though, there wouldn't be the this issue if it used the proper API to > create > +the DEBUG_EXPR_DECL which takes care of everything. This is the sole > +spot that doesn't use that API. > + > +Doesn't affect the trunk because the code has been removed and replaced > with > +different stuff after the libstdc++ ABI change in r16-3474. > +Before r15-5557 the mode has been always wrong because this was done only > +for has_cast_debug_uses. And the bug has been introduced with r12-5490. > + > +Enough archeology, while it could be fixed by changing the second > +SET_DECL_MODE argument, I think it is better to use build_debug_expr_decl. > + > +2025-10-27 Jakub Jelinek <[email protected]> > + > + PR tree-optimization/122394 > + * tree-ssa-phiopt.cc (spaceship_replacement): Use > + build_debug_expr_decl instead of manually building DEBUG_EXPR_DECL > + and getting SET_DECL_MODE wrong. > + > + * g++.dg/opt/pr122394.C: New test. > + > +Upstream-Status: Backport [ > https://gcc.gnu.org/cgit/gcc/commit/?id=e55dcff97708a4937dc4d8736b8b3074ebbff6f3 > ] > +Signed-off-by: Hongxu Jia <[email protected]> > +--- > + gcc/testsuite/g++.dg/opt/pr122394.C | 20 ++++++++++++++++++++ > + gcc/tree-ssa-phiopt.cc | 6 ++---- > + 2 files changed, 22 insertions(+), 4 deletions(-) > + create mode 100644 gcc/testsuite/g++.dg/opt/pr122394.C > + > +diff --git a/gcc/testsuite/g++.dg/opt/pr122394.C > b/gcc/testsuite/g++.dg/opt/pr122394.C > +new file mode 100644 > +index 000000000000..1f84bebd74c2 > +--- /dev/null > ++++ b/gcc/testsuite/g++.dg/opt/pr122394.C > +@@ -0,0 +1,20 @@ > ++// PR tree-optimization/122394 > ++// { dg-do compile { target c++23 } } > ++// { dg-options "-O1 -g" } > ++ > ++#include <compare> > ++ > ++struct A { > ++ friend auto operator<=> (A, A) = default; > ++ double a; > ++}; > ++void foo (); > ++A b, c; > ++ > ++void > ++bar () > ++{ > ++ bool d = c >= b; > ++ if (d) > ++ foo (); > ++} > +diff --git a/gcc/tree-ssa-phiopt.cc b/gcc/tree-ssa-phiopt.cc > +index aaebae6b38c0..3e0ad9d3bb09 100644 > +--- a/gcc/tree-ssa-phiopt.cc > ++++ b/gcc/tree-ssa-phiopt.cc > +@@ -2995,10 +2995,8 @@ spaceship_replacement (basic_block cond_bb, > basic_block middle_bb, > + if (has_cast_debug_uses > + || (HONOR_NANS (TREE_TYPE (lhs1)) && !is_cast)) > + { > +- tree temp3 = make_node (DEBUG_EXPR_DECL); > +- DECL_ARTIFICIAL (temp3) = 1; > +- TREE_TYPE (temp3) = TREE_TYPE (orig_use_lhs); > +- SET_DECL_MODE (temp3, TYPE_MODE (type)); > ++ tree temp3 > ++ = build_debug_expr_decl (TREE_TYPE (orig_use_lhs)); > + if (has_cast_debug_uses) > + t = fold_convert (TREE_TYPE (temp3), temp2); > + else > +-- > +cgit > + > -- > 2.34.1 > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#228239): https://lists.openembedded.org/g/openembedded-core/message/228239 Mute This Topic: https://lists.openembedded.org/mt/116823455/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
