summaryrefslogtreecommitdiffstats
path: root/source/d
diff options
context:
space:
mode:
Diffstat (limited to 'source/d')
-rwxr-xr-xsource/d/gcc/gcc.SlackBuild6
-rw-r--r--source/d/gcc/patches/7185690.diff27
2 files changed, 32 insertions, 1 deletions
diff --git a/source/d/gcc/gcc.SlackBuild b/source/d/gcc/gcc.SlackBuild
index a1a6c4c6c..6e5e6b321 100755
--- a/source/d/gcc/gcc.SlackBuild
+++ b/source/d/gcc/gcc.SlackBuild
@@ -57,7 +57,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=gcc
SRCVER=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
VERSION=$(echo $SRCVER | cut -f 1 -d _)
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# How many jobs to run in parallel:
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
@@ -174,6 +174,10 @@ zcat $CWD/patches/gfortran.deferred-shape-vs-assumed-shape.patch.gz | patch -p0
# Fix regressions in 10.3.0 (and presumably 11.1.0 since they still apply cleanly):
zcat $CWD/patches/PR100102-2.a1b3484a8e6c53c8084723e3f1738d402374198e.patch.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
+# Fix compiler error in gcc-go
+# https://github.com/golang/go/issues/47771
+zcat $CWD/patches/7185690.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
+
# Fix perms/owners:
chown -R root:root .
find . \
diff --git a/source/d/gcc/patches/7185690.diff b/source/d/gcc/patches/7185690.diff
new file mode 100644
index 000000000..4d0824fd3
--- /dev/null
+++ b/source/d/gcc/patches/7185690.diff
@@ -0,0 +1,27 @@
+From 71856902b87505ff8ab6845533b598bffe5333bb Mon Sep 17 00:00:00 2001
+From: Ian Lance Taylor <iant@golang.org>
+Date: Sat, 21 Aug 2021 12:42:19 -0700
+Subject: [PATCH] compiler: correct condition for calling memclrHasPointers
+
+When compiling append(s, make([]typ, ln)...), where typ has a pointer,
+and the append fits within the existing capacity of s, the condition
+used to clear out the new elements was reversed.
+
+Fixes golang/go#47771
+
+Change-Id: Ia880adc08ab723afe3f927e65c9e081f9f717f90
+---
+
+diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc
+index 8d4d168..ddb1d91 100644
+--- a/gcc/go/gofrontend/expressions.cc
++++ b/gcc/go/gofrontend/expressions.cc
+@@ -9350,7 +9350,7 @@
+ ref2 = Expression::make_cast(uint_type, ref2, loc);
+ cond = Expression::make_binary(OPERATOR_GT, ref, ref2, loc);
+ zero = Expression::make_integer_ul(0, int_type, loc);
+- call = Expression::make_conditional(cond, call, zero, loc);
++ call = Expression::make_conditional(cond, zero, call, loc);
+ }
+ }
+ else