[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