[gcc-7] 238/354: * Update to SVN 20170629 (r249793) from the gcc-7-branch.
Ximin Luo
infinity0 at debian.org
Thu Nov 23 15:51:00 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 d9528f09fe917b4ad7c902adc59e370c07bf4350
Author: doko <doko at 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>
Date: Thu Jun 29 15:38:27 2017 +0000
* Update to SVN 20170629 (r249793) from the gcc-7-branch.
git-svn-id: svn+ssh://svn.debian.org/svn/gcccvs/branches/sid/gcc-7@9560 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
---
debian/changelog | 6 +-
debian/patches/libgo-testsuite.diff | 16 -
debian/patches/svn-updates.diff | 701 ++++++++++++++++++++++++++++++++++--
3 files changed, 673 insertions(+), 50 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index e7d189e..5a67d58 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,6 @@
-gcc-7 (7.1.0-7ubuntu1) UNRELEASED; urgency=medium
+gcc-7 (7.1.0-8) UNRELEASED; urgency=medium
- * Update to SVN 20170628 (r249732) from the gcc-7-branch.
+ * Update to SVN 20170629 (r249793) from the gcc-7-branch.
[ Matthias Klose ]
* Move the liblto_plugin from the cpp to the gcc package.
@@ -16,7 +16,7 @@ gcc-7 (7.1.0-7ubuntu1) UNRELEASED; urgency=medium
* Stop symlinking gcc-7-7 -> gcc-7. See #856274 and #814977.
* gnatmake: compile once even with SOURCE_DATE_EPOCH. Closes: #866029.
- -- Matthias Klose <doko at debian.org> Tue, 27 Jun 2017 13:19:14 +0200
+ -- Matthias Klose <doko at debian.org> Thu, 29 Jun 2017 17:36:03 +0200
gcc-7 (7.1.0-7) unstable; urgency=medium
diff --git a/debian/patches/libgo-testsuite.diff b/debian/patches/libgo-testsuite.diff
index 6d960d9..7f5584d 100644
--- a/debian/patches/libgo-testsuite.diff
+++ b/debian/patches/libgo-testsuite.diff
@@ -18,14 +18,6 @@ Index: b/src/libgo/Makefile.am
$(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --testname="$(@D)" $(GOTESTFLAGS); \
elif test "$(GOBENCH)" != ""; then \
$(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --bench="$(GOBENCH)" $(GOTESTFLAGS); \
-@@ -963,6 +968,7 @@ CHECK = \
- echo "FAIL: $(@D)" > $@-testsum; \
- exit 1; \
- fi; \
-+ fi; \
- fi
-
- # Build all packages before checking any.
Index: b/src/libgo/Makefile.in
===================================================================
--- a/src/libgo/Makefile.in
@@ -44,11 +36,3 @@ Index: b/src/libgo/Makefile.in
$(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --testname="$(@D)" $(GOTESTFLAGS); \
elif test "$(GOBENCH)" != ""; then \
$(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --bench="$(GOBENCH)" $(GOTESTFLAGS); \
-@@ -1119,6 +1124,7 @@ CHECK = \
- echo "FAIL: $(@D)" > $@-testsum; \
- exit 1; \
- fi; \
-+ fi; \
- fi
-
-
diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff
index 16c7405..70cb880 100644
--- a/debian/patches/svn-updates.diff
+++ b/debian/patches/svn-updates.diff
@@ -1,10 +1,10 @@
-# DP: updates from the 7 branch upto 20170628 (r249732).
+# DP: updates from the 7 branch upto 20170629 (r249793).
last_update()
{
cat > ${dir}LAST_UPDATED <EOF
-Wed Jun 28 12:26:11 CEST 2017
-Wed Jun 28 10:26:11 UTC 2017 (revision 249732)
+Thu Jun 29 17:13:49 CEST 2017
+Thu Jun 29 15:13:49 UTC 2017 (revision 249793)
EOF
}
@@ -2496,11 +2496,62 @@ Index: libgcc/config.host
tm_file="${tm_file} arm/bpabi-lib.h"
unwind_header=config/arm/unwind-arm.h
tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
+Index: libgcc/configure.ac
+===================================================================
+--- a/src/libgcc/configure.ac (.../tags/gcc_7_1_0_release)
++++ b/src/libgcc/configure.ac (.../branches/gcc-7-branch)
+@@ -191,6 +191,8 @@
+ AC_PROG_CC
+ AC_PROG_CPP_WERROR
+
++AC_SYS_LARGEFILE
++
+ AC_CHECK_SIZEOF([double])
+ AC_CHECK_SIZEOF([long double])
+ AS_VAR_ARITH([double_type_size], [$ac_cv_sizeof_double \* 8])
+Index: libgcc/config.in
+===================================================================
+--- a/src/libgcc/config.in (.../tags/gcc_7_1_0_release)
++++ b/src/libgcc/config.in (.../branches/gcc-7-branch)
+@@ -71,3 +71,9 @@
+
+ /* Define to 1 if the target use emutls for thread-local storage. */
+ #undef USE_EMUTLS
++
++/* Number of bits in a file offset, on hosts where this is settable. */
++#undef _FILE_OFFSET_BITS
++
++/* Define for large files, on AIX-style hosts. */
++#undef _LARGE_FILES
+Index: libgcc/libgcov.h
+===================================================================
+--- a/src/libgcc/libgcov.h (.../tags/gcc_7_1_0_release)
++++ b/src/libgcc/libgcov.h (.../branches/gcc-7-branch)
+@@ -38,6 +38,7 @@
+ /* This path will be used by libgcov runtime. */
+
+ #include "tconfig.h"
++#include "auto-target.h"
+ #include "tsystem.h"
+ #include "coretypes.h"
+ #include "tm.h"
Index: libgcc/ChangeLog
===================================================================
--- a/src/libgcc/ChangeLog (.../tags/gcc_7_1_0_release)
+++ b/src/libgcc/ChangeLog (.../branches/gcc-7-branch)
-@@ -1,3 +1,30 @@
+@@ -1,3 +1,42 @@
++2017-06-28 Richard Biener <rguenther at suse.de>
++
++ Backport from mainline
++ 2017-06-21 Richard Biener <rguenther at suse.de>
++
++ PR gcov-profile/81080
++ * configure.ac: Add AC_SYS_LARGEFILE.
++ * libgcov.h: Include auto-target.h before tsystem.h to pick
++ up _FILE_OFFSET_BITS which might differ for multilibs.
++ * config.in: Regenerate.
++ * configure: Likewise.
++
+2017-05-26 Richard Henderson <rth at redhat.com>
+
+ PR libgcc/80037
@@ -2614,6 +2665,233 @@ Index: libgcc/config/arm/unwind-arm.h
#ifdef __cplusplus
} /* extern "C" */
+Index: libgcc/configure
+===================================================================
+--- a/src/libgcc/configure (.../tags/gcc_7_1_0_release)
++++ b/src/libgcc/configure (.../branches/gcc-7-branch)
+@@ -672,6 +672,7 @@
+ with_slibdir
+ enable_maintainer_mode
+ with_build_libsubdir
++enable_largefile
+ enable_decimal_float
+ with_system_libunwind
+ enable_explicit_exception_frame_registration
+@@ -1308,6 +1309,7 @@
+ --enable-maintainer-mode
+ enable make rules and dependencies not useful (and
+ sometimes confusing) to the casual installer
++ --disable-largefile omit support for large files
+ --enable-decimal-float={no,yes,bid,dpd}
+ enable decimal float extension to C. Selecting 'bid'
+ or 'dpd' choses which decimal floating point format
+@@ -4061,7 +4063,206 @@
+ ac_c_preproc_warn_flag=yes
+
+
++# Check whether --enable-largefile was given.
++if test "${enable_largefile+set}" = set; then :
++ enableval=$enable_largefile;
++fi
+
++if test "$enable_largefile" != no; then
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
++$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
++if test "${ac_cv_sys_largefile_CC+set}" = set; then :
++ $as_echo_n "(cached) " >&6
++else
++ ac_cv_sys_largefile_CC=no
++ if test "$GCC" != yes; then
++ ac_save_CC=$CC
++ while :; do
++ # IRIX 6.2 and later do not support large files by default,
++ # so use the C compiler's -n32 option if that helps.
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++#include <sys/types.h>
++ /* Check that off_t can represent 2**63 - 1 correctly.
++ We can't simply define LARGE_OFF_T to be 9223372036854775807,
++ since some C++ compilers masquerading as C compilers
++ incorrectly reject 9223372036854775807. */
++#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
++ && LARGE_OFF_T % 2147483647 == 1)
++ ? 1 : -1];
++int
++main ()
++{
++
++ ;
++ return 0;
++}
++_ACEOF
++ if ac_fn_c_try_compile "$LINENO"; then :
++ break
++fi
++rm -f core conftest.err conftest.$ac_objext
++ CC="$CC -n32"
++ if ac_fn_c_try_compile "$LINENO"; then :
++ ac_cv_sys_largefile_CC=' -n32'; break
++fi
++rm -f core conftest.err conftest.$ac_objext
++ break
++ done
++ CC=$ac_save_CC
++ rm -f conftest.$ac_ext
++ fi
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
++$as_echo "$ac_cv_sys_largefile_CC" >&6; }
++ if test "$ac_cv_sys_largefile_CC" != no; then
++ CC=$CC$ac_cv_sys_largefile_CC
++ fi
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
++$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
++if test "${ac_cv_sys_file_offset_bits+set}" = set; then :
++ $as_echo_n "(cached) " >&6
++else
++ while :; do
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++#include <sys/types.h>
++ /* Check that off_t can represent 2**63 - 1 correctly.
++ We can't simply define LARGE_OFF_T to be 9223372036854775807,
++ since some C++ compilers masquerading as C compilers
++ incorrectly reject 9223372036854775807. */
++#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
++ && LARGE_OFF_T % 2147483647 == 1)
++ ? 1 : -1];
++int
++main ()
++{
++
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++ ac_cv_sys_file_offset_bits=no; break
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++#define _FILE_OFFSET_BITS 64
++#include <sys/types.h>
++ /* Check that off_t can represent 2**63 - 1 correctly.
++ We can't simply define LARGE_OFF_T to be 9223372036854775807,
++ since some C++ compilers masquerading as C compilers
++ incorrectly reject 9223372036854775807. */
++#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
++ && LARGE_OFF_T % 2147483647 == 1)
++ ? 1 : -1];
++int
++main ()
++{
++
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++ ac_cv_sys_file_offset_bits=64; break
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++ ac_cv_sys_file_offset_bits=unknown
++ break
++done
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
++$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
++case $ac_cv_sys_file_offset_bits in #(
++ no | unknown) ;;
++ *)
++cat >>confdefs.h <<_ACEOF
++#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
++_ACEOF
++;;
++esac
++rm -rf conftest*
++ if test $ac_cv_sys_file_offset_bits = unknown; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
++$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
++if test "${ac_cv_sys_large_files+set}" = set; then :
++ $as_echo_n "(cached) " >&6
++else
++ while :; do
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++#include <sys/types.h>
++ /* Check that off_t can represent 2**63 - 1 correctly.
++ We can't simply define LARGE_OFF_T to be 9223372036854775807,
++ since some C++ compilers masquerading as C compilers
++ incorrectly reject 9223372036854775807. */
++#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
++ && LARGE_OFF_T % 2147483647 == 1)
++ ? 1 : -1];
++int
++main ()
++{
++
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++ ac_cv_sys_large_files=no; break
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++#define _LARGE_FILES 1
++#include <sys/types.h>
++ /* Check that off_t can represent 2**63 - 1 correctly.
++ We can't simply define LARGE_OFF_T to be 9223372036854775807,
++ since some C++ compilers masquerading as C compilers
++ incorrectly reject 9223372036854775807. */
++#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
++ && LARGE_OFF_T % 2147483647 == 1)
++ ? 1 : -1];
++int
++main ()
++{
++
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++ ac_cv_sys_large_files=1; break
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++ ac_cv_sys_large_files=unknown
++ break
++done
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
++$as_echo "$ac_cv_sys_large_files" >&6; }
++case $ac_cv_sys_large_files in #(
++ no | unknown) ;;
++ *)
++cat >>confdefs.h <<_ACEOF
++#define _LARGE_FILES $ac_cv_sys_large_files
++_ACEOF
++;;
++esac
++rm -rf conftest*
++ fi
++fi
++
++
++
+ # The cast to long int works around a bug in the HP C Compiler
+ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
Index: gcc/graphite-isl-ast-to-gimple.c
===================================================================
--- a/src/gcc/graphite-isl-ast-to-gimple.c (.../tags/gcc_7_1_0_release)
@@ -2776,6 +3054,20 @@ Index: gcc/c-family/c-format.c
spec_type = TYPE_CANONICAL (spec_type);
arg_type = TYPE_CANONICAL (arg_type);
+Index: gcc/ipa-polymorphic-call.c
+===================================================================
+--- a/src/gcc/ipa-polymorphic-call.c (.../tags/gcc_7_1_0_release)
++++ b/src/gcc/ipa-polymorphic-call.c (.../branches/gcc-7-branch)
+@@ -267,7 +267,8 @@
+ {
+ for (fld = TYPE_FIELDS (type); fld; fld = DECL_CHAIN (fld))
+ {
+- if (TREE_CODE (fld) != FIELD_DECL)
++ if (TREE_CODE (fld) != FIELD_DECL
++ || TREE_TYPE (fld) == error_mark_node)
+ continue;
+
+ pos = int_bit_position (fld);
Index: gcc/c/ChangeLog
===================================================================
--- a/src/gcc/c/ChangeLog (.../tags/gcc_7_1_0_release)
@@ -2869,7 +3161,7 @@ Index: gcc/DATESTAMP
+++ b/src/gcc/DATESTAMP (.../branches/gcc-7-branch)
@@ -1 +1 @@
-20170502
-+20170628
++20170629
Index: gcc/builtins.c
===================================================================
--- a/src/gcc/builtins.c (.../tags/gcc_7_1_0_release)
@@ -3135,7 +3427,18 @@ Index: gcc/tree-ssa-sccvn.c
===================================================================
--- a/src/gcc/tree-ssa-sccvn.c (.../tags/gcc_7_1_0_release)
+++ b/src/gcc/tree-ssa-sccvn.c (.../branches/gcc-7-branch)
-@@ -2916,14 +2916,11 @@
+@@ -2035,7 +2035,9 @@
+ ops[1] = bitsize_int (ref->size);
+ ops[2] = bitsize_int (offset - offset2);
+ tree val = vn_nary_build_or_lookup (rcode, vr->type, ops);
+- if (val)
++ if (val
++ && (TREE_CODE (val) != SSA_NAME
++ || ! SSA_NAME_OCCURS_IN_ABNORMAL_PHI (val)))
+ {
+ vn_reference_t res = vn_reference_lookup_or_insert_for_pieces
+ (vuse, vr->set, vr->type, vr->operands, val);
+@@ -2916,14 +2918,11 @@
the other. */
static bool
@@ -3152,7 +3455,7 @@ Index: gcc/tree-ssa-sccvn.c
*inverted_p = false;
if (code1 == code2)
-@@ -2941,10 +2938,6 @@
+@@ -2941,10 +2940,6 @@
else
return false;
@@ -3163,7 +3466,7 @@ Index: gcc/tree-ssa-sccvn.c
return ((expressions_equal_p (lhs1, lhs2)
&& expressions_equal_p (rhs1, rhs2))
|| (commutative_tree_code (code1)
-@@ -3002,7 +2995,10 @@
+@@ -3002,7 +2997,10 @@
return false;
bool inverted_p;
if (! cond_stmts_equal_p (as_a <gcond *> (last1),
@@ -3175,7 +3478,7 @@ Index: gcc/tree-ssa-sccvn.c
return false;
/* Get at true/false controlled edges into the PHI. */
-@@ -3081,6 +3077,16 @@
+@@ -3081,6 +3079,16 @@
vp1.type = TREE_TYPE (gimple_phi_result (phi));
vp1.phiargs = shared_lookup_phiargs;
vp1.block = gimple_bb (phi);
@@ -3192,7 +3495,7 @@ Index: gcc/tree-ssa-sccvn.c
vp1.hashcode = vn_phi_compute_hash (&vp1);
slot = current_info->phis->find_slot_with_hash (&vp1, vp1.hashcode,
NO_INSERT);
-@@ -3117,6 +3123,16 @@
+@@ -3117,6 +3125,16 @@
vp1->type = TREE_TYPE (gimple_phi_result (phi));
vp1->phiargs = args;
vp1->block = gimple_bb (phi);
@@ -3227,7 +3530,34 @@ Index: gcc/ChangeLog
===================================================================
--- a/src/gcc/ChangeLog (.../tags/gcc_7_1_0_release)
+++ b/src/gcc/ChangeLog (.../branches/gcc-7-branch)
-@@ -1,3 +1,690 @@
+@@ -1,3 +1,717 @@
++2017-06-29 Richard Biener <rguenther at suse.de>
++
++ Backport from mainline
++ 2017-06-19 Richard Biener <rguenther at suse.de>
++
++ PR ipa/81112
++ * ipa-prop.c (find_constructor_constant_at_offset): Handle
++ RANGE_EXPR conservatively.
++
++2017-06-28 Richard Biener <rguenther at suse.de>
++
++ Backport from mainline
++ 2017-06-09 Richard Biener <rguenther at suse.de>
++
++ PR middle-end/81007
++ * ipa-polymorphic-call.c
++ (ipa_polymorphic_call_context::restrict_to_inner_class):
++ Skip FIELD_DECLs with error_mark_node type.
++ * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
++ last again.
++
++ 2017-06-14 Richard Biener <rguenther at suse.de>
++
++ PR tree-optimization/81083
++ * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
++ as values.
++
+2017-06-27 Segher Boessenkool <segher at kernel.crashing.org>
+
+ Backports from trunk:
@@ -3918,7 +4248,7 @@ Index: gcc/ChangeLog
2017-05-02 Release Manager
* GCC 7.1.0 released.
-@@ -110,9 +801,9 @@
+@@ -110,9 +828,9 @@
Backport from mainline
2017-04-25 Andreas Krebbel <krebbel at linux.vnet.ibm.com>
@@ -3931,7 +4261,7 @@ Index: gcc/ChangeLog
2017-04-25 Andreas Krebbel <krebbel at linux.vnet.ibm.com>
-@@ -119,11 +810,11 @@
+@@ -119,11 +837,11 @@
Backport from mainline
2017-04-25 Andreas Krebbel <krebbel at linux.vnet.ibm.com>
@@ -3948,7 +4278,7 @@ Index: gcc/ChangeLog
2017-04-25 Dominik Vogt <vogt at linux.vnet.ibm.com>
-@@ -130,30 +821,30 @@
+@@ -130,30 +848,30 @@
Backport from maineline
2017-04-25 Dominik Vogt <vogt at linux.vnet.ibm.com>
@@ -4003,7 +4333,7 @@ Index: gcc/ChangeLog
2017-04-25 Dominik Vogt <vogt at linux.vnet.ibm.com>
-@@ -160,8 +851,8 @@
+@@ -160,8 +878,8 @@
Backport from mainline
2017-04-25 Dominik Vogt <vogt at linux.vnet.ibm.com>
@@ -4014,7 +4344,7 @@ Index: gcc/ChangeLog
2017-04-25 Dominik Vogt <vogt at linux.vnet.ibm.com>
-@@ -169,8 +860,8 @@
+@@ -169,8 +887,8 @@
Backport from mainline
2017-04-25 Dominik Vogt <vogt at linux.vnet.ibm.com>
@@ -4025,7 +4355,7 @@ Index: gcc/ChangeLog
2017-04-25 Jakub Jelinek <jakub at redhat.com>
-@@ -229,7 +920,7 @@
+@@ -229,7 +947,7 @@
(build_array_type): Likewise. Add typeless_storage argument.
2017-04-19 Eric Botcazou <ebotcazou at adacore.com>
@@ -4034,7 +4364,7 @@ Index: gcc/ChangeLog
PR tree-optimization/80426
* tree-vrp.c (extract_range_from_binary_expr_1): For an additive
-@@ -271,7 +962,7 @@
+@@ -271,7 +989,7 @@
are only used in debug insns.
2017-04-19 Eric Botcazou <ebotcazou at adacore.com>
@@ -6419,6 +6749,26 @@ Index: gcc/testsuite/gcc.dg/torture/pr80612.c
+}
+void fn2(int) __attribute__((__alloc_size__(1)));
+void fn3() { fn1(fn2); }
+Index: gcc/testsuite/gcc.dg/torture/pr81083.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr81083.c (.../tags/gcc_7_1_0_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr81083.c (.../branches/gcc-7-branch)
+@@ -0,0 +1,15 @@
++/* { dg-do compile } */
++
++void setjmp();
++void func();
++void a(int arg)
++{
++ extern struct { int x; } obj;
++ setjmp();
++ obj.x = arg;
++ arg = arg;
++ if (obj.x)
++ func();
++ if (obj.x)
++ func();
++}
Index: gcc/testsuite/gcc.dg/torture/pr80539.c
===================================================================
--- a/src/gcc/testsuite/gcc.dg/torture/pr80539.c (.../tags/gcc_7_1_0_release)
@@ -6600,7 +6950,28 @@ Index: gcc/testsuite/ChangeLog
===================================================================
--- a/src/gcc/testsuite/ChangeLog (.../tags/gcc_7_1_0_release)
+++ b/src/gcc/testsuite/ChangeLog (.../branches/gcc-7-branch)
-@@ -1,3 +1,419 @@
+@@ -1,3 +1,440 @@
++2017-06-29 Richard Biener <rguenther at suse.de>
++
++ Backport from mainline
++ 2017-06-19 Richard Biener <rguenther at suse.de>
++
++ PR ipa/81112
++ * g++.dg/torture/pr81112.C: New testcase.
++
++2017-06-28 Richard Biener <rguenther at suse.de>
++
++ Backport from mainline
++ 2017-06-09 Richard Biener <rguenther at suse.de>
++
++ PR middle-end/81007
++ * g++.dg/pr81007.C: New testcase.
++
++ 2017-06-14 Richard Biener <rguenther at suse.de>
++
++ PR tree-optimization/81083
++ * gcc.dg/torture/pr81083.c: New testcase.
++
+2017-06-28 Eric Botcazou <ebotcazou at adacore.com>
+
+ * gcc.dg/tree-prof/val-profiler-threads-1.c (main): Fix 2nd argument
@@ -7020,7 +7391,7 @@ Index: gcc/testsuite/ChangeLog
2017-05-02 Release Manager
* GCC 7.1.0 released.
-@@ -52,8 +468,8 @@
+@@ -52,8 +489,8 @@
Backport from mainline
2017-04-25 Andreas Krebbel <krebbel at linux.vnet.ibm.com>
@@ -7031,7 +7402,7 @@ Index: gcc/testsuite/ChangeLog
2017-04-25 Andreas Krebbel <krebbel at linux.vnet.ibm.com>
-@@ -60,8 +476,8 @@
+@@ -60,8 +497,8 @@
Backport from mainline
2017-04-25 Andreas Krebbel <krebbel at linux.vnet.ibm.com>
@@ -7042,7 +7413,7 @@ Index: gcc/testsuite/ChangeLog
2017-04-25 Dominik Vogt <vogt at linux.vnet.ibm.com>
-@@ -68,10 +484,10 @@
+@@ -68,10 +505,10 @@
Backport from maineline
2017-04-25 Dominik Vogt <vogt at linux.vnet.ibm.com>
@@ -7057,7 +7428,7 @@ Index: gcc/testsuite/ChangeLog
2017-04-25 Jakub Jelinek <jakub at redhat.com>
-@@ -132,7 +548,7 @@
+@@ -132,7 +569,7 @@
* gcc.dg/torture/pr80341.c: Require int32plus.
2017-04-19 Eric Botcazou <ebotcazou at adacore.com>
@@ -7083,6 +7454,26 @@ Index: gcc/testsuite/g++.dg/opt/nrv18.C
+a:
+ return a;
+}
+Index: gcc/testsuite/g++.dg/pr81007.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/pr81007.C (.../tags/gcc_7_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/pr81007.C (.../branches/gcc-7-branch)
+@@ -0,0 +1,15 @@
++// { dg-do compile }
++// { dg-options "-O2" }
++
++struct A
++{
++ A p; // { dg-error "incomplete" }
++ virtual void foo();
++};
++
++struct B : A {};
++
++void bar(B& b)
++{
++ b.foo();
++}
Index: gcc/testsuite/g++.dg/ubsan/pr81111.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/ubsan/pr81111.C (.../tags/gcc_7_1_0_release)
@@ -7242,6 +7633,38 @@ Index: gcc/testsuite/g++.dg/cpp0x/constexpr-diag3.C
// --------------------
+Index: gcc/testsuite/g++.dg/cpp0x/variadic-ttp8.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/variadic-ttp8.C (.../tags/gcc_7_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/variadic-ttp8.C (.../branches/gcc-7-branch)
+@@ -0,0 +1,27 @@
++// PR c++/69111
++// { dg-do compile { target c++11 } }
++
++template <template <typename> class ...>
++struct template_list {};
++
++template <typename T>
++struct A
++{};
++
++template <typename>
++struct B
++{
++ template <typename T>
++ using type = A<T>;
++};
++
++template <typename ... Types>
++struct C
++{
++ using type = template_list<B<Types>::template type...>;
++};
++
++int main()
++{
++ return 0;
++}
Index: gcc/testsuite/g++.dg/cpp0x/constexpr-data1.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/cpp0x/constexpr-data1.C (.../tags/gcc_7_1_0_release)
@@ -7288,6 +7711,33 @@ Index: gcc/testsuite/g++.dg/cpp0x/constexpr-neg1.C
private:
bool flag;
};
+Index: gcc/testsuite/g++.dg/cpp0x/variadic-partial1.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/variadic-partial1.C (.../tags/gcc_7_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/variadic-partial1.C (.../branches/gcc-7-branch)
+@@ -0,0 +1,22 @@
++// PR c++/72801
++// { dg-do compile { target c++11 } }
++
++template < typename, typename > struct A {};
++
++template < typename ... T > struct B
++{
++ template < typename > struct C
++ {
++ static const int a = 0;
++ };
++
++ template < typename R, typename ... S >
++ struct C < R (A < T, S > ...) >
++ {
++ static const int a = 1;
++ };
++};
++
++#define SA(X) static_assert ((X), #X)
++SA(B <>::C<int()>::a == 1);
++
Index: gcc/testsuite/g++.dg/cpp0x/variadic-ttp7.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/cpp0x/variadic-ttp7.C (.../tags/gcc_7_1_0_release)
@@ -7361,6 +7811,79 @@ Index: gcc/testsuite/g++.dg/cpp0x/constexpr-diag1.C
template <class T>
constexpr int f (T t) { return 42; } // { dg-error "parameter" }
+Index: gcc/testsuite/g++.dg/torture/pr81112.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/torture/pr81112.C (.../tags/gcc_7_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/torture/pr81112.C (.../branches/gcc-7-branch)
+@@ -0,0 +1,68 @@
++// { dg-do compile }
++// { dg-additional-options "-Wno-psabi" }
++
++class AssertionResult {
++ bool success_;
++};
++
++AssertionResult AssertionSuccess();
++
++template <typename T1>
++AssertionResult EXPECT_EQ(const T1& expected, const T1& actual) {
++ if (expected == actual) {
++ return AssertionSuccess();
++ }
++ return AssertionSuccess();
++}
++
++struct uuid
++{
++ unsigned char data[16];
++};
++
++bool operator== (uuid const& lhs, uuid const& rhs);
++
++typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
++typedef int __v4si __attribute__ ((__vector_size__ (16)));
++typedef char __v16qi __attribute__ ((__vector_size__ (16)));
++typedef long long __m128i_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));
++
++int foo (__v16qi);
++
++extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
++ _mm_loadu_si128 (__m128i_u const *__P)
++{
++ return *__P;
++}
++extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
++ _mm_cmpeq_epi32 (__m128i __A, __m128i __B)
++{
++ return (__m128i) ((__v4si)__A == (__v4si)__B);
++}
++extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
++ _mm_movemask_epi8 (__m128i __A)
++{
++ return foo ((__v16qi)__A);
++}
++
++
++__m128i load_unaligned_si128(const unsigned char* p)
++{
++ return _mm_loadu_si128(reinterpret_cast< const __m128i* >(p));
++}
++
++inline bool operator== (uuid const& lhs, uuid const& rhs)
++{
++ __m128i mm_left = load_unaligned_si128(lhs.data);
++ __m128i mm_right = load_unaligned_si128(rhs.data);
++
++ __m128i mm_cmp = _mm_cmpeq_epi32(mm_left, mm_right);
++
++ return _mm_movemask_epi8(mm_cmp) == 0xFFFF;
++}
++
++void crash_gcc7()
++{
++ static const uuid u = uuid();
++ EXPECT_EQ(u, u);
++}
Index: gcc/testsuite/g++.dg/ipa/pr80212.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/ipa/pr80212.C (.../tags/gcc_7_1_0_release)
@@ -8031,6 +8554,23 @@ Index: gcc/testsuite/g++.dg/template/nontype-array1.C
+ char const s8[] = "hi";
+ Message<s8> m8; // { dg-error "" }
+}
+Index: gcc/testsuite/g++.dg/template/lookup10.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/template/lookup10.C (.../tags/gcc_7_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/template/lookup10.C (.../branches/gcc-7-branch)
+@@ -0,0 +1,12 @@
++// PR c++/81204
++
++namespace std {
++ template<typename, typename> struct set { };
++}
++using namespace std;
++
++template <int I, typename Result>
++inline void set(Result & res)
++{
++ res.template set<I>();
++}
Index: gcc/testsuite/g++.dg/template/partial5.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/template/partial5.C (.../tags/gcc_7_1_0_release)
@@ -8350,7 +8890,19 @@ Index: gcc/cp/ChangeLog
===================================================================
--- a/src/gcc/cp/ChangeLog (.../tags/gcc_7_1_0_release)
+++ b/src/gcc/cp/ChangeLog (.../branches/gcc-7-branch)
-@@ -1,3 +1,148 @@
+@@ -1,3 +1,160 @@
++2017-06-28 Jason Merrill <jason at redhat.com>
++
++ PR c++/61022 - error with variadic template template parm
++ * pt.c (convert_template_argument): Keep the TYPE_PACK_EXPANSION.
++
++ PR c++/72801 - ICE with variadic partial specialization
++ * pt.c (unify_pack_expansion): Use PACK_EXPANSION_EXTRA_ARGS.
++
++ PR c++/81204 - parse error with dependent template-name
++ * parser.c (cp_parser_lookup_name): Disqualify function templates
++ after lookup.
++
+2017-06-26 Jason Merrill <jason at redhat.com>
+
+ PR c++/81215
@@ -8713,7 +9265,26 @@ Index: gcc/cp/pt.c
return 0;
}
-@@ -20563,18 +20645,6 @@
+@@ -7552,7 +7634,7 @@
+ else if (TREE_CODE (TREE_TYPE (arg)) == UNBOUND_CLASS_TEMPLATE)
+ /* The number of argument required is not known yet.
+ Just accept it for now. */
+- val = TREE_TYPE (arg);
++ val = orig_arg;
+ else
+ {
+ tree parmparm = DECL_INNERMOST_TEMPLATE_PARMS (parm);
+@@ -19954,6 +20036,9 @@
+ tree pack, packs = NULL_TREE;
+ int i, start = TREE_VEC_LENGTH (packed_parms) - 1;
+
++ /* Add in any args remembered from an earlier partial instantiation. */
++ targs = add_to_template_args (PACK_EXPANSION_EXTRA_ARGS (parm), targs);
++
+ packed_args = expand_template_argument_pack (packed_args);
+
+ int len = TREE_VEC_LENGTH (packed_args);
+@@ -20563,18 +20648,6 @@
return x;
}
@@ -8732,7 +9303,7 @@ Index: gcc/cp/pt.c
/* [temp.deduct.type] If, in the declaration of a function template
with a non-type template-parameter, the non-type
template-parameter is used in an expression in the function
-@@ -20595,7 +20665,8 @@
+@@ -20595,7 +20668,8 @@
/* Template-parameter dependent expression. Just accept it for now.
It will later be processed in convert_template_argument. */
;
@@ -8742,7 +9313,7 @@ Index: gcc/cp/pt.c
/* OK */;
else if ((strict & UNIFY_ALLOW_INTEGER)
&& CP_INTEGRAL_TYPE_P (tparm))
-@@ -20604,9 +20675,22 @@
+@@ -20604,9 +20678,22 @@
corresponding parameter. */
arg = fold (build_nop (tparm, arg));
else if (uses_template_parms (tparm))
@@ -8768,7 +9339,7 @@ Index: gcc/cp/pt.c
else
return unify_type_mismatch (explain_p, tparm, TREE_TYPE (arg));
-@@ -21598,10 +21682,12 @@
+@@ -21598,10 +21685,12 @@
`T' is `A' but unify () does not check whether `typename T::X'
is `int'. */
spec_args = tsubst (spec_args, deduced_args, tf_none, NULL_TREE);
@@ -8784,7 +9355,7 @@ Index: gcc/cp/pt.c
pop_tinst_level ();
if (spec_args == error_mark_node
-@@ -23372,6 +23458,14 @@
+@@ -23372,6 +23461,14 @@
arg_type = TREE_CHAIN (arg_type))
if (dependent_type_p (TREE_VALUE (arg_type)))
return true;
@@ -8799,7 +9370,7 @@ Index: gcc/cp/pt.c
return false;
}
/* -- an array type constructed from any dependent type or whose
-@@ -23920,18 +24014,35 @@
+@@ -23920,18 +24017,35 @@
return true;
/* A function or variable template-id is type-dependent if it has any
@@ -8844,7 +9415,7 @@ Index: gcc/cp/pt.c
/* Always dependent, on the number of arguments if nothing else. */
if (TREE_CODE (expression) == EXPR_PACK_EXPANSION)
return true;
-@@ -24697,6 +24808,14 @@
+@@ -24697,6 +24811,14 @@
return t;
}
@@ -9091,6 +9662,34 @@ Index: gcc/cp/parser.c
duplicate_access_error_issued_p = true;
}
+@@ -25655,11 +25661,22 @@
+ decl = NULL_TREE;
+
+ if (!decl)
+- /* Look it up in the enclosing context. DR 141: When looking for a
+- template-name after -> or ., only consider class templates. */
+- decl = lookup_name_real (name, prefer_type_arg (tag_type, is_template),
+- /*nonclass=*/0,
+- /*block_p=*/true, is_namespace, 0);
++ {
++ /* Look it up in the enclosing context. */
++ decl = lookup_name_real (name, prefer_type_arg (tag_type),
++ /*nonclass=*/0,
++ /*block_p=*/true, is_namespace, 0);
++ /* DR 141 says when looking for a template-name after -> or ., only
++ consider class templates. */
++ if (decl && is_template && !DECL_TYPE_TEMPLATE_P (decl))
++ {
++ tree d = decl;
++ if (is_overloaded_fn (d))
++ d = get_first_fn (d);
++ if (DECL_P (d) && !DECL_CLASS_SCOPE_P (d))
++ decl = NULL_TREE;
++ }
++ }
+ if (object_type == unknown_type_node)
+ /* The object is type-dependent, so we can't look anything up; we used
+ this to get the DR 141 behavior. */
Index: gcc/cp/call.c
===================================================================
--- a/src/gcc/cp/call.c (.../tags/gcc_7_1_0_release)
@@ -9210,6 +9809,21 @@ Index: gcc/tree-ssa-ccp.c
ccp_lattice_meet (new_val, old_val);
gcc_checking_assert (valid_lattice_transition (*old_val, *new_val));
+Index: gcc/passes.def
+===================================================================
+--- a/src/gcc/passes.def (.../tags/gcc_7_1_0_release)
++++ b/src/gcc/passes.def (.../branches/gcc-7-branch)
+@@ -42,9 +42,9 @@
+ NEXT_PASS (pass_build_cfg);
+ NEXT_PASS (pass_warn_function_return);
+ NEXT_PASS (pass_expand_omp);
+- NEXT_PASS (pass_build_cgraph_edges);
+ NEXT_PASS (pass_sprintf_length, false);
+ NEXT_PASS (pass_walloca, /*strict_mode_p=*/true);
++ NEXT_PASS (pass_build_cgraph_edges);
+ TERMINATE_PASS_LIST (all_lowering_passes)
+
+ /* Interprocedural optimization passes. */
Index: gcc/dwarf2out.c
===================================================================
--- a/src/gcc/dwarf2out.c (.../tags/gcc_7_1_0_release)
@@ -12623,6 +13237,31 @@ Index: gcc/ubsan.h
extern bool is_ubsan_builtin_p (tree);
extern tree ubsan_build_overflow_builtin (tree_code, location_t, tree, tree,
tree, tree *);
+Index: gcc/ipa-prop.c
+===================================================================
+--- a/src/gcc/ipa-prop.c (.../tags/gcc_7_1_0_release)
++++ b/src/gcc/ipa-prop.c (.../branches/gcc-7-branch)
+@@ -3030,7 +3030,10 @@
+
+ if (index)
+ {
+- off = wi::to_offset (index);
++ if (TREE_CODE (index) == RANGE_EXPR)
++ off = wi::to_offset (TREE_OPERAND (index, 0));
++ else
++ off = wi::to_offset (index);
+ if (TYPE_DOMAIN (type) && TYPE_MIN_VALUE (TYPE_DOMAIN (type)))
+ {
+ tree low_bound = TYPE_MIN_VALUE (TYPE_DOMAIN (type));
+@@ -3039,6 +3042,8 @@
+ TYPE_PRECISION (TREE_TYPE (index)));
+ }
+ off *= wi::to_offset (unit_size);
++ /* ??? Handle more than just the first index of a
++ RANGE_EXPR. */
+ }
+ else
+ off = wi::to_offset (unit_size) * ix;
Index: gcc/po/es.po
===================================================================
--- a/src/gcc/po/es.po (.../tags/gcc_7_1_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