[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