[arch-commits] Commit in gcc/trunk (PKGBUILD bz90397.patch bz90949.patch)
Bartłomiej Piotrowski
bpiotrowski at archlinux.org
Sat Jun 22 21:16:33 UTC 2019
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 # bpiotrowski at archlinux.org
86CFFCA918CF3AF47147588051E8B148A9999C34 # evangelos at foutrelis.com
13975A70E63C361C73AE69EF6EEB81F8981C74C7 # richard.guenther at 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;
More information about the arch-commits
mailing list