[gcc-6] 159/401: * Update to SVN 20160609 (r237267, 6.1.1) from the gcc-6-branch.

Ximin Luo infinity0 at debian.org
Wed Apr 5 15:48:46 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 7741c7b1025314f8677acf8ae007e8a5da0d58f9
Author: doko <doko at 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>
Date:   Thu Jun 9 16:22:33 2016 +0000

      * Update to SVN 20160609 (r237267, 6.1.1) from the gcc-6-branch.
    
    
    git-svn-id: svn://anonscm.debian.org/gcccvs/branches/sid/gcc-6@8881 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
---
 debian/changelog                |    8 +-
 debian/patches/svn-updates.diff | 4625 ++++++++++++++++++++++++++++++++++++---
 2 files changed, 4280 insertions(+), 353 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 3124fc7..0d49b0a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,14 @@
 gcc-6 (6.1.1-6) unstable; urgency=medium
 
+  * Update to SVN 20160609 (r237267, 6.1.1) from the gcc-6-branch.
+    - Fix PR target/71389 (x86), PR tree-optimization/71259,
+      PR target/70830 (ARM), PR target/67310 (x86), PR c++/71442,
+      PR c++/70847, PR c++/71330, PR c++/71393, PR fortran/69659.
   * gdc: Fix linking the runtime library. Addresses: #826645.
+  * Fix building libgnatprj on powerpc, and on PIE enabled builds (YunQiang Su).
+    Closes: #826365.
 
- -- Matthias Klose <doko at debian.org>  Tue, 07 Jun 2016 19:55:01 +0200
+ -- Matthias Klose <doko at debian.org>  Thu, 09 Jun 2016 18:19:42 +0200
 
 gcc-6 (6.1.1-5) unstable; urgency=medium
 
diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff
index 19a6a15..86ff355 100644
--- a/debian/patches/svn-updates.diff
+++ b/debian/patches/svn-updates.diff
@@ -1,10 +1,10 @@
-# DP: updates from the 6 branch upto 20160603 (r237075).
+# DP: updates from the 6 branch upto 20160609 (r237267).
 
 last_update()
 {
 	cat > ${dir}LAST_UPDATED <EOF
-Fri Jun  3 18:53:33 CEST 2016
-Fri Jun  3 16:53:33 UTC 2016 (revision 237075)
+Thu Jun  9 18:08:42 CEST 2016
+Thu Jun  9 16:08:42 UTC 2016 (revision 237267)
 EOF
 }
 
@@ -3360,7 +3360,7 @@ Index: gcc/DATESTAMP
 +++ b/src/gcc/DATESTAMP	(.../branches/gcc-6-branch)
 @@ -1 +1 @@
 -20160427
-+20160603
++20160609
 Index: gcc/tree.h
 ===================================================================
 --- a/src/gcc/tree.h	(.../tags/gcc_6_1_0_release)
@@ -3383,6 +3383,53 @@ Index: gcc/tree.h
  extern tree strip_float_extensions (tree);
  extern int really_constant_p (const_tree);
  extern bool decl_address_invariant_p (const_tree);
+Index: gcc/configure
+===================================================================
+--- a/src/gcc/configure	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/configure	(.../branches/gcc-6-branch)
+@@ -25092,6 +25092,42 @@
+ 
+ fi
+ 
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for SPARC5 and VIS 4.0 instructions" >&5
++$as_echo_n "checking assembler for SPARC5 and VIS 4.0 instructions... " >&6; }
++if test "${gcc_cv_as_sparc_sparc5+set}" = set; then :
++  $as_echo_n "(cached) " >&6
++else
++  gcc_cv_as_sparc_sparc5=no
++  if test x$gcc_cv_as != x; then
++    $as_echo '.text
++       .register %g2, #scratch
++       .register %g3, #scratch
++       .align 4
++       subxc %g1, %g2, %g3
++       fpadd8 %f0, %f2, %f4' > conftest.s
++    if { ac_try='$gcc_cv_as $gcc_cv_as_flags -xarch=sparc5 -o conftest.o conftest.s >&5'
++  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; }; }
++    then
++	gcc_cv_as_sparc_sparc5=yes
++    else
++      echo "configure: failed program was" >&5
++      cat conftest.s >&5
++    fi
++    rm -f conftest.o conftest.s
++  fi
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_sparc_sparc5" >&5
++$as_echo "$gcc_cv_as_sparc_sparc5" >&6; }
++if test $gcc_cv_as_sparc_sparc5 = yes; then
++
++$as_echo "#define HAVE_AS_SPARC5_VIS4 1" >>confdefs.h
++
++fi
++
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for LEON instructions" >&5
+ $as_echo_n "checking assembler for LEON instructions... " >&6; }
+ if test "${gcc_cv_as_sparc_leon+set}" = set; then :
 Index: gcc/fold-const.c
 ===================================================================
 --- a/src/gcc/fold-const.c	(.../tags/gcc_6_1_0_release)
@@ -3634,7 +3681,171 @@ Index: gcc/ChangeLog
 ===================================================================
 --- a/src/gcc/ChangeLog	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,850 @@
+@@ -1,3 +1,1014 @@
++2016-06-08  Jose E. Marchesi  <jose.marchesi at oracle.com>
++
++	Backport from mainline
++	2016-06-08  Jose E. Marchesi  <jose.marchesi at oracle.com>
++
++	* config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
++	SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
++
++2016-06-08  Eric Botcazou  <ebotcazou at adacore.com>
++
++	Backport from mainline
++	2016-06-06  Jose E. Marchesi  <jose.marchesi at oracle.com>
++
++	* config/sparc/sparc.md (cpu): Add niagara7 cpu type.
++	Include the M7 SPARC DFA scheduler.
++	New attribute v3pipe.
++	Annotate insns with v3pipe where appropriate.
++	Define cpu_feature vis4.
++	Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
++	Add (V8QI "8") to vbits.
++	Add insns {add,sub}v8qi3
++	Add insns ss{add,sub}v8qi3
++	Add insns us{add,sub}{v8qi,v4hi}3
++	Add insns {min,max}{v8qi,v4hi,v2si}3
++	Add insns {minu,maxu}{v8qi,v4hi,v2si}3
++	Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
++	* config/sparc/niagara4.md: Add a comment explaining the
++	discrepancy between the documented latenty numbers and the
++	implemented ones.
++	* config/sparc/niagara7.md: New file.
++	* configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
++	supports SPARC5 and VIS 4.0 instructions.
++	* configure: Regenerate.
++	* config.in: Likewise.
++	* config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
++	* config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
++	TARGET_CPU_niagara7.
++	(ASM_CPU64_DEFAULT_SPEC): Likewise.
++	(CPP_CPU_SPEC): Handle niagara7.
++	(ASM_CPU_SPEC): Likewise.
++	* config/sparc/sparc-opts.h (processor_type): Add
++	PROCESSOR_NIAGARA7.
++	(mvis4): New option.
++	* config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
++	(AS_NIAGARA7_FLAG): Define.
++	(ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
++	(CPP_CPU64_DEFAULT_SPEC): Likewise.
++	(CPP_CPU_SPEC): Handle niagara7.
++	(ASM_CPU_SPEC): Likewise.
++	* config/sparc/sparc.c (niagara7_costs): Define.
++	(sparc_option_override): Handle niagara7 and adjust cache-related
++	parameters with better values for niagara cpus.  Also support VIS4.
++	(sparc32_initialize_trampoline): Likewise.
++	(sparc_use_sched_lookahead): Likewise.
++	(sparc_issue_rate): Likewise.
++	(sparc_register_move_cost): Likewise.
++	(dump_target_flag_bits): Support VIS4.
++	(sparc_vis_init_builtins): Likewise.
++	(sparc_builtins): Likewise.
++	* config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
++	VIS4 4.0.
++	* config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
++	UltraSparc M7.
++	* config/sparc/sparc.opt (sparc_processor_type): New value
++	niagara7.
++	* config/sparc/visintrin.h (__attribute__): Prototypes for the
++	VIS4 builtins.
++	* doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
++	-mvis4.
++	* doc/extend.texi (SPARC VIS Built-in Functions): Document the
++	VIS4 builtins.
++
++	2016-05-30  Jose E. Marchesi  <jose.marchesi at oracle.com>
++
++	* config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
++	tune_64.
++	* doc/install.texi (--with-cpu-32, --with-cpu-64): Document
++	support on SPARC.
++	* config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
++	cpu_32, cpu_64, tune_32 and tune_64.
++	* config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
++
++2016-06-08  Ilya Verbin  <ilya.verbin at intel.com>
++
++	Backport from mainline
++	2016-05-25  Ilya Verbin  <ilya.verbin at intel.com>
++
++	* config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
++	V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
++	* config/i386/i386.c (enum ix86_builtins): Add
++	IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
++	IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
++	IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
++	IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
++	IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
++	IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
++	(builtin_description bdesc_args): Add __builtin_ia32_floorps512,
++	__builtin_ia32_ceilps512, __builtin_ia32_truncps512,
++	__builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
++	__builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
++	__builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
++	__builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
++	Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
++	__builtin_ia32_cvtps2dq512_mask.
++	(ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
++	V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
++	(ix86_builtin_vectorized_function): Handle builtins mentioned above.
++	* config/i386/sse.md
++	(<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
++	Rename to ...
++	(avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
++	(<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
++	to ...
++	(avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
++	(avx512f_vec_pack_sfix_v8df): New define_expand.
++	(avx512f_roundpd512): Rename to ...
++	(avx512f_round<castmode>512): ... this.  Change iterator.
++	(avx512f_roundps512_sfix): New define_expand.
++	(round<mode>2_sfix): Change iterator.
++
++2016-06-07  Peter Bergner  <bergner at vnet.ibm.com>
++
++	Backport from mainline
++	2016-06-07  Peter Bergner  <bergner at vnet.ibm.com>
++
++	* doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
++	-mno-htm.
++
++2016-06-07  Uros Bizjak  <ubizjak at gmail.com>
++
++	PR target/71389
++	* config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
++	Copy op1 RTX to avoid invalid sharing.
++	(ix86_expand_vector_move_misalign): Ditto.
++
++2016-06-06  Jakub Jelinek  <jakub at redhat.com>
++
++	PR tree-optimization/71259
++	* tree-vect-slp.c (vect_get_constant_vectors): For
++	VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
++	one for constant op, and use COND_EXPR for non-constant.
++
++2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov at arm.com>
++
++	Backport from trunk
++	2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov at arm.com>
++
++	PR target/70830
++	* config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
++
++2016-06-05  Uros Bizjak  <ubizjak at gmail.com>
++
++	Backport from mainline
++	2016-06-01  Uros Bizjak  <ubizjak at gmail.com>
++		    Jocelyn Mayer  <l_indien at magic.fr>
++
++	PR target/67310
++	* config/i386/driver-i386.c (host_detect_local_cpu): Correctly
++	detect processor family for signature_CENTAUR_ebx.
++	<case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
++	signature_CENTAUR_ebx.
++	<case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
++	<default>: Pass x86-64 for has_longmode.
++
 +2016-06-03  Jakub Jelinek  <jakub at redhat.com>
 +
 +	PR middle-end/71387
@@ -3955,7 +4166,7 @@ Index: gcc/ChangeLog
 +2016-05-30  Andreas Tobler  <andreast at gcc.gnu.org>
 +
 +	Backport from mainline
-+        2016-05-30  Andreas Tobler  <andreast at gcc.gnu.org>
++	2016-05-30  Andreas Tobler  <andreast at gcc.gnu.org>
 +
 +	* config.gcc: Move hard float support for arm*hf*-*-freebsd* into
 +	armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
@@ -4485,7 +4696,7 @@ Index: gcc/ChangeLog
  2016-04-27  Release Manager
  
  	* GCC 6.1.0 released.
-@@ -49,7 +896,7 @@
+@@ -49,7 +1060,7 @@
  	constant boolean.
  
  2016-04-20  Andrew Pinski  <apinski at cavium.com>
@@ -6282,6 +6493,196 @@ Index: gcc/testsuite/gcc.target/arm/pr70830.c
 +    prints("IRQ" );
 +}
 +/* { dg-final { scan-assembler "ldmfd\tsp!, {r0, r1, r2, r3, ip, pc}\\^" } } */
+Index: gcc/testsuite/gcc.target/sparc/fpcmpu.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/sparc/fpcmpu.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/sparc/fpcmpu.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,31 @@
++/* { dg-do compile } */
++/* { dg-options "-mvis4" } */
++
++
++typedef short vec16 __attribute__((vector_size(8)));
++typedef int vec32 __attribute__((vector_size(8)));
++
++long test_fpcmpule16 (vec16 a, vec16 b)
++{
++  return __builtin_vis_fpcmpule16 (a, b);
++}
++
++long test_fpcmpugt16 (vec16 a, vec16 b)
++{
++  return __builtin_vis_fpcmpugt16 (a, b);
++}
++
++long test_fpcmpule32 (vec32 a, vec32 b)
++{
++  return __builtin_vis_fpcmpule32 (a, b);
++}
++
++long test_fpcmpugt32 (vec32 a, vec32 b)
++{
++  return __builtin_vis_fpcmpugt32 (a, b);
++}
++
++/* { dg-final { scan-assembler "fpcmpule16\t%" } } */
++/* { dg-final { scan-assembler "fpcmpugt16\t%" } } */
++/* { dg-final { scan-assembler "fpcmpule32\t%" } } */
++/* { dg-final { scan-assembler "fpcmpugt32\t%" } } */
+Index: gcc/testsuite/gcc.target/sparc/fpcmp.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/sparc/fpcmp.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/sparc/fpcmp.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,18 @@
++/* { dg-do compile } */
++/* { dg-options "-mvis4" } */
++
++typedef unsigned char vec8 __attribute__((vector_size(8)));
++
++long test_fpcmple8 (vec8 a, vec8 b)
++{
++  return __builtin_vis_fpcmple8 (a, b);
++}
++
++long test_fpcmpgt8 (vec8 a, vec8 b)
++{
++  return __builtin_vis_fpcmpgt8 (a, b);
++}
++
++/* { dg-final { scan-assembler "fpcmple8\t%" } } */
++/* { dg-final { scan-assembler "fpcmpgt8\t%" } } */
++
+Index: gcc/testsuite/gcc.target/sparc/vis4misc.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/sparc/vis4misc.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/sparc/vis4misc.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,126 @@
++/* { dg-do compile } */
++/* { dg-options "-mvis4" } */
++typedef int __v2si __attribute__((vector_size(8)));
++typedef short __v4hi __attribute__((vector_size(8)));
++typedef unsigned char __v8qi __attribute__((vector_size(8)));
++
++__v8qi test_fpadd8 (__v8qi x, __v8qi y)
++{
++  return __builtin_vis_fpadd8 (x, y);
++}
++
++__v8qi test_fpadds8 (__v8qi x, __v8qi y)
++{
++  return __builtin_vis_fpadds8 (x, y);
++}
++
++__v8qi test_fpaddus8 (__v8qi x, __v8qi y)
++{
++  return __builtin_vis_fpaddus8 (x, y);
++}
++
++__v4hi test_fpaddus16 (__v4hi x, __v4hi y)
++{
++  return __builtin_vis_fpaddus16 (x, y);
++}
++
++__v8qi test_fpsub8 (__v8qi x, __v8qi y)
++{
++  return __builtin_vis_fpsub8 (x, y);
++}
++
++__v8qi test_fpsubs8 (__v8qi x, __v8qi y)
++{
++  return __builtin_vis_fpsubs8 (x, y);
++}
++
++__v8qi test_fpsubus8 (__v8qi x, __v8qi y)
++{
++  return __builtin_vis_fpsubus8 (x, y);
++}
++
++__v4hi test_fpsubus16 (__v4hi x, __v4hi y)
++{
++  return __builtin_vis_fpsubus16 (x, y);
++}
++
++__v8qi test_fpmax8 (__v8qi x, __v8qi y)
++{
++  return __builtin_vis_fpmax8 (x, y);
++}
++
++__v4hi test_fpmax16 (__v4hi x, __v4hi y)
++{
++  return __builtin_vis_fpmax16 (x, y);
++}
++
++__v2si test_fpmax32 (__v2si x, __v2si y)
++{
++  return __builtin_vis_fpmax32 (x, y);
++}
++
++__v8qi test_fpmaxu8 (__v8qi x, __v8qi y)
++{
++  return __builtin_vis_fpmaxu8 (x, y);
++}
++
++__v4hi test_fpmaxu16 (__v4hi x, __v4hi y)
++{
++  return __builtin_vis_fpmaxu16 (x, y);
++}
++
++__v2si test_fpmaxu32 (__v2si x, __v2si y)
++{
++  return __builtin_vis_fpmaxu32 (x, y);
++}
++
++__v8qi test_fpmin8 (__v8qi x, __v8qi y)
++{
++  return __builtin_vis_fpmin8 (x, y);
++}
++
++__v4hi test_fpmin16 (__v4hi x, __v4hi y)
++{
++  return __builtin_vis_fpmin16 (x, y);
++}
++
++__v2si test_fpmin32 (__v2si x, __v2si y)
++{
++  return __builtin_vis_fpmin32 (x, y);
++}
++
++__v8qi test_fpminu8 (__v8qi x, __v8qi y)
++{
++  return __builtin_vis_fpminu8 (x, y);
++}
++
++__v4hi test_fpminu16 (__v4hi x, __v4hi y)
++{
++  return __builtin_vis_fpminu16 (x, y);
++}
++
++__v2si test_fpminu32 (__v2si x, __v2si y)
++{
++  return __builtin_vis_fpminu32 (x, y);
++}
++
++/* { dg-final { scan-assembler "fpadd8\t%" } } */
++/* { dg-final { scan-assembler "fpadds8\t%" } } */
++/* { dg-final { scan-assembler "fpaddus8\t%" } } */
++/* { dg-final { scan-assembler "fpaddus16\t%" } } */
++/* { dg-final { scan-assembler "fpsub8\t%" } } */
++/* { dg-final { scan-assembler "fpsubs8\t%" } } */
++/* { dg-final { scan-assembler "fpsubus8\t%" } } */
++/* { dg-final { scan-assembler "fpsubus16\t%" } } */
++/* { dg-final { scan-assembler "fpmax8\t%" } } */
++/* { dg-final { scan-assembler "fpmax16\t%" } } */
++/* { dg-final { scan-assembler "fpmax32\t%" } } */
++/* { dg-final { scan-assembler "fpmaxu8\t%" } } */
++/* { dg-final { scan-assembler "fpmaxu16\t%" } } */
++/* { dg-final { scan-assembler "fpmaxu32\t%" } } */
++/* { dg-final { scan-assembler "fpmin8\t%" } } */
++/* { dg-final { scan-assembler "fpmin16\t%" } } */
++/* { dg-final { scan-assembler "fpmin32\t%" } } */
++/* { dg-final { scan-assembler "fpminu8\t%" } } */
++/* { dg-final { scan-assembler "fpminu16\t%" } } */
++/* { dg-final { scan-assembler "fpminu32\t%" } } */
 Index: gcc/testsuite/gcc.target/aarch64/noplt_3.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/aarch64/noplt_3.c	(.../tags/gcc_6_1_0_release)
@@ -6331,6 +6732,154 @@ Index: gcc/testsuite/gcc.target/aarch64/tail_indirect_call_1.c
  void
  f1 (FP fp, int n)
  {
+Index: gcc/testsuite/gcc.target/i386/avx512f-floorf-vec-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-floorf-vec-2.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-floorf-vec-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,6 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++
++#include "avx512f-floorf-vec-1.c"
++
++/* { dg-final { scan-assembler-times "vrndscaleps\[^\n\]+zmm\[0-9\](?:\n|\[ \\t\]+#)" 1 } } */
+Index: gcc/testsuite/gcc.target/i386/avx512f-ceilf-vec-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-ceilf-vec-2.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-ceilf-vec-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,6 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++
++#include "avx512f-ceilf-vec-1.c"
++
++/* { dg-final { scan-assembler-times "vrndscaleps\[^\n\]+zmm\[0-9\](?:\n|\[ \\t\]+#)" 1 } } */
+Index: gcc/testsuite/gcc.target/i386/avx512f-floorf-sfix-vec-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-floorf-sfix-vec-2.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-floorf-sfix-vec-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,7 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++
++#include "avx512f-floorf-sfix-vec-1.c"
++
++/* { dg-final { scan-assembler-times "vrndscaleps\[^\n\]+zmm\[0-9\](?:\n|\[ \\t\]+#)" 1 } } */
++/* { dg-final { scan-assembler-times "vcvttps2dq\[^\n\]+zmm\[0-9\].{7}(?:\n|\[ \\t\]+#)" 1 } } */
+Index: gcc/testsuite/gcc.target/i386/avx512f-floor-vec-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-floor-vec-1.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-floor-vec-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,52 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++/* { dg-require-effective-target avx512f } */
++/* { dg-skip-if "no M_PI" { vxworks_kernel } } */
++
++#define __NO_MATH_INLINES
++#include <math.h>
++#include "avx512f-check.h"
++
++#define NUM 64
++
++static void
++__attribute__((__target__("fpmath=sse")))
++init_src (double *src)
++{
++  int i, sign = 1;
++  double f = rand ();
++
++  for (i = 0; i < NUM; i++)
++    {
++      src[i] = (i + 1) * f * M_PI * sign;
++      if (i < (NUM / 2))
++	{
++          if ((i % 6) == 0)
++	    f = f * src[i];
++        }
++      else if (i == (NUM / 2))
++	f = rand ();
++      else if ((i % 6) == 0)
++	f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
++      sign = -sign;
++    }
++}
++
++static void
++__attribute__((__target__("fpmath=387")))
++avx512f_test (void)
++{
++  double a[NUM];
++  double r[NUM];
++  int i;
++
++  init_src (a);
++
++  for (i = 0; i < NUM; i++)
++    r[i] = floor (a[i]);
++
++  /* check results:  */
++  for (i = 0; i < NUM; i++)
++    if (r[i] != floor (a[i]))
++      abort();
++}
+Index: gcc/testsuite/gcc.target/i386/avx512f-rintf-sfix-vec-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-rintf-sfix-vec-1.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-rintf-sfix-vec-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,52 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++/* { dg-require-effective-target avx512f } */
++/* { dg-skip-if "no M_PI" { vxworks_kernel } } */
++
++#define __NO_MATH_INLINES
++#include <math.h>
++#include "avx512f-check.h"
++
++#define NUM 64
++
++static void
++__attribute__((__target__("fpmath=sse")))
++init_src (float *src)
++{
++  int i, sign = 1;
++  float f = rand ();
++
++  for (i = 0; i < NUM; i++)
++    {
++      src[i] = (i + 1) * f * M_PI * sign;
++      if (i < (NUM / 2))
++	{
++          if ((i % 6) == 0)
++	    f = f * src[i];
++        }
++      else if (i == (NUM / 2))
++	f = rand ();
++      else if ((i % 6) == 0)
++	f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
++      sign = -sign;
++    }
++}
++
++static void
++__attribute__((__target__("fpmath=387")))
++avx512f_test (void)
++{
++  float a[NUM];
++  int r[NUM];
++  int i;
++
++  init_src (a);
++
++  for (i = 0; i < NUM; i++)
++    r[i] = (int) rintf (a[i]);
++
++  /* check results:  */
++  for (i = 0; i < NUM; i++)
++    if (r[i] != (int) rintf (a[i]))
++      abort();
++}
 Index: gcc/testsuite/gcc.target/i386/pr70858.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/i386/pr70858.c	(.../tags/gcc_6_1_0_release)
@@ -6381,6 +6930,74 @@ Index: gcc/testsuite/gcc.target/i386/pr70858.c
 +{
 +  return __builtin_ia32_pext_di (x, y);	/* { dg-warning "implicit declaration of function .__builtin_ia32_pext_di." "" { target ia32 } } */
 +}
+Index: gcc/testsuite/gcc.target/i386/avx512f-floor-vec-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-floor-vec-2.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-floor-vec-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,6 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++
++#include "avx512f-floor-vec-1.c"
++
++/* { dg-final { scan-assembler-times "vrndscalepd\[^\n\]+zmm\[0-9\](?:\n|\[ \\t\]+#)" 1 } } */
+Index: gcc/testsuite/gcc.target/i386/avx512f-trunc-vec-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-trunc-vec-1.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-trunc-vec-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,52 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++/* { dg-require-effective-target avx512f } */
++/* { dg-skip-if "no M_PI" { vxworks_kernel } } */
++
++#define __NO_MATH_INLINES
++#include <math.h>
++#include "avx512f-check.h"
++
++#define NUM 64
++
++static void
++__attribute__((__target__("fpmath=sse")))
++init_src (double *src)
++{
++  int i, sign = 1;
++  double f = rand ();
++
++  for (i = 0; i < NUM; i++)
++    {
++      src[i] = (i + 1) * f * M_PI * sign;
++      if (i < (NUM / 2))
++	{
++          if ((i % 6) == 0)
++	    f = f * src[i];
++        }
++      else if (i == (NUM / 2))
++	f = rand ();
++      else if ((i % 6) == 0)
++	f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
++      sign = -sign;
++    }
++}
++
++static void
++__attribute__((__target__("fpmath=387")))
++avx512f_test (void)
++{
++  double a[NUM];
++  double r[NUM];
++  int i;
++
++  init_src (a);
++
++  for (i = 0; i < NUM; i++)
++    r[i] = trunc (a[i]);
++
++  /* check results:  */
++  for (i = 0; i < NUM; i++)
++    if (r[i] != trunc (a[i]))
++      abort();
++}
 Index: gcc/testsuite/gcc.target/i386/pr70728.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/i386/pr70728.c	(.../tags/gcc_6_1_0_release)
@@ -6416,6 +7033,28 @@ Index: gcc/testsuite/gcc.target/i386/pr70728.c
 +}
 +
 +/* { dg-final { scan-assembler-not "sll\[ \\t\]+\[^\n\]*%\.mm(?:1\[6-9\]|\[2-3\]\[0-9\])" } } */
+Index: gcc/testsuite/gcc.target/i386/avx512f-rintf-sfix-vec-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-rintf-sfix-vec-2.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-rintf-sfix-vec-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,6 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++
++#include "avx512f-rintf-sfix-vec-1.c"
++
++/* { dg-final { scan-assembler-times "vcvtps2dq\[^\n\]+zmm\[0-9\](?:\n|\[ \\t\]+#)" 1 } } */
+Index: gcc/testsuite/gcc.target/i386/avx512f-trunc-vec-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-trunc-vec-2.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-trunc-vec-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,6 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++
++#include "avx512f-trunc-vec-1.c"
++
++/* { dg-final { scan-assembler-times "vrndscalepd\[^\n\]+zmm\[0-9\](?:\n|\[ \\t\]+#)" 1 } } */
 Index: gcc/testsuite/gcc.target/i386/pr70750-1.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/i386/pr70750-1.c	(.../tags/gcc_6_1_0_release)
@@ -6432,6 +7071,177 @@ Index: gcc/testsuite/gcc.target/i386/pr70750-1.c
 +
 +/* { dg-final { scan-assembler "jmp\[ \t\].*\\(%rdi\\)" { target { lp64 } } } } */
 +/* { dg-final { scan-assembler "jmp\[ \t\]\\*%rax" { target { x32 } } } } */
+Index: gcc/testsuite/gcc.target/i386/avx512f-ceil-vec-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-ceil-vec-1.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-ceil-vec-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,52 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++/* { dg-require-effective-target avx512f } */
++/* { dg-skip-if "no M_PI" { vxworks_kernel } } */
++
++#define __NO_MATH_INLINES
++#include <math.h>
++#include "avx512f-check.h"
++
++#define NUM 64
++
++static void
++__attribute__((__target__("fpmath=sse")))
++init_src (double *src)
++{
++  int i, sign = 1;
++  double f = rand ();
++
++  for (i = 0; i < NUM; i++)
++    {
++      src[i] = (i + 1) * f * M_PI * sign;
++      if (i < (NUM / 2))
++	{
++          if ((i % 6) == 0)
++	    f = f * src[i];
++        }
++      else if (i == (NUM / 2))
++	f = rand ();
++      else if ((i % 6) == 0)
++	f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
++      sign = -sign;
++    }
++}
++
++static void
++__attribute__((__target__("fpmath=387")))
++avx512f_test (void)
++{
++  double a[NUM];
++  double r[NUM];
++  int i;
++
++  init_src (a);
++
++  for (i = 0; i < NUM; i++)
++    r[i] = ceil (a[i]);
++
++  /* check results:  */
++  for (i = 0; i < NUM; i++)
++    if (r[i] != ceil (a[i]))
++      abort();
++}
+Index: gcc/testsuite/gcc.target/i386/avx512f-ceilf-sfix-vec-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-ceilf-sfix-vec-1.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-ceilf-sfix-vec-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,52 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++/* { dg-require-effective-target avx512f } */
++/* { dg-skip-if "no M_PI" { vxworks_kernel } } */
++
++#define __NO_MATH_INLINES
++#include <math.h>
++#include "avx512f-check.h"
++
++#define NUM 64
++
++static void
++__attribute__((__target__("fpmath=sse")))
++init_src (float *src)
++{
++  int i, sign = 1;
++  float f = rand ();
++
++  for (i = 0; i < NUM; i++)
++    {
++      src[i] = (i + 1) * f * M_PI * sign;
++      if (i < (NUM / 2))
++	{
++          if ((i % 6) == 0)
++	    f = f * src[i];
++        }
++      else if (i == (NUM / 2))
++	f = rand ();
++      else if ((i % 6) == 0)
++	f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
++      sign = -sign;
++    }
++}
++
++static void
++__attribute__((__target__("fpmath=387")))
++avx512f_test (void)
++{
++  float a[NUM];
++  int r[NUM];
++  int i;
++
++  init_src (a);
++
++  for (i = 0; i < NUM; i++)
++    r[i] = (int) ceilf (a[i]);
++
++  /* check results:  */
++  for (i = 0; i < NUM; i++)
++    if (r[i] != (int) ceilf (a[i]))
++      abort();
++}
+Index: gcc/testsuite/gcc.target/i386/avx512f-roundf-sfix-vec-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-roundf-sfix-vec-1.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-roundf-sfix-vec-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,52 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++/* { dg-require-effective-target avx512f } */
++/* { dg-skip-if "no M_PI" { vxworks_kernel } } */
++
++#define __NO_MATH_INLINES
++#include <math.h>
++#include "avx512f-check.h"
++
++#define NUM 64
++
++static void
++__attribute__((__target__("fpmath=sse")))
++init_src (float *src)
++{
++  int i, sign = 1;
++  float f = rand ();
++
++  for (i = 0; i < NUM; i++)
++    {
++      src[i] = (i + 1) * f * M_PI * sign;
++      if (i < (NUM / 2))
++	{
++          if ((i % 6) == 0)
++	    f = f * src[i];
++        }
++      else if (i == (NUM / 2))
++	f = rand ();
++      else if ((i % 6) == 0)
++	f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
++      sign = -sign;
++    }
++}
++
++static void
++__attribute__((__target__("fpmath=387")))
++avx512f_test (void)
++{
++  float a[NUM];
++  int r[NUM];
++  int i;
++
++  init_src (a);
++
++  for (i = 0; i < NUM; i++)
++    r[i] = (int) roundf (a[i]);
++
++  /* check results:  */
++  for (i = 0; i < NUM; i++)
++    if (r[i] != (int) roundf (a[i]))
++      abort();
++}
 Index: gcc/testsuite/gcc.target/i386/pr70750-2.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/i386/pr70750-2.c	(.../tags/gcc_6_1_0_release)
@@ -6448,6 +7258,200 @@ Index: gcc/testsuite/gcc.target/i386/pr70750-2.c
 +
 +/* { dg-final { scan-assembler "call\[ \t\].*\\(%rdi\\)" { target { lp64 } } } } */
 +/* { dg-final { scan-assembler "call\[ \t\]\\*%rax" { target { x32 } } } } */
+Index: gcc/testsuite/gcc.target/i386/avx512f-truncf-vec-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-truncf-vec-1.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-truncf-vec-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,52 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++/* { dg-require-effective-target avx512f } */
++/* { dg-skip-if "no M_PI" { vxworks_kernel } } */
++
++#define __NO_MATH_INLINES
++#include <math.h>
++#include "avx512f-check.h"
++
++#define NUM 64
++
++static void
++__attribute__((__target__("fpmath=sse")))
++init_src (float *src)
++{
++  int i, sign = 1;
++  float f = rand ();
++
++  for (i = 0; i < NUM; i++)
++    {
++      src[i] = (i + 1) * f * M_PI * sign;
++      if (i < (NUM / 2))
++	{
++          if ((i % 6) == 0)
++	    f = f * src[i];
++        }
++      else if (i == (NUM / 2))
++	f = rand ();
++      else if ((i % 6) == 0)
++	f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
++      sign = -sign;
++    }
++}
++
++static void
++__attribute__((__target__("fpmath=387")))
++avx512f_test (void)
++{
++  float a[NUM];
++  float r[NUM];
++  int i;
++
++  init_src (a);
++
++  for (i = 0; i < NUM; i++)
++    r[i] = truncf (a[i]);
++
++  /* check results:  */
++  for (i = 0; i < NUM; i++)
++    if (r[i] != truncf (a[i]))
++      abort();
++}
+Index: gcc/testsuite/gcc.target/i386/avx512f-rint-sfix-vec-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-rint-sfix-vec-1.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-rint-sfix-vec-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,52 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++/* { dg-require-effective-target avx512f } */
++/* { dg-skip-if "no M_PI" { vxworks_kernel } } */
++
++#define __NO_MATH_INLINES
++#include <math.h>
++#include "avx512f-check.h"
++
++#define NUM 64
++
++static void
++__attribute__((__target__("fpmath=sse")))
++init_src (double *src)
++{
++  int i, sign = 1;
++  double f = rand ();
++
++  for (i = 0; i < NUM; i++)
++    {
++      src[i] = (i + 1) * f * M_PI * sign;
++      if (i < (NUM / 2))
++	{
++          if ((i % 6) == 0)
++	    f = f * src[i];
++        }
++      else if (i == (NUM / 2))
++	f = rand ();
++      else if ((i % 6) == 0)
++	f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
++      sign = -sign;
++    }
++}
++
++static void
++__attribute__((__target__("fpmath=387")))
++avx512f_test (void)
++{
++  double a[NUM];
++  int r[NUM];
++  int i;
++
++  init_src (a);
++
++  for (i = 0; i < NUM; i++)
++    r[i] = (int) rint (a[i]);
++
++  /* check results:  */
++  for (i = 0; i < NUM; i++)
++    if (r[i] != (int) rint (a[i]))
++      abort();
++}
+Index: gcc/testsuite/gcc.target/i386/avx512f-round-sfix-vec-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-round-sfix-vec-1.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-round-sfix-vec-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,52 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++/* { dg-require-effective-target avx512f } */
++/* { dg-skip-if "no M_PI" { vxworks_kernel } } */
++
++#define __NO_MATH_INLINES
++#include <math.h>
++#include "avx512f-check.h"
++
++#define NUM 64
++
++static void
++__attribute__((__target__("fpmath=sse")))
++init_src (double *src)
++{
++  int i, sign = 1;
++  double f = rand ();
++
++  for (i = 0; i < NUM; i++)
++    {
++      src[i] = (i + 1) * f * M_PI * sign;
++      if (i < (NUM / 2))
++	{
++          if ((i % 6) == 0)
++	    f = f * src[i];
++        }
++      else if (i == (NUM / 2))
++	f = rand ();
++      else if ((i % 6) == 0)
++	f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
++      sign = -sign;
++    }
++}
++
++static void
++__attribute__((__target__("fpmath=387")))
++avx512f_test (void)
++{
++  double a[NUM];
++  int r[NUM];
++  int i;
++
++  init_src (a);
++
++  for (i = 0; i < NUM; i++)
++    r[i] = (int) round (a[i]);
++
++  /* check results:  */
++  for (i = 0; i < NUM; i++)
++    if (r[i] != (int) round (a[i]))
++      abort();
++}
+Index: gcc/testsuite/gcc.target/i386/avx512f-ceil-vec-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-ceil-vec-2.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-ceil-vec-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,6 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++
++#include "avx512f-ceil-vec-1.c"
++
++/* { dg-final { scan-assembler-times "vrndscalepd\[^\n\]+zmm\[0-9\](?:\n|\[ \\t\]+#)" 1 } } */
+Index: gcc/testsuite/gcc.target/i386/avx512f-ceilf-sfix-vec-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-ceilf-sfix-vec-2.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-ceilf-sfix-vec-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,7 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++
++#include "avx512f-ceilf-sfix-vec-1.c"
++
++/* { dg-final { scan-assembler-times "vrndscaleps\[^\n\]+zmm\[0-9\](?:\n|\[ \\t\]+#)" 1 } } */
++/* { dg-final { scan-assembler-times "vcvttps2dq\[^\n\]+zmm\[0-9\].{7}(?:\n|\[ \\t\]+#)" 1 } } */
 Index: gcc/testsuite/gcc.target/i386/pr70876.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/i386/pr70876.c	(.../tags/gcc_6_1_0_release)
@@ -6466,6 +7470,29 @@ Index: gcc/testsuite/gcc.target/i386/pr70876.c
 +
 +  foo (x, x);
 +}
+Index: gcc/testsuite/gcc.target/i386/avx512f-roundf-sfix-vec-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-roundf-sfix-vec-2.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-roundf-sfix-vec-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,7 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++
++#include "avx512f-roundf-sfix-vec-1.c"
++
++/* { dg-final { scan-assembler-times "vrndscaleps\[^\n\]+zmm\[0-9\](?:\n|\[ \\t\]+#)" 1 } } */
++/* { dg-final { scan-assembler-times "vcvttps2dq\[^\n\]+zmm\[0-9\].{7}(?:\n|\[ \\t\]+#)" 1 } } */
+Index: gcc/testsuite/gcc.target/i386/avx512f-truncf-vec-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-truncf-vec-2.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-truncf-vec-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,6 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++
++#include "avx512f-truncf-vec-1.c"
++
++/* { dg-final { scan-assembler-times "vrndscaleps\[^\n\]+zmm\[0-9\](?:\n|\[ \\t\]+#)" 1 } } */
 Index: gcc/testsuite/gcc.target/i386/iamcu/args.h
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/i386/iamcu/args.h	(.../tags/gcc_6_1_0_release)
@@ -6479,6 +7506,18 @@ Index: gcc/testsuite/gcc.target/i386/iamcu/args.h
  		    "xor %%ecx, %%ecx\n\t" \
  		    ::: "edx", "ecx");
  
+Index: gcc/testsuite/gcc.target/i386/avx512f-rint-sfix-vec-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-rint-sfix-vec-2.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-rint-sfix-vec-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,7 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++
++#include "avx512f-rint-sfix-vec-1.c"
++
++/* { dg-final { scan-assembler-times "vcvtpd2dq\[^\n\]+ymm\[0-9\](?:\n|\[ \\t\]+#)" 2 } } */
++/* { dg-final { scan-assembler-times "vinserti64x4\[^\n\]+zmm\[0-9\](?:\n|\[ \\t\]+#)" 1 } } */
 Index: gcc/testsuite/gcc.target/i386/fabsneg-1.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/i386/fabsneg-1.c	(.../tags/gcc_6_1_0_release)
@@ -6520,6 +7559,132 @@ Index: gcc/testsuite/gcc.target/i386/fabsneg-1.c
 +
 +  return 0;
 +}
+Index: gcc/testsuite/gcc.target/i386/avx512f-round-sfix-vec-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-round-sfix-vec-2.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-round-sfix-vec-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,7 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++
++#include "avx512f-round-sfix-vec-1.c"
++
++/* { dg-final { scan-assembler-times "vrndscalepd\[^\n\]+zmm\[0-9\](?:\n|\[ \\t\]+#)" 2 } } */
++/* { dg-final { scan-assembler-times "vcvttpd2dq\[^\n\]+zmm\[0-9\].{7}(?:\n|\[ \\t\]+#)" 2 } } */
+Index: gcc/testsuite/gcc.target/i386/avx512f-floorf-vec-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-floorf-vec-1.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-floorf-vec-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,52 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++/* { dg-require-effective-target avx512f } */
++/* { dg-skip-if "no M_PI" { vxworks_kernel } } */
++
++#define __NO_MATH_INLINES
++#include <math.h>
++#include "avx512f-check.h"
++
++#define NUM 64
++
++static void
++__attribute__((__target__("fpmath=sse")))
++init_src (float *src)
++{
++  int i, sign = 1;
++  float f = rand ();
++
++  for (i = 0; i < NUM; i++)
++    {
++      src[i] = (i + 1) * f * M_PI * sign;
++      if (i < (NUM / 2))
++	{
++          if ((i % 6) == 0)
++	    f = f * src[i];
++        }
++      else if (i == (NUM / 2))
++	f = rand ();
++      else if ((i % 6) == 0)
++	f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
++      sign = -sign;
++    }
++}
++
++static void
++__attribute__((__target__("fpmath=387")))
++avx512f_test (void)
++{
++  float a[NUM];
++  float r[NUM];
++  int i;
++
++  init_src (a);
++
++  for (i = 0; i < NUM; i++)
++    r[i] = floorf (a[i]);
++
++  /* check results:  */
++  for (i = 0; i < NUM; i++)
++    if (r[i] != floorf (a[i]))
++      abort();
++}
+Index: gcc/testsuite/gcc.target/i386/avx512f-ceilf-vec-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-ceilf-vec-1.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-ceilf-vec-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,52 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++/* { dg-require-effective-target avx512f } */
++/* { dg-skip-if "no M_PI" { vxworks_kernel } } */
++
++#define __NO_MATH_INLINES
++#include <math.h>
++#include "avx512f-check.h"
++
++#define NUM 64
++
++static void
++__attribute__((__target__("fpmath=sse")))
++init_src (float *src)
++{
++  int i, sign = 1;
++  float f = rand ();
++
++  for (i = 0; i < NUM; i++)
++    {
++      src[i] = (i + 1) * f * M_PI * sign;
++      if (i < (NUM / 2))
++	{
++          if ((i % 6) == 0)
++	    f = f * src[i];
++        }
++      else if (i == (NUM / 2))
++	f = rand ();
++      else if ((i % 6) == 0)
++	f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
++      sign = -sign;
++    }
++}
++
++static void
++__attribute__((__target__("fpmath=387")))
++avx512f_test (void)
++{
++  float a[NUM];
++  float r[NUM];
++  int i;
++
++  init_src (a);
++
++  for (i = 0; i < NUM; i++)
++    r[i] = ceilf (a[i]);
++
++  /* check results:  */
++  for (i = 0; i < NUM; i++)
++    if (r[i] != ceilf (a[i]))
++      abort();
++}
 Index: gcc/testsuite/gcc.target/i386/pr70877.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/i386/pr70877.c	(.../tags/gcc_6_1_0_release)
@@ -6539,6 +7704,63 @@ Index: gcc/testsuite/gcc.target/i386/pr70877.c
 +{
 +  d = ((double (*) (int)) foo) (i); /* { dg-warning "function called through a non-compatible type" } */
 +}
+Index: gcc/testsuite/gcc.target/i386/avx512f-floorf-sfix-vec-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/avx512f-floorf-sfix-vec-1.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/avx512f-floorf-sfix-vec-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,52 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
++/* { dg-require-effective-target avx512f } */
++/* { dg-skip-if "no M_PI" { vxworks_kernel } } */
++
++#define __NO_MATH_INLINES
++#include <math.h>
++#include "avx512f-check.h"
++
++#define NUM 64
++
++static void
++__attribute__((__target__("fpmath=sse")))
++init_src (float *src)
++{
++  int i, sign = 1;
++  float f = rand ();
++
++  for (i = 0; i < NUM; i++)
++    {
++      src[i] = (i + 1) * f * M_PI * sign;
++      if (i < (NUM / 2))
++	{
++          if ((i % 6) == 0)
++	    f = f * src[i];
++        }
++      else if (i == (NUM / 2))
++	f = rand ();
++      else if ((i % 6) == 0)
++	f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
++      sign = -sign;
++    }
++}
++
++static void
++__attribute__((__target__("fpmath=387")))
++avx512f_test (void)
++{
++  float a[NUM];
++  int r[NUM];
++  int i;
++
++  init_src (a);
++
++  for (i = 0; i < NUM; i++)
++    r[i] = (int) floorf (a[i]);
++
++  /* check results:  */
++  for (i = 0; i < NUM; i++)
++    if (r[i] != (int) floorf (a[i]))
++      abort();
++}
 Index: gcc/testsuite/opt55.ads
 ===================================================================
 --- a/src/gcc/testsuite/opt55.ads	(.../tags/gcc_6_1_0_release)
@@ -7740,6 +8962,36 @@ Index: gcc/testsuite/gfortran.dg/pr71204.f90
 +  use pr71204
 +  z(2) = z(1)
 +end
+Index: gcc/testsuite/gfortran.dg/class_array_22.f03
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/class_array_22.f03	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/class_array_22.f03	(.../branches/gcc-6-branch)
+@@ -0,0 +1,25 @@
++! { dg-do compile }
++! { dg-options "-frepack-arrays " }
++!
++! Original class_array_11.f03 but with -frepack-arrays a new
++! ICE was produced reported in
++! PR fortran/69659
++!
++! Original testcase by Ian Harvey <ian_harvey at bigpond.com>
++! Reduced by Janus Weil <Janus at gcc.gnu.org>
++
++  IMPLICIT NONE
++
++  TYPE :: ParentVector
++    INTEGER :: a
++  END TYPE ParentVector
++
++CONTAINS
++
++  SUBROUTINE vector_operation(pvec)
++    CLASS(ParentVector), INTENT(INOUT) :: pvec(:)
++    print *,pvec(1)%a
++  END SUBROUTINE
++
++END
++
 Index: gcc/testsuite/gfortran.dg/dec_union_5.f90
 ===================================================================
 --- a/src/gcc/testsuite/gfortran.dg/dec_union_5.f90	(.../tags/gcc_6_1_0_release)
@@ -8490,11 +9742,113 @@ Index: gcc/testsuite/gcc.dg/vect/pr66636.c
  {
    int i;
    for (i = 0; i < 256; ++i)
+Index: gcc/testsuite/gcc.dg/vect/pr71259.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/vect/pr71259.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.dg/vect/pr71259.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,28 @@
++/* PR tree-optimization/71259 */
++/* { dg-do run } */
++/* { dg-options "-O3" } */
++/* { dg-additional-options "-mavx" { target avx_runtime } } */
++
++#include "tree-vect.h"
++
++long a, b[1][44][2];
++long long c[44][17][2];
++
++int
++main ()
++{
++  int i, j, k;
++  check_vect ();
++  asm volatile ("" : : : "memory");
++  for (i = 0; i < 44; i++)
++    for (j = 0; j < 17; j++)
++      for (k = 0; k < 2; k++)
++	c[i][j][k] = (30995740 >= *(k + *(j + *b)) != (a != 8)) - 5105075050047261684;
++  asm volatile ("" : : : "memory");
++  for (i = 0; i < 44; i++) 
++    for (j = 0; j < 17; j++)
++      for (k = 0; k < 2; k++)
++	if (c[i][j][k] != -5105075050047261684)
++	  __builtin_abort ();
++  return 0;
++}
 Index: gcc/testsuite/ChangeLog
 ===================================================================
 --- a/src/gcc/testsuite/ChangeLog	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/testsuite/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,509 @@
+@@ -1,3 +1,578 @@
++2016-06-08  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/71442
++	* g++.dg/cpp0x/Wunused-variable-1.C: New test.
++
++2016-06-08  Eric Botcazou  <ebotcazou at adacore.com>
++
++	Backport from mainline
++	2016-06-06  Jose E. Marchesi  <jose.marchesi at oracle.com>
++
++	* gcc.target/sparc/vis4misc.c: New file.
++	* gcc.target/sparc/fpcmp.c: Likewise.
++	* gcc.target/sparc/fpcmpu.c: Likewise.
++
++2016-06-08  Ilya Verbin  <ilya.verbin at intel.com>
++
++	Backport from mainline
++	2016-05-25  Ilya Verbin  <ilya.verbin at intel.com>
++
++	* gcc.target/i386/avx512f-ceil-vec-1.c: New test.
++	* gcc.target/i386/avx512f-ceil-vec-2.c: New test.
++	* gcc.target/i386/avx512f-ceilf-sfix-vec-1.c: New test.
++	* gcc.target/i386/avx512f-ceilf-sfix-vec-2.c: New test.
++	* gcc.target/i386/avx512f-ceilf-vec-1.c: New test.
++	* gcc.target/i386/avx512f-ceilf-vec-2.c: New test.
++	* gcc.target/i386/avx512f-floor-vec-1.c: New test.
++	* gcc.target/i386/avx512f-floor-vec-2.c: New test.
++	* gcc.target/i386/avx512f-floorf-sfix-vec-1.c: New test.
++	* gcc.target/i386/avx512f-floorf-sfix-vec-2.c: New test.
++	* gcc.target/i386/avx512f-floorf-vec-1.c: New test.
++	* gcc.target/i386/avx512f-floorf-vec-2.c: New test.
++	* gcc.target/i386/avx512f-rint-sfix-vec-1.c: New test.
++	* gcc.target/i386/avx512f-rint-sfix-vec-2.c: New test.
++	* gcc.target/i386/avx512f-rintf-sfix-vec-1.c: New test.
++	* gcc.target/i386/avx512f-rintf-sfix-vec-2.c: New test.
++	* gcc.target/i386/avx512f-round-sfix-vec-1.c: New test.
++	* gcc.target/i386/avx512f-round-sfix-vec-2.c: New test.
++	* gcc.target/i386/avx512f-roundf-sfix-vec-1.c: New test.
++	* gcc.target/i386/avx512f-roundf-sfix-vec-2.c: New test.
++	* gcc.target/i386/avx512f-trunc-vec-1.c: New test.
++	* gcc.target/i386/avx512f-trunc-vec-2.c: New test.
++	* gcc.target/i386/avx512f-truncf-vec-1.c: New test.
++	* gcc.target/i386/avx512f-truncf-vec-2.c: New test.
++
++2016-06-07  Uros Bizjak  <ubizjak at gmail.com>
++
++	PR target/71389
++	* g++.dg/pr71389.C: New test.
++
++2016-06-06  Jakub Jelinek  <jakub at redhat.com>
++	    Patrick Palka  <ppalka at gcc.gnu.org>
++
++	PR c++/70847
++	PR c++/71330
++	PR c++/71393
++	* g++.dg/opt/pr70847.C: New test.
++	* g++.dg/ubsan/pr70847.C: New test.
++	* g++.dg/ubsan/pr71393.C: New test.
++
++2016-06-06  Jakub Jelinek  <jakub at redhat.com>
++
++	PR tree-optimization/71259
++	* gcc.dg/vect/pr71259.c: New test.
++
++2016-06-05  Andre Vehreschild  <vehre at gcc.gnu.org>
++
++	PR fortran/69659
++	* gfortran.dg/class_array_22.f03: New test.
++
 +2016-06-03  Bill Schmidt  <wschmidt at linux.vnet.ibm.com>
 +
 +	PR target/70957
@@ -9097,6 +10451,22 @@ Index: gcc/testsuite/g++.dg/opt/pr71100.C
 +{
 +  bar (&E::foo, o);
 +}
+Index: gcc/testsuite/g++.dg/opt/pr70847.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/opt/pr70847.C	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/opt/pr70847.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,11 @@
++// PR c++/70847
++// { dg-do compile }
++
++struct D { virtual D& f(); };
++
++void
++g()
++{
++  D d;
++  d.f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f();
++}
 Index: gcc/testsuite/g++.dg/opt/pr71210-1.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/opt/pr71210-1.C	(.../tags/gcc_6_1_0_release)
@@ -9179,6 +10549,41 @@ Index: gcc/testsuite/g++.dg/pr71184.C
 +++ b/src/gcc/testsuite/g++.dg/pr71184.C	(.../branches/gcc-6-branch)
 @@ -0,0 +1 @@
 +operator new[ // { dg-error "expected type-specifier before 'new'" }
+Index: gcc/testsuite/g++.dg/ubsan/pr71393.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/ubsan/pr71393.C	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/ubsan/pr71393.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,14 @@
++// PR c++/71393
++// { dg-do compile }
++// { dg-options "-fsanitize=undefined" }
++
++struct B { B &operator << (long); };
++struct A { A (); long a, b, c, d, e, f; };
++
++A::A ()
++{
++  B q;
++  q << 0 << a << 0 << b << 0 << (b / a) << 0 << c << 0 << (c / a) << 0
++    << d << 0 << (d / a) << 0 << e << 0 << (e / a) << 0 << f << 0
++    << (f / a) << 0;
++}
+Index: gcc/testsuite/g++.dg/ubsan/pr70847.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/ubsan/pr70847.C	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/ubsan/pr70847.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,11 @@
++// PR c++/70847
++// { dg-do compile }
++
++struct D { virtual D& f(); };
++
++void
++g()
++{
++  D d;
++  d.f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f();
++}
 Index: gcc/testsuite/g++.dg/ubsan/null-7.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/ubsan/null-7.C	(.../tags/gcc_6_1_0_release)
@@ -9272,6 +10677,48 @@ Index: gcc/testsuite/g++.dg/cpp0x/constexpr-array16.C
 +void Foo() {
 +	new BarContainer();
 +}
+Index: gcc/testsuite/g++.dg/cpp0x/Wunused-variable-1.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/Wunused-variable-1.C	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/Wunused-variable-1.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,37 @@
++// PR c++/71442
++// { dg-do compile { target c++11 } }
++// { dg-options "-Wunused-variable" }
++
++struct C
++{
++  template<typename... Ts>
++  int operator()(Ts &&...)
++  {
++    return sizeof...(Ts);
++  }
++};
++
++int
++foo ()
++{
++  C {} (1, 1L, 1LL, 1.0);
++}
++
++template<int N>
++void
++bar ()
++{
++  char a;		// { dg-warning "unused variable" }
++  short b;		// { dg-warning "unused variable" }
++  int c;		// { dg-warning "unused variable" }
++  long d;		// { dg-warning "unused variable" }
++  long long e;		// { dg-warning "unused variable" }
++  float f;		// { dg-warning "unused variable" }
++  double g;		// { dg-warning "unused variable" }
++}
++
++void
++baz ()
++{
++  bar <0> ();
++}
 Index: gcc/testsuite/g++.dg/cpp0x/inh-ctor21.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/cpp0x/inh-ctor21.C	(.../tags/gcc_6_1_0_release)
@@ -9527,6 +10974,34 @@ Index: gcc/testsuite/g++.dg/ipa/ipa-pta-2.C
 +    abort ();
 +  return 0;
 +}
+Index: gcc/testsuite/g++.dg/pr71389.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/pr71389.C	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/pr71389.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,23 @@
++// { dg-do compile { target i?86-*-* x86_64-*-* } }
++// { dg-options "-std=c++11 -O3 -march=ivybridge" }
++
++#include <functional>
++
++extern int le_s6, le_s9, le_s11;
++long foo_v14[16][16];
++
++void fn1() {
++  std::array<std::array<int, 16>, 16> v13;
++  for (; le_s6;)
++    for (int k1 = 2; k1 < 4; k1 = k1 + 1) {
++      for (int n1 = 0; n1 < le_s9; n1 = 8) {
++        *foo_v14[6] = 20923310;
++        for (int i2 = n1; i2 < n1 + 8; i2 = i2 + 1)
++          v13.at(5).at(i2 + 6 - n1) = 306146921;
++      }
++
++      for (int l2 = 0; l2 < le_s11; l2 = l2 + 1)
++          *(l2 + v13.at(5).begin()) = 306146921;
++    }
++  v13.at(le_s6 - 4);
++}
 Index: gcc/testsuite/g++.dg/cpp1y/lambda-conv1.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/cpp1y/lambda-conv1.C	(.../tags/gcc_6_1_0_release)
@@ -10362,7 +11837,24 @@ Index: gcc/cp/ChangeLog
 ===================================================================
 --- a/src/gcc/cp/ChangeLog	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/cp/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,141 @@
+@@ -1,3 +1,158 @@
++2016-06-08  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/71442
++	* pt.c (tsubst_copy): Only set TREE_USED on DECLs.
++
++2016-06-06  Jakub Jelinek  <jakub at redhat.com>
++	    Patrick Palka  <ppalka at gcc.gnu.org>
++
++	PR c++/70847
++	PR c++/71330
++	PR c++/71393
++	* cp-gimplify.c (cp_fold_r): Set *walk_subtrees = 0 and return NULL
++	right after cp_fold call if cp_fold has returned the same stmt
++	already in some earlier cp_fold_r call.
++	(cp_fold_function): Add pset automatic variable, pass its address
++	to cp_walk_tree.
++
 +2016-06-02  Jakub Jelinek  <jakub at redhat.com>
 +
 +	PR c++/71372
@@ -10508,7 +12000,35 @@ Index: gcc/cp/cp-gimplify.c
 ===================================================================
 --- a/src/gcc/cp/cp-gimplify.c	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/cp/cp-gimplify.c	(.../branches/gcc-6-branch)
-@@ -1877,13 +1877,21 @@
+@@ -939,6 +939,17 @@
+ 
+   *stmt_p = stmt = cp_fold (*stmt_p);
+ 
++  if (((hash_set<tree> *) data)->add (stmt))
++    {
++      /* Don't walk subtrees of stmts we've already walked once, otherwise
++	 we can have exponential complexity with e.g. lots of nested
++	 SAVE_EXPRs or TARGET_EXPRs.  cp_fold uses a cache and will return
++	 always the same tree, which the first time cp_fold_r has been
++	 called on it had the subtrees walked.  */
++      *walk_subtrees = 0;
++      return NULL;
++    }
++
+   code = TREE_CODE (stmt);
+   if (code == OMP_FOR || code == OMP_SIMD || code == OMP_DISTRIBUTE
+       || code == OMP_TASKLOOP || code == CILK_FOR || code == CILK_SIMD
+@@ -996,7 +1007,8 @@
+ void
+ cp_fold_function (tree fndecl)
+ {
+-  cp_walk_tree (&DECL_SAVED_TREE (fndecl), cp_fold_r, NULL, NULL);
++  hash_set<tree> pset;
++  cp_walk_tree (&DECL_SAVED_TREE (fndecl), cp_fold_r, &pset, NULL);
+ }
+ 
+ /* Perform any pre-gimplification lowering of C++ front end trees to
+@@ -1877,13 +1889,21 @@
  static tree
  cp_fold_maybe_rvalue (tree x, bool rval)
  {
@@ -10535,7 +12055,7 @@ Index: gcc/cp/cp-gimplify.c
  }
  
  /* Fold expression X which is used as an rvalue.  */
-@@ -1995,6 +2003,15 @@
+@@ -1995,6 +2015,15 @@
  
        break;
  
@@ -10551,7 +12071,7 @@ Index: gcc/cp/cp-gimplify.c
      case ADDR_EXPR:
      case REALPART_EXPR:
      case IMAGPART_EXPR:
-@@ -2007,7 +2024,7 @@
+@@ -2007,7 +2036,7 @@
      case BIT_NOT_EXPR:
      case TRUTH_NOT_EXPR:
      case FIXED_CONVERT_EXPR:
@@ -10560,7 +12080,7 @@ Index: gcc/cp/cp-gimplify.c
  
        loc = EXPR_LOCATION (x);
        op0 = cp_fold_maybe_rvalue (TREE_OPERAND (x, 0), rval_ops);
-@@ -2017,7 +2034,16 @@
+@@ -2017,7 +2046,16 @@
  	  if (op0 == error_mark_node)
  	    x = error_mark_node;
  	  else
@@ -10578,7 +12098,7 @@ Index: gcc/cp/cp-gimplify.c
  	}
        else
  	x = fold (x);
-@@ -2294,7 +2320,12 @@
+@@ -2294,7 +2332,12 @@
  	      || op3 == error_mark_node)
  	    x = error_mark_node;
  	  else
@@ -10730,7 +12250,17 @@ Index: gcc/cp/pt.c
  		}
  	      /* Remember this for subsequent uses.  */
  	      if (local_specializations)
-@@ -17376,6 +17390,7 @@
+@@ -14145,7 +14159,8 @@
+ 	      len = TREE_VEC_LENGTH (expanded);
+ 	      /* Set TREE_USED for the benefit of -Wunused.  */
+ 	      for (int i = 0; i < len; i++)
+-		TREE_USED (TREE_VEC_ELT (expanded, i)) = true;
++		if (DECL_P (TREE_VEC_ELT (expanded, i)))
++		  TREE_USED (TREE_VEC_ELT (expanded, i)) = true;
+ 	    }
+ 
+ 	  if (expanded == error_mark_node)
+@@ -17376,6 +17391,7 @@
  
    tree pattern = DECL_TEMPLATE_RESULT (gen_tmpl);
  
@@ -10738,7 +12268,7 @@ Index: gcc/cp/pt.c
    if (VAR_P (pattern))
      {
        /* We need to determine if we're using a partial or explicit
-@@ -17387,14 +17402,16 @@
+@@ -17387,14 +17403,16 @@
  	pattern = error_mark_node;
        else if (elt)
  	{
@@ -10759,7 +12289,7 @@ Index: gcc/cp/pt.c
    if (DECL_CLASS_SCOPE_P (gen_tmpl))
      pop_nested_class ();
    pop_from_top_level ();
-@@ -20848,36 +20865,6 @@
+@@ -20848,36 +20866,6 @@
    return decl;
  }
  
@@ -10796,7 +12326,7 @@ Index: gcc/cp/pt.c
  /* Return the most specialized of the template partial specializations
     which can produce TARGET, a specialization of some class or variable
     template.  The value returned is actually a TREE_LIST; the TREE_VALUE is
-@@ -21379,14 +21366,12 @@
+@@ -21379,14 +21367,12 @@
     to instantiate the DECL, we regenerate it.  */
  
  static void
@@ -10812,7 +12342,7 @@ Index: gcc/cp/pt.c
    code_pattern = DECL_TEMPLATE_RESULT (tmpl);
  
    /* Make sure that we can see identifiers, and compute access
-@@ -21702,7 +21687,7 @@
+@@ -21702,7 +21688,7 @@
      return d;
  
    gen_tmpl = most_general_template (tmpl);
@@ -10821,7 +12351,7 @@ Index: gcc/cp/pt.c
  
    if (tmpl != gen_tmpl)
      /* We should already have the extra args.  */
-@@ -21721,6 +21706,20 @@
+@@ -21721,6 +21707,20 @@
    /* Set TD to the template whose DECL_TEMPLATE_RESULT is the pattern
       for the instantiation.  */
    td = template_for_substitution (d);
@@ -10842,7 +12372,7 @@ Index: gcc/cp/pt.c
    code_pattern = DECL_TEMPLATE_RESULT (td);
  
    /* We should never be trying to instantiate a member of a class
-@@ -21733,9 +21732,7 @@
+@@ -21733,9 +21733,7 @@
         outside the class, we may have too many arguments.  Drop the
         ones we don't need.  The same is true for specializations.  */
      args = get_innermost_template_args
@@ -10853,7 +12383,7 @@ Index: gcc/cp/pt.c
  
    if (TREE_CODE (d) == FUNCTION_DECL)
      {
-@@ -21901,7 +21898,7 @@
+@@ -21901,7 +21899,7 @@
  
    /* Regenerate the declaration in case the template has been modified
       by a subsequent redeclaration.  */
@@ -11148,6 +12678,23 @@ Index: gcc/cp/name-lookup.h
  extern tree lookup_name_nonclass (tree);
  extern tree lookup_name_innermost_nonclass_level (tree);
  extern bool is_local_extern (tree);
+Index: gcc/config.in
+===================================================================
+--- a/src/gcc/config.in	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/config.in	(.../branches/gcc-6-branch)
+@@ -622,6 +622,12 @@
+ #endif
+ 
+ 
++/* Define if your assembler supports SPARC5 and VIS 4.0 instructions. */
++#ifndef USED_FOR_TARGET
++#undef HAVE_AS_SPARC5_VIS4
++#endif
++
++
+ /* Define if your assembler and linker support GOTDATA_OP relocs. */
+ #ifndef USED_FOR_TARGET
+ #undef HAVE_AS_SPARC_GOTDATA_OP
 Index: gcc/ipa-inline.h
 ===================================================================
 --- a/src/gcc/ipa-inline.h	(.../tags/gcc_6_1_0_release)
@@ -11475,7 +13022,22 @@ Index: gcc/ada/ChangeLog
 ===================================================================
 --- a/src/gcc/ada/ChangeLog	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/ada/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,67 @@
+@@ -1,3 +1,82 @@
++2016-06-06  Eric Botcazou  <ebotcazou at adacore.com>
++
++	* gcc-interface/utils.c (gnat_internal_attribute_table): Add support
++	for noinline and noclone attributes.
++	(handle_noinline_attribute): New handler.
++	(handle_noclone_attribute): Likewise.
++
++2016-06-06  Eric Botcazou  <ebotcazou at adacore.com>
++
++	* gcc-interface/utils2.c (build_call_alloc_dealloc): Do not substitute
++	placeholder expressions here but...
++	* gcc-interface/trans.c (gnat_to_gnu) <N_Free_Statement>: ...here.
++	Make an exception to the protection of a CALL_EXPR result with an
++	unconstrained type only in the same cases as Call_to_gnu.
++
 +2016-06-01  Simon Wright  <simon at pushface.org>
 +
 +	PR ada/71358
@@ -11665,6 +13227,82 @@ Index: gcc/ada/system-linux-mips64el.ads
     type Name is (SYSTEM_NAME_GNAT);
     System_Name : constant Name := SYSTEM_NAME_GNAT;
  
+Index: gcc/ada/gcc-interface/utils.c
+===================================================================
+--- a/src/gcc/ada/gcc-interface/utils.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/ada/gcc-interface/utils.c	(.../branches/gcc-6-branch)
+@@ -90,6 +90,8 @@
+ static tree handle_nonnull_attribute (tree *, tree, tree, int, bool *);
+ static tree handle_sentinel_attribute (tree *, tree, tree, int, bool *);
+ static tree handle_noreturn_attribute (tree *, tree, tree, int, bool *);
++static tree handle_noinline_attribute (tree *, tree, tree, int, bool *);
++static tree handle_noclone_attribute (tree *, tree, tree, int, bool *);
+ static tree handle_leaf_attribute (tree *, tree, tree, int, bool *);
+ static tree handle_always_inline_attribute (tree *, tree, tree, int, bool *);
+ static tree handle_malloc_attribute (tree *, tree, tree, int, bool *);
+@@ -121,6 +123,10 @@
+     false },
+   { "noreturn",     0, 0,  true,  false, false, handle_noreturn_attribute,
+     false },
++  { "noinline",     0, 0,  true,  false, false, handle_noinline_attribute,
++    false },
++  { "noclone",      0, 0,  true,  false, false, handle_noclone_attribute,
++    false },
+   { "leaf",         0, 0,  true,  false, false, handle_leaf_attribute,
+     false },
+   { "always_inline",0, 0,  true,  false, false, handle_always_inline_attribute,
+@@ -5974,6 +5980,51 @@
+   return NULL_TREE;
+ }
+ 
++/* Handle a "noinline" attribute; arguments as in
++   struct attribute_spec.handler.  */
++
++static tree
++handle_noinline_attribute (tree *node, tree name,
++			   tree ARG_UNUSED (args),
++			   int ARG_UNUSED (flags), bool *no_add_attrs)
++{
++  if (TREE_CODE (*node) == FUNCTION_DECL)
++    {
++      if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (*node)))
++	{
++	  warning (OPT_Wattributes, "%qE attribute ignored due to conflict "
++		   "with attribute %qs", name, "always_inline");
++	  *no_add_attrs = true;
++	}
++      else
++	DECL_UNINLINABLE (*node) = 1;
++    }
++  else
++    {
++      warning (OPT_Wattributes, "%qE attribute ignored", name);
++      *no_add_attrs = true;
++    }
++
++  return NULL_TREE;
++}
++
++/* Handle a "noclone" attribute; arguments as in
++   struct attribute_spec.handler.  */
++
++static tree
++handle_noclone_attribute (tree *node, tree name,
++			  tree ARG_UNUSED (args),
++			  int ARG_UNUSED (flags), bool *no_add_attrs)
++{
++  if (TREE_CODE (*node) != FUNCTION_DECL)
++    {
++      warning (OPT_Wattributes, "%qE attribute ignored", name);
++      *no_add_attrs = true;
++    }
++
++  return NULL_TREE;
++}
++
+ /* Handle a "leaf" attribute; arguments as in
+    struct attribute_spec.handler.  */
+ 
 Index: gcc/ada/gcc-interface/Makefile.in
 ===================================================================
 --- a/src/gcc/ada/gcc-interface/Makefile.in	(.../tags/gcc_6_1_0_release)
@@ -11683,6 +13321,69 @@ Index: gcc/ada/gcc-interface/Makefile.in
  
  install-gnatlib: ../stamp-gnatlib-$(RTSDIR) install-gcc-specs
  	$(RMDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
+Index: gcc/ada/gcc-interface/utils2.c
+===================================================================
+--- a/src/gcc/ada/gcc-interface/utils2.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/ada/gcc-interface/utils2.c	(.../branches/gcc-6-branch)
+@@ -2266,8 +2266,6 @@
+                           Entity_Id gnat_proc, Entity_Id gnat_pool,
+                           Node_Id gnat_node)
+ {
+-  gnu_size = SUBSTITUTE_PLACEHOLDER_IN_EXPR (gnu_size, gnu_obj);
+-
+   /* Explicit proc to call ?  This one is assumed to deal with the type
+      alignment constraints.  */
+   if (Present (gnat_proc))
+Index: gcc/ada/gcc-interface/trans.c
+===================================================================
+--- a/src/gcc/ada/gcc-interface/trans.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/ada/gcc-interface/trans.c	(.../branches/gcc-6-branch)
+@@ -7635,10 +7635,11 @@
+ 	  else
+ 	    gnu_actual_obj_type = gnu_obj_type;
+ 
++	  tree gnu_size = TYPE_SIZE_UNIT (gnu_actual_obj_type);
++	  gnu_size = SUBSTITUTE_PLACEHOLDER_IN_EXPR (gnu_size, gnu_ptr);
++
+ 	  gnu_result
+-	      = build_call_alloc_dealloc (gnu_ptr,
+-					  TYPE_SIZE_UNIT (gnu_actual_obj_type),
+-					  gnu_obj_type,
++	      = build_call_alloc_dealloc (gnu_ptr, gnu_size, gnu_obj_type,
+ 					  Procedure_To_Call (gnat_node),
+ 					  Storage_Pool (gnat_node),
+ 					  gnat_node);
+@@ -7719,16 +7720,22 @@
+ 				    N_Raise_Constraint_Error));
+     }
+ 
+-  /* If the result has side-effects and is of an unconstrained type, make a
+-     SAVE_EXPR so that we can be sure it will only be referenced once.  But
+-     this is useless for a call to a function that returns an unconstrained
+-     type with default discriminant, as we cannot compute the size of the
+-     actual returned object.  We must do this before any conversions.  */
++  /* If the result has side-effects and is of an unconstrained type, protect
++     the expression in case it will be referenced multiple times, i.e. for
++     its value and to compute the size of an object.  But do it neither for
++     an object nor a renaming declaration, nor a return statement of a call
++     to a function that returns an unconstrained record type with default
++     discriminant, because there is no size to be computed in these cases
++     and this will create a useless temporary.  We must do this before any
++     conversions.  */
+   if (TREE_SIDE_EFFECTS (gnu_result)
++      && (TREE_CODE (gnu_result_type) == UNCONSTRAINED_ARRAY_TYPE
++	  || CONTAINS_PLACEHOLDER_P (TYPE_SIZE (gnu_result_type)))
+       && !(TREE_CODE (gnu_result) == CALL_EXPR
+-	   && type_is_padding_self_referential (TREE_TYPE (gnu_result)))
+-      && (TREE_CODE (gnu_result_type) == UNCONSTRAINED_ARRAY_TYPE
+-	  || CONTAINS_PLACEHOLDER_P (TYPE_SIZE (gnu_result_type))))
++	   && type_is_padding_self_referential (TREE_TYPE (gnu_result))
++	   && (Nkind (Parent (gnat_node)) == N_Object_Declaration
++	       || Nkind (Parent (gnat_node)) == N_Object_Renaming_Declaration
++	       || Nkind (Parent (gnat_node)) == N_Simple_Return_Statement)))
+     gnu_result = gnat_protect_expr (gnu_result);
+ 
+   /* Now convert the result to the result type, unless we are in one of the
 Index: gcc/ada/gcc-interface/misc.c
 ===================================================================
 --- a/src/gcc/ada/gcc-interface/misc.c	(.../tags/gcc_6_1_0_release)
@@ -12194,6 +13895,24 @@ Index: gcc/fortran/trans-expr.c
        return !expr->ts.u.derived->attr.alloc_comp;
  
      default:
+Index: gcc/fortran/trans-array.c
+===================================================================
+--- a/src/gcc/fortran/trans-array.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/fortran/trans-array.c	(.../branches/gcc-6-branch)
+@@ -6376,7 +6376,12 @@
+       stmtCleanup = gfc_finish_block (&cleanup);
+ 
+       /* Only do the cleanup if the array was repacked.  */
+-      tmp = build_fold_indirect_ref_loc (input_location, dumdesc);
++      if (is_classarray)
++	/* For a class array the dummy array descriptor is in the _class
++	   component.  */
++	tmp = gfc_class_data_get (dumdesc);
++      else
++	tmp = build_fold_indirect_ref_loc (input_location, dumdesc);
+       tmp = gfc_conv_descriptor_data_get (tmp);
+       tmp = fold_build2_loc (input_location, NE_EXPR, boolean_type_node,
+ 			     tmp, tmpdesc);
 Index: gcc/fortran/symbol.c
 ===================================================================
 --- a/src/gcc/fortran/symbol.c	(.../tags/gcc_6_1_0_release)
@@ -13552,7 +15271,14 @@ Index: gcc/fortran/ChangeLog
 ===================================================================
 --- a/src/gcc/fortran/ChangeLog	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/fortran/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,142 @@
+@@ -1,3 +1,149 @@
++2016-06-05  Andre Vehreschild  <vehre at gcc.gnu.org>
++
++	PR fortran/69659
++	* trans-array.c (gfc_trans_dummy_array_bias): For class arrays use
++	the address of the _data component to reference the arrays data
++	component.
++
 +2016-06-01  Paul Thomas  <pault at gcc.gnu.org>
 +
 +	PR fortran/71156
@@ -16529,6 +18255,29 @@ Index: gcc/fortran/options.c
      }
  
    Fortran_handle_option_auto (&global_options, &global_options_set, 
+Index: gcc/configure.ac
+===================================================================
+--- a/src/gcc/configure.ac	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/configure.ac	(.../branches/gcc-6-branch)
+@@ -3906,6 +3906,18 @@
+       [AC_DEFINE(HAVE_AS_SPARC4, 1,
+                 [Define if your assembler supports SPARC4 instructions.])])
+ 
++    gcc_GAS_CHECK_FEATURE([SPARC5 and VIS 4.0 instructions],
++      gcc_cv_as_sparc_sparc5,,
++      [-xarch=sparc5],
++      [.text
++       .register %g2, #scratch
++       .register %g3, #scratch
++       .align 4
++       subxc %g1, %g2, %g3
++       fpadd8 %f0, %f2, %f4],,
++      [AC_DEFINE(HAVE_AS_SPARC5_VIS4, 1,
++                [Define if your assembler supports SPARC5 and VIS 4.0 instructions.])])
++
+     gcc_GAS_CHECK_FEATURE([LEON instructions],
+       gcc_cv_as_sparc_leon,,
+       [-Aleon],
 Index: gcc/BASE-VER
 ===================================================================
 --- a/src/gcc/BASE-VER	(.../tags/gcc_6_1_0_release)
@@ -57212,15 +58961,20 @@ Index: gcc/po/fr.po
 ===================================================================
 --- a/src/gcc/po/fr.po	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/po/fr.po	(.../branches/gcc-6-branch)
-@@ -124,7 +124,7 @@
+@@ -122,10 +122,10 @@
+ #
+ msgid ""
  msgstr ""
- "Project-Id-Version: gcc 6.1-b20160131\n"
+-"Project-Id-Version: gcc 6.1-b20160131\n"
++"Project-Id-Version: gcc 6.1.0\n"
  "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
 -"POT-Creation-Date: 2016-01-31 15:50+0000\n"
+-"PO-Revision-Date: 2016-03-17 00:28+0100\n"
 +"POT-Creation-Date: 2016-04-21 15:24+0000\n"
- "PO-Revision-Date: 2016-03-17 00:28+0100\n"
++"PO-Revision-Date: 2016-06-02 00:10+0200\n"
  "Last-Translator: Stéphane Aulery <lkppo at free.fr>\n"
  "Language-Team: French <traduc at traduc.org>\n"
+ "Language: fr\n"
 @@ -209,32 +209,32 @@
  msgid "const/copy propagation disabled"
  msgstr "propagation de const / copie désactivée"
@@ -57388,7 +59142,7 @@ Index: gcc/po/fr.po
  #, c-format
  msgid ""
  "Use \"-Wa,OPTION\" to pass \"OPTION\" to the assembler.\n"
-@@ -1197,7 +1197,7 @@
+@@ -1197,16 +1197,15 @@
  msgid "GCSE disabled"
  msgstr "GCSE désactivé"
  
@@ -57397,7 +59151,30 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "function returns address of local variable"
  msgstr "cette fonction retourne l'adresse d'une variable locale"
-@@ -1302,11 +1302,11 @@
+ 
+ #: gimple-ssa-isolate-paths.c:442 gimple-ssa-isolate-paths.c:287
+-#, fuzzy, gcc-internal-format
+-#| msgid "function returns address of local variable"
++#, gcc-internal-format
+ msgid "function may return address of local variable"
+-msgstr "cette fonction retourne l'adresse d'une variable locale"
++msgstr "cette fonction peut retourner l'adresse d'une variable locale"
+ 
+ #: incpath.c:72
+ #, c-format
+@@ -1253,10 +1252,8 @@
+ msgstr "fonction peut être une candidate pour l'attribut %<%s%>"
+ 
+ #: ipa-pure-const.c:188
+-#, fuzzy
+-#| msgid "function might be possible candidate for attribute `noreturn'"
+ msgid "function might be candidate for attribute %<%s%> if it is known to return normally"
+-msgstr "fonction peut être une possible candidate pour l'attribut « norreturn »"
++msgstr "fonction peut être une candidate possible pour l'attribut %<%s%> si elle connue pour returner normallement"
+ 
+ #: langhooks.c:373
+ msgid "At top level:"
+@@ -1302,11 +1299,11 @@
  msgid "cannot optimize loop, the loop counter may overflow"
  msgstr ""
  
@@ -57411,7 +59188,7 @@ Index: gcc/po/fr.po
  msgid "unable to generate reloads for:"
  msgstr "incapable de générer des recharges pour:"
  
-@@ -1319,89 +1319,89 @@
+@@ -1319,89 +1316,89 @@
  msgid "Uses of this option are diagnosed."
  msgstr ""
  
@@ -57521,7 +59298,7 @@ Index: gcc/po/fr.po
  msgid "The following options are language-related"
  msgstr "Les options suivantes concernent les langages"
  
-@@ -1419,16 +1419,16 @@
+@@ -1419,16 +1416,16 @@
  msgstr ""
  
  #. It's the compiler's fault.
@@ -57541,7 +59318,7 @@ Index: gcc/po/fr.po
  msgid "failure trying to reload:"
  msgstr ""
  
-@@ -1440,16 +1440,16 @@
+@@ -1440,16 +1437,16 @@
  msgid "insn does not satisfy its constraints:"
  msgstr "insn ne satisfait pas à ses contraintes:"
  
@@ -57561,7 +59338,7 @@ Index: gcc/po/fr.po
  msgid "created and used with different settings of -fpie"
  msgstr "créé et utilisé avec des configurations différentes de -fpie"
  
-@@ -1515,7 +1515,7 @@
+@@ -1515,7 +1512,7 @@
  msgid "options enabled: "
  msgstr "options autorisées : "
  
@@ -57570,7 +59347,199 @@ Index: gcc/po/fr.po
  #: cp/error.c:992 c-family/c-pretty-print.c:408
  #, gcc-internal-format
  msgid "<anonymous>"
-@@ -2592,51 +2592,61 @@
+@@ -1542,16 +1539,12 @@
+ msgstr "fonction ne peut être enligne"
+ 
+ #: cif-code.def:60
+-#, fuzzy
+-#| msgid "function cannot be inline"
+ msgid "function body can be overwritten at link time"
+-msgstr "fonction ne pas pas être enligne"
++msgstr "le corps de la fonction peut être remplacé durant l’édition de liaison"
+ 
+ #: cif-code.def:64
+-#, fuzzy
+-#| msgid "function not inlinable"
+ msgid "function not inline candidate"
+-msgstr "fonction ne peut être enligne"
++msgstr "la fonction n’est pas une candidate à l'enlignage"
+ 
+ #: cif-code.def:68
+ msgid "--param large-function-growth limit reached"
+@@ -1610,18 +1603,12 @@
+ msgstr "Autoriser le traitement des exceptions"
+ 
+ #: cif-code.def:113
+-#, fuzzy
+-#| msgid ""
+-#| "\n"
+-#| "Target specific options:\n"
+ msgid "target specific option mismatch"
+-msgstr "Options spécifiques à la cible:\n"
++msgstr "option spécifique de cible incohérente"
+ 
+ #: cif-code.def:117
+-#, fuzzy
+-#| msgid "optimization level restored"
+ msgid "optimization level attribute mismatch"
+-msgstr "niveau d'optimisation restauré"
++msgstr "attribut de niveau d’optimisation incohérent"
+ 
+ #: cif-code.def:121
+ msgid "callee refers to comdat-local symbols"
+@@ -1629,7 +1616,7 @@
+ 
+ #: cif-code.def:125
+ msgid "function attribute mismatch"
+-msgstr ""
++msgstr "attribut de fonction incohérent"
+ 
+ #: cif-code.def:129
+ #, fuzzy
+@@ -1650,7 +1637,7 @@
+ #. when reporting fatal signal in the compiler.
+ #: diagnostic.def:34 diagnostic.def:50
+ msgid "internal compiler error: "
+-msgstr "erreur interne du compilateur: "
++msgstr "erreur interne du compilateur : "
+ 
+ #. This one is just for counting DK_WARNING promoted to DK_ERROR
+ #. due to -Werror and -Werror=warning.
+@@ -1660,7 +1647,7 @@
+ 
+ #: diagnostic.def:36
+ msgid "sorry, unimplemented: "
+-msgstr "désolé, pas implanté: "
++msgstr "désolé, pas implanté : "
+ 
+ #: diagnostic.def:37
+ msgid "warning: "
+@@ -1794,10 +1781,9 @@
+ msgstr "Croissance maximal en raison de l'enlignage d'une grande fonction (en pourcentage)."
+ 
+ #: params.def:193
+-#, fuzzy, no-c-format
+-#| msgid "The size of function body to be considered large"
++#, no-c-format
+ msgid "The size of translation unit to be considered large."
+-msgstr "La taille du corps de la fonction est considéré comme étant grande"
++msgstr "La taille de l’unité de traduction considérée comme étant grande."
+ 
+ #: params.def:197
+ #, no-c-format
+@@ -1987,10 +1973,9 @@
+ msgstr ""
+ 
+ #: params.def:417
+-#, fuzzy, no-c-format
+-#| msgid "The maximum number of instructions when automatically inlining"
++#, no-c-format
+ msgid "The maximum number of loop iterations we predict statically."
+-msgstr "Le nombre maximum d'instructions lorsqu'automatiquement de type enligne"
++msgstr "Le nombre maximum d’itérations de boucle à prédire statiquement."
+ 
+ #: params.def:430
+ #, no-c-format
+@@ -2044,10 +2029,9 @@
+ msgstr ""
+ 
+ #: params.def:478
+-#, fuzzy, no-c-format
+-#| msgid "The maximum number of insns of an unswitched loop"
++#, no-c-format
+ msgid "The maximum number of insns to duplicate when unfactoring computed gotos."
+-msgstr "Le nombre maximum d'insns d'une boucle sans branchement"
++msgstr "Le nombre maximum d'insns à dupliquer lors des supressions de goto."
+ 
+ #: params.def:484
+ #, no-c-format
+@@ -2055,10 +2039,9 @@
+ msgstr "La longueur maximale des chemins considérés dans cse."
+ 
+ #: params.def:488
+-#, fuzzy, no-c-format
+-#| msgid "The maximum number of instructions for the RTL inliner"
++#, no-c-format
+ msgid "The maximum instructions CSE process before flushing."
+-msgstr "Le nombre maximum d'instructions pour la fonction d'enlignage RTL"
++msgstr "Le nombre maximum d'instructions de processus CSE avant vidage du buffer."
+ 
+ #: params.def:495
+ #, no-c-format
+@@ -2133,10 +2116,9 @@
+ msgstr ""
+ 
+ #: params.def:586 params.def:596
+-#, fuzzy, no-c-format
+-#| msgid "The maximum number of incoming edges to consider for crossjumping"
++#, no-c-format
+ msgid "The maximum number of blocks in a region to be considered for interblock scheduling."
+-msgstr "Le nombre maximum de bordures à considérer pour les sauts croisés"
++msgstr "Le nombre maximum de blocs dans une région à considérer pour la gestion des interblocages."
+ 
+ #: params.def:591 params.def:601
+ #, fuzzy, no-c-format
+@@ -2329,10 +2311,9 @@
+ msgstr ""
+ 
+ #: params.def:842
+-#, fuzzy, no-c-format
+-#| msgid "The maximum number of peelings of a single loop"
++#, no-c-format
+ msgid "maximum number of parameters in a SCoP."
+-msgstr "Le nombre maximum de passes de réduction d'une boucle simple"
++msgstr "Le nombre maximum de paramètres dans un scope."
+ 
+ #: params.def:849
+ #, no-c-format
+@@ -2340,10 +2321,9 @@
+ msgstr ""
+ 
+ #: params.def:856
+-#, fuzzy, no-c-format
+-#| msgid "The maximum number of peelings of a single loop"
++#, no-c-format
+ msgid "maximum number of arrays per scop."
+-msgstr "Le nombre maximum de passes de réduction d'une boucle simple"
++msgstr "Le nombre maximum de tableaux par scope."
+ 
+ #: params.def:863
+ #, no-c-format
+@@ -2351,10 +2331,9 @@
+ msgstr ""
+ 
+ #: params.def:868
+-#, fuzzy, no-c-format
+-#| msgid "The maximum number of insns of an unswitched loop"
++#, no-c-format
+ msgid "maximum number of isl operations, 0 means unlimited"
+-msgstr "Le nombre maximum d'insns d'une boucle sans branchement"
++msgstr "Le nombre maximum d'opérations isl, 0 pour illimité"
+ 
+ #: params.def:874
+ #, no-c-format
+@@ -2536,16 +2515,14 @@
+ msgstr "Exécuter un réduction en force des optimisations"
+ 
+ #: params.def:1102
+-#, fuzzy, no-c-format
+-#| msgid "Enable stack probing"
++#, no-c-format
+ msgid "Enable asan stack protection."
+-msgstr "Autoriser le sondage de la pile"
++msgstr "Autoriser la protection de pile asan"
+ 
+ #: params.def:1107
+-#, fuzzy, no-c-format
+-#| msgid "Enable parallel instructions"
++#, no-c-format
+ msgid "Enable asan globals protection."
+-msgstr "Autoriser les instructions parallèles"
++msgstr "Autoriser la protection des constantes asan."
+ 
+ #: params.def:1112
+ #, fuzzy, no-c-format
+@@ -2592,51 +2569,61 @@
  
  #: params.def:1155
  #, no-c-format
@@ -57640,7 +59609,7 @@ Index: gcc/po/fr.po
  #: c-family/c-format.c:417
  msgid "format"
  msgstr "format"
-@@ -2910,48 +2920,48 @@
+@@ -2910,48 +2897,48 @@
  msgid "<command-line>"
  msgstr "<ligne-de-commande>"
  
@@ -57703,7 +59672,7 @@ Index: gcc/po/fr.po
  #, c-format
  msgid "'%%&' used without any local dynamic TLS references"
  msgstr ""
-@@ -2967,18 +2977,18 @@
+@@ -2967,18 +2954,18 @@
  msgstr "valeur %%r invalide"
  
  #: config/alpha/alpha.c:5200 config/ia64/ia64.c:5436
@@ -57725,7 +59694,7 @@ Index: gcc/po/fr.po
  #, c-format
  msgid "invalid %%P value"
  msgstr "valeur %%P invalide"
-@@ -3009,7 +3019,7 @@
+@@ -3009,7 +2996,7 @@
  msgstr "valeur %%U invalide"
  
  #: config/alpha/alpha.c:5300 config/alpha/alpha.c:5311
@@ -57734,7 +59703,7 @@ Index: gcc/po/fr.po
  #, c-format
  msgid "invalid %%s value"
  msgstr "valeur %%s invalide"
-@@ -3019,7 +3029,7 @@
+@@ -3019,7 +3006,7 @@
  msgid "invalid %%C value"
  msgstr "valeur %%C invalide"
  
@@ -57743,7 +59712,7 @@ Index: gcc/po/fr.po
  #, c-format
  msgid "invalid %%E value"
  msgstr "valeur %%E invalide"
-@@ -3030,7 +3040,7 @@
+@@ -3030,7 +3017,7 @@
  msgstr "relocalisation unspec inconnue"
  
  #: config/alpha/alpha.c:5393 config/cr16/cr16.c:1531
@@ -57752,7 +59721,7 @@ Index: gcc/po/fr.po
  #, c-format
  msgid "invalid %%xn code"
  msgstr "valeur %%xn invalide"
-@@ -3040,42 +3050,42 @@
+@@ -3040,42 +3027,42 @@
  msgid "invalid operand address"
  msgstr "adresse d'opérande invalide"
  
@@ -57803,7 +59772,7 @@ Index: gcc/po/fr.po
  #, c-format
  msgid "invalid operand to %%O code"
  msgstr "opérande invalide pour le code %%O"
-@@ -3082,42 +3092,42 @@
+@@ -3082,42 +3069,42 @@
  
  #. Unknown flag.
  #. Undocumented flag.
@@ -57860,7 +59829,7 @@ Index: gcc/po/fr.po
  #: config/bfin/bfin.c:1443 config/bfin/bfin.c:1450 config/bfin/bfin.c:1457
  #: config/bfin/bfin.c:1466 config/bfin/bfin.c:1473 config/bfin/bfin.c:1480
  #: config/bfin/bfin.c:1487
-@@ -3126,102 +3136,102 @@
+@@ -3126,102 +3113,102 @@
  msgstr "opérande invalide pour « %c »"
  
  # FIXME: c'est de l'assembleur ?
@@ -57987,7 +59956,7 @@ Index: gcc/po/fr.po
  #, fuzzy
  #| msgid "unsupported version"
  msgid "unsupported fixed-point conversion"
-@@ -3254,9 +3264,9 @@
+@@ -3254,9 +3241,9 @@
  msgstr "opérande const_double invalide"
  
  #: config/cris/cris.c:612 config/ft32/ft32.c:104 config/moxie/moxie.c:103
@@ -58000,7 +59969,7 @@ Index: gcc/po/fr.po
  #: lto/lto-object.c:184 lto/lto-object.c:281 lto/lto-object.c:338
  #: lto/lto-object.c:362
  #, gcc-internal-format, gfc-internal-format
-@@ -3515,63 +3525,63 @@
+@@ -3515,63 +3502,63 @@
  msgid "bad output_condmove_single operand"
  msgstr "opérande output_condmove_single erronée"
  
@@ -58076,7 +60045,7 @@ Index: gcc/po/fr.po
  msgid "unknown insn mode"
  msgstr "mode insn inconnu"
  
-@@ -3617,7 +3627,7 @@
+@@ -3617,7 +3604,7 @@
  msgid "invalid %%P operand"
  msgstr "opérande %%P invalide"
  
@@ -58085,7 +60054,7 @@ Index: gcc/po/fr.po
  #, c-format
  msgid "invalid %%p value"
  msgstr "valeur %%p invalide"
-@@ -3681,7 +3691,7 @@
+@@ -3681,7 +3668,7 @@
  msgstr "post-incrément d'adresse n'est pas un registre"
  
  #: config/m32r/m32r.c:2328 config/m32r/m32r.c:2343
@@ -58094,7 +60063,7 @@ Index: gcc/po/fr.po
  msgid "bad address"
  msgstr "adresse erronée"
  
-@@ -3781,12 +3791,12 @@
+@@ -3781,12 +3768,12 @@
  msgid "MMIX Internal: This is not a constant:"
  msgstr "interne MMIX: ce n'est pas une constante:"
  
@@ -58109,7 +60078,7 @@ Index: gcc/po/fr.po
  #, c-format
  msgid "invalid zero extract"
  msgstr ""
-@@ -3806,293 +3816,293 @@
+@@ -3806,293 +3793,293 @@
  msgid "Try running '%s' in the shell to raise its limit.\n"
  msgstr "Essayer d'exécuter « %s » dans le shell pour augmenter la limite.\n"
  
@@ -58464,7 +60433,7 @@ Index: gcc/po/fr.po
  msgid "binary operator does not support mixing vector bool with floating point vector operands"
  msgstr ""
  
-@@ -4106,55 +4116,55 @@
+@@ -4106,55 +4093,55 @@
  msgid "invalid operand to %%S"
  msgstr "opérande invalide pour %%S"
  
@@ -58531,7 +60500,7 @@ Index: gcc/po/fr.po
  #, fuzzy, c-format
  #| msgid "floating point constant not a valid immediate operand"
  msgid "floating-point constant not a valid immediate operand"
-@@ -4294,23 +4304,23 @@
+@@ -4294,23 +4281,23 @@
  msgid "illegal operand detected"
  msgstr "opérande illégale détectée"
  
@@ -58560,7 +60529,7 @@ Index: gcc/po/fr.po
  msgid "illegal operand address (4)"
  msgstr "adresse d'opérande illégale (4)"
  
-@@ -4354,176 +4364,176 @@
+@@ -4354,176 +4341,176 @@
  msgid "({anonymous})"
  msgstr "({anonyme})"
  
@@ -58816,7 +60785,7 @@ Index: gcc/po/fr.po
  msgid "candidate 2:"
  msgstr "candidat 2 :"
  
-@@ -4739,112 +4749,112 @@
+@@ -4739,112 +4726,112 @@
  msgid "%r%s:%d:%R   in constexpr expansion of %qs"
  msgstr ""
  
@@ -58951,7 +60920,7 @@ Index: gcc/po/fr.po
  msgid "no post-decrement operator for type"
  msgstr ""
  
-@@ -5033,13 +5043,13 @@
+@@ -5033,13 +5020,13 @@
  msgid "%s tag"
  msgstr "tag %s"
  
@@ -58967,7 +60936,7 @@ Index: gcc/po/fr.po
  #, c-format
  msgid "%s tag with INQUIRE"
  msgstr ""
-@@ -5151,11 +5161,11 @@
+@@ -5151,11 +5138,11 @@
  msgid "implied END DO"
  msgstr "implique END DO"
  
@@ -58981,7 +60950,7 @@ Index: gcc/po/fr.po
  msgid "pointer assignment"
  msgstr "affectation de pointeur"
  
-@@ -5376,19 +5386,19 @@
+@@ -5376,19 +5363,19 @@
  msgid "ALLOCATE object"
  msgstr "object ALLOCATE"
  
@@ -59005,7 +60974,7 @@ Index: gcc/po/fr.po
  msgid "ACQUIRED_LOCK variable"
  msgstr "variable ACQUIRED_LOCK"
  
-@@ -5397,26 +5407,26 @@
+@@ -5397,26 +5384,26 @@
  msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
  msgstr ""
  
@@ -59037,7 +61006,7 @@ Index: gcc/po/fr.po
  msgid "Assignment of scalar to unallocated array"
  msgstr ""
  
-@@ -5452,16 +5462,16 @@
+@@ -5452,16 +5439,16 @@
  msgid "Assigned label is not a target label"
  msgstr "mode dans l'étiquette n'est pas discret"
  
@@ -59057,7 +61026,7 @@ Index: gcc/po/fr.po
  msgid "DO step value is zero"
  msgstr ""
  
-@@ -5757,18 +5767,10 @@
+@@ -5757,18 +5744,10 @@
  msgid "-E or -x required when input is from standard input"
  msgstr "-E ou -x est requis lorsque l'entrée est faite à partir de l'entrée standard"
  
@@ -59079,7 +61048,7 @@ Index: gcc/po/fr.po
  #: config/sol2.h:181
  #, fuzzy
  #| msgid "-m%s not supported in this configuration"
-@@ -5817,28 +5819,24 @@
+@@ -5817,28 +5796,24 @@
  msgid "-private_bundle not allowed with -dynamiclib"
  msgstr "-private_bundle n'est pas permis avec -dynamiclib"
  
@@ -59115,7 +61084,7 @@ Index: gcc/po/fr.po
  msgid "consider using '-pg' instead of '-p' with gprof(1)"
  msgstr ""
  
-@@ -5850,6 +5848,28 @@
+@@ -5850,6 +5825,28 @@
  msgid "objc-cpp-output is deprecated; please use objective-c-cpp-output instead"
  msgstr ""
  
@@ -59144,7 +61113,7 @@ Index: gcc/po/fr.po
  #: config/pa/pa-hpux10.h:102 config/pa/pa-hpux10.h:105
  #: config/pa/pa-hpux10.h:113 config/pa/pa-hpux10.h:116
  #: config/pa/pa-hpux11.h:134 config/pa/pa-hpux11.h:137
-@@ -5866,14 +5886,10 @@
+@@ -5866,14 +5863,10 @@
  msgid "  profiling support are only provided in archive format"
  msgstr ""
  
@@ -59162,7 +61131,7 @@ Index: gcc/po/fr.po
  #: config/cris/cris.h:184
  msgid "do not specify both -march=... and -mcpu=..."
  msgstr "ne peut spécifier à la fois -march=… et -mcpu=…"
-@@ -5882,24 +5898,18 @@
+@@ -5882,24 +5875,18 @@
  msgid "may not use both -EB and -EL"
  msgstr "ne peut utiliser ensemble -EB et -EL"
  
@@ -59194,7 +61163,7 @@ Index: gcc/po/fr.po
  #: config/sh/sh.h:375 config/sh/sh.h:378
  #, fuzzy
  #| msgid "does not support multilib"
-@@ -5906,18 +5916,6 @@
+@@ -5906,18 +5893,6 @@
  msgid "SH2a does not support little-endian"
  msgstr "ne supporte pas multilib"
  
@@ -59213,7 +61182,7 @@ Index: gcc/po/fr.po
  #: config/avr/specs.h:68
  msgid "shared is not supported"
  msgstr "shared n'est pas supporté"
-@@ -5926,10 +5924,6 @@
+@@ -5926,10 +5901,6 @@
  msgid "-mfloat-abi=soft and -mfloat-abi=hard may not be used together"
  msgstr "-mfloat-abi=soft et -mfloat-abi=hard ne peuvent être utilisées ensembles"
  
@@ -59224,7 +61193,7 @@ Index: gcc/po/fr.po
  #: config/vax/netbsd-elf.h:51
  #, fuzzy
  #| msgid "The -shared option is not currently supported for VAX ELF."
-@@ -5936,18 +5930,24 @@
+@@ -5936,18 +5907,24 @@
  msgid "the -shared option is not currently supported for VAX ELF"
  msgstr "L'option -shared n'est pas couramment supportée pour VAS ELF."
  
@@ -59255,7 +61224,7 @@ Index: gcc/po/fr.po
  #: config/lynx.h:69
  msgid "cannot use mthreads and mlegacy-threads together"
  msgstr ""
-@@ -5956,6 +5956,18 @@
+@@ -5956,6 +5933,18 @@
  msgid "cannot use mshared and static together"
  msgstr ""
  
@@ -59274,7 +61243,7 @@ Index: gcc/po/fr.po
  #: config/arm/freebsd.h:49
  msgid "consider using `-pg' instead of `-p' with gprof (1) "
  msgstr ""
-@@ -5978,6 +5990,10 @@
+@@ -5978,6 +5967,10 @@
  msgid "-femit-class-file should used along with -fsyntax-only"
  msgstr "-femit-class-file dervait être utilisé avec -fsyntax-only"
  
@@ -59285,7 +61254,7 @@ Index: gcc/po/fr.po
  #: fortran/lang.opt:146
  msgid "-J<directory>\tPut MODULE files in 'directory'."
  msgstr ""
-@@ -6203,10 +6219,10 @@
+@@ -6203,10 +6196,10 @@
  msgid "Allow dollar signs in entity names."
  msgstr ""
  
@@ -59300,7 +61269,7 @@ Index: gcc/po/fr.po
  msgid "Does nothing. Preserved for backward compatibility."
  msgstr ""
  
-@@ -6347,139 +6363,139 @@
+@@ -6347,139 +6340,139 @@
  msgid "Set default accessibility of module entities to PRIVATE."
  msgstr ""
  
@@ -59473,7 +61442,7 @@ Index: gcc/po/fr.po
  #, fuzzy
  #| msgid "Accept extensions to support legacy code"
  msgid "Accept extensions to support legacy code."
-@@ -6498,15 +6514,15 @@
+@@ -6498,15 +6491,15 @@
  
  #: c-family/c.opt:70 c-family/c.opt:73 c-family/c.opt:76 c-family/c.opt:79
  #: c-family/c.opt:175 c-family/c.opt:178 c-family/c.opt:216 c-family/c.opt:220
@@ -59493,7 +61462,7 @@ Index: gcc/po/fr.po
  #, c-format
  msgid "missing path after %qs"
  msgstr "cible manquante après %qs"
-@@ -6912,1417 +6928,1421 @@
+@@ -6912,1417 +6905,1421 @@
  
  #: c-family/c.opt:487
  #, fuzzy
@@ -61190,7 +63159,7 @@ Index: gcc/po/fr.po
  #, fuzzy
  #| msgid "Do not predefine system-specific and GCC-specific macros"
  msgid "Do not predefine system-specific and GCC-specific macros."
-@@ -9190,7 +9210,7 @@
+@@ -9190,7 +9187,7 @@
  msgstr ""
  
  #: config/aarch64/aarch64.opt:154
@@ -61199,7 +63168,7 @@ Index: gcc/po/fr.po
  msgstr ""
  
  #: config/linux.opt:24
-@@ -9650,6 +9670,12 @@
+@@ -9650,6 +9647,12 @@
  msgid "Use LRA instead of reload."
  msgstr "Utiliser le ROM au lieu de la RAM"
  
@@ -61212,7 +63181,7 @@ Index: gcc/po/fr.po
  #: config/h8300/h8300.opt:23
  #, fuzzy
  #| msgid "Generate H8S code"
-@@ -11051,7 +11077,7 @@
+@@ -11051,7 +11054,7 @@
  msgstr ""
  
  #: config/nvptx/nvptx.opt:34
@@ -61221,7 +63190,7 @@ Index: gcc/po/fr.po
  msgstr ""
  
  #: config/vxworks.opt:36
-@@ -11460,11 +11486,11 @@
+@@ -11460,11 +11463,11 @@
  msgid "Known ARM CPUs (for use with the -mcpu= and -mtune= options):"
  msgstr ""
  
@@ -61235,7 +63204,7 @@ Index: gcc/po/fr.po
  msgid "Known ARM FPUs (for use with the -mfpu= option):"
  msgstr ""
  
-@@ -15768,6 +15794,12 @@
+@@ -15768,6 +15771,12 @@
  msgid "Enable double load/store instructions for ARC HS."
  msgstr "Autoriser les instructions parallèles"
  
@@ -61248,7 +63217,7 @@ Index: gcc/po/fr.po
  #: java/lang.opt:122
  #, fuzzy
  #| msgid "Warn if deprecated empty statements are found"
-@@ -16103,2273 +16135,2281 @@
+@@ -16103,2273 +16112,2281 @@
  msgstr "-Wlarger-than-<nombre>\tavertir si un objet est plus grand que <nombre> d'octets"
  
  #: common.opt:621
@@ -63955,7 +65924,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "value computed is not used"
  msgstr "valeur calculée n'est pas utilisée"
-@@ -18399,8 +18439,8 @@
+@@ -18399,8 +18416,8 @@
  msgid "expected boolean type"
  msgstr "un nom de type attendu"
  
@@ -63966,7 +65935,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "Expected integer"
  msgid "expected integer"
-@@ -18836,91 +18876,91 @@
+@@ -18836,91 +18853,91 @@
  msgid "cannot use type %s as type %s"
  msgstr "ne peut convertir type « %T » vers le type « %T »"
  
@@ -64076,7 +66045,7 @@ Index: gcc/po/fr.po
  #: objc/objc-act.c:6925 objc/objc-act.c:8114 objc/objc-act.c:8165
  #, gcc-internal-format
  msgid "%qE attribute directive ignored"
-@@ -19042,7 +19082,7 @@
+@@ -19042,7 +19059,7 @@
  msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
  msgstr "troisième argument invalide de « __builtin_prefetch »; utilisation de zéro"
  
@@ -64085,7 +66054,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "too many arguments to function `va_start'"
  msgid "too few arguments to function %<va_start%>"
-@@ -19141,7 +19181,7 @@
+@@ -19141,7 +19158,7 @@
  
  #. All valid uses of __builtin_va_arg_pack () are removed during
  #. inlining.
@@ -64094,7 +66063,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>"
  msgstr ""
-@@ -19172,69 +19212,69 @@
+@@ -19172,69 +19189,69 @@
  msgid "target format does not support infinity"
  msgstr "le format cible ne supporte pas l'infini"
  
@@ -64177,7 +66146,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "%Kattempt to free a non-heap object"
  msgstr ""
-@@ -19250,76 +19290,76 @@
+@@ -19250,76 +19267,76 @@
  msgid "passing too large argument on stack"
  msgstr "Passer tous les arguments par la pile"
  
@@ -64268,7 +66237,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "stack protector not protecting function: all local arrays are less than %d bytes long"
  msgstr ""
-@@ -19422,103 +19462,103 @@
+@@ -19422,103 +19439,103 @@
  msgid "%s does not support can_remove_branch_p"
  msgstr "%s ne supporte pas %s"
  
@@ -64389,7 +66358,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "%s does not support %s"
  msgid "%s does not support flow_call_edges_add"
-@@ -19875,252 +19915,252 @@
+@@ -19875,252 +19892,252 @@
  msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
  msgstr "nombre de bb noté dans la chaîne d'insn (%d) != n_basic_blocks (%d)"
  
@@ -64690,7 +66659,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "verify_flow_info failed"
  msgid "verify_cgraph_node failed"
-@@ -20127,109 +20167,109 @@
+@@ -20127,109 +20144,109 @@
  msgstr "verify_flow_info a échoué"
  
  # FIXME
@@ -64819,7 +66788,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "nodes with unreleased memory found"
  msgstr ""
-@@ -20280,7 +20320,7 @@
+@@ -20280,7 +20297,7 @@
  msgid "pex_init failed: %m"
  msgstr "ouverture du fichier de sortie %s: %m"
  
@@ -64828,7 +66797,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%s: %s"
  msgid "%s: %m"
-@@ -20291,7 +20331,7 @@
+@@ -20291,7 +20308,7 @@
  msgid "COLLECT_LTO_WRAPPER must be set"
  msgstr ""
  
@@ -64837,7 +66806,7 @@ Index: gcc/po/fr.po
  #: config/i386/intelmic-mkoffload.c:554 config/nvptx/mkoffload.c:403
  #, gcc-internal-format
  msgid "atexit failed"
-@@ -20302,7 +20342,7 @@
+@@ -20302,7 +20319,7 @@
  msgid "no arguments"
  msgstr "pas d'argument"
  
@@ -64846,7 +66815,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "-m%s not supported in this configuration"
  msgid "LTO support has not been enabled in this configuration"
-@@ -20413,40 +20453,40 @@
+@@ -20413,40 +20430,40 @@
  msgid "conversion to incomplete type"
  msgstr "conversion vers un type incomplet"
  
@@ -64894,7 +66863,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "aggregate value used where a float was expected"
  msgid "aggregate value used where a fixed-point was expected"
-@@ -20517,7 +20557,7 @@
+@@ -20517,7 +20534,7 @@
  msgid "error writing %qs"
  msgstr "erreur d'écriture dans %qs"
  
@@ -64903,7 +66872,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "cannot open %s"
  msgstr "ne peut ouvrir %s"
-@@ -20567,7 +20607,7 @@
+@@ -20567,7 +20584,7 @@
  msgid "global constructors not supported on this target"
  msgstr "les limites de la pile ne sont pas supportées sur cette cible"
  
@@ -64912,7 +66881,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "in %s, at %s:%d"
  msgstr "dans %s, à %s:%d"
-@@ -20618,30 +20658,30 @@
+@@ -20618,30 +20635,30 @@
  msgid "non-delegitimized UNSPEC %s (%d) found in variable location"
  msgstr ""
  
@@ -64948,7 +66917,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
  msgstr "ICE : emit_insn utilisé là où emit_jump_insn était attendu :\n"
-@@ -20712,7 +20752,7 @@
+@@ -20712,7 +20729,7 @@
  msgstr "verify_flow_info a échoué"
  
  # FIXME
@@ -64957,7 +66926,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "stack limits not supported on this target"
  msgstr "les limites de la pile ne sont pas supportées sur cette cible"
-@@ -20738,13 +20778,13 @@
+@@ -20738,13 +20755,13 @@
  msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
  msgstr ""
  
@@ -64973,7 +66942,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%Jfunction '%D' redeclared with attribute noinline"
  msgid "%Kcall to %qs declared with attribute warning: %s"
-@@ -20780,49 +20820,49 @@
+@@ -20780,49 +20797,49 @@
  msgid "large fixed-point constant implicitly truncated to fixed-point type"
  msgstr "grand entier implicitement tronqué pour un type non signé"
  
@@ -65032,7 +67001,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "fold check: original tree changed by fold"
  msgstr "vérification fold: arbre originale modifié par fold"
-@@ -20833,7 +20873,7 @@
+@@ -20833,7 +20850,7 @@
  msgid "total size of local objects too large"
  msgstr "la taille du tableau « %s » est trop grande"
  
@@ -65041,7 +67010,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "impossible constraint in `asm'"
  msgid "impossible constraint in %<asm%>"
-@@ -20919,7 +20959,7 @@
+@@ -20919,7 +20936,7 @@
  msgid "%s (program %s)"
  msgstr "programmes: %s\n"
  
@@ -65050,7 +67019,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "unrecognized command line option \"%s\""
  msgid "unrecognized command line option %qs"
-@@ -21082,62 +21122,62 @@
+@@ -21082,62 +21099,62 @@
  msgid "%s: -fcompare-debug failure"
  msgstr ""
  
@@ -65124,7 +67093,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "comparison is always %d"
  msgid "comparing final insns dumps"
-@@ -21144,108 +21184,108 @@
+@@ -21144,108 +21161,108 @@
  msgstr "comparaison est toujours %d"
  
  # I18N
@@ -65252,7 +67221,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "too few arguments to function"
  msgid "too few arguments to %%:replace-extension"
-@@ -21285,12 +21325,12 @@
+@@ -21285,12 +21302,12 @@
  msgid "scale needs to be non-negative\n"
  msgstr ""
  
@@ -65267,7 +67236,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "%s: %d basic blocks and %d registers"
  msgid "%s: %d basic blocks and %d registers; increase --param max-gcse-memory above %d"
-@@ -21386,11 +21426,11 @@
+@@ -21386,11 +21403,11 @@
  msgid "can%'t write PCH file"
  msgstr "ne peut écrire dans le fichier PCH"
  
@@ -65284,7 +67253,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "  `%#D' declared here"
  msgid "declared here"
-@@ -21408,6 +21448,11 @@
+@@ -21408,6 +21425,11 @@
  msgid "null pointer dereference"
  msgstr "pointeur null"
  
@@ -65296,7 +67265,7 @@ Index: gcc/po/fr.po
  #: gimple-streamer-in.c:210
  #, gcc-internal-format, gfc-internal-format
  msgid "bytecode stream: unknown GIMPLE statement tag %s"
-@@ -21419,217 +21464,239 @@
+@@ -21419,217 +21441,239 @@
  msgid "gimple check: expected %s(%s), have %s(%s) in %s, at %s:%d"
  msgstr "vérification de l'arbre: attendait %s, obtenu %s dans %s, à %s:%d"
  
@@ -65575,7 +67544,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "if this code is reached, the program will abort"
  msgstr "si ce code est atteint, le programme s'arrêtera"
-@@ -21646,7 +21713,7 @@
+@@ -21646,7 +21690,7 @@
  msgid "could not open Go dump file %qs: %m"
  msgstr "ne peut ouvrir le fichier de vidange « %s »"
  
@@ -65584,7 +67553,7 @@ Index: gcc/po/fr.po
  #: objc/objc-act.c:461
  #, fuzzy, gcc-internal-format
  #| msgid "can't open %s: %m"
-@@ -21658,39 +21725,39 @@
+@@ -21658,39 +21702,39 @@
  msgid "Graphite loop optimizations cannot be used (isl is not available)."
  msgstr ""
  
@@ -65631,7 +67600,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "HSA image ops not handled"
  msgstr ""
-@@ -21721,309 +21788,309 @@
+@@ -21721,309 +21765,309 @@
  msgid "function cannot be instrumented"
  msgstr "fonction ne pas pas être enligne"
  
@@ -66001,7 +67970,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Declaring type %qD final would enable devirtualization of %i call"
  msgid_plural "Declaring type %qD final would enable devirtualization of %i calls"
-@@ -22030,7 +22097,7 @@
+@@ -22030,7 +22074,7 @@
  msgstr[0] ""
  msgstr[1] ""
  
@@ -66010,7 +67979,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Declaring type %qD final would enable devirtualization of %i call executed %lli times"
  msgid_plural "Declaring type %qD final would enable devirtualization of %i calls executed %lli times"
-@@ -22037,7 +22104,7 @@
+@@ -22037,7 +22081,7 @@
  msgstr[0] ""
  msgstr[1] ""
  
@@ -66019,7 +67988,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Declaring virtual destructor of %qD final would enable devirtualization of %i call"
  msgid_plural "Declaring virtual destructor of %qD final would enable devirtualization of %i calls"
-@@ -22044,7 +22111,7 @@
+@@ -22044,7 +22088,7 @@
  msgstr[0] ""
  msgstr[1] ""
  
@@ -66028,7 +67997,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Declaring method %qD final would enable devirtualization of %i call"
  msgid_plural "Declaring method %qD final would enable devirtualization of %i calls"
-@@ -22051,7 +22118,7 @@
+@@ -22051,7 +22095,7 @@
  msgstr[0] ""
  msgstr[1] ""
  
@@ -66037,7 +68006,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Declaring virtual destructor of %qD final would enable devirtualization of %i call executed %lli times"
  msgid_plural "Declaring virtual destructor of %qD final would enable devirtualization of %i calls executed %lli times"
-@@ -22058,7 +22125,7 @@
+@@ -22058,7 +22102,7 @@
  msgstr[0] ""
  msgstr[1] ""
  
@@ -66046,7 +68015,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Declaring method %qD final would enable devirtualization of %i call executed %lli times"
  msgid_plural "Declaring method %qD final would enable devirtualization of %i calls executed %lli times"
-@@ -22081,21 +22148,26 @@
+@@ -22081,21 +22125,26 @@
  msgid "ipa reference summary is missing in ltrans unit"
  msgstr ""
  
@@ -66076,7 +68045,7 @@ Index: gcc/po/fr.po
  #: lra-assigns.c:1395 reload1.c:1254
  #, fuzzy, gcc-internal-format
  #| msgid "asm operand %d probably doesn't match constraints"
-@@ -22108,18 +22180,18 @@
+@@ -22108,18 +22157,18 @@
  msgid "unable to find a register to spill"
  msgstr "incapable de trouver un registre de déversement dans la classe « %s »"
  
@@ -66098,7 +68067,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Max. number of generated reload insns per insn is achieved (%d)\n"
  msgstr ""
-@@ -22166,7 +22238,7 @@
+@@ -22166,7 +22215,7 @@
  msgid "cannot find LTO section refs in %s"
  msgstr "impossible de trouver le fichier source %s"
  
@@ -66107,7 +68076,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "invalid rotate insn"
  msgid "invalid offload table in %s"
-@@ -22216,13 +22288,13 @@
+@@ -22216,13 +22265,13 @@
  msgid "Reference statement index not found"
  msgstr "Avertir si des déclarations vides obsolètes sont trouvées"
  
@@ -66123,7 +68092,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "unsupported version"
  msgid "unsupported mode %s\n"
-@@ -22244,63 +22316,82 @@
+@@ -22244,63 +22293,82 @@
  msgid "bytecode stream generated with LTO version %d.%d instead of the expected %d.%d"
  msgstr ""
  
@@ -66222,7 +68191,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "fopen %s"
  msgid "fopen: %s: %m"
-@@ -22340,209 +22431,219 @@
+@@ -22340,209 +22408,219 @@
  msgid "attribute(target_clones(\"default\")) is not valid for current target"
  msgstr ""
  
@@ -66482,7 +68451,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "invalid argument of `%s' attribute"
  msgid "invalid entry to %s structured block"
-@@ -22549,83 +22650,88 @@
+@@ -22549,83 +22627,88 @@
  msgstr "type d'argument invalide pour l'attribut « %s »"
  
  #. Otherwise, be vague and lazy, but efficient.
@@ -66593,7 +68562,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid argument of `%s' attribute"
  msgid "valid arguments to %qs are: %s"
-@@ -22644,35 +22750,35 @@
+@@ -22644,35 +22727,35 @@
  msgid "command line option %qs is valid for %s but not for %s"
  msgstr "l'option de la ligne de commande \"%s\" est valide pour %s mais pas pour %s"
  
@@ -66635,7 +68604,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "unrecognized address"
  msgid "unrecognized shadow offset %qs"
-@@ -22720,55 +22826,55 @@
+@@ -22720,55 +22803,55 @@
  msgid "section anchors must be disabled when toplevel reorder is disabled"
  msgstr ""
  
@@ -66701,7 +68670,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "unrecognized include_flags 0x%x passed to print_specific_help"
  msgstr ""
-@@ -23129,22 +23235,22 @@
+@@ -23129,22 +23212,22 @@
  msgid "output operand %d must use %<&%> constraint"
  msgstr "opérande de sortie %d doit utiliser la contrainte « & »"
  
@@ -66728,7 +68697,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
  msgstr "validate_value_data: [%u] registre non vide dans la chaîne (%s %u %i)"
-@@ -23168,8 +23274,8 @@
+@@ -23168,8 +23251,8 @@
  msgstr "ne peut utiliser « %s » comme le registre %s"
  
  #: reginfo.c:750 config/ia64/ia64.c:5940 config/ia64/ia64.c:5947
@@ -66739,7 +68708,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "unknown register name: %s"
  msgstr "nom de registre inconnu: %s"
-@@ -23191,7 +23297,7 @@
+@@ -23191,7 +23274,7 @@
  msgid "register of %qD used for multiple global register variables"
  msgstr "registre utilisé pour deux variables registres globales"
  
@@ -66748,7 +68717,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "  conflict with `%D'"
  msgid "conflicts with %qD"
-@@ -23220,41 +23326,31 @@
+@@ -23220,41 +23303,31 @@
  msgid "%<&%> constraint used with no register class"
  msgstr "contrainte « & » utilisé sans classe registre"
  
@@ -66795,7 +68764,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "output operand is constant in `asm'"
  msgid "output operand is constant in %<asm%>"
-@@ -23598,17 +23694,17 @@
+@@ -23598,17 +23671,17 @@
  msgid "Two symbols with same comdat_group are not linked by the same_comdat_group list."
  msgstr ""
  
@@ -66816,7 +68785,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "section of alias %q+D must match section of its target"
  msgstr ""
-@@ -23630,13 +23726,13 @@
+@@ -23630,13 +23703,13 @@
  msgid "nested function trampolines not supported on this target"
  msgstr "-ffunction-sections n'est pas supporté pour cette cible"
  
@@ -66832,7 +68801,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "-fdata-sections not supported for this target"
  msgid "#pragma GCC target is not supported for this machine"
-@@ -24020,7 +24116,7 @@
+@@ -24020,7 +24093,7 @@
  
  #: tree-cfg.c:2965
  #, gcc-internal-format
@@ -66841,7 +68810,7 @@ Index: gcc/po/fr.po
  msgstr ""
  
  #: tree-cfg.c:2973
-@@ -24365,7 +24461,7 @@
+@@ -24365,7 +24438,7 @@
  msgid "the first argument of a VEC_COND_EXPR must be of a boolean vector type of the same number of elements as the result"
  msgstr ""
  
@@ -66850,7 +68819,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "type mismatch in conditional expression"
  msgstr "non concordance de type dans une expression conditionnelle"
-@@ -24849,90 +24945,90 @@
+@@ -24849,90 +24922,90 @@
  msgid "BB %i has incorrect fallthru edge"
  msgstr "insn erronée dans l'arrête fallthru"
  
@@ -66956,7 +68925,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%Jinlining failed in call to '%F': %s"
  msgid "inlining failed in call to %q+F: %s"
-@@ -24948,8 +25044,8 @@
+@@ -24948,8 +25021,8 @@
  msgid "cannot update SSA form"
  msgstr ""
  
@@ -66967,7 +68936,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "SSA corruption"
  msgstr ""
-@@ -25176,87 +25272,87 @@
+@@ -25176,87 +25249,87 @@
  msgid "tree bytecode streams do not support machine specific builtin functions on this target"
  msgstr ""
  
@@ -67071,7 +69040,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "assuming signed overflow does not occur when simplifying %<abs (X)%> to %<X%> or %<-X%>"
  msgstr ""
-@@ -25277,47 +25373,47 @@
+@@ -25277,47 +25350,47 @@
  msgid "ignoring attributes applied to %qT after definition"
  msgstr "attribut « %s » peut seulement être appliqué aux définitions de classes"
  
@@ -67145,7 +69114,7 @@ Index: gcc/po/fr.po
  #: lto/lto-lang.c:243
  #, fuzzy, gcc-internal-format
  #| msgid "`%s' attribute ignored"
-@@ -25324,134 +25420,134 @@
+@@ -25324,134 +25397,134 @@
  msgid "%qE attribute ignored"
  msgstr "attribut « %s » ignoré"
  
@@ -67303,7 +69272,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "type is deprecated"
  msgstr "type est obsolète"
-@@ -25478,267 +25574,267 @@
+@@ -25478,267 +25551,267 @@
  #. main variant only.
  #.
  #. Convenience macro for matching individual fields.
@@ -67623,7 +69592,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "verify_flow_info failed"
  msgid "verify_type failed"
-@@ -25867,7 +25963,7 @@
+@@ -25867,7 +25940,7 @@
  msgid "requested alignment for %q+D is greater than implemented alignment of %wu"
  msgstr "requête d'alignement pour '%D' est plus grand que l'alignement implanté de %d"
  
@@ -67632,7 +69601,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "storage size of `%D' isn't known"
  msgid "storage size of %q+D isn%'t known"
-@@ -25884,71 +25980,71 @@
+@@ -25884,71 +25957,71 @@
  msgid "initializer for floating value is not a floating constant"
  msgstr "l'initialisation d'une valeur à virgule flottante n'est pas une constante à virgule flottante"
  
@@ -67716,7 +69685,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "visibility attribute not supported in this configuration; ignored"
  msgstr "visibilité de l'attribut n'est pas supporté dans cette configuration; ignoré"
-@@ -26034,7 +26130,8 @@
+@@ -26034,7 +26107,8 @@
  msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support"
  msgstr "longueur de la chaîne « %d » plus grande que la longueur « %d » que les compilateurs ISO C%d doivent supporter"
  
@@ -67726,7 +69695,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "overflow in constant expression"
  msgstr "débordement dans l'expression de la constante"
-@@ -26129,600 +26226,600 @@
+@@ -26129,600 +26203,600 @@
  msgstr "type-punning vers un type incomplet peut briser les règles stricte d'alias"
  
  # FIXME
@@ -68436,7 +70405,7 @@ Index: gcc/po/fr.po
  #: config/bfin/bfin.c:4850 config/bfin/bfin.c:4863
  #, fuzzy, gcc-internal-format
  #| msgid "%Jsection of '%D' conflicts with previous declaration"
-@@ -26729,171 +26826,171 @@
+@@ -26729,171 +26803,171 @@
  msgid "section of %q+D conflicts with previous declaration"
  msgstr "section de « %D » en conflit avec une déclaration précédente"
  
@@ -68637,7 +70606,7 @@ Index: gcc/po/fr.po
  #: config/m32c/m32c.c:2932
  #, fuzzy, gcc-internal-format
  #| msgid "%J'%E' attribute applies only to functions"
-@@ -26900,761 +26997,766 @@
+@@ -26900,761 +26974,766 @@
  msgid "%qE attribute applies only to functions"
  msgstr "'%E l'attribut ne s'applique seulement qu'à des fonctions"
  
@@ -69539,7 +71508,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "conversion of scalar %qT to vector %qT involves truncation"
  msgstr ""
-@@ -27661,25 +27763,25 @@
+@@ -27661,25 +27740,25 @@
  
  #. Reject arguments that are built-in functions with
  #. no library fallback.
@@ -69569,7 +71538,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "size of array `%s' is too large"
  msgid "size of unnamed array is too large"
-@@ -28060,21 +28162,17 @@
+@@ -28060,21 +28139,17 @@
  msgid "strftime formats cannot format arguments"
  msgstr "Les formats de strftime ne peuvent pas formater d'argument"
  
@@ -69597,7 +71566,7 @@ Index: gcc/po/fr.po
  #: c-family/c-lex.c:222
  #, gcc-internal-format
  msgid "badly nested C headers from preprocessor"
-@@ -28166,7 +28264,7 @@
+@@ -28166,7 +28241,7 @@
  msgid "repeated %<@%> before Objective-C string"
  msgstr ""
  
@@ -69606,7 +71575,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "possible start of unterminated string literal"
  msgid "unsupported non-standard concatenation of string literals"
-@@ -28193,7 +28291,7 @@
+@@ -28193,7 +28268,7 @@
  msgid "%<#pragma omp atomic capture%> uses two different variables for memory"
  msgstr ""
  
@@ -69615,7 +71584,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "Invalid type-declaration attribute at %0"
  msgid "invalid type for iteration variable %qE"
-@@ -28205,25 +28303,25 @@
+@@ -28205,25 +28280,25 @@
  msgid "%qE is not initialized"
  msgstr "initialisation manquante"
  
@@ -69645,7 +71614,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "Invalid control expression"
  msgid "invalid increment expression"
-@@ -28258,33 +28356,33 @@
+@@ -28258,33 +28333,33 @@
  msgid "%qD is not an function argument"
  msgstr "« %D » n'est pas un patron de fonction"
  
@@ -69685,7 +71654,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "-g is only supported using GNU as,"
  msgid "-fno-gnu89-inline is only supported in GNU99 or C99 mode"
-@@ -28648,125 +28746,125 @@
+@@ -28648,125 +28723,125 @@
  msgid "option %qs is valid for %s but not for %s"
  msgstr "l'option de la ligne de commande \"%s\" est valide pour %s mais pas pour %s"
  
@@ -69833,7 +71802,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "ISO C does not support %<#pragma STDC FLOAT_CONST_DECIMAL64%>"
  msgstr ""
-@@ -28820,7 +28918,7 @@
+@@ -28820,7 +28895,7 @@
  msgid "wrong type argument to %s"
  msgstr "type d'argument erroné pour %s"
  
@@ -69842,7 +71811,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%E' cannot be used as a function"
  msgid "%<_Cilk_spawn%> may only be used inside a function"
-@@ -28869,7 +28967,7 @@
+@@ -28869,7 +28944,7 @@
  msgid "too many input files"
  msgstr "trop de fichiers d'entrée"
  
@@ -69851,7 +71820,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "bad value `%s' for -mcpu switch"
  msgid "unknown value %qs for -mcpu"
-@@ -28979,7 +29077,7 @@
+@@ -28979,7 +29054,7 @@
  msgid "for the option -mcache-block-size=X, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
  msgstr ""
  
@@ -69860,7 +71829,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "unknown -mdebug-%s switch"
  msgstr "option -mdebug-%s inconnue"
-@@ -29345,200 +29443,200 @@
+@@ -29345,200 +29420,200 @@
  msgid "%Ktotal size and element size must be a non-zero constant immediate"
  msgstr "masque doit être un immédiat"
  
@@ -70095,7 +72064,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "line number out of range"
  msgid "lane %wd out of range %wd - %wd"
-@@ -29605,8 +29703,8 @@
+@@ -29605,8 +29680,8 @@
  msgid "bad value %qs for -mmemory-latency"
  msgstr "valeur « %s » erronée pour -mmemory-latency"
  
@@ -70106,7 +72075,7 @@ Index: gcc/po/fr.po
  #: config/tilepro/tilepro.c:3107
  #, gcc-internal-format
  msgid "bad builtin fcode"
-@@ -29650,35 +29748,55 @@
+@@ -29650,35 +29725,55 @@
  msgid "FPX extensions not available on pre-ARC600 cores"
  msgstr ""
  
@@ -70168,7 +72137,7 @@ Index: gcc/po/fr.po
  #: config/epiphany/epiphany.c:529
  #, fuzzy, gcc-internal-format
  #| msgid "argument of `%s' attribute is not a string constant"
-@@ -29685,134 +29803,134 @@
+@@ -29685,134 +29780,134 @@
  msgid "argument of %qE attribute is not a string constant"
  msgstr "argument de l'attribut « %s » n'est pas une chaîne de constante"
  
@@ -70326,7 +72295,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "pre-increment address is not a register"
  msgid "insn addresses not freed"
-@@ -30028,194 +30146,194 @@
+@@ -30028,194 +30123,194 @@
  msgid "-mslow-flash-data only supports non-pic code on armv7-m targets"
  msgstr ""
  
@@ -70565,7 +72534,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "attribute(target(\"%s\")) is unknown"
  msgstr ""
-@@ -30282,96 +30400,96 @@
+@@ -30282,96 +30377,96 @@
  #. happen as options are provided by device-specs.  It could be a
  #. typo in a device-specs or calling the compiler proper directly
  #. with -mmcu=<device>.
@@ -70679,7 +72648,7 @@ Index: gcc/po/fr.po
  #: config/mep/mep.c:3788 config/mep/mep.c:3926
  #, fuzzy, gcc-internal-format
  #| msgid "`%s' attribute only applies to variables"
-@@ -30378,114 +30496,114 @@
+@@ -30378,114 +30473,114 @@
  msgid "%qE attribute only applies to variables"
  msgstr "attribut « %s » s'applique seulement aux variables"
  
@@ -70815,7 +72784,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "rounding result will always be 0"
  msgstr ""
-@@ -30920,18 +31038,18 @@
+@@ -30920,18 +31015,18 @@
  msgid "can%'t set position in PCH file: %m"
  msgstr "ne peut obtenir la position dans le fichier PCH: %m"
  
@@ -70837,7 +72806,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "return type specified for `operator %T'"
  msgid "wrong stringop strategy name %s specified for option %s"
-@@ -30938,417 +31056,417 @@
+@@ -30938,417 +31033,417 @@
  msgstr "type spécifié retourné pour l'opérateur « %T »"
  
  #. rep; movq isn't available in 32-bit code.
@@ -71331,7 +73300,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "-fsplit-stack does not support 2 register parameters for a nested function"
  msgstr ""
-@@ -31355,304 +31473,304 @@
+@@ -31355,304 +31450,304 @@
  
  #. FIXME: We could make this work by pushing a register
  #. around the addition and comparison.
@@ -71689,7 +73658,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Pointer Checker requires MPX support on this target. Use -mmpx options to enable MPX."
  msgstr ""
-@@ -31759,13 +31877,13 @@
+@@ -31759,13 +31854,13 @@
  msgid "%qE attribute requires a string constant argument"
  msgstr "l'attribut « %s » requiert un argument de type constante entière"
  
@@ -71705,7 +73674,7 @@ Index: gcc/po/fr.po
  #: config/spu/spu.c:4918
  #, gcc-internal-format, gfc-internal-format
  msgid "%s-%s is an empty range"
-@@ -31845,7 +31963,7 @@
+@@ -31845,7 +31940,7 @@
  msgstr "attributs de section ne sont pas supportés pour la cible"
  
  #. The argument must be a constant integer.
@@ -71714,7 +73683,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%s' attribute argument not an integer constant"
  msgid "%qE attribute argument not an integer constant"
-@@ -31915,7 +32033,7 @@
+@@ -31915,7 +32010,7 @@
  msgid "interrupt_thread is available only on fido"
  msgstr ""
  
@@ -71723,7 +73692,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "stack limit expression is not supported"
  msgstr "expression limitant la pile n'est pas supportée"
-@@ -32178,7 +32296,7 @@
+@@ -32178,7 +32273,7 @@
  msgid "argument %d of %qE must be a multiple of %d"
  msgstr "argument %d de %s doit être une localisation"
  
@@ -71732,7 +73701,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "incompatible type for argument %d of `%s'"
  msgid "incompatible type for argument %d of %qE"
-@@ -32612,32 +32730,32 @@
+@@ -32612,32 +32707,32 @@
  msgid "msp430_select_hwmult_lib needs one or more arguments"
  msgstr ""
  
@@ -71771,7 +73740,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid ""
  "Unrecognised MCU name '%s', assuming that it is just a MSP430 with no hardware multiply.\n"
-@@ -32644,7 +32762,7 @@
+@@ -32644,7 +32739,7 @@
  "Use the -mcpu and -mhwmult options to set these explicitly."
  msgstr ""
  
@@ -71780,7 +73749,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid ""
  "Unrecognised MCU name '%s', assuming that it has no hardware multiply.\n"
-@@ -32651,7 +32769,7 @@
+@@ -32651,7 +32746,7 @@
  "Use the -mhwmult option to set this explicitly."
  msgstr ""
  
@@ -71789,7 +73758,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid ""
  "Unrecognised MCU name '%s', assuming that it just supports the MSP430 ISA.\n"
-@@ -32658,66 +32776,66 @@
+@@ -32658,66 +32753,66 @@
  "Use the -mcpu option to set the ISA explicitly."
  msgstr ""
  
@@ -71868,7 +73837,7 @@ Index: gcc/po/fr.po
  #: config/xtensa/xtensa.c:3372
  #, fuzzy, gcc-internal-format
  #| msgid "bad builtin fcode"
-@@ -32965,19 +33083,12 @@
+@@ -32965,19 +33060,12 @@
  msgid "cannot open intermediate ptx file"
  msgstr "%s: ne peut ouvrir le fichier de données\n"
  
@@ -71890,7 +73859,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%s' attribute requires an integer constant argument"
  msgid "%qE attribute requires a void return type"
-@@ -33133,351 +33244,351 @@
+@@ -33133,351 +33221,351 @@
  msgid "junk at end of #pragma longcall"
  msgstr "rebut à la fin de #pragma longcall"
  
@@ -72306,7 +74275,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "-split has no argument."
  msgid "builtin %s only accepts a string argument"
-@@ -33484,7 +33595,7 @@
+@@ -33484,7 +33572,7 @@
  msgstr "-split n'a pas d'argument."
  
  #. Invalid CPU argument.
@@ -72315,7 +74284,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "invalid type argument of `->'"
  msgid "cpu %s is an invalid argument to builtin %s"
-@@ -33491,280 +33602,280 @@
+@@ -33491,280 +33579,280 @@
  msgstr "type d'argument invalide de «->»"
  
  #. Invalid HWCAP argument.
@@ -72645,7 +74614,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "%s\"%s\"%s is invalid"
  msgstr ""
-@@ -34083,35 +34194,35 @@
+@@ -34083,35 +34171,35 @@
  msgid "constant argument %d for builtin %qF is out of range for target type"
  msgstr "argument de constante hors limite pour « %s »"
  
@@ -72687,7 +74656,7 @@ Index: gcc/po/fr.po
  #: config/tilepro/tilepro.c:3110
  #, fuzzy, gcc-internal-format
  #| msgid "bad builtin fcode"
-@@ -34118,129 +34229,135 @@
+@@ -34118,129 +34206,135 @@
  msgid "bad builtin icode"
  msgstr "construit interne erroné de fcode"
  
@@ -72846,7 +74815,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "argument to `%s' attribute larger than %d"
  msgid "argument to %qs is too large (max. %d)"
-@@ -34247,7 +34364,7 @@
+@@ -34247,7 +34341,7 @@
  msgstr "l'argument pour l'attribut « %s » est plus grand que %d"
  
  #. Value is not allowed for the target attribute.
@@ -72855,7 +74824,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "__builtin_trap not supported by this target"
  msgid "Value %qs is not supported by attribute %<target%>"
-@@ -34263,35 +34380,35 @@
+@@ -34263,35 +34357,35 @@
  msgid "unwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctness"
  msgstr ""
  
@@ -72897,7 +74866,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%s' attribute argument not an integer constant"
  msgid "%qE attribute argument should be between 0 to 255"
-@@ -34298,24 +34415,24 @@
+@@ -34298,24 +34392,24 @@
  msgstr "l'attribut « %s » de l'argument n'est pas une constante entière"
  
  #. The argument must be a constant string.
@@ -72926,7 +74895,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "need a call-clobbered target register"
  msgstr ""
-@@ -34333,27 +34450,27 @@
+@@ -34333,27 +34427,27 @@
  msgid "-mrelax is only supported for RTP PIC"
  msgstr "L'option -g est seulement supportée lorsque GNU est utilisé tel,"
  
@@ -72959,7 +74928,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "-fdata-sections not supported for this target"
  msgid "-fcall-saved-REG is not supported for out registers"
-@@ -34576,7 +34693,7 @@
+@@ -34576,7 +34670,7 @@
  msgid "too much stack space to prepare: %d"
  msgstr "Trop d'espace pour l'empilage pour la préparation: %d"
  
@@ -72968,7 +74937,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "attribute interrupt_handler is not compatible with -m5-compact"
  msgid "an interrupt handler cannot be compiled with -muser-mode"
-@@ -34720,57 +34837,57 @@
+@@ -34720,57 +34814,57 @@
  msgid "subprogram %q+F not marked Inline"
  msgstr ""
  
@@ -73037,7 +75006,7 @@ Index: gcc/po/fr.po
  #: cp/cp-array-notation.c:250
  #, fuzzy, gcc-internal-format
  #| msgid "invalid option argument `%s'"
-@@ -34831,8 +34948,8 @@
+@@ -34831,8 +34925,8 @@
  #. an unprototyped function, it is compile-time undefined;
  #. making it a constraint in that case was rejected in
  #. DR#252.
@@ -73048,7 +75017,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "void value not ignored as it ought to be"
  msgstr "valeur void n'a pas été ignorée comme elle aurait dû l'être"
-@@ -34863,7 +34980,7 @@
+@@ -34863,7 +34957,7 @@
  msgid "GCC supports only %u nested scopes"
  msgstr ""
  
@@ -73057,7 +75026,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "label `%D' used but not defined"
  msgid "label %q+D used but not defined"
-@@ -34887,7 +35004,7 @@
+@@ -34887,7 +34981,7 @@
  msgid "unused variable %q+D"
  msgstr "variable inutilisée « %D »"
  
@@ -73066,7 +75035,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "label `%D' defined but not used"
  msgid "variable %qD set but not used"
-@@ -34898,7 +35015,7 @@
+@@ -34898,7 +34992,7 @@
  msgid "type of array %q+D completed incompatibly with implicit initialization"
  msgstr ""
  
@@ -73075,7 +75044,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%J  original definition appeared here"
  msgid "originally defined here"
-@@ -34972,7 +35089,7 @@
+@@ -34972,7 +35066,7 @@
  msgid "built-in function %q+D declared as non-function"
  msgstr "fonction interne « %D » n'est pas déclarée comme une fonction"
  
@@ -73084,7 +75053,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "declaration of '%D' shadows a global declaration"
  msgid "declaration of %q+D shadows a built-in function"
-@@ -35133,31 +35250,31 @@
+@@ -35133,31 +35227,31 @@
  msgid "redundant redeclaration of %q+D"
  msgstr "déclaration redondante de « %D »"
  
@@ -73121,7 +75090,7 @@ Index: gcc/po/fr.po
  #: cp/name-lookup.c:1273
  #, fuzzy, gcc-internal-format
  #| msgid "%Jshadowed declaration is here"
-@@ -35164,222 +35281,222 @@
+@@ -35164,222 +35258,222 @@
  msgid "shadowed declaration is here"
  msgstr "déclaration est masquée ici"
  
@@ -73383,7 +75352,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "ISO C90 does not support `[*]' array declarators"
  msgid "ISO C90 does not support %<[*]%> array declarators"
-@@ -35388,29 +35505,29 @@
+@@ -35388,29 +35482,29 @@
  #. C99 6.7.5.2p4
  #. A function definition isn't function prototype scope C99 6.2.1p4.
  #. C99 6.7.5.2p4
@@ -73418,7 +75387,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "function `%#D' is initialized like a variable"
  msgid "function %qD is initialized like a variable"
-@@ -35417,7 +35534,7 @@
+@@ -35417,7 +35511,7 @@
  msgstr "fonction « %#D » est initialisée comme une variable"
  
  #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
@@ -73427,7 +75396,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "parameter `%s' is initialized"
  msgid "parameter %qD is initialized"
-@@ -35427,301 +35544,301 @@
+@@ -35427,301 +35521,301 @@
  #. of VLAs themselves count as VLAs, it does not make
  #. sense to permit them to be initialized given that
  #. ordinary VLAs may not be initialized.
@@ -73780,7 +75749,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "function-scope `%s' implicitly auto and declared `__thread'"
  msgid "function-scope %qE implicitly auto and declared %qs"
-@@ -35730,576 +35847,576 @@
+@@ -35730,576 +35824,576 @@
  #. Only the innermost declarator (making a parameter be of
  #. array type which is converted to pointer type)
  #. may have static or type qualifiers.
@@ -74457,7 +76426,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "nested redefinition of `%s'"
  msgid "nested redefinition of %<enum %E%>"
-@@ -36306,221 +36423,221 @@
+@@ -36306,221 +36400,221 @@
  msgstr "redéfinition imbriquée de « %s »"
  
  #. This enum is a named one that has been declared already.
@@ -74721,7 +76690,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "label `%D' defined but not used"
  msgid "parameter %qD set but not used"
-@@ -36529,251 +36646,251 @@
+@@ -36529,251 +36623,251 @@
  #. If we get here, declarations have been used in a for loop without
  #. the C99 for loop scope.  This doesn't make much sense, so don't
  #. allow it.
@@ -75017,7 +76986,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "right shift count >= width of type"
  msgstr "compteur de décalage vers la droite >= à la largeur du type"
-@@ -36789,86 +36906,86 @@
+@@ -36789,86 +36883,86 @@
  msgid "version control conflict marker in file"
  msgstr ""
  
@@ -75120,7 +77089,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "data definition has no type or storage class"
  msgstr "la définition de données n'a pas de type ni de classe de stockage"
-@@ -36876,28 +36993,28 @@
+@@ -36876,28 +36970,28 @@
  #. This means there is an attribute specifier after
  #. the declarator in a function definition.  Provide
  #. some more information for the user.
@@ -75154,7 +77123,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "expected %<,%> or %<;%>"
  msgstr ""
-@@ -36905,285 +37022,285 @@
+@@ -36905,285 +36999,285 @@
  #. This can appear in many cases looking nothing like a
  #. function definition, so we don't give a more specific
  #. error suggesting there was one.
@@ -75500,7 +77469,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "expected identifier or %<*%>"
  msgstr ""
-@@ -37192,1155 +37309,1161 @@
+@@ -37192,1155 +37286,1161 @@
  #. c_parser_skip_until_found stops at a closing nesting
  #. delimiter without consuming it, but here we need to consume
  #. it to proceed further.
@@ -76877,7 +78846,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "unexpected address expression"
  msgid "expected array notation expression"
-@@ -38352,7 +38475,7 @@
+@@ -38352,7 +38452,7 @@
  msgid "%qD has an incomplete type %qT"
  msgstr "« %s » a un type incomplet"
  
@@ -76886,7 +78855,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "invalid use of void expression"
  msgstr "utilisation invalide d'expression void"
-@@ -38385,155 +38508,155 @@
+@@ -38385,155 +38485,155 @@
  msgid "%qT and %qT are in disjoint named address spaces"
  msgstr ""
  
@@ -77070,7 +79039,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "called object is not a function"
  msgid "called object is not a function or function pointer"
-@@ -38542,402 +38665,402 @@
+@@ -38542,402 +38642,402 @@
  #. This situation leads to run-time undefined behavior.  We can't,
  #. therefore, simply error unless we can prove that all possible
  #. executions of the program must execute the code.
@@ -77545,7 +79514,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "char-array initialized from wide string"
  msgid "array initialized from parenthesized string constant"
-@@ -38954,203 +39077,203 @@
+@@ -38954,203 +39054,203 @@
  #. strings are complete sentences, visible to gettext and checked at
  #. compile time.  It is the same as PEDWARN_FOR_QUALIFIERS but uses
  #. warning_at instead of pedwarn.
@@ -77784,7 +79753,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%s from incompatible pointer type"
  msgid "return from incompatible pointer type"
-@@ -39158,868 +39281,857 @@
+@@ -39158,868 +39258,857 @@
  
  #. ??? This should not be an error when inlining calls to
  #. unprototyped functions.
@@ -78823,7 +80792,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "  candidate expects %d argument, %d provided"
  msgid_plural "  candidate expects %d arguments, %d provided"
-@@ -40026,92 +40138,92 @@
+@@ -40026,92 +40115,92 @@
  msgstr[0] ""
  msgstr[1] ""
  
@@ -78932,7 +80901,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "call of overloaded `%D(%A)' is ambiguous"
  msgid "call of overloaded %<%D(%A)%> is ambiguous"
-@@ -40119,959 +40231,959 @@
+@@ -40119,959 +40208,959 @@
  
  #. It's no good looking for an overloaded operator() on a
  #. pointer-to-member-function.
@@ -80060,7 +82029,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "non-static const member `%#D' in class without a constructor"
  msgid "non-static const member %q#D in class without a constructor"
-@@ -41079,157 +41191,157 @@
+@@ -41079,157 +41168,157 @@
  
  #. If the function is defaulted outside the class, we just
  #. give the synthesis error.
@@ -80245,7 +82214,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "cannot convert `%E' from type `%T' to type `%T'"
  msgid "cannot convert %qE from type %qT to type %qT"
-@@ -41240,13 +41352,13 @@
+@@ -41240,13 +41329,13 @@
  #. A name N used in a class S shall refer to the same declaration
  #. in its context and when re-evaluated in the completed scope of
  #. S.
@@ -80261,7 +82230,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "changes meaning of `%D' from `%+#D'"
  msgid "changes meaning of %qD from %q#D"
-@@ -41291,289 +41403,301 @@
+@@ -41291,289 +41380,301 @@
  msgid "constexpr constructor does not have empty body"
  msgstr "expression IN n'a pas de mode"
  
@@ -80617,7 +82586,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "unexpected type for `id' (%s)"
  msgid "unexpected AST of kind %s"
-@@ -41648,17 +41772,17 @@
+@@ -41648,17 +41749,17 @@
  msgid "try statements are not allowed inside loops marked with #pragma simd"
  msgstr ""
  
@@ -80638,7 +82607,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "in C++11 this throw will terminate because destructors default to noexcept"
  msgstr ""
-@@ -41705,7 +41829,7 @@
+@@ -41705,7 +41806,7 @@
  msgid "conversion from %qT to %qT discards qualifiers"
  msgstr "conversion de « %T » à « %T » écarte les qualificateurs"
  
@@ -80647,7 +82616,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "casting `%T' to `%T' does not dereference pointer"
  msgid "casting %qT to %qT does not dereference pointer"
-@@ -41717,326 +41841,326 @@
+@@ -41717,326 +41818,326 @@
  msgid "cannot convert type %qT to type %qT"
  msgstr "ne peut convertir type « %T » vers le type « %T »"
  
@@ -81032,7 +83001,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "  candidate conversions include `%D' and `%D'"
  msgid "  candidate conversions include %qD and %qD"
-@@ -42048,179 +42172,179 @@
+@@ -42048,179 +42149,179 @@
  msgid "template-parameter-"
  msgstr "patron de paramètre « %#D »"
  
@@ -81242,7 +83211,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "previous declaration of `%#D'"
  msgid "previous declaration as %q#D"
-@@ -42233,73 +42357,73 @@
+@@ -42233,73 +42334,73 @@
  #. A namespace-name defined at global scope shall not be
  #. declared as the name of any other entity in any global scope
  #. of the program.
@@ -81328,7 +83297,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "nested redefinition of `%s'"
  msgid "deleted definition of %q+D"
-@@ -42313,13 +42437,13 @@
+@@ -42313,13 +42414,13 @@
  #. that specialization that would cause an implicit
  #. instantiation to take place, in every translation unit in
  #. which such a use occurs.
@@ -81344,7 +83313,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%J'%D': visibility attribute ignored because it"
  msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
-@@ -42326,30 +42450,30 @@
+@@ -42326,30 +42427,30 @@
  msgstr "« %D »: attribut de visibilité ignoré en cause de lui"
  
  #. Reject two definitions.
@@ -81380,7 +83349,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
  msgstr ""
-@@ -42357,24 +42481,24 @@
+@@ -42357,24 +42458,24 @@
  #. is_primary=
  #. is_partial=
  #. is_friend_decl=
@@ -81409,7 +83378,7 @@ Index: gcc/po/fr.po
  #: cp/name-lookup.c:1189
  #, fuzzy, gcc-internal-format
  #| msgid "declaration of `%#D'"
-@@ -42381,275 +42505,275 @@
+@@ -42381,275 +42482,275 @@
  msgid "redeclaration of %q#D"
  msgstr "déclaration de « %#D »"
  
@@ -81733,7 +83702,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%s' attribute can only be applied to class definitions"
  msgid "ignoring attributes applied to class type %qT outside of definition"
-@@ -42656,148 +42780,148 @@
+@@ -42656,148 +42757,148 @@
  msgstr "attribut « %s » peut seulement être appliqué aux définitions de classes"
  
  #. A template type parameter or other dependent type.
@@ -81907,7 +83876,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "zero-size array `%D'"
  msgid "zero-size array %qD"
-@@ -42806,114 +42930,114 @@
+@@ -42806,114 +42907,114 @@
  #. An automatic variable with an incomplete type: that is an error.
  #. Don't talk about array types here, since we took care of that
  #. message in grokdeclarator.
@@ -82042,7 +84011,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "elements of array `%#D' have incomplete type"
  msgid "elements of array %q#T have incomplete type"
-@@ -42920,257 +43044,257 @@
+@@ -42920,257 +43021,257 @@
  msgstr "éléments du tableau « %#D » ont un type incomplet"
  
  # FIXME
@@ -82344,7 +84313,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "defining explicit specialization `%D' in friend declaration"
  msgid "defining explicit specialization %qD in friend declaration"
-@@ -43177,665 +43301,665 @@
+@@ -43177,665 +43278,665 @@
  msgstr "définition explicite de spécialisation « %D » dans lka déclaration ami"
  
  #. Something like `template <class T> friend void f<T>()'.
@@ -83124,7 +85093,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
  msgstr ""
-@@ -43842,45 +43966,45 @@
+@@ -43842,45 +43943,45 @@
  
  #. Not using maybe_warn_cpp0x because this should
  #. always be an error.
@@ -83178,7 +85147,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "constructors cannot be declared virtual"
  msgid "constructors cannot be declared %<virtual%>"
-@@ -43887,268 +44011,268 @@
+@@ -43887,268 +43988,268 @@
  msgstr "constructeurs ne peut être déclarés virtuels"
  
  #. Cannot be both friend and virtual.
@@ -83493,7 +85462,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%T' has no non-static data member named `%D'"
  msgid "non-static data member declared %<auto%>"
-@@ -44155,186 +44279,186 @@
+@@ -44155,186 +44256,186 @@
  msgstr "« %T » n'a pas de membre de données non statique nommé « %D »"
  
  #. Something like struct S { int N::j; };
@@ -83711,7 +85680,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "cannot declare member function `%D' to have static linkage"
  msgid "cannot declare member function %qD to have static linkage"
-@@ -44341,90 +44465,90 @@
+@@ -44341,90 +44442,90 @@
  msgstr "ne peut déclarer la fonction membre « %D » comme ayant un lien statique"
  
  #. FIXME need arm citation
@@ -83817,7 +85786,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "parameter `%D' includes %s to array of unknown bound `%T'"
  msgid "parameter %qD includes reference to array of unknown bound %qT"
-@@ -44445,73 +44569,73 @@
+@@ -44445,73 +44546,73 @@
  #. or implicitly defined), there's no need to worry about their
  #. existence.  Theoretically, they should never even be
  #. instantiated, but that's hard to forestall.
@@ -83903,7 +85872,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "conversion to %s%s will never use a type conversion operator"
  msgid "conversion to a base class will never use a type conversion operator"
-@@ -44518,126 +44642,126 @@
+@@ -44518,126 +44619,126 @@
  msgstr "conversion de %s%s ne sera jamais utilisé dans un type d'opérateur de conversion"
  
  #. 13.4.0.3
@@ -84051,7 +86020,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%T' referred to as enum"
  msgid "%qT referred to as enum"
-@@ -44650,113 +44774,131 @@
+@@ -44650,113 +44751,131 @@
  #. void f(class C);		// No template header here
  #.
  #. then the required template argument is missing.
@@ -84203,7 +86172,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "argument %d to ABSTIME must be of integer type"
  msgid "underlying type %<%T%> of %<%T%> must be an integral type"
-@@ -44766,86 +44908,86 @@
+@@ -44766,86 +44885,86 @@
  #.
  #. IF no integral type can represent all the enumerator values, the
  #. enumeration is ill-formed.
@@ -84305,7 +86274,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "use of %qD before deduction of %<auto%>"
  msgstr ""
-@@ -44890,7 +45032,7 @@
+@@ -44890,7 +45009,7 @@
  msgid "deleting %qT is undefined"
  msgstr "destruction de « %T » est indéfinie"
  
@@ -84314,7 +86283,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "template declaration of `%#D'"
  msgid "template declaration of %q#D"
-@@ -44917,7 +45059,7 @@
+@@ -44917,7 +45036,7 @@
  #. [temp.mem]
  #.
  #. A destructor shall not be a member template.
@@ -84323,7 +86292,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "destructor `%D' declared as member template"
  msgid "destructor %qD declared as member template"
-@@ -45117,7 +45259,7 @@
+@@ -45117,7 +45236,7 @@
  msgid "%qT declared with greater visibility than its base %qT"
  msgstr ""
  
@@ -84332,7 +86301,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%J'%F' declared `static' but never defined"
  msgid "%q#D, declared using anonymous type, is used but never defined"
-@@ -45127,51 +45269,51 @@
+@@ -45127,51 +45246,51 @@
  #. no linkage can only be used to declare extern "C"
  #. entities.  Since it's not always an error in the
  #. ISO C++ 90 Standard, we only issue a warning.
@@ -84393,7 +86362,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "default argument missing for parameter %P of `%+#D'"
  msgid "default argument missing for parameter %P of %q+#D"
-@@ -45179,12 +45321,12 @@
+@@ -45179,12 +45298,12 @@
  
  #. We mark a lambda conversion op as deleted if we can't
  #. generate it properly; see maybe_add_lambda_conv_op.
@@ -84408,7 +86377,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "sizeof applied to a function type"
  msgid "use of deleted function %qD"
-@@ -45288,7 +45430,7 @@
+@@ -45288,7 +45407,7 @@
  msgid "%qD is not a member of %qT"
  msgstr "« %D » n'est pas un membre de « %T »"
  
@@ -84417,7 +86386,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%D' is not a member of `%D'"
  msgid "%qD is not a member of %qD"
-@@ -45335,7 +45477,7 @@
+@@ -45335,7 +45454,7 @@
  msgid "throwing NULL, which has integral, not pointer type"
  msgstr "retournant NULL (par throw), lequel est entier, pas de type pointeur"
  
@@ -84426,7 +86395,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%D' should never be overloaded"
  msgid "%qD should never be overloaded"
-@@ -45364,30 +45506,30 @@
+@@ -45364,30 +45483,30 @@
  msgid "cannot catch type %qT because it involves types of variable size"
  msgstr "ne peut créer une information pour le type « %T » parce que sa taille est variable"
  
@@ -84462,7 +86431,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
  msgstr ""
-@@ -45411,31 +45553,37 @@
+@@ -45411,31 +45530,37 @@
  #. [temp.friend]
  #. Friend declarations shall not declare partial
  #. specializations.
@@ -84505,7 +86474,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%T' is not a base of `%T'"
  msgid "%qT is not a nested class of %qT"
-@@ -45442,7 +45590,7 @@
+@@ -45442,7 +45567,7 @@
  msgstr "« %D » n'est pas une base de « %T »"
  
  #. template <class T> friend class T;
@@ -84514,7 +86483,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "template parameter type `%T' declared `friend'"
  msgid "template parameter type %qT declared %<friend%>"
-@@ -45449,49 +45597,49 @@
+@@ -45449,49 +45574,49 @@
  msgstr "type paramètre du patron « %T» déclaré «friend »"
  
  #. template <class T> friend class A; where A is not a template
@@ -84572,7 +86541,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
  msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) "
-@@ -45550,20 +45698,20 @@
+@@ -45550,20 +45675,20 @@
  msgid "invalid initializer for array member %q#D"
  msgstr "initialisation invalide pour la méthode virtuelle « %D »"
  
@@ -84597,7 +86566,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "uninitialized reference member `%D'"
  msgid "uninitialized reference member in %q#T"
-@@ -45621,314 +45769,320 @@
+@@ -45621,314 +45746,320 @@
  msgid "base class %q#T should be explicitly initialized in the copy constructor"
  msgstr "classe de base « %#T » devrait être explicitement initialisé dans la copie du constructeur"
  
@@ -84976,7 +86945,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "%<this%> was not captured for this lambda function"
  msgstr ""
-@@ -45993,103 +46147,108 @@
+@@ -45993,103 +46124,108 @@
  msgid "(if you use %<-fpermissive%>, G++ will accept your code, but allowing the use of an undeclared name is deprecated)"
  msgstr "(si vous utilisez « -fpermissive », G++ acceptera votre core, mais permettre l'utilisation d'un nom non déclaré est obsolète)"
  
@@ -85104,7 +87073,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "creating pointer to member reference type `%T'"
  msgid "copying non-static data member %q#D of rvalue reference type"
-@@ -46096,75 +46255,75 @@
+@@ -46096,75 +46232,75 @@
  msgstr "création d'un pointeur vers le membre de référence du type « %T »"
  
  #. A trivial constructor doesn't have any NSDMI.
@@ -85194,7 +87163,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "file ends in default argument"
  msgid "defaulted function %q+D with default argument"
-@@ -46364,8 +46523,8 @@
+@@ -46364,8 +46500,8 @@
  msgstr "« %T » n'est pas un espace de noms"
  
  #. C++11 7.3.3/10.
@@ -85205,7 +87174,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%D' is already declared in this scope"
  msgid "%qD is already declared in this scope"
-@@ -46377,98 +46536,110 @@
+@@ -46377,98 +46513,110 @@
  msgid "%qD not declared"
  msgstr "« %D » n'est pas déclaré"
  
@@ -85333,7 +87302,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "suggested alternative:"
  msgid_plural "suggested alternatives:"
-@@ -46475,22 +46646,22 @@
+@@ -46475,22 +46623,22 @@
  msgstr[0] ""
  msgstr[1] ""
  
@@ -85360,7 +87329,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "XXX leaving pop_everything ()\n"
  msgstr "XXX on quitte pop_everything ()\n"
-@@ -46510,13 +46681,13 @@
+@@ -46510,13 +46658,13 @@
  msgid "LEXER_DEBUGGING_ENABLED_P is not set to true"
  msgstr ""
  
@@ -85377,7 +87346,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "attributes are not allowed on a function-definition"
  msgid "%<#pragma acc routine%> not followed by a function declaration or definition"
-@@ -46546,7 +46717,7 @@
+@@ -46546,7 +46694,7 @@
  msgid "request for member %qE in non-class type %qT"
  msgstr "requête du membre « %D » dans « %E », lequel n'est pas de type classe « %T »"
  
@@ -85386,7 +87355,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%D::%D' has not been declared"
  msgid "%<%T::%E%> has not been declared"
-@@ -46617,12 +46788,6 @@
+@@ -46617,12 +46765,6 @@
  msgid "(perhaps a semicolon is missing after the definition of %qT)"
  msgstr "«;» manquant après la déclaration « %T »"
  
@@ -85399,7 +87368,7 @@ Index: gcc/po/fr.po
  #: cp/parser.c:2975
  #, fuzzy, gcc-internal-format
  #| msgid "%T is not a class type"
-@@ -46646,7 +46811,7 @@
+@@ -46646,7 +46788,7 @@
  msgid "floating-point literal cannot appear in a constant-expression"
  msgstr "%s ne peut apparaître dans une expression de constante"
  
@@ -85408,7 +87377,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "a cast to a type other than an integral or enumeration type cannot appear in a constant-expression"
  msgstr ""
-@@ -46770,19 +46935,24 @@
+@@ -46770,19 +46912,24 @@
  msgid "C++11 %<thread_local%> only available with -std=c++11 or -std=gnu++11"
  msgstr ""
  
@@ -85436,7 +87405,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%s' does not name a type"
  msgid "%qE in namespace %qE does not name a type"
-@@ -46789,575 +46959,575 @@
+@@ -46789,575 +46936,575 @@
  msgstr "« %s » ne nomme pas un type"
  
  #. A<T>::A<T>()
@@ -86115,7 +88084,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "%<friend%> used outside of class"
  msgstr ""
-@@ -47364,117 +47534,117 @@
+@@ -47364,117 +47511,117 @@
  
  #. Complain about `auto' as a storage specifier, if
  #. we're complaining about C++0x compatibility.
@@ -86254,7 +88223,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "unexpected operand"
  msgid "expected operator"
-@@ -47481,78 +47651,78 @@
+@@ -47481,78 +47628,78 @@
  msgstr "opérande inattendue"
  
  #. Warn that we do not support `export'.
@@ -86346,7 +88315,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`<::' cannot begin a template-argument list"
  msgid "parse error in template argument list"
-@@ -47559,7 +47729,7 @@
+@@ -47559,7 +47706,7 @@
  msgstr "« <:: » ne peut pas être au début d'une liste d'un patron d'arguments"
  
  #. The name does not name a template.
@@ -86355,7 +88324,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "expected type-name"
  msgid "expected template-name"
-@@ -47566,160 +47736,160 @@
+@@ -47566,160 +47713,160 @@
  msgstr "un nom de type attendu"
  
  #. Explain what went wrong.
@@ -86544,7 +88513,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "multiple definition of `%#T'"
  msgid "multiple definition of %q#T"
-@@ -47726,160 +47896,160 @@
+@@ -47726,160 +47873,160 @@
  msgstr "définition multiple de « %#T »"
  
  # FIXME: I18N
@@ -86733,7 +88702,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified name"
  msgstr ""
-@@ -47888,7 +48058,7 @@
+@@ -47888,7 +48035,7 @@
  #. here because we do not have enough
  #. information about its original syntactic
  #. form.
@@ -86742,7 +88711,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "invalid declarator"
  msgstr "déclarateur invalide"
-@@ -47895,352 +48065,358 @@
+@@ -47895,352 +48042,358 @@
  
  #. But declarations with qualified-ids can't appear in a
  #. function.
@@ -87164,7 +89133,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "too few template-parameter-lists"
  msgstr "trop peu de patron de listes de paramètres"
-@@ -48249,490 +48425,490 @@
+@@ -48249,490 +48402,490 @@
  #. something like:
  #.
  #. template <class T> template <class U> void S::f();
@@ -87744,7 +89713,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "range failure (not inside function)"
  msgid "%<#pragma acc routine%> does not refer to a function"
-@@ -48739,149 +48915,149 @@
+@@ -48739,149 +48892,149 @@
  msgstr "échec sur l'étendue (n'est pas à l'intérieur de la fonction)"
  
  #. cancel-and-throw is unimplemented.
@@ -87920,7 +89889,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "specializing `%#T' in different namespace"
  msgid "specializing %q#T in different namespace"
-@@ -48889,77 +49065,77 @@
+@@ -48889,77 +49042,77 @@
  
  #. But if we've had an implicit instantiation, that's a
  #. problem ([temp.expl.spec]/6).
@@ -88011,7 +89980,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "members of an explicitly specialized class are defined without a template header"
  msgstr ""
-@@ -48966,63 +49142,63 @@
+@@ -48966,63 +49119,63 @@
  
  #. This case handles bogus declarations like template <>
  #. template <class T> void f<int>();
@@ -88086,7 +90055,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%D' is not a member template function"
  msgid "%qD is not a template function"
-@@ -49036,130 +49212,130 @@
+@@ -49036,130 +49189,130 @@
  #. program is ill-formed.
  #.
  #. Similar language is found in [temp.explicit].
@@ -88240,7 +90209,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "type `%T' of template argument `%E' depends on template parameter(s)"
  msgid "type %qT of template argument %qE depends on a template parameter"
-@@ -49167,19 +49343,19 @@
+@@ -49167,19 +49320,19 @@
  msgstr[0] "type « %T » du patron d'argument « %E » dépend des paramètres du patron"
  msgstr[1] "type « %T » du patron d'argument « %E » dépend des paramètres du patron"
  
@@ -88263,7 +90232,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "no default argument for `%D'"
  msgid "no default argument for %qD"
-@@ -49188,52 +49364,52 @@
+@@ -49188,52 +49341,52 @@
  #. A primary class template can only have one
  #. parameter pack, at the end of the template
  #. parameter list.
@@ -88325,7 +90294,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "member template %qD may not have virt-specifiers"
  msgstr ""
-@@ -49243,66 +49419,66 @@
+@@ -49243,66 +49396,66 @@
  #. An allocation function can be a function
  #. template. ... Template allocation functions shall
  #. have two or more parameters.
@@ -88403,7 +90372,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "`%D' used without template parameters"
  msgid "redeclared with %d template parameter"
-@@ -49310,7 +49486,7 @@
+@@ -49310,7 +49463,7 @@
  msgstr[0] "« %D » utilisé sans patron de paramètres"
  msgstr[1] "« %D » utilisé sans patron de paramètres"
  
@@ -88412,7 +90381,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "previous declaration `%#D' here"
  msgid "previous declaration %qD used %d template parameter"
-@@ -49318,13 +49494,13 @@
+@@ -49318,13 +49471,13 @@
  msgstr[0] "déclaration précédente de « %#D » ici"
  msgstr[1] "déclaration précédente de « %#D » ici"
  
@@ -88428,7 +90397,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "redeclared here as `%#D'"
  msgid "redeclared here as %q#D"
-@@ -49334,126 +49510,126 @@
+@@ -49334,126 +49487,126 @@
  #.
  #. A template-parameter may not be given default arguments
  #. by two different declarations in the same scope.
@@ -88577,7 +90546,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "  candidate expects at least %d argument, %d provided"
  msgid_plural "  candidate expects at least %d arguments, %d provided"
-@@ -49460,212 +49636,212 @@
+@@ -49460,212 +49613,212 @@
  msgstr[0] ""
  msgstr[1] ""
  
@@ -88826,7 +90795,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "  expected a type, got `%E'"
  msgid "  expected %qD but got %qD"
-@@ -49673,114 +49849,114 @@
+@@ -49673,114 +49826,114 @@
  
  #. Not sure if this is reachable, but it doesn't hurt
  #. to be robust.
@@ -88961,7 +90930,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "redefinition of default argument for `%#D'"
  msgid "  when instantiating default argument for call to %D"
-@@ -49799,312 +49975,312 @@
+@@ -49799,312 +49952,312 @@
  #.
  #. is an attempt to declare a variable with function
  #. type.
@@ -89327,7 +91296,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "duplicate explicit instantiation of `%#T'"
  msgid "duplicate explicit instantiation of %q#T"
-@@ -50117,81 +50293,81 @@
+@@ -50117,81 +50270,81 @@
  #. member function or static data member of a class template
  #. shall be present in every translation unit in which it is
  #. explicitly instantiated.
@@ -89423,7 +91392,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "insn does not satisfy its constraints:"
  msgid "deduced expression type does not saatisy placeholder constraints"
-@@ -50235,19 +50411,19 @@
+@@ -50235,19 +50388,19 @@
  msgid "typeid of qualified function type %qT"
  msgstr "ISO C interdit les types de fonction qualifiés"
  
@@ -89446,7 +91415,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)"
  msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
-@@ -50265,95 +50441,95 @@
+@@ -50265,95 +50418,95 @@
  msgid "%qT is an inaccessible base of %qT"
  msgstr "« %T » est une base inaccessible de « %T »"
  
@@ -89558,7 +91527,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "overriding final function %q+D"
  msgstr ""
-@@ -50360,168 +50536,168 @@
+@@ -50360,168 +50513,168 @@
  
  #. A static member function cannot match an inherited
  #. virtual member function.
@@ -89756,7 +91725,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "use of class template `%T' as expression"
  msgid "use of class template %qT as expression"
-@@ -50528,25 +50704,25 @@
+@@ -50528,25 +50681,25 @@
  msgstr "utilisation du patron de classe « %T » comme expression"
  
  #. Ambiguous reference to base members.
@@ -89786,7 +91755,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%T' is not a template type"
  msgid "%qT is not an enumeration type"
-@@ -50553,469 +50729,463 @@
+@@ -50553,469 +50706,463 @@
  msgstr "« %T » n'est pas un type patron"
  
  #. Parameter packs can only be used in templates
@@ -90339,7 +92308,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "lang_* check: failed in %s, at %s:%d"
  msgstr "vérification lang_* : échec dans %s, à %s:%d"
-@@ -51138,13 +51308,13 @@
+@@ -51138,13 +51285,13 @@
  msgid "deprecated conversion from string constant to %qT"
  msgstr "conversion obsolète de la chaîne de constante vers « %T »"
  
@@ -90355,7 +92324,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "request for member `%D' in `%E', which is of non-class type `%T'"
  msgid "request for member %qD in %qE, which is of non-class type %qT"
-@@ -51174,322 +51344,316 @@
+@@ -51174,322 +51321,316 @@
  msgid "the type being destroyed is %qT, but the destructor refers to %qT"
  msgstr "le type devant être détruit est « %T », mais le destructeur réfère à « %T »"
  
@@ -90743,7 +92712,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function"
  msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
-@@ -51496,13 +51660,13 @@
+@@ -51496,13 +51637,13 @@
  msgstr "parenthèses autour de « %E » ne peuvent être utilisées pour former pointer-to-member-function"
  
  #. An expression like &memfn.
@@ -90759,7 +92728,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say `&%T::%D'"
  msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
-@@ -51509,29 +51673,29 @@
+@@ -51509,29 +51650,29 @@
  msgstr "ISO C++ interdit de prendre l'adresse d'une borne d'un membre de fonction pour former un membre à la fonction. Disons «&%T::%D»"
  
  #. Make this a permerror because we used to accept it.
@@ -90794,7 +92763,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "cannot create pointer to reference member `%D'"
  msgid "cannot create pointer to reference member %qD"
-@@ -51538,7 +51702,7 @@
+@@ -51538,7 +51679,7 @@
  msgstr "ne peut déclarer un pointeur vers le membre de référence « %D »"
  
  # FIXME: I18N
@@ -90803,7 +92772,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "ISO C++ forbids %sing an enum"
  msgid "ISO C++ forbids incrementing an enum"
-@@ -51545,360 +51709,360 @@
+@@ -51545,360 +51686,360 @@
  msgstr "ISO C++ interdit de %ser un enum"
  
  # FIXME: I18N
@@ -91225,7 +93194,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "returning a value from a destructor"
  msgstr "retourné une valeur du destructeur"
-@@ -51905,47 +52069,47 @@
+@@ -51905,47 +52046,47 @@
  
  #. If a return statement appears in a handler of the
  #. function-try-block of a constructor, the program is ill-formed.
@@ -91281,7 +93250,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
  msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
-@@ -51952,12 +52116,12 @@
+@@ -51952,12 +52093,12 @@
  msgstr "« operator new» ne doit pas retourner NULL à moins qu'il ne soit déclaré «throw() » (ou -fcheck-new est utilisée)"
  
  #. Make this a permerror because we used to accept it.
@@ -91296,7 +93265,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "using xvalue (rvalue reference) as lvalue"
  msgstr ""
-@@ -52206,156 +52370,156 @@
+@@ -52206,156 +52347,156 @@
  msgid "insufficient contextual information to determine type"
  msgstr "information contextuelle insuffisante pour déterminer le type"
  
@@ -91480,7 +93449,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "call to function which throws incomplete type `%#T'"
  msgid "call to function which throws incomplete type %q#T"
-@@ -52571,10 +52735,10 @@
+@@ -52571,10 +52712,10 @@
  msgid "Array reference at %C cannot have more than %d dimensions"
  msgstr ""
  
@@ -91494,7 +93463,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Coarrays disabled at %C, use %<-fcoarray=%> to enable"
  msgstr ""
-@@ -52628,186 +52792,186 @@
+@@ -52628,186 +52769,186 @@
  msgid "Expected expression in array specification at %C"
  msgstr ""
  
@@ -91717,7 +93686,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "gfc_find_array_ref(): No ref found"
  msgstr ""
-@@ -53788,7 +53952,7 @@
+@@ -53788,7 +53929,7 @@
  
  #. Since the extension field is 8 bit wide, we can only have
  #. up to 255 extension levels.
@@ -91726,7 +93695,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Maximum extension level reached with type %qs at %L"
  msgstr ""
-@@ -54000,468 +54164,474 @@
+@@ -54000,468 +54141,474 @@
  msgid "Assumed-shape array %qs at %L as dummy argument to the BIND(C) procedure %qs at %L"
  msgstr ""
  
@@ -92290,7 +94259,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Return type of BIND(C) function %qs at %L cannot be a character string"
  msgstr ""
-@@ -54468,318 +54638,318 @@
+@@ -54468,318 +54615,318 @@
  
  #. Use gfc_warning_now because we won't say that the symbol fails
  #. just because of this.
@@ -92672,7 +94641,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "No label definition for FORMAT statement at %0"
  msgid "END statement instead of %s statement at %L"
-@@ -54786,557 +54956,557 @@
+@@ -54786,557 +54933,557 @@
  msgstr "pas de définition d'étiquette pour la déclaration de FORMAT à %0"
  
  #. We would have required END [something].
@@ -93335,7 +95304,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Syntax error in !GCC$ ATTRIBUTES statement at %C"
  msgstr ""
-@@ -55381,7 +55551,7 @@
+@@ -55381,7 +55528,7 @@
  msgid "show_expr(): Don't know how to show expr"
  msgstr ""
  
@@ -93344,7 +95313,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "show_code_node(): Bad statement code"
  msgstr ""
-@@ -55653,27 +55823,27 @@
+@@ -55653,27 +55800,27 @@
  msgid "BOZ literal at %L used to initialize non-integer variable %qs"
  msgstr ""
  
@@ -93377,7 +95346,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled with the option %<-fno-range-check%>"
  msgstr ""
-@@ -55965,13 +56135,13 @@
+@@ -55965,13 +56112,13 @@
  msgid "can't open input file: %s"
  msgstr "ne peut ouvrir le fichier de sortie « %s »"
  
@@ -93394,7 +95363,7 @@ Index: gcc/po/fr.po
  #: fortran/trans-intrinsic.c:6278
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "creating array of `%T'"
-@@ -55978,43 +56148,43 @@
+@@ -55978,43 +56125,43 @@
  msgid "Creating array temporary at %L"
  msgstr "création du tableau « %T »"
  
@@ -93446,7 +95415,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Scalarization using DIMEN_RANGE unimplemented"
  msgstr ""
-@@ -56133,12 +56303,12 @@
+@@ -56133,12 +56280,12 @@
  msgid "Second argument of defined assignment at %L must be INTENT(IN)"
  msgstr ""
  
@@ -93461,7 +95430,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Second argument of operator interface at %L must be INTENT(IN)"
  msgstr ""
-@@ -57130,195 +57300,195 @@
+@@ -57130,195 +57277,195 @@
  msgid "UNIT specifier not allowed with NEWUNIT at %C"
  msgstr "aucun spécificateur UNIT=1 dans la liste de contrôle d'E/S à %0"
  
@@ -93693,7 +95662,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "untyped expression as argument %d"
  msgid "Expected expression in %s statement at %C"
-@@ -57325,86 +57495,86 @@
+@@ -57325,86 +57472,86 @@
  msgstr "expression sans type comme argument %d"
  
  #. A general purpose syntax error.
@@ -93796,7 +95765,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "WAIT statement not allowed in PURE procedure at %C"
  msgstr ""
-@@ -57470,578 +57640,584 @@
+@@ -57470,578 +57617,584 @@
  msgid "Invalid character %<$%> at %L. Use %<-fdollar-ok%> to allow it as an extension"
  msgstr ""
  
@@ -94492,7 +96461,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "syntax error in macro parameter list"
  msgid "Syntax error in common block name at %C"
-@@ -58050,169 +58226,169 @@
+@@ -58050,169 +58203,169 @@
  #. If we find an error, just print it and continue,
  #. cause it's just semantic, and we can see if there
  #. are more errors.
@@ -94693,7 +96662,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "start label '%s' does not match end label '%s'"
  msgid "Label %qs at %C doesn't match WHERE label %qs"
-@@ -58553,849 +58729,849 @@
+@@ -58553,849 +58706,849 @@
  msgid "Can't USE the same %smodule we're building!"
  msgstr ""
  
@@ -95712,7 +97681,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Missing INITIALIZER clause for !$OMP DECLARE REDUCTION of derived type without default initializer at %L"
  msgstr ""
-@@ -59476,29 +59652,29 @@
+@@ -59476,29 +59629,29 @@
  msgid "Argument to %<-ffpe-summary%> is not valid: %s"
  msgstr ""
  
@@ -95747,7 +97716,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "The value of n in %<-finit-character=n%> must be between 0 and 127"
  msgstr ""
-@@ -59883,108 +60059,108 @@
+@@ -59883,108 +60036,108 @@
  msgid "ASSOCIATE construct at %C"
  msgstr ""
  
@@ -95876,7 +97845,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Unsupported VXT statement at %0"
  msgid "Unexpected %s statement in MODULE at %C"
-@@ -59993,7 +60169,7 @@
+@@ -59993,7 +60146,7 @@
  #. If we see a duplicate main program, shut down.  If the second
  #. instance is an implied main program, i.e. data decls or executable
  #. statements, we're in for lots of errors.
@@ -95885,7 +97854,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Two main PROGRAMs at %L and %C"
  msgstr ""
-@@ -60200,187 +60376,193 @@
+@@ -60200,187 +60353,193 @@
  msgid "Syntax error in COMPLEX constant at %C"
  msgstr "erreur de syntaxe dans l’action"
  
@@ -96114,7 +98083,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%s is not addressable"
  msgid "%qs at %C is not a variable"
-@@ -60724,7 +60906,7 @@
+@@ -60724,7 +60883,7 @@
  msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
  msgstr ""
  
@@ -96123,7 +98092,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Label %A already defined at %1 when redefined at %0"
  msgid "Label %d referenced at %L is never defined"
-@@ -60835,7 +61017,7 @@
+@@ -60835,7 +60994,7 @@
  msgid "Unable to resolve the specific function %qs at %L"
  msgstr ""
  
@@ -96132,7 +98101,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Function %qs at %L has no IMPLICIT type"
  msgstr ""
-@@ -61366,72 +61548,78 @@
+@@ -61366,72 +61525,78 @@
  msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
  msgstr ""
  
@@ -96224,7 +98193,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Allocate-object at %L is subobject of object at %L"
  msgstr ""
-@@ -61440,120 +61628,120 @@
+@@ -61440,120 +61605,120 @@
  #. element in the list.  Either way, we must
  #. issue an error and get the next case from P.
  #. FIXME: Sort P and Q by line number.
@@ -96368,7 +98337,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Invalid reference to intrinsic `%A' at %0"
  msgid "Invalid context for NULL () intrinsic at %L"
-@@ -61560,98 +61748,98 @@
+@@ -61560,98 +61725,98 @@
  msgstr "référence invalide vers l'intrinsèque «%A» à %0"
  
  #. FIXME: Test for defined input/output.
@@ -96485,7 +98454,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Branch at %L may result in an infinite loop"
  msgstr ""
-@@ -61658,12 +61846,12 @@
+@@ -61658,12 +61823,12 @@
  
  #. Note: A label at END CRITICAL does not leave the CRITICAL
  #. construct as END CRITICAL is still part of it.
@@ -96500,7 +98469,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
  msgstr ""
-@@ -61671,110 +61859,110 @@
+@@ -61671,110 +61836,110 @@
  #. The label is not in an enclosing block, so illegal.  This was
  #. allowed in Fortran 66, so we allow it as extension.  No
  #. further checks are necessary in this case.
@@ -96632,7 +98601,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
  msgstr ""
-@@ -61781,69 +61969,69 @@
+@@ -61781,69 +61946,69 @@
  
  #. Even if standard does not support this feature, continue to build
  #. the two statements to avoid upsetting frontend_passes.c.
@@ -96715,7 +98684,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Variable %s with binding label %s at %L uses the same global identifier as entity at %L"
  msgstr ""
-@@ -61850,7 +62038,7 @@
+@@ -61850,7 +62015,7 @@
  
  #. This can only happen if the variable is defined in a module - if it
  #. isn't the same module, reject it.
@@ -96724,7 +98693,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Variable %s from module %s with binding label %s at %L uses the same global identifier as entity at %L from module %s"
  msgstr ""
-@@ -61858,53 +62046,53 @@
+@@ -61858,53 +62023,53 @@
  #. Print an error if the procedure is defined multiple times; we have to
  #. exclude references to the same procedure via module association or
  #. multiple checks for the same procedure.
@@ -96788,7 +98757,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
  msgstr ""
-@@ -61911,458 +62099,458 @@
+@@ -61911,458 +62076,458 @@
  
  #. The shape of a main program or module array needs to be
  #. constant.
@@ -97336,7 +99305,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
  msgstr ""
-@@ -62369,410 +62557,415 @@
+@@ -62369,410 +62534,415 @@
  
  #. FIXME: Once UDDTIO is implemented, the following can be
  #. removed.
@@ -97833,7 +99802,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
  msgstr ""
-@@ -62853,7 +63046,7 @@
+@@ -62853,7 +63023,7 @@
  msgid "Illegal preprocessor directive"
  msgstr "%s dans la directive du préprocesseur"
  
@@ -97842,7 +99811,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "can't open output file `%s'"
  msgid "Can't open file %qs"
-@@ -63123,70 +63316,70 @@
+@@ -63123,70 +63293,70 @@
  msgid "Argument NCOPIES of REPEAT intrinsic is too large at %L"
  msgstr ""
  
@@ -97926,7 +99895,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Character %qs in string at %L cannot be converted into character kind %d"
  msgstr ""
-@@ -63629,17 +63822,17 @@
+@@ -63629,17 +63799,17 @@
  
  #. Problems occur when we get something like
  #. integer :: a(lots) = (/(i, i=1, lots)/)
@@ -97947,7 +99916,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "bad expression type during walk (%d)"
  msgstr ""
-@@ -63732,111 +63925,111 @@
+@@ -63732,111 +63902,111 @@
  msgid "non-constant initialization expression at %L"
  msgstr "expression n'est pas une constante"
  
@@ -98080,7 +100049,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "too few arguments to function `%s'"
  msgid "Unknown argument list function at %L"
-@@ -63853,7 +64046,7 @@
+@@ -63853,7 +64023,7 @@
  msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
  msgstr ""
  
@@ -98089,7 +100058,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Sorry, the event component of derived type at %L is not yet supported"
  msgstr ""
-@@ -63885,17 +64078,17 @@
+@@ -63885,17 +64055,17 @@
  msgid "An alternate return at %L without a * dummy argument"
  msgstr "spécificateur alternatif de retour à %0 invalide à l'intérieur de l'unité du programme principal"
  
@@ -98110,7 +100079,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "gfc_trans_select(): Bad type for case expr."
  msgstr ""
-@@ -65511,6 +65704,34 @@
+@@ -65511,6 +65681,34 @@
  msgid "creating selector for nonexistent method %qE"
  msgstr "création du sélection pour une méthode inexistante %qE"
  
@@ -173075,7 +175044,11 @@ Index: gcc/po/ChangeLog
 ===================================================================
 --- a/src/gcc/po/ChangeLog	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/po/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,33 @@
+@@ -1,3 +1,37 @@
++2016-06-06  Joseph Myers  <joseph at codesourcery.com>
++
++	* fr.po: Update.
++
 +2016-05-25  Joseph Myers  <joseph at codesourcery.com>
 +
 +	* ru.po: Update.
@@ -797860,6 +799833,27 @@ Index: gcc/config.gcc
  	with_tls=${with_tls:-gnu}
  	;;
  arm*-*-netbsdelf*)
+@@ -4280,9 +4278,9 @@
+ 		esac
+ 		;;
+ 	sparc*-*-*)
+-		supported_defaults="cpu float tune"
++		supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
+ 
+-		for which in cpu tune; do
++		for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
+ 			eval "val=\$with_$which"
+ 			case ${val} in
+ 			"" | sparc | sparcv9 | sparc64 \
+@@ -4291,7 +4289,7 @@
+ 			| sparclite | f930 | f934 | sparclite86x \
+ 			| sparclet | tsc701 \
+ 			| v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
+-			| niagara3 | niagara4)
++			| niagara3 | niagara4 | niagara7)
+ 				# OK
+ 				;;
+ 			*)
 Index: gcc/tree-ssa-structalias.c
 ===================================================================
 --- a/src/gcc/tree-ssa-structalias.c	(.../tags/gcc_6_1_0_release)
@@ -798072,6 +800066,1469 @@ Index: gcc/config/s390/s390.md
    "@
     ldebr\t%0,%1
     ldeb\t%0,%1
+Index: gcc/config/sparc/driver-sparc.c
+===================================================================
+--- a/src/gcc/config/sparc/driver-sparc.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/config/sparc/driver-sparc.c	(.../branches/gcc-6-branch)
+@@ -75,6 +75,8 @@
+   { "UltraSparc T4",	"niagara4" },
+   { "LEON",		"leon3" },
+ #endif
++  { "SPARC-M7",		"niagara7" },
++  { "SPARC-S7",		"niagara7" },
+   { NULL,	NULL }
+   };
+ 
+Index: gcc/config/sparc/niagara7.md
+===================================================================
+--- a/src/gcc/config/sparc/niagara7.md	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/config/sparc/niagara7.md	(.../branches/gcc-6-branch)
+@@ -0,0 +1,136 @@
++;; Scheduling description for Niagara-7
++;;   Copyright (C) 2016 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/>.
++
++(define_automaton "niagara7_0")
++
++(define_cpu_unit "n7_slot0,n7_slot1,n7_slot2" "niagara7_0")
++(define_reservation "n7_single_issue" "n7_slot0 + n7_slot1 + n7_slot2")
++
++(define_cpu_unit "n7_load_store" "niagara7_0")
++
++(define_insn_reservation "n7_single" 1
++  (and (eq_attr "cpu" "niagara7")
++    (eq_attr "type" "multi,savew,flushw,trap"))
++  "n7_single_issue")
++
++(define_insn_reservation "n7_iflush" 27
++  (and (eq_attr "cpu" "niagara7")
++       (eq_attr "type" "iflush"))
++  "(n7_slot0 | n7_slot1), nothing*26")
++
++(define_insn_reservation "n7_integer" 1
++  (and (eq_attr "cpu" "niagara7")
++    (eq_attr "type" "ialu,ialuX,shift,cmove,compare"))
++  "(n7_slot0 | n7_slot1)")
++
++(define_insn_reservation "n7_imul" 12
++  (and (eq_attr "cpu" "niagara7")
++    (eq_attr "type" "imul"))
++  "n7_slot1, nothing*11")
++
++(define_insn_reservation "n7_idiv" 35
++  (and (eq_attr "cpu" "niagara7")
++    (eq_attr "type" "idiv"))
++  "n7_slot1, nothing*34")
++
++(define_insn_reservation "n7_load" 5
++  (and (eq_attr "cpu" "niagara7")
++    (eq_attr "type" "load,fpload,sload"))
++  "(n7_slot0 + n7_load_store), nothing*4")
++
++(define_insn_reservation "n7_store" 1
++  (and (eq_attr "cpu" "niagara7")
++    (eq_attr "type" "store,fpstore"))
++  "(n7_slot0 | n7_slot2) + n7_load_store")
++
++(define_insn_reservation "n7_cti" 1
++  (and (eq_attr "cpu" "niagara7")
++    (eq_attr "type" "cbcond,uncond_cbcond,branch,call,sibcall,call_no_delay_slot,uncond_branch,return"))
++  "n7_slot1")
++
++(define_insn_reservation "n7_fp" 11
++  (and (eq_attr "cpu" "niagara7")
++    (eq_attr "type" "fpmove,fpcmove,fpcrmove,fp,fpcmp,fpmul"))
++  "n7_slot1, nothing*10")
++
++(define_insn_reservation "n7_array" 12
++  (and (eq_attr "cpu" "niagara7")
++    (eq_attr "type" "array,edge,edgen"))
++  "n7_slot1, nothing*11")
++
++(define_insn_reservation "n7_fpdivs" 24
++  (and (eq_attr "cpu" "niagara7")
++    (eq_attr "type" "fpdivs,fpsqrts"))
++  "n7_slot1, nothing*23")
++
++(define_insn_reservation "n7_fpdivd" 37
++  (and (eq_attr "cpu" "niagara7")
++    (eq_attr "type" "fpdivd,fpsqrtd"))
++  "n7_slot1, nothing*36")
++
++(define_insn_reservation "n7_lzd" 12
++  (and (eq_attr "cpu" "niagara7")
++       (eq_attr "type" "lzd"))
++  "(n7_slot0 | n7_slot1), nothing*11")
++
++;; There is an internal unit called the "V3 pipe", that was originally
++;; intended to process some of the short cryptographic instructions.
++;; However, as soon as in the T4 several of the VIS instructions
++;; (notably non-FP instructions) have been moved to the V3 pipe.
++;; Consequently, these instructions feature a latency of 3 instead of
++;; 11 or 12 cycles, provided their consumers also execute in the V3
++;; pipe.
++;;
++;; This is modelled here with a bypass.
++
++(define_insn_reservation "n7_vis_fga" 11
++  (and (eq_attr "cpu" "niagara7")
++    (eq_attr "type" "fga,gsr"))
++  "n7_slot1, nothing*10")
++
++(define_insn_reservation "n7_vis_fgm" 11
++  (and (eq_attr "cpu" "niagara7")
++    (eq_attr "type" "fgm_pack,fgm_mul,pdist"))
++  "n7_slot1, nothing*10")
++
++(define_insn_reservation "n7_vis_move_v3pipe" 11
++  (and (eq_attr "cpu" "niagara7")
++    (and (eq_attr "type" "vismv")
++         (eq_attr "v3pipe" "true")))
++  "n7_slot1")
++
++(define_insn_reservation "n7_vis_move_11cycle" 11
++  (and (eq_attr "cpu" "niagara7")
++    (and (eq_attr "type" "vismv")
++         (eq_attr "v3pipe" "false")))
++  "n7_slot1, nothing*10")
++
++(define_insn_reservation "n7_vis_logical_v3pipe" 11
++  (and (eq_attr "cpu" "niagara7")
++    (and (eq_attr "type" "visl,pdistn")
++         (eq_attr "v3pipe" "true")))
++  "n7_slot1, nothing*2")
++
++(define_insn_reservation "n7_vis_logical_11cycle" 11
++  (and (eq_attr "cpu" "niagara7")
++    (and (eq_attr "type" "visl")
++      (eq_attr "v3pipe" "false")))
++  "n7_slot1, nothing*10")
++
++(define_bypass 3 "*_v3pipe" "*_v3pipe")
+Index: gcc/config/sparc/sparc.md
+===================================================================
+--- a/src/gcc/config/sparc/sparc.md	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/config/sparc/sparc.md	(.../branches/gcc-6-branch)
+@@ -234,7 +234,8 @@
+    niagara,
+    niagara2,
+    niagara3,
+-   niagara4"
++   niagara4,
++   niagara7"
+   (const (symbol_ref "sparc_cpu_attr")))
+ 
+ ;; Attribute for the instruction set.
+@@ -247,7 +248,7 @@
+ 	 (symbol_ref "TARGET_SPARCLET") (const_string "sparclet")]
+ 	(const_string "v7"))))
+ 
+-(define_attr "cpu_feature" "none,fpu,fpunotv9,v9,vis,vis3" (const_string "none"))
++(define_attr "cpu_feature" "none,fpu,fpunotv9,v9,vis,vis3,vis4" (const_string "none"))
+ 
+ (define_attr "enabled" ""
+   (cond [(eq_attr "cpu_feature" "none") (const_int 1)
+@@ -255,7 +256,8 @@
+ 	 (eq_attr "cpu_feature" "fpunotv9") (symbol_ref "TARGET_FPU && ! TARGET_V9")
+          (eq_attr "cpu_feature" "v9") (symbol_ref "TARGET_V9")
+          (eq_attr "cpu_feature" "vis") (symbol_ref "TARGET_VIS")
+-         (eq_attr "cpu_feature" "vis3") (symbol_ref "TARGET_VIS3")]
++         (eq_attr "cpu_feature" "vis3") (symbol_ref "TARGET_VIS3")
++         (eq_attr "cpu_feature" "vis4") (symbol_ref "TARGET_VIS4")]
+         (const_int 0)))
+ 
+ ;; Insn type.
+@@ -274,7 +276,7 @@
+    fga,visl,vismv,fgm_pack,fgm_mul,pdist,pdistn,edge,edgen,gsr,array,
+    cmove,
+    ialuX,
+-   multi,savew,flushw,iflush,trap"
++   multi,savew,flushw,iflush,trap,lzd"
+   (const_string "ialu"))
+ 
+ ;; True if branch/call has empty delay slot and will emit a nop in it
+@@ -476,6 +478,10 @@
+ 	   (const_string "true")
+ 	] (const_string "false")))
+ 
++;; True if the instruction executes in the V3 pipeline, in M7 and
++;; later processors.
++(define_attr "v3pipe" "false,true" (const_string "false"))
++
+ (define_delay (eq_attr "type" "call")
+   [(eq_attr "in_call_delay" "true") (nil) (nil)])
+ 
+@@ -504,6 +510,7 @@
+ (include "niagara.md")
+ (include "niagara2.md")
+ (include "niagara4.md")
++(include "niagara7.md")
+ 
+ 
+ ;; Operand and operator predicates and constraints
+@@ -1457,6 +1464,7 @@
+    fzeros\t%0
+    fones\t%0"
+   [(set_attr "type" "*,*,load,store,vismv,vismv,fpmove,fpload,fpstore,visl,visl")
++   (set_attr "v3pipe" "*,*,*,*,true,true,*,*,*,true,true")
+    (set_attr "cpu_feature" "*,*,*,*,vis3,vis3,*,*,*,vis,vis")])
+ 
+ (define_insn "*movsi_lo_sum"
+@@ -1622,6 +1630,7 @@
+    fzero\t%0
+    fone\t%0"
+   [(set_attr "type" "store,store,store,load,*,*,*,*,fpstore,fpload,*,*,fpmove,*,*,*,fpload,fpstore,visl,visl")
++   (set_attr "v3pipe" "false, false, false, false,false,false,false,false,false,false,false,false,false,false,false,false,false,false, true, true")
+    (set_attr "length" "*,2,*,*,2,2,2,2,*,*,2,2,*,2,2,2,*,*,*,*")
+    (set_attr "fptype" "*,*,*,*,*,*,*,*,*,*,*,*,double,*,*,*,*,*,double,double")
+    (set_attr "cpu_feature" "v9,*,*,*,*,*,*,*,fpu,fpu,fpu,fpu,v9,fpunotv9,vis3,vis3,fpu,fpu,vis,vis")])
+@@ -1645,6 +1654,7 @@
+    fzero\t%0
+    fone\t%0"
+   [(set_attr "type" "*,*,load,store,vismv,vismv,fpmove,fpload,fpstore,visl,visl")
++   (set_attr "v3pipe" "*, *, *, *, *, *, *, *, *, true, true")
+    (set_attr "fptype" "*,*,*,*,*,*,double,*,*,double,double")
+    (set_attr "cpu_feature" "*,*,*,*,vis3,vis3,*,*,*,vis,vis")])
+ 
+@@ -2208,6 +2218,7 @@
+     }
+ }
+   [(set_attr "type" "visl,visl,fpmove,*,*,*,vismv,vismv,fpload,load,fpstore,store")
++   (set_attr "v3pipe" "true, true, *, *, *, *, true, true, *, *, *, *")
+    (set_attr "cpu_feature" "vis,vis,fpu,*,*,*,vis3,vis3,fpu,*,fpu,*")])
+ 
+ ;; The following 3 patterns build SFmode constants in integer registers.
+@@ -2276,6 +2287,7 @@
+   #
+   #"
+   [(set_attr "type" "visl,visl,fpmove,*,*,*,fpload,store,fpstore,load,store,*,*,*,*")
++   (set_attr "v3pipe" "true, true, *, *, *, *, *, *, *, *, *, *, *, *, *")
+    (set_attr "length" "*,*,*,2,2,2,*,*,*,*,*,2,2,2,2")
+    (set_attr "fptype" "double,double,double,*,*,*,*,*,*,*,*,*,*,*,*")
+    (set_attr "cpu_feature" "vis,vis,v9,fpunotv9,vis3,vis3,fpu,v9,fpu,*,*,fpu,*,*,fpu")])
+@@ -2299,6 +2311,7 @@
+   stx\t%r1, %0
+   #"
+   [(set_attr "type" "visl,visl,fpmove,vismv,vismv,load,store,*,load,store,*")
++   (set_attr "v3pipe" "true, true, *, *, *, *, *, *, *, *, *")
+    (set_attr "length" "*,*,*,*,*,*,*,*,*,*,2")
+    (set_attr "fptype" "double,double,double,double,double,*,*,*,*,*,*")
+    (set_attr "cpu_feature" "vis,vis,fpu,vis3,vis3,fpu,fpu,*,*,*,*")])
+@@ -2980,6 +2993,7 @@
+    lduw\t%1, %0
+    movstouw\t%1, %0"
+   [(set_attr "type" "shift,load,*")
++   (set_attr "v3pipe" "*,*,true")
+    (set_attr "cpu_feature" "*,*,vis3")])
+ 
+ (define_insn_and_split "*zero_extendsidi2_insn_sp32"
+@@ -3294,6 +3308,7 @@
+   ldsw\t%1, %0
+   movstosw\t%1, %0"
+   [(set_attr "type" "shift,sload,*")
++   (set_attr "v3pipe" "*,*,true")
+    (set_attr "us3load_type" "*,3cycle,*")
+    (set_attr "cpu_feature" "*,*,vis3")])
+ 
+@@ -6770,7 +6785,8 @@
+   [(set (match_operand:DI 0 "register_operand" "=r")
+         (clz:DI (match_operand:DI 1 "register_operand" "r")))]
+   "TARGET_VIS3 && TARGET_ARCH64"
+-  "lzd\t%1, %0")
++  "lzd\t%1, %0"
++  [(set_attr "type" "lzd")])
+ 
+ (define_insn "clzdi_v8plus"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+@@ -6811,7 +6827,8 @@
+         (truncate:SI
+           (clz:DI (match_operand:DI 1 "register_operand" "r"))))]
+   "TARGET_VIS3 && TARGET_ARCH64"
+-  "lzd\t%1, %0")
++  "lzd\t%1, %0"
++  [(set_attr "type" "lzd")])
+ 
+ (define_insn "clzsi_v8plus"
+   [(set (match_operand:SI 0 "register_operand" "=r")
+@@ -7777,7 +7794,7 @@
+ (define_mode_iterator VM64 [V1DI V2SI V4HI V8QI])
+ (define_mode_iterator VMALL [V1SI V2HI V4QI V1DI V2SI V4HI V8QI])
+ 
+-(define_mode_attr vbits [(V2SI "32") (V4HI "16") (V1SI "32s") (V2HI "16s")])
++(define_mode_attr vbits [(V2SI "32") (V4HI "16") (V1SI "32s") (V2HI "16s") (V8QI "8")])
+ (define_mode_attr vconstr [(V1SI "f") (V2HI "f") (V4QI "f")
+ 			   (V1DI "e") (V2SI "e") (V4HI "e") (V8QI "e")])
+ (define_mode_attr vfptype [(V1SI "single") (V2HI "single") (V4QI "single")
+@@ -7812,6 +7829,7 @@
+   movstouw\t%1, %0
+   movwtos\t%1, %0"
+   [(set_attr "type" "visl,visl,vismv,fpload,fpstore,store,load,store,*,vismv,vismv")
++   (set_attr "v3pipe" "true,true,true,false,false,false,false,false,false,true,true")
+    (set_attr "cpu_feature" "vis,vis,vis,*,*,*,*,*,*,vis3,vis3")])
+ 
+ (define_insn "*mov<VM64:mode>_insn_sp64"
+@@ -7834,6 +7852,7 @@
+   movxtod\t%1, %0
+   mov\t%1, %0"
+   [(set_attr "type" "visl,visl,vismv,fpload,fpstore,store,load,store,vismv,vismv,*")
++   (set_attr "v3pipe" "true, true, true, false, false, false, false, false, false, false, false")
+    (set_attr "cpu_feature" "vis,vis,vis,*,*,*,*,*,vis3,vis3,*")])
+ 
+ (define_insn "*mov<VM64:mode>_insn_sp32"
+@@ -7857,6 +7876,7 @@
+   #
+   #"
+   [(set_attr "type" "visl,visl,vismv,*,*,fpload,fpstore,store,load,store,*,*")
++   (set_attr "v3pipe" "true, true, true, false, false, false, false, false, false, false, false, false")
+    (set_attr "length" "*,*,*,2,2,*,*,*,*,*,2,2")
+    (set_attr "cpu_feature" "vis,vis,vis,vis3,vis3,*,*,*,*,*,*,*")])
+ 
+@@ -7936,7 +7956,8 @@
+   "TARGET_VIS"
+   "fp<plusminus_insn><vbits>\t%1, %2, %0"
+   [(set_attr "type" "fga")
+-   (set_attr "fptype" "<vfptype>")])
++   (set_attr "fptype" "<vfptype>")
++   (set_attr "v3pipe" "true")])
+ 
+ (define_mode_iterator VL [V1SI V2HI V4QI V1DI V2SI V4HI V8QI])
+ (define_mode_attr vlsuf [(V1SI "s") (V2HI "s") (V4QI "s")
+@@ -7952,6 +7973,7 @@
+   "TARGET_VIS"
+   "f<vlinsn><vlsuf>\t%1, %2, %0"
+   [(set_attr "type" "visl")
++   (set_attr "v3pipe" "true")
+    (set_attr "fptype" "<vfptype>")])
+ 
+ (define_insn "*not_<code><mode>3"
+@@ -7961,6 +7983,7 @@
+   "TARGET_VIS"
+   "f<vlninsn><vlsuf>\t%1, %2, %0"
+   [(set_attr "type" "visl")
++   (set_attr "v3pipe" "true")
+    (set_attr "fptype" "<vfptype>")])
+ 
+ ;; (ior (not (op1)) (not (op2))) is the canonical form of NAND.
+@@ -7971,6 +7994,7 @@
+   "TARGET_VIS"
+   "fnand<vlsuf>\t%1, %2, %0"
+   [(set_attr "type" "visl")
++   (set_attr "v3pipe" "true")
+    (set_attr "fptype" "<vfptype>")])
+ 
+ (define_code_iterator vlnotop [ior and])
+@@ -7982,6 +8006,7 @@
+   "TARGET_VIS"
+   "f<vlinsn>not1<vlsuf>\t%1, %2, %0"
+   [(set_attr "type" "visl")
++   (set_attr "v3pipe" "true")
+    (set_attr "fptype" "<vfptype>")])
+ 
+ (define_insn "*<code>_not2<mode>_vis"
+@@ -7991,6 +8016,7 @@
+   "TARGET_VIS"
+   "f<vlinsn>not2<vlsuf>\t%1, %2, %0"
+   [(set_attr "type" "visl")
++   (set_attr "v3pipe" "true")
+    (set_attr "fptype" "<vfptype>")])
+ 
+ (define_insn "one_cmpl<mode>2"
+@@ -7999,6 +8025,7 @@
+   "TARGET_VIS"
+   "fnot1<vlsuf>\t%1, %0"
+   [(set_attr "type" "visl")
++   (set_attr "v3pipe" "true")
+    (set_attr "fptype" "<vfptype>")])
+ 
+ ;; Hard to generate VIS instructions.  We have builtins for these.
+@@ -8225,7 +8252,8 @@
+   "TARGET_VIS"
+   "faligndata\t%1, %2, %0"
+   [(set_attr "type" "fga")
+-   (set_attr "fptype" "double")])
++   (set_attr "fptype" "double")
++   (set_attr "v3pipe" "true")])
+ 
+ (define_insn "alignaddrsi_vis"
+   [(set (match_operand:SI 0 "register_operand" "=r")
+@@ -8235,7 +8263,8 @@
+         (zero_extend:DI (plus:SI (match_dup 1) (match_dup 2))))]
+   "TARGET_VIS"
+   "alignaddr\t%r1, %r2, %0"
+-  [(set_attr "type" "gsr")])
++  [(set_attr "type" "gsr")
++   (set_attr "v3pipe" "true")])
+ 
+ (define_insn "alignaddrdi_vis"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+@@ -8245,7 +8274,8 @@
+         (plus:DI (match_dup 1) (match_dup 2)))]
+   "TARGET_VIS"
+   "alignaddr\t%r1, %r2, %0"
+-  [(set_attr "type" "gsr")])
++  [(set_attr "type" "gsr")
++   (set_attr "v3pipe" "true")])
+ 
+ (define_insn "alignaddrlsi_vis"
+   [(set (match_operand:SI 0 "register_operand" "=r")
+@@ -8256,7 +8286,8 @@
+                 (const_int 7)))]
+   "TARGET_VIS"
+   "alignaddrl\t%r1, %r2, %0"
+-  [(set_attr "type" "gsr")])
++  [(set_attr "type" "gsr")
++   (set_attr "v3pipe" "true")])
+ 
+ (define_insn "alignaddrldi_vis"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+@@ -8267,7 +8298,8 @@
+                 (const_int 7)))]
+   "TARGET_VIS"
+   "alignaddrl\t%r1, %r2, %0"
+-  [(set_attr "type" "gsr")])
++  [(set_attr "type" "gsr")
++   (set_attr "v3pipe" "true")])
+ 
+ (define_insn "pdist_vis"
+   [(set (match_operand:DI 0 "register_operand" "=e")
+@@ -8360,8 +8392,19 @@
+   "TARGET_VIS"
+   "fcmp<code><GCM:gcm_name>\t%1, %2, %0"
+   [(set_attr "type" "visl")
++   (set_attr "v3pipe" "true")
+    (set_attr "fptype" "double")])
+ 
++(define_insn "fpcmp<code>8<P:mode>_vis"
++  [(set (match_operand:P 0 "register_operand" "=r")
++  	(unspec:P [(gcond:V8QI (match_operand:V8QI 1 "register_operand" "e")
++		               (match_operand:V8QI 2 "register_operand" "e"))]
++	 UNSPEC_FCMP))]
++  "TARGET_VIS4"
++  "fpcmp<code>8\t%1, %2, %0"
++  [(set_attr "type" "visl")
++   (set_attr "fptype" "double")])
++
+ (define_expand "vcond<mode><mode>"
+   [(match_operand:GCM 0 "register_operand" "")
+    (match_operand:GCM 1 "register_operand" "")
+@@ -8427,7 +8470,8 @@
+         (plus:DI (match_dup 1) (match_dup 2)))]
+   "TARGET_VIS2"
+   "bmask\t%r1, %r2, %0"
+-  [(set_attr "type" "array")])
++  [(set_attr "type" "array")
++   (set_attr "v3pipe" "true")])
+ 
+ (define_insn "bmasksi_vis"
+   [(set (match_operand:SI 0 "register_operand" "=r")
+@@ -8437,7 +8481,8 @@
+         (zero_extend:DI (plus:SI (match_dup 1) (match_dup 2))))]
+   "TARGET_VIS2"
+   "bmask\t%r1, %r2, %0"
+-  [(set_attr "type" "array")])
++  [(set_attr "type" "array")
++   (set_attr "v3pipe" "true")])
+ 
+ (define_insn "bshuffle<VM64:mode>_vis"
+   [(set (match_operand:VM64 0 "register_operand" "=e")
+@@ -8448,7 +8493,8 @@
+   "TARGET_VIS2"
+   "bshuffle\t%1, %2, %0"
+   [(set_attr "type" "fga")
+-   (set_attr "fptype" "double")])
++   (set_attr "fptype" "double")
++   (set_attr "v3pipe" "true")])
+ 
+ ;; The rtl expanders will happily convert constant permutations on other
+ ;; modes down to V8QI.  Rely on this to avoid the complexity of the byte
+@@ -8550,7 +8596,8 @@
+                    UNSPEC_CMASK8))]
+   "TARGET_VIS3"
+   "cmask8\t%r0"
+-  [(set_attr "type" "fga")])
++  [(set_attr "type" "fga")
++   (set_attr "v3pipe" "true")])
+ 
+ (define_insn "cmask16<P:mode>_vis"
+   [(set (reg:DI GSR_REG)
+@@ -8559,7 +8606,8 @@
+                    UNSPEC_CMASK16))]
+   "TARGET_VIS3"
+   "cmask16\t%r0"
+-  [(set_attr "type" "fga")])
++  [(set_attr "type" "fga")
++   (set_attr "v3pipe" "true")])
+ 
+ (define_insn "cmask32<P:mode>_vis"
+   [(set (reg:DI GSR_REG)
+@@ -8568,7 +8616,8 @@
+                    UNSPEC_CMASK32))]
+   "TARGET_VIS3"
+   "cmask32\t%r0"
+-  [(set_attr "type" "fga")])
++  [(set_attr "type" "fga")
++   (set_attr "v3pipe" "true")])
+ 
+ (define_insn "fchksm16_vis"
+   [(set (match_operand:V4HI 0 "register_operand" "=e")
+@@ -8601,6 +8650,7 @@
+   "TARGET_VIS3"
+   "pdistn\t%1, %2, %0"
+   [(set_attr "type" "pdistn")
++   (set_attr "v3pipe" "true")
+    (set_attr "fptype" "double")])
+ 
+ (define_insn "fmean16_vis"
+@@ -8628,6 +8678,14 @@
+   "fp<plusminus_insn>64\t%1, %2, %0"
+   [(set_attr "type" "fga")])
+ 
++(define_insn "<plusminus_insn>v8qi3"
++  [(set (match_operand:V8QI 0 "register_operand" "=e")
++        (plusminus:V8QI (match_operand:V8QI 1 "register_operand" "e")
++                        (match_operand:V8QI 2 "register_operand" "e")))]
++  "TARGET_VIS4"
++  "fp<plusminus_insn>8\t%1, %2, %0"
++  [(set_attr "type" "fga")])
++
+ (define_mode_iterator VASS [V4HI V2SI V2HI V1SI])
+ (define_code_iterator vis3_addsub_ss [ss_plus ss_minus])
+ (define_code_attr vis3_addsub_ss_insn
+@@ -8641,8 +8699,63 @@
+                              (match_operand:VASS 2 "register_operand" "<vconstr>")))]
+   "TARGET_VIS3"
+   "<vis3_addsub_ss_insn><vbits>\t%1, %2, %0"
++  [(set_attr "type" "fga")
++   (set_attr "v3pipe" "true")])
++
++(define_mode_iterator VMMAX [V8QI V4HI V2SI])
++(define_code_iterator vis4_minmax [smin smax])
++(define_code_attr vis4_minmax_insn
++  [(smin "fpmin") (smax "fpmax")])
++(define_code_attr vis4_minmax_patname
++  [(smin "min") (smax "max")])
++
++(define_insn "<vis4_minmax_patname><mode>3"
++  [(set (match_operand:VMMAX 0 "register_operand" "=<vconstr>")
++        (vis4_minmax:VMMAX (match_operand:VMMAX 1 "register_operand" "<vconstr>")
++                           (match_operand:VMMAX 2 "register_operand" "<vconstr>")))]
++  "TARGET_VIS4"
++  "<vis4_minmax_insn><vbits>\t%1, %2, %0"
+   [(set_attr "type" "fga")])
+ 
++(define_code_iterator vis4_uminmax [umin umax])
++(define_code_attr vis4_uminmax_insn
++  [(umin "fpminu") (umax "fpmaxu")])
++(define_code_attr vis4_uminmax_patname
++ [(umin "minu") (umax "maxu")])
++
++(define_insn "<vis4_uminmax_patname><mode>3"
++  [(set (match_operand:VMMAX 0 "register_operand" "=<vconstr>")
++        (vis4_uminmax:VMMAX (match_operand:VMMAX 1 "register_operand" "<vconstr>")
++                            (match_operand:VMMAX 2 "register_operand" "<vconstr>")))]
++  "TARGET_VIS4"
++  "<vis4_uminmax_insn><vbits>\t%1, %2, %0"
++  [(set_attr "type" "fga")])
++
++;; The use of vis3_addsub_ss_patname in the VIS4 instruction below is
++;; intended.
++(define_insn "<vis3_addsub_ss_patname>v8qi3"
++  [(set (match_operand:V8QI 0 "register_operand" "=e")
++        (vis3_addsub_ss:V8QI (match_operand:V8QI 1 "register_operand" "e")
++                             (match_operand:V8QI 2 "register_operand" "e")))]
++  "TARGET_VIS4"
++  "<vis3_addsub_ss_insn>8\t%1, %2, %0"
++  [(set_attr "type" "fga")])
++
++(define_mode_iterator VAUS [V4HI V8QI])
++(define_code_iterator vis4_addsub_us [us_plus us_minus])
++(define_code_attr vis4_addsub_us_insn
++  [(us_plus "fpaddus") (us_minus "fpsubus")])
++(define_code_attr vis4_addsub_us_patname
++  [(us_plus "usadd") (us_minus "ussub")])
++
++(define_insn "<vis4_addsub_us_patname><mode>3"
++ [(set (match_operand:VAUS 0 "register_operand" "=<vconstr>")
++       (vis4_addsub_us:VAUS (match_operand:VAUS 1 "register_operand" "<vconstr>")
++                            (match_operand:VAUS 2 "register_operand" "<vconstr>")))]
++ "TARGET_VIS4"
++ "<vis4_addsub_us_insn><vbits>\t%1, %2, %0"
++ [(set_attr "type" "fga")])
++
+ (define_insn "fucmp<code>8<P:mode>_vis"
+   [(set (match_operand:P 0 "register_operand" "=r")
+   	(unspec:P [(gcond:V8QI (match_operand:V8QI 1 "register_operand" "e")
+@@ -8650,8 +8763,19 @@
+ 	 UNSPEC_FUCMP))]
+   "TARGET_VIS3"
+   "fucmp<code>8\t%1, %2, %0"
+-  [(set_attr "type" "visl")])
++  [(set_attr "type" "visl")
++   (set_attr "v3pipe" "true")])
+ 
++(define_insn "fpcmpu<code><GCM:gcm_name><P:mode>_vis"
++  [(set (match_operand:P 0 "register_operand" "=r")
++  	(unspec:P [(gcond:GCM (match_operand:GCM 1 "register_operand" "e")
++		              (match_operand:GCM 2 "register_operand" "e"))]
++	 UNSPEC_FUCMP))]
++  "TARGET_VIS4"
++  "fpcmpu<code><GCM:gcm_name>\t%1, %2, %0"
++  [(set_attr "type" "visl")
++   (set_attr "fptype" "double")])
++
+ (define_insn "*naddsf3"
+   [(set (match_operand:SF 0 "register_operand" "=f")
+         (neg:SF (plus:SF (match_operand:SF 1 "register_operand" "f")
+Index: gcc/config/sparc/sparc-c.c
+===================================================================
+--- a/src/gcc/config/sparc/sparc-c.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/config/sparc/sparc-c.c	(.../branches/gcc-6-branch)
+@@ -40,8 +40,13 @@
+       cpp_assert (parse_in, "machine=sparc");
+     }
+ 
+-  if (TARGET_VIS3)
++  if (TARGET_VIS4)
+     {
++      cpp_define (parse_in, "__VIS__=0x400");
++      cpp_define (parse_in, "__VIS__=0x400");
++    }
++  else if (TARGET_VIS3)
++    {
+       cpp_define (parse_in, "__VIS__=0x300");
+       cpp_define (parse_in, "__VIS=0x300");
+     }
+Index: gcc/config/sparc/sparc.opt
+===================================================================
+--- a/src/gcc/config/sparc/sparc.opt	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/config/sparc/sparc.opt	(.../branches/gcc-6-branch)
+@@ -73,6 +73,10 @@
+ Target Report Mask(VIS3)
+ Use UltraSPARC Visual Instruction Set version 3.0 extensions.
+ 
++mvis4
++Target Report Mask(VIS4)
++Use UltraSPARC Visual Instruction Set version 4.0 extensions.
++
+ mcbcond
+ Target Report Mask(CBCOND)
+ Use UltraSPARC Compare-and-Branch extensions.
+@@ -194,6 +198,9 @@
+ EnumValue
+ Enum(sparc_processor_type) String(niagara4) Value(PROCESSOR_NIAGARA4)
+ 
++EnumValue
++Enum(sparc_processor_type) String(niagara7) Value(PROCESSOR_NIAGARA7)
++
+ mcmodel=
+ Target RejectNegative Joined Var(sparc_cmodel_string)
+ Use given SPARC-V9 code model.
+Index: gcc/config/sparc/visintrin.h
+===================================================================
+--- a/src/gcc/config/sparc/visintrin.h	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/config/sparc/visintrin.h	(.../branches/gcc-6-branch)
+@@ -704,6 +704,192 @@
+ 
+ #endif /* __VIS__ >= 0x300 */
+ 
++#if __VIS__ >= 0x400
++
++extern __inline __v8qi
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpadd8 (__v8qi __A, __v8qi __B)
++{
++  return __builtin_vis_fpadd8 (__A, __B);
++}
++
++extern __inline __v8qi
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpadds8 (__v8qi __A, __v8qi __B)
++{
++  return __builtin_vis_fpadds8 (__A, __B);
++}
++
++extern __inline __v8qi
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpaddus8 (__v8qi __A, __v8qi __B)
++{
++  return __builtin_vis_fpaddus8 (__A, __B);
++}
++
++extern __inline __v4hi
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpaddus16 (__v4hi __A, __v4hi __B)
++{
++  return __builtin_vis_fpaddus16 (__A, __B);
++}
++
++extern __inline long
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpcmple8 (__v8qi __A, __v8qi __B)
++{
++  return __builtin_vis_fpcmple8 (__A, __B);
++}
++
++extern __inline long
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpcmpgt8 (__v8qi __A, __v8qi __B)
++{
++  return __builtin_vis_fpcmpgt8 (__A, __B);
++}
++
++extern __inline long
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpcmpule16 (__v4hi __A, __v4hi __B)
++{
++  return __builtin_vis_fpcmpule16 (__A, __B);
++}
++
++extern __inline long
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpcmpugt16 (__v4hi __A, __v4hi __B)
++{
++  return __builtin_vis_fpcmpugt16 (__A, __B);
++}
++
++extern __inline long
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpcmpule32 (__v2si __A, __v2si __B)
++{
++  return __builtin_vis_fpcmpule32 (__A, __B);
++}
++
++extern __inline long
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpcmpugt32 (__v2si __A, __v2si __B)
++{
++  return __builtin_vis_fpcmpugt32 (__A, __B);
++}
++
++extern __inline __v8qi
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpmax8 (__v8qi __A, __v8qi __B)
++{
++  return __builtin_vis_fpmax8 (__A, __B);
++}
++
++extern __inline __v4hi
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpmax16 (__v4hi __A, __v4hi __B)
++{
++  return __builtin_vis_fpmax16 (__A, __B);
++}
++
++extern __inline __v2si
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpmax32 (__v2si __A, __v2si __B)
++{
++  return __builtin_vis_fpmax32 (__A, __B);
++}
++
++extern __inline __v8qi
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpmaxu8 (__v8qi __A, __v8qi __B)
++{
++  return __builtin_vis_fpmaxu8 (__A, __B);
++}
++
++extern __inline __v4hi
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpmaxu16 (__v4hi __A, __v4hi __B)
++{
++  return __builtin_vis_fpmaxu16 (__A, __B);
++}
++
++extern __inline __v2si
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpmaxu32 (__v2si __A, __v2si __B)
++{
++  return __builtin_vis_fpmaxu32 (__A, __B);
++}
++
++extern __inline __v8qi
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpmin8 (__v8qi __A, __v8qi __B)
++{
++  return __builtin_vis_fpmin8 (__A, __B);
++}
++
++extern __inline __v4hi
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpmin16 (__v4hi __A, __v4hi __B)
++{
++  return __builtin_vis_fpmin16 (__A, __B);
++}
++
++extern __inline __v2si
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpmin32 (__v2si __A, __v2si __B)
++{
++  return __builtin_vis_fpmin32 (__A, __B);
++}
++
++extern __inline __v8qi
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpminu8 (__v8qi __A, __v8qi __B)
++{
++  return __builtin_vis_fpminu8 (__A, __B);
++}
++
++extern __inline __v4hi
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpminu16 (__v4hi __A, __v4hi __B)
++{
++  return __builtin_vis_fpminu16 (__A, __B);
++}
++
++extern __inline __v2si
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpminu32 (__v2si __A, __v2si __B)
++{
++  return __builtin_vis_fpminu32 (__A, __B);
++}
++
++extern __inline __v8qi
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpsub8 (__v8qi __A, __v8qi __B)
++{
++  return __builtin_vis_fpsub8 (__A, __B);
++}
++
++extern __inline __v8qi
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpsubs8 (__v8qi __A, __v8qi __B)
++{
++  return __builtin_vis_fpsubs8 (__A, __B);
++}
++
++extern __inline __v8qi
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpsubus8 (__v8qi __A, __v8qi __B)
++{
++  return __builtin_vis_fpsubus8 (__A, __B);
++}
++
++extern __inline __v4hi
++__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
++__vis_fpsubus16 (__v4hi __A, __v4hi __B)
++{
++  return __builtin_vis_fpsubus16 (__A, __B);
++}
++
++#endif /* __VIS__ >= 0x400 */
++
+ #endif /* __VIS__ */
+ 
+ #endif  /* _VISINTRIN_H_INCLUDED */
+Index: gcc/config/sparc/sparc-opts.h
+===================================================================
+--- a/src/gcc/config/sparc/sparc-opts.h	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/config/sparc/sparc-opts.h	(.../branches/gcc-6-branch)
+@@ -45,6 +45,7 @@
+   PROCESSOR_NIAGARA2,
+   PROCESSOR_NIAGARA3,
+   PROCESSOR_NIAGARA4,
++  PROCESSOR_NIAGARA7,
+   PROCESSOR_NATIVE
+ };
+ 
+Index: gcc/config/sparc/niagara4.md
+===================================================================
+--- a/src/gcc/config/sparc/niagara4.md	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/config/sparc/niagara4.md	(.../branches/gcc-6-branch)
+@@ -75,6 +75,13 @@
+       (eq_attr "fptype" "double")))
+   "n4_slot1")
+ 
++;; The latency numbers for VIS instructions in the reservations below
++;; reflect empirical results, and don't match with the documented
++;; latency numbers in the T4 Processor Supplement.  This is because
++;; the HW chaps didn't feel it necessary to document the complexity in
++;; the PRM, and just assigned a latency of 11 to all/most of the VIS
++;; instructions.
++
+ (define_insn_reservation "n4_vis_move_11cycle" 11
+   (and (eq_attr "cpu" "niagara4")
+     (and (eq_attr "type" "vismv")
+Index: gcc/config/sparc/sparc.c
+===================================================================
+--- a/src/gcc/config/sparc/sparc.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/config/sparc/sparc.c	(.../branches/gcc-6-branch)
+@@ -423,6 +423,30 @@
+   0, /* shift penalty */
+ };
+ 
++static const
++struct processor_costs niagara7_costs = {
++  COSTS_N_INSNS (5), /* int load */
++  COSTS_N_INSNS (5), /* int signed load */
++  COSTS_N_INSNS (5), /* int zeroed load */
++  COSTS_N_INSNS (5), /* float load */
++  COSTS_N_INSNS (11), /* fmov, fneg, fabs */
++  COSTS_N_INSNS (11), /* fadd, fsub */
++  COSTS_N_INSNS (11), /* fcmp */
++  COSTS_N_INSNS (11), /* fmov, fmovr */
++  COSTS_N_INSNS (11), /* fmul */
++  COSTS_N_INSNS (24), /* fdivs */
++  COSTS_N_INSNS (37), /* fdivd */
++  COSTS_N_INSNS (24), /* fsqrts */
++  COSTS_N_INSNS (37), /* fsqrtd */
++  COSTS_N_INSNS (12), /* imul */
++  COSTS_N_INSNS (12), /* imulX */
++  0, /* imul bit factor */
++  COSTS_N_INSNS (51), /* idiv, average of 42 - 61 cycle range */
++  COSTS_N_INSNS (35), /* idivX, average of 26 - 44 cycle range */
++  COSTS_N_INSNS (1), /* movcc/movr */
++  0, /* shift penalty */
++};
++
+ static const struct processor_costs *sparc_costs = &cypress_costs;
+ 
+ #ifdef HAVE_AS_RELAX_OPTION
+@@ -1175,6 +1199,8 @@
+     fprintf (stderr, "VIS2 ");
+   if (flags & MASK_VIS3)
+     fprintf (stderr, "VIS3 ");
++  if (flags & MASK_VIS4)
++    fprintf (stderr, "VIS4 ");
+   if (flags & MASK_CBCOND)
+     fprintf (stderr, "CBCOND ");
+   if (flags & MASK_DEPRECATED_V8_INSNS)
+@@ -1238,6 +1264,7 @@
+     { TARGET_CPU_niagara2, PROCESSOR_NIAGARA2 },
+     { TARGET_CPU_niagara3, PROCESSOR_NIAGARA3 },
+     { TARGET_CPU_niagara4, PROCESSOR_NIAGARA4 },
++    { TARGET_CPU_niagara7, PROCESSOR_NIAGARA7 },
+     { -1, PROCESSOR_V7 }
+   };
+   const struct cpu_default *def;
+@@ -1287,6 +1314,9 @@
+     /* UltraSPARC T4 */
+     { "niagara4",	MASK_ISA,
+       MASK_V9|MASK_POPC|MASK_VIS2|MASK_VIS3|MASK_FMAF|MASK_CBCOND },
++    /* UltraSPARC M7 */
++    { "niagara7",	MASK_ISA,
++      MASK_V9|MASK_POPC|MASK_VIS2|MASK_VIS3|MASK_VIS4|MASK_FMAF|MASK_CBCOND },
+   };
+   const struct cpu_table *cpu;
+   unsigned int i;
+@@ -1416,6 +1446,9 @@
+ #ifndef HAVE_AS_SPARC4
+ 		   & ~MASK_CBCOND
+ #endif
++#ifndef HAVE_AS_SPARC5_VIS4
++		   & ~MASK_VIS4
++#endif
+ #ifndef HAVE_AS_LEON
+ 		   & ~(MASK_LEON | MASK_LEON3)
+ #endif
+@@ -1434,10 +1467,15 @@
+   if (TARGET_VIS3)
+     target_flags |= MASK_VIS2 | MASK_VIS;
+ 
+-  /* Don't allow -mvis, -mvis2, -mvis3, or -mfmaf if FPU is
++  /* -mvis4 implies -mvis3, -mvis2 and -mvis */
++  if (TARGET_VIS4)
++    target_flags |= MASK_VIS3 | MASK_VIS2 | MASK_VIS;
++
++  /* Don't allow -mvis, -mvis2, -mvis3, -mvis4 or -mfmaf if FPU is
+      disabled.  */
+   if (! TARGET_FPU)
+-    target_flags &= ~(MASK_VIS | MASK_VIS2 | MASK_VIS3 | MASK_FMAF);
++    target_flags &= ~(MASK_VIS | MASK_VIS2 | MASK_VIS3 | MASK_VIS4
++		      | MASK_FMAF);
+ 
+   /* -mvis assumes UltraSPARC+, so we are sure v9 instructions
+      are available.
+@@ -1471,7 +1509,8 @@
+ 	  || sparc_cpu == PROCESSOR_NIAGARA
+ 	  || sparc_cpu == PROCESSOR_NIAGARA2
+ 	  || sparc_cpu == PROCESSOR_NIAGARA3
+-	  || sparc_cpu == PROCESSOR_NIAGARA4))
++	  || sparc_cpu == PROCESSOR_NIAGARA4
++	  || sparc_cpu == PROCESSOR_NIAGARA7))
+     align_functions = 32;
+ 
+   /* Validate PCC_STRUCT_RETURN.  */
+@@ -1535,6 +1574,9 @@
+     case PROCESSOR_NIAGARA4:
+       sparc_costs = &niagara4_costs;
+       break;
++    case PROCESSOR_NIAGARA7:
++      sparc_costs = &niagara7_costs;
++      break;
+     case PROCESSOR_NATIVE:
+       gcc_unreachable ();
+     };
+@@ -1566,6 +1608,29 @@
+   if (TARGET_DEBUG_OPTIONS)
+     dump_target_flags ("Final target_flags", target_flags);
+ 
++  /* PARAM_SIMULTANEOUS_PREFETCHES is the number of prefetches that
++     can run at the same time.  More important, it is the threshold
++     defining when additional prefetches will be dropped by the
++     hardware.
++
++     The UltraSPARC-III features a documented prefetch queue with a
++     size of 8.  Additional prefetches issued in the cpu are
++     dropped.
++
++     Niagara processors are different.  In these processors prefetches
++     are handled much like regular loads.  The L1 miss buffer is 32
++     entries, but prefetches start getting affected when 30 entries
++     become occupied.  That occupation could be a mix of regular loads
++     and prefetches though.  And that buffer is shared by all threads.
++     Once the threshold is reached, if the core is running a single
++     thread the prefetch will retry.  If more than one thread is
++     running, the prefetch will be dropped.
++
++     All this makes it very difficult to determine how many
++     simultaneous prefetches can be issued simultaneously, even in a
++     single-threaded program.  Experimental results show that setting
++     this parameter to 32 works well when the number of threads is not
++     high.  */
+   maybe_set_param_value (PARAM_SIMULTANEOUS_PREFETCHES,
+ 			 ((sparc_cpu == PROCESSOR_ULTRASPARC
+ 			   || sparc_cpu == PROCESSOR_NIAGARA
+@@ -1574,20 +1639,55 @@
+ 			   || sparc_cpu == PROCESSOR_NIAGARA4)
+ 			  ? 2
+ 			  : (sparc_cpu == PROCESSOR_ULTRASPARC3
+-			     ? 8 : 3)),
++			     ? 8 : (sparc_cpu == PROCESSOR_NIAGARA7
++				    ? 32 : 3))),
+ 			 global_options.x_param_values,
+ 			 global_options_set.x_param_values);
+-  maybe_set_param_value (PARAM_L1_CACHE_LINE_SIZE,
++
++  /* For PARAM_L1_CACHE_LINE_SIZE we use the default 32 bytes (see
++     params.def), so no maybe_set_param_value is needed.
++
++     The Oracle SPARC Architecture (previously the UltraSPARC
++     Architecture) specification states that when a PREFETCH[A]
++     instruction is executed an implementation-specific amount of data
++     is prefetched, and that it is at least 64 bytes long (aligned to
++     at least 64 bytes).
++
++     However, this is not correct.  The M7 (and implementations prior
++     to that) does not guarantee a 64B prefetch into a cache if the
++     line size is smaller.  A single cache line is all that is ever
++     prefetched.  So for the M7, where the L1D$ has 32B lines and the
++     L2D$ and L3 have 64B lines, a prefetch will prefetch 64B into the
++     L2 and L3, but only 32B are brought into the L1D$. (Assuming it
++     is a read_n prefetch, which is the only type which allocates to
++     the L1.)  */
++
++  /* PARAM_L1_CACHE_SIZE is the size of the L1D$ (most SPARC chips use
++     Hardvard level-1 caches) in kilobytes.  Both UltraSPARC and
++     Niagara processors feature a L1D$ of 16KB.  */
++  maybe_set_param_value (PARAM_L1_CACHE_SIZE,
+ 			 ((sparc_cpu == PROCESSOR_ULTRASPARC
+ 			   || sparc_cpu == PROCESSOR_ULTRASPARC3
+ 			   || sparc_cpu == PROCESSOR_NIAGARA
+ 			   || sparc_cpu == PROCESSOR_NIAGARA2
+ 			   || sparc_cpu == PROCESSOR_NIAGARA3
+-			   || sparc_cpu == PROCESSOR_NIAGARA4)
+-			  ? 64 : 32),
++			   || sparc_cpu == PROCESSOR_NIAGARA4
++			   || sparc_cpu == PROCESSOR_NIAGARA7)
++			  ? 16 : 64),
+ 			 global_options.x_param_values,
+ 			 global_options_set.x_param_values);
+ 
++
++  /* PARAM_L2_CACHE_SIZE is the size fo the L2 in kilobytes.  Note
++     that 512 is the default in params.def.  */
++  maybe_set_param_value (PARAM_L2_CACHE_SIZE,
++			 (sparc_cpu == PROCESSOR_NIAGARA4
++			  ? 128 : (sparc_cpu == PROCESSOR_NIAGARA7
++				   ? 256 : 512)),
++			 global_options.x_param_values,
++			 global_options_set.x_param_values);
++  
++
+   /* Disable save slot sharing for call-clobbered registers by default.
+      The IRA sharing algorithm works on single registers only and this
+      pessimizes for double floating-point registers.  */
+@@ -9178,7 +9278,8 @@
+       && sparc_cpu != PROCESSOR_NIAGARA
+       && sparc_cpu != PROCESSOR_NIAGARA2
+       && sparc_cpu != PROCESSOR_NIAGARA3
+-      && sparc_cpu != PROCESSOR_NIAGARA4)
++      && sparc_cpu != PROCESSOR_NIAGARA4
++      && sparc_cpu != PROCESSOR_NIAGARA7)
+     emit_insn (gen_flushsi (validize_mem (adjust_address (m_tramp, SImode, 8))));
+ 
+   /* Call __enable_execute_stack after writing onto the stack to make sure
+@@ -9223,7 +9324,8 @@
+       && sparc_cpu != PROCESSOR_NIAGARA
+       && sparc_cpu != PROCESSOR_NIAGARA2
+       && sparc_cpu != PROCESSOR_NIAGARA3
+-      && sparc_cpu != PROCESSOR_NIAGARA4)
++      && sparc_cpu != PROCESSOR_NIAGARA4
++      && sparc_cpu != PROCESSOR_NIAGARA7)
+     emit_insn (gen_flushdi (validize_mem (adjust_address (m_tramp, DImode, 8))));
+ 
+   /* Call __enable_execute_stack after writing onto the stack to make sure
+@@ -9419,7 +9521,8 @@
+       || sparc_cpu == PROCESSOR_NIAGARA2
+       || sparc_cpu == PROCESSOR_NIAGARA3)
+     return 0;
+-  if (sparc_cpu == PROCESSOR_NIAGARA4)
++  if (sparc_cpu == PROCESSOR_NIAGARA4
++      || sparc_cpu == PROCESSOR_NIAGARA7)
+     return 2;
+   if (sparc_cpu == PROCESSOR_ULTRASPARC
+       || sparc_cpu == PROCESSOR_ULTRASPARC3)
+@@ -9442,6 +9545,7 @@
+     default:
+       return 1;
+     case PROCESSOR_NIAGARA4:
++    case PROCESSOR_NIAGARA7:
+     case PROCESSOR_V9:
+       /* Assume V9 processors are capable of at least dual-issue.  */
+       return 2;
+@@ -10007,6 +10111,34 @@
+   SPARC_BUILTIN_XMULX,
+   SPARC_BUILTIN_XMULXHI,
+ 
++  /* VIS 4.0 builtins.  */
++  SPARC_BUILTIN_FPADD8,
++  SPARC_BUILTIN_FPADDS8,
++  SPARC_BUILTIN_FPADDUS8,
++  SPARC_BUILTIN_FPADDUS16,
++  SPARC_BUILTIN_FPCMPLE8,
++  SPARC_BUILTIN_FPCMPGT8,
++  SPARC_BUILTIN_FPCMPULE16,
++  SPARC_BUILTIN_FPCMPUGT16,
++  SPARC_BUILTIN_FPCMPULE32,
++  SPARC_BUILTIN_FPCMPUGT32,
++  SPARC_BUILTIN_FPMAX8,
++  SPARC_BUILTIN_FPMAX16,
++  SPARC_BUILTIN_FPMAX32,
++  SPARC_BUILTIN_FPMAXU8,
++  SPARC_BUILTIN_FPMAXU16,
++  SPARC_BUILTIN_FPMAXU32,
++  SPARC_BUILTIN_FPMIN8,
++  SPARC_BUILTIN_FPMIN16,
++  SPARC_BUILTIN_FPMIN32,
++  SPARC_BUILTIN_FPMINU8,
++  SPARC_BUILTIN_FPMINU16,
++  SPARC_BUILTIN_FPMINU32,
++  SPARC_BUILTIN_FPSUB8,
++  SPARC_BUILTIN_FPSUBS8,
++  SPARC_BUILTIN_FPSUBUS8,
++  SPARC_BUILTIN_FPSUBUS16,
++  
+   SPARC_BUILTIN_MAX
+ };
+ 
+@@ -10483,6 +10615,83 @@
+       def_builtin_const ("__builtin_vis_xmulxhi", CODE_FOR_xmulxhi_vis,
+ 			 SPARC_BUILTIN_XMULXHI, di_ftype_di_di);
+     }
++
++  if (TARGET_VIS4)
++    {
++      def_builtin_const ("__builtin_vis_fpadd8", CODE_FOR_addv8qi3,
++			 SPARC_BUILTIN_FPADD8, v8qi_ftype_v8qi_v8qi);
++      def_builtin_const ("__builtin_vis_fpadds8", CODE_FOR_ssaddv8qi3,
++			 SPARC_BUILTIN_FPADDS8, v8qi_ftype_v8qi_v8qi);
++      def_builtin_const ("__builtin_vis_fpaddus8", CODE_FOR_usaddv8qi3,
++			 SPARC_BUILTIN_FPADDUS8, v8qi_ftype_v8qi_v8qi);
++      def_builtin_const ("__builtin_vis_fpaddus16", CODE_FOR_usaddv4hi3,
++			 SPARC_BUILTIN_FPADDUS16, v4hi_ftype_v4hi_v4hi);
++
++
++      if (TARGET_ARCH64)
++	{
++	  def_builtin_const ("__builtin_vis_fpcmple8", CODE_FOR_fpcmple8di_vis,
++			     SPARC_BUILTIN_FPCMPLE8, di_ftype_v8qi_v8qi);
++	  def_builtin_const ("__builtin_vis_fpcmpgt8", CODE_FOR_fpcmpgt8di_vis,
++			     SPARC_BUILTIN_FPCMPGT8, di_ftype_v8qi_v8qi);
++	  def_builtin_const ("__builtin_vis_fpcmpule16", CODE_FOR_fpcmpule16di_vis,
++			     SPARC_BUILTIN_FPCMPULE16, di_ftype_v4hi_v4hi);
++	  def_builtin_const ("__builtin_vis_fpcmpugt16", CODE_FOR_fpcmpugt16di_vis,
++			     SPARC_BUILTIN_FPCMPUGT16, di_ftype_v4hi_v4hi);
++	  def_builtin_const ("__builtin_vis_fpcmpule32", CODE_FOR_fpcmpule32di_vis,
++			     SPARC_BUILTIN_FPCMPULE32, di_ftype_v2si_v2si);
++	  def_builtin_const ("__builtin_vis_fpcmpugt32", CODE_FOR_fpcmpugt32di_vis,
++			     SPARC_BUILTIN_FPCMPUGT32, di_ftype_v2si_v2si);
++	}
++      else
++	{
++	  def_builtin_const ("__builtin_vis_fpcmple8", CODE_FOR_fpcmple8si_vis,
++			     SPARC_BUILTIN_FPCMPLE8, si_ftype_v8qi_v8qi);
++	  def_builtin_const ("__builtin_vis_fpcmpgt8", CODE_FOR_fpcmpgt8si_vis,
++			     SPARC_BUILTIN_FPCMPGT8, si_ftype_v8qi_v8qi);
++	  def_builtin_const ("__builtin_vis_fpcmpule16", CODE_FOR_fpcmpule16si_vis,
++			     SPARC_BUILTIN_FPCMPULE16, si_ftype_v4hi_v4hi);
++	  def_builtin_const ("__builtin_vis_fpcmpugt16", CODE_FOR_fpcmpugt16si_vis,
++			     SPARC_BUILTIN_FPCMPUGT16, si_ftype_v4hi_v4hi);
++	  def_builtin_const ("__builtin_vis_fpcmpule32", CODE_FOR_fpcmpule32si_vis,
++			     SPARC_BUILTIN_FPCMPULE32, di_ftype_v2si_v2si);
++	  def_builtin_const ("__builtin_vis_fpcmpugt32", CODE_FOR_fpcmpugt32si_vis,
++			     SPARC_BUILTIN_FPCMPUGT32, di_ftype_v2si_v2si);
++	}
++      
++      def_builtin_const ("__builtin_vis_fpmax8", CODE_FOR_maxv8qi3,
++			 SPARC_BUILTIN_FPMAX8, v8qi_ftype_v8qi_v8qi);
++      def_builtin_const ("__builtin_vis_fpmax16", CODE_FOR_maxv4hi3,
++			 SPARC_BUILTIN_FPMAX16, v4hi_ftype_v4hi_v4hi);
++      def_builtin_const ("__builtin_vis_fpmax32", CODE_FOR_maxv2si3,
++			 SPARC_BUILTIN_FPMAX32, v2si_ftype_v2si_v2si);
++      def_builtin_const ("__builtin_vis_fpmaxu8", CODE_FOR_maxuv8qi3,
++			 SPARC_BUILTIN_FPMAXU8, v8qi_ftype_v8qi_v8qi);
++      def_builtin_const ("__builtin_vis_fpmaxu16", CODE_FOR_maxuv4hi3,
++			 SPARC_BUILTIN_FPMAXU16, v4hi_ftype_v4hi_v4hi);
++      def_builtin_const ("__builtin_vis_fpmaxu32", CODE_FOR_maxuv2si3,
++			 SPARC_BUILTIN_FPMAXU32, v2si_ftype_v2si_v2si);
++      def_builtin_const ("__builtin_vis_fpmin8", CODE_FOR_minv8qi3,
++			 SPARC_BUILTIN_FPMIN8, v8qi_ftype_v8qi_v8qi);
++      def_builtin_const ("__builtin_vis_fpmin16", CODE_FOR_minv4hi3,
++			 SPARC_BUILTIN_FPMIN16, v4hi_ftype_v4hi_v4hi);
++      def_builtin_const ("__builtin_vis_fpmin32", CODE_FOR_minv2si3,
++			 SPARC_BUILTIN_FPMIN32, v2si_ftype_v2si_v2si);
++      def_builtin_const ("__builtin_vis_fpminu8", CODE_FOR_minuv8qi3,
++			 SPARC_BUILTIN_FPMINU8, v8qi_ftype_v8qi_v8qi);
++      def_builtin_const ("__builtin_vis_fpminu16", CODE_FOR_minuv4hi3,
++			 SPARC_BUILTIN_FPMINU16, v4hi_ftype_v4hi_v4hi);
++      def_builtin_const ("__builtin_vis_fpminu32", CODE_FOR_minuv2si3,
++			 SPARC_BUILTIN_FPMINU32, v2si_ftype_v2si_v2si);
++      def_builtin_const ("__builtin_vis_fpsub8", CODE_FOR_subv8qi3,
++			 SPARC_BUILTIN_FPSUB8, v8qi_ftype_v8qi_v8qi);
++      def_builtin_const ("__builtin_vis_fpsubs8", CODE_FOR_sssubv8qi3,
++			 SPARC_BUILTIN_FPSUBS8, v8qi_ftype_v8qi_v8qi);
++      def_builtin_const ("__builtin_vis_fpsubus8", CODE_FOR_ussubv8qi3,
++			 SPARC_BUILTIN_FPSUBUS8, v8qi_ftype_v8qi_v8qi);
++      def_builtin_const ("__builtin_vis_fpsubus16", CODE_FOR_ussubv4hi3,
++			 SPARC_BUILTIN_FPSUBUS16, v4hi_ftype_v4hi_v4hi);
++    }
+ }
+ 
+ /* Implement TARGET_BUILTIN_DECL hook.  */
+@@ -11042,7 +11251,8 @@
+ 	  || sparc_cpu == PROCESSOR_NIAGARA
+ 	  || sparc_cpu == PROCESSOR_NIAGARA2
+ 	  || sparc_cpu == PROCESSOR_NIAGARA3
+-	  || sparc_cpu == PROCESSOR_NIAGARA4)
++	  || sparc_cpu == PROCESSOR_NIAGARA4
++	  || sparc_cpu == PROCESSOR_NIAGARA7)
+ 	return 12;
+ 
+       return 6;
+Index: gcc/config/sparc/sparc.h
+===================================================================
+--- a/src/gcc/config/sparc/sparc.h	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/config/sparc/sparc.h	(.../branches/gcc-6-branch)
+@@ -142,6 +142,7 @@
+ #define TARGET_CPU_niagara2	14
+ #define TARGET_CPU_niagara3	15
+ #define TARGET_CPU_niagara4	16
++#define TARGET_CPU_niagara7	19
+ 
+ #if TARGET_CPU_DEFAULT == TARGET_CPU_v9 \
+  || TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc \
+@@ -149,7 +150,8 @@
+  || TARGET_CPU_DEFAULT == TARGET_CPU_niagara \
+  || TARGET_CPU_DEFAULT == TARGET_CPU_niagara2 \
+  || TARGET_CPU_DEFAULT == TARGET_CPU_niagara3 \
+- || TARGET_CPU_DEFAULT == TARGET_CPU_niagara4
++ || TARGET_CPU_DEFAULT == TARGET_CPU_niagara4 \
++ || TARGET_CPU_DEFAULT == TARGET_CPU_niagara7
+ 
+ #define CPP_CPU32_DEFAULT_SPEC ""
+ #define ASM_CPU32_DEFAULT_SPEC ""
+@@ -186,6 +188,10 @@
+ #define CPP_CPU64_DEFAULT_SPEC "-D__sparc_v9__"
+ #define ASM_CPU64_DEFAULT_SPEC AS_NIAGARA4_FLAG
+ #endif
++#if TARGET_CPU_DEFAULT == TARGET_CPU_niagara7
++#define CPP_CPU64_DEFAULT_SPEC "-D__sparc_v9__"
++#define ASM_CPU64_DEFAULT_SPEC AS_NIAGARA7_FLAG
++#endif
+ 
+ #else
+ 
+@@ -288,6 +294,7 @@
+ %{mcpu=niagara2:-D__sparc_v9__} \
+ %{mcpu=niagara3:-D__sparc_v9__} \
+ %{mcpu=niagara4:-D__sparc_v9__} \
++%{mcpu=niagara7:-D__sparc_v9__} \
+ %{!mcpu*:%(cpp_cpu_default)} \
+ "
+ #define CPP_ARCH32_SPEC ""
+@@ -339,6 +346,7 @@
+ %{mcpu=niagara2:%{!mv8plus:-Av9b}} \
+ %{mcpu=niagara3:%{!mv8plus:-Av9" AS_NIAGARA3_FLAG "}} \
+ %{mcpu=niagara4:%{!mv8plus:" AS_NIAGARA4_FLAG "}} \
++%{mcpu=niagara7:%{!mv8plus:" AS_NIAGARA7_FLAG "}} \
+ %{!mcpu*:%(asm_cpu_default)} \
+ "
+ 
+@@ -1777,6 +1785,12 @@
+ #define AS_NIAGARA4_FLAG "-Av9" AS_NIAGARA3_FLAG
+ #endif
+ 
++#ifdef HAVE_AS_SPARC5_VIS4
++#define AS_NIAGARA7_FLAG "-xarch=sparc5"
++#else
++#define AS_NIAGARA7_FLAG AS_NIAGARA4_FLAG
++#endif
++
+ #ifdef HAVE_AS_LEON
+ #define AS_LEON_FLAG "-Aleon"
+ #define AS_LEONV7_FLAG "-Aleon"
+Index: gcc/config/sparc/linux64.h
+===================================================================
+--- a/src/gcc/config/sparc/linux64.h	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/config/sparc/linux64.h	(.../branches/gcc-6-branch)
+@@ -164,22 +164,42 @@
+ #endif
+ 
+ /* Support for a compile-time default CPU, et cetera.  The rules are:
+-   --with-cpu is ignored if -mcpu is specified.
+-   --with-tune is ignored if -mtune is specified.
++   --with-cpu is ignored if -mcpu is specified; likewise --with-cpu-32
++     and --with-cpu-64.
++   --with-tune is ignored if -mtune is specified; likewise --with-tune-32
++     and --with-tune-64.
+    --with-float is ignored if -mhard-float, -msoft-float, -mfpu, or -mno-fpu
+      are specified.
+    In the SPARC_BI_ARCH compiler we cannot pass %{!mcpu=*:-mcpu=%(VALUE)}
+    here, otherwise say -mcpu=v7 would be passed even when -m64.
+-   CC1_SPEC above takes care of this instead.  */
++   CC1_SPEC above takes care of this instead.
++
++   Note that the order of the cpu* and tune* options matters: the
++   config.gcc file always sets with_cpu to some value, even if the
++   user didn't use --with-cpu when invoking the configure script.
++   This value is based on the target name.  Therefore we have to make
++   sure that --with-cpu-32 takes precedence to --with-cpu in < v9
++   systems, and that --with-cpu-64 takes precedence to --with-cpu in
++   >= v9 systems.  As for the tune* options, in some platforms
++   config.gcc also sets a default value for it if the user didn't use
++   --with-tune when invoking the configure script.  */
+ #undef OPTION_DEFAULT_SPECS
+ #if DEFAULT_ARCH32_P
+ #define OPTION_DEFAULT_SPECS \
++  {"cpu_32", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
++  {"cpu_64", "%{m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
+   {"cpu", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
++  {"tune_32", "%{!m64:%{!mtune=*:-mtune=%(VALUE)}}" }, \
++  {"tune_64", "%{m64:%{!mtune=*:-mtune=%(VALUE)}}" }, \
+   {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
+   {"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" }
+ #else
+ #define OPTION_DEFAULT_SPECS \
++  {"cpu_32", "%{m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
++  {"cpu_64", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
+   {"cpu", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
++  {"tune_32", "%{m32:%{!mtune=*:-mtune=%(VALUE)}}" },	\
++  {"tune_64", "%{!m32:%{!mtune=*:-mtune=%(VALUE)}}" },	\
+   {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
+   {"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" }
+ #endif
+Index: gcc/config/sparc/sol2.h
+===================================================================
+--- a/src/gcc/config/sparc/sol2.h	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/config/sparc/sol2.h	(.../branches/gcc-6-branch)
+@@ -165,6 +165,15 @@
+ #define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG AS_NIAGARA4_FLAG
+ #endif
+ 
++#if TARGET_CPU_DEFAULT == TARGET_CPU_niagara7
++#undef CPP_CPU64_DEFAULT_SPEC
++#define CPP_CPU64_DEFAULT_SPEC ""
++#undef ASM_CPU32_DEFAULT_SPEC
++#define ASM_CPU32_DEFAUILT_SPEC AS_SPARC32_FLAG AS_NIAGARA7_FLAG
++#undef ASM_CPU64_DEFAULT_SPEC
++#define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG AS_NIAGARA7_FLAG
++#endif
++
+ #undef CPP_CPU_SPEC
+ #define CPP_CPU_SPEC "\
+ %{mcpu=sparclet|mcpu=tsc701:-D__sparclet__} \
+@@ -171,7 +180,7 @@
+ %{mcpu=sparclite|mcpu-f930|mcpu=f934:-D__sparclite__} \
+ %{mcpu=v8:" DEF_ARCH32_SPEC("-D__sparcv8") "} \
+ %{mcpu=supersparc:-D__supersparc__ " DEF_ARCH32_SPEC("-D__sparcv8") "} \
+-%{mcpu=v9|mcpu=ultrasparc|mcpu=ultrasparc3|mcpu=niagara|mcpu=niagara2|mcpu=niagara3|mcpu=niagara4:" DEF_ARCH32_SPEC("-D__sparcv8") "} \
++%{mcpu=v9|mcpu=ultrasparc|mcpu=ultrasparc3|mcpu=niagara|mcpu=niagara2|mcpu=niagara3|mcpu=niagara4|mcpu=niagara7:" DEF_ARCH32_SPEC("-D__sparcv8") "} \
+ %{!mcpu*:%(cpp_cpu_default)} \
+ "
+ 
+@@ -231,22 +240,42 @@
+ #endif
+ 
+ /* Support for a compile-time default CPU, et cetera.  The rules are:
+-   --with-cpu is ignored if -mcpu is specified.
+-   --with-tune is ignored if -mtune is specified.
++   --with-cpu is ignored if -mcpu is specified; likewise --with-cpu-32
++     and --with-cpu-64.
++   --with-tune is ignored if -mtune is specified; likewise --with-tune-32
++     and --with-tune-64.
+    --with-float is ignored if -mhard-float, -msoft-float, -mfpu, or -mno-fpu
+      are specified.
+    In the SPARC_BI_ARCH compiler we cannot pass %{!mcpu=*:-mcpu=%(VALUE)}
+    here, otherwise say -mcpu=v7 would be passed even when -m64.
+-   CC1_SPEC above takes care of this instead.  */
++   CC1_SPEC above takes care of this instead.
++
++   Note that the order of the cpu* and tune* options matters: the
++   config.gcc file always sets with_cpu to some value, even if the
++   user didn't use --with-cpu when invoking the configure script.
++   This value is based on the target name.  Therefore we have to make
++   sure that --with-cpu-32 takes precedence to --with-cpu in < v9
++   systems, and that --with-cpu-64 takes precedence to --with-cpu in
++   >= v9 systems.  As for the tune* options, in some platforms
++   config.gcc also sets a default value for it if the user didn't use
++   --with-tune when invoking the configure script.  */
+ #undef OPTION_DEFAULT_SPECS
+ #if DEFAULT_ARCH32_P
+ #define OPTION_DEFAULT_SPECS \
++  {"cpu_32", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
++  {"cpu_64", "%{m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
+   {"cpu", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
++  {"tune_32", "%{!m64:%{!mtune=*:-mtune=%(VALUE)}}" }, \
++  {"tune_64", "%{m64:%{!mtune=*:-mtune=%(VALUE)}}" }, \
+   {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
+   {"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" }
+ #else
+ #define OPTION_DEFAULT_SPECS \
++  {"cpu_32", "%{m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
++  {"cpu_64", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
+   {"cpu", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
++  {"tune_32", "%{m32:%{!mtune=*:-mtune=%(VALUE)}}" },	\
++  {"tune_64", "%{!m32:%{!mtune=*:-mtune=%(VALUE)}}" },	\
+   {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
+   {"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" }
+ #endif
+@@ -260,7 +289,8 @@
+ %{mcpu=niagara2:" DEF_ARCH32_SPEC("-xarch=v8plusb") DEF_ARCH64_SPEC("-xarch=v9b") "} \
+ %{mcpu=niagara3:" DEF_ARCH32_SPEC("-xarch=v8plus" AS_NIAGARA3_FLAG) DEF_ARCH64_SPEC("-xarch=v9" AS_NIAGARA3_FLAG) "} \
+ %{mcpu=niagara4:" DEF_ARCH32_SPEC(AS_SPARC32_FLAG AS_NIAGARA4_FLAG) DEF_ARCH64_SPEC(AS_SPARC64_FLAG AS_NIAGARA4_FLAG) "} \
+-%{!mcpu=niagara4:%{!mcpu=niagara3:%{!mcpu=niagara2:%{!mcpu=niagara:%{!mcpu=ultrasparc3:%{!mcpu=ultrasparc:%{!mcpu=v9:%{mcpu*:" DEF_ARCH32_SPEC("-xarch=v8") DEF_ARCH64_SPEC("-xarch=v9") "}}}}}}}} \
++%{mcpu=niagara7:" DEF_ARCH32_SPEC(AS_SPARC32_FLAG AS_NIAGARA7_FLAG) DEF_ARCH64_SPEC(AS_SPARC64_FLAG AS_NIAGARA7_FLAG) "} \
++%{!mcpu=niagara7:%{!mcpu=niagara4:%{!mcpu=niagara3:%{!mcpu=niagara2:%{!mcpu=niagara:%{!mcpu=ultrasparc3:%{!mcpu=ultrasparc:%{!mcpu=v9:%{mcpu*:" DEF_ARCH32_SPEC("-xarch=v8") DEF_ARCH64_SPEC("-xarch=v9") "}}}}}}}}} \
+ %{!mcpu*:%(asm_cpu_default)} \
+ "
+ 
 Index: gcc/config/i386/i386.h
 ===================================================================
 --- a/src/gcc/config/i386/i386.h	(.../tags/gcc_6_1_0_release)
@@ -798235,7 +801692,49 @@ Index: gcc/config/i386/sse.md
 ===================================================================
 --- a/src/gcc/config/i386/sse.md	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/config/i386/sse.md	(.../branches/gcc-6-branch)
-@@ -10566,22 +10566,23 @@
+@@ -4488,7 +4488,7 @@
+    (set_attr "prefix" "maybe_vex")
+    (set_attr "mode" "<sseinsnmode>")])
+ 
+-(define_insn "<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>"
++(define_insn "avx512f_fix_notruncv16sfv16si<mask_name><round_name>"
+   [(set (match_operand:V16SI 0 "register_operand" "=v")
+ 	(unspec:V16SI
+ 	  [(match_operand:V16SF 1 "<round_nimm_predicate>" "<round_constraint>")]
+@@ -5046,7 +5046,7 @@
+    (set_attr "ssememalign" "64")
+    (set_attr "mode" "V2DF")])
+ 
+-(define_insn "<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>"
++(define_insn "avx512f_cvtpd2dq512<mask_name><round_name>"
+   [(set (match_operand:V8SI 0 "register_operand" "=v")
+ 	(unspec:V8SI
+ 	  [(match_operand:V8DF 1 "<round_nimm_predicate>" "<round_constraint>")]
+@@ -6006,6 +6006,23 @@
+   DONE;
+ })
+ 
++(define_expand "avx512f_vec_pack_sfix_v8df"
++  [(match_operand:V16SI 0 "register_operand")
++   (match_operand:V8DF 1 "nonimmediate_operand")
++   (match_operand:V8DF 2 "nonimmediate_operand")]
++  "TARGET_AVX512F"
++{
++  rtx r1, r2;
++
++  r1 = gen_reg_rtx (V8SImode);
++  r2 = gen_reg_rtx (V8SImode);
++
++  emit_insn (gen_avx512f_cvtpd2dq512 (r1, operands[1]));
++  emit_insn (gen_avx512f_cvtpd2dq512 (r2, operands[2]));
++  emit_insn (gen_avx_vec_concatv16si (operands[0], r1, r2));
++  DONE;
++})
++
+ (define_expand "vec_pack_sfix_v4df"
+   [(match_operand:V8SI 0 "register_operand")
+    (match_operand:V4DF 1 "nonimmediate_operand")
+@@ -10566,22 +10583,23 @@
     (set_attr "mode" "<sseinsnmode>")])
  
  (define_insn "<shift_insn><mode>3<mask_name>"
@@ -798266,11 +801765,245 @@ Index: gcc/config/i386/sse.md
     (set_attr "mode" "<sseinsnmode>")])
  
  (define_insn "<shift_insn><mode>3<mask_name>"
+@@ -15246,16 +15264,28 @@
+   DONE;
+ })
+ 
+-(define_expand "avx512f_roundpd512"
+-  [(match_operand:V8DF 0 "register_operand")
+-   (match_operand:V8DF 1 "nonimmediate_operand")
++(define_expand "avx512f_round<castmode>512"
++  [(match_operand:VF_512 0 "register_operand")
++   (match_operand:VF_512 1 "nonimmediate_operand")
+    (match_operand:SI 2 "const_0_to_15_operand")]
+   "TARGET_AVX512F"
+ {
+-  emit_insn (gen_avx512f_rndscalev8df (operands[0], operands[1], operands[2]));
++  emit_insn (gen_avx512f_rndscale<mode> (operands[0], operands[1], operands[2]));
+   DONE;
+ })
+ 
++(define_expand "avx512f_roundps512_sfix"
++  [(match_operand:V16SI 0 "register_operand")
++   (match_operand:V16SF 1 "nonimmediate_operand")
++   (match_operand:SI 2 "const_0_to_15_operand")]
++  "TARGET_AVX512F"
++{
++  rtx tmp = gen_reg_rtx (V16SFmode);
++  emit_insn (gen_avx512f_rndscalev16sf (tmp, operands[1], operands[2]));
++  emit_insn (gen_fix_truncv16sfv16si2 (operands[0], tmp));
++  DONE;
++})
++
+ (define_expand "<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>"
+   [(match_operand:<ssepackfltmode> 0 "register_operand")
+    (match_operand:VF2 1 "vector_operand")
+@@ -15352,7 +15382,7 @@
+ 
+ (define_expand "round<mode>2_sfix"
+   [(match_operand:<sseintvecmode> 0 "register_operand")
+-   (match_operand:VF1_128_256 1 "register_operand")]
++   (match_operand:VF1 1 "register_operand")]
+   "TARGET_ROUND && !flag_trapping_math"
+ {
+   rtx tmp = gen_reg_rtx (<MODE>mode);
+Index: gcc/config/i386/i386-builtin-types.def
+===================================================================
+--- a/src/gcc/config/i386/i386-builtin-types.def	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/config/i386/i386-builtin-types.def	(.../branches/gcc-6-branch)
+@@ -292,6 +292,7 @@
+ DEF_FUNCTION_TYPE (V8DF, V2DF)
+ DEF_FUNCTION_TYPE (V16SI, V4SI)
+ DEF_FUNCTION_TYPE (V16SI, V8SI)
++DEF_FUNCTION_TYPE (V16SI, V16SF)
+ DEF_FUNCTION_TYPE (V16SI, V16SI, V16SI, UHI)
+ DEF_FUNCTION_TYPE (V8DI, V8DI, V8DI, UQI)
+ DEF_FUNCTION_TYPE (V8DI, PV8DI)
+@@ -1035,8 +1036,10 @@
+ 
+ DEF_FUNCTION_TYPE_ALIAS (V2DF_FTYPE_V2DF, ROUND)
+ DEF_FUNCTION_TYPE_ALIAS (V4DF_FTYPE_V4DF, ROUND)
++DEF_FUNCTION_TYPE_ALIAS (V8DF_FTYPE_V8DF, ROUND)
+ DEF_FUNCTION_TYPE_ALIAS (V4SF_FTYPE_V4SF, ROUND)
+ DEF_FUNCTION_TYPE_ALIAS (V8SF_FTYPE_V8SF, ROUND)
++DEF_FUNCTION_TYPE_ALIAS (V16SF_FTYPE_V16SF, ROUND)
+ 
+ DEF_FUNCTION_TYPE_ALIAS (V4SI_FTYPE_V2DF_V2DF, ROUND)
+ DEF_FUNCTION_TYPE_ALIAS (V8SI_FTYPE_V4DF_V4DF, ROUND)
+@@ -1043,6 +1046,7 @@
+ DEF_FUNCTION_TYPE_ALIAS (V16SI_FTYPE_V8DF_V8DF, ROUND)
+ DEF_FUNCTION_TYPE_ALIAS (V4SI_FTYPE_V4SF, ROUND)
+ DEF_FUNCTION_TYPE_ALIAS (V8SI_FTYPE_V8SF, ROUND)
++DEF_FUNCTION_TYPE_ALIAS (V16SI_FTYPE_V16SF, ROUND)
+ 
+ DEF_FUNCTION_TYPE_ALIAS (INT_FTYPE_V2DF_V2DF, PTEST)
+ DEF_FUNCTION_TYPE_ALIAS (INT_FTYPE_V2DI_V2DI, PTEST)
+Index: gcc/config/i386/driver-i386.c
+===================================================================
+--- a/src/gcc/config/i386/driver-i386.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/config/i386/driver-i386.c	(.../branches/gcc-6-branch)
+@@ -637,33 +637,27 @@
+     }
+   else if (vendor == signature_CENTAUR_ebx)
+     {
+-      if (arch)
++      processor = PROCESSOR_GENERIC;
++
++      switch (family)
+ 	{
+-	  switch (family)
+-	    {
+-	    case 6:
+-	      if (model > 9)
+-		/* Use the default detection procedure.  */
+-		processor = PROCESSOR_GENERIC;
+-	      else if (model == 9)
+-		cpu = "c3-2";
+-	      else if (model >= 6)
+-		cpu = "c3";
+-	      else
+-		processor = PROCESSOR_GENERIC;
+-	      break;
+-	    case 5:
+-	      if (has_3dnow)
+-		cpu = "winchip2";
+-	      else if (has_mmx)
+-		cpu = "winchip2-c6";
+-	      else
+-		processor = PROCESSOR_GENERIC;
+-	      break;
+-	    default:
+-	      /* We have no idea.  */
+-	      processor = PROCESSOR_GENERIC;
+-	    }
++	default:
++	  /* We have no idea.  */
++	  break;
++
++	case 5:
++	  if (has_3dnow || has_mmx)
++	    processor = PROCESSOR_I486;
++	  break;
++
++	case 6:
++	  if (model > 9 || has_longmode)
++	    /* Use the default detection procedure.  */
++	    ;
++	  else if (model == 9)
++	    processor = PROCESSOR_PENTIUMPRO;
++	  else if (model >= 6)
++	    processor = PROCESSOR_I486;
+ 	}
+     }
+   else
+@@ -694,7 +688,18 @@
+       /* Default.  */
+       break;
+     case PROCESSOR_I486:
+-      cpu = "i486";
++      if (arch && vendor == signature_CENTAUR_ebx)
++	{
++	  if (model >= 6)
++	    cpu = "c3";
++	  else if (has_3dnow)
++	    cpu = "winchip2";
++	  else
++	    /* Assume WinChip C6.  */
++	    cpu = "winchip-c6";
++	}
++      else
++	cpu = "i486";
+       break;
+     case PROCESSOR_PENTIUM:
+       if (arch && has_mmx)
+@@ -817,8 +822,13 @@
+ 		/* It is Pentium M.  */
+ 		cpu = "pentium-m";
+ 	      else if (has_sse)
+-		/* It is Pentium III.  */
+-		cpu = "pentium3";
++		{
++		  if (vendor == signature_CENTAUR_ebx)
++		    cpu = "c3-2";
++		  else
++		    /* It is Pentium III.  */
++		    cpu = "pentium3";
++		}
+ 	      else if (has_mmx)
+ 		/* It is Pentium II.  */
+ 		cpu = "pentium2";
+@@ -902,6 +912,11 @@
+ 	      else
+ 		cpu = "prescott";
+ 	    }
++	  else if (has_longmode)
++	    /* Perhaps some emulator?  Assume x86-64, otherwise gcc
++	       -march=native would be unusable for 64-bit compilations,
++	       as all the CPUs below are 32-bit only.  */
++	    cpu = "x86-64";
+ 	  else if (has_sse2)
+ 	    cpu = "pentium4";
+ 	  else if (has_cmov)
 Index: gcc/config/i386/i386.c
 ===================================================================
 --- a/src/gcc/config/i386/i386.c	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/config/i386/i386.c	(.../branches/gcc-6-branch)
-@@ -32787,9 +32787,9 @@
+@@ -18895,7 +18895,7 @@
+ 	  m = adjust_address (op0, mode, 0);
+ 	  emit_insn (extract (m, op1, const0_rtx));
+ 	  m = adjust_address (op0, mode, 16);
+-	  emit_insn (extract (m, op1, const1_rtx));
++	  emit_insn (extract (m, copy_rtx (op1), const1_rtx));
+ 	}
+       else
+ 	emit_insn (store_unaligned (op0, op1));
+@@ -19203,7 +19203,7 @@
+ 	      m = adjust_address (op0, V2SFmode, 0);
+ 	      emit_insn (gen_sse_storelps (m, op1));
+ 	      m = adjust_address (op0, V2SFmode, 8);
+-	      emit_insn (gen_sse_storehps (m, op1));
++	      emit_insn (gen_sse_storehps (m, copy_rtx (op1)));
+ 	    }
+ 	}
+     }
+@@ -30686,7 +30686,7 @@
+   IX86_BUILTIN_CVTPD2PS512,
+   IX86_BUILTIN_CVTPD2UDQ512,
+   IX86_BUILTIN_CVTPH2PS512,
+-  IX86_BUILTIN_CVTPS2DQ512,
++  IX86_BUILTIN_CVTPS2DQ512_MASK,
+   IX86_BUILTIN_CVTPS2PD512,
+   IX86_BUILTIN_CVTPS2PH512,
+   IX86_BUILTIN_CVTPS2UDQ512,
+@@ -32126,7 +32126,6 @@
+   IX86_BUILTIN_COPYSIGNQ,
+ 
+   /* Vectorizer support builtins.  */
+-  IX86_BUILTIN_CEILPD_VEC_PACK_SFIX512,
+   IX86_BUILTIN_CPYSGNPS,
+   IX86_BUILTIN_CPYSGNPD,
+   IX86_BUILTIN_CPYSGNPS256,
+@@ -32133,7 +32132,19 @@
+   IX86_BUILTIN_CPYSGNPS512,
+   IX86_BUILTIN_CPYSGNPD256,
+   IX86_BUILTIN_CPYSGNPD512,
++  IX86_BUILTIN_FLOORPS512,
++  IX86_BUILTIN_FLOORPD512,
++  IX86_BUILTIN_CEILPS512,
++  IX86_BUILTIN_CEILPD512,
++  IX86_BUILTIN_TRUNCPS512,
++  IX86_BUILTIN_TRUNCPD512,
++  IX86_BUILTIN_CVTPS2DQ512,
++  IX86_BUILTIN_VEC_PACK_SFIX512,
++  IX86_BUILTIN_FLOORPS_SFIX512,
+   IX86_BUILTIN_FLOORPD_VEC_PACK_SFIX512,
++  IX86_BUILTIN_CEILPS_SFIX512,
++  IX86_BUILTIN_CEILPD_VEC_PACK_SFIX512,
++  IX86_BUILTIN_ROUNDPS_AZ_SFIX512,
+   IX86_BUILTIN_ROUNDPD_AZ_VEC_PACK_SFIX512,
+ 
+ 
+@@ -32787,9 +32798,9 @@
    { OPTION_MASK_ISA_LWP, CODE_FOR_lwp_llwpcb, "__builtin_ia32_llwpcb", IX86_BUILTIN_LLWPCB, UNKNOWN, (int) VOID_FTYPE_PVOID },
    { OPTION_MASK_ISA_LWP, CODE_FOR_lwp_slwpcb, "__builtin_ia32_slwpcb", IX86_BUILTIN_SLWPCB, UNKNOWN, (int) PVOID_FTYPE_VOID },
    { OPTION_MASK_ISA_LWP, CODE_FOR_lwp_lwpvalsi3, "__builtin_ia32_lwpval32", IX86_BUILTIN_LWPVAL32, UNKNOWN, (int) VOID_FTYPE_UINT_UINT_UINT },
@@ -798282,7 +802015,7 @@ Index: gcc/config/i386/i386.c
  
    /* FSGSBASE */
    { OPTION_MASK_ISA_FSGSBASE | OPTION_MASK_ISA_64BIT, CODE_FOR_rdfsbasesi, "__builtin_ia32_rdfsbase32", IX86_BUILTIN_RDFSBASE32, UNKNOWN, (int) UNSIGNED_FTYPE_VOID },
-@@ -33724,12 +33724,12 @@
+@@ -33724,12 +33735,12 @@
  
    /* BMI */
    { OPTION_MASK_ISA_BMI, CODE_FOR_bmi_bextr_si, "__builtin_ia32_bextr_u32", IX86_BUILTIN_BEXTR32, UNKNOWN, (int) UINT_FTYPE_UINT_UINT },
@@ -798297,7 +802030,7 @@ Index: gcc/config/i386/i386.c
  
    /* F16C */
    { OPTION_MASK_ISA_F16C, CODE_FOR_vcvtph2ps, "__builtin_ia32_vcvtph2ps", IX86_BUILTIN_CVTPH2PS, UNKNOWN, (int) V4SF_FTYPE_V8HI },
-@@ -33739,11 +33739,11 @@
+@@ -33739,11 +33750,11 @@
  
    /* BMI2 */
    { OPTION_MASK_ISA_BMI2, CODE_FOR_bmi2_bzhi_si3, "__builtin_ia32_bzhi_si", IX86_BUILTIN_BZHI32, UNKNOWN, (int) UINT_FTYPE_UINT_UINT },
@@ -798312,6 +802045,154 @@ Index: gcc/config/i386/i386.c
  
    /* AVX512F */
    { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_si512_256si, "__builtin_ia32_si512_256si", IX86_BUILTIN_SI512_SI256, UNKNOWN, (int) V16SI_FTYPE_V8SI },
+@@ -33948,6 +33959,17 @@
+   { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_sqrtv8df2, "__builtin_ia32_sqrtpd512", IX86_BUILTIN_SQRTPD512, UNKNOWN, (int) V8DF_FTYPE_V8DF },
+   { OPTION_MASK_ISA_AVX512F, CODE_FOR_sqrtv16sf2, "__builtin_ia32_sqrtps512", IX86_BUILTIN_SQRTPS_NR512, UNKNOWN, (int) V16SF_FTYPE_V16SF },
+   { OPTION_MASK_ISA_AVX512ER, CODE_FOR_avx512er_exp2v16sf, "__builtin_ia32_exp2ps", IX86_BUILTIN_EXP2PS, UNKNOWN, (int) V16SF_FTYPE_V16SF },
++  { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_roundps512, "__builtin_ia32_floorps512", IX86_BUILTIN_FLOORPS512, (enum rtx_code) ROUND_FLOOR, (int) V16SF_FTYPE_V16SF_ROUND },
++  { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_roundps512, "__builtin_ia32_ceilps512", IX86_BUILTIN_CEILPS512, (enum rtx_code) ROUND_CEIL, (int) V16SF_FTYPE_V16SF_ROUND },
++  { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_roundps512, "__builtin_ia32_truncps512", IX86_BUILTIN_TRUNCPS512, (enum rtx_code) ROUND_TRUNC, (int) V16SF_FTYPE_V16SF_ROUND },
++  { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_roundpd512, "__builtin_ia32_floorpd512", IX86_BUILTIN_FLOORPD512, (enum rtx_code) ROUND_FLOOR, (int) V8DF_FTYPE_V8DF_ROUND },
++  { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_roundpd512, "__builtin_ia32_ceilpd512", IX86_BUILTIN_CEILPD512, (enum rtx_code) ROUND_CEIL, (int) V8DF_FTYPE_V8DF_ROUND },
++  { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_roundpd512, "__builtin_ia32_truncpd512", IX86_BUILTIN_TRUNCPD512, (enum rtx_code) ROUND_TRUNC, (int) V8DF_FTYPE_V8DF_ROUND },
++  { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_fix_notruncv16sfv16si, "__builtin_ia32_cvtps2dq512", IX86_BUILTIN_CVTPS2DQ512, UNKNOWN, (int) V16SI_FTYPE_V16SF },
++  { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_vec_pack_sfix_v8df, "__builtin_ia32_vec_pack_sfix512", IX86_BUILTIN_VEC_PACK_SFIX512, UNKNOWN, (int) V16SI_FTYPE_V8DF_V8DF },
++  { OPTION_MASK_ISA_AVX512F, CODE_FOR_roundv16sf2_sfix, "__builtin_ia32_roundps_az_sfix512", IX86_BUILTIN_ROUNDPS_AZ_SFIX512, UNKNOWN, (int) V16SI_FTYPE_V16SF },
++  { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_roundps512_sfix, "__builtin_ia32_floorps_sfix512", IX86_BUILTIN_FLOORPS_SFIX512, (enum rtx_code) ROUND_FLOOR, (int) V16SI_FTYPE_V16SF_ROUND },
++  { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_roundps512_sfix, "__builtin_ia32_ceilps_sfix512", IX86_BUILTIN_CEILPS_SFIX512, (enum rtx_code) ROUND_CEIL, (int) V16SI_FTYPE_V16SF_ROUND },
+   { OPTION_MASK_ISA_AVX512F, CODE_FOR_roundv8df2_vec_pack_sfix, "__builtin_ia32_roundpd_az_vec_pack_sfix512", IX86_BUILTIN_ROUNDPD_AZ_VEC_PACK_SFIX512, UNKNOWN, (int) V16SI_FTYPE_V8DF_V8DF },
+   { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_roundpd_vec_pack_sfix512, "__builtin_ia32_floorpd_vec_pack_sfix512", IX86_BUILTIN_FLOORPD_VEC_PACK_SFIX512, (enum rtx_code) ROUND_FLOOR, (int) V16SI_FTYPE_V8DF_V8DF_ROUND },
+   { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_roundpd_vec_pack_sfix512, "__builtin_ia32_ceilpd_vec_pack_sfix512", IX86_BUILTIN_CEILPD_VEC_PACK_SFIX512, (enum rtx_code) ROUND_CEIL, (int) V16SI_FTYPE_V8DF_V8DF_ROUND },
+@@ -34864,7 +34886,7 @@
+   { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_cvtpd2ps512_mask_round,  "__builtin_ia32_cvtpd2ps512_mask", IX86_BUILTIN_CVTPD2PS512, UNKNOWN, (int) V8SF_FTYPE_V8DF_V8SF_QI_INT },
+   { OPTION_MASK_ISA_AVX512F, CODE_FOR_ufix_notruncv8dfv8si2_mask_round, "__builtin_ia32_cvtpd2udq512_mask", IX86_BUILTIN_CVTPD2UDQ512, UNKNOWN, (int) V8SI_FTYPE_V8DF_V8SI_QI_INT },
+   { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_vcvtph2ps512_mask_round,  "__builtin_ia32_vcvtph2ps512_mask", IX86_BUILTIN_CVTPH2PS512, UNKNOWN, (int) V16SF_FTYPE_V16HI_V16SF_HI_INT },
+-  { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_fix_notruncv16sfv16si_mask_round, "__builtin_ia32_cvtps2dq512_mask", IX86_BUILTIN_CVTPS2DQ512, UNKNOWN, (int) V16SI_FTYPE_V16SF_V16SI_HI_INT },
++  { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_fix_notruncv16sfv16si_mask_round, "__builtin_ia32_cvtps2dq512_mask", IX86_BUILTIN_CVTPS2DQ512_MASK, UNKNOWN, (int) V16SI_FTYPE_V16SF_V16SI_HI_INT },
+   { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_cvtps2pd512_mask_round, "__builtin_ia32_cvtps2pd512_mask", IX86_BUILTIN_CVTPS2PD512, UNKNOWN, (int) V8DF_FTYPE_V8SF_V8DF_QI_INT },
+   { OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_ufix_notruncv16sfv16si_mask_round, "__builtin_ia32_cvtps2udq512_mask", IX86_BUILTIN_CVTPS2UDQ512, UNKNOWN, (int) V16SI_FTYPE_V16SF_V16SI_HI_INT },
+   { OPTION_MASK_ISA_AVX512F, CODE_FOR_sse2_cvtsd2ss_round, "__builtin_ia32_cvtsd2ss_round", IX86_BUILTIN_CVTSD2SS_ROUND, UNKNOWN, (int) V4SF_FTYPE_V4SF_V2DF_INT },
+@@ -38441,10 +38463,13 @@
+     {
+     case V2DF_FTYPE_V2DF_ROUND:
+     case V4DF_FTYPE_V4DF_ROUND:
++    case V8DF_FTYPE_V8DF_ROUND:
+     case V4SF_FTYPE_V4SF_ROUND:
+     case V8SF_FTYPE_V8SF_ROUND:
++    case V16SF_FTYPE_V16SF_ROUND:
+     case V4SI_FTYPE_V4SF_ROUND:
+     case V8SI_FTYPE_V8SF_ROUND:
++    case V16SI_FTYPE_V16SF_ROUND:
+       return ix86_expand_sse_round (d, exp, target);
+     case V4SI_FTYPE_V2DF_V2DF_ROUND:
+     case V8SI_FTYPE_V4DF_V4DF_ROUND:
+@@ -38558,6 +38583,7 @@
+     case V16SI_FTYPE_V8SI:
+     case V16SF_FTYPE_V4SF:
+     case V16SI_FTYPE_V4SI:
++    case V16SI_FTYPE_V16SF:
+     case V16SF_FTYPE_V16SF:
+     case V8DI_FTYPE_UQI:
+     case V8DF_FTYPE_V4DF:
+@@ -42263,6 +42289,8 @@
+ 	    return ix86_get_builtin (IX86_BUILTIN_FLOORPS_SFIX);
+ 	  else if (out_n == 8 && in_n == 8)
+ 	    return ix86_get_builtin (IX86_BUILTIN_FLOORPS_SFIX256);
++	  else if (out_n == 16 && in_n == 16)
++	    return ix86_get_builtin (IX86_BUILTIN_FLOORPS_SFIX512);
+ 	}
+       break;
+ 
+@@ -42288,6 +42316,8 @@
+ 	    return ix86_get_builtin (IX86_BUILTIN_CEILPS_SFIX);
+ 	  else if (out_n == 8 && in_n == 8)
+ 	    return ix86_get_builtin (IX86_BUILTIN_CEILPS_SFIX256);
++	  else if (out_n == 16 && in_n == 16)
++	    return ix86_get_builtin (IX86_BUILTIN_CEILPS_SFIX512);
+ 	}
+       break;
+ 
+@@ -42300,6 +42330,8 @@
+ 	    return ix86_get_builtin (IX86_BUILTIN_VEC_PACK_SFIX);
+ 	  else if (out_n == 8 && in_n == 4)
+ 	    return ix86_get_builtin (IX86_BUILTIN_VEC_PACK_SFIX256);
++	  else if (out_n == 16 && in_n == 8)
++	    return ix86_get_builtin (IX86_BUILTIN_VEC_PACK_SFIX512);
+ 	}
+       if (out_mode == SImode && in_mode == SFmode)
+ 	{
+@@ -42307,6 +42339,8 @@
+ 	    return ix86_get_builtin (IX86_BUILTIN_CVTPS2DQ);
+ 	  else if (out_n == 8 && in_n == 8)
+ 	    return ix86_get_builtin (IX86_BUILTIN_CVTPS2DQ256);
++	  else if (out_n == 16 && in_n == 16)
++	    return ix86_get_builtin (IX86_BUILTIN_CVTPS2DQ512);
+ 	}
+       break;
+ 
+@@ -42332,6 +42366,8 @@
+ 	    return ix86_get_builtin (IX86_BUILTIN_ROUNDPS_AZ_SFIX);
+ 	  else if (out_n == 8 && in_n == 8)
+ 	    return ix86_get_builtin (IX86_BUILTIN_ROUNDPS_AZ_SFIX256);
++	  else if (out_n == 16 && in_n == 16)
++	    return ix86_get_builtin (IX86_BUILTIN_ROUNDPS_AZ_SFIX512);
+ 	}
+       break;
+ 
+@@ -42346,6 +42382,8 @@
+ 	    return ix86_get_builtin (IX86_BUILTIN_FLOORPD);
+ 	  else if (out_n == 4 && in_n == 4)
+ 	    return ix86_get_builtin (IX86_BUILTIN_FLOORPD256);
++	  else if (out_n == 8 && in_n == 8)
++	    return ix86_get_builtin (IX86_BUILTIN_FLOORPD512);
+ 	}
+       if (out_mode == SFmode && in_mode == SFmode)
+ 	{
+@@ -42353,6 +42391,8 @@
+ 	    return ix86_get_builtin (IX86_BUILTIN_FLOORPS);
+ 	  else if (out_n == 8 && in_n == 8)
+ 	    return ix86_get_builtin (IX86_BUILTIN_FLOORPS256);
++	  else if (out_n == 16 && in_n == 16)
++	    return ix86_get_builtin (IX86_BUILTIN_FLOORPS512);
+ 	}
+       break;
+ 
+@@ -42367,6 +42407,8 @@
+ 	    return ix86_get_builtin (IX86_BUILTIN_CEILPD);
+ 	  else if (out_n == 4 && in_n == 4)
+ 	    return ix86_get_builtin (IX86_BUILTIN_CEILPD256);
++	  else if (out_n == 8 && in_n == 8)
++	    return ix86_get_builtin (IX86_BUILTIN_CEILPD512);
+ 	}
+       if (out_mode == SFmode && in_mode == SFmode)
+ 	{
+@@ -42374,6 +42416,8 @@
+ 	    return ix86_get_builtin (IX86_BUILTIN_CEILPS);
+ 	  else if (out_n == 8 && in_n == 8)
+ 	    return ix86_get_builtin (IX86_BUILTIN_CEILPS256);
++	  else if (out_n == 16 && in_n == 16)
++	    return ix86_get_builtin (IX86_BUILTIN_CEILPS512);
+ 	}
+       break;
+ 
+@@ -42388,6 +42432,8 @@
+ 	    return ix86_get_builtin (IX86_BUILTIN_TRUNCPD);
+ 	  else if (out_n == 4 && in_n == 4)
+ 	    return ix86_get_builtin (IX86_BUILTIN_TRUNCPD256);
++	  else if (out_n == 8 && in_n == 8)
++	    return ix86_get_builtin (IX86_BUILTIN_TRUNCPD512);
+ 	}
+       if (out_mode == SFmode && in_mode == SFmode)
+ 	{
+@@ -42395,6 +42441,8 @@
+ 	    return ix86_get_builtin (IX86_BUILTIN_TRUNCPS);
+ 	  else if (out_n == 8 && in_n == 8)
+ 	    return ix86_get_builtin (IX86_BUILTIN_TRUNCPS256);
++	  else if (out_n == 16 && in_n == 16)
++	    return ix86_get_builtin (IX86_BUILTIN_TRUNCPS512);
+ 	}
+       break;
+ 
 Index: gcc/config/microblaze/rtems.h
 ===================================================================
 --- a/src/gcc/config/microblaze/rtems.h	(.../tags/gcc_6_1_0_release)
@@ -801735,17 +805616,19 @@ Index: gcc/config/arm/arm.c
  
    offset = 0;
    offset += update ? 1 : 0;
-@@ -17772,7 +17773,8 @@
+@@ -17772,20 +17773,16 @@
      }
  
    conditional = reverse ? "%?%D0" : "%?%d0";
 -  if ((regno_base == SP_REGNUM) && update)
+-    {
+-      sprintf (pattern, "pop%s\t{", conditional);
+-    }
 +  /* Can't use POP if returning from an interrupt.  */
-+  if ((regno_base == SP_REGNUM) && !(interrupt_p && return_pc))
++  if ((regno_base == SP_REGNUM) && update && !(interrupt_p && return_pc))
++    sprintf (pattern, "pop%s\t{", conditional);
+   else
      {
-       sprintf (pattern, "pop%s\t{", conditional);
-     }
-@@ -17781,11 +17783,8 @@
        /* Output ldmfd when the base register is SP, otherwise output ldmia.
           It's just a convention, their semantics are identical.  */
        if (regno_base == SP_REGNUM)
@@ -801759,7 +805642,7 @@ Index: gcc/config/arm/arm.c
  	sprintf (pattern, "ldmia%s\t", conditional);
        else
  	sprintf (pattern, "ldm%s\t", conditional);
-@@ -17811,7 +17810,7 @@
+@@ -17811,7 +17808,7 @@
  
    strcat (pattern, "}");
  
@@ -801768,7 +805651,7 @@ Index: gcc/config/arm/arm.c
      strcat (pattern, "^");
  
    output_asm_insn (pattern, &cond);
-@@ -19622,8 +19621,12 @@
+@@ -19622,8 +19619,12 @@
  		  sprintf (instr, "ldmfd%s\t%%|sp, {", conditional);
  		}
  	    }
@@ -801782,7 +805665,7 @@ Index: gcc/config/arm/arm.c
  
  	  p = instr + strlen (instr);
  
-@@ -21461,7 +21464,11 @@
+@@ -21461,7 +21462,11 @@
  
    /* Naked functions don't have prologues.  */
    if (IS_NAKED (func_type))
@@ -801795,7 +805678,7 @@ Index: gcc/config/arm/arm.c
  
    /* Make a copy of c_f_p_a_s as we may need to modify it locally.  */
    args_to_push = crtl->args.pretend_args_size;
-@@ -24715,7 +24722,11 @@
+@@ -24715,7 +24720,11 @@
  
    /* Naked functions don't have prologues.  */
    if (IS_NAKED (func_type))
@@ -802167,6 +806050,35 @@ Index: gcc/config/visium/visium.c
    else
      gcc_unreachable ();
  
+Index: gcc/tree-vect-slp.c
+===================================================================
+--- a/src/gcc/tree-vect-slp.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/tree-vect-slp.c	(.../branches/gcc-6-branch)
+@@ -3050,7 +3050,7 @@
+ 		      if (integer_zerop (op))
+ 			op = build_int_cst (TREE_TYPE (vector_type), 0);
+ 		      else if (integer_onep (op))
+-			op = build_int_cst (TREE_TYPE (vector_type), 1);
++			op = build_all_ones_cst (TREE_TYPE (vector_type));
+ 		      else
+ 			gcc_unreachable ();
+ 		    }
+@@ -3065,8 +3065,14 @@
+ 		  gimple *init_stmt;
+ 		  if (VECTOR_BOOLEAN_TYPE_P (vector_type))
+ 		    {
++		      tree true_val
++			= build_all_ones_cst (TREE_TYPE (vector_type));
++		      tree false_val
++			= build_zero_cst (TREE_TYPE (vector_type));
+ 		      gcc_assert (INTEGRAL_TYPE_P (TREE_TYPE (op)));
+-		      init_stmt = gimple_build_assign (new_temp, NOP_EXPR, op);
++		      init_stmt = gimple_build_assign (new_temp, COND_EXPR,
++						       op, true_val,
++						       false_val);
+ 		    }
+ 		  else
+ 		    {
 Index: gcc/ipa-icf.c
 ===================================================================
 --- a/src/gcc/ipa-icf.c	(.../tags/gcc_6_1_0_release)
@@ -804607,7 +808519,11 @@ Index: libcpp/po/ChangeLog
 ===================================================================
 --- a/src/libcpp/po/ChangeLog	(.../tags/gcc_6_1_0_release)
 +++ b/src/libcpp/po/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,25 @@
+@@ -1,3 +1,29 @@
++2016-06-03  Joseph Myers  <joseph at codesourcery.com>
++
++	* sr.po: Update.
++
 +2016-05-18  Joseph Myers  <joseph at codesourcery.com>
 +
 +	* da.po: Update.
@@ -805925,15 +809841,20 @@ Index: libcpp/po/sr.po
 ===================================================================
 --- a/src/libcpp/po/sr.po	(.../tags/gcc_6_1_0_release)
 +++ b/src/libcpp/po/sr.po	(.../branches/gcc-6-branch)
-@@ -6,7 +6,7 @@
+@@ -4,10 +4,10 @@
+ # Мирослав Николић <miroslavnikolic at rocketmail.com>, 2012—2016.
+ msgid ""
  msgstr ""
- "Project-Id-Version: cpplib-6.1-b20160131\n"
+-"Project-Id-Version: cpplib-6.1-b20160131\n"
++"Project-Id-Version: cpplib-6.1.0\n"
  "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
 -"POT-Creation-Date: 2016-01-31 15:50+0000\n"
+-"PO-Revision-Date: 2016-03-05 08:37+0200\n"
 +"POT-Creation-Date: 2016-04-21 15:24+0000\n"
- "PO-Revision-Date: 2016-03-05 08:37+0200\n"
++"PO-Revision-Date: 2016-05-29 19:20+0200\n"
  "Last-Translator: Мирослав Николић <miroslavnikolic at rocketmail.com>\n"
  "Language-Team: Serbian <(nothing)>\n"
+ "Language: sr\n"
 @@ -85,7 +85,7 @@
  msgid "universal character %.*s is not valid at the start of an identifier"
  msgstr "свеопшти знак %.*s није исправан на почетку одредника"
@@ -805960,7 +809881,7 @@ Index: libcpp/po/sr.po
 +#: directives.c:1061
  #, c-format
 +msgid "file \"%s\" linemarker ignored due to incorrect nesting"
-+msgstr ""
++msgstr "датотека „%s“ означавач реда занемаренa због нетачног угњежђавања"
 +
 +#: directives.c:1120 directives.c:1122 directives.c:1124 directives.c:1710
 +#, c-format
@@ -806143,18 +810064,18 @@ Index: libcpp/po/sr.po
  msgid "stdout"
  msgstr "стдизлаз"
  
-@@ -427,7 +432,9 @@
+@@ -427,8 +432,8 @@
  msgstr "неисправан префикс „0b“ за покретну константу"
  
  #: expr.c:555
 -msgid "use of C++11 hexadecimal floating constant"
-+#, fuzzy
-+#| msgid "use of C++11 hexadecimal floating constant"
+-msgstr "употреба Ц+11 хексадецималне покретне константе"
 +msgid "use of C++1z hexadecimal floating constant"
- msgstr "употреба Ц+11 хексадецималне покретне константе"
++msgstr "употреба Ц+1z хексадецималне покретне константе"
  
  #: expr.c:558
-@@ -772,153 +779,153 @@
+ msgid "use of C99 hexadecimal floating constant"
+@@ -772,153 +777,153 @@
  msgid "unspellable token %s"
  msgstr "неизговорљив симбол %s"
  

-- 
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