Rebase gcc to 6.2.0

This obviates the need to locally apply a fix to 6.1.0.

Change-Id: Ibe1d01c00abab5e10f8a2c518e371d0689719256
diff --git a/patches/gcc-patch.txt b/patches/gcc-patch.txt
index c3d5d97..b90aebb 100644
--- a/patches/gcc-patch.txt
+++ b/patches/gcc-patch.txt
@@ -80,109 +80,3 @@
  	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
  	;;
  i[34567]86-*-rdos*)
-
-
-commit c75b90dacb047d2bf690925c9b45100accb85b98
-Author: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date:   Thu Jul 21 06:16:17 2016 +0000
-
-    	PR c++/71092 - ICE with array and constexpr.
-    
-    	* constexpr.c (cxx_eval_call_expression): Fail quietly when cgraph
-    	threw away DECL_SAVED_TREE.
-    
-    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-6-branch@238574 138bc75d-0d04-0410-961f-82ee72b054a4
-
-diff --git a/gcc/cp/constexpr.c b/gcc/cp/constexpr.c
-index 5f434aa..fba7905 100644
---- a/gcc/cp/constexpr.c
-+++ b/gcc/cp/constexpr.c
-@@ -1450,9 +1450,19 @@ cxx_eval_call_expression (const constexpr_ctx *ctx, tree t,
-     }
-   else
-     {
--      if (!result || result == error_mark_node)
-+      if (result && result != error_mark_node)
-+	/* OK */;
-+      else if (!DECL_SAVED_TREE (fun))
-+	{
-+	  /* When at_eof >= 2, cgraph has started throwing away
-+	     DECL_SAVED_TREE, so fail quietly.  FIXME we get here because of
-+	     late code generation for VEC_INIT_EXPR, which needs to be
-+	     completely reconsidered.  */
-+	  gcc_assert (at_eof >= 2 && ctx->quiet);
-+	  *non_constant_p = true;
-+	}
-+      else
- 	{
--	  gcc_assert (DECL_SAVED_TREE (fun));
- 	  tree body, parms, res;
- 
- 	  /* Reuse or create a new unshared copy of this function's body.  */
-diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-array17.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-array17.C
-new file mode 100644
-index 0000000..c6afa50
---- /dev/null
-+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-array17.C
-@@ -0,0 +1,61 @@
-+// PR c++/71092
-+// { dg-do compile { target c++11 } }
-+
-+template <typename _Default> struct A { using type = _Default; };
-+template <typename _Default, template <typename> class>
-+using __detected_or = A<_Default>;
-+template <typename _Default, template <typename> class _Op>
-+using __detected_or_t = typename __detected_or<_Default, _Op>::type;
-+template <typename _Tp> struct B { typedef _Tp value_type; };
-+struct C {
-+  template <typename _Tp> using __pointer = typename _Tp::pointer;
-+};
-+template <typename _Alloc> struct J : C {
-+  using pointer = __detected_or_t<typename _Alloc::value_type *, __pointer>;
-+};
-+template <typename _T1> void _Construct(_T1 *) { new _T1; }
-+struct D {
-+  template <typename _ForwardIterator, typename _Size>
-+  static _ForwardIterator __uninit_default_n(_ForwardIterator p1, _Size) {
-+    _Construct(p1);
-+  }
-+};
-+template <typename _ForwardIterator, typename _Size>
-+void __uninitialized_default_n(_ForwardIterator p1, _Size) {
-+  D::__uninit_default_n(p1, 0);
-+}
-+template <typename _ForwardIterator, typename _Size, typename _Tp>
-+void __uninitialized_default_n_a(_ForwardIterator p1, _Size, _Tp) {
-+  __uninitialized_default_n(p1, 0);
-+}
-+template <typename> struct __shared_ptr {
-+  constexpr __shared_ptr() : _M_ptr(), _M_refcount() {}
-+  int _M_ptr;
-+  int _M_refcount;
-+};
-+template <typename _Alloc> struct F {
-+  typedef _Alloc _Tp_alloc_type;
-+  struct G {
-+    typename J<_Tp_alloc_type>::pointer _M_start;
-+    G(_Tp_alloc_type);
-+  };
-+  F(int, _Alloc p2) : _M_impl(p2) {}
-+  G _M_impl;
-+};
-+template <typename _Tp, typename _Alloc = B<_Tp>> struct K : F<_Alloc> {
-+  typedef _Alloc allocator_type;
-+  K(int, allocator_type p2 = allocator_type()) : F<_Alloc>(0, p2) {
-+    __uninitialized_default_n_a(this->_M_impl._M_start, 0, 0);
-+  }
-+};
-+struct H {
-+  H();
-+  struct I {
-+    __shared_ptr<int> trigger[1];
-+  };
-+  __shared_ptr<int> resetTrigger_;
-+  K<I> states_;
-+  __shared_ptr<int> triggerManager_;
-+};
-+__shared_ptr<int> a;
-+H::H() : states_(0), triggerManager_(a) {}
diff --git a/toolvers b/toolvers
index 9a2e9c1..2827184 100644
--- a/toolvers
+++ b/toolvers
@@ -1,12 +1,12 @@
 # Rerun updatetoolvers after modifying this file
-GCCVER=6.1.0
+GCCVER=6.2.0
 BINVER=2.27
 GDBVER=7.10.1
 GMPVER=5.1.3
 MPCVER=1.0.3
 MPFRVER=3.1.3
 # Below is autogenerated by updatetoolvers
-GCCHASH=09c4c85cabebb971b1de732a0219609f93fc0af5f86f6e437fd8d7f832f1a351
+GCCHASH=9944589fc722d3e66308c0ce5257788ebd7872982a718aa2516123940671b7c5
 BINHASH=369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88
 GDBHASH=25c72f3d41c7c8554d61cacbeacd5f40993276d2ccdec43279ac546e3993d6d5
 GMPHASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160