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