[gcc-6] 237/401: * Update to SVN 20161019 (r241346, 6.2.1) from the gcc-6-branch.

Ximin Luo infinity0 at debian.org
Wed Apr 5 15:49:46 UTC 2017


This is an automated email from the git hooks/post-receive script.

infinity0 pushed a commit to branch pu/reproducible_builds
in repository gcc-6.

commit b874e3cb52d48fce580858f51d77bf84ed0c13e7
Author: doko <doko at 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>
Date:   Wed Oct 19 16:37:41 2016 +0000

      * Update to SVN 20161019 (r241346, 6.2.1) from the gcc-6-branch.
    
    
    git-svn-id: svn://anonscm.debian.org/gcccvs/branches/sid/gcc-6@9012 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
---
 debian/changelog                |   2 +
 debian/patches/svn-updates.diff | 283 +++++++++++++++++++++++++++++++++++++---
 2 files changed, 264 insertions(+), 21 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 62b8683..813c1a2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,5 +1,7 @@
 gcc-6 (6.2.0-8) UNRELEASED; urgency=medium
 
+  * Update to SVN 20161019 (r241346, 6.2.1) from the gcc-6-branch.
+    - Fix PR libstdc++/77990, PR target/77991 (x86).
   * Install arm_fp16.h header on arm* architectures for Linaro builds.
   * Backport upstream revisions from trunk (James Clark). Closes: #840574.
     - r240457 (add getrandom for MIPS/SPARC)
diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff
index 8da507b..65d2f01 100644
--- a/debian/patches/svn-updates.diff
+++ b/debian/patches/svn-updates.diff
@@ -1,10 +1,10 @@
-# DP: updates from the 6 branch upto 20161018 (r241301).
+# DP: updates from the 6 branch upto 20161019 (r241346).
 
 last_update()
 {
 	cat > ${dir}LAST_UPDATED <EOF
-Tue Oct 18 13:52:43 CEST 2016
-Tue Oct 18 11:52:43 UTC 2016 (revision 241301)
+Wed Oct 19 17:55:55 CEST 2016
+Wed Oct 19 15:55:55 UTC 2016 (revision 241346)
 EOF
 }
 
@@ -1724,7 +1724,23 @@ Index: libstdc++-v3/include/bits/unique_ptr.h
 ===================================================================
 --- a/src/libstdc++-v3/include/bits/unique_ptr.h	(.../tags/gcc_6_2_0_release)
 +++ b/src/libstdc++-v3/include/bits/unique_ptr.h	(.../branches/gcc-6-branch)
-@@ -610,10 +610,11 @@
+@@ -168,9 +168,12 @@
+        */
+       explicit
+       unique_ptr(pointer __p) noexcept
+-      : _M_t(__p, deleter_type())
+-      { static_assert(!is_pointer<deleter_type>::value,
+-		     "constructed with null function pointer deleter"); }
++      : _M_t()
++      {
++	std::get<0>(_M_t) = __p;
++	static_assert(!is_pointer<deleter_type>::value,
++		     "constructed with null function pointer deleter");
++      }
+ 
+       /** Takes ownership of a pointer.
+        *
+@@ -610,10 +613,11 @@
        void
        reset(_Up __p) noexcept
        {
@@ -2370,7 +2386,22 @@ Index: libstdc++-v3/ChangeLog
 ===================================================================
 --- a/src/libstdc++-v3/ChangeLog	(.../tags/gcc_6_2_0_release)
 +++ b/src/libstdc++-v3/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,326 @@
+@@ -1,3 +1,341 @@
++2016-10-19  Jonathan Wakely  <jwakely at redhat.com>
++
++	* testsuite/20_util/unique_ptr/cons/cv_qual.cc: Move negative tests
++	to new file.
++	* testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: New file.  Fix
++	test for incompatible deleters to not also use incompatible types.
++	Add tests for incompatible array types.
++
++	PR libstdc++/77990
++	* include/bits/unique_ptr.h (unique_ptr::unique_ptr(pointer)): Set
++	pointer member after value-initialization of tuple.
++	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust dg-errors.
++	* testsuite/20_util/unique_ptr/cons/77990.cc: New test.
++	* testsuite/20_util/unique_ptr/cons/cv_qual.cc: Adjust dg-error.
++
 +2016-10-17  Jonathan Wakely  <jwakely at redhat.com>
 +
 +	PR libstdc++/77987
@@ -3556,6 +3587,152 @@ Index: libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/cv_qual.cc
 -  cvA3.reset(p); // { dg-error "no matching function" }
 -  // { dg-error "no matching function" "" { target *-*-* } 614 }
  }
+Index: libstdc++-v3/testsuite/20_util/unique_ptr/cons/77990.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/20_util/unique_ptr/cons/77990.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/20_util/unique_ptr/cons/77990.cc	(.../branches/gcc-6-branch)
+@@ -0,0 +1,28 @@
++// Copyright (C) 2016 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++// { dg-options "-std=gnu++11" }
++// { dg-do compile }
++
++#include <memory>
++
++struct D {
++  D() = default;
++  D(const D&) = delete;
++  void operator()(int*);
++};
++std::unique_ptr<int, D> p((int*)nullptr);  // PR libstdc++/77990
+Index: libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc	(.../branches/gcc-6-branch)
+@@ -0,0 +1,73 @@
++// { dg-options "-std=gnu++11" }
++// { dg-do compile }
++
++// Copyright (C) 2016 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++// 20.7.1 Class template unique_ptr [unique.ptr]
++
++#include <memory>
++
++struct A { virtual ~A() = default; };
++
++struct B : A { };
++
++// Construction from objects with different cv-qualification
++
++struct A_pointer { operator A*() const { return nullptr; } };
++
++void
++test07()
++{
++  A_pointer p;
++  // Disallow conversions from user-defined pointer-like types
++  // for the array version
++  std::unique_ptr<A[]> upA3(p); // { dg-error "no matching function" }
++  std::unique_ptr<const A[]> cA3(p); // { dg-error "no matching function" }
++  std::unique_ptr<volatile A[]> vA3(p); // { dg-error "no matching function" }
++  std::unique_ptr<const volatile A[]> cvA3(p); // { dg-error "no matching function" }
++  // { dg-error "no type" "" { target *-*-* } 448 }
++}
++
++template<typename T>
++struct deleter
++{
++  deleter() = default;
++  template<typename U>
++    deleter(const deleter<U>) { }
++  typedef T pointer;
++  void operator()(T) const { }
++};
++
++void
++test08()
++{
++  // Disallow conversions from non-assignable deleter
++  std::unique_ptr<A[], deleter<A_pointer>> p;
++  std::unique_ptr<A[], deleter<A*>> upA(std::move(p)); // { dg-error "no matching function" }
++}
++
++void
++test011()
++{
++  // Disallow conversions between different array types.
++  std::unique_ptr<B[]> upB;
++
++  std::unique_ptr<const A[]> cA(std::move(upB));  // { dg-error "no matching function" }
++  std::unique_ptr<volatile A[]> vA(std::move(upB)); // { dg-error "no matching function" }
++  std::unique_ptr<const volatile A[]> cvA(std::move(upB)); // { dg-error "no matching function" }
++}
+Index: libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual.cc	(.../branches/gcc-6-branch)
+@@ -100,30 +100,4 @@
+   std::unique_ptr<const A[]> cA2((A*)p);
+   std::unique_ptr<volatile A[]> vA2((A*)p);
+   std::unique_ptr<const volatile A[]> cvA2((A*)p);
+-  // Disallow conversions from user-defined pointer-like types
+-  // for the array version
+-  std::unique_ptr<A[]> upA3(p); // { dg-error "no matching function" }
+-  std::unique_ptr<const A[]> cA3(p); // { dg-error "no matching function" }
+-  std::unique_ptr<volatile A[]> vA3(p); // { dg-error "no matching function" }
+-  std::unique_ptr<const volatile A[]> cvA3(p); // { dg-error "no matching function" }
+-  // { dg-error "no type" "" { target *-*-* } 445 }
+ }
+-
+-template<typename T>
+-struct deleter
+-{
+-  deleter() = default;
+-  template<typename U>
+-    deleter(const deleter<U>) { }
+-  typedef T pointer;
+-  void operator()(T) const { }
+-};
+-
+-void
+-test08()
+-{
+-  // Disallow conversions from non-assignable deleter
+-  std::unique_ptr<B[], deleter<A_pointer>> p;
+-  std::unique_ptr<A[], deleter<A*>> upA(std::move(p)); // { dg-error "no matching function" }
+-}
+-
 Index: libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc
 ===================================================================
 --- a/src/libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc	(.../tags/gcc_6_2_0_release)
@@ -3586,6 +3763,23 @@ Index: libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc
 +}
 +
  // { dg-prune-output "include" }
+Index: libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc	(.../branches/gcc-6-branch)
+@@ -43,10 +43,10 @@
+   std::unique_ptr<int, D&> ud(nullptr, d);
+   ub = std::move(ud); // { dg-error "no match" }
+   ub2 = ud; // { dg-error "no match" }
+-// { dg-error "no type" "" { target *-*-* } 269 }
++// { dg-error "no type" "" { target *-*-* } 272 }
+ 
+   std::unique_ptr<int[], B&> uba(nullptr, b);
+   std::unique_ptr<int[], D&> uda(nullptr, d);
+   uba = std::move(uda); // { dg-error "no match" }
+-// { dg-error "no type" "" { target *-*-* } 537 }
++// { dg-error "no type" "" { target *-*-* } 540 }
+ }
 Index: libstdc++-v3/testsuite/20_util/unique_ptr/assign/cv_qual.cc
 ===================================================================
 --- a/src/libstdc++-v3/testsuite/20_util/unique_ptr/assign/cv_qual.cc	(.../tags/gcc_6_2_0_release)
@@ -4195,7 +4389,7 @@ Index: gcc/DATESTAMP
 +++ b/src/gcc/DATESTAMP	(.../branches/gcc-6-branch)
 @@ -1 +1 @@
 -20160822
-+20161018
++20161019
 Index: gcc/tree.c
 ===================================================================
 --- a/src/gcc/tree.c	(.../tags/gcc_6_2_0_release)
@@ -4409,7 +4603,14 @@ Index: gcc/ChangeLog
 ===================================================================
 --- a/src/gcc/ChangeLog	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,540 @@
+@@ -1,3 +1,547 @@
++2016-10-19  Uros Bizjak  <ubizjak at gmail.com>
++
++	PR target/77991
++	* config/i386/i386.c (legitimize_tls_address)
++	<case TLS_MODEL_INITIAL_EXEC>: For TARGET_64BIT || TARGET_ANY_GNU_TLS
++	convert dest to Pmode if different than Pmode.
++
 +2016-10-18  Kugan Vivekanandarajah  <kuganv at linaro.org>
 +
 +	Backport from mainline
@@ -4950,7 +5151,7 @@ Index: gcc/ChangeLog
  2016-08-22  Release Manager
  
  	* GCC 6.2.0 released.
-@@ -205,9 +746,9 @@
+@@ -205,9 +753,9 @@
  
  2016-08-09  Martin Jambor  <mjambor at suse.cz>
  
@@ -5438,6 +5639,30 @@ Index: gcc/testsuite/gcc.target/i386/pr77621.c
 +}
 +
 +/* { dg-final { scan-tree-dump-not "Vectorized loops: 1" "vect" } } */
+Index: gcc/testsuite/gcc.target/i386/pr77991.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/pr77991.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/pr77991.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,19 @@
++/* { dg-do compile { target { ! ia32 } } } */
++/* { dg-require-effective-target maybe_x32 } */
++/* { dg-options "-O2 -mx32 -maddress-mode=short" } */
++
++struct rcu_reader_data
++{
++  unsigned ctr;
++  _Bool waiting;
++}
++
++extern __thread rcu_reader;
++
++void rcu_read_lock()
++{
++  struct rcu_reader_data *x = &rcu_reader;
++  _Bool val = 0;
++
++  __atomic_store(&x->waiting, &val, 0);
++}
 Index: gcc/testsuite/gcc.target/i386/sse-12.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/i386/sse-12.c	(.../tags/gcc_6_2_0_release)
@@ -7666,7 +7891,12 @@ Index: gcc/testsuite/ChangeLog
 ===================================================================
 --- a/src/gcc/testsuite/ChangeLog	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/testsuite/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,527 @@
+@@ -1,3 +1,532 @@
++2016-10-19  Uros Bizjak  <ubizjak at gmail.com>
++
++	PR target/77991
++	* gcc.target/i386/pr77991.c: New test.
++
 +2016-10-17  Steven G. Kargl  <kargl at gcc.gnu.org>
 +
 +	Backported from trunk
@@ -8194,7 +8424,7 @@ Index: gcc/testsuite/ChangeLog
  2016-08-22  Release Manager
  
  	* GCC 6.2.0 released.
-@@ -150,8 +674,8 @@
+@@ -150,8 +679,8 @@
  
  2016-08-09  Martin Jambor  <mjambor at suse.cz>
  
@@ -8205,7 +8435,7 @@ Index: gcc/testsuite/ChangeLog
  
  2016-08-09  Richard Biener  <rguenther at suse.de>
  
-@@ -276,8 +800,8 @@
+@@ -276,8 +805,8 @@
  
  2016-07-20  Martin Jambor  <mjambor at suse.cz>
  
@@ -8216,7 +8446,7 @@ Index: gcc/testsuite/ChangeLog
  
  2016-07-19  Jakub Jelinek  <jakub at redhat.com>
  
-@@ -418,7 +942,7 @@
+@@ -418,7 +947,7 @@
  	2016-07-06  Yuri Rumyantsev  <ysrumyan at gmail.com>
  
  	PR tree-optimization/71518
@@ -579319,7 +579549,18 @@ Index: gcc/config/i386/i386.c
      }
    else
      {
-@@ -22671,7 +22684,7 @@
+@@ -15494,7 +15507,9 @@
+ 	  base = get_thread_pointer (tp_mode,
+ 				     for_mov || !TARGET_TLS_DIRECT_SEG_REFS);
+ 	  off = force_reg (tp_mode, off);
+-	  return gen_rtx_PLUS (tp_mode, base, off);
++	  dest = gen_rtx_PLUS (tp_mode, base, off);
++	  if (tp_mode != Pmode)
++	    dest = convert_to_mode (Pmode, dest, 1);
+ 	}
+       else
+ 	{
+@@ -22671,7 +22686,7 @@
  
    /* We want to check HONOR_NANS and HONOR_SIGNED_ZEROS here,
       but MODE may be a vector mode and thus not appropriate.  */
@@ -579328,7 +579569,7 @@ Index: gcc/config/i386/i386.c
      {
        int u = is_min ? UNSPEC_IEEE_MIN : UNSPEC_IEEE_MAX;
        rtvec v;
-@@ -32141,9 +32154,6 @@
+@@ -32141,9 +32156,6 @@
    /* CLWB instructions.  */
    IX86_BUILTIN_CLWB,
  
@@ -579338,7 +579579,7 @@ Index: gcc/config/i386/i386.c
    /* CLFLUSHOPT instructions.  */
    IX86_BUILTIN_CLFLUSHOPT,
  
-@@ -32947,9 +32957,6 @@
+@@ -32947,9 +32959,6 @@
    { OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx512vl_us_truncatev8siv8hi2_mask_store, "__builtin_ia32_pmovusdw256mem_mask", IX86_BUILTIN_PMOVUSDW256_MEM, UNKNOWN, (int) VOID_FTYPE_PV8HI_V8SI_UQI },
    { OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx512vl_us_truncatev4siv4hi2_mask_store, "__builtin_ia32_pmovusdw128mem_mask", IX86_BUILTIN_PMOVUSDW128_MEM, UNKNOWN, (int) VOID_FTYPE_PV8HI_V4SI_UQI },
  
@@ -579348,7 +579589,7 @@ Index: gcc/config/i386/i386.c
    /* RDPKRU and WRPKRU.  */
    { OPTION_MASK_ISA_PKU, CODE_FOR_rdpkru,  "__builtin_ia32_rdpkru", IX86_BUILTIN_RDPKRU, UNKNOWN, (int) UNSIGNED_FTYPE_VOID },
    { OPTION_MASK_ISA_PKU, CODE_FOR_wrpkru,  "__builtin_ia32_wrpkru", IX86_BUILTIN_WRPKRU, UNKNOWN, (int) VOID_FTYPE_UNSIGNED }
-@@ -40361,7 +40368,7 @@
+@@ -40361,7 +40370,7 @@
  	  error ("%qE needs isa option %s", fndecl, opts);
  	  free (opts);
  	}
@@ -579357,7 +579598,7 @@ Index: gcc/config/i386/i386.c
      }
  
    switch (fcode)
-@@ -48848,6 +48855,8 @@
+@@ -48848,6 +48857,8 @@
    /* ms_abi and sysv_abi calling convention function attributes.  */
    { "ms_abi", 0, 0, false, true, true, ix86_handle_abi_attribute, true },
    { "sysv_abi", 0, 0, false, true, true, ix86_handle_abi_attribute, true },
@@ -579366,7 +579607,7 @@ Index: gcc/config/i386/i386.c
    { "ms_hook_prologue", 0, 0, true, false, false, ix86_handle_fndecl_attribute,
      false },
    { "callee_pop_aggregate_return", 1, 1, false, true, true,
-@@ -52690,8 +52699,6 @@
+@@ -52690,8 +52701,6 @@
  static tree
  ix86_canonical_va_list_type (tree type)
  {
@@ -579375,7 +579616,7 @@ Index: gcc/config/i386/i386.c
    /* Resolve references and pointers to va_list type.  */
    if (TREE_CODE (type) == MEM_REF)
      type = TREE_TYPE (type);
-@@ -52700,64 +52707,25 @@
+@@ -52700,64 +52709,25 @@
    else if (POINTER_TYPE_P (type) && TREE_CODE (TREE_TYPE (type)) == ARRAY_TYPE)
      type = TREE_TYPE (type);
  
@@ -579454,7 +579695,7 @@ Index: gcc/config/i386/i386.c
    return std_canonical_va_list_type (type);
  }
  
-@@ -53662,9 +53630,7 @@
+@@ -53662,9 +53632,7 @@
  	return V4SFmode;
  
      case DFmode:
@@ -579465,7 +579706,7 @@ Index: gcc/config/i386/i386.c
  	return V8DFmode;
        else if (TARGET_AVX && !TARGET_PREFER_AVX128)
  	return V4DFmode;
-@@ -53749,9 +53715,14 @@
+@@ -53749,9 +53717,14 @@
    tree vectype = stmt_info ? stmt_vectype (stmt_info) : NULL_TREE;
    int stmt_cost = ix86_builtin_vectorization_cost (kind, vectype, misalign);
  

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/gcc-6.git



More information about the Reproducible-commits mailing list