[notify] gcc: cherry picked a patch against ICE with gcc 12.3.0

This commit is contained in:
Tim Biermann 2023-05-22 22:31:09 +02:00
parent ac3e003c62
commit 3e6e71fe5e
3 changed files with 32 additions and 4 deletions

View File

@ -1,7 +1,8 @@
untrusted comment: verify with /etc/ports/core.pub
RWRJc1FUaeVeqrNICWSDHB+0gInPsU6GzKzzErAT5eYOZGlubFoddLyJubFNJto/LuYeoEvzx3u1jgJDy76LgCtSSnbOpXWkLwE=
SHA256 (Pkgfile) = 8b5c9497e88df21eb884a065da885f135e0ec89f5f0d1d3f0fd196e7b6a1a223
RWRJc1FUaeVeqtPAIajax7DteNGbGw/OXlP0jA8jUZTLGqB2+RjcC9Q/8WAzeuZw7AX74b0CSFkGxVwPb/FGJIABYP7Kc1cXiwo=
SHA256 (Pkgfile) = c56690e4fe1685e4552cc167b3af8c51762726eed976ccadeaa531af8b06939b
SHA256 (.footprint) = 3de26289ca82590fc7e76e08f53fcbb0753f1aaf698f9c060b61e148219952da
SHA256 (gcc-12.3.0.tar.xz) = 949a5d4f99e786421a93b532b22ffab5578de7321369975b91aec97adfda8c3b
SHA256 (gcc-nocheck-fixincludes.patch) = 850a71d2c64b9f2bec31821bd972bf89c2d57764faf64948100eaf474fd63bbb
SHA256 (gcc-4.7.3-multilib-dirs.patch) = 149b151999d0afad909ca0d1eaf1f9a81c9cd6499e56989ec4fc574d108eeef6
SHA256 (fix-nested-generic-lambda.patch) = f28f71ea934097372907c322f991f7747cbcc3ec777f8dbd2286be1c49c2c81d

View File

@ -5,13 +5,15 @@
name=gcc
version=12.3.0
release=1
release=2
source=(https://sourceware.org/pub/gcc/releases/gcc-$version/$name-$version.tar.xz
$name-nocheck-fixincludes.patch $name-4.7.3-multilib-dirs.patch)
$name-nocheck-fixincludes.patch $name-4.7.3-multilib-dirs.patch
fix-nested-generic-lambda.patch)
build() {
patch -d $name-$version -p1 -i $SRC/$name-nocheck-fixincludes.patch
patch -d $name-$version -p1 -i $SRC/$name-4.7.3-multilib-dirs.patch
patch -d $name-$version -p1 -i $SRC/fix-nested-generic-lambda.patch
# pipe fails tests
CFLAGS=${CFLAGS/-pipe/}

View File

@ -0,0 +1,25 @@
X-Git-Url: https://gcc.gnu.org/git/?p=gcc.git;a=blobdiff_plain;f=gcc%2Fcp%2Fpt.cc;h=79bc9c014c8504b7dddf094c4e2f36b4fa50d24b;hp=c7f4a95a7237ff91cbc0d81dc78de1ca35579b44;hb=396a4e76afec30d2461638f569cae18955eb4ad2;hpb=9410a52061ffe4a9e6ef8fd82f9c21d1874ff589
diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index c7f4a95a723..79bc9c014c8 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -4106,10 +4106,14 @@ find_parameter_packs_r (tree *tp, int *walk_subtrees, void* data)
case TAG_DEFN:
t = TREE_TYPE (t);
if (CLASS_TYPE_P (t))
- /* Local class, need to look through the whole definition. */
- for (tree bb : BINFO_BASE_BINFOS (TYPE_BINFO (t)))
- cp_walk_tree (&BINFO_TYPE (bb), &find_parameter_packs_r,
- ppd, ppd->visited);
+ {
+ /* Local class, need to look through the whole definition.
+ TYPE_BINFO might be unset for a partial instantiation. */
+ if (TYPE_BINFO (t))
+ for (tree bb : BINFO_BASE_BINFOS (TYPE_BINFO (t)))
+ cp_walk_tree (&BINFO_TYPE (bb), &find_parameter_packs_r,
+ ppd, ppd->visited);
+ }
else
/* Enum, look at the values. */
for (tree l = TYPE_VALUES (t); l; l = TREE_CHAIN (l))