Subject: [PATCH core-updates 1/5] gnu: gcc@11: Update to 11.4.0.

From: Ludovic Courtès <[email-masked]>
Date: Thu, 7 Dec 2023 11:22:44 +0100

From: Greg Hogan <[email-masked]>

* gnu/packages/gcc.scm (gcc-11): Update to 11.4.0.
Remove ‘gcc-10-tree-sra-union-handling.patch’.
* gnu/local.mk: Delist patch.
* gnu/packages/patches/gcc-10-tree-sra-union-handling.patch: Delete.

Signed-off-by: Ludovic Courtès <[email-masked]>
---
 gnu/local.mk                                  |  1 -
 gnu/packages/gcc.scm                          |  7 ++--
 .../gcc-10-tree-sra-union-handling.patch      | 33 -------------------
 3 files changed, 3 insertions(+), 38 deletions(-)
 delete mode 100644 gnu/packages/patches/gcc-10-tree-sra-union-handling.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index ce850c9f7e..f1839319c8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1250,7 +1250,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/gcc-10-cross-environment-variables.patch \
   %D%/packages/patches/gcc-11-libstdc++-hurd-libpthread.patch   \
   %D%/packages/patches/gcc-12-cross-environment-variables.patch \
-  %D%/packages/patches/gcc-10-tree-sra-union-handling.patch	\
   %D%/packages/patches/gcc-11-libstdc++-powerpc.patch           \
   %D%/packages/patches/gcc-13.2.0-libstdc++-docbook-xsl-uri.patch	\
   %D%/packages/patches/gcc-13.2.0-libstdc++-info-install-fix.patch	\
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 3137fe2d75..313a92d8aa 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -719,17 +719,16 @@ (define-public gcc-10
 (define-public gcc-11
   (package
    (inherit gcc-8)
-   (version "11.3.0")
+   (version "11.4.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/gcc/gcc-"
                                 version "/gcc-" version ".tar.xz"))
             (sha256
              (base32
-              "0fdclcwf728wbq52vphfcjywzhpsjp3kifzj3pib3xcihs0z4z5l"))
+              "1ncd7akww0hl5kkmw1dj3qgqp3phdrr5dfnm7jia9s07n0ib4b9z"))
             (patches (search-patches "gcc-9-strmov-store-file-names.patch"
-                                     "gcc-5.0-libvtv-runpath.patch"
-                                     "gcc-10-tree-sra-union-handling.patch"))
+                                     "gcc-5.0-libvtv-runpath.patch"))
             (modules '((guix build utils)))
             (snippet gcc-canadian-cross-objdump-snippet)))
    (arguments
diff --git a/gnu/packages/patches/gcc-10-tree-sra-union-handling.patch b/gnu/packages/patches/gcc-10-tree-sra-union-handling.patch
deleted file mode 100644
index aae5fc9f72..0000000000
--- a/gnu/packages/patches/gcc-10-tree-sra-union-handling.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Fix a regression in GCC 10/11/12 where some union structures
-could get miscompiled when optimizations are enabled:
-
-  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105860
-
-Taken from upstream:
-
-  https://gcc.gnu.org/g:16afe2e2862f3dd93c711d7f8d436dee23c6c34d
-
-diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
-index 09d951a261b..420329f63f6 100644
---- a/gcc/tree-sra.c
-+++ b/gcc/tree-sra.c
-@@ -1647,7 +1647,18 @@ build_ref_for_offset (location_t loc, tree base, poly_int64 offset,
- static tree
- build_reconstructed_reference (location_t, tree base, struct access *model)
- {
--  tree expr = model->expr, prev_expr = NULL;
-+  tree expr = model->expr;
-+  /* We have to make sure to start just below the outermost union.  */
-+  tree start_expr = expr;
-+  while (handled_component_p (expr))
-+    {
-+      if (TREE_CODE (TREE_TYPE (TREE_OPERAND (expr, 0))) == UNION_TYPE)
-+	start_expr = expr;
-+      expr = TREE_OPERAND (expr, 0);
-+    }
-+
-+  expr = start_expr;
-+  tree prev_expr = NULL_TREE;
-   while (!types_compatible_p (TREE_TYPE (expr), TREE_TYPE (base)))
-     {
-       if (!handled_component_p (expr))
-- 
2.41.0