[gcc-6] 296/401: * Update to SVN 20161123 (r242770, 6.2.1) from the gcc-6-branch.

Ximin Luo infinity0 at debian.org
Wed Apr 5 15:50:09 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 c4ee7ff2f2ca5b1e53de0bb810c60441f9a40a99
Author: doko <doko at 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>
Date:   Wed Nov 23 18:05:13 2016 +0000

      * Update to SVN 20161123 (r242770, 6.2.1) from the gcc-6-branch.
    
    
    git-svn-id: svn://anonscm.debian.org/gcccvs/branches/sid/gcc-6@9128 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
---
 debian/changelog                |  11 +-
 debian/patches/svn-updates.diff | 770 ++++++++++++++++++++++++++++++++++++++--
 2 files changed, 744 insertions(+), 37 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 7f6251c..2b25c38 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,13 +1,16 @@
-gcc-6 (6.2.1-5) UNRELEASED; urgency=medium
+gcc-6 (6.2.1-4.2) UNRELEASED; urgency=medium
 
-  * Update to SVN 20161122 (r242728, 6.2.1) from the gcc-6-branch.
-    - Fix PR target/77822 (AArch64), PR fortran/58001, PR fortran/69741.
+  * Update to SVN 20161123 (r242770, 6.2.1) from the gcc-6-branch.
+    - Fix PR target/77822 (AArch64), PR fortran/58001, PR fortran/69741,
+      PR libstdc++/78490, PR lto/78472, PR middle-end/78305,
+      PR middle-end/78333, PR tree-optimization/78228, PR middle-end/78185,
+      PR tree-optimization/77855, PR fortran/66227.
   * Don't apply the ada patches for stage builds.
   * Add pkg-config to the build dependencies.
   * Drop the work around for PR libstdc++/65913.
   * gdc: Link with the shared libgphobos runtime by default. Closes: #845377.
 
- -- Matthias Klose <doko at debian.org>  Sun, 20 Nov 2016 17:12:08 +0100
+ -- Matthias Klose <doko at debian.org>  Wed, 23 Nov 2016 18:25:55 +0100
 
 gcc-6 (6.2.1-4) unstable; urgency=medium
 
diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff
index 626f9c6..7bf72c6 100644
--- a/debian/patches/svn-updates.diff
+++ b/debian/patches/svn-updates.diff
@@ -1,10 +1,10 @@
-# DP: updates from the 6 branch upto 20161122 (r242728).
+# DP: updates from the 6 branch upto 20161123 (r242770).
 
 last_update()
 {
 	cat > ${dir}LAST_UPDATED <EOF
-Wed Nov 23 00:28:43 CET 2016
-Tue Nov 22 23:28:43 UTC 2016 (revision 242728)
+Wed Nov 23 18:13:35 CET 2016
+Wed Nov 23 17:13:35 UTC 2016 (revision 242770)
 EOF
 }
 
@@ -1518,6 +1518,22 @@ Index: libstdc++-v3/include/experimental/propagate_const
  
      private:
        template <typename _Up>
+@@ -153,6 +154,7 @@
+       constexpr propagate_const& operator=(propagate_const<_Up>&& __pu)
+       {
+ 	_M_t = std::move(get_underlying(__pu));
++	return *this;
+       }
+ 
+       template <typename _Up, typename =
+@@ -163,6 +165,7 @@
+       constexpr propagate_const& operator=(_Up&& __u)
+       {
+ 	_M_t = std::forward<_Up>(__u);
++	return *this;
+       }
+ 
+       // [propagate_const.const_observers], const observers
 Index: libstdc++-v3/include/experimental/chrono
 ===================================================================
 --- a/src/libstdc++-v3/include/experimental/chrono	(.../tags/gcc_6_2_0_release)
@@ -2697,7 +2713,26 @@ 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,468 @@
+@@ -1,3 +1,487 @@
++2016-11-23  Jonathan Wakely  <jwakely at redhat.com>
++
++	* testsuite/24_iterators/reverse_iterator/71771.cc: Replace calls to
++	C++14 std::rbeing and std::rend.  Use dg-options instead of
++	effective-target.
++	* testsuite/27_io/headers/cstdio/functions_neg.cc: Use dg-options
++	instead of effective-target.
++	* testsuite/experimental/numeric/77801.cc: Likewise.
++
++2016-11-23  Felix Morgner  <felix.morgner at gmail.com>
++	    Jonathan Wakely  <jwakely at redhat.com>
++
++	PR libstdc++/78490
++	* include/experimental/propagate_const (propagate_const::operator=):
++	Add missing return statements.
++	* testsuite/experimental/propagate_const/assignment/move_neg.cc:
++	Adjust dg-error line numbers.
++	* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
++
 +2016-11-22  Uros Bizjak  <ubizjak at gmail.com>
 +
 +	* testsuite/Makefile.am
@@ -3170,7 +3205,7 @@ Index: libstdc++-v3/testsuite/24_iterators/reverse_iterator/71771.cc
 ===================================================================
 --- a/src/libstdc++-v3/testsuite/24_iterators/reverse_iterator/71771.cc	(.../tags/gcc_6_2_0_release)
 +++ b/src/libstdc++-v3/testsuite/24_iterators/reverse_iterator/71771.cc	(.../branches/gcc-6-branch)
-@@ -0,0 +1,43 @@
+@@ -0,0 +1,46 @@
 +// Copyright (C) 2016 Free Software Foundation, Inc.
 +//
 +// This file is part of the GNU ISO C++ Library.  This library is free
@@ -3188,7 +3223,8 @@ Index: libstdc++-v3/testsuite/24_iterators/reverse_iterator/71771.cc
 +// with this library; see the file COPYING3.  If not see
 +// <http://www.gnu.org/licenses/>.
 +
-+// { dg-do compile { target c++11 } }
++// { dg-options "-std=gnu++11" }
++// { dg-do compile }
 +
 +#include <iterator>
 +#include <testsuite_iterators.h>
@@ -3212,7 +3248,9 @@ Index: libstdc++-v3/testsuite/24_iterators/reverse_iterator/71771.cc
 +  int i[2];
 +  __gnu_test::test_container<int, __gnu_test::bidirectional_iterator_wrapper>
 +    c(i);
-+  diff2(std::rbegin(c), std::rend(c));
++  using reverse_iterator
++    = std::reverse_iterator<__gnu_test::bidirectional_iterator_wrapper<int>>;
++  diff2(reverse_iterator(c.end()), reverse_iterator(c.begin()));
 +}
 Index: libstdc++-v3/testsuite/Makefile.in
 ===================================================================
@@ -3497,8 +3535,9 @@ Index: libstdc++-v3/testsuite/27_io/headers/cstdio/functions_neg.cc
 ===================================================================
 --- a/src/libstdc++-v3/testsuite/27_io/headers/cstdio/functions_neg.cc	(.../tags/gcc_6_2_0_release)
 +++ b/src/libstdc++-v3/testsuite/27_io/headers/cstdio/functions_neg.cc	(.../branches/gcc-6-branch)
-@@ -0,0 +1,25 @@
-+// { dg-do compile  { target c++14 } }
+@@ -0,0 +1,26 @@
++// { dg-options "-std=gnu++14" }
++// { dg-do compile }
 +
 +// Copyright (C) 2007-2016 Free Software Foundation, Inc.
 +//
@@ -4706,7 +4745,7 @@ Index: libstdc++-v3/testsuite/experimental/propagate_const/assignment/move_neg.c
  using std::unique_ptr;
  
 -// { dg-error "no type" "" { target *-*-* } 158 }
-+// { dg-error "no type" "" { target *-*-* } 159 }
++// { dg-error "no type" "" { target *-*-* } 160 }
  
  int main()
  {
@@ -4759,8 +4798,8 @@ Index: libstdc++-v3/testsuite/experimental/propagate_const/requirements2.cc
 -// { dg-error "forming pointer to reference type" "" { target *-*-* } 210 }
 +// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 105 }
 +// { dg-error "not a pointer-to-object type" "" { target *-*-* } 66 }
-+// { dg-error "forming pointer to reference type" "" { target *-*-* } 185 }
-+// { dg-error "forming pointer to reference type" "" { target *-*-* } 211 }
++// { dg-error "forming pointer to reference type" "" { target *-*-* } 187 }
++// { dg-error "forming pointer to reference type" "" { target *-*-* } 213 }
  
  propagate_const<void*> test1;
 Index: libstdc++-v3/testsuite/experimental/propagate_const/observers/1.cc
@@ -4961,7 +5000,7 @@ Index: libstdc++-v3/testsuite/experimental/numeric/77801.cc
 ===================================================================
 --- a/src/libstdc++-v3/testsuite/experimental/numeric/77801.cc	(.../tags/gcc_6_2_0_release)
 +++ b/src/libstdc++-v3/testsuite/experimental/numeric/77801.cc	(.../branches/gcc-6-branch)
-@@ -0,0 +1,22 @@
+@@ -0,0 +1,23 @@
 +// Copyright (C) 2016 Free Software Foundation, Inc.
 +//
 +// This file is part of the GNU ISO C++ Library.  This library is free
@@ -4979,7 +5018,8 @@ Index: libstdc++-v3/testsuite/experimental/numeric/77801.cc
 +// with this library; see the file COPYING3.  If not see
 +// <http://www.gnu.org/licenses/>.
 +
-+// { dg-do compile { target c++14 } }
++// { dg-options "-std=gnu++14" }
++// { dg-do compile }
 +
 +#include <cstdlib>
 +#include <experimental/numeric>
@@ -6399,6 +6439,37 @@ Index: gcc/tree-vrp.c
  }
  
  static void
+Index: gcc/tree-ssa-loop-im.c
+===================================================================
+--- a/src/gcc/tree-ssa-loop-im.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/tree-ssa-loop-im.c	(.../branches/gcc-6-branch)
+@@ -44,6 +44,7 @@
+ #include "trans-mem.h"
+ #include "gimple-fold.h"
+ #include "tree-scalar-evolution.h"
++#include "tree-ssa-loop-niter.h"
+ 
+ /* TODO:  Support for predicated code motion.  I.e.
+ 
+@@ -2348,8 +2349,16 @@
+ 	    break;
+ 
+ 	  FOR_EACH_EDGE (e, ei, bb->succs)
+-	    if (!flow_bb_inside_loop_p (loop, e->dest))
+-	      break;
++	    {
++	      /* If there is an exit from this BB.  */
++	      if (!flow_bb_inside_loop_p (loop, e->dest))
++		break;
++	      /* Or we enter a possibly non-finite loop.  */
++	      if (flow_loop_nested_p (bb->loop_father,
++				      e->dest->loop_father)
++		  && ! finite_loop_p (e->dest->loop_father))
++		break;
++	    }
+ 	  if (e)
+ 	    break;
+ 
 Index: gcc/tree-ssa-tail-merge.c
 ===================================================================
 --- a/src/gcc/tree-ssa-tail-merge.c	(.../tags/gcc_6_2_0_release)
@@ -6632,7 +6703,7 @@ Index: gcc/DATESTAMP
 +++ b/src/gcc/DATESTAMP	(.../branches/gcc-6-branch)
 @@ -1 +1 @@
 -20160822
-+20161122
++20161123
 Index: gcc/tree.c
 ===================================================================
 --- a/src/gcc/tree.c	(.../tags/gcc_6_2_0_release)
@@ -6708,6 +6779,24 @@ Index: gcc/tree.c
  
  /* Make fixed-point nodes based on sat/non-sat and signed/unsigned.  */
  #define MAKE_FIXED_TYPE_NODE(KIND,SIZE) \
+@@ -13495,10 +13506,14 @@
+ 	     f1 || f2;
+ 	     f1 = TREE_CHAIN (f1), f2 = TREE_CHAIN (f2))
+ 	  {
+-	    /* Skip non-fields.  */
+-	    while (f1 && TREE_CODE (f1) != FIELD_DECL)
++	    /* Skip non-fields and zero-sized fields.  */
++	    while (f1 && (TREE_CODE (f1) != FIELD_DECL
++			  || (DECL_SIZE (f1)
++			      && integer_zerop (DECL_SIZE (f1)))))
+ 	      f1 = TREE_CHAIN (f1);
+-	    while (f2 && TREE_CODE (f2) != FIELD_DECL)
++	    while (f2 && (TREE_CODE (f2) != FIELD_DECL
++			  || (DECL_SIZE (f2)
++			      && integer_zerop (DECL_SIZE (f2)))))
+ 	      f2 = TREE_CHAIN (f2);
+ 	    if (!f1 || !f2)
+ 	      break;
 Index: gcc/tree.h
 ===================================================================
 --- a/src/gcc/tree.h	(.../tags/gcc_6_2_0_release)
@@ -6782,6 +6871,23 @@ Index: gcc/fold-const.c
 ===================================================================
 --- a/src/gcc/fold-const.c	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/fold-const.c	(.../branches/gcc-6-branch)
+@@ -458,13 +458,13 @@
+       if (TYPE_UNSIGNED (type))
+ 	break;
+       /* INT_MIN/n * n doesn't overflow while negating one operand it does
+-         if n is a power of two.  */
++         if n is a (negative) power of two.  */
+       if (INTEGRAL_TYPE_P (TREE_TYPE (t))
+ 	  && ! TYPE_OVERFLOW_WRAPS (TREE_TYPE (t))
+ 	  && ! ((TREE_CODE (TREE_OPERAND (t, 0)) == INTEGER_CST
+-		 && ! integer_pow2p (TREE_OPERAND (t, 0)))
++		 && wi::popcount (wi::abs (TREE_OPERAND (t, 0))) != 1)
+ 		|| (TREE_CODE (TREE_OPERAND (t, 1)) == INTEGER_CST
+-		    && ! integer_pow2p (TREE_OPERAND (t, 1)))))
++		    && wi::popcount (wi::abs (TREE_OPERAND (t, 1))) != 1)))
+ 	break;
+ 
+       /* Fall through.  */
 @@ -837,15 +837,16 @@
  	  var = negate_expr (var);
  	}
@@ -7028,7 +7134,66 @@ Index: gcc/ChangeLog
 ===================================================================
 --- a/src/gcc/ChangeLog	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,841 @@
+@@ -1,3 +1,900 @@
++2016-11-23  Richard Biener  <rguenther at suse.de>
++
++	Backport from mainline
++	2016-11-23  Richard Biener  <rguenther at suse.de>
++
++	PR lto/78472
++	* tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized
++	fields.
++
++	2016-11-17  Richard Biener  <rguenther at suse.de>
++
++	PR middle-end/78305
++	* fold-const.c (negate_expr_p): Fix multiplication case.
++
++	2016-11-16  Richard Biener  <rguenther at suse.de>
++
++	PR middle-end/78333
++	* gimplify.c (gimplify_function_tree): Do not instrument
++	GNU extern inline functions.
++
++	2016-11-07  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/78228
++	* tree-ssa-phiopt.c (abs_replacement): Avoid introducing
++	undefined behavior.
++
++	2016-11-04  Richard Biener  <rguenther at suse.de>
++
++	PR middle-end/78185
++	* loop-invariant.c (find_exits): Record entering inner
++	loops as possibly exiting to handle infinite sub-loops.
++	* tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h.
++	(fill_always_executed_in_1): Honor infinite child loops.
++
++	2016-10-06  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/77855
++	* tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
++	instead of removing the current item while iterating over the set
++	which is not safe.
++
++2016-11-22  Walter Lee  <walt at tilera.com>
++
++	Backport from mainline
++	2016-11-22  Walter Lee  <walt at tilera.com>
++	
++	* config/tilegx/tilegx.md (trap): New pattern.
++	* config/tilepro/tilepro.md (trap): Likewise.
++
++2016-11-22  Walter Lee  <walt at tilera.com>
++
++	Backport from mainline
++	2016-11-22  Walter Lee  <walt at tilera.com>
++	
++	* config/tilegx/tilegx.md (*zero_extract): Use
++	define_insn_and_split instead of define_insn; Handle pos + size >
++	64.
++	(*sign_extract): Likewise.
++
 +2016-11-22  Uros Bizjak  <ubizjak at gmail.com>
 +
 +	* Makefile.in ($(lang_checks_parallelized)): Fix detection
@@ -7870,7 +8035,7 @@ Index: gcc/ChangeLog
  2016-08-22  Release Manager
  
  	* GCC 6.2.0 released.
-@@ -205,9 +1043,9 @@
+@@ -205,9 +1102,9 @@
  
  2016-08-09  Martin Jambor  <mjambor at suse.cz>
  
@@ -10296,6 +10461,91 @@ Index: gcc/testsuite/gfortran.dg/pr77420_3.f90
 +  equivalence(h5p_flags, h5p_default_f)
 +end module h5global
 +! { dg-final { cleanup-modules "h5global" } }
+Index: gcc/testsuite/gfortran.dg/extends_type_of_3.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/extends_type_of_3.f90	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/extends_type_of_3.f90	(.../branches/gcc-6-branch)
+@@ -3,9 +3,7 @@
+ !
+ ! PR fortran/41580
+ !
+-! Compile-time simplification of SAME_TYPE_AS
+-! and EXTENDS_TYPE_OF.
+-!
++! Compile-time simplification of SAME_TYPE_AS and EXTENDS_TYPE_OF.
+ 
+ implicit none
+ type t1
+@@ -37,6 +35,8 @@
+ 
+ if (p1 .or. p2 .or. p3 .or. p4 .or. .not. p5 .or. .not. p6) call should_not_exist()
+ 
++if (same_type_as(b1,b1)   .neqv. .true.) call should_not_exist()
++
+ ! Not (trivially) compile-time simplifiable:
+ if (same_type_as(b1,a1)  .neqv. .true.) call abort()
+ if (same_type_as(b1,a11) .neqv. .false.) call abort()
+@@ -49,6 +49,7 @@
+ if (same_type_as(b1,a11) .neqv. .true.) call abort()
+ deallocate(b1)
+ 
++
+ ! .true. -> same type
+ if (extends_type_of(a1,a1)   .neqv. .true.) call should_not_exist()
+ if (extends_type_of(a11,a11) .neqv. .true.) call should_not_exist()
+@@ -78,33 +79,47 @@
+ ! type extension possible, compile-time checkable
+ if (extends_type_of(a1,a11) .neqv. .false.) call should_not_exist()
+ if (extends_type_of(a11,a1) .neqv. .true.) call should_not_exist()
+-if (extends_type_of(a1,a11) .neqv. .false.) call should_not_exist()
+ 
+ if (extends_type_of(b1,a1)   .neqv. .true.) call should_not_exist()
+ if (extends_type_of(b11,a1)  .neqv. .true.) call should_not_exist()
+ if (extends_type_of(b11,a11) .neqv. .true.) call should_not_exist()
+-if (extends_type_of(b1,a11)  .neqv. .false.) call should_not_exist()
+ 
+-if (extends_type_of(a1,b11)  .neqv. .false.) call abort()
++if (extends_type_of(a1,b11)  .neqv. .false.) call should_not_exist()
+ 
++
+ ! Special case, simplified at tree folding:
+ if (extends_type_of(b1,b1)   .neqv. .true.) call abort()
+ 
+ ! All other possibilities are not compile-time checkable
+ if (extends_type_of(b11,b1)  .neqv. .true.) call abort()
+-!if (extends_type_of(b1,b11)  .neqv. .false.) call abort() ! FAILS due to PR 47189
++if (extends_type_of(b1,b11)  .neqv. .false.) call abort()
+ if (extends_type_of(a11,b11) .neqv. .true.) call abort()
++
+ allocate(t11 :: b11)
+ if (extends_type_of(a11,b11) .neqv. .true.) call abort()
+ deallocate(b11)
++
+ allocate(t111 :: b11)
+ if (extends_type_of(a11,b11) .neqv. .false.) call abort()
+ deallocate(b11)
++
+ allocate(t11 :: b1)
+ if (extends_type_of(a11,b1) .neqv. .true.) call abort()
+ deallocate(b1)
+ 
++allocate(t11::b1)
++if (extends_type_of(b1,a11) .neqv. .true.) call abort()
++deallocate(b1)
++
++allocate(b1,source=a11)
++if (extends_type_of(b1,a11) .neqv. .true.) call abort()
++deallocate(b1)
++
++allocate( b1,source=a1)
++if (extends_type_of(b1,a11) .neqv. .false.) call abort()
++deallocate(b1)
++
+ end
+ 
+-! { dg-final { scan-tree-dump-times "abort" 13 "original" } }
++! { dg-final { scan-tree-dump-times "abort" 16 "original" } }
+ ! { dg-final { scan-tree-dump-times "should_not_exist" 0 "original" } }
 Index: gcc/testsuite/gfortran.dg/c_assoc_2.f03
 ===================================================================
 --- a/src/gcc/testsuite/gfortran.dg/c_assoc_2.f03	(.../tags/gcc_6_2_0_release)
@@ -11606,6 +11856,20 @@ Index: gcc/testsuite/gcc.dg/pr70955.c
 +
 +  return 0;
 +}
+Index: gcc/testsuite/gcc.dg/pr78333.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/pr78333.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/pr78333.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,9 @@
++/* { dg-do link } */
++/* { dg-options "-finstrument-functions" } */
++
++extern inline __attribute__((gnu_inline, always_inline)) int foo () { }
++int main()
++{
++  foo ();
++  return 0;
++}
 Index: gcc/testsuite/gcc.dg/init-excess-2.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/init-excess-2.c	(.../tags/gcc_6_2_0_release)
@@ -11710,6 +11974,39 @@ Index: gcc/testsuite/gcc.dg/lto/pr70955_1.c
 +  __builtin_ms_va_end (ap);
 +  return sum;
 +}
+Index: gcc/testsuite/gcc.dg/pr78185.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/pr78185.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/pr78185.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,28 @@
++/* { dg-do run { target *-*-linux* *-*-gnu* } } */
++/* { dg-options "-O" } */
++
++#include <unistd.h>
++#include <signal.h>
++#include <stdlib.h>
++
++static char var1 = 0L;
++static char *var2 = &var1;
++
++void do_exit (int i)
++{
++  exit (0);
++}
++
++int main(void)
++{
++  struct sigaction s;
++  sigemptyset (&s.sa_mask);
++  s.sa_handler = do_exit;
++  s.sa_flags = 0;
++  sigaction (SIGALRM, &s, NULL);
++  alarm (1);
++  /* The following loop is infinite, the division by zero should not
++     be hoisted out of it.  */
++  for (; (var1 == 0 ? 0 : (100 / var1)) == *var2; );
++  return 0;
++}
 Index: gcc/testsuite/gcc.dg/torture/pr77916.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/torture/pr77916.c	(.../tags/gcc_6_2_0_release)
@@ -11797,6 +12094,78 @@ Index: gcc/testsuite/gcc.dg/torture/pr72851.c
 +  for (i = 0; i < 16; i++)
 +    K[i] = shuffle(CDn, PC2_shuffle, sizeof(PC2_shuffle));
 +}
+Index: gcc/testsuite/gcc.dg/torture/pr77855.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr77855.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr77855.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,48 @@
++/* { dg-do run } */
++
++int a, b = 1, c, e, f, g, k, m, n, o;
++char d, h, i, j, l; 
++char res[2];
++
++void __attribute__ ((noinline,noclone)) fn2 ()
++{
++  d = 2;
++}
++
++void fn3 ()
++{
++  for (;;)
++    {
++      for (; b; b--)
++	{
++	  fn2 ();  
++	  if (e)
++	    j = 1;
++	  if (f)
++	    L1:
++		k = j | (a & l);
++	  for (;;)
++	    {
++	      __builtin_snprintf (res, 2, "%d\n", d);
++	      if (d)
++		break;
++	      for (; o; o--)
++		for (; n;)
++		  for (; m; m++)
++		    ;
++	      goto L1;
++	    }
++	}
++      g = h;
++      c = i;
++      break;
++    }
++}
++
++int main ()
++{
++  fn3 ();
++  if (res[0] != '2')
++    __builtin_abort ();
++  return 0; 
++}
+Index: gcc/testsuite/gcc.dg/torture/pr78305.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr78305.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr78305.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,14 @@
++/* { dg-require-effective-target int32plus } */
++/* { dg-do run } */
++
++int main ()
++{
++  int a = 2;
++  int b = 1;
++
++  int t = -1 * ( -0x40000000 * a / ( -0x20000000 + b ) )  / -1;
++
++  if (t != 4) __builtin_abort();
++
++  return 0;
++}
 Index: gcc/testsuite/gcc.dg/torture/pr77839.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/torture/pr77839.c	(.../tags/gcc_6_2_0_release)
@@ -12033,6 +12402,23 @@ Index: gcc/testsuite/gcc.dg/dg-test-1.c
 +bar (int e, int f, int g, int h)/* { dg-warning "unused parameter 'g'" "warn3" { target *-*-* } . } */
 +{				/* { dg-warning "unused parameter 'h'" "warn4" { target *-*-* } .-1 } */
 +}
+Index: gcc/testsuite/gcc.dg/tree-ssa/phi-opt-15.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-15.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-15.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,12 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -fdump-tree-optimized" } */
++
++int
++foo (int i)
++{
++  if (i > 0)
++    i = -i;
++  return i;
++}
++
++/* { dg-final { scan-tree-dump-not "ABS" "optimized" } } */
 Index: gcc/testsuite/gcc.dg/tree-ssa/update-unroll-1.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/tree-ssa/update-unroll-1.c	(.../tags/gcc_6_2_0_release)
@@ -12279,7 +12665,47 @@ 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,787 @@
+@@ -1,3 +1,827 @@
++2016-11-23  Janus Weil  <janus at gcc.gnu.org>
++
++	Backport from trunk
++	PR fortran/66227
++	* gfortran.dg/extends_type_of_3.f90: Fix and extend the test case.
++
++2016-11-23  Richard Biener  <rguenther at suse.de>
++
++	Backport from mainline
++	2016-11-23  Richard Biener  <rguenther at suse.de>
++
++	PR lto/78472
++	* g++.dg/lto/pr78472_0.c: New testcase.
++	* g++.dg/lto/pr78472_1.C: Likewise.
++
++	2016-11-17  Richard Biener  <rguenther at suse.de>
++
++	PR middle-end/78305
++	* gcc.dg/torture/pr78305.c: New testcase.
++
++	2016-11-16  Richard Biener  <rguenther at suse.de>
++
++	PR middle-end/78333
++	* gcc.dg/pr78333.c: New testcase.
++
++	2016-11-07  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/78228
++	* gcc.dg/tree-ssa/phi-opt-15.c: New testcase.
++
++	2016-11-04  Richard Biener  <rguenther at suse.de>
++
++	PR middle-end/78185
++	* gcc.dg/pr78185.c: New testcase.
++
++	2016-10-06  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/77855
++	* gcc.dg/torture/pr77855.c: New testcase.
++
 +2016-11-22  Steven G. Kargl  <kargl at gcc.gnu.org>
 +
 +	PR fortran/58001
@@ -13067,7 +13493,7 @@ Index: gcc/testsuite/ChangeLog
  2016-08-22  Release Manager
  
  	* GCC 6.2.0 released.
-@@ -150,8 +934,8 @@
+@@ -150,8 +974,8 @@
  
  2016-08-09  Martin Jambor  <mjambor at suse.cz>
  
@@ -13078,7 +13504,7 @@ Index: gcc/testsuite/ChangeLog
  
  2016-08-09  Richard Biener  <rguenther at suse.de>
  
-@@ -276,8 +1060,8 @@
+@@ -276,8 +1100,8 @@
  
  2016-07-20  Martin Jambor  <mjambor at suse.cz>
  
@@ -13089,7 +13515,7 @@ Index: gcc/testsuite/ChangeLog
  
  2016-07-19  Jakub Jelinek  <jakub at redhat.com>
  
-@@ -418,7 +1202,7 @@
+@@ -418,7 +1242,7 @@
  	2016-07-06  Yuri Rumyantsev  <ysrumyan at gmail.com>
  
  	PR tree-optimization/71518
@@ -13098,7 +13524,7 @@ Index: gcc/testsuite/ChangeLog
  
  2016-07-09  Thomas Koenig  <tkoenig at gcc.gnu.org>
  
-@@ -1639,7 +2423,7 @@
+@@ -1639,7 +2463,7 @@
  	* g++.dg/cpp1y/vla13.C: Same.
  	* g++.dg/cpp1y/vla14.C: Same.
  	* g++.dg/cpp1y/vla3.C: Same.
@@ -13107,7 +13533,7 @@ Index: gcc/testsuite/ChangeLog
  	* g++.dg/ubsan/vla-1.C: Same.
  
  2016-04-14  Marek Polacek  <polacek at redhat.com>
-@@ -1671,7 +2455,7 @@
+@@ -1671,7 +2495,7 @@
  	* g++.dg/cpp1y/vla13.C: New test.
  	* g++.dg/cpp1y/vla14.C: New test.
  	* g++.dg/cpp1y/vla3.C: Restore deleted test.
@@ -13116,7 +13542,7 @@ Index: gcc/testsuite/ChangeLog
  	* g++.dg/ubsan/vla-1.C: Disable exceptions.
  
  2016-04-13  Jakub Jelinek  <jakub at redhat.com>
-@@ -1699,8 +2483,8 @@
+@@ -1699,8 +2523,8 @@
  2016-04-13  Marek Polacek  <polacek at redhat.com>
  
  	PR c/70436
@@ -13127,7 +13553,7 @@ Index: gcc/testsuite/ChangeLog
  
  2016-04-13  Ilya Enkovich  <ilya.enkovich at intel.com>
  
-@@ -1947,7 +2731,7 @@
+@@ -1947,7 +2771,7 @@
  2016-04-06  Vladimir Makarov  <vmakarov at redhat.com>
  
  	PR rtl-optimization/70398
@@ -14364,6 +14790,37 @@ Index: gcc/testsuite/g++.dg/tree-ssa/pr77943.C
 +    } catch (...) {
 +    }
 +}
+Index: gcc/testsuite/g++.dg/lto/pr78472_0.c
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/lto/pr78472_0.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/lto/pr78472_0.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,12 @@
++// { dg-lto-do link }
++
++extern struct S
++{
++  unsigned i:4;
++  unsigned :0;
++} s;
++static void *f(void)
++{
++  return &s;
++}
++int main() {}
+Index: gcc/testsuite/g++.dg/lto/pr78472_1.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/lto/pr78472_1.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/lto/pr78472_1.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,9 @@
++struct S
++{
++  unsigned i:4;
++  unsigned :0;
++} s;
++static void *f(void)
++{
++  return &s;
++}
 Index: gcc/testsuite/g++.dg/warn/Wplacement-new-size-4.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/warn/Wplacement-new-size-4.C	(.../tags/gcc_6_2_0_release)
@@ -17965,7 +18422,14 @@ Index: gcc/fortran/ChangeLog
 ===================================================================
 --- a/src/gcc/fortran/ChangeLog	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/fortran/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,285 @@
+@@ -1,3 +1,292 @@
++2016-11-23  Janus Weil  <janus at gcc.gnu.org>
++
++	Backport from trunk
++	PR fortran/66227
++	* simplify.c (gfc_simplify_extends_type_of): Fix missed optimization.
++	Prevent over-simplification. Fix a comment. Add a comment.
++
 +2016-11-22  Steven G. Kargl  <kargl at gcc.gnu.org>
 +
 +	PR fortran/58001
@@ -19316,7 +19780,41 @@ Index: gcc/fortran/simplify.c
  	return a;
  
        result = gfc_copy_expr (a);
-@@ -7043,10 +7045,18 @@
+@@ -2371,7 +2373,7 @@
+   if (UNLIMITED_POLY (a) || UNLIMITED_POLY (mold))
+     return NULL;
+ 
+-  /* Return .false. if the dynamic type can never be the same.  */
++  /* Return .false. if the dynamic type can never be an extension.  */
+   if ((a->ts.type == BT_CLASS && mold->ts.type == BT_CLASS
+        && !gfc_type_is_extension_of
+ 			(mold->ts.u.derived->components->ts.u.derived,
+@@ -2381,18 +2383,19 @@
+ 			 mold->ts.u.derived->components->ts.u.derived))
+       || (a->ts.type == BT_DERIVED && mold->ts.type == BT_CLASS
+ 	  && !gfc_type_is_extension_of
+-			(a->ts.u.derived,
+-			 mold->ts.u.derived->components->ts.u.derived)
+-	  && !gfc_type_is_extension_of
+ 			(mold->ts.u.derived->components->ts.u.derived,
+ 			 a->ts.u.derived))
+       || (a->ts.type == BT_CLASS && mold->ts.type == BT_DERIVED
+ 	  && !gfc_type_is_extension_of
+ 			(mold->ts.u.derived,
+-			 a->ts.u.derived->components->ts.u.derived)))
++			 a->ts.u.derived->components->ts.u.derived)
++	  && !gfc_type_is_extension_of
++			(a->ts.u.derived->components->ts.u.derived,
++			 mold->ts.u.derived)))
+     return gfc_get_logical_expr (gfc_default_logical_kind, &a->where, false);
+ 
+-  if (mold->ts.type == BT_DERIVED
++  /* Return .true. if the dynamic type is guaranteed to be an extension.  */
++  if (a->ts.type == BT_CLASS && mold->ts.type == BT_DERIVED
+       && gfc_type_is_extension_of (mold->ts.u.derived,
+ 				   a->ts.u.derived->components->ts.u.derived))
+     return gfc_get_logical_expr (gfc_default_logical_kind, &a->where, true);
+@@ -7043,10 +7046,18 @@
  gfc_expr *
  simplify_ieee_selected_real_kind (gfc_expr *expr)
  {
@@ -19454,6 +19952,17 @@ Index: gcc/gimplify.c
        return GS_ALL_DONE;
      }
  }
+@@ -11693,6 +11692,10 @@
+   /* ??? Add some way to ignore exceptions for this TFE.  */
+   if (flag_instrument_function_entry_exit
+       && !DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT (fndecl)
++      /* Do not instrument extern inline functions.  */
++      && !(DECL_DECLARED_INLINE_P (fndecl)
++	   && DECL_EXTERNAL (fndecl)
++	   && DECL_DISREGARD_INLINE_LIMITS (fndecl))
+       && !flag_instrument_functions_exclude_p (fndecl))
+     {
+       tree x;
 Index: gcc/lra-constraints.c
 ===================================================================
 --- a/src/gcc/lra-constraints.c	(.../tags/gcc_6_2_0_release)
@@ -19585,6 +20094,25 @@ Index: gcc/lra-constraints.c
        if (optional_p)
  	{
  	  lra_assert (REG_P (op));
+Index: gcc/tree-ssa-phiopt.c
+===================================================================
+--- a/src/gcc/tree-ssa-phiopt.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/tree-ssa-phiopt.c	(.../branches/gcc-6-branch)
+@@ -1453,6 +1453,14 @@
+   else
+     negate = false;
+ 
++  /* If the code negates only iff positive then make sure to not
++     introduce undefined behavior when negating or computing the absolute.
++     ???  We could use range info if present to check for arg1 == INT_MIN.  */
++  if (negate
++      && (ANY_INTEGRAL_TYPE_P (TREE_TYPE (arg1))
++	  && ! TYPE_OVERFLOW_WRAPS (TREE_TYPE (arg1))))
++    return false;
++
+   result = duplicate_ssa_name (result, NULL);
+ 
+   if (negate)
 Index: gcc/gimple-fold.c
 ===================================================================
 --- a/src/gcc/gimple-fold.c	(.../tags/gcc_6_2_0_release)
@@ -19666,7 +20194,49 @@ Index: gcc/tree-ssa-pre.c
  
  /* TODO:
  
-@@ -2896,7 +2897,24 @@
+@@ -2027,9 +2028,17 @@
+ {
+   bitmap_iterator bi;
+   unsigned i;
++  pre_expr to_remove = NULL;
+ 
+   FOR_EACH_EXPR_ID_IN_SET (set, i, bi)
+     {
++      /* Remove queued expr.  */
++      if (to_remove)
++	{
++	  bitmap_remove_from_set (set, to_remove);
++	  to_remove = NULL;
++	}
++
+       pre_expr expr = expression_for_id (i);
+       if (expr->kind == REFERENCE)
+ 	{
+@@ -2043,7 +2052,7 @@
+ 					   block, gimple_bb (def_stmt)))
+ 		      || (gimple_bb (def_stmt) == block
+ 			  && value_dies_in_block_x (expr, block))))
+-		bitmap_remove_from_set (set, expr);
++		to_remove = expr;
+ 	    }
+ 	}
+       else if (expr->kind == NARY)
+@@ -2055,9 +2064,13 @@
+ 	     as the available expression might be after the exit point.  */
+ 	  if (BB_MAY_NOTRETURN (block)
+ 	      && vn_nary_may_trap (nary))
+-	    bitmap_remove_from_set (set, expr);
++	    to_remove = expr;
+ 	}
+     }
++
++  /* Remove queued expr.  */
++  if (to_remove)
++    bitmap_remove_from_set (set, to_remove);
+ }
+ 
+ static sbitmap has_abnormal_preds;
+@@ -2896,7 +2909,24 @@
        gimple_seq_discard (forced_stmts);
        return folded;
      }
@@ -19692,7 +20262,7 @@ Index: gcc/tree-ssa-pre.c
    gcc_assert (TREE_CODE (folded) == SSA_NAME);
  
    /* If we have any intermediate expressions to the value sets, add them
-@@ -4207,26 +4225,36 @@
+@@ -4207,26 +4237,36 @@
  	  && !is_gimple_reg (gimple_assign_lhs (stmt))
  	  && (TREE_CODE (gimple_assign_rhs1 (stmt)) == SSA_NAME
  	      || is_gimple_min_invariant (gimple_assign_rhs1 (stmt))))
@@ -19747,7 +20317,7 @@ Index: gcc/tree-ssa-pre.c
  	}
  
        /* If this is a control statement value numbering left edges
-@@ -4335,6 +4363,15 @@
+@@ -4335,6 +4375,15 @@
  				       lang_hooks.decl_printable_name (fn, 2));
  		    }
  		  gimple_call_set_fndecl (call_stmt, fn);
@@ -19806,11 +20376,51 @@ Index: gcc/explow.c
  }
  
  /* If X is a memory reference to a member of an object block, try rewriting
+Index: gcc/loop-invariant.c
+===================================================================
+--- a/src/gcc/loop-invariant.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/loop-invariant.c	(.../branches/gcc-6-branch)
+@@ -597,13 +597,17 @@
+ 
+ 	  FOR_EACH_EDGE (e, ei, body[i]->succs)
+ 	    {
+-	      if (flow_bb_inside_loop_p (loop, e->dest))
+-		continue;
+-
+-	      bitmap_set_bit (may_exit, i);
+-	      bitmap_set_bit (has_exit, i);
+-	      outermost_exit = find_common_loop (outermost_exit,
+-						 e->dest->loop_father);
++	      if (! flow_bb_inside_loop_p (loop, e->dest))
++		{
++		  bitmap_set_bit (may_exit, i);
++		  bitmap_set_bit (has_exit, i);
++		  outermost_exit = find_common_loop (outermost_exit,
++						     e->dest->loop_father);
++		}
++	      /* If we enter a subloop that might never terminate treat
++	         it like a possible exit.  */
++	      if (flow_loop_nested_p (loop, e->dest->loop_father))
++		bitmap_set_bit (may_exit, i);
+ 	    }
+ 	  continue;
+ 	}
 Index: gcc/lto/lto.c
 ===================================================================
 --- a/src/gcc/lto/lto.c	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/lto/lto.c	(.../branches/gcc-6-branch)
-@@ -3099,6 +3099,10 @@
+@@ -372,7 +372,9 @@
+       tree f;
+ 
+       for (f = TYPE_FIELDS (type), nf = 0; f; f = TREE_CHAIN (f))
+-	if (TREE_CODE (f) == FIELD_DECL)
++	if (TREE_CODE (f) == FIELD_DECL
++	    && (! DECL_SIZE (f)
++		|| ! integer_zerop (DECL_SIZE (f))))
+ 	  {
+ 	    iterative_hash_canonical_type (TREE_TYPE (f), hstate);
+ 	    nf++;
+@@ -3099,6 +3101,10 @@
  
    execute_ipa_pass_list (g->get_passes ()->all_regular_ipa_passes);
  
@@ -19825,7 +20435,15 @@ Index: gcc/lto/ChangeLog
 ===================================================================
 --- a/src/gcc/lto/ChangeLog	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/lto/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,12 @@
+@@ -1,3 +1,20 @@
++2016-11-23  Richard Biener  <rguenther at suse.de>
++
++	Backport from mainline
++	2016-11-23  Richard Biener  <rguenther at suse.de>
++
++	PR lto/78472
++	* lto.c (hash_canonical_type): Ignore zero-sized fields.
++
 +2016-11-02  Richard Biener  <rguenther at suse.de>
 +
 +	Backport from mainline
@@ -593184,7 +593802,63 @@ Index: gcc/config/tilegx/tilegx.md
 ===================================================================
 --- a/src/gcc/config/tilegx/tilegx.md	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/config/tilegx/tilegx.md	(.../branches/gcc-6-branch)
-@@ -1798,20 +1798,21 @@
+@@ -1237,7 +1237,7 @@
+   "ld<four_s_if_si>_tls\t%0, %1, tls_ie_load(%2)"
+   [(set_attr "type" "X1_2cycle")])
+ 
+-(define_insn "*zero_extract<mode>"
++(define_insn_and_split "*zero_extract<mode>"
+   [(set (match_operand:I48MODE 0 "register_operand" "=r")
+ 	(zero_extract:I48MODE
+          (match_operand:I48MODE 1 "reg_or_0_operand" "r")
+@@ -1245,6 +1245,18 @@
+          (match_operand:I48MODE 3 "u6bit_cint_operand" "n")))]
+   ""
+   "bfextu\t%0, %r1, %3, %3+%2-1"
++  "&& reload_completed"
++  [(set (match_dup 0) (zero_extract:I48MODE
++                       (match_dup 1)
++                       (match_dup 2)
++                       (match_dup 3)))]
++{
++  HOST_WIDE_INT bit_width = INTVAL (operands[2]);
++  HOST_WIDE_INT bit_offset = INTVAL (operands[3]);
++
++  if (bit_offset + bit_width > 64)
++    operands[2] = GEN_INT (64 - bit_offset);
++}
+   [(set_attr "type" "X0")])
+ 
+ (define_insn "*sign_extract_low32"
+@@ -1256,7 +1268,7 @@
+   "INTVAL (operands[3]) == 0 && INTVAL (operands[2]) == 32"
+   "addxi\t%0, %r1, 0")
+ 
+-(define_insn "*sign_extract"
++(define_insn_and_split "*sign_extract"
+   [(set (match_operand:I48MODE 0 "register_operand" "=r")
+ 	(sign_extract:I48MODE
+          (match_operand:I48MODE 1 "reg_or_0_operand" "r")
+@@ -1264,6 +1276,18 @@
+          (match_operand:I48MODE 3 "u6bit_cint_operand" "n")))]
+   ""
+   "bfexts\t%0, %r1, %3, %3+%2-1"
++  "&& reload_completed"
++  [(set (match_dup 0) (sign_extract:I48MODE
++                       (match_dup 1)
++                       (match_dup 2)
++                       (match_dup 3)))]
++{
++  HOST_WIDE_INT bit_width = INTVAL (operands[2]);
++  HOST_WIDE_INT bit_offset = INTVAL (operands[3]);
++
++  if (bit_offset + bit_width > 64)
++    operands[2] = GEN_INT (64 - bit_offset);
++}
+   [(set_attr "type" "X0")])
+ 
+ 

+@@ -1798,20 +1822,21 @@
    [(set_attr "type" "Y0")])
  
  (define_expand "clzsi2"
@@ -593219,6 +593893,19 @@ Index: gcc/config/tilegx/tilegx.md
  (define_insn "ctz<mode>2"
    [(set (match_operand:I48MODE 0 "register_operand" "=r")
  	(ctz:I48MODE (match_operand:DI 1 "reg_or_0_operand" "rO")))]
+@@ -2748,6 +2773,12 @@
+   "nop"
+   [(set_attr "type" "Y01")])
+ 
++(define_insn "trap"
++  [(trap_if (const_int 1) (const_int 0))]
++  ""
++  "raise; moveli zero, 6"
++  [(set_attr "type" "cannot_bundle")])
++
+ 

+ ;;
+ ;; Conditional branches
 Index: gcc/config/tilegx/tilegx.c
 ===================================================================
 --- a/src/gcc/config/tilegx/tilegx.c	(.../tags/gcc_6_2_0_release)
@@ -593527,6 +594214,23 @@ Index: gcc/config/rs6000/rs6000.md
    [(set_attr "type" "vecmove")])
  
  

+Index: gcc/config/tilepro/tilepro.md
+===================================================================
+--- a/src/gcc/config/tilepro/tilepro.md	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/config/tilepro/tilepro.md	(.../branches/gcc-6-branch)
+@@ -1578,6 +1578,12 @@
+   "nop"
+   [(set_attr "type" "Y01")])
+ 
++(define_insn "trap"
++  [(trap_if (const_int 1) (const_int 0))]
++  ""
++  "raise; moveli zero, 6"
++  [(set_attr "type" "cannot_bundle")])
++
+ 

+ ;;
+ ;; Conditional branches
 Index: gcc/config/arm/arm.c
 ===================================================================
 --- a/src/gcc/config/arm/arm.c	(.../tags/gcc_6_2_0_release)

-- 
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