diff --git a/gcc/.signature b/gcc/.signature index ece2a2c0..41ad5488 100644 --- a/gcc/.signature +++ b/gcc/.signature @@ -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 diff --git a/gcc/Pkgfile b/gcc/Pkgfile index 33eb82d3..8e7c4114 100644 --- a/gcc/Pkgfile +++ b/gcc/Pkgfile @@ -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/} diff --git a/gcc/fix-nested-generic-lambda.patch b/gcc/fix-nested-generic-lambda.patch new file mode 100644 index 00000000..5fcb9a98 --- /dev/null +++ b/gcc/fix-nested-generic-lambda.patch @@ -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))