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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to