[gcc-6] 341/401: * Update to SVN 20170112 (r244350) from the gcc-6-branch.
Ximin Luo
infinity0 at debian.org
Wed Apr 5 15:50:35 UTC 2017
This is an automated email from the git hooks/post-receive script.
infinity0 pushed a commit to branch pu/reproducible_builds
in repository gcc-6.
commit cc1645072e7b564e6861b364cab827817231d3f4
Author: doko <doko at 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>
Date: Thu Jan 12 12:12:32 2017 +0000
* Update to SVN 20170112 (r244350) from the gcc-6-branch.
git-svn-id: svn://anonscm.debian.org/gcccvs/branches/sid/gcc-6@9221 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
---
debian/changelog | 7 +-
debian/patches/svn-updates.diff | 864 +++++++++++++++++++++++++++++++++++++++-
2 files changed, 856 insertions(+), 15 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 1baf723..32d7110 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,17 +1,18 @@
gcc-6 (6.3.0-3) UNRELEASED; urgency=medium
- * Update to SVN 20170109 (r244224) from the gcc-6-branch.
+ * Update to SVN 20170112 (r244350) from the gcc-6-branch.
- Fix PR tree-optimization/71055, PR driver/78863, PR translation/78745,
PR tree-optimization/78886, PR tree-optimization/78428,
PR libstdc++/78956, PR libstdc++/78991, PR rtl-optimization/78255,
- PR target/78041 (ARM).
+ PR target/78041 (ARM), PR pch/78970, PR lto/79042, PR target/78900 (PPC),
+ PR tree-optimization/78024, PR sanitizer/65479 (PPC), PR c++/77812.
* Always configure sparc builds --with-cpu-32=ultrasparc (James Clark).
Closes: #850250.
* Enable gccgo on m68k (John Paul Adrian Glaubitz). Closes: #850749.
* Reapply the fix for PR target/55947, and fix PR c++/72813, taken from
the trunk.
- -- Matthias Klose <doko at debian.org> Mon, 09 Jan 2017 13:38:04 +0100
+ -- Matthias Klose <doko at debian.org> Thu, 12 Jan 2017 13:04:12 +0100
gcc-6 (6.3.0-2) unstable; urgency=medium
diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff
index 345e489..4285db3 100644
--- a/debian/patches/svn-updates.diff
+++ b/debian/patches/svn-updates.diff
@@ -1,10 +1,10 @@
-# DP: updates from the 6 branch upto 20170109 (r244224).
+# DP: updates from the 6 branch upto 20170112 (r244350).
last_update()
{
cat > ${dir}LAST_UPDATED <EOF
-Mon Jan 9 13:27:17 CET 2017
-Mon Jan 9 12:27:17 UTC 2017 (revision 244224)
+Thu Jan 12 12:40:08 CET 2017
+Thu Jan 12 11:40:08 UTC 2017 (revision 244350)
EOF
}
@@ -12,6 +12,59 @@ LANG=C svn diff svn://gcc.gnu.org/svn/gcc/tags/gcc_6_3_0_release svn://gcc.gnu.o
| sed -r 's,^--- (\S+)\t(\S+)(.*)$,--- a/src/\1\t\2,;s,^\+\+\+ (\S+)\t(\S+)(.*)$,+++ b/src/\1\t\2,' \
| awk '/^Index:.*\.(class|texi)/ {skip=1; next} /^Index:/ { skip=0 } skip==0'
+Index: libgomp/ChangeLog
+===================================================================
+--- a/src/libgomp/ChangeLog (.../tags/gcc_6_3_0_release)
++++ b/src/libgomp/ChangeLog (.../branches/gcc-6-branch)
+@@ -1,3 +1,16 @@
++2017-01-10 Thomas Schwinge <thomas at codesourcery.com>
++
++ Backport trunk r239125:
++ 2016-08-04 Thomas Schwinge <thomas at codesourcery.com>
++
++ * testsuite/libgomp.oacc-c-c++-common/crash-1.c: Make it a "link"
++ test, and don't hardcode -O0.
++
++ Backport trunk r239086:
++ 2016-08-03 Nathan Sidwell <nathan at codesourcery.com>
++
++ * testsuite/libgomp.oacc-c-c++-common/crash-1.c: New.
++
+ 2016-12-21 Release Manager
+
+ * GCC 6.3.0 released.
+Index: libgomp/testsuite/libgomp.oacc-c-c++-common/crash-1.c
+===================================================================
+--- a/src/libgomp/testsuite/libgomp.oacc-c-c++-common/crash-1.c (.../tags/gcc_6_3_0_release)
++++ b/src/libgomp/testsuite/libgomp.oacc-c-c++-common/crash-1.c (.../branches/gcc-6-branch)
+@@ -0,0 +1,27 @@
++/* { dg-do link } */
++
++/* For -O0, ICEd in nvptx backend due to unexpected frame size. */
++#pragma acc routine worker
++void
++worker_matmul (int *c, int i)
++{
++ int j;
++
++#pragma acc loop
++ for (j = 0; j < 4; j++)
++ c[j] = j;
++}
++
++
++int
++main ()
++{
++ int c[4];
++
++#pragma acc parallel
++ {
++ worker_matmul (c, 0);
++ }
++
++ return 0;
++}
Index: libstdc++-v3/include/std/thread
===================================================================
--- a/src/libstdc++-v3/include/std/thread (.../tags/gcc_6_3_0_release)
@@ -235,6 +288,117 @@ Index: libstdc++-v3/testsuite/30_threads/thread/cons/lwg2097.cc
+static_assert( !is_constructible<thread, thread&>::value, "" );
+static_assert( !is_constructible<thread, const thread&>::value, "" );
+static_assert( !is_constructible<thread, const thread>::value, "" );
+Index: configure.ac
+===================================================================
+--- a/src/configure.ac (.../tags/gcc_6_3_0_release)
++++ b/src/configure.ac (.../branches/gcc-6-branch)
+@@ -819,6 +819,9 @@
+ *-*-vxworks*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
++ aarch64*-*-freebsd*)
++ noconfigdirs="$noconfigdirs ${libgcj}"
++ ;;
+ alpha*-*-*vms*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+Index: ChangeLog
+===================================================================
+--- a/src/ChangeLog (.../tags/gcc_6_3_0_release)
++++ b/src/ChangeLog (.../branches/gcc-6-branch)
+@@ -1,3 +1,11 @@
++2017-01-09 Andreas Tobler <andreast at gcc.gnu.org>
++
++ Backport from mainline
++ 2016-10-10 Andreas Tobler <andreast at gcc.gnu.org>
++
++ * configure.ac: Add aarch64-*-freebsd*.
++ * configure: Regenerate.
++
+ 2016-12-21 Release Manager
+
+ * GCC 6.3.0 released.
+Index: configure
+===================================================================
+--- a/src/configure (.../tags/gcc_6_3_0_release)
++++ b/src/configure (.../branches/gcc-6-branch)
+@@ -3483,6 +3483,9 @@
+ *-*-vxworks*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
++ aarch64*-*-freebsd*)
++ noconfigdirs="$noconfigdirs ${libgcj}"
++ ;;
+ alpha*-*-*vms*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+Index: libgcc/config.host
+===================================================================
+--- a/src/libgcc/config.host (.../tags/gcc_6_3_0_release)
++++ b/src/libgcc/config.host (.../branches/gcc-6-branch)
+@@ -333,6 +333,11 @@
+ tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
+ tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
+ ;;
++aarch64*-*-freebsd*)
++ extra_parts="$extra_parts crtfastmath.o"
++ tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
++ tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
++ ;;
+ aarch64*-*-linux*)
+ extra_parts="$extra_parts crtfastmath.o"
+ md_unwind_header=aarch64/linux-unwind.h
+Index: libgcc/ChangeLog
+===================================================================
+--- a/src/libgcc/ChangeLog (.../tags/gcc_6_3_0_release)
++++ b/src/libgcc/ChangeLog (.../branches/gcc-6-branch)
+@@ -1,3 +1,10 @@
++2017-01-09 Andreas Tobler <andreast at gcc.gnu.org>
++
++ Backport from mainline
++ 2016-10-10 Andreas Tobler <andreast at gcc.gnu.org>
++
++ * config.host: Add support for aarch64-*-freebsd*.
++
+ 2016-12-21 Release Manager
+
+ * GCC 6.3.0 released.
+Index: gcc/c-family/c-opts.c
+===================================================================
+--- a/src/gcc/c-family/c-opts.c (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/c-family/c-opts.c (.../branches/gcc-6-branch)
+@@ -742,8 +742,13 @@
+ in_fnames[0] = "";
+ }
+ else if (strcmp (in_fnames[0], "-") == 0)
+- in_fnames[0] = "";
++ {
++ if (pch_file)
++ error ("cannot use %<-%> as input filename for a precompiled header");
+
++ in_fnames[0] = "";
++ }
++
+ if (out_fname == NULL || !strcmp (out_fname, "-"))
+ out_fname = "";
+
+Index: gcc/c-family/ChangeLog
+===================================================================
+--- a/src/gcc/c-family/ChangeLog (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/c-family/ChangeLog (.../branches/gcc-6-branch)
+@@ -1,3 +1,12 @@
++2017-01-10 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-01-05 Martin Liska <mliska at suse.cz>
++
++ PR pch/78970
++ * c-opts.c (c_common_post_options): Reject '-' filename for a precompiled
++ header.
++
+ 2016-12-21 Release Manager
+
+ * GCC 6.3.0 released.
Index: gcc/c/ChangeLog
===================================================================
--- a/src/gcc/c/ChangeLog (.../tags/gcc_6_3_0_release)
@@ -283,7 +447,7 @@ Index: gcc/DATESTAMP
+++ b/src/gcc/DATESTAMP (.../branches/gcc-6-branch)
@@ -1 +1 @@
-20161221
-+20170109
++20170112
Index: gcc/postreload.c
===================================================================
--- a/src/gcc/postreload.c (.../tags/gcc_6_3_0_release)
@@ -318,7 +482,28 @@ Index: gcc/gcc.c
===================================================================
--- a/src/gcc/gcc.c (.../tags/gcc_6_3_0_release)
+++ b/src/gcc/gcc.c (.../branches/gcc-6-branch)
-@@ -7692,6 +7692,17 @@
+@@ -1919,6 +1919,9 @@
+ /* Was the option -o passed. */
+ static int have_o = 0;
+
++/* Was the option -E passed. */
++static int have_E = 0;
++
+ /* Pointer to output file name passed in with -o. */
+ static const char *output_file = 0;
+
+@@ -4031,6 +4034,10 @@
+ validated = true;
+ break;
+
++ case OPT_E:
++ have_E = true;
++ break;
++
+ case OPT_x:
+ spec_lang = arg;
+ if (!strcmp (spec_lang, "none"))
+@@ -7692,6 +7699,17 @@
{
for (int j = 0; sanitizer_opts[j].name != NULL; ++j)
{
@@ -336,6 +521,53 @@ Index: gcc/gcc.c
/* Get one arg at a time e.g. "-fsanitize=address". */
char *with_arg = concat (opt_text,
sanitizer_opts[j].name,
+@@ -8273,8 +8291,18 @@
+ {
+ for (cp = compilers + n_compilers - 1; cp >= compilers; cp--)
+ if (cp->suffix[0] == '@' && !strcmp (cp->suffix + 1, language))
+- return cp;
++ {
++ if (name != NULL && strcmp (name, "-") == 0
++ && (strcmp (cp->suffix, "@c-header") == 0
++ || strcmp (cp->suffix, "@c++-header") == 0)
++ && !have_E)
++ fatal_error (input_location,
++ "cannot use %<-%> as input filename for a "
++ "precompiled header");
+
++ return cp;
++ }
++
+ error ("language %s not recognized", language);
+ return 0;
+ }
+Index: gcc/omp-low.c
+===================================================================
+--- a/src/gcc/omp-low.c (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/omp-low.c (.../branches/gcc-6-branch)
+@@ -19225,7 +19225,9 @@
+ static oacc_loop *
+ oacc_loop_discovery ()
+ {
+- basic_block bb;
++ /* Clear basic block flags, in particular BB_VISITED which we're going to use
++ in the following. */
++ clear_bb_flags ();
+
+ oacc_loop *top = new_oacc_loop_outer (current_function_decl);
+ oacc_loop_discover_walk (top, ENTRY_BLOCK_PTR_FOR_FN (cfun));
+@@ -19234,9 +19236,8 @@
+ that diagnostics come out in an unsurprising order. */
+ top = oacc_loop_sibling_nreverse (top);
+
+- /* Reset the visited flags. */
+- FOR_ALL_BB_FN (bb, cfun)
+- bb->flags &= ~BB_VISITED;
++ /* Clear basic block flags again. */
++ clear_bb_flags ();
+
+ return top;
+ }
Index: gcc/tree-ssa-sccvn.c
===================================================================
--- a/src/gcc/tree-ssa-sccvn.c (.../tags/gcc_6_3_0_release)
@@ -377,11 +609,142 @@ Index: gcc/tree-ssa-sccvn.c
}
}
}
+Index: gcc/cgraphunit.c
+===================================================================
+--- a/src/gcc/cgraphunit.c (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/cgraphunit.c (.../branches/gcc-6-branch)
+@@ -1193,8 +1193,16 @@
+ at looking at optimized away DECLs, since
+ late_global_decl will subsequently be called from the
+ contents of the now pruned symbol table. */
+- if (!decl_function_context (node->decl))
+- (*debug_hooks->late_global_decl) (node->decl);
++ if (VAR_P (node->decl)
++ && !decl_function_context (node->decl))
++ {
++ /* We are reclaiming totally unreachable code and variables
++ so they effectively appear as readonly. Show that to
++ the debug machinery. */
++ TREE_READONLY (node->decl) = 1;
++ node->definition = false;
++ (*debug_hooks->late_global_decl) (node->decl);
++ }
+
+ node->remove ();
+ continue;
Index: gcc/ChangeLog
===================================================================
--- a/src/gcc/ChangeLog (.../tags/gcc_6_3_0_release)
+++ b/src/gcc/ChangeLog (.../branches/gcc-6-branch)
-@@ -1,3 +1,111 @@
+@@ -1,3 +1,219 @@
++2017-01-11 Uros Bizjak <ubizjak at gmail.com>
++
++ * config/i386/i386.c (memory_address_length): Increase len
++ only when rip_relative_addr_p returns false.
++
++2017-01-11 Maxim Ostapenko <m.ostapenko at samsung.com>
++
++ Backport from mainline
++ 2017-01-11 Maxim Ostapenko <m.ostapenko at samsung.com>
++
++ PR lto/79042
++ * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
++ bit.
++ (input_varpool_node): Unpack dynamically_initialized bit.
++ * lto-streamer.h (LTO_minor_version): Bump version.
++
++2017-01-10 Michael Meissner <meissner at linux.vnet.ibm.com>
++
++ Backport from mainline
++ 2016-12-30 Michael Meissner <meissner at linux.vnet.ibm.com>
++
++ PR target/78900
++ * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
++ assertions. Add support for doing the signbit if the IEEE 128-bit
++ floating point value is in a GPR.
++ * config/rs6000/rs6000.md (Fsignbit): Delete.
++ (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
++ Update the length attribute if the value is in a GPR.
++ (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
++ the sign or zero extension instruction, since the value is always
++ 0/1.
++ (signbit<mode>2_dm2): Delete using <Fsignbit>.
++
++2017-01-10 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-01-09 Martin Liska <mliska at suse.cz>
++
++ PR pch/78970
++ * gcc.c (driver_handle_option): Handle OPT_E and set
++ have_E.
++ (lookup_compiler): Do not show error message with have_E.
++
++2017-01-10 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-01-05 Martin Liska <mliska at suse.cz>
++
++ PR pch/78970
++ * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
++ header.
++
++2017-01-10 Thomas Schwinge <thomas at codesourcery.com>
++
++ PR tree-optimization/78024
++ * omp-low.c (oacc_loop_discovery): Call clear_bb_flags.
++
++ Backport trunk r239086:
++ 2016-08-03 Nathan Sidwell <nathan at codesourcery.com>
++
++ * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
++ size to DImode boundary.
++ (nvptx_propagate): Likewise.
++
++2017-01-10 Chung-Ju Wu <jasonwucj at gmail.com>
++
++ Backport from mainline
++ 2016-04-28 Segher Boessenkool <segher at kernel.crashing.org>
++
++ PR target/70668
++ * config/nds32/nds32.md (casesi): Don't access the operands array
++ out of bounds.
++
++2017-01-09 Andreas Tobler <andreast at gcc.gnu.org>
++
++ Backport from mainline
++ 2016-10-10 Andreas Tobler <andreast at gcc.gnu.org>
++
++ * config.gcc: Add aarch64-*-freebsd* support.
++ * config.host: Likewise.
++ * config/aarch64/aarch64-freebsd.h: New file.
++ * config/aarch64/t-aarch64-freebsd: Ditto.
++
++2017-01-09 Bill Seurer <seurer at linux.vnet.ibm.com>
++
++ Backport from mainline
++ 2016-12-21 Bill Seurer <seurer at linux.vnet.ibm.com>
++
++ PR sanitizer/65479
++ * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
++ -fasynchronous-unwind-tables option when -fsanitize=address is
++ specified.
++
++2017-01-09 Andreas Tobler <andreast at gcc.gnu.org>
++
++ Backport from mainline
++ 2016-09-19 Richard Biener <rguenther at suse.de>
++
++ * dwarf2out.c (dwarf2out_late_global_decl): When being during the
++ early debug phase do not add locations but only const value
++ attributes.
++
++ Backport from mainline
++ 2016-10-20 Richard Biener <rguenther at suse.de>
++
++ * cgraphunit.c (analyze_functions): Set node->definition to
++ false to signal symbol removal to debug_hooks->late_global_decl.
++
+2017-01-09 Andre Vieira <andre.simoesdiasvieira at arm.com>
+
+ Backport from mainline
@@ -684,6 +1047,29 @@ Index: gcc/testsuite/gcc.c-torture/execute/pr77767.c
+ foo (1, e, 1, e);
+ return 0;
+}
+Index: gcc/testsuite/gcc.dg/goacc/loop-processing-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/goacc/loop-processing-1.c (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/testsuite/gcc.dg/goacc/loop-processing-1.c (.../branches/gcc-6-branch)
+@@ -0,0 +1,18 @@
++/* Make sure that OpenACC loop processing happens. */
++/* { dg-additional-options "-O2 -fdump-tree-oaccdevlow" } */
++
++extern int place ();
++
++void vector_1 (int *ary, int size)
++{
++#pragma acc parallel num_workers (32) vector_length(32) copy(ary[0:size]) firstprivate (size)
++ {
++#pragma acc loop gang
++ for (int jx = 0; jx < 1; jx++)
++#pragma acc loop auto
++ for (int ix = 0; ix < size; ix++)
++ ary[ix] = place ();
++ }
++}
++
++/* { dg-final { scan-tree-dump "OpenACC loops.*Loop 0\\\(0\\\).*Loop 14\\\(1\\\).*\\\.data_dep\\\.\[0-9_\]+ = UNIQUE \\\(\[0-9\]+, 0, 1, 20\\\);.*Head-0:.*\\\.data_dep\\\.\[0-9_\]+ = UNIQUE \\\(\[0-9\]+, 0, 1, 20\\\);.*\\\.data_dep\\\.\[0-9_\]+ = UNIQUE \\\(\[0-9\]+, \\\.data_dep\\\.\[0-9_\]+, 0\\\);.*Tail-0:.*\\\.data_dep\\\.\[0-9_\]+ = UNIQUE \\\(\[0-9\]+, \\\.data_dep\\\.\[0-9_\]+, 1\\\);.*\\\.data_dep\\\.\[0-9_\]+ = UNIQUE \\\(\[0-9\]+, \\\.data_dep\\\.\[0-9_\]+, 0\\\);.*Loop 6\\\(4 [...]
Index: gcc/testsuite/gcc.dg/spellcheck-options-13.c
===================================================================
--- a/src/gcc/testsuite/gcc.dg/spellcheck-options-13.c (.../tags/gcc_6_3_0_release)
@@ -768,7 +1154,20 @@ Index: gcc/testsuite/ChangeLog
===================================================================
--- a/src/gcc/testsuite/ChangeLog (.../tags/gcc_6_3_0_release)
+++ b/src/gcc/testsuite/ChangeLog (.../branches/gcc-6-branch)
-@@ -1,3 +1,86 @@
+@@ -1,3 +1,99 @@
++2017-01-11 Nathan Sidwell <nathan at acm.org>
++
++ PR c++/77812
++ * g++.dg/pr77812.C: New.
++
++2017-01-10 Thomas Schwinge <thomas at codesourcery.com>
++
++ Backport from trunk r241334:
++ 2016-10-19 Thomas Schwinge <thomas at codesourcery.com>
++
++ PR tree-optimization/78024
++ * gcc.dg/goacc/loop-processing-1.c: New file.
++
+2017-01-09 Andre Vieira <andre.simoesdiasvieira at arm.com>
+
+ Backport from mainline
@@ -855,6 +1254,29 @@ Index: gcc/testsuite/ChangeLog
2016-12-21 Release Manager
* GCC 6.3.0 released.
+Index: gcc/testsuite/g++.dg/pr77812.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/pr77812.C (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/testsuite/g++.dg/pr77812.C (.../branches/gcc-6-branch)
+@@ -0,0 +1,18 @@
++// PR77812
++// struct-stat hack failure when first overload is a template
++
++enum f {};
++
++template <typename>
++void f ()
++{
++}
++enum f F;
++
++struct g {};
++
++template <typename>
++void g ()
++{
++}
++struct g G;
Index: gcc/testsuite/g++.dg/ipa/pr77905.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/ipa/pr77905.C (.../tags/gcc_6_3_0_release)
@@ -881,6 +1303,58 @@ Index: gcc/testsuite/g++.dg/ipa/pr77905.C
+B::B() : A(1) {}
+
+C::C(int) : A(1) {}
+Index: gcc/cp/ChangeLog
+===================================================================
+--- a/src/gcc/cp/ChangeLog (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/cp/ChangeLog (.../branches/gcc-6-branch)
+@@ -1,3 +1,9 @@
++2017-01-11 Nathan Sidwell <nathan at acm.org>
++
++ PR c++/77812
++ * name-lookup.c (set_namespace_binding_1): An overload of 1 decl
++ is a new overload.
++
+ 2016-12-21 Release Manager
+
+ * GCC 6.3.0 released.
+Index: gcc/cp/name-lookup.c
+===================================================================
+--- a/src/gcc/cp/name-lookup.c (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/cp/name-lookup.c (.../branches/gcc-6-branch)
+@@ -3470,7 +3470,12 @@
+ if (scope == NULL_TREE)
+ scope = global_namespace;
+ b = binding_for_name (NAMESPACE_LEVEL (scope), name);
+- if (!b->value || TREE_CODE (val) == OVERLOAD || val == error_mark_node)
++ if (!b->value
++ /* For templates and using we create a single element OVERLOAD.
++ Look for the chain to know whether this is really augmenting
++ an existing overload. */
++ || (TREE_CODE (val) == OVERLOAD && OVL_CHAIN (val))
++ || val == error_mark_node)
+ b->value = val;
+ else
+ supplement_binding (b, val);
+Index: gcc/lto-cgraph.c
+===================================================================
+--- a/src/gcc/lto-cgraph.c (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/lto-cgraph.c (.../branches/gcc-6-branch)
+@@ -623,6 +623,7 @@
+ }
+ bp_pack_value (&bp, node->tls_model, 3);
+ bp_pack_value (&bp, node->used_by_single_function, 1);
++ bp_pack_value (&bp, node->dynamically_initialized, 1);
+ bp_pack_value (&bp, node->need_bounds_init, 1);
+ streamer_write_bitpack (&bp);
+
+@@ -1397,6 +1398,7 @@
+ node->alias_target = get_alias_symbol (node->decl);
+ node->tls_model = (enum tls_model)bp_unpack_value (&bp, 3);
+ node->used_by_single_function = (enum tls_model)bp_unpack_value (&bp, 1);
++ node->dynamically_initialized = bp_unpack_value (&bp, 1);
+ node->need_bounds_init = bp_unpack_value (&bp, 1);
+ group = read_identifier (ib);
+ if (group)
Index: gcc/ipa-pure-const.c
===================================================================
--- a/src/gcc/ipa-pure-const.c (.../tags/gcc_6_3_0_release)
@@ -895,6 +1369,28 @@ Index: gcc/ipa-pure-const.c
return false;
}
+Index: gcc/dwarf2out.c
+===================================================================
+--- a/src/gcc/dwarf2out.c (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/dwarf2out.c (.../branches/gcc-6-branch)
+@@ -23752,7 +23752,16 @@
+ {
+ dw_die_ref die = lookup_decl_die (decl);
+ if (die)
+- add_location_or_const_value_attribute (die, decl, false);
++ {
++ /* We get called via the symtab code invoking late_global_decl
++ for symbols that are optimized out. Do not add locations
++ for those. */
++ varpool_node *node = varpool_node::get (decl);
++ if (! node || ! node->definition)
++ tree_add_const_value_attribute_for_decl (die, decl);
++ else
++ add_location_or_const_value_attribute (die, decl, false);
++ }
+ }
+ }
+
Index: gcc/expr.c
===================================================================
--- a/src/gcc/expr.c (.../tags/gcc_6_3_0_release)
@@ -42475,6 +42971,68 @@ Index: gcc/varasm.c
/* We cannot share RTX'es in pool entries.
Mark this piece of RTL as required for unsharing. */
RTX_FLAG (rtl, used) = 1;
+Index: gcc/config.gcc
+===================================================================
+--- a/src/gcc/config.gcc (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/config.gcc (.../branches/gcc-6-branch)
+@@ -946,6 +946,11 @@
+ done
+ TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
+ ;;
++aarch64*-*-freebsd*)
++ tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
++ tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-freebsd.h"
++ tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
++ ;;
+ aarch64*-*-linux*)
+ tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
+ tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
+Index: gcc/config.host
+===================================================================
+--- a/src/gcc/config.host (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/config.host (.../branches/gcc-6-branch)
+@@ -99,7 +99,7 @@
+ esac
+
+ case ${host} in
+- aarch64*-*-linux*)
++ aarch64*-*-freebsd* | aarch64*-*-linux*)
+ case ${target} in
+ aarch64*-*-*)
+ host_extra_gcc_objs="driver-aarch64.o"
+Index: gcc/config/nvptx/nvptx.c
+===================================================================
+--- a/src/gcc/config/nvptx/nvptx.c (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/config/nvptx/nvptx.c (.../branches/gcc-6-branch)
+@@ -989,11 +989,14 @@
+ init_frame (file, STACK_POINTER_REGNUM,
+ UNITS_PER_WORD, crtl->outgoing_args_size);
+
+- /* Declare a local variable for the frame. */
++ /* Declare a local variable for the frame. Force its size to be
++ DImode-compatible. */
+ HOST_WIDE_INT sz = get_frame_size ();
+ if (sz || cfun->machine->has_chain)
+ init_frame (file, FRAME_POINTER_REGNUM,
+- crtl->stack_alignment_needed / BITS_PER_UNIT, sz);
++ crtl->stack_alignment_needed / BITS_PER_UNIT,
++ (sz + GET_MODE_SIZE (DImode) - 1)
++ & ~(HOST_WIDE_INT)(GET_MODE_SIZE (DImode) - 1));
+
+ /* Declare the pseudos we have as ptx registers. */
+ int maxregs = max_reg_num ();
+@@ -3212,8 +3215,9 @@
+ rtx pred = NULL_RTX;
+ rtx_code_label *label = NULL;
+
+- gcc_assert (!(fs & (GET_MODE_SIZE (DImode) - 1)));
+- fs /= GET_MODE_SIZE (DImode);
++ /* The frame size might not be DImode compatible, but the frame
++ array's declaration will be. So it's ok to round up here. */
++ fs = (fs + GET_MODE_SIZE (DImode) - 1) / GET_MODE_SIZE (DImode);
+ /* Detect single iteration loop. */
+ if (fs == 1)
+ fs = 0;
Index: gcc/config/i386/stringop.opt
===================================================================
--- a/src/gcc/config/i386/stringop.opt (.../tags/gcc_6_3_0_release)
@@ -42511,6 +43069,163 @@ Index: gcc/config/i386/stringop.opt
-
-#undef DEF_ENUM
-#undef DEF_ALG
+Index: gcc/config/i386/i386.c
+===================================================================
+--- a/src/gcc/config/i386/i386.c (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/config/i386/i386.c (.../branches/gcc-6-branch)
+@@ -27721,7 +27721,7 @@
+ else if (disp && !base && !index)
+ {
+ len += 4;
+- if (rip_relative_addr_p (&parts))
++ if (!rip_relative_addr_p (&parts))
+ len++;
+ }
+ else
+Index: gcc/config/nds32/nds32.md
+===================================================================
+--- a/src/gcc/config/nds32/nds32.md (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/config/nds32/nds32.md (.../branches/gcc-6-branch)
+@@ -2288,11 +2288,9 @@
+ emit_jump_insn (gen_cbranchsi4 (test, operands[0], operands[2],
+ operands[4]));
+
+- operands[5] = gen_reg_rtx (SImode);
+- /* Step C, D, E, and F, using another temporary register operands[5]. */
+- emit_jump_insn (gen_casesi_internal (operands[0],
+- operands[3],
+- operands[5]));
++ /* Step C, D, E, and F, using another temporary register. */
++ rtx tmp = gen_reg_rtx (SImode);
++ emit_jump_insn (gen_casesi_internal (operands[0], operands[3], tmp));
+ DONE;
+ })
+
+Index: gcc/config/aarch64/t-aarch64-freebsd
+===================================================================
+--- a/src/gcc/config/aarch64/t-aarch64-freebsd (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/config/aarch64/t-aarch64-freebsd (.../branches/gcc-6-branch)
+@@ -0,0 +1,21 @@
++# Machine description for AArch64 architecture.
++# Copyright (C) 2016-2017 Free Software Foundation, Inc.
++#
++# This file is part of GCC.
++#
++# GCC is free software; you can redistribute it and/or modify it
++# under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3, or (at your option)
++# any later version.
++#
++# GCC is distributed in the hope that it will be useful, but
++# WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with GCC; see the file COPYING3. If not see
++# <http://www.gnu.org/licenses/>.
++
++LIB1ASMSRC = aarch64/lib1funcs.asm
++LIB1ASMFUNCS = _aarch64_sync_cache_range
+Index: gcc/config/aarch64/aarch64-freebsd.h
+===================================================================
+--- a/src/gcc/config/aarch64/aarch64-freebsd.h (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/config/aarch64/aarch64-freebsd.h (.../branches/gcc-6-branch)
+@@ -0,0 +1,94 @@
++/* Definitions for AArch64 running FreeBSD
++ Copyright (C) 2016-2017 Free Software Foundation, Inc.
++
++ This file is part of GCC.
++
++ GCC is free software; you can redistribute it and/or modify it
++ under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 3, or (at your option)
++ any later version.
++
++ GCC is distributed in the hope that it will be useful, but
++ WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with GCC; see the file COPYING3. If not see
++ <http://www.gnu.org/licenses/>. */
++
++#ifndef GCC_AARCH64_FREEBSD_H
++#define GCC_AARCH64_FREEBSD_H
++
++#undef SUBTARGET_CPP_SPEC
++#define SUBTARGET_CPP_SPEC FBSD_CPP_SPEC
++
++#if TARGET_BIG_ENDIAN_DEFAULT
++#define TARGET_LINKER_EMULATION "aarch64fbsdb"
++#else
++#define TARGET_LINKER_EMULATION "aarch64fbsd"
++#endif
++
++#undef SUBTARGET_EXTRA_LINK_SPEC
++#define SUBTARGET_EXTRA_LINK_SPEC " -m" TARGET_LINKER_EMULATION
++
++#undef FBSD_TARGET_LINK_SPEC
++#define FBSD_TARGET_LINK_SPEC " \
++ %{p:%nconsider using `-pg' instead of `-p' with gprof (1) } \
++ %{v:-V} \
++ %{assert*} %{R*} %{rpath*} %{defsym*} \
++ %{shared:-Bshareable %{h*} %{soname*}} \
++ %{symbolic:-Bsymbolic} \
++ %{static:-Bstatic} \
++ %{!static: \
++ %{rdynamic:-export-dynamic} \
++ %{!shared:-dynamic-linker " FBSD_DYNAMIC_LINKER " }} \
++ -X" SUBTARGET_EXTRA_LINK_SPEC " \
++ %{mbig-endian:-EB} %{mlittle-endian:-EL}"
++
++#if TARGET_FIX_ERR_A53_835769_DEFAULT
++#define CA53_ERR_835769_SPEC \
++ " %{!mno-fix-cortex-a53-835769:--fix-cortex-a53-835769}"
++#else
++#define CA53_ERR_835769_SPEC \
++ " %{mfix-cortex-a53-835769:--fix-cortex-a53-835769}"
++#endif
++
++#ifdef TARGET_FIX_ERR_A53_843419_DEFAULT
++#define CA53_ERR_843419_SPEC \
++ " %{!mno-fix-cortex-a53-843419:--fix-cortex-a53-843419}"
++#else
++#define CA53_ERR_843419_SPEC \
++ " %{mfix-cortex-a53-843419:--fix-cortex-a53-843419}"
++#endif
++
++#undef LINK_SPEC
++#define LINK_SPEC FBSD_TARGET_LINK_SPEC \
++ CA53_ERR_835769_SPEC \
++ CA53_ERR_843419_SPEC
++
++#define GNU_USER_TARGET_MATHFILE_SPEC \
++ "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ GNU_USER_TARGET_MATHFILE_SPEC " " \
++ FBSD_ENDFILE_SPEC
++
++#undef TARGET_OS_CPP_BUILTINS
++#define TARGET_OS_CPP_BUILTINS() \
++ do \
++ { \
++ FBSD_TARGET_OS_CPP_BUILTINS (); \
++ } \
++ while (false)
++
++#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
++
++/* Uninitialized common symbols in non-PIE executables, even with
++ strong definitions in dependent shared libraries, will resolve
++ to COPY relocated symbol in the executable. See PR65780. */
++#undef TARGET_BINDS_LOCAL_P
++#define TARGET_BINDS_LOCAL_P default_binds_local_p_2
++
++#endif /* GCC_AARCH64_FREEBSD_H */
Index: gcc/config/rs6000/rs6000.opt
===================================================================
--- a/src/gcc/config/rs6000/rs6000.opt (.../tags/gcc_6_3_0_release)
@@ -42555,7 +43270,21 @@ Index: gcc/config/rs6000/rs6000.c
===================================================================
--- a/src/gcc/config/rs6000/rs6000.c (.../tags/gcc_6_3_0_release)
+++ b/src/gcc/config/rs6000/rs6000.c (.../branches/gcc-6-branch)
-@@ -4190,6 +4190,10 @@
+@@ -3750,6 +3750,13 @@
+ && !global_options_set.x_flag_ira_loop_pressure)
+ flag_ira_loop_pressure = 1;
+
++ /* -fsanitize=address needs to turn on -fasynchronous-unwind-tables in order
++ for tracebacks to be complete but not if any -fasynchronous-unwind-tables
++ options were already specified. */
++ if (flag_sanitize & SANITIZE_USER_ADDRESS
++ && !global_options_set.x_flag_asynchronous_unwind_tables)
++ flag_asynchronous_unwind_tables = 1;
++
+ /* Set the pointer size. */
+ if (TARGET_64BIT)
+ {
+@@ -4190,6 +4197,10 @@
{
if (rs6000_isa_flags_explicit & OPTION_MASK_P8_FUSION)
{
@@ -42566,7 +43295,7 @@ Index: gcc/config/rs6000/rs6000.c
error ("-mpower9-fusion requires -mpower8-fusion");
rs6000_isa_flags &= ~OPTION_MASK_P9_FUSION;
}
-@@ -4237,6 +4241,10 @@
+@@ -4237,6 +4248,10 @@
/* ISA 3.0 vector instructions include ISA 2.07. */
if (TARGET_P9_VECTOR && !TARGET_P8_VECTOR)
{
@@ -42577,7 +43306,7 @@ Index: gcc/config/rs6000/rs6000.c
if (rs6000_isa_flags_explicit & OPTION_MASK_P8_VECTOR)
error ("-mpower9-vector requires -mpower8-vector");
rs6000_isa_flags &= ~OPTION_MASK_P9_VECTOR;
-@@ -4264,6 +4272,10 @@
+@@ -4264,6 +4279,10 @@
/* ISA 3.0 D-form instructions require p9-vector and upper-regs. */
if ((TARGET_P9_DFORM_SCALAR || TARGET_P9_DFORM_VECTOR) && !TARGET_P9_VECTOR)
{
@@ -42588,7 +43317,7 @@ Index: gcc/config/rs6000/rs6000.c
if (rs6000_isa_flags_explicit & OPTION_MASK_P9_VECTOR)
error ("-mpower9-dform requires -mpower9-vector");
rs6000_isa_flags &= ~(OPTION_MASK_P9_DFORM_SCALAR
-@@ -4272,6 +4284,10 @@
+@@ -4272,6 +4291,10 @@
if (TARGET_P9_DFORM_SCALAR && !TARGET_UPPER_REGS_DF)
{
@@ -42599,7 +43328,7 @@ Index: gcc/config/rs6000/rs6000.c
if (rs6000_isa_flags_explicit & OPTION_MASK_UPPER_REGS_DF)
error ("-mpower9-dform requires -mupper-regs-df");
rs6000_isa_flags &= ~OPTION_MASK_P9_DFORM_SCALAR;
-@@ -15412,13 +15428,13 @@
+@@ -15412,13 +15435,13 @@
else if ((fnmask & RS6000_BTM_P8_VECTOR) != 0)
error ("Builtin function %s requires the -mpower8-vector option", name);
else if ((fnmask & RS6000_BTM_P9_VECTOR) != 0)
@@ -42616,6 +43345,46 @@ Index: gcc/config/rs6000/rs6000.c
else if ((fnmask & (RS6000_BTM_HARD_FLOAT | RS6000_BTM_LDBL128))
== (RS6000_BTM_HARD_FLOAT | RS6000_BTM_LDBL128))
error ("Builtin function %s requires the -mhard-float and"
+@@ -23084,9 +23107,7 @@
+ rtx dest_di = (d_mode == DImode) ? dest : gen_lowpart (DImode, dest);
+ rtx shift_reg = dest_di;
+
+- gcc_assert (REG_P (dest));
+- gcc_assert (REG_P (src) || MEM_P (src));
+- gcc_assert (s_mode == KFmode || s_mode == TFmode);
++ gcc_assert (FLOAT128_IEEE_P (s_mode) && TARGET_POWERPC64);
+
+ if (MEM_P (src))
+ {
+@@ -23098,17 +23119,20 @@
+
+ else
+ {
+- unsigned int r = REGNO (src);
++ unsigned int r = reg_or_subregno (src);
+
+- /* If this is a VSX register, generate the special mfvsrd instruction
+- to get it in a GPR. Until we support SF and DF modes, that will
+- always be true. */
+- gcc_assert (VSX_REGNO_P (r));
++ if (INT_REGNO_P (r))
++ shift_reg = gen_rtx_REG (DImode, r + (BYTES_BIG_ENDIAN == 0));
+
+- if (s_mode == KFmode)
+- emit_insn (gen_signbitkf2_dm2 (dest_di, src));
+ else
+- emit_insn (gen_signbittf2_dm2 (dest_di, src));
++ {
++ /* Generate the special mfvsrd instruction to get it in a GPR. */
++ gcc_assert (VSX_REGNO_P (r));
++ if (s_mode == KFmode)
++ emit_insn (gen_signbitkf2_dm2 (dest_di, src));
++ else
++ emit_insn (gen_signbittf2_dm2 (dest_di, src));
++ }
+ }
+
+ emit_insn (gen_lshrdi3 (dest_di, shift_reg, GEN_INT (63)));
Index: gcc/config/rs6000/rs6000.h
===================================================================
--- a/src/gcc/config/rs6000/rs6000.h (.../tags/gcc_6_3_0_release)
@@ -42637,6 +43406,64 @@ Index: gcc/config/rs6000/rs6000.h
#define RS6000_BTM_COMMON (RS6000_BTM_ALTIVEC \
| RS6000_BTM_VSX \
+Index: gcc/config/rs6000/rs6000.md
+===================================================================
+--- a/src/gcc/config/rs6000/rs6000.md (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/config/rs6000/rs6000.md (.../branches/gcc-6-branch)
+@@ -514,9 +514,6 @@
+ (define_mode_iterator SIGNBIT [(KF "FLOAT128_VECTOR_P (KFmode)")
+ (TF "FLOAT128_VECTOR_P (TFmode)")])
+
+-(define_mode_attr Fsignbit [(KF "wa")
+- (TF "wa")])
+-
+ ; SF/DF suffix for traditional floating instructions
+ (define_mode_attr Ftrad [(SF "s") (DF "")])
+
+@@ -4616,7 +4613,7 @@
+ (define_insn_and_split "signbit<mode>2_dm"
+ [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r")
+ (unspec:SI
+- [(match_operand:SIGNBIT 1 "input_operand" "<Fsignbit>,m,r")]
++ [(match_operand:SIGNBIT 1 "input_operand" "wa,m,r")]
+ UNSPEC_SIGNBIT))]
+ "TARGET_POWERPC64 && TARGET_DIRECT_MOVE"
+ "#"
+@@ -4626,15 +4623,32 @@
+ rs6000_split_signbit (operands[0], operands[1]);
+ DONE;
+ }
+- [(set_attr "length" "8,8,12")
++ [(set_attr "length" "8,8,4")
+ (set_attr "type" "mftgpr,load,integer")])
+
++(define_insn_and_split "*signbit<mode>2_dm_<su>ext"
++ [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r,r")
++ (any_extend:DI
++ (unspec:SI
++ [(match_operand:SIGNBIT 1 "input_operand" "wa,m,r")]
++ UNSPEC_SIGNBIT)))]
++ "TARGET_POWERPC64 && TARGET_DIRECT_MOVE"
++ "#"
++ "&& reload_completed"
++ [(const_int 0)]
++{
++ rs6000_split_signbit (operands[0], operands[1]);
++ DONE;
++}
++ [(set_attr "length" "8,8,4")
++ (set_attr "type" "mftgpr,load,integer")])
++
+ ;; MODES_TIEABLE_P doesn't allow DImode to be tied with the various floating
+ ;; point types, which makes normal SUBREG's problematical. Instead use a
+ ;; special pattern to avoid using a normal movdi.
+ (define_insn "signbit<mode>2_dm2"
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+- (unspec:DI [(match_operand:SIGNBIT 1 "gpc_reg_operand" "<Fsignbit>")
++ (unspec:DI [(match_operand:SIGNBIT 1 "gpc_reg_operand" "wa")
+ (const_int 0)]
+ UNSPEC_SIGNBIT))]
+ "TARGET_POWERPC64 && TARGET_DIRECT_MOVE"
Index: gcc/config/arm/neon.md
===================================================================
--- a/src/gcc/config/arm/neon.md (.../tags/gcc_6_3_0_release)
@@ -42731,3 +43558,16 @@ Index: gcc/config/arm/neon.md
(set_attr "type" "multiple")]
)
+Index: gcc/lto-streamer.h
+===================================================================
+--- a/src/gcc/lto-streamer.h (.../tags/gcc_6_3_0_release)
++++ b/src/gcc/lto-streamer.h (.../branches/gcc-6-branch)
+@@ -129,7 +129,7 @@
+ form followed by the data for the string. */
+
+ #define LTO_major_version 5
+-#define LTO_minor_version 1
++#define LTO_minor_version 2
+
+ typedef unsigned char lto_decl_flags_t;
+
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/gcc-6.git
More information about the Reproducible-commits
mailing list