[gcc-7] 294/354: * Update to SVN 20170915 (r252791) from the gcc-7-branch.
Ximin Luo
infinity0 at debian.org
Thu Nov 23 15:51:22 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 d02969c54e945b459cdf94577bfb767b5d749258
Author: doko <doko at 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>
Date: Fri Sep 15 09:20:35 2017 +0000
* Update to SVN 20170915 (r252791) from the gcc-7-branch.
git-svn-id: svn+ssh://svn.debian.org/svn/gcccvs/branches/sid/gcc-7@9687 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
---
debian/changelog | 8 +-
debian/patches/svn-updates.diff | 715 +++++++++++++++++++++++++++++++++++++++-
2 files changed, 711 insertions(+), 12 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 4929e0f..f7449f1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,18 +1,20 @@
gcc-7 (7.2.0-5) UNRELEASED; urgency=medium
- * Update to SVN 20170913 (r252733) from the gcc-7-branch.
+ * Update to SVN 20170915 (r252791) from the gcc-7-branch.
- Fix PR c/81687, PR c/45784, PR c++/81852, PR target/82181 (xtensa),
PR target/80695 (PPC), PR target/81988 (SPARC), PR middle-end/81768,
PR sanitizer/81923, PR target/81621, PR driver/81650,
PR middle-end/81052, PR tree-optimization/81987, PR bootstrap/81926,
PR libstdc++/79162, PR libstdc++/81468, PR libstdc++/81835,
- PR libstdc++/70483, PR libstdc++/70483, PR target/81833 (PPC).
+ PR libstdc++/70483, PR libstdc++/70483, PR target/81833 (PPC),
+ PR other/39851, PR ipa/81128, PR inline-asm/82001, PR c++/81355,
+ PR tree-opt/81696.
* Enable libgo tests and rebuilds with make -C (Svante Signell).
Closes: #873929.
* Fix PR sanitizer/77631, support separate debug info in libbacktrace.
* Update the Linaro support to the 7-2017.09 snapshot.
- -- Matthias Klose <doko at debian.org> Wed, 13 Sep 2017 22:52:19 +0200
+ -- Matthias Klose <doko at debian.org> Fri, 15 Sep 2017 11:17:19 +0200
gcc-7 (7.2.0-4) unstable; urgency=medium
diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff
index 8ba4cc9..75642d8 100644
--- a/debian/patches/svn-updates.diff
+++ b/debian/patches/svn-updates.diff
@@ -1,10 +1,10 @@
-# DP: updates from the 7 branch upto 20170913 (r252733).
+# DP: updates from the 7 branch upto 20170915 (r252791).
last_update()
{
cat > ${dir}LAST_UPDATED <EOF
-Wed Sep 13 22:44:13 CEST 2017
-Wed Sep 13 20:44:13 UTC 2017 (revision 252733)
+Fri Sep 15 11:11:00 CEST 2017
+Fri Sep 15 09:11:00 UTC 2017 (revision 252791)
EOF
}
@@ -5170,6 +5170,20 @@ Index: libstdc++-v3/config/io/basic_file_stdio.cc
if (!__err)
{
_M_cfile = __file;
+Index: gcc/ipa-visibility.c
+===================================================================
+--- a/src/gcc/ipa-visibility.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/ipa-visibility.c (.../branches/gcc-7-branch)
+@@ -97,7 +97,8 @@
+ && !DECL_EXTERNAL (node->decl)
+ && !node->externally_visible
+ && !node->used_from_other_partition
+- && !node->in_other_partition);
++ && !node->in_other_partition
++ && node->get_availability () >= AVAIL_AVAILABLE);
+ }
+
+ /* Return true when function can be marked local. */
Index: gcc/tree-chkp.c
===================================================================
--- a/src/gcc/tree-chkp.c (.../tags/gcc_7_2_0_release)
@@ -5183,6 +5197,105 @@ Index: gcc/tree-chkp.c
&& (!DECL_FIELD_OFFSET (field)
|| TREE_CODE (DECL_FIELD_OFFSET (field)) == INTEGER_CST)
&& (!DECL_FIELD_BIT_OFFSET (field)
+Index: gcc/ipa-icf-gimple.c
+===================================================================
+--- a/src/gcc/ipa-icf-gimple.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/ipa-icf-gimple.c (.../branches/gcc-7-branch)
+@@ -361,10 +361,14 @@
+ }
+ case LABEL_DECL:
+ {
++ if (t1 == t2)
++ return true;
++
+ int *bb1 = m_label_bb_map.get (t1);
+ int *bb2 = m_label_bb_map.get (t2);
+
+- return return_with_debug (*bb1 == *bb2);
++ /* Labels can point to another function (non-local GOTOs). */
++ return return_with_debug (bb1 != NULL && bb2 != NULL && *bb1 == *bb2);
+ }
+ case PARM_DECL:
+ case RESULT_DECL:
+@@ -539,11 +543,8 @@
+ }
+ }
+
+-/* Compares two tree list operands T1 and T2 and returns true if these
+- two trees are semantically equivalent. */
+-
+ bool
+-func_checker::compare_tree_list_operand (tree t1, tree t2)
++func_checker::compare_asm_inputs_outputs (tree t1, tree t2)
+ {
+ gcc_assert (TREE_CODE (t1) == TREE_LIST);
+ gcc_assert (TREE_CODE (t2) == TREE_LIST);
+@@ -556,6 +557,16 @@
+ if (!compare_operand (TREE_VALUE (t1), TREE_VALUE (t2)))
+ return return_false ();
+
++ tree p1 = TREE_PURPOSE (t1);
++ tree p2 = TREE_PURPOSE (t2);
++
++ gcc_assert (TREE_CODE (p1) == TREE_LIST);
++ gcc_assert (TREE_CODE (p2) == TREE_LIST);
++
++ if (strcmp (TREE_STRING_POINTER (TREE_VALUE (p1)),
++ TREE_STRING_POINTER (TREE_VALUE (p2))) != 0)
++ return return_false ();
++
+ t2 = TREE_CHAIN (t2);
+ }
+
+@@ -1004,7 +1015,7 @@
+ tree input1 = gimple_asm_input_op (g1, i);
+ tree input2 = gimple_asm_input_op (g2, i);
+
+- if (!compare_tree_list_operand (input1, input2))
++ if (!compare_asm_inputs_outputs (input1, input2))
+ return return_false_with_msg ("ASM input is different");
+ }
+
+@@ -1013,7 +1024,7 @@
+ tree output1 = gimple_asm_output_op (g1, i);
+ tree output2 = gimple_asm_output_op (g2, i);
+
+- if (!compare_tree_list_operand (output1, output2))
++ if (!compare_asm_inputs_outputs (output1, output2))
+ return return_false_with_msg ("ASM output is different");
+ }
+
+Index: gcc/ipa-icf-gimple.h
+===================================================================
+--- a/src/gcc/ipa-icf-gimple.h (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/ipa-icf-gimple.h (.../branches/gcc-7-branch)
+@@ -215,9 +215,9 @@
+ is returned. */
+ bool compare_operand (tree t1, tree t2);
+
+- /* Compares two tree list operands T1 and T2 and returns true if these
+- two trees are semantically equivalent. */
+- bool compare_tree_list_operand (tree t1, tree t2);
++ /* Compares GIMPLE ASM inputs (or outputs) where we iterate tree chain
++ and compare both TREE_PURPOSEs and TREE_VALUEs. */
++ bool compare_asm_inputs_outputs (tree t1, tree t2);
+
+ /* Verifies that trees T1 and T2, representing function declarations
+ are equivalent from perspective of ICF. */
+Index: gcc/opts-common.c
+===================================================================
+--- a/src/gcc/opts-common.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/opts-common.c (.../branches/gcc-7-branch)
+@@ -988,7 +988,8 @@
+ {
+ if (!handlers->handlers[i].handler (opts, opts_set, decoded,
+ lang_mask, kind, loc,
+- handlers, dc))
++ handlers, dc,
++ handlers->target_option_override_hook))
+ return false;
+ }
+
Index: gcc/c-family/c-cppbuiltin.c
===================================================================
--- a/src/gcc/c-family/c-cppbuiltin.c (.../tags/gcc_7_2_0_release)
@@ -5200,7 +5313,26 @@ Index: gcc/c-family/ChangeLog
===================================================================
--- a/src/gcc/c-family/ChangeLog (.../tags/gcc_7_2_0_release)
+++ b/src/gcc/c-family/ChangeLog (.../branches/gcc-7-branch)
-@@ -1,3 +1,18 @@
+@@ -1,3 +1,37 @@
++2017-09-15 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-08-29 Martin Liska <mliska at suse.cz>
++
++ PR other/39851
++ * c-common.c (parse_optimize_options): Add argument to function
++ call.
++ * c-pragma.c (handle_pragma_diagnostic): Likewise.
++
++2017-09-15 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-06-28 Martin Liska <mliska at suse.cz>
++
++ PR ipa/81128
++ * c-attribs.c (handle_alias_ifunc_attribute): Append ifunc alias
++ to a function declaration.
++
+2017-09-10 Jonathan Wakely <jwakely at redhat.com>
+
+ PR c++/81852
@@ -5219,6 +5351,19 @@ Index: gcc/c-family/ChangeLog
2017-08-14 Release Manager
* GCC 7.2.0 released.
+Index: gcc/c-family/c-common.c
+===================================================================
+--- a/src/gcc/c-family/c-common.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/c-family/c-common.c (.../branches/gcc-7-branch)
+@@ -5597,7 +5597,7 @@
+ /* And apply them. */
+ decode_options (&global_options, &global_options_set,
+ decoded_options, decoded_options_count,
+- input_location, global_dc);
++ input_location, global_dc, NULL);
+
+ targetm.override_options_after_change();
+
Index: gcc/c-family/c-omp.c
===================================================================
--- a/src/gcc/c-family/c-omp.c (.../tags/gcc_7_2_0_release)
@@ -5258,13 +5403,68 @@ Index: gcc/c-family/c-omp.c
}
if (!cond_ok)
+Index: gcc/c-family/c-pragma.c
+===================================================================
+--- a/src/gcc/c-family/c-pragma.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/c-family/c-pragma.c (.../branches/gcc-7-branch)
+@@ -815,7 +815,7 @@
+ }
+
+ struct cl_option_handlers handlers;
+- set_default_handlers (&handlers);
++ set_default_handlers (&handlers, NULL);
+ const char *arg = NULL;
+ if (cl_options[option_index].flags & CL_JOINED)
+ arg = option_string + 1 + cl_options[option_index].opt_len;
+Index: gcc/c-family/c-attribs.c
+===================================================================
+--- a/src/gcc/c-family/c-attribs.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/c-family/c-attribs.c (.../branches/gcc-7-branch)
+@@ -1764,9 +1764,14 @@
+ TREE_STATIC (decl) = 1;
+
+ if (!is_alias)
+- /* ifuncs are also aliases, so set that attribute too. */
+- DECL_ATTRIBUTES (decl)
+- = tree_cons (get_identifier ("alias"), args, DECL_ATTRIBUTES (decl));
++ {
++ /* ifuncs are also aliases, so set that attribute too. */
++ DECL_ATTRIBUTES (decl)
++ = tree_cons (get_identifier ("alias"), args,
++ DECL_ATTRIBUTES (decl));
++ DECL_ATTRIBUTES (decl) = tree_cons (get_identifier ("ifunc"),
++ NULL, DECL_ATTRIBUTES (decl));
++ }
+ }
+ else
+ {
+@@ -3029,6 +3034,19 @@
+ flags))
+ *no_add_attrs = true;
+
++ /* Check that there's no empty string in values of the attribute. */
++ for (tree t = args; t != NULL_TREE; t = TREE_CHAIN (t))
++ {
++ tree value = TREE_VALUE (t);
++ if (TREE_CODE (value) == STRING_CST
++ && TREE_STRING_LENGTH (value) == 1
++ && TREE_STRING_POINTER (value)[0] == '\0')
++ {
++ warning (OPT_Wattributes, "empty string in attribute %<target%>");
++ *no_add_attrs = true;
++ }
++ }
++
+ return NULL_TREE;
+ }
+
Index: gcc/DATESTAMP
===================================================================
--- a/src/gcc/DATESTAMP (.../tags/gcc_7_2_0_release)
+++ b/src/gcc/DATESTAMP (.../branches/gcc-7-branch)
@@ -1 +1 @@
-20170814
-+20170913
++20170915
Index: gcc/tree.c
===================================================================
--- a/src/gcc/tree.c (.../tags/gcc_7_2_0_release)
@@ -5429,6 +5629,16 @@ Index: gcc/gcc.c
VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o " CHKP_SPEC " \
%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
%:include(libgomp.spec)%(link_gomp)}\
+@@ -3742,7 +3742,8 @@
+ unsigned int lang_mask ATTRIBUTE_UNUSED, int kind,
+ location_t loc,
+ const struct cl_option_handlers *handlers ATTRIBUTE_UNUSED,
+- diagnostic_context *dc)
++ diagnostic_context *dc,
++ void (*) (void))
+ {
+ size_t opt_index = decoded->opt_index;
+ const char *arg = decoded->arg;
Index: gcc/fold-const.c
===================================================================
--- a/src/gcc/fold-const.c (.../tags/gcc_7_2_0_release)
@@ -5546,6 +5756,20 @@ Index: gcc/omp-low.c
}
virtual unsigned int execute (function *)
{
+Index: gcc/toplev.c
+===================================================================
+--- a/src/gcc/toplev.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/toplev.c (.../branches/gcc-7-branch)
+@@ -2115,7 +2115,8 @@
+ enough to default flags appropriately. */
+ decode_options (&global_options, &global_options_set,
+ save_decoded_options, save_decoded_options_count,
+- UNKNOWN_LOCATION, global_dc);
++ UNKNOWN_LOCATION, global_dc,
++ targetm.target_option.override);
+
+ handle_common_deferred_options ();
+
Index: gcc/tree-ssa-sccvn.c
===================================================================
--- a/src/gcc/tree-ssa-sccvn.c (.../tags/gcc_7_2_0_release)
@@ -5563,7 +5787,78 @@ Index: gcc/ChangeLog
===================================================================
--- a/src/gcc/ChangeLog (.../tags/gcc_7_2_0_release)
+++ b/src/gcc/ChangeLog (.../branches/gcc-7-branch)
-@@ -1,3 +1,355 @@
+@@ -1,3 +1,426 @@
++2017-09-15 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-09-14 Martin Liska <mliska at suse.cz>
++
++ * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
++ Add proper printf format.
++
++2017-09-15 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-08-30 Martin Liska <mliska at suse.cz>
++
++ PR inline-asm/82001
++ * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
++ Rename to ...
++ (func_checker::compare_asm_inputs_outputs): ... this function.
++ (func_checker::compare_gimple_asm): Use the function to compare
++ also ASM constrains.
++ * ipa-icf-gimple.h: Rename the function.
++
++2017-09-15 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-08-29 Martin Liska <mliska at suse.cz>
++
++ PR other/39851
++ * gcc.c (driver_handle_option): Add new argument.
++ * opts-common.c (handle_option): Pass
++ target_option_override_hook.
++ * opts-global.c (lang_handle_option): Add new option.
++ (set_default_handlers): Add new argument.
++ (decode_options): Likewise.
++ * opts.c (target_handle_option): Likewise.
++ (common_handle_option): Call target_option_override_hook.
++ * opts.h (struct cl_option_handler_func): Add hook for
++ target option override.
++ (struct cl_option_handlers): Likewise.
++ (set_default_handlers): Add new argument.
++ (decode_options): Likewise.
++ (common_handle_option): Likewise.
++ (target_handle_option): Likewise.
++ * toplev.c (toplev::main): Pass targetm.target_option.override
++ hook.
++
++2017-09-15 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-08-10 Martin Liska <mliska at suse.cz>
++
++ PR c++/81355
++ * c-attribs.c (handle_target_attribute):
++ Report warning for an empty string argument of target attribute.
++
++2017-09-15 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-08-08 Martin Liska <mliska at suse.cz>
++
++ PR tree-opt/81696
++ * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
++ LABEL_DECLs that can be from a different function.
++
++2017-09-15 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-06-28 Martin Liska <mliska at suse.cz>
++
++ PR ipa/81128
++ * ipa-visibility.c (non_local_p): Handle visibility.
++
+2017-09-12 Bill Schmidt <wschmidt at linux.vnet.ibm.com>
+
+ Backport from mainline
@@ -6651,6 +6946,76 @@ Index: gcc/testsuite/gcc.target/i386/pr81921.c
+{
+ volatile int x = _mm_loadu_si128 (p);
+}
+Index: gcc/testsuite/gcc.target/i386/pr81128.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/pr81128.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/pr81128.c (.../branches/gcc-7-branch)
+@@ -0,0 +1,65 @@
++/* PR ipa/81128 */
++/* { dg-do run } */
++/* { dg-options "-O3" } */
++/* { dg-require-ifunc "" } */
++
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <time.h>
++
++int resolver_fn = 0;
++int resolved_fn = 0;
++
++static inline void
++do_it_right_at_runtime_A ()
++{
++ resolved_fn++;
++}
++
++static inline void
++do_it_right_at_runtime_B ()
++{
++ resolved_fn++;
++}
++
++static inline void do_it_right_at_runtime (void);
++
++void do_it_right_at_runtime (void)
++ __attribute__ ((ifunc ("resolve_do_it_right_at_runtime")));
++
++static void (*resolve_do_it_right_at_runtime (void)) (void)
++{
++ srand (time (NULL));
++ int r = rand ();
++ resolver_fn++;
++
++ /* Use intermediate variable to get a warning for non-matching
++ * prototype. */
++ typeof(do_it_right_at_runtime) *func;
++ if (r & 1)
++ func = do_it_right_at_runtime_A;
++ else
++ func = do_it_right_at_runtime_B;
++
++ return (void *) func;
++}
++
++int
++main (void)
++{
++ const unsigned int ITERS = 10;
++
++ for (int i = ITERS; i > 0; i--)
++ {
++ do_it_right_at_runtime ();
++ }
++
++ if (resolver_fn != 1)
++ __builtin_abort ();
++
++ if (resolved_fn != 10)
++ __builtin_abort ();
++
++ return 0;
++}
Index: gcc/testsuite/gcc.target/i386/mpx/va-arg-pack-1-nov.c
===================================================================
--- a/src/gcc/testsuite/gcc.target/i386/mpx/va-arg-pack-1-nov.c (.../tags/gcc_7_2_0_release)
@@ -7552,6 +7917,21 @@ Index: gcc/testsuite/gnat.dg/specs/vfa1.ads
+ pragma Volatile_Full_Access (Rec_VFA);
+
+end VFA1;
+Index: gcc/testsuite/gcc.dg/gimplefe-14.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/gimplefe-14.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/gimplefe-14.c (.../branches/gcc-7-branch)
+@@ -7,7 +7,9 @@
+ int a;
+
+ bb_2:
+- switch (argc_2(D)) {default: L2; case 1: L0; case 2: L1; }
++ /* Because of PR82114 we need to handle also 0 as base metal can have
++ argc == 0. */
++ switch (argc_2(D)) {default: L2; case 0: L0; case 1: L0; case 2: L1; }
+
+ L0:
+ a_4 = 0;
Index: gcc/testsuite/gcc.dg/gomp/pr81768-2.c
===================================================================
--- a/src/gcc/testsuite/gcc.dg/gomp/pr81768-2.c (.../tags/gcc_7_2_0_release)
@@ -7704,6 +8084,63 @@ Index: gcc/testsuite/gcc.dg/pr81988.c
+ f[7] * h[i + 4]);
+ } while (c);
+}
+Index: gcc/testsuite/gcc.dg/ipa/pr82001.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/ipa/pr82001.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/ipa/pr82001.c (.../branches/gcc-7-branch)
+@@ -0,0 +1,21 @@
++/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
++/* { dg-options "-O2 -fdump-ipa-icf-details" } */
++
++int
++mullo (int a, int b)
++{
++ asm("mul %%edx # %%1 was %1"
++ : "+"
++ "a"(a),
++ "+d"(b));
++ return a;
++}
++
++int
++mulhi (int a, int b)
++{
++ asm("mul %%edx # %%1 was %1" : "+d"(a), "+a"(b));
++ return a;
++}
++
++/* { dg-final { scan-ipa-dump "Equal symbols: 0" "icf" } } */
+Index: gcc/testsuite/gcc.dg/ipa/pr81696.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/ipa/pr81696.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/ipa/pr81696.c (.../branches/gcc-7-branch)
+@@ -0,0 +1,26 @@
++/* { dg-options "-O2 -fdump-ipa-icf-details" } */
++
++int
++main (int argc, char **argv)
++{
++ __label__ lab4, lab5, lab6;
++
++ void foo (void) { goto lab4; }
++ void foo2 (void) { goto lab4; }
++ void bar (void) { goto lab5; }
++ void baz (void) { goto lab6; }
++
++ if (argc)
++ foo ();
++ else
++ foo2 ();
++
++ lab4:;
++ bar ();
++ lab5:;
++ baz ();
++ lab6:;
++ return 0;
++}
++
++/* { dg-final { scan-ipa-dump "Equal symbols: 1" "icf" } } */
Index: gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-7.c
===================================================================
--- a/src/gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-7.c (.../tags/gcc_7_2_0_release)
@@ -7718,7 +8155,56 @@ 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,277 @@
+@@ -1,3 +1,326 @@
++2017-09-15 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-09-12 Martin Liska <mliska at suse.cz>
++
++ PR testsuite/82114
++ * gcc.dg/gimplefe-14.c (main): Add handling of case 0.
++
++2017-09-15 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-08-30 Martin Liska <mliska at suse.cz>
++
++ PR inline-asm/82001
++ * gcc.dg/ipa/pr82001.c: New test.
++
++2017-09-15 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-08-10 Martin Liska <mliska at suse.cz>
++
++ PR c++/81355
++ * g++.dg/other/pr81355.C: New test.
++
++2017-09-15 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-08-08 Martin Liska <mliska at suse.cz>
++
++ PR tree-opt/81696
++ * gcc.dg/ipa/pr81696.c: New test.
++
++2017-09-15 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-07-19 Martin Liska <mliska at suse.cz>
++
++ PR sanitizer/63361
++ * c-c++-common/ubsan/float-cast-overflow-1.c: Add either
++ -ffloat-store or -mieee for targets that need it.
++
++2017-09-15 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-06-28 Martin Liska <mliska at suse.cz>
++
++ PR ipa/81128
++ * gcc.target/i386/pr81128.c: New test.
++
+2017-09-12 Bill Schmidt <wschmidt at linux.vnet.ibm.com>
+
+ Backport from mainline
@@ -8318,6 +8804,25 @@ Index: gcc/testsuite/g++.dg/other/bitfield6.C
+} d;
+
+char f = (903092 ? int(d.c) : 0) << a;
+Index: gcc/testsuite/g++.dg/other/pr81355.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/other/pr81355.C (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/other/pr81355.C (.../branches/gcc-7-branch)
+@@ -0,0 +1,14 @@
++/* { dg-do compile { target x86_64-*-* } } */
++
++__attribute__((target("default")))
++int foo() {return 1;}
++
++__attribute__((target("arch=core2", "")))
++int foo2() {return 2;} /* { dg-warning "empty string in attribute .target." } */
++
++__attribute__((target("sse4.2", "", "")))
++int foo3() {return 2;} /* { dg-warning "empty string in attribute .target." } */
++
++int main() {
++ return foo() + foo2() + foo3();
++}
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)
@@ -8390,6 +8895,19 @@ Index: gcc/testsuite/c-c++-common/ubsan/pr81088.c
+ i = -(s + (int)(~(unsigned)(0 / y))) + 0x7fffffff;
+ return 0;
+}
+Index: gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-1.c
+===================================================================
+--- a/src/gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-1.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-1.c (.../branches/gcc-7-branch)
+@@ -1,6 +1,7 @@
+ /* { dg-do run { target { lp64 || ilp32 } } } */
+ /* { dg-options "-fsanitize=float-cast-overflow" } */
+-/* { dg-additional-options "-msse2 -mfpmath=sse" { target { sse2_runtime && ia32 } } } */
++/* { dg-additional-options "-ffloat-store" { target { ia32 } } } */
++/* { dg-additional-options "-mieee" { target { { alpha*-*-* } || { sh*-*-* } } } } */
+
+ #include <limits.h>
+ #include "float-cast.h"
Index: gcc/testsuite/c-c++-common/pr81052.c
===================================================================
--- a/src/gcc/testsuite/c-c++-common/pr81052.c (.../tags/gcc_7_2_0_release)
@@ -8870,6 +9388,121 @@ Index: gcc/dwarf2out.c
{
dw_loc_descr_ref loc = NULL;
if (! early_dwarf
+Index: gcc/opts.c
+===================================================================
+--- a/src/gcc/opts.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/opts.c (.../branches/gcc-7-branch)
+@@ -217,7 +217,7 @@
+ unsigned int lang_mask ATTRIBUTE_UNUSED, int kind,
+ location_t loc,
+ const struct cl_option_handlers *handlers ATTRIBUTE_UNUSED,
+- diagnostic_context *dc)
++ diagnostic_context *dc, void (*) (void))
+ {
+ gcc_assert (dc == global_dc);
+ gcc_assert (kind == DK_UNSPECIFIED);
+@@ -1678,7 +1678,8 @@
+ unsigned int lang_mask, int kind ATTRIBUTE_UNUSED,
+ location_t loc,
+ const struct cl_option_handlers *handlers,
+- diagnostic_context *dc)
++ diagnostic_context *dc,
++ void (*target_option_override_hook) (void))
+ {
+ size_t scode = decoded->opt_index;
+ const char *arg = decoded->arg;
+@@ -1705,6 +1706,7 @@
+ undoc_mask = ((opts->x_verbose_flag | opts->x_extra_warnings)
+ ? 0
+ : CL_UNDOCUMENTED);
++ target_option_override_hook ();
+ /* First display any single language specific options. */
+ for (i = 0; i < cl_lang_count; i++)
+ print_specific_help
+@@ -1724,6 +1726,7 @@
+ if (lang_mask == CL_DRIVER)
+ break;
+
++ target_option_override_hook ();
+ print_specific_help (CL_TARGET, CL_UNDOCUMENTED, 0, opts, lang_mask);
+ opts->x_exit_after_options = true;
+ break;
+@@ -1850,8 +1853,11 @@
+ }
+
+ if (include_flags)
+- print_specific_help (include_flags, exclude_flags, 0, opts,
+- lang_mask);
++ {
++ target_option_override_hook ();
++ print_specific_help (include_flags, exclude_flags, 0, opts,
++ lang_mask);
++ }
+ opts->x_exit_after_options = true;
+ break;
+ }
+Index: gcc/opts.h
+===================================================================
+--- a/src/gcc/opts.h (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/opts.h (.../branches/gcc-7-branch)
+@@ -267,7 +267,8 @@
+ const struct cl_decoded_option *decoded,
+ unsigned int lang_mask, int kind, location_t loc,
+ const struct cl_option_handlers *handlers,
+- diagnostic_context *dc);
++ diagnostic_context *dc,
++ void (*target_option_override_hook) (void));
+
+ /* The mask that must have some bit in common with the flags for the
+ option for this particular handler to be used. */
+@@ -289,6 +290,9 @@
+ void (*wrong_lang_callback) (const struct cl_decoded_option *decoded,
+ unsigned int lang_mask);
+
++ /* Target option override hook. */
++ void (*target_option_override_hook) (void);
++
+ /* The number of individual handlers. */
+ size_t num_handlers;
+
+@@ -333,13 +337,15 @@
+ const char **argv,
+ struct cl_decoded_option **decoded_options,
+ unsigned int *decoded_options_count);
+-extern void set_default_handlers (struct cl_option_handlers *handlers);
++extern void set_default_handlers (struct cl_option_handlers *handlers,
++ void (*target_option_override_hook) (void));
+ extern void decode_options (struct gcc_options *opts,
+ struct gcc_options *opts_set,
+ struct cl_decoded_option *decoded_options,
+ unsigned int decoded_options_count,
+ location_t loc,
+- diagnostic_context *dc);
++ diagnostic_context *dc,
++ void (*target_option_override_hook) (void));
+ extern int option_enabled (int opt_idx, void *opts);
+ extern bool get_option_state (struct gcc_options *, int,
+ struct cl_option_state *);
+@@ -384,7 +390,8 @@
+ unsigned int lang_mask, int kind,
+ location_t loc,
+ const struct cl_option_handlers *handlers,
+- diagnostic_context *dc);
++ diagnostic_context *dc,
++ void (*target_option_override_hook) (void));
+ extern bool target_handle_option (struct gcc_options *opts,
+ struct gcc_options *opts_set,
+ const struct cl_decoded_option *decoded,
+@@ -391,7 +398,8 @@
+ unsigned int lang_mask, int kind,
+ location_t loc,
+ const struct cl_option_handlers *handlers,
+- diagnostic_context *dc);
++ diagnostic_context *dc,
++ void (*target_option_override_hook) (void));
+ extern void finish_options (struct gcc_options *opts,
+ struct gcc_options *opts_set,
+ location_t loc);
Index: gcc/ada/sem_ch3.adb
===================================================================
--- a/src/gcc/ada/sem_ch3.adb (.../tags/gcc_7_2_0_release)
@@ -8933,7 +9566,15 @@ 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,50 @@
+@@ -1,3 +1,58 @@
++2017-09-15 Martin Liska <mliska at suse.cz>
++
++ Backport from mainline
++ 2017-08-29 Martin Liska <mliska at suse.cz>
++
++ PR other/39851
++ * gcc-interface/trans.c (Pragma_to_gnu): Set argument to NULL.
++
+2017-09-09 Eric Botcazou <ebotcazou at adacore.com>
+
+ * gcc-interface/decl.c (promote_object_alignment): New function taken
@@ -9281,6 +9922,15 @@ Index: gcc/ada/gcc-interface/trans.c
===================================================================
--- a/src/gcc/ada/gcc-interface/trans.c (.../tags/gcc_7_2_0_release)
+++ b/src/gcc/ada/gcc-interface/trans.c (.../branches/gcc-7-branch)
+@@ -1477,7 +1477,7 @@
+ else
+ option_index = 0;
+
+- set_default_handlers (&handlers);
++ set_default_handlers (&handlers, NULL);
+ control_warning_option (option_index, (int) kind, arg, imply, location,
+ lang_mask, &handlers, &global_options,
+ &global_options_set, global_dc);
@@ -4058,8 +4058,6 @@
case N_Identifier:
case N_Expanded_Name:
@@ -9608,7 +10258,7 @@ Index: gcc/gimple-ssa-strength-reduction.c
print_gimple_stmt (dump_file, cast_stmt, 0, 0);
}
- fprintf (dump_file, "Inserting in block %d: ", insert_bb->index);
-+ fprintf (dump_file, "Inserting in block %d: ", e->src->index,
++ fprintf (dump_file, "Inserting on edge %d->%d: ", e->src->index,
+ e->dest->index);
print_gimple_stmt (dump_file, new_stmt, 0, 0);
}
@@ -311977,6 +312627,53 @@ Index: gcc/config.gcc
tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
;;
powerpc*-*-linux*)
+Index: gcc/opts-global.c
+===================================================================
+--- a/src/gcc/opts-global.c (.../tags/gcc_7_2_0_release)
++++ b/src/gcc/opts-global.c (.../branches/gcc-7-branch)
+@@ -167,7 +167,8 @@
+ unsigned int lang_mask ATTRIBUTE_UNUSED, int kind,
+ location_t loc,
+ const struct cl_option_handlers *handlers,
+- diagnostic_context *dc)
++ diagnostic_context *dc,
++ void (*) (void))
+ {
+ gcc_assert (opts == &global_options);
+ gcc_assert (opts_set == &global_options_set);
+@@ -267,10 +268,12 @@
+ /* Set *HANDLERS to the default set of option handlers for use in the
+ compilers proper (not the driver). */
+ void
+-set_default_handlers (struct cl_option_handlers *handlers)
++set_default_handlers (struct cl_option_handlers *handlers,
++ void (*target_option_override_hook) (void))
+ {
+ handlers->unknown_option_callback = unknown_option_callback;
+ handlers->wrong_lang_callback = complain_wrong_lang;
++ handlers->target_option_override_hook = target_option_override_hook;
+ handlers->num_handlers = 3;
+ handlers->handlers[0].handler = lang_handle_option;
+ handlers->handlers[0].mask = initial_lang_mask;
+@@ -288,7 +291,8 @@
+ decode_options (struct gcc_options *opts, struct gcc_options *opts_set,
+ struct cl_decoded_option *decoded_options,
+ unsigned int decoded_options_count,
+- location_t loc, diagnostic_context *dc)
++ location_t loc, diagnostic_context *dc,
++ void (*target_option_override_hook) (void))
+ {
+ struct cl_option_handlers handlers;
+
+@@ -296,7 +300,7 @@
+
+ lang_mask = initial_lang_mask;
+
+- set_default_handlers (&handlers);
++ set_default_handlers (&handlers, target_option_override_hook);
+
+ default_options_optimization (opts, opts_set,
+ decoded_options, decoded_options_count,
Index: gcc/tree-cfg.c
===================================================================
--- a/src/gcc/tree-cfg.c (.../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