Date: Saturday, June 22, 2019 @ 21:16:32 Author: bpiotrowski Revision: 356789
9.1.0-2 - backport fixes for BZ#90397 and BZ#90949 - fix go provides version (FS#62862) Added: gcc/trunk/bz90397.patch gcc/trunk/bz90949.patch Modified: gcc/trunk/PKGBUILD ---------------+ PKGBUILD | 18 ++++++++--- bz90397.patch | 14 ++++++++ bz90949.patch | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 116 insertions(+), 4 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2019-06-22 21:12:21 UTC (rev 356788) +++ PKGBUILD 2019-06-22 21:16:32 UTC (rev 356789) @@ -8,7 +8,7 @@ pkgver=9.1.0 _majorver=${pkgver:0:1} _islver=0.21 -pkgrel=1 +pkgrel=2 pkgdesc='The GNU Compiler Collection' arch=(x86_64) license=(GPL LGPL FDL custom) @@ -20,7 +20,9 @@ source=(https://ftp.gnu.org/gnu/gcc/gcc-$pkgver/gcc-$pkgver.tar.xz{,.sig} #source=(gcc::svn://gcc.gnu.org/svn/gcc/branches/gcc-${_majorver}-branch http://isl.gforge.inria.fr/isl-${_islver}.tar.xz - c89 c99) + c89 c99 + bz90397.patch + bz90949.patch) validpgpkeys=(F3691687D867B81B51CE07D9BBE43771487328A9 # bpiotrow...@archlinux.org 86CFFCA918CF3AF47147588051E8B148A9999C34 # evange...@foutrelis.com 13975A70E63C361C73AE69EF6EEB81F8981C74C7 # richard.guent...@gmail.com @@ -29,7 +31,9 @@ 'SKIP' '777058852a3db9500954361e294881214f6ecd4b594c00da5eee974cd6a54960' 'de48736f6e4153f03d0a5d38ceb6c6fdb7f054e8f47ddd6af0a3dbf14f27b931' - '2513c6d9984dd0a2058557bf00f06d8d5181734e41dcfe07be7ed86f2959622a') + '2513c6d9984dd0a2058557bf00f06d8d5181734e41dcfe07be7ed86f2959622a' + 'cc20d05bcc6cb35bf0944b391f0b0380af375f2a8a03ce1cd67835884bc41fac' + 'c860819e730faf1621e1286ebe3a0179df6e25182b81a9ca0a3db02633982a14') _svnrev=264010 _svnurl=svn://gcc.gnu.org/svn/gcc/branches/gcc-${_majorver}-branch @@ -57,6 +61,12 @@ [[ ! -d gcc ]] && ln -s gcc-${pkgver/+/-} gcc cd gcc + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90397 + patch -p0 -i "$srcdir/bz90397.patch" + + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90949 + patch -p0 -i "$srcdir/bz90949.patch" + # link isl for in-tree build ln -s ../isl-${_islver} isl @@ -332,7 +342,7 @@ package_gcc-go() { pkgdesc='Go front-end for GCC' depends=("gcc=$pkgver-$pkgrel") - provides=("go=1.10.1" $pkgname-multilib) + provides=("go=1.12.2" $pkgname-multilib) replaces=($pkgname-multilib) conflicts=(go) Added: bz90397.patch =================================================================== --- bz90397.patch (rev 0) +++ bz90397.patch 2019-06-22 21:16:32 UTC (rev 356789) @@ -0,0 +1,14 @@ +Index: libstdc++-v3/include/std/variant +=================================================================== +--- libstdc++-v3/include/std/variant (revision 271082) ++++ libstdc++-v3/include/std/variant (revision 271083) +@@ -1556,7 +1556,8 @@ + #endif + + template<size_t _Np, typename _Vp> +- friend constexpr decltype(auto) __detail::__variant::__get(_Vp&& __v); ++ friend constexpr decltype(auto) ++ __detail::__variant::__get(_Vp&& __v) noexcept; + + template<typename _Vp> + friend void* __detail::__variant::__get_storage(_Vp&& __v); Added: bz90949.patch =================================================================== --- bz90949.patch (rev 0) +++ bz90949.patch 2019-06-22 21:16:32 UTC (rev 356789) @@ -0,0 +1,88 @@ +Index: gcc/testsuite/gcc.c-torture/execute/pr90949.c +=================================================================== +--- gcc/testsuite/gcc.c-torture/execute/pr90949.c (nonexistent) ++++ gcc/testsuite/gcc.c-torture/execute/pr90949.c (revision 272555) +@@ -0,0 +1,42 @@ ++void __attribute__ ((noipa, noinline)) my_puts (const char *str) { } ++ ++void __attribute__ ((noipa, noinline)) my_free (void *p) { } ++ ++ ++struct Node ++{ ++ struct Node *child; ++}; ++ ++struct Node space[2] = { }; ++ ++struct Node * __attribute__ ((noipa, noinline)) my_malloc (int bytes) ++{ ++ return &space[0]; ++} ++ ++void ++walk (struct Node *module, int cleanup) ++{ ++ if (module == 0) ++ { ++ return; ++ } ++ if (!cleanup) ++ { ++ my_puts ("No cleanup"); ++ } ++ walk (module->child, cleanup); ++ if (cleanup) ++ { ++ my_free (module); ++ } ++} ++ ++int ++main () ++{ ++ struct Node *node = my_malloc (sizeof (struct Node)); ++ node->child = 0; ++ walk (node, 1); ++} +Index: gcc/tree-ssa-copy.c +=================================================================== +--- gcc/tree-ssa-copy.c (revision 272554) ++++ gcc/tree-ssa-copy.c (revision 272555) +@@ -545,13 +545,12 @@ + duplicate_ssa_name_ptr_info (copy_of[i].value, + SSA_NAME_PTR_INFO (var)); + /* Points-to information is cfg insensitive, +- but alignment info might be cfg sensitive, if it +- e.g. is derived from VRP derived non-zero bits. +- So, do not copy alignment info if the two SSA_NAMEs +- aren't defined in the same basic block. */ ++ but [E]VRP might record context sensitive alignment ++ info, non-nullness, etc. So reset context sensitive ++ info if the two SSA_NAMEs aren't defined in the same ++ basic block. */ + if (var_bb != copy_of_bb) +- mark_ptr_info_alignment_unknown +- (SSA_NAME_PTR_INFO (copy_of[i].value)); ++ reset_flow_sensitive_info (copy_of[i].value); + } + else if (!POINTER_TYPE_P (TREE_TYPE (var)) + && SSA_NAME_RANGE_INFO (var) +Index: gcc/tree-ssanames.c +=================================================================== +--- gcc/tree-ssanames.c (revision 272554) ++++ gcc/tree-ssanames.c (revision 272555) +@@ -820,7 +820,12 @@ + { + /* points-to info is not flow-sensitive. */ + if (SSA_NAME_PTR_INFO (name)) +- mark_ptr_info_alignment_unknown (SSA_NAME_PTR_INFO (name)); ++ { ++ /* [E]VRP can derive context sensitive alignment info and ++ non-nullness properties. We must reset both. */ ++ mark_ptr_info_alignment_unknown (SSA_NAME_PTR_INFO (name)); ++ SSA_NAME_PTR_INFO (name)->pt.null = 1; ++ } + } + else + SSA_NAME_RANGE_INFO (name) = NULL;