[gcc-7] 315/354: * Update to SVN 20171010 (r253580) from the gcc-7-branch. * Fix build dependency on realpath. Closes: #877821.
Ximin Luo
infinity0 at debian.org
Thu Nov 23 15:51:31 UTC 2017
This is an automated email from the git hooks/post-receive script.
infinity0 pushed a commit to branch master
in repository gcc-7.
commit 496dc30f6d9b6209e8bbab818ef671063af72676
Author: doko <doko at 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>
Date: Tue Oct 10 10:37:14 2017 +0000
* Update to SVN 20171010 (r253580) from the gcc-7-branch.
* Fix build dependency on realpath. Closes: #877821.
git-svn-id: svn+ssh://svn.debian.org/svn/gcccvs/branches/sid/gcc-7@9737 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
---
debian/changelog | 11 +-
debian/control | 4 +-
debian/control.m4 | 6 +-
debian/patches/svn-updates.diff | 1085 ++++++++++++++++++++++++++++++++++++++-
4 files changed, 1074 insertions(+), 32 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 1032fdb..fd408bf 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,15 @@
gcc-7 (7.2.0-9) UNRELEASED; urgency=medium
- * Update to SVN 20171004 (r253388) from the gcc-7-branch.
- - Fix PR fortran/80118, PR tree-optimization/82337.
+ * Update to SVN 20171010 (r253580) from the gcc-7-branch.
+ - Fix PR fortran/80118, PR tree-optimization/82337, PR sanitizer/82379,
+ PR target/71727 (AArch64), PR c++/82406, PR c++/70029, PR c++/82299,
+ PR c++/82406, PR c++/70029, PR c++/81525, PR ada/82393.
+ - libgo: use golang arch names as the default GOARCHs on MIPS.
+ Closes: #876639.
* Fix builds without hppa64 cross compiler and new debhelper. Closes: #877589.
+ * Fix build dependency on realpath. Closes: #877821.
- -- Matthias Klose <doko at debian.org> Wed, 04 Oct 2017 01:46:43 +0200
+ -- Matthias Klose <doko at debian.org> Tue, 10 Oct 2017 12:35:39 +0200
gcc-7 (7.2.0-8) unstable; urgency=medium
diff --git a/debian/control b/debian/control
index f8585d7..85a3c57 100644
--- a/debian/control
+++ b/debian/control
@@ -3,7 +3,7 @@ Section: devel
Priority: optional
Maintainer: Debian GCC Maintainers <debian-gcc at lists.debian.org>
Uploaders: Matthias Klose <doko at debian.org>
-Standards-Version: 4.1.0
+Standards-Version: 4.1.1
Build-Depends: debhelper (>= 9.20141010), dpkg-dev (>= 1.17.14),
g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32] <!cross>,
libc6.1-dev (>= 2.13-5) [alpha ia64] | libc0.3-dev (>= 2.13-5) [hurd-i386] | libc0.1-dev (>= 2.13-5) [kfreebsd-i386 kfreebsd-amd64] | libc6-dev (>= 2.13-5), libc6-dev (>= 2.13-31) [armel armhf], libc6-dev-amd64 [i386 x32], libc6-dev-sparc64 [sparc], libc6-dev-sparc [sparc64], libc6-dev-s390 [s390x], libc6-dev-s390x [s390], libc6-dev-i386 [amd64 x32], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], libc0.1-dev-i386 [kfreebsd-amd64], lib32gcc1 [amd64 ppc64 kfreebsd-amd64 mipsn32 mi [...]
@@ -18,7 +18,7 @@ Build-Depends: debhelper (>= 9.20141010), dpkg-dev (>= 1.17.14),
texinfo (>= 4.3), locales, sharutils,
procps, gnat-7:native [!m32r !sh3 !sh3eb !sh4eb !m68k], g++-7:native, netbase,
libisl-dev (>= 0.14), libmpc-dev (>= 1.0), libmpfr-dev (>= 3.0.0-9~), libgmp-dev (>= 2:5.0.1~), lib32z1-dev [amd64 kfreebsd-amd64], lib64z1-dev [i386],
- dejagnu [!m68k !hurd-amd64 !hurd-i386 !hurd-alpha !kfreebsd-amd64 !kfreebsd-i386 !kfreebsd-alpha], realpath (>= 1.9.12), chrpath, lsb-release, quilt,
+ dejagnu [!m68k !hurd-amd64 !hurd-i386 !hurd-alpha !kfreebsd-amd64 !kfreebsd-i386 !kfreebsd-alpha], coreutils (>= 2.26) | realpath (>= 1.9.12), chrpath, lsb-release, quilt,
pkg-config, libgc-dev,
g++-7-alpha-linux-gnu [alpha] <cross>, gobjc-7-alpha-linux-gnu [alpha] <cross>, gfortran-7-alpha-linux-gnu [alpha] <cross>, gdc-7-alpha-linux-gnu [alpha] <cross>, gccgo-7-alpha-linux-gnu [alpha] <cross>, gnat-7-alpha-linux-gnu [alpha] <cross>, g++-7-x86-64-linux-gnu [amd64] <cross>, gobjc-7-x86-64-linux-gnu [amd64] <cross>, gfortran-7-x86-64-linux-gnu [amd64] <cross>, gdc-7-x86-64-linux-gnu [amd64] <cross>, gccgo-7-x86-64-linux-gnu [amd64] <cross>, gnat-7-x86-64-linux-gnu [amd64] <cro [...]
Build-Depends-Indep: doxygen (>= 1.7.2), graphviz (>= 2.2), ghostscript, texlive-latex-base, xsltproc, libxml2-utils, docbook-xsl-ns
diff --git a/debian/control.m4 b/debian/control.m4
index 6180846..e7d025a 100644
--- a/debian/control.m4
+++ b/debian/control.m4
@@ -56,7 +56,7 @@ Uploaders: Iain Buclaw <ibuclaw at ubuntu.com>, Matthias Klose <doko at debian.org>
', `dnl
Uploaders: Matthias Klose <doko at debian.org>
')dnl SRCNAME
-Standards-Version: 4.1.0
+Standards-Version: 4.1.1
ifdef(`TARGET',`dnl cross
Build-Depends: DEBHELPER_BUILD_DEP DPKG_BUILD_DEP
LIBC_BUILD_DEP, LIBC_BIARCH_BUILD_DEP
@@ -67,7 +67,7 @@ Build-Depends: DEBHELPER_BUILD_DEP DPKG_BUILD_DEP
autogen <!nocheck>, zlib1g-dev, gawk, lzma, xz-utils, patchutils,
pkg-config, libgc-dev,
zlib1g-dev, SDT_BUILD_DEP
- bison (>= 1:2.3), flex, realpath (>= 1.9.12), lsb-release, quilt
+ bison (>= 1:2.3), flex, coreutils (>= 2.26) | realpath (>= 1.9.12), lsb-release, quilt
',`dnl native
Build-Depends: DEBHELPER_BUILD_DEP DPKG_BUILD_DEP
GCC_MULTILIB_BUILD_DEP
@@ -83,7 +83,7 @@ Build-Depends: DEBHELPER_BUILD_DEP DPKG_BUILD_DEP
texinfo (>= 4.3), locales, sharutils,
procps, FORTRAN_BUILD_DEP GNAT_BUILD_DEP GO_BUILD_DEP GDC_BUILD_DEP
ISL_BUILD_DEP MPC_BUILD_DEP MPFR_BUILD_DEP GMP_BUILD_DEP PHOBOS_BUILD_DEP
- CHECK_BUILD_DEP realpath (>= 1.9.12), chrpath, lsb-release, quilt,
+ CHECK_BUILD_DEP coreutils (>= 2.26) | realpath (>= 1.9.12), chrpath, lsb-release, quilt,
pkg-config, libgc-dev,
TARGET_TOOL_BUILD_DEP
Build-Depends-Indep: LIBSTDCXX_BUILD_INDEP
diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff
index 78fd37e..a0fc1c2 100644
--- a/debian/patches/svn-updates.diff
+++ b/debian/patches/svn-updates.diff
@@ -1,10 +1,10 @@
-# DP: updates from the 7 branch upto 20171004 (r253388).
+# DP: updates from the 7 branch upto 20171010 (r253580).
last_update()
{
cat > ${dir}LAST_UPDATED <EOF
-Wed Oct 4 00:32:42 CEST 2017
-Tue Oct 3 22:32:42 UTC 2017 (revision 253388)
+Tue Oct 10 12:18:42 CEST 2017
+Tue Oct 10 10:18:42 UTC 2017 (revision 253580)
EOF
}
@@ -218,7 +218,16 @@ Index: libsanitizer/ChangeLog
===================================================================
--- a/src/libsanitizer/ChangeLog (.../tags/gcc_7_2_0_release)
+++ b/src/libsanitizer/ChangeLog (.../branches/gcc-7-branch)
-@@ -1,3 +1,10 @@
+@@ -1,3 +1,19 @@
++2017-10-05 H.J. Lu <hongjiu.lu at intel.com>
++
++ Backported from mainline
++ 2017-10-05 H.J. Lu <hongjiu.lu at intel.com>
++
++ PR sanitizer/82379
++ * configure.tgt (SANITIZER_COMMON_TARGET_DEPENDENT_OBJECTS): Set
++ to sanitizer_linux_x86_64.lo if __x86_64__ is defined by $CC.
++
+2017-09-07 Jakub Jelinek <jakub at redhat.com>
+
+ Backported from mainline
@@ -229,6 +238,19 @@ Index: libsanitizer/ChangeLog
2017-08-14 Release Manager
* GCC 7.2.0 released.
+Index: libsanitizer/configure.tgt
+===================================================================
+--- a/src/libsanitizer/configure.tgt (.../tags/gcc_7_2_0_release)
++++ b/src/libsanitizer/configure.tgt (.../branches/gcc-7-branch)
+@@ -27,6 +27,8 @@
+ TSAN_SUPPORTED=yes
+ LSAN_SUPPORTED=yes
+ TSAN_TARGET_DEPENDENT_OBJECTS=tsan_rtl_amd64.lo
++ fi
++ if echo "int x = __x86_64__;" | $CC -c -x c -o /dev/null - > /dev/null 2>&1; then
+ SANITIZER_COMMON_TARGET_DEPENDENT_OBJECTS=sanitizer_linux_x86_64.lo
+ fi
+ ;;
Index: libstdc++-v3/doc/xml/manual/status_cxx2017.xml
===================================================================
--- a/src/libstdc++-v3/doc/xml/manual/status_cxx2017.xml (.../tags/gcc_7_2_0_release)
@@ -6694,12 +6716,45 @@ Index: gcc/DATESTAMP
+++ b/src/gcc/DATESTAMP (.../branches/gcc-7-branch)
@@ -1 +1 @@
-20170814
-+20171003
++20171010
Index: gcc/tree.c
===================================================================
--- a/src/gcc/tree.c (.../tags/gcc_7_2_0_release)
+++ b/src/gcc/tree.c (.../branches/gcc-7-branch)
-@@ -13219,18 +13219,26 @@
+@@ -4810,8 +4810,9 @@
+ Record such modified types already made so we don't make duplicates. */
+
+ tree
+-build_type_attribute_qual_variant (tree ttype, tree attribute, int quals)
++build_type_attribute_qual_variant (tree otype, tree attribute, int quals)
+ {
++ tree ttype = otype;
+ if (! attribute_list_equal (TYPE_ATTRIBUTES (ttype), attribute))
+ {
+ inchash::hash hstate;
+@@ -4838,6 +4839,11 @@
+ }
+
+ ttype = build_qualified_type (ttype, TYPE_UNQUALIFIED);
++ if (lang_hooks.types.copy_lang_qualifiers
++ && otype != TYPE_MAIN_VARIANT (otype))
++ ttype = (lang_hooks.types.copy_lang_qualifiers
++ (ttype, TYPE_MAIN_VARIANT (otype)));
++
+ ntype = build_distinct_type_copy (ttype);
+
+ TYPE_ATTRIBUTES (ntype) = attribute;
+@@ -4884,6 +4890,9 @@
+ TYPE_CANONICAL (ntype) = TYPE_CANONICAL (ttype);
+
+ ttype = build_qualified_type (ntype, quals);
++ if (lang_hooks.types.copy_lang_qualifiers
++ && otype != TYPE_MAIN_VARIANT (otype))
++ ttype = lang_hooks.types.copy_lang_qualifiers (ttype, otype);
+ }
+ else if (TYPE_QUALS (ttype) != quals)
+ ttype = build_qualified_type (ttype, quals);
+@@ -13219,18 +13228,26 @@
return NULL_TREE;
}
@@ -6735,7 +6790,7 @@ Index: gcc/tree.c
return false;
while (handled_component_p (ref))
-@@ -13238,19 +13246,42 @@
+@@ -13238,19 +13255,42 @@
/* If the reference chain contains a component reference to a
non-union type and there follows another field the reference
is not at the end of a structure. */
@@ -7111,7 +7166,29 @@ Index: gcc/ChangeLog
===================================================================
--- a/src/gcc/ChangeLog (.../tags/gcc_7_2_0_release)
+++ b/src/gcc/ChangeLog (.../branches/gcc-7-branch)
-@@ -1,3 +1,597 @@
+@@ -1,3 +1,619 @@
++2017-10-06 Christophe Lyon <christophe.lyon at linaro.org>
++
++ Backport from mainline r253242.
++ 2017-09-27 Christophe Lyon <christophe.lyon at linaro.org>
++
++ PR target/71727
++ * config/aarch64/aarch64.c
++ (aarch64_builtin_support_vector_misalignment): Always return false
++ when misalignment is unknown.
++
++2017-10-04 Jason Merrill <jason at redhat.com>
++
++ PR c++/82406 - C++ error with noexcept function type
++ PR c++/70029 - ICE with ref-qualifier and -flto
++ * langhooks.h (struct lang_hooks_for_types): Add
++ copy_lang_qualifiers.
++ * attribs.c (build_type_attribute_qual_variant): Use it.
++ * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
++ NULL.
++ (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
++ * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
++
+2017-10-02 Bill Schmidt <wschmidt at linux.vnet.ibm.com>
+
+ Backport from mainline
@@ -8469,6 +8546,27 @@ Index: gcc/testsuite/gcc.target/arm/lto/pr65837_0.c
#include "arm_neon.h"
+Index: gcc/testsuite/gcc.target/aarch64/pr71727-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/aarch64/pr71727-2.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/gcc.target/aarch64/pr71727-2.c (.../branches/gcc-7-branch)
+@@ -0,0 +1,16 @@
++/* { dg-do compile } */
++/* { dg-options "-mstrict-align -O3" } */
++
++unsigned char foo(const unsigned char *buffer, unsigned int length)
++{
++ unsigned char sum;
++ unsigned int count;
++
++ for (sum = 0, count = 0; count < length; count++) {
++ sum = (unsigned char) (sum + *(buffer + count));
++ }
++
++ return sum;
++}
++
++/* { dg-final { scan-assembler-times "and\tw\[0-9\]+, w\[0-9\]+, 15" 1 } } */
Index: gcc/testsuite/gcc.target/i386/pr81921.c
===================================================================
--- a/src/gcc/testsuite/gcc.target/i386/pr81921.c (.../tags/gcc_7_2_0_release)
@@ -8709,6 +8807,47 @@ Index: gcc/testsuite/gcc.target/i386/mpx/va-arg-pack-2-ubv.c
}
int prebuf[100];
+Index: gcc/testsuite/go.test/go-test.exp
+===================================================================
+--- a/src/gcc/testsuite/go.test/go-test.exp (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/go.test/go-test.exp (.../branches/gcc-7-branch)
+@@ -213,29 +213,27 @@
+ #error FOO
+ #endif
+ }] {
+- set goarch "mipso32"
++ set goarch "mips"
+ } elseif [check_no_compiler_messages mipsn32 assembly {
+ #if _MIPS_SIM != _ABIN32
+ #error FOO
+ #endif
+ }] {
+- set goarch "mipsn32"
++ set goarch "mips64p32"
+ } elseif [check_no_compiler_messages mipsn64 assembly {
+ #if _MIPS_SIM != _ABI64
+ #error FOO
+ #endif
+ }] {
+- set goarch "mipsn64"
+- } elseif [check_no_compiler_messages mipso64 assembly {
+- #if _MIPS_SIM != _ABIO64
+- #error FOO
+- #endif
+- }] {
+- set goarch "mipso64"
++ set goarch "mips64"
+ } else {
+ perror "$target_triplet: unrecognized MIPS ABI"
+ return ""
+ }
++
++ if [istarget "mips*el-*-*"] {
++ append goarch "le"
++ }
+ }
+ "powerpc*-*-*" {
+ if [check_effective_target_ilp32] {
Index: gcc/testsuite/lib/target-supports.exp
===================================================================
--- a/src/gcc/testsuite/lib/target-supports.exp (.../tags/gcc_7_2_0_release)
@@ -10059,7 +10198,24 @@ Index: gcc/testsuite/ChangeLog
===================================================================
--- a/src/gcc/testsuite/ChangeLog (.../tags/gcc_7_2_0_release)
+++ b/src/gcc/testsuite/ChangeLog (.../branches/gcc-7-branch)
-@@ -1,3 +1,442 @@
+@@ -1,3 +1,459 @@
++2017-10-09 James Cowgill <James.Cowgill at imgtec.com>
++
++ * go.test/go-test.exp (go-set-goarch): Update MIPS architecture names.
++
++2017-10-06 Jakub Jelinek <jakub at redhat.com>
++
++ PR c++/82299
++ * g++.dg/cpp0x/pr82299.C: New test.
++
++2017-10-06 Christophe Lyon <christophe.lyon at linaro.org>
++
++ Backport from mainline r253251.
++ 2017-09-27 Christophe Lyon <christophe.lyon at linaro.org>
++
++ PR target/71727
++ * gcc.target/aarch64/pr71727-2.c: New test.
++
+2017-10-03 Thomas Koenig <tkoenig at gcc.gnu.org>
+ Steven G. Kargl <kargl at gcc.gnu.org>
+
@@ -10587,6 +10743,20 @@ Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv12.C
+ auto f = a([](int) {}, [](float) {});
+ f({});
+}
+Index: gcc/testsuite/g++.dg/cpp0x/pr82299.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/pr82299.C (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/pr82299.C (.../branches/gcc-7-branch)
+@@ -0,0 +1,9 @@
++// PR c++/82299
++// { dg-do compile { target c++11 } }
++// { dg-options "-Wuseless-cast" }
++
++enum Enum : char { A = 0, B = 1 };
++
++struct S {
++ Enum e { Enum::A }; // { dg-bogus "useless cast to type" }
++};
Index: gcc/testsuite/g++.dg/cpp0x/pr81325.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/cpp0x/pr81325.C (.../tags/gcc_7_2_0_release)
@@ -10906,6 +11076,30 @@ Index: gcc/testsuite/g++.dg/cpp1y/feat-cxx11.C
// C++14 features allowed in C++11 in non-ANSI modes:
#ifndef __cpp_binary_literals
+Index: gcc/testsuite/g++.dg/cpp1y/lambda-generic-auto1.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp1y/lambda-generic-auto1.C (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp1y/lambda-generic-auto1.C (.../branches/gcc-7-branch)
+@@ -0,0 +1,19 @@
++// Related to c++/81525
++// { dg-do compile { target c++14 } }
++
++template <class X>
++struct A
++{
++ template <class T>
++ static void f()
++ {
++ [](auto b) {
++ auto c = +b;
++ }(42);
++ }
++};
++
++int main()
++{
++ A<int>::f<int>();
++}
Index: gcc/testsuite/g++.dg/cpp1y/lambda-generic-this1.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/cpp1y/lambda-generic-this1.C (.../tags/gcc_7_2_0_release)
@@ -11119,6 +11313,25 @@ Index: gcc/testsuite/g++.dg/cpp1z/lambda-inherit1.C
+ [](auto x) { x.bar(); }
+ }(a{});
+}
+Index: gcc/testsuite/g++.dg/ext/attrib54.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/ext/attrib54.C (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/ext/attrib54.C (.../branches/gcc-7-branch)
+@@ -0,0 +1,14 @@
++// PR c++/82406
++
++class a
++{
++public:
++ template <typename b> void operator() (const b &);
++};
++void c () throw () __attribute__ ((__nonnull__));
++void
++d ()
++{
++ a e;
++ e (c);
++}
Index: gcc/testsuite/g++.dg/ext/altivec-18.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/ext/altivec-18.C (.../tags/gcc_7_2_0_release)
@@ -11138,6 +11351,28 @@ Index: gcc/testsuite/g++.dg/ext/altivec-18.C
+{
+ vec_ld (0, c);
+}
+Index: gcc/testsuite/g++.dg/ext/varargs2.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/ext/varargs2.C (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/ext/varargs2.C (.../branches/gcc-7-branch)
+@@ -0,0 +1,17 @@
++// { dg-do run }
++
++int c;
++struct X { X() {}; X(const X&) { ++c; } };
++void Foo (X, ...) {}
++void bin (X &p)
++{
++ Foo (p, p);
++}
++
++int main()
++{
++ X x;
++ bin(x);
++ if (c != 2)
++ __builtin_abort();
++}
Index: gcc/testsuite/g++.dg/pr80287.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/pr80287.C (.../tags/gcc_7_2_0_release)
@@ -11170,6 +11405,21 @@ Index: gcc/testsuite/g++.dg/other/bitfield6.C
+} d;
+
+char f = (903092 ? int(d.c) : 0) << a;
+Index: gcc/testsuite/g++.dg/lto/pr70029_0.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/lto/pr70029_0.C (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/lto/pr70029_0.C (.../branches/gcc-7-branch)
+@@ -0,0 +1,10 @@
++// PR c++/70029
++// { dg-lto-do assemble }
++
++struct A
++{
++ A();
++ int foo() && __attribute__ ((__warn_unused_result__)) { return 0; }
++};
++
++A a;
Index: gcc/testsuite/g++.dg/warn/Wbool-operation-1.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/warn/Wbool-operation-1.C (.../tags/gcc_7_2_0_release)
@@ -11318,6 +11568,18 @@ Index: gcc/cp/typeck.c
&& warning_at (location, OPT_Wbool_operation,
"%<~%> on an expression of type bool"))
inform (location, "did you mean to use logical not (%<!%>)?");
+@@ -8413,7 +8414,10 @@
+ {
+ tree elt = CONSTRUCTOR_ELT (rhs, 0)->value;
+ if (check_narrowing (ENUM_UNDERLYING_TYPE (type), elt, complain))
+- rhs = cp_build_c_cast (type, elt, complain);
++ {
++ warning_sentinel w (warn_useless_cast);
++ rhs = cp_build_c_cast (type, elt, complain);
++ }
+ else
+ rhs = error_mark_node;
+ }
Index: gcc/cp/decl.c
===================================================================
--- a/src/gcc/cp/decl.c (.../tags/gcc_7_2_0_release)
@@ -11336,6 +11598,18 @@ Index: gcc/cp/decl.c
cp_function_chain->invalid_constexpr = true;
}
+@@ -6099,7 +6100,10 @@
+ {
+ tree elt = CONSTRUCTOR_ELT (init, 0)->value;
+ if (check_narrowing (ENUM_UNDERLYING_TYPE (type), elt, complain))
+- return cp_build_c_cast (type, elt, tf_warning_or_error);
++ {
++ warning_sentinel w (warn_useless_cast);
++ return cp_build_c_cast (type, elt, tf_warning_or_error);
++ }
+ else
+ return error_mark_node;
+ }
Index: gcc/cp/tree.c
===================================================================
--- a/src/gcc/cp/tree.c (.../tags/gcc_7_2_0_release)
@@ -11383,11 +11657,55 @@ Index: gcc/cp/tree.c
if (seen_p)
*seen_p = data.seen;
return exp;
+@@ -4217,6 +4218,21 @@
+ TYPE_RAISES_EXCEPTIONS (typeb), ce_exact);
+ }
+
++/* Copy the language-specific type variant modifiers from TYPEB to TYPEA. For
++ C++, these are the exception-specifier and ref-qualifier. */
++
++tree
++cxx_copy_lang_qualifiers (const_tree typea, const_tree typeb)
++{
++ tree type = CONST_CAST_TREE (typea);
++ if (TREE_CODE (type) == FUNCTION_TYPE || TREE_CODE (type) == METHOD_TYPE)
++ {
++ type = build_exception_variant (type, TYPE_RAISES_EXCEPTIONS (typeb));
++ type = build_ref_qualified_type (type, type_memfn_rqual (typeb));
++ }
++ return type;
++}
++
+ /* Apply FUNC to all language-specific sub-trees of TP in a pre-order
+ traversal. Called from walk_tree. */
+
Index: gcc/cp/ChangeLog
===================================================================
--- a/src/gcc/cp/ChangeLog (.../tags/gcc_7_2_0_release)
+++ b/src/gcc/cp/ChangeLog (.../branches/gcc-7-branch)
-@@ -1,3 +1,76 @@
+@@ -1,3 +1,98 @@
++2017-10-06 Jakub Jelinek <jakub at redhat.com>
++
++ PR c++/82299
++ * decl.c (reshape_init): Suppress warn_useless_cast for direct enum
++ init.
++ * typeck.c (convert_for_assignment): Likewise.
++
++2017-10-05 Jason Merrill <jason at redhat.com>
++
++ * call.c (convert_arg_to_ellipsis): Use the result of force_rvalue.
++
++2017-10-04 Jason Merrill <jason at redhat.com>
++
++ PR c++/82406 - C++ error with noexcept function type
++ PR c++/70029 - ICE with ref-qualifier and -flto
++ * tree.c (cxx_copy_lang_qualifiers): New.
++ * cp-tree.h: Declare it.
++ * cp-objcp-common.h: Define LANG_HOOKS_COPY_LANG_QUALIFIERS.
++
++ PR c++/81525 - broken handling of auto in generic lambda.
++ * pt.c (tsubst_decl) [VAR_DECL]: Use strip_innermost_template_args.
++
+2017-09-22 Eric Botcazou <ebotcazou at adacore.com>
+
+ PR bootstrap/81926
@@ -11464,7 +11782,7 @@ Index: gcc/cp/ChangeLog
2017-08-14 Release Manager
* GCC 7.2.0 released.
-@@ -4,8 +77,8 @@
+@@ -4,8 +99,8 @@
2017-08-09 Leonid Koppel <lkoppel at uwaterloo.ca>
@@ -11523,23 +11841,26 @@ Index: gcc/cp/pt.c
{
if (complain & tf_error)
error ("%qE is not a valid template argument for type %qT "
-@@ -12896,7 +12896,15 @@
+@@ -12896,7 +12896,17 @@
&& VAR_HAD_UNKNOWN_BOUND (t)
&& type != error_mark_node)
type = strip_array_domain (type);
-+ tree auto_node = type_uses_auto (type);
-+ int len = TREE_VEC_LENGTH (args);
-+ if (auto_node)
-+ /* Mask off any template args past the variable's context so we
-+ don't replace the auto with an unrelated argument. */
-+ TREE_VEC_LENGTH (args) = TEMPLATE_TYPE_LEVEL (auto_node) - 1;
- type = tsubst (type, args, complain, in_decl);
-+ if (auto_node)
-+ TREE_VEC_LENGTH (args) = len;
+- type = tsubst (type, args, complain, in_decl);
++ tree sub_args = args;
++ if (tree auto_node = type_uses_auto (type))
++ {
++ /* Mask off any template args past the variable's context so we
++ don't replace the auto with an unrelated argument. */
++ int nouter = TEMPLATE_TYPE_LEVEL (auto_node) - 1;
++ int extra = TMPL_ARGS_DEPTH (args) - nouter;
++ if (extra > 0)
++ sub_args = strip_innermost_template_args (args, extra);
++ }
++ type = tsubst (type, sub_args, complain, in_decl);
}
if (VAR_P (r))
{
-@@ -14687,6 +14695,10 @@
+@@ -14687,6 +14697,10 @@
DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (r)
= TREE_CONSTANT (r) = true;
DECL_INITIAL (r) = init;
@@ -11638,7 +11959,49 @@ Index: gcc/cp/call.c
tree convfn = cand->fn;
/* When converting from an init list we consider explicit
-@@ -9128,7 +9137,9 @@
+@@ -7117,13 +7126,9 @@
+ /* In a template (or ill-formed code), we can have an incomplete type
+ even after require_complete_type_sfinae, in which case we don't know
+ whether it has trivial copy or not. */
+- && COMPLETE_TYPE_P (arg_type))
++ && COMPLETE_TYPE_P (arg_type)
++ && !cp_unevaluated_operand)
+ {
+- /* Build up a real lvalue-to-rvalue conversion in case the
+- copy constructor is trivial but not callable. */
+- if (!cp_unevaluated_operand && CLASS_TYPE_P (arg_type))
+- force_rvalue (arg, complain);
+-
+ /* [expr.call] 5.2.2/7:
+ Passing a potentially-evaluated argument of class type (Clause 9)
+ with a non-trivial copy constructor or a non-trivial destructor
+@@ -7135,10 +7140,10 @@
+
+ If the call appears in the context of a sizeof expression,
+ it is not potentially-evaluated. */
+- if (cp_unevaluated_operand == 0
+- && (type_has_nontrivial_copy_init (arg_type)
+- || TYPE_HAS_NONTRIVIAL_DESTRUCTOR (arg_type)))
++ if (type_has_nontrivial_copy_init (arg_type)
++ || TYPE_HAS_NONTRIVIAL_DESTRUCTOR (arg_type))
+ {
++ arg = force_rvalue (arg, complain);
+ if (complain & tf_warning)
+ warning (OPT_Wconditionally_supported,
+ "passing objects of non-trivially-copyable "
+@@ -7146,6 +7151,11 @@
+ arg_type);
+ return cp_build_addr_expr (arg, complain);
+ }
++ /* Build up a real lvalue-to-rvalue conversion in case the
++ copy constructor is trivial but not callable. */
++ else if (CLASS_TYPE_P (arg_type))
++ force_rvalue (arg, complain);
++
+ }
+
+ return arg;
+@@ -9128,7 +9138,9 @@
return 0;
else if (t1->kind == ck_user)
{
@@ -11713,6 +12076,19 @@ Index: gcc/cp/cp-objcp-common.c
return NULL_TREE;
}
+Index: gcc/cp/cp-objcp-common.h
+===================================================================
+--- a/src/gcc/cp/cp-objcp-common.h (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/cp/cp-objcp-common.h (.../branches/gcc-7-branch)
+@@ -94,6 +94,8 @@
+ #define LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE cxx_builtin_function_ext_scope
+ #undef LANG_HOOKS_TYPE_HASH_EQ
+ #define LANG_HOOKS_TYPE_HASH_EQ cxx_type_hash_eq
++#undef LANG_HOOKS_COPY_LANG_QUALIFIERS
++#define LANG_HOOKS_COPY_LANG_QUALIFIERS cxx_copy_lang_qualifiers
+ #undef LANG_HOOKS_MISSING_NORETURN_OK_P
+ #define LANG_HOOKS_MISSING_NORETURN_OK_P cp_missing_noreturn_ok_p
+ #undef LANG_HOOKS_BLOCK_MAY_FALLTHRU
Index: gcc/cp/cp-tree.h
===================================================================
--- a/src/gcc/cp/cp-tree.h (.../tags/gcc_7_2_0_release)
@@ -11726,6 +12102,14 @@ Index: gcc/cp/cp-tree.h
extern void inject_this_parameter (tree, cp_cv_quals);
/* in pt.c */
+@@ -6703,6 +6703,7 @@
+ extern tree cp_save_expr (tree);
+ extern bool cast_valid_in_integral_constant_expression_p (tree);
+ extern bool cxx_type_hash_eq (const_tree, const_tree);
++extern tree cxx_copy_lang_qualifiers (const_tree, const_tree);
+
+ extern void cxx_print_statistics (void);
+ extern bool maybe_warn_zero_as_null_pointer_constant (tree, location_t);
Index: gcc/omp-expand.c
===================================================================
--- a/src/gcc/omp-expand.c (.../tags/gcc_7_2_0_release)
@@ -12252,6 +12636,46 @@ Index: gcc/opts.h
extern void finish_options (struct gcc_options *opts,
struct gcc_options *opts_set,
location_t loc);
+Index: gcc/ada/sysdep.c
+===================================================================
+--- a/src/gcc/ada/sysdep.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/ada/sysdep.c (.../branches/gcc-7-branch)
+@@ -126,7 +126,7 @@
+
+ */
+
+-#if defined (WINNT) || defined (__CYGWIN__) || defined(__DJGPP__)
++#if defined (WINNT) || defined (__CYGWIN__) || defined (__DJGPP__)
+
+ const char __gnat_text_translation_required = 1;
+
+@@ -137,7 +137,7 @@
+ #define WIN_SETMODE _setmode
+ #endif
+
+-#if defined(__DJGPP__)
++#if defined (__DJGPP__)
+ #include <io.h>
+ #define _setmode setmode
+ #endif /* __DJGPP__ */
+@@ -154,7 +154,7 @@
+ WIN_SETMODE (handle, O_TEXT);
+ }
+
+-#ifdef __DJGPP__
++#if defined (__CYGWIN__) || defined (__DJGPP__)
+ void
+ __gnat_set_mode (int handle, int mode)
+ {
+@@ -826,7 +826,7 @@
+
+ #elif defined (__APPLE__) || defined (__FreeBSD__) || defined (__linux__) \
+ || defined (__GLIBC__) || defined (__DragonFly__) || defined (__OpenBSD__) \
+- || defined(__DJGPP__)
++ || defined (__DJGPP__)
+ {
+ localtime_r (timer, &tp);
+ *off = tp.tm_gmtoff;
Index: gcc/ada/sem_ch3.adb
===================================================================
--- a/src/gcc/ada/sem_ch3.adb (.../tags/gcc_7_2_0_release)
@@ -12311,11 +12735,38 @@ Index: gcc/ada/sem_util.ads
procedure Set_Scope_Is_Transient (V : Boolean := True);
-- Set the flag Is_Transient of the current scope
+Index: gcc/ada/mingw32.h
+===================================================================
+--- a/src/gcc/ada/mingw32.h (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/ada/mingw32.h (.../branches/gcc-7-branch)
+@@ -59,16 +59,6 @@
+ #endif
+ #include <windows.h>
+
+-#ifndef _O_U8TEXT
+-#define _O_U8TEXT _O_TEXT
+-#endif
+-#ifndef _O_U16TEXT
+-#define _O_U16TEXT _O_TEXT
+-#endif
+-#ifndef _O_WTEXT
+-#define _O_WTEXT _O_TEXT
+-#endif
+-
+ /* After including this file it is possible to use the character t as prefix
+ to routines. If GNAT_UNICODE_SUPPORT is defined then the unicode enabled
+ versions will be used. */
Index: gcc/ada/ChangeLog
===================================================================
--- a/src/gcc/ada/ChangeLog (.../tags/gcc_7_2_0_release)
+++ b/src/gcc/ada/ChangeLog (.../branches/gcc-7-branch)
-@@ -1,3 +1,58 @@
+@@ -1,3 +1,64 @@
++2017-10-05 Eric Botcazou <ebotcazou at adacore.com>
++
++ PR ada/82393
++ * mingw32.h (_O_U8TEXT, _O_U16TEXT, _O_WTEXT): Delete.
++ * sysdep.c (__gnat_set_mode ): Use DJGPP version for Cygwin.
++
+2017-09-15 Martin Liska <mliska at suse.cz>
+
+ Backport from mainline
@@ -13189,6 +13640,21 @@ Index: gcc/fortran/trans-io.c
if (ts->type == BT_CLASS)
derived = ts->u.derived->components->ts.u.derived;
+Index: gcc/langhooks.h
+===================================================================
+--- a/src/gcc/langhooks.h (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/langhooks.h (.../branches/gcc-7-branch)
+@@ -123,6 +123,10 @@
+ FUNCTION_TYPE or METHOD_TYPE. */
+ bool (*type_hash_eq) (const_tree, const_tree);
+
++ /* If non-NULL, return TYPE1 with any language-specific modifiers copied from
++ TYPE2. */
++ tree (*copy_lang_qualifiers) (const_tree, const_tree);
++
+ /* Return TRUE if TYPE uses a hidden descriptor and fills in information
+ for the debugger about the array bounds, strides, etc. */
+ bool (*get_array_descr_info) (const_tree, struct array_descr_info *);
Index: gcc/tree-if-conv.c
===================================================================
--- a/src/gcc/tree-if-conv.c (.../tags/gcc_7_2_0_release)
@@ -316366,6 +316832,32 @@ Index: gcc/config/riscv/rtems.h
+ builtin_define ("__USE_INIT_FINI__"); \
+ builtin_assert ("system=rtems"); \
+ } while (0)
+Index: gcc/config/aarch64/aarch64.c
+===================================================================
+--- a/src/gcc/config/aarch64/aarch64.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/config/aarch64/aarch64.c (.../branches/gcc-7-branch)
+@@ -11509,19 +11509,9 @@
+ if (optab_handler (movmisalign_optab, mode) == CODE_FOR_nothing)
+ return false;
+
++ /* Misalignment factor is unknown at compile time. */
+ if (misalignment == -1)
+- {
+- /* Misalignment factor is unknown at compile time but we know
+- it's word aligned. */
+- if (aarch64_simd_vector_alignment_reachable (type, is_packed))
+- {
+- int element_size = TREE_INT_CST_LOW (TYPE_SIZE (type));
+-
+- if (element_size != 64)
+- return true;
+- }
+- return false;
+- }
++ return false;
+ }
+ return default_builtin_support_vector_misalignment (mode, type, misalignment,
+ is_packed);
Index: gcc/config/aarch64/aarch64.h
===================================================================
--- a/src/gcc/config/aarch64/aarch64.h (.../tags/gcc_7_2_0_release)
@@ -317334,6 +317826,99 @@ Index: gcc/tree-vect-slp.c
if (node != NULL)
{
/* Calculate the unrolling factor based on the smallest type. */
+Index: gcc/langhooks-def.h
+===================================================================
+--- a/src/gcc/langhooks-def.h (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/langhooks-def.h (.../branches/gcc-7-branch)
+@@ -184,6 +184,7 @@
+ lhd_omp_firstprivatize_type_sizes
+ #define LANG_HOOKS_OMP_MAPPABLE_TYPE lhd_omp_mappable_type
+ #define LANG_HOOKS_TYPE_HASH_EQ NULL
++#define LANG_HOOKS_COPY_LANG_QUALIFIERS NULL
+ #define LANG_HOOKS_GET_ARRAY_DESCR_INFO NULL
+ #define LANG_HOOKS_GET_SUBRANGE_BOUNDS NULL
+ #define LANG_HOOKS_GET_TYPE_BIAS NULL
+@@ -209,6 +210,7 @@
+ LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES, \
+ LANG_HOOKS_OMP_MAPPABLE_TYPE, \
+ LANG_HOOKS_TYPE_HASH_EQ, \
++ LANG_HOOKS_COPY_LANG_QUALIFIERS, \
+ LANG_HOOKS_GET_ARRAY_DESCR_INFO, \
+ LANG_HOOKS_GET_SUBRANGE_BOUNDS, \
+ LANG_HOOKS_GET_TYPE_BIAS, \
+Index: libgo/configure
+===================================================================
+--- a/src/libgo/configure (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/configure (.../branches/gcc-7-branch)
+@@ -13625,7 +13625,7 @@
+ # supported by the gofrontend and all architectures supported by the
+ # gc toolchain.
+ # N.B. Keep in sync with gcc/testsuite/go.test/go-test.exp (go-set-goarch).
+-ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mipso32 mipsn32 mipso64 mipsn64 mips mipsle mips64 mips64le mips64p32 mips64p32le ppc ppc64 ppc64le s390 s390x sparc sparc64"
++ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le ppc ppc64 ppc64le s390 s390x sparc sparc64"
+
+ # All known GOARCH_FAMILY values.
+ ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 PPC PPC64 S390 S390X SPARC SPARC64"
+@@ -13728,16 +13728,6 @@
+ if ac_fn_c_try_compile "$LINENO"; then :
+ mips_abi="n64"
+ else
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-#if _MIPS_SIM != _ABIO64
+-#error not o64
+-#endif
+-_ACEOF
+-if ac_fn_c_try_compile "$LINENO"; then :
+- mips_abi="o64"
+-else
+ as_fn_error "unknown MIPS ABI" "$LINENO" 5
+ mips_abi="n32"
+ fi
+@@ -13746,13 +13736,10 @@
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+-fi
+-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ case "$mips_abi" in
+- "o32") GOARCH=mipso32 ;;
+- "n32") GOARCH=mipsn32 ;;
+- "n64") GOARCH=mipsn64 ;;
+- "o64") GOARCH=mipso64 ;;
++ "o32") GOARCH=mips ;;
++ "n32") GOARCH=mips64p32 ;;
++ "n64") GOARCH=mips64 ;;
+ esac
+ case "$mips_abi" in
+ "o32" | "n32")
+@@ -13759,13 +13746,14 @@
+ GOARCH_FAMILY=MIPS
+ GOARCH_MINFRAMESIZE=4
+ ;;
+- "n64" | "o64")
++ "n64")
+ GOARCH_FAMILY=MIPS64
+ GOARCH_MINFRAMESIZE=8
+ ;;
+ esac
+ case "${host}" in
+- mips*el)
++ mips*el-*-*)
++ GOARCH="${GOARCH}le"
+ ;;
+ *)
+ GOARCH_BIGENDIAN=1
+@@ -14762,7 +14750,7 @@
+ fi
+
+
+-for ac_header in port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/reboot.h netinet/icmp6.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h
++for ac_header in port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/icmp6.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h
+ do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
Index: libgo/VERSION
===================================================================
--- a/src/libgo/VERSION (.../tags/gcc_7_2_0_release)
@@ -317341,6 +317926,46 @@ Index: libgo/VERSION
@@ -1 +1 @@
-go1.8.1
+go1.8.3
+Index: libgo/testsuite/gotest
+===================================================================
+--- a/src/libgo/testsuite/gotest (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/testsuite/gotest (.../branches/gcc-7-branch)
+@@ -314,7 +314,7 @@
+ android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
+ tag1=nonmatchingtag
+ ;;
+- 386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | mipso32 | mipsn32 | mipsn64 | mipso64 | ppc | s390 | s390x | sparc | sparc64)
++ 386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | s390 | s390x | sparc | sparc64)
+ tag1=nonmatchingtag
+ ;;
+ esac
+@@ -326,7 +326,7 @@
+ android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
+ tag2=nonmatchingtag
+ ;;
+- 386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | mipso32 | mipsn32 | mipsn64 | mipso64 | ppc | s390 | s390x | sparc | sparc64)
++ 386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | s390 | s390x | sparc | sparc64)
+ tag2=nonmatchingtag
+ ;;
+ esac
+Index: libgo/mksysinfo.sh
+===================================================================
+--- a/src/libgo/mksysinfo.sh (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/mksysinfo.sh (.../branches/gcc-7-branch)
+@@ -302,9 +302,13 @@
+ upcase_fields "__user_psw_struct" "PtracePsw" >> ${OUT} || true
+ upcase_fields "__user_fpregs_struct" "PtraceFpregs" >> ${OUT} || true
+ upcase_fields "__user_per_struct" "PtracePer" >> ${OUT} || true
++ else
++ # mips*
++ regs=`grep '^type _pt_regs struct' gen-sysinfo.go || true`
+ fi
+ fi
+ if test "$regs" != ""; then
++ regs=`echo $regs | sed -e 's/type _pt_regs struct//'`
+ regs=`echo $regs |
+ sed -e 's/type __*user_regs_struct struct //' -e 's/[{}]//g'`
+ regs=`echo $regs | sed -e s'/^ *//'`
Index: libgo/MERGE
===================================================================
--- a/src/libgo/MERGE (.../tags/gcc_7_2_0_release)
@@ -317351,6 +317976,147 @@ Index: libgo/MERGE
The first line of this file holds the git revision number of the
last merge done from the master library sources.
+Index: libgo/config.h.in
+===================================================================
+--- a/src/libgo/config.h.in (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/config.h.in (.../branches/gcc-7-branch)
+@@ -114,6 +114,9 @@
+ /* Define to 1 if you have the <linux/netlink.h> header file. */
+ #undef HAVE_LINUX_NETLINK_H
+
++/* Define to 1 if you have the <linux/ptrace.h> header file. */
++#undef HAVE_LINUX_PTRACE_H
++
+ /* Define to 1 if you have the <linux/reboot.h> header file. */
+ #undef HAVE_LINUX_REBOOT_H
+
+Index: libgo/configure.ac
+===================================================================
+--- a/src/libgo/configure.ac (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/configure.ac (.../branches/gcc-7-branch)
+@@ -197,7 +197,7 @@
+ # supported by the gofrontend and all architectures supported by the
+ # gc toolchain.
+ # N.B. Keep in sync with gcc/testsuite/go.test/go-test.exp (go-set-goarch).
+-ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mipso32 mipsn32 mipso64 mipsn64 mips mipsle mips64 mips64le mips64p32 mips64p32le ppc ppc64 ppc64le s390 s390x sparc sparc64"
++ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le ppc ppc64 ppc64le s390 s390x sparc sparc64"
+
+ # All known GOARCH_FAMILY values.
+ ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 PPC PPC64 S390 S390X SPARC SPARC64"
+@@ -280,18 +280,12 @@
+ #error not n64
+ #endif],
+ [mips_abi="n64"],
+- [AC_COMPILE_IFELSE([
+-#if _MIPS_SIM != _ABIO64
+-#error not o64
+-#endif],
+-[mips_abi="o64"],
+ [AC_MSG_ERROR([unknown MIPS ABI])
+-[mips_abi="n32"]])])])])
++[mips_abi="n32"]])])])
+ case "$mips_abi" in
+- "o32") GOARCH=mipso32 ;;
+- "n32") GOARCH=mipsn32 ;;
+- "n64") GOARCH=mipsn64 ;;
+- "o64") GOARCH=mipso64 ;;
++ "o32") GOARCH=mips ;;
++ "n32") GOARCH=mips64p32 ;;
++ "n64") GOARCH=mips64 ;;
+ esac
+ case "$mips_abi" in
+ "o32" | "n32")
+@@ -298,13 +292,14 @@
+ GOARCH_FAMILY=MIPS
+ GOARCH_MINFRAMESIZE=4
+ ;;
+- "n64" | "o64")
++ "n64")
+ GOARCH_FAMILY=MIPS64
+ GOARCH_MINFRAMESIZE=8
+ ;;
+ esac
+ case "${host}" in
+- mips*el)
++ mips*el-*-*)
++ GOARCH="${GOARCH}le"
+ ;;
+ *)
+ GOARCH_BIGENDIAN=1
+@@ -569,7 +564,7 @@
+
+ GCC_CHECK_UNWIND_GETIPINFO
+
+-AC_CHECK_HEADERS(port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/reboot.h netinet/icmp6.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h)
++AC_CHECK_HEADERS(port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/icmp6.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h)
+
+ AC_CHECK_HEADERS([linux/filter.h linux/if_addr.h linux/if_ether.h linux/if_tun.h linux/netlink.h linux/rtnetlink.h], [], [],
+ [#ifdef HAVE_SYS_SOCKET_H
+Index: libgo/go/runtime/lfstack_32bit.go
+===================================================================
+--- a/src/libgo/go/runtime/lfstack_32bit.go (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/go/runtime/lfstack_32bit.go (.../branches/gcc-7-branch)
+@@ -2,7 +2,7 @@
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build 386 arm nacl armbe m68k mips mipsle mips64p32 mips64p32le mipso32 mipsn32 ppc s390 sparc
++// +build 386 arm nacl armbe m68k mips mipsle mips64p32 mips64p32le ppc s390 sparc
+
+ package runtime
+
+Index: libgo/go/runtime/hash64.go
+===================================================================
+--- a/src/libgo/go/runtime/hash64.go (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/go/runtime/hash64.go (.../branches/gcc-7-branch)
+@@ -6,7 +6,7 @@
+ // xxhash: https://code.google.com/p/xxhash/
+ // cityhash: https://code.google.com/p/cityhash/
+
+-// +build amd64 amd64p32 arm64 mips64 mips64le ppc64 ppc64le s390x alpha arm64be ia64 mipso64 mipsn64 mips64p32 mips64p32le sparc64
++// +build amd64 amd64p32 arm64 mips64 mips64le ppc64 ppc64le s390x alpha arm64be ia64 mips64p32 mips64p32le sparc64
+
+ package runtime
+
+Index: libgo/go/runtime/lfstack_64bit.go
+===================================================================
+--- a/src/libgo/go/runtime/lfstack_64bit.go (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/go/runtime/lfstack_64bit.go (.../branches/gcc-7-branch)
+@@ -2,7 +2,7 @@
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build amd64 arm64 mips64 mips64le ppc64 ppc64le s390x arm64be alpha mipsn64 sparc64
++// +build amd64 arm64 mips64 mips64le ppc64 ppc64le s390x arm64be alpha sparc64
+
+ package runtime
+
+Index: libgo/go/runtime/hash32.go
+===================================================================
+--- a/src/libgo/go/runtime/hash32.go (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/go/runtime/hash32.go (.../branches/gcc-7-branch)
+@@ -6,7 +6,7 @@
+ // xxhash: https://code.google.com/p/xxhash/
+ // cityhash: https://code.google.com/p/cityhash/
+
+-// +build 386 arm armbe m68k mipso32 mipsn32 mips mipsle ppc s390 sparc
++// +build 386 arm armbe m68k mips mipsle ppc s390 sparc
+
+ package runtime
+
+Index: libgo/go/runtime/unaligned2.go
+===================================================================
+--- a/src/libgo/go/runtime/unaligned2.go (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/go/runtime/unaligned2.go (.../branches/gcc-7-branch)
+@@ -2,7 +2,7 @@
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build arm mips mipsle mips64 mips64le armbe m68k mipso32 mipsn32 sparc alpha ia64 mipso64 mipsn64 mips64p32 mips64p32le sparc64
++// +build arm mips mipsle mips64 mips64le armbe m68k sparc alpha ia64 mips64p32 mips64p32le sparc64
+
+ package runtime
+
Index: libgo/go/cmd/go/build.go
===================================================================
--- a/src/libgo/go/cmd/go/build.go (.../tags/gcc_7_2_0_release)
@@ -317382,6 +318148,100 @@ Index: libgo/go/cmd/go/build.go
b.showOutput(p.Dir, desc, b.processOutput(output))
if err != nil {
err = errPrintedOutput
+Index: libgo/go/cmd/cgo/main.go
+===================================================================
+--- a/src/libgo/go/cmd/cgo/main.go (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/go/cmd/cgo/main.go (.../branches/gcc-7-branch)
+@@ -139,51 +139,47 @@
+ }
+
+ var ptrSizeMap = map[string]int64{
+- "386": 4,
+- "alpha": 8,
+- "amd64": 8,
+- "arm": 4,
+- "arm64": 8,
+- "m68k": 4,
+- "mipso32": 4,
+- "mipsn32": 4,
+- "mipso64": 8,
+- "mipsn64": 8,
+- "mips": 4,
+- "mipsle": 4,
+- "mips64": 8,
+- "mips64le": 8,
+- "ppc": 4,
+- "ppc64": 8,
+- "ppc64le": 8,
+- "s390": 4,
+- "s390x": 8,
+- "sparc": 4,
+- "sparc64": 8,
++ "386": 4,
++ "alpha": 8,
++ "amd64": 8,
++ "arm": 4,
++ "arm64": 8,
++ "m68k": 4,
++ "mips": 4,
++ "mipsle": 4,
++ "mips64": 8,
++ "mips64le": 8,
++ "mips64p32": 4,
++ "mips64p32le": 4,
++ "ppc": 4,
++ "ppc64": 8,
++ "ppc64le": 8,
++ "s390": 4,
++ "s390x": 8,
++ "sparc": 4,
++ "sparc64": 8,
+ }
+
+ var intSizeMap = map[string]int64{
+- "386": 4,
+- "alpha": 8,
+- "amd64": 8,
+- "arm": 4,
+- "arm64": 8,
+- "m68k": 4,
+- "mipso32": 4,
+- "mipsn32": 4,
+- "mipso64": 8,
+- "mipsn64": 8,
+- "mips": 4,
+- "mipsle": 4,
+- "mips64": 8,
+- "mips64le": 8,
+- "ppc": 4,
+- "ppc64": 8,
+- "ppc64le": 8,
+- "s390": 4,
+- "s390x": 8,
+- "sparc": 4,
+- "sparc64": 8,
++ "386": 4,
++ "alpha": 8,
++ "amd64": 8,
++ "arm": 4,
++ "arm64": 8,
++ "m68k": 4,
++ "mips": 4,
++ "mipsle": 4,
++ "mips64": 8,
++ "mips64le": 8,
++ "mips64p32": 8,
++ "mips64p32le": 8,
++ "ppc": 4,
++ "ppc64": 8,
++ "ppc64le": 8,
++ "s390": 4,
++ "s390x": 8,
++ "sparc": 4,
++ "sparc64": 8,
+ }
+
+ var cPrefix string
Index: libgo/go/database/sql/sql_test.go
===================================================================
--- a/src/libgo/go/database/sql/sql_test.go (.../tags/gcc_7_2_0_release)
@@ -317423,6 +318283,67 @@ Index: libgo/go/database/sql/sql.go
return rows, nil
}
+Index: libgo/go/internal/syscall/unix/getrandom_linux_mipso32.go
+===================================================================
+--- a/src/libgo/go/internal/syscall/unix/getrandom_linux_mipso32.go (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/go/internal/syscall/unix/getrandom_linux_mipso32.go (.../branches/gcc-7-branch)
+@@ -1,11 +0,0 @@
+-// Copyright 2016 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build mipso32
+-
+-package unix
+-
+-// Linux getrandom system call number.
+-// See GetRandom in getrandom_linux.go.
+-const randomTrap uintptr = 4353
+Index: libgo/go/internal/syscall/unix/getrandom_linux_mipsn32.go
+===================================================================
+--- a/src/libgo/go/internal/syscall/unix/getrandom_linux_mipsn32.go (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/go/internal/syscall/unix/getrandom_linux_mipsn32.go (.../branches/gcc-7-branch)
+@@ -1,11 +0,0 @@
+-// Copyright 2016 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build mipsn32
+-
+-package unix
+-
+-// Linux getrandom system call number.
+-// See GetRandom in getrandom_linux.go.
+-const randomTrap uintptr = 6317
+Index: libgo/go/internal/syscall/unix/getrandom_linux_mips64p32x.go
+===================================================================
+--- a/src/libgo/go/internal/syscall/unix/getrandom_linux_mips64p32x.go (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/go/internal/syscall/unix/getrandom_linux_mips64p32x.go (.../branches/gcc-7-branch)
+@@ -0,0 +1,11 @@
++// Copyright 2016 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build mips64p32 mips64p32le
++
++package unix
++
++// Linux getrandom system call number.
++// See GetRandom in getrandom_linux.go.
++const randomTrap uintptr = 6317
+Index: libgo/go/internal/syscall/unix/getrandom_linux_mips64x.go
+===================================================================
+--- a/src/libgo/go/internal/syscall/unix/getrandom_linux_mips64x.go (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/go/internal/syscall/unix/getrandom_linux_mips64x.go (.../branches/gcc-7-branch)
+@@ -2,7 +2,7 @@
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build mips64 mips64le mipsn64 mipso64
++// +build mips64 mips64le
+
+ package unix
+
Index: libgo/go/crypto/elliptic/elliptic_test.go
===================================================================
--- a/src/libgo/go/crypto/elliptic/elliptic_test.go (.../tags/gcc_7_2_0_release)
@@ -317526,6 +318447,122 @@ Index: libgo/go/net/http/h2_bundle.go
return strings.Join(keys, ","), nil
}
return "", nil
+Index: libgo/go/go/build/syslist.go
+===================================================================
+--- a/src/libgo/go/go/build/syslist.go (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/go/go/build/syslist.go (.../branches/gcc-7-branch)
+@@ -5,4 +5,4 @@
+ package build
+
+ const goosList = "android darwin dragonfly freebsd linux nacl netbsd openbsd plan9 solaris windows zos "
+-const goarchList = "386 amd64 amd64p32 arm armbe arm64 arm64be alpha m68k ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32le mipso32 mipsn32 mipsn64 mipso64 ppc s390 s390x sparc sparc64 "
++const goarchList = "386 amd64 amd64p32 arm armbe arm64 arm64be alpha m68k ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32le ppc s390 s390x sparc sparc64 "
+Index: libgo/go/syscall/syscall_linux_mips64x.go
+===================================================================
+--- a/src/libgo/go/syscall/syscall_linux_mips64x.go (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/go/syscall/syscall_linux_mips64x.go (.../branches/gcc-7-branch)
+@@ -1,20 +0,0 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build linux
+-// +build mips64 mips64le
+-
+-package syscall
+-
+-func (r *PtraceRegs) PC() uint64 { return r.Regs[64] }
+-
+-func (r *PtraceRegs) SetPC(pc uint64) { r.Regs[64] = pc }
+-
+-func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) {
+- return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
+-}
+-
+-func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) {
+- return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
+-}
+Index: libgo/go/syscall/endian_big.go
+===================================================================
+--- a/src/libgo/go/syscall/endian_big.go (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/go/syscall/endian_big.go (.../branches/gcc-7-branch)
+@@ -2,7 +2,7 @@
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+ //
+-// +build ppc64 s390x mips mips64 armbe arm64be m68k ppc mipso32 mipsn32 mipso64 mipsn64 mips64p32 s390 sparc sparc64
++// +build ppc64 s390x mips mips64 armbe arm64be m68k ppc mips64p32 s390 sparc sparc64
+
+ package syscall
+
+Index: libgo/go/syscall/syscall_linux_mipsx.go
+===================================================================
+--- a/src/libgo/go/syscall/syscall_linux_mipsx.go (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/go/syscall/syscall_linux_mipsx.go (.../branches/gcc-7-branch)
+@@ -3,10 +3,24 @@
+ // license that can be found in the LICENSE file.
+
+ // +build linux
+-// +build mips mipsle
++// +build mips mipsle mips64 mips64le mips64p32 mips64p32le
+
+ package syscall
+
+-func (r *PtraceRegs) PC() uint64 { return uint64(r.Regs[64]) }
++import "unsafe"
+
+-func (r *PtraceRegs) SetPC(pc uint64) { r.Regs[64] = uint32(pc) }
++func (r *PtraceRegs) PC() uint64 {
++ return r.Cp0_epc
++}
++
++func (r *PtraceRegs) SetPC(pc uint64) {
++ r.Cp0_epc = pc
++}
++
++func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) {
++ return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) {
++ return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
+Index: libgo/match.sh
+===================================================================
+--- a/src/libgo/match.sh (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/match.sh (.../branches/gcc-7-branch)
+@@ -116,7 +116,7 @@
+ android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
+ tag1=nonmatchingtag
+ ;;
+- 386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | mipso32 | mipsn32 | mipsn64 | mipso64 | ppc | s390 | s390x | sparc | sparc64)
++ 386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | s390 | s390x | sparc | sparc64)
+ tag1=nonmatchingtag
+ ;;
+ esac
+@@ -128,7 +128,7 @@
+ android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
+ tag2=nonmatchingtag
+ ;;
+- 386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | mipso32 | mipsn32 | mipsn64 | mipso64 | ppc | s390 | s390x | sparc | sparc64)
++ 386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | s390 | s390x | sparc | sparc64)
+ tag2=nonmatchingtag
+ ;;
+ esac
+Index: libgo/sysinfo.c
+===================================================================
+--- a/src/libgo/sysinfo.c (.../tags/gcc_7_2_0_release)
++++ b/src/libgo/sysinfo.c (.../branches/gcc-7-branch)
+@@ -102,6 +102,9 @@
+ #if defined(HAVE_LINUX_NETLINK_H)
+ #include <linux/netlink.h>
+ #endif
++#if defined(HAVE_LINUX_PTRACE_H)
++#include <linux/ptrace.h>
++#endif
+ #if defined(HAVE_LINUX_RTNETLINK_H)
+ #include <linux/rtnetlink.h>
+ #endif
Index: libgfortran/ChangeLog
===================================================================
--- a/src/libgfortran/ChangeLog (.../tags/gcc_7_2_0_release)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/gcc-7.git
More information about the Reproducible-commits
mailing list