[gcc-7] 276/354: * Update to SVN 20170824 (r251336) from the gcc-7-branch.

Ximin Luo infinity0 at debian.org
Thu Nov 23 15:51:13 UTC 2017


This is an automated email from the git hooks/post-receive script.

infinity0 pushed a commit to branch master
in repository gcc-7.

commit 32253088cd9960b2c75623f4a4f8486df5d47ba9
Author: doko <doko at 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>
Date:   Thu Aug 24 15:33:09 2017 +0000

      * Update to SVN 20170824 (r251336) from the gcc-7-branch.
    
    
    git-svn-id: svn+ssh://svn.debian.org/svn/gcccvs/branches/sid/gcc-7@9643 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
---
 debian/changelog                |    5 +-
 debian/patches/svn-updates.diff | 1365 +++++++++++++++++++++++++++++++--------
 2 files changed, 1100 insertions(+), 270 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 761e31a..4087ff5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,11 @@
 gcc-7 (7.2.0-2) UNRELEASED; urgency=medium
 
+  * Update to SVN 20170824 (r251336) from the gcc-7-branch.
+    - Fix PR target/72804 (PPC), PR target/80210 (PPC), PR target/81910 (AVR),
+      PR target/79883 (AVR), PR fortran/81296, PR fortran/80164.
   * Update the Linaro support to the 7-2017.08 snapshot.
 
- -- Matthias Klose <doko at debian.org>  Tue, 22 Aug 2017 13:46:26 +0200
+ -- Matthias Klose <doko at debian.org>  Thu, 24 Aug 2017 17:30:16 +0200
 
 gcc-7 (7.2.0-1) unstable; urgency=medium
 
diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff
index b2e2a61..81a7d00 100644
--- a/debian/patches/svn-updates.diff
+++ b/debian/patches/svn-updates.diff
@@ -1,10 +1,10 @@
-# DP: updates from the 7 branch upto 20170818 (r251184).
+# DP: updates from the 7 branch upto 20170824 (r251336).
 
 last_update()
 {
 	cat > ${dir}LAST_UPDATED <EOF
-Fri Aug 18 18:08:48 CEST 2017
-Fri Aug 18 16:08:48 UTC 2017 (revision 251184)
+Thu Aug 24 17:23:18 CEST 2017
+Thu Aug 24 15:23:18 UTC 2017 (revision 251336)
 EOF
 }
 
@@ -122,7 +122,12 @@ Index: libstdc++-v3/ChangeLog
 ===================================================================
 --- a/src/libstdc++-v3/ChangeLog	(.../tags/gcc_7_2_0_release)
 +++ b/src/libstdc++-v3/ChangeLog	(.../branches/gcc-7-branch)
-@@ -1,3 +1,28 @@
+@@ -1,3 +1,33 @@
++2017-08-20  John David Anglin  <danglin at gcc.gnu.org>
++
++	PR testsuite/81056
++	* testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
++
 +2017-08-14  Jonathan Wakely  <jwakely at redhat.com>
 +
 +	Backport from mainline
@@ -368,6 +373,20 @@ Index: libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/53984.cc
 +{
 +  test01();
 +}
+Index: libstdc++-v3/testsuite/17_intro/names.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/17_intro/names.cc	(.../tags/gcc_7_2_0_release)
++++ b/src/libstdc++-v3/testsuite/17_intro/names.cc	(.../branches/gcc-7-branch)
+@@ -107,4 +107,9 @@
+ #undef y
+ #endif
+ 
++#ifdef __hpux__
++#undef d
++#undef r
++#endif
++
+ #include <bits/stdc++.h>
 Index: libstdc++-v3/config/io/basic_file_stdio.cc
 ===================================================================
 --- a/src/libstdc++-v3/config/io/basic_file_stdio.cc	(.../tags/gcc_7_2_0_release)
@@ -394,12 +413,70 @@ Index: gcc/DATESTAMP
 +++ b/src/gcc/DATESTAMP	(.../branches/gcc-7-branch)
 @@ -1 +1 @@
 -20170814
-+20170818
++20170824
 Index: gcc/ChangeLog
 ===================================================================
 --- a/src/gcc/ChangeLog	(.../tags/gcc_7_2_0_release)
 +++ b/src/gcc/ChangeLog	(.../branches/gcc-7-branch)
-@@ -1,3 +1,29 @@
+@@ -1,3 +1,87 @@
++2017-08-23  Peter Bergner  <bergner at vnet.ibm.com>
++
++	Backport from mainline
++	2017-08-17  Peter Bergner  <bergner at vnet.ibm.com>
++
++	PR target/72804
++	* config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
++	operands residing in integer registers.
++	(*vsx_le_perm_load_<mode>): Likewise.
++	(*vsx_le_perm_store_<mode>): Likewise.
++	(define_peephole2): Add peepholes to optimize the above.
++
++2017-08-22  Peter Bergner  <bergner at vnet.ibm.com>
++
++	Backport from mainline
++	2017-08-17  Peter Bergner  <bergner at vnet.ibm.com>
++
++	PR target/80210
++	* config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
++	(rs6000_set_current_function): Rewrite function to use it.
++
++2017-08-22  Sebastian Huber  <sebastian.huber at embedded-brains.de>
++
++	Backport from mainline
++	2017-08-22  Sebastian Huber  <sebastian.huber at embedded-brains.de>
++
++	* config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
++	* config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
++	(DOT_SYMBOLS): Likewise.
++	(MINIMAL_TOC_SECTION_ASM_OP): Likewise.
++	(RELOCATABLE_NEEDS_FIXUP): Likewise.
++	(RS6000_ABI_NAME): Likewise.
++	(TARGET_CMODEL): Likewise.
++	(TOC_SECTION_ASM_OP): Likewise.
++	(SET_CMODEL): New macro.
++	(SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
++
++2017-08-22  Georg-Johann Lay  <avr at gjlay.de>
++
++	Backport from 2017-08-22 trunk r251256.
++
++	PR target/81910
++	* config/avr/avr.c (avr_handle_addr_attribute): Early return if
++	not VAR_P. Filter attribute warnings with OPT_Wattributes.
++	(avr_attribute_table) <io, io_low, address>: Initialize
++	.decl_required with true.
++
++2017-08-21  Georg-Johann Lay  <avr at gjlay.de>
++
++	PR target/79883
++	* config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
++
++2017-08-19  Uros Bizjak  <ubizjak at gmail.com>
++
++	PR target/81894
++	* doc/extend.texi (x86 Built-in Functions): Correct the name of
++	__builtin_ia32_lzcnt_u16.
++
 +2017-08-17  Uros Bizjak  <ubizjak at gmail.com>
 +
 +	Backport from mainline
@@ -429,6 +506,143 @@ Index: gcc/ChangeLog
  2017-08-14  Release Manager
  
  	* GCC 7.2.0 released.
+Index: gcc/testsuite/gcc.target/powerpc/pr80210.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/powerpc/pr80210.c	(.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/gcc.target/powerpc/pr80210.c	(.../branches/gcc-7-branch)
+@@ -0,0 +1,10 @@
++/* Test for ICE arising from GCC target pragma.  */
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
++
++double
++foo (double a)
++{
++  return __builtin_sqrt (a);
++}
++#pragma GCC target "no-powerpc-gpopt"
+Index: gcc/testsuite/gcc.target/powerpc/pr72804.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/powerpc/pr72804.c	(.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/gcc.target/powerpc/pr72804.c	(.../branches/gcc-7-branch)
+@@ -0,0 +1,25 @@
++/* { dg-do compile { target { lp64 } } } */
++/* { dg-skip-if "" { powerpc*-*-darwin* } } */
++/* { dg-require-effective-target powerpc_vsx_ok } */
++/* { dg-options "-O2 -mvsx" } */
++
++__int128_t
++foo (__int128_t *src)
++{
++  return ~*src;
++}
++
++void
++bar (__int128_t *dst, __int128_t src)
++{
++  *dst =  ~src;
++}
++
++/* { dg-final { scan-assembler-times "not " 4 } } */
++/* { dg-final { scan-assembler-times "std " 2 } } */
++/* { dg-final { scan-assembler-times "ld " 2 } } */
++/* { dg-final { scan-assembler-not "lxvd2x" } } */
++/* { dg-final { scan-assembler-not "stxvd2x" } } */
++/* { dg-final { scan-assembler-not "xxpermdi" } } */
++/* { dg-final { scan-assembler-not "mfvsrd" } } */
++/* { dg-final { scan-assembler-not "mfvsrd" } } */
+Index: gcc/testsuite/lib/target-supports.exp
+===================================================================
+--- a/src/gcc/testsuite/lib/target-supports.exp	(.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/lib/target-supports.exp	(.../branches/gcc-7-branch)
+@@ -1777,6 +1777,7 @@
+ 	    expr 0
+ 	} else {
+ 	    check_runtime_nocache avx2_hw_available {
++		#include <stddef.h>
+ 		#include "cpuid.h"
+ 		int main ()
+ 		{
+Index: gcc/testsuite/gfortran.dg/dtio_12.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/dtio_12.f90	(.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/dtio_12.f90	(.../branches/gcc-7-branch)
+@@ -70,5 +70,11 @@
+   rewind (10)
+   read (10, *) msg
+   if (trim (msg) .ne. "77") call abort
++  rewind (10)
++  write (10,40) child (77)                         ! Modified using format label
++40 format(DT)
++  rewind (10)
++  read (10, *) msg
++  if (trim (msg) .ne. "77") call abort
+   close(10)
+ end
+Index: gcc/testsuite/gfortran.dg/array_temporaries_4.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/array_temporaries_4.f90	(.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/array_temporaries_4.f90	(.../branches/gcc-7-branch)
+@@ -0,0 +1,59 @@
++! { dg-do compile }
++! { dg-options "-Warray-temporaries" }
++! Tests the fix for PR80164, in which the compiler segfaulted on this
++! when using -Warray-temporaries
++!
++!******************************************************************************
++module global
++  type :: a
++    integer :: b
++    character(8):: c
++  end type a
++  interface assignment(=)
++    module procedure a_to_a, c_to_a, a_to_c
++  end interface
++  interface operator(.ne.)
++    module procedure a_ne_a
++  end interface
++
++  type(a) :: x(4), y(4)
++  logical :: l1(4), t = .true., f= .false.
++contains
++!******************************************************************************
++  elemental subroutine a_to_a (m, n)
++    type(a), intent(in) :: n
++    type(a), intent(out) :: m
++    m%b = len ( trim(n%c))
++    m%c = n%c
++  end subroutine a_to_a
++  elemental subroutine c_to_a (m, n)
++    character(8), intent(in) :: n
++    type(a), intent(out) :: m
++    m%b = m%b + 1
++    m%c = n
++  end subroutine c_to_a
++  elemental subroutine a_to_c (m, n)
++    type(a), intent(in) :: n
++    character(8), intent(out) :: m
++    m = n%c
++  end subroutine a_to_c
++!******************************************************************************
++  elemental logical function a_ne_a (m, n)
++    type(a), intent(in) :: n
++    type(a), intent(in) :: m
++    a_ne_a = (m%b .ne. n%b) .or. (m%c .ne. n%c)
++  end function a_ne_a
++!******************************************************************************
++  elemental function foo (m)
++    type(a) :: foo
++    type(a), intent(in) :: m
++    foo%b = 0
++    foo%c = m%c
++  end function foo  
++end module global
++!******************************************************************************
++program test
++  use global
++  x = (/a (0, "one"),a (0, "two"),a (0, "three"),a (0, "four")/) ! { dg-warning "Creating array temporary" }
++  y = x
++end program test 
 Index: gcc/testsuite/gcc.c-torture/compile/string-large-1.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.c-torture/compile/string-large-1.c	(.../tags/gcc_7_2_0_release)
@@ -553,11 +767,70 @@ Index: gcc/testsuite/gcc.c-torture/compile/string-large-1.c
 +  vp3 = __builtin_strncpy (a, b, SIZE3);
 +  vp4 = __builtin_strncpy (a, b, SIZE4);
 +}
+Index: gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-7.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-7.c	(.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-7.c	(.../branches/gcc-7-branch)
+@@ -62,4 +62,4 @@
+   return bar (s, x);
+ }
+ 
+-/* { dg-final { scan-ipa-dump-times "Discovered an indirect call to a known target" 3 "cp" } } */
++/* { dg-final { scan-ipa-dump-times "Discovered an indirect call to a known target" 3 "cp" { xfail { hppa*-*-* && { ! lp64 } } } } } */
 Index: gcc/testsuite/ChangeLog
 ===================================================================
 --- a/src/gcc/testsuite/ChangeLog	(.../tags/gcc_7_2_0_release)
 +++ b/src/gcc/testsuite/ChangeLog	(.../branches/gcc-7-branch)
-@@ -1,3 +1,17 @@
+@@ -1,3 +1,66 @@
++2017-05-19  Uros Bizjak  <ubizjak at gmail.com>
++
++	Backport from mainline
++	2017-08-23  Daniel Santos  <daniel.santos at pobox.com>
++
++	* lib/target-supports.exp (check_avx2_hw_available):
++	Fix breakage due NULL being undefined.
++
++2017-08-23  Peter Bergner  <bergner at vnet.ibm.com>
++
++	Backport from mainline
++	2017-08-17  Peter Bergner  <bergner at vnet.ibm.com>
++
++	PR target/72804
++	* gcc.target/powerpc/pr72804.c: New test.
++
++2017-08-22  Jerry DeLisle  <jvdelisle at gcc.gnu.org>
++
++	Backport from trunk
++	PR fortran/81296
++	* gfortran.dg/dtio_12.f90: Update test.
++
++2017-08-22  Peter Bergner  <bergner at vnet.ibm.com>
++
++	Backport from mainline
++	2017-08-17  Peter Bergner  <bergner at vnet.ibm.com>
++
++	PR target/80210
++	* gcc.target/powerpc/pr80210.c: New test.
++
++2017-08-22  Yvan Roux  <yvan.roux at linaro.org>
++
++	Backport from mainline
++	2017-08-22  Yvan Roux  <yvan.roux at linaro.org>
++
++	PR c++/80287
++	* g++.dg/pr80287.C: New test.
++
++2017-08-20  John David Anglin  <danglin at gcc.gnu.org>
++
++	PR ipa/77732
++	* gcc.dg/ipa/ipcp-cstagg-7.c: Xfail on 32-bit hppa.
++
++2017-08-18  Jerry DeLisle  <jvdelisle at gcc.gnu.org>
++
++	Backport from trunk
++	PR fortran/80164
++	* gfortran.dg/array_temporaries_4.f90: New test.
++
 +2017-08-16  Bill Schmidt  <wschmidt at linux.vnet.ibm.com>
 +
 +	Backport from mainline
@@ -604,6 +877,24 @@ Index: gcc/testsuite/g++.dg/torture/pr81354.C
 +    }
 +  }
 +}
+Index: gcc/testsuite/g++.dg/pr80287.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/pr80287.C	(.../tags/gcc_7_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/pr80287.C	(.../branches/gcc-7-branch)
+@@ -0,0 +1,13 @@
++// PR c++/80287
++// { dg-do compile { target c++11 } }
++// { dg-options "-g" }
++
++struct A {
++  operator long() {}
++} __attribute__((__may_alias__));
++
++struct {
++  A ino;
++} a;
++
++char b = a.ino;
 Index: gcc/gimple-ssa-strength-reduction.c
 ===================================================================
 --- a/src/gcc/gimple-ssa-strength-reduction.c	(.../tags/gcc_7_2_0_release)
@@ -676,6 +967,84 @@ Index: gcc/gimple-ssa-strength-reduction.c
  }
  
  namespace {
+Index: gcc/fortran/ChangeLog
+===================================================================
+--- a/src/gcc/fortran/ChangeLog	(.../tags/gcc_7_2_0_release)
++++ b/src/gcc/fortran/ChangeLog	(.../branches/gcc-7-branch)
+@@ -1,3 +1,17 @@
++2017-08-22  Jerry DeLisle  <jvdelisle at gcc.gnu.org>
++
++	Backport from trunk
++	PR fortran/81296
++	* trans-io.c (get_dtio_proc): Add check for format label and set
++	formatted flag accordingly. Reorganize the code a little.
++
++2017-08-18  Jerry DeLisle  <jvdelisle at gcc.gnu.org>
++
++	Backport from trunk
++	PR fortran/80164
++	* trans-stmt.c (gfc_trans_call): If no code expr, use code->loc
++	as warning/error locus.
++
+ 2017-08-14  Release Manager
+ 
+ 	* GCC 7.2.0 released.
+Index: gcc/fortran/trans-stmt.c
+===================================================================
+--- a/src/gcc/fortran/trans-stmt.c	(.../tags/gcc_7_2_0_release)
++++ b/src/gcc/fortran/trans-stmt.c	(.../branches/gcc-7-branch)
+@@ -452,7 +452,10 @@
+ 	 subscripts.  This could be prevented in the elemental case
+ 	 as temporaries are handled separatedly
+ 	 (below in gfc_conv_elemental_dependencies).  */
+-      gfc_conv_loop_setup (&loop, &code->expr1->where);
++      if (code->expr1)
++	gfc_conv_loop_setup (&loop, &code->expr1->where);
++      else
++	gfc_conv_loop_setup (&loop, &code->loc);
+       gfc_mark_ss_chain_used (ss, 1);
+ 
+       /* Convert the arguments, checking for dependencies.  */
+Index: gcc/fortran/trans-io.c
+===================================================================
+--- a/src/gcc/fortran/trans-io.c	(.../tags/gcc_7_2_0_release)
++++ b/src/gcc/fortran/trans-io.c	(.../branches/gcc-7-branch)
+@@ -2214,19 +2214,25 @@
+   bool formatted = false;
+   gfc_dt *dt = code->ext.dt;
+ 
+-  if (dt && dt->format_expr)
++  if (dt)
+     {
+-      char *fmt;
+-      fmt = gfc_widechar_to_char (dt->format_expr->value.character.string,
+-				  -1);
+-      if (strtok (fmt, "DT") != NULL)
++      char *fmt = NULL;
++
++      if (dt->format_label == &format_asterisk)
++	{
++	  /* List directed io must call the formatted DTIO procedure.  */
++	  formatted = true;
++	}
++      else if (dt->format_expr)
++	fmt = gfc_widechar_to_char (dt->format_expr->value.character.string,
++				      -1);
++      else if (dt->format_label)
++	fmt = gfc_widechar_to_char (dt->format_label->format->value.character.string,
++				      -1);
++      if (fmt && strtok (fmt, "DT") != NULL)
+ 	formatted = true;
++
+     }
+-  else if (dt && dt->format_label == &format_asterisk)
+-    {
+-      /* List directed io must call the formatted DTIO procedure.  */
+-      formatted = true;
+-    }
+ 
+   if (ts->type == BT_CLASS)
+     derived = ts->u.derived->components->ts.u.derived;
 Index: gcc/po/es.po
 ===================================================================
 --- a/src/gcc/po/es.po	(.../tags/gcc_7_2_0_release)
@@ -63378,7 +63747,11 @@ Index: gcc/po/ChangeLog
 ===================================================================
 --- a/src/gcc/po/ChangeLog	(.../tags/gcc_7_2_0_release)
 +++ b/src/gcc/po/ChangeLog	(.../branches/gcc-7-branch)
-@@ -1,3 +1,13 @@
+@@ -1,3 +1,17 @@
++2017-08-21  Joseph Myers  <joseph at codesourcery.com>
++
++	* de.po: Update.
++
 +2017-08-16  Joseph Myers  <joseph at codesourcery.com>
 +
 +	* fr.po: Update.
@@ -191632,15 +192005,29 @@ Index: gcc/po/de.po
 ===================================================================
 --- a/src/gcc/po/de.po	(.../tags/gcc_7_2_0_release)
 +++ b/src/gcc/po/de.po	(.../branches/gcc-7-branch)
-@@ -10,7 +10,7 @@
+@@ -8,10 +8,10 @@
+ # Roland Illig <roland.illig at gmx.de>, 2015, 2017.
+ msgid ""
  msgstr ""
- "Project-Id-Version: gcc 7.1.0\n"
+-"Project-Id-Version: gcc 7.1.0\n"
++"Project-Id-Version: gcc 7.2.0\n"
  "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
 -"POT-Creation-Date: 2017-05-01 22:24+0000\n"
+-"PO-Revision-Date: 2017-05-03 22:55+0200\n"
 +"POT-Creation-Date: 2017-08-04 22:17+0000\n"
- "PO-Revision-Date: 2017-05-03 22:55+0200\n"
++"PO-Revision-Date: 2017-08-20 23:01+0200\n"
  "Last-Translator: Roland Illig <roland.illig at gmx.de>\n"
  "Language-Team: German <translation-team-de at lists.sourceforge.net>\n"
+ "Language: de\n"
+@@ -20,7 +20,7 @@
+ "Content-Transfer-Encoding: 8bit\n"
+ "X-Bugs: Report translation errors to the Language-Team address.\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+-"X-Generator: Poedit 2.0.1\n"
++"X-Generator: Poedit 2.0.3\n"
+ 
+ #: cfgrtl.c:2661
+ msgid "flow control insn inside a basic block"
 @@ -198,13 +198,13 @@
  #. TARGET_PRINT_OPERAND must handle them.
  #. We can't handle floating point constants;
@@ -193526,14 +193913,12 @@ Index: gcc/po/de.po
  msgid "Known ARM FPUs (for use with the -mfpu= option):"
  msgstr "Bekannte ARM-FPUs (für Verwendung mit Option -mfpu=):"
  
-@@ -10223,78 +10223,102 @@
+@@ -10223,78 +10223,94 @@
  msgstr "Visuelle Befehlssatzerweiterungen Version 4.0 für UltraSPARC verwenden."
  
  #: config/sparc/sparc.opt:86
-+#, fuzzy
-+#| msgid "Use vector and scalar instructions added in ISA 2.07."
 +msgid "Use additional VIS instructions introduced in OSA2017."
-+msgstr "Vektor-/skalare (VSX) Befehle verwenden, die in ISA 2.07 hinzugefügt wurden."
++msgstr "Zusätzliche VIS-Befehle verwenden, die in OSA2017 hinzugefügt wurden."
 +
 +#: config/sparc/sparc.opt:90
  msgid "Use UltraSPARC Compare-and-Branch extensions."
@@ -193546,10 +193931,8 @@ Index: gcc/po/de.po
  
 -#: config/sparc/sparc.opt:94
 +#: config/sparc/sparc.opt:98
-+#, fuzzy
-+#| msgid "Use hardware floating-point divide and square root instructions."
 +msgid "Use Floating-point Multiply Single to Double (FsMULd) instruction."
-+msgstr "Hardware-Gleitkommabefehle für Division und Quadratwurzel verwenden."
++msgstr "Hardware-Gleitkommabefehle für Multiplikation von einfacher auf doppelte Genauigkeit (FsMULd) verwenden."
 +
 +#: config/sparc/sparc.opt:102
  msgid "Use UltraSPARC Population-Count instruction."
@@ -193632,33 +194015,27 @@ Index: gcc/po/de.po
  
 -#: config/sparc/sparc.opt:260
 +#: config/sparc/sparc.opt:246
-+#, fuzzy
-+#| msgid "Enable workarounds for the errata of the UT699 processor."
 +msgid "Enable workarounds for the errata of the UT699E/UT700 processor."
-+msgstr "Workaround für Errata des UT699-Prozessors einschalten."
++msgstr "Workarounds für Errata des UT699E/UT700-Prozessors einschalten."
 +
 +#: config/sparc/sparc.opt:250
-+#, fuzzy
-+#| msgid "Enable workarounds for the errata of the UT699 processor."
 +msgid "Enable workarounds for the errata of the GR712RC processor."
-+msgstr "Workaround für Errata des UT699-Prozessors einschalten."
++msgstr "Workarounds für Errata des GR712RC-Prozessors einschalten."
 +
 +#: config/sparc/sparc.opt:283
  msgid "Specify the memory model in effect for the program."
  msgstr "Für Programm zu verwendendes Speichermodell angeben"
  
-@@ -14638,7 +14662,9 @@
+@@ -14638,7 +14654,7 @@
  msgstr "Ausführungspfade erkennen, die durch Dereferenzieren eines Nullzeigers fehlerhaftes oder undefiniertes Verhalten auslösen. Solche Pfade werden aus dem Hauptablauf herausgenommen und durch eine Trap ersetzt."
  
  #: common.opt:2495
 -msgid "Detect paths that trigger erroneous or undefined behavior due a null value being used in a way forbidden by a returns_nonnull or nonnull attribute.  Isolate those paths from the main control flow and turn the statement with erroneous or undefined behavior into a trap."
-+#, fuzzy
-+#| msgid "Detect paths that trigger erroneous or undefined behavior due a null value being used in a way forbidden by a returns_nonnull or nonnull attribute.  Isolate those paths from the main control flow and turn the statement with erroneous or undefined behavior into a trap."
 +msgid "Detect paths that trigger erroneous or undefined behavior due to a null value being used in a way forbidden by a returns_nonnull or nonnull attribute.  Isolate those paths from the main control flow and turn the statement with erroneous or undefined behavior into a trap."
  msgstr "Ausführungspfade erkennen, die ausgelöst werden, indem ein Nullwert auf eine Weise verwendet wird, die durch ein »returns_nonnull«- oder »nonnull«-Attribut verboten ist. Solche Pfade werden aus dem Hauptablauf herausgenommen und durch eine Trap ersetzt."
  
  #: common.opt:2502
-@@ -15040,7 +15066,7 @@
+@@ -15040,7 +15056,7 @@
  msgstr "boolescher Typ erwartet"
  
  #: go/gofrontend/expressions.cc:4204 c/c-parser.c:12782 c/c-parser.c:12789
@@ -193667,7 +194044,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "expected integer"
  msgstr "Ganzzahl erwartet"
-@@ -15318,125 +15344,125 @@
+@@ -15318,125 +15334,125 @@
  msgid "range clause must have array, slice, string, map, or channel type"
  msgstr "Bereichsklausel muss vom Typ Array, Scheibe, Zeichenkette, Map oder Kanal sein"
  
@@ -193823,7 +194200,7 @@ Index: gcc/po/de.po
  #, c-format
  msgid "method %s%s%s is marked go:nointerface"
  msgstr "Methode %s%s%s ist als go:nointerface gekennzeichnet"
-@@ -15611,7 +15637,7 @@
+@@ -15611,7 +15627,7 @@
  msgid "specified bound %wu equals the size of the destination"
  msgstr "angegebene Grenze %wu ist genau die Größe des Ziels"
  
@@ -193832,7 +194209,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "too few arguments to function %<va_start%>"
  msgstr "Zu wenige Argumente für %<va_start%>"
-@@ -15673,27 +15699,27 @@
+@@ -15673,27 +15689,27 @@
  msgid "invalid memory model for %<__atomic_load%>"
  msgstr "ungültiges Speichermodell für %<__atomic_load%>"
  
@@ -193865,7 +194242,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "__builtin_set_thread_pointer is not supported on this target"
  msgstr "__builtin_set_thread_pointer wird für dieses Ziel nicht unterstützt"
-@@ -15700,7 +15726,7 @@
+@@ -15700,7 +15716,7 @@
  
  #. All valid uses of __builtin_va_arg_pack () are removed during
  #. inlining.
@@ -193874,7 +194251,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>"
  msgstr "%Kungültige Verwendung von %<__builtin_va_arg_pack ()%>"
-@@ -15707,12 +15733,12 @@
+@@ -15707,12 +15723,12 @@
  
  #. All valid uses of __builtin_va_arg_pack_len () are removed during
  #. inlining.
@@ -193889,7 +194266,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<__builtin_longjmp%> second argument must be 1"
  msgstr "Zweites Argument für %<__builtin_longjmp%> muss 1 sein"
-@@ -15719,62 +15745,62 @@
+@@ -15719,62 +15735,62 @@
  
  #. Software implementation of Pointer Bounds Checker is NYI.
  #. Target support is required.
@@ -193964,7 +194341,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%Kattempt to free a non-heap object"
  msgstr "%KVersuch, Nicht-Heap-Objekt freizugeben"
-@@ -16683,12 +16709,12 @@
+@@ -16683,12 +16699,12 @@
  msgstr "Attribut %<weakref%> ignoriert, da Variable bereits initialisiert ist"
  
  #. include_self=
@@ -193979,7 +194356,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%q+F declared %<static%> but never defined"
  msgstr "%q+F als %<static%> deklariert, aber nirgendwo definiert"
-@@ -16783,12 +16809,12 @@
+@@ -16783,12 +16799,12 @@
  msgid "cannot find '%s'"
  msgstr "»%s« kann nicht gefunden werden"
  
@@ -193994,7 +194371,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%s: %m"
  msgstr "%s: %m"
-@@ -16798,7 +16824,7 @@
+@@ -16798,7 +16814,7 @@
  msgid "COLLECT_LTO_WRAPPER must be set"
  msgstr "COLLECT_LTO_WRAPPER muss gesetzt sein"
  
@@ -194003,7 +194380,7 @@ Index: gcc/po/de.po
  #: config/i386/intelmic-mkoffload.c:554 config/nvptx/mkoffload.c:403
  #, gcc-internal-format
  msgid "atexit failed"
-@@ -17009,7 +17035,7 @@
+@@ -17009,7 +17025,7 @@
  msgid "error writing %qs"
  msgstr "Fehler beim Schreiben von %qs"
  
@@ -194012,7 +194389,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "cannot open %s"
  msgstr "»%s« kann nicht geöffnet werden"
-@@ -17089,17 +17115,17 @@
+@@ -17089,17 +17105,17 @@
  msgid "ignoring possibly conflicting option %<-fopt-info-%s%>"
  msgstr "möglicherweise in Konflikt stehende Option %<-fopt-info-%s%> wird ignoriert"
  
@@ -194033,7 +194410,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "-feliminate-dwarf2-dups is broken for C++, ignoring"
  msgstr "-feliminate-dwarf2-dups ist in C++ kaputt, wird ignoriert"
-@@ -17210,12 +17236,12 @@
+@@ -17210,12 +17226,12 @@
  msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
  msgstr "Schreiben von %wu Bit Daten außerhalb der Grenzen des Zielobjekts, Daten wurden auf %wu Bit abgeschnitten"
  
@@ -194048,7 +194425,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%Kcall to %qs declared with attribute warning: %s"
  msgstr "%KAufruf von %qs mit Attributwarnung deklariert: %s"
-@@ -17230,12 +17256,12 @@
+@@ -17230,12 +17246,12 @@
  msgid "the frame size of %wd bytes is larger than %wd bytes"
  msgstr "die Rahmengröße von %wd Bytes überschreitet %wd Bytes"
  
@@ -194063,7 +194440,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "could not close final insn dump file %qs: %m"
  msgstr "endgültige Abzugsdatei %qs der Befehle konnte nicht geschlossen werden: %m"
-@@ -17250,7 +17276,7 @@
+@@ -17250,7 +17266,7 @@
  msgid "comparison is always %d due to width of bit-field"
  msgstr "Vergleich ist immer %d wegen Breite des Bitfeldes"
  
@@ -194072,7 +194449,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "assuming signed overflow does not occur when simplifying range test"
  msgstr "Annahme, dass vorzeichenbehafteter Überlauf nicht auftritt, wenn Bereichsprüfung vereinfacht wird"
-@@ -17280,7 +17306,7 @@
+@@ -17280,7 +17296,7 @@
  msgid "assuming signed overflow does not occur when combining constants around a comparison"
  msgstr "Annahme, dass vorzeichenbehafteter Überlauf nicht auftritt, wenn Konstanten um einen Vergleich kombiniert werden"
  
@@ -194081,7 +194458,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "fold check: original tree changed by fold"
  msgstr "Faltungstest: ursprünglicher Baum durch Faltung geändert"
-@@ -17290,7 +17316,7 @@
+@@ -17290,7 +17306,7 @@
  msgid "total size of local objects too large"
  msgstr "Gesamtgröße der lokalen Objekte zu hoch"
  
@@ -194090,19 +194467,18 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "impossible constraint in %<asm%>"
  msgstr "unmögliche Bedingung in »asm«"
-@@ -17390,62 +17416,68 @@
+@@ -17390,62 +17406,67 @@
  msgid "input file %qs is the same as output file"
  msgstr "Eingabedatei %qs ist dieselbe wie die Ausgabedatei"
  
 -#: gcc.c:4498
 +#: gcc.c:4476
-+#, fuzzy, gcc-internal-format
-+#| msgid "output file not specified"
+ #, gcc-internal-format
 +msgid "output filename may not be empty"
-+msgstr "keine Ausgabedatei angegeben"
++msgstr "Name der Ausgabedatei darf nicht leer sein"
 +
 +#: gcc.c:4501
- #, gcc-internal-format
++#, gcc-internal-format
  msgid "-pipe ignored because -save-temps specified"
  msgstr "-pipe ignoriert, da -save-temps angegeben"
  
@@ -194171,7 +194547,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "spec %qs has invalid %<%%x%c%>"
  msgstr "Spezifikation %qs hat ungültiges %<%%x%c%>"
-@@ -17453,228 +17485,228 @@
+@@ -17453,228 +17474,228 @@
  #. Catch the case where a spec string contains something like
  #. '%{foo:%*}'.  i.e. there is no * in the pattern on the left
  #. hand side of the :.
@@ -194445,7 +194821,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "wrong number of arguments to %%:debug-level-gt"
  msgstr "falsche Anzahl der Argumente für %%:debug-level-gt"
-@@ -17819,9 +17851,9 @@
+@@ -17819,9 +17840,9 @@
  #: gimple-ssa-isolate-paths.c:413 gimple-ssa-isolate-paths.c:531 tree.c:12880
  #: tree.c:12917 c/c-typeck.c:2906 c/c-typeck.c:2990 c/c-typeck.c:9913
  #: c/c-typeck.c:9930 c/gimple-parser.c:1556 c/gimple-parser.c:1564
@@ -194458,7 +194834,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "declared here"
  msgstr "hier deklariert"
-@@ -18236,228 +18268,228 @@
+@@ -18236,228 +18257,228 @@
  msgid "attribute %<fallthrough%> not preceding a case label or default label"
  msgstr "%<fallthrough%>-Attribut ist nicht direkt vor einer case-Marke oder einer default-Marke"
  
@@ -194732,31 +195108,25 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "if this code is reached, the program will abort"
  msgstr "Wenn dieser Code erreicht wird, wird das Programm abgebrochen"
-@@ -18689,8 +18721,9 @@
- msgstr "Typen haben unterschiedliche Anzahl von Parametern"
+@@ -18690,7 +18711,7 @@
  
  #: ipa-devirt.c:1229
--#, gcc-internal-format
+ #, gcc-internal-format
 -msgid "type %qT itself violate the C++ One Definition Rule"
-+#, fuzzy, gcc-internal-format
-+#| msgid "type %qT itself violate the C++ One Definition Rule"
 +msgid "type %qT itself violates the C++ One Definition Rule"
  msgstr "Typ %qT verletzt für sich genommen die One-Definition-Rule von C++"
  
  #: ipa-devirt.c:1235
-@@ -18789,8 +18822,9 @@
- msgstr "ein Feld mit selbem Namen aber unterschiedlichem Typ ist in einer anderen Übersetzungseinheit definiert"
+@@ -18790,7 +18811,7 @@
  
  #: ipa-devirt.c:1576
--#, gcc-internal-format
+ #, gcc-internal-format
 -msgid "fields has different layout in another translation unit"
-+#, fuzzy, gcc-internal-format
-+#| msgid "fields has different layout in another translation unit"
 +msgid "fields have different layout in another translation unit"
  msgstr "Felder haben unterschiedliches Layout in einer anderen Übersetzungseinheit"
  
  #: ipa-devirt.c:1599
-@@ -19171,198 +19205,198 @@
+@@ -19171,198 +19192,198 @@
  msgid "multiple loop axes specified for routine"
  msgstr "Mehrere Schleifenachsen für Routine angegeben"
  
@@ -194994,7 +195364,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "invalid branch to/from %s structured block"
  msgstr "ungültiger Zweig zu/von strukturiertem %s-Block"
-@@ -19447,7 +19481,7 @@
+@@ -19447,7 +19468,7 @@
  msgid "command line option %qs is not supported by this configuration"
  msgstr "Kommandozeilenoption %qs wird von dieser Konfiguration nicht unterstützt"
  
@@ -195003,25 +195373,23 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "missing argument to %qs"
  msgstr "fehlendes Argument für %qs"
-@@ -19603,127 +19637,139 @@
+@@ -19603,127 +19624,137 @@
  msgid "-fsanitize-address-use-after-scope requires -fstack-reuse=none option"
  msgstr "»-fsanitize-address-use-after-scope« erfordert »-fstack-reuse=none«"
  
 -#: opts.c:1410
 +#: opts.c:1012
-+#, fuzzy, gcc-internal-format
-+#| msgid "transactional memory is not supported with non-call exceptions"
+ #, gcc-internal-format
 +msgid "transactional memory is not supported with %<-fsanitize=address%>"
-+msgstr "transaktionsbasierter Speicher wird von Nicht-Aufruf-Ausnahmen nicht unterstützt"
++msgstr "transaktionsbasierter Speicher wird von %<-fsanitize=address%> nicht unterstützt"
 +
 +#: opts.c:1015
-+#, fuzzy, gcc-internal-format
-+#| msgid "transactional memory is not supported with non-call exceptions"
++#, gcc-internal-format
 +msgid "transactional memory is not supported with %<-fsanitize=kernel-address%>"
-+msgstr "transaktionsbasierter Speicher wird von Nicht-Aufruf-Ausnahmen nicht unterstützt"
++msgstr "transaktionsbasierter Speicher wird von %<-fsanitize=kernel-address%> nicht unterstützt"
 +
 +#: opts.c:1417
- #, gcc-internal-format
++#, gcc-internal-format
  msgid "unrecognized include_flags 0x%x passed to print_specific_help"
  msgstr "nicht erkanntes include_flags 0x%x an print_specific_help weitergegeben"
  
@@ -195168,7 +195536,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "-Werror=%s: -%s is not an option that controls warnings"
  msgstr "-Werror=%s: -%s ist keine Option, die Warnungen steuert"
-@@ -20071,7 +20117,7 @@
+@@ -20071,7 +20102,7 @@
  msgid "register of %qD used for multiple global register variables"
  msgstr "Register von %qD für mehrere globale Registervariablen verwendet"
  
@@ -195177,7 +195545,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "conflicts with %qD"
  msgstr "Konflikt mit %qD"
-@@ -20698,12 +20744,12 @@
+@@ -20698,12 +20729,12 @@
  msgid "error closing %s: %m"
  msgstr "Fehler beim Schließen von %s: %m"
  
@@ -195192,7 +195560,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "self-tests are not enabled in this build"
  msgstr "Selbsttests sind in diesem Build nicht eingeschaltet"
-@@ -21638,47 +21684,47 @@
+@@ -21638,47 +21669,47 @@
  msgid "in expansion of macro %qs"
  msgstr "bei Substitution des Makros %qs"
  
@@ -195249,7 +195617,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "BB %i has incorrect fallthru edge"
  msgstr "BB %i hat falsche »fallthru«-Kante"
-@@ -21779,32 +21825,32 @@
+@@ -21779,32 +21810,32 @@
  msgid "target does not support atomic profile update, single mode is selected"
  msgstr "Ziel unterstützt kein Aktualisieren des atomaren Profils, einfacher Modus wird ausgewählt"
  
@@ -195288,7 +195656,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "within this loop"
  msgstr "innerhalb dieser Schleife"
-@@ -22172,11 +22218,11 @@
+@@ -22172,11 +22203,11 @@
  #: c-family/c-attribs.c:2898 c-family/c-attribs.c:2937
  #: c-family/c-attribs.c:3019 c-family/c-attribs.c:3062
  #: c-family/c-attribs.c:3078 c-family/c-attribs.c:3172
@@ -195305,7 +195673,7 @@ Index: gcc/po/de.po
  #: ada/gcc-interface/utils.c:6124 ada/gcc-interface/utils.c:6141
  #: ada/gcc-interface/utils.c:6157 ada/gcc-interface/utils.c:6183
  #: lto/lto-lang.c:241
-@@ -23144,7 +23190,7 @@
+@@ -23144,7 +23175,7 @@
  msgid "type was previously declared %qE"
  msgstr "Typ war vorher als %qE deklariert"
  
@@ -195314,7 +195682,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<transaction_safe_dynamic%> may only be specified for a virtual function"
  msgstr "%<transaction_safe_dynamic%> kann nur für virtuelle Funktionen angegeben werden"
-@@ -23419,7 +23465,7 @@
+@@ -23419,7 +23450,7 @@
  msgid "the compiler can assume that the address of %qD will always evaluate to %<true%>"
  msgstr "der Compiler kann davon ausgehen, dass die Adresse von %qD immer zu %<true%> evaluiert"
  
@@ -195323,7 +195691,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "suggest parentheses around assignment used as truth value"
  msgstr "Um Zuweisung, die als Wahrheitswert verwendet wird, werden Klammern empfohlen"
-@@ -24038,62 +24084,62 @@
+@@ -24038,62 +24069,62 @@
  msgid "extra type qualifiers in format argument (argument %d)"
  msgstr "zusätzliche Typqualifizierer in Format-Argument (Argument %d)"
  
@@ -195398,7 +195766,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "strftime formats cannot format arguments"
  msgstr "strftime-Formate können keine Argumente formatieren"
-@@ -24195,7 +24241,7 @@
+@@ -24195,7 +24226,7 @@
  msgid "repeated %<@%> before Objective-C string"
  msgstr "wiederholtes %<@%> vor Objective-C-Zeichenkette"
  
@@ -195407,7 +195775,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "unsupported non-standard concatenation of string literals"
  msgstr "nicht unterstützte Nicht-Standard-Verkettung von Zeichenkettenliteralen"
-@@ -24225,7 +24271,7 @@
+@@ -24225,7 +24256,7 @@
  msgid "%<#pragma omp atomic capture%> uses two different variables for memory"
  msgstr "%<#pragma omp atomic capture%> verwendet zwei unterschiedliche Variablen für Speicher"
  
@@ -195416,7 +195784,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "invalid type for iteration variable %qE"
  msgstr "ungültiger Typ für Schleifenvariable %qE"
-@@ -24240,22 +24286,22 @@
+@@ -24240,22 +24271,22 @@
  msgid "%qE is not initialized"
  msgstr "%qE ist nicht initialisiert"
  
@@ -195443,7 +195811,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "invalid increment expression"
  msgstr "Erhöhungsausdruck ungültig"
-@@ -24800,8 +24846,8 @@
+@@ -24800,8 +24831,8 @@
  msgid "wrong type argument to %s"
  msgstr "Argument falschen Typs für %s"
  
@@ -195454,7 +195822,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "overflow in constant expression"
  msgstr "Überlauf in Konstanten-Ausdruck"
-@@ -25469,7 +25515,7 @@
+@@ -25469,7 +25500,7 @@
  msgid "this condition has identical branches"
  msgstr "diese Bedingung hat identische Zweige"
  
@@ -195463,7 +195831,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<_Cilk_spawn%> may only be used inside a function"
  msgstr "%<_Cilk_spawn%> kann nur innerhalb einer Funktion verwendet werden"
-@@ -25629,7 +25675,7 @@
+@@ -25629,7 +25660,7 @@
  msgid "-march=%s: unsupported ISA substring %qs"
  msgstr "-march=%s: nicht unterstützte ISA-Teilzeichenkette %qs"
  
@@ -195472,7 +195840,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "unknown -mdebug-%s switch"
  msgstr "unbekannter Schalter -mdebug-%s"
-@@ -25953,7 +25999,7 @@
+@@ -25953,7 +25984,7 @@
  msgid "%Kargument %d must be a constant immediate"
  msgstr "%KArgument %d muss eine direkt angegebene Konstante sein"
  
@@ -195481,7 +195849,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%Klane index must be a constant immediate"
  msgstr "%KSpurindex muss eine direkt angegebene Konstante sein"
-@@ -26035,7 +26081,7 @@
+@@ -26035,7 +26066,7 @@
  msgid "unknown value %qs for -mtune"
  msgstr "unbekannter Wert %qs für -mtune"
  
@@ -195490,7 +195858,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "switch -mcpu=%s conflicts with -march=%s switch"
  msgstr "Schalter -mcpu=%s steht mit dem Schalter -march=%s in Konflikt"
-@@ -26133,9 +26179,9 @@
+@@ -26133,9 +26164,9 @@
  msgid "target %s %s=%s is not valid"
  msgstr "Ziel»%s« %s=%s ist ungültig"
  
@@ -195503,7 +195871,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "attribute %<target%> argument not a string"
  msgstr "Argument für Attribut %<target%> ist keine Zeichenkette"
-@@ -26224,7 +26270,7 @@
+@@ -26224,7 +26255,7 @@
  msgstr "Falscher Wert %qs für -mmemory-latency"
  
  #: config/alpha/alpha.c:6663 config/alpha/alpha.c:6666 config/arc/arc.c:5816
@@ -195512,7 +195880,7 @@ Index: gcc/po/de.po
  #: config/tilepro/tilepro.c:3106
  #, gcc-internal-format
  msgid "bad builtin fcode"
-@@ -26400,234 +26446,234 @@
+@@ -26400,234 +26431,234 @@
  msgid "insn addresses not freed"
  msgstr "Befehlsadressen nicht freigegeben"
  
@@ -195794,7 +196162,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "target CPU does not support unaligned accesses"
  msgstr "Ziel-CPU unterstützt keine unausgerichteten Zugriffe"
-@@ -26634,141 +26680,141 @@
+@@ -26634,141 +26665,141 @@
  
  #. To support this we need to be able to parse FPU feature options
  #. from the architecture string.
@@ -195969,7 +196337,7 @@ Index: gcc/po/de.po
  #: config/sh/sh.c:8436 config/sh/sh.c:8507 config/sh/sh.c:8530
  #: config/spu/spu.c:3683 config/stormy16/stormy16.c:2212
  #: config/v850/v850.c:2083 config/visium/visium.c:705
-@@ -26776,74 +26822,79 @@
+@@ -26776,74 +26807,79 @@
  msgid "%qE attribute only applies to functions"
  msgstr "Attribut %qE bezieht sich nur auf Funktionen"
  
@@ -196012,7 +196380,7 @@ Index: gcc/po/de.po
 +#: config/arm/arm.c:8656
 +#, gcc-internal-format
 +msgid "accessing thread-local storage is not currently supported with -mpure-code or -mslow-flash-data"
-+msgstr ""
++msgstr "Zugriff auf threadlokalen Speicher wird derzeit mit %<-mpure-code%> oder %<-mslow-flash-data%> nicht unterstützt"
 +
  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79871
 -#: config/arm/arm.c:12245
@@ -196063,7 +196431,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "invalid fpu for attribute(target(\"%s\"))"
  msgstr "ungültige FPU für »attribute(target(\"%s\"))«"
-@@ -26851,13 +26902,13 @@
+@@ -26851,13 +26887,13 @@
  #. This doesn't really make sense until we support
  #. general dynamic selection of the architecture and all
  #. sub-features.
@@ -196080,7 +196448,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "attribute(target(\"%s\")) is unknown"
  msgstr "attribute(target(\"%s\")) ist unbekannt"
-@@ -26951,164 +27002,177 @@
+@@ -26951,164 +26987,175 @@
  msgid "function attributes %qs and %qs have no effect on %qs function"
  msgstr "Funktionsattribute %qs und %qs haben keine Auswirkung auf Funktion %qs"
  
@@ -196098,19 +196466,18 @@ Index: gcc/po/de.po
  
  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79883
 -#: config/avr/avr.c:1084
--#, gcc-internal-format
--msgid "%qs appears to be a misspelled %s handler, missing __vector prefix"
 +#: config/avr/avr.c:1085
-+#, fuzzy, gcc-internal-format
-+#| msgid "%qs appears to be a misspelled %s handler, missing __vector prefix"
+ #, gcc-internal-format
+-msgid "%qs appears to be a misspelled %s handler, missing __vector prefix"
+-msgstr "%qs scheint ein falsch geschriebener %qs-Handler zu sein, __vector-Präfix fehlt"
 +msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
- msgstr "%qs scheint ein falsch geschriebener %qs-Handler zu sein, __vector-Präfix fehlt"
++msgstr "%qs scheint ein falsch geschriebener %qs-Handler zu sein, das Präfix %<__vector%> fehlt"
  
 -#: config/avr/avr.c:1311
 +#: config/avr/avr.c:1098
  #, gcc-internal-format
 +msgid "%qs is a reserved indentifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
-+msgstr ""
++msgstr "%qs ist in der AVR-LibC ein reservierter Bezeichner. Erwägen Sie %<#include <avr/interrupt.h>%> vor der Benutzung des Makros %qs"
 +
 +#: config/avr/avr.c:1327
 +#, gcc-internal-format
@@ -196242,13 +196609,12 @@ Index: gcc/po/de.po
 -#: config/avr/avr.c:10138
 +#. This might happen with C++ if stuff needs constructing.
 +#: config/avr/avr.c:10149
-+#, fuzzy, gcc-internal-format
-+#| msgid "uninitialized variable %q+D put into program memory area"
+ #, gcc-internal-format
 +msgid "variable %q+D with dynamic initialization put into program memory area"
-+msgstr "nicht initialisierte Variable %q+D in Programmspeicherbereich platziert"
++msgstr "dynamisch initialisierte Variable %q+D in Programmspeicherbereich platziert"
 +
 +#: config/avr/avr.c:10160
- #, gcc-internal-format
++#, gcc-internal-format
  msgid "uninitialized variable %q+D put into program memory area"
  msgstr "nicht initialisierte Variable %q+D in Programmspeicherbereich platziert"
  
@@ -196293,7 +196659,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "rounding result will always be 0"
  msgstr "Rundungsergebnis wird immer 0 sein"
-@@ -27391,12 +27455,12 @@
+@@ -27391,12 +27438,12 @@
  msgid "invalid IACC argument"
  msgstr "ungültiges IACC-Argument"
  
@@ -196308,7 +196674,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "constant argument out of range for %qs"
  msgstr "Konstantes Argument außerhalb des Wertebereiches für %qs"
-@@ -27574,7 +27638,7 @@
+@@ -27574,7 +27621,7 @@
  msgid "code model %qs not supported in x32 mode"
  msgstr "Codemodell %qs wird im x32-Modus nicht unterstützt"
  
@@ -196317,7 +196683,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "code model %s does not support PIC mode"
  msgstr "Codemodell %s unterstützt keinen PIC-Modus"
-@@ -27704,287 +27768,287 @@
+@@ -27704,287 +27751,287 @@
  msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
  msgstr "%<target(\"rtd\")%> wird im 64-Bit-Modus ignoriert"
  
@@ -196662,7 +197028,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "-fsplit-stack does not support 2 register parameters for a nested function"
  msgstr "-fsplit-stack unterstützt nicht 2 Registerparameter für eine geschachtelte Funktion"
-@@ -27991,297 +28055,297 @@
+@@ -27991,297 +28038,297 @@
  
  #. FIXME: We could make this work by pushing a register
  #. around the addition and comparison.
@@ -197019,7 +197385,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "Pointer Checker requires MPX support on this target. Use -mmpx options to enable MPX."
  msgstr "Zeigerprüfer benötigt MPX-Unterstützung auf diesem Ziel. Verwenden Sie »-mmpx«, um MPX einzuschalten."
-@@ -28401,7 +28465,7 @@
+@@ -28401,7 +28448,7 @@
  msgid "argument %qd is not a constant"
  msgstr "Argument %qd ist keine Konstante"
  
@@ -197028,7 +197394,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "PRINT_OPERAND_ADDRESS, null pointer"
  msgstr "PRINT_OPERAND_ADDRESS, Null-Zeiger"
-@@ -28411,7 +28475,7 @@
+@@ -28411,7 +28458,7 @@
  msgid "PRINT_OPERAND: Unknown punctuation '%c'"
  msgstr "PRINT_OPERAND: Unbekanntes Zeichen '%c'"
  
@@ -197037,7 +197403,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "PRINT_OPERAND null pointer"
  msgstr "PRINT_OPERAND Null-Zeiger"
-@@ -28512,7 +28576,7 @@
+@@ -28512,7 +28559,7 @@
  msgid "interrupt_thread is available only on fido"
  msgstr "interrupt_thread ist nur auf Fido verfügbar"
  
@@ -197046,7 +197412,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "stack limit expression is not supported"
  msgstr "Ausdruck der Stapelgrenze wird nicht unterstützt"
-@@ -29019,8 +29083,8 @@
+@@ -29019,8 +29066,8 @@
  msgid "MSP430 builtin functions only work inside interrupt handlers"
  msgstr "eingebaute MSP430-Funktionen sind nur innerhalb von Interrupt-Handlern einsetzbar"
  
@@ -197057,7 +197423,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "bad builtin code"
  msgstr "Falscher eingebauter Code"
-@@ -29271,27 +29335,27 @@
+@@ -29271,27 +29318,27 @@
  msgid "PTX does not support weak declarations (only weak definitions)"
  msgstr "PTX unterstützt keine schwachen Deklarationen (nur schwache Definitionen)"
  
@@ -197090,7 +197456,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "using num_workers (%d), ignoring %d"
  msgstr "num_workers (%d) wird verwendet, %d wird ignoriert"
-@@ -29316,7 +29380,7 @@
+@@ -29316,7 +29363,7 @@
  msgid "-g option disabled"
  msgstr "Option -g ausgeschaltet"
  
@@ -197099,7 +197465,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "alignment (%u) for %s exceeds maximum alignment for global common data.  Using %u"
  msgstr "Ausrichtung (%u) für »%s« überschreitet maximale Ausrichtung für globale gemeinsame Daten. Es wird %u verwendet"
-@@ -29451,157 +29515,157 @@
+@@ -29451,157 +29498,157 @@
  msgid "junk at end of #pragma longcall"
  msgstr "Ausschuss am Ende von #pragma longcall"
  
@@ -197288,7 +197654,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "-mstring is not supported on little endian systems"
  msgstr "-mstring wird auf »little endian«-Systemen nicht unterstützt"
-@@ -29608,67 +29672,67 @@
+@@ -29608,67 +29655,67 @@
  
  #. Enforce that none of the ISA_3_0_MASKS_SERVER flags
  #. were explicitly cleared.
@@ -197369,7 +197735,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "-mtoc-fusion requires -mpower8-fusion"
  msgstr "-mtoc-fusion benötigt -mpower8-fusion"
-@@ -29677,514 +29741,519 @@
+@@ -29677,514 +29724,519 @@
  #. error messages.  However, if users have managed to select
  #. power9-fusion without selecting power8-fusion, they
  #. already know about undocumented flags.
@@ -197667,7 +198033,7 @@ Index: gcc/po/de.po
 +#: config/rs6000/rs6000.c:15598
 +#, gcc-internal-format, gfc-internal-format
 +msgid "%s needs GLIBC (2.23 and newer) that exports hardware capability bits"
-+msgstr ""
++msgstr "%s erfordert GLIBC (2.23 oder neuer), die Hardware-Fähigkeits-Bits exportiert"
 +
 +#: config/rs6000/rs6000.c:15651
  #, gcc-internal-format
@@ -197991,7 +198357,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "-mno-power9-vector turns off -mpower9-dform"
  msgstr "-mno-power9-vector schaltet -mpower9-dform aus"
-@@ -30371,6 +30440,7 @@
+@@ -30371,6 +30423,7 @@
  msgstr "-mcall-aixdesc ist unverträglich mit -mabi=elfv2"
  
  #: config/rs6000/freebsd64.h:113 config/rs6000/linux64.h:135
@@ -197999,7 +198365,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "-m64 requires a PowerPC64 cpu"
  msgstr "-m64 benötigt eine PowerPC64-CPU"
-@@ -30462,7 +30532,7 @@
+@@ -30462,7 +30515,7 @@
  msgid "builtin vec_step can only be used on vector types."
  msgstr "das eingebaute vec_step kann nur mit Vektortypen verwendet werden"
  
@@ -198008,31 +198374,29 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "constant value required for builtin %qF argument %d"
  msgstr "Konstanter Wert erwartet für Argument %2$d der eingebauten Funktion %1$qF"
-@@ -30488,8 +30558,9 @@
- msgstr "%qF erfordert -mvx"
+@@ -30489,8 +30542,8 @@
  
  #: config/s390/s390-c.c:889
--#, gcc-internal-format
+ #, gcc-internal-format
 -msgid "%qF requires -march=arch12 or higher"
-+#, fuzzy, gcc-internal-format
-+#| msgid "%qF requires -march=arch12 or higher"
+-msgstr "%qF erfordert -march=arch12 oder höher"
 +msgid "%qF requires z14 or higher"
- msgstr "%qF erfordert -march=arch12 oder höher"
++msgstr "%qF erfordert z14 oder höher"
  
  #: config/s390/s390-c.c:903
-@@ -30508,8 +30579,9 @@
- msgstr "mehrdeutiges Überladen für intrinsisches %qs"
+ #, gcc-internal-format
+@@ -30509,8 +30562,8 @@
  
  #: config/s390/s390-c.c:966
--#, gcc-internal-format
+ #, gcc-internal-format
 -msgid "%qs matching variant requires -march=arch12 or higher"
-+#, fuzzy, gcc-internal-format
-+#| msgid "%qs matching variant requires -march=arch12 or higher"
+-msgstr "passende %qs-Variante erfordert -march=arch12 oder höher"
 +msgid "%qs matching variant requires z14 or higher"
- msgstr "passende %qs-Variante erfordert -march=arch12 oder höher"
++msgstr "passende %qs-Variante erfordert z14 oder höher"
  
  #: config/s390/s390-c.c:972
-@@ -30523,161 +30595,162 @@
+ #, gcc-internal-format
+@@ -30523,161 +30576,161 @@
  msgstr "Konstantes Argument %d für eingebautes %qF außerhalb des Wertebereiches für Zieltyp"
  
  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79846
@@ -198062,13 +198426,12 @@ Index: gcc/po/de.po
  msgstr "eingebautes %qF wird nur mit -mvx unterstützt (standardmäßig für -march=z13 und höher eingeschaltet)"
  
 -#: config/s390/s390.c:850
--#, gcc-internal-format
--msgid "Builtin %qF requires arch12 or higher."
 +#: config/s390/s390.c:853
-+#, fuzzy, gcc-internal-format
-+#| msgid "Builtin %qF requires arch12 or higher."
+ #, gcc-internal-format
+-msgid "Builtin %qF requires arch12 or higher."
+-msgstr "Eingebaute %qF erfordert arch12 oder höher."
 +msgid "Builtin %qF requires z14 or higher."
- msgstr "Eingebaute %qF erfordert arch12 oder höher."
++msgstr "Eingebaute %qF erfordert z14 oder höher."
  
 -#: config/s390/s390.c:869
 +#: config/s390/s390.c:872
@@ -198228,7 +198591,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "value %qs is not supported by attribute %<target%>"
  msgstr "Wert %qs wird von Attribut %<target%> nicht unterstützt"
-@@ -30734,27 +30807,28 @@
+@@ -30734,27 +30787,27 @@
  msgid "-mrelax is only supported for RTP PIC"
  msgstr "-mrelax wird nur für RTP PIC unterstützt"
  
@@ -198251,11 +198614,9 @@ Index: gcc/po/de.po
  msgstr "Falscher Wert (%s) für Schalter -mcmodel="
  
 -#: config/sparc/sparc.c:1425
--#, gcc-internal-format
--msgid "-mcmodel= is not supported on 32 bit systems"
 +#: config/sparc/sparc.c:1541
-+#, fuzzy, gcc-internal-format
-+#| msgid "-mcmodel= is not supported on 32 bit systems"
+ #, gcc-internal-format
+-msgid "-mcmodel= is not supported on 32 bit systems"
 +msgid "-mcmodel= is not supported on 32-bit systems"
  msgstr "-mcmodel= wird auf 32-Bit-Systemen nicht unterstützt"
  
@@ -198264,7 +198625,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "-fcall-saved-REG is not supported for out registers"
  msgstr "-fcall-saved-REG wird für Ausgaberegister nicht unterstützt"
-@@ -31039,22 +31113,22 @@
+@@ -31039,22 +31092,22 @@
  msgid "invalid constant in %<#pragma %s%>"
  msgstr "ungültige Konstante in %<#pragma %s%>"
  
@@ -198291,7 +198652,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "only uninitialized variables can be placed in a .bss section"
  msgstr "Nur uninitialisierte Variablen können in einem .bss-Abschnitt platziert werden"
-@@ -31140,7 +31214,7 @@
+@@ -31140,7 +31193,7 @@
  msgid "could not read the BRIG file"
  msgstr "BRIG-Datei konnte nicht gelesen werden"
  
@@ -198300,7 +198661,7 @@ Index: gcc/po/de.po
  #: cp/cp-array-notation.c:250
  #, gcc-internal-format
  msgid "Invalid builtin arguments"
-@@ -31542,9 +31616,9 @@
+@@ -31542,9 +31595,9 @@
  msgstr "Marke %qD hier definiert"
  
  #: c/c-decl.c:3601 c/c-decl.c:3872 c/c-typeck.c:8091 cp/class.c:1480
@@ -198313,7 +198674,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%qD declared here"
  msgstr "%qD hier deklariert"
-@@ -31677,7 +31751,7 @@
+@@ -31677,7 +31730,7 @@
  msgid "%<[*]%> not allowed in other than function prototype scope"
  msgstr "%<[*]%> außerhalb des Bereichs des Funktionsprototypen nicht erlaubt"
  
@@ -198322,7 +198683,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%q+D in declare target directive does not have mappable type"
  msgstr "%q+D in »declare target«-Direktive hat keinen zuordenbaren Typ"
-@@ -32722,7 +32796,7 @@
+@@ -32722,7 +32775,7 @@
  msgid "two or more data types in declaration specifiers"
  msgstr "zwei oder mehr Datentypen in Deklaration"
  
@@ -198331,7 +198692,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<long long long%> is too long for GCC"
  msgstr "%<long long long%> ist für GCC zu lang"
-@@ -32862,17 +32936,17 @@
+@@ -32862,17 +32915,17 @@
  msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
  msgstr "ISO-C unterstützt nicht %<double complex%> bedeutendes einfaches %<complex%>"
  
@@ -198352,7 +198713,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
  msgstr "%<#pragma omp declare reduction%>-Initialisierung verweist auf Variable %qD, die weder %<omp_priv%> noch %<omp_orig%> ist"
-@@ -32922,7 +32996,7 @@
+@@ -32922,7 +32975,7 @@
  msgid "version control conflict marker in file"
  msgstr "Konfliktmarker für Versionskontrolle in Datei"
  
@@ -198361,7 +198722,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "expected end of line"
  msgstr "Zeilenende erwartet"
-@@ -32963,7 +33037,7 @@
+@@ -32963,7 +33016,7 @@
  msgstr "unbekannter Typname: %qE"
  
  #: c/c-parser.c:1656 c/c-parser.c:10365 c/c-parser.c:15447 c/c-parser.c:15875
@@ -198370,7 +198731,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "expected declaration specifiers"
  msgstr "Deklarationsspezifizierer erwartet"
-@@ -32978,7 +33052,7 @@
+@@ -32978,7 +33031,7 @@
  msgid "expected %<;%>, identifier or %<(%>"
  msgstr "%<;%>, Bezeichner oder %<(%> erwartet"
  
@@ -198379,7 +198740,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "prefix attributes are ignored for methods"
  msgstr "Präfixattribute werden für Methoden ignoriert"
-@@ -32993,8 +33067,8 @@
+@@ -32993,8 +33046,8 @@
  msgid "unexpected attribute"
  msgstr "unerwartetes Attribut"
  
@@ -198390,7 +198751,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<fallthrough%> attribute not followed by %<;%>"
  msgstr "%<fallthrough%>-Attribut ohne darauffolgendes %<;%>"
-@@ -33032,7 +33106,7 @@
+@@ -33032,7 +33085,7 @@
  msgid "%<__auto_type%> may only be used with a single declarator"
  msgstr "%<__auto_type%> kann nur mit einem einzelnen Deklarator verwendet werden"
  
@@ -198399,7 +198760,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "expected %<,%> or %<;%>"
  msgstr "%<,%> oder %<;%> erwartet"
-@@ -33060,7 +33134,7 @@
+@@ -33060,7 +33113,7 @@
  msgid "ISO C90 does not support %<_Static_assert%>"
  msgstr "ISO-C90 unterstützt nicht %<_Static_assert%>"
  
@@ -198408,7 +198769,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "expected string literal"
  msgstr "Zeichenkettenliteral erwartet"
-@@ -33124,14 +33198,14 @@
+@@ -33124,14 +33177,14 @@
  #: c/c-parser.c:10030 c/c-parser.c:10083 c/c-parser.c:10099 c/c-parser.c:10145
  #: c/c-parser.c:10737 c/c-parser.c:10778 c/c-parser.c:12750 c/c-parser.c:12984
  #: c/c-parser.c:14838 c/c-parser.c:17638 c/c-parser.c:17967
@@ -198427,7 +198788,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "comma at end of enumerator list"
  msgstr "Komma am Ende der Aufzählungsliste"
-@@ -33266,7 +33340,7 @@
+@@ -33266,7 +33319,7 @@
  msgid "expected %<}%> before %<else%>"
  msgstr "%<}%> vor %<else%> erwartet"
  
@@ -198436,7 +198797,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<else%> without a previous %<if%>"
  msgstr "%<else%> ohne vorheriges %<if%>"
-@@ -33291,12 +33365,12 @@
+@@ -33291,12 +33344,12 @@
  msgid "a label can only be part of a statement and a declaration is not a statement"
  msgstr "eine Marke kann nur Teil einer Anweisung sein, und eine Deklaration ist keine Anweisung"
  
@@ -198451,7 +198812,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "-fcilkplus must be enabled to use %<_Cilk_sync%>"
  msgstr "-fcilkplus muss eingeschaltet sein, um %<_Cilk_sync%> zu verwenden"
-@@ -33310,17 +33384,17 @@
+@@ -33310,17 +33363,17 @@
  #. c_parser_skip_until_found stops at a closing nesting
  #. delimiter without consuming it, but here we need to consume
  #. it to proceed further.
@@ -198472,7 +198833,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "suggest braces around empty body in an %<else%> statement"
  msgstr "geschweifte Klammern um leeren Körper in einer %<else%>-Anweisung empfohlen"
-@@ -33330,7 +33404,7 @@
+@@ -33330,7 +33383,7 @@
  msgid "if statement cannot contain %<Cilk_spawn%>"
  msgstr "if-Anweisung darf kein %<Cilk_spawn%> enthalten"
  
@@ -198481,7 +198842,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "suggest explicit braces to avoid ambiguous %<else%>"
  msgstr "es wird empfohlen, explizite geschweifte Klammern zu setzen, um mehrdeutiges %<else%> zu vermeiden"
-@@ -33350,7 +33424,7 @@
+@@ -33350,7 +33403,7 @@
  msgid "invalid iterating variable in fast enumeration"
  msgstr "ungültiges Schleifenvariable in schneller Aufzählung"
  
@@ -198490,7 +198851,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "missing loop condition in loop with %<GCC ivdep%> pragma"
  msgstr "fehlende Schleifenbedingung in Schleife mit %<GCC ivdep%>-Pragma"
-@@ -33526,17 +33600,17 @@
+@@ -33526,17 +33579,17 @@
  msgid "%<__builtin_complex%> operands of different types"
  msgstr "Operanden von %<__builtin_complex%> unterschiedlichen Typs"
  
@@ -198511,7 +198872,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "consecutive %<_Cilk_spawn%> keywords are not permitted"
  msgstr "aufeinanderfolgende %<_Cilk_spawn%>-Schlüsselwörter sind nicht erlaubt"
-@@ -33591,61 +33665,61 @@
+@@ -33591,61 +33644,61 @@
  msgid "no type or storage class may be specified here,"
  msgstr "hier darf kein Typ oder Speicherklasse angegeben werden,"
  
@@ -198587,7 +198948,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<#pragma GCC pch_preprocess%> must be first"
  msgstr "%<#pragma GCC pch_preprocess%> muss zuerst kommen"
-@@ -33660,12 +33734,12 @@
+@@ -33660,12 +33713,12 @@
  msgid "%<#pragma grainsize%> must be inside a function"
  msgstr "%<#pragma grainsize%> muss innerhalb einer Funktion sein"
  
@@ -198602,7 +198963,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "expected integer expression before ')'"
  msgstr "Ganzzahlausdruck vor »)« erwartet"
-@@ -33680,53 +33754,53 @@
+@@ -33680,53 +33733,53 @@
  msgid "%qD is not a variable"
  msgstr "%qD ist keine Variable"
  
@@ -198667,7 +199028,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
  msgstr "wenn eine der %<if%>-Klauseln einen Modifizierer verwendet, müssen alle %<if%>-Klauseln Modifizierer verwenden"
-@@ -33754,22 +33828,22 @@
+@@ -33754,22 +33807,22 @@
  msgid "%<num_tasks%> value must be positive"
  msgstr "Wert von %<num_tasks%> muss positiv sein"
  
@@ -198694,7 +199055,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "expected %<scalar%>"
  msgstr "%<scalar%> erwartet"
-@@ -33779,57 +33853,57 @@
+@@ -33779,57 +33832,57 @@
  msgid "%<num_workers%> value must be positive"
  msgstr "Wert von %<num_workers%> muss positiv sein"
  
@@ -198763,7 +199124,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "invalid schedule kind"
  msgstr "ungültige Ablaufart"
-@@ -33844,17 +33918,17 @@
+@@ -33844,17 +33897,17 @@
  msgid "%<num_teams%> value must be positive"
  msgstr "Wert von %<num_teams%> muss positiv sein"
  
@@ -198784,7 +199145,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "using parameters for %<linear%> step is not supported yet"
  msgstr "das Verwenden von Parametern für den %<linear%>-Schritt wird noch nicht unterstützt"
-@@ -33874,17 +33948,17 @@
+@@ -33874,17 +33927,17 @@
  msgid "%<simdlen%> clause expression must be positive constant integer expression"
  msgstr "Ausdruck der %<simdlen%>-Klausel erfordert positiven konstanten Ganzzahlausdruck"
  
@@ -198805,7 +199166,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "invalid dist_schedule kind"
  msgstr "ungültige »dist_schedule«-Art"
-@@ -33894,67 +33968,67 @@
+@@ -33894,67 +33947,67 @@
  msgid "invalid proc_bind kind"
  msgstr "ungültige »proc_bind«-Art"
  
@@ -198886,7 +199247,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<#pragma acc %s data%> has no data movement clause"
  msgstr "%<#pragma acc %s data%> hat keine Datenverschiebeklausel"
-@@ -33969,7 +34043,7 @@
+@@ -33969,7 +34022,7 @@
  msgid "expected function name"
  msgstr "Funktionsname erwartet"
  
@@ -198895,7 +199256,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%qD does not refer to a function"
  msgstr "%qD bezeichnet keine Funktion"
-@@ -33979,42 +34053,42 @@
+@@ -33979,42 +34032,42 @@
  msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
  msgstr "%<#pragma acc routine%> muss direkt vor einer Funktionsdeklaration oder -definition auftreten"
  
@@ -198946,7 +199307,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
  msgstr "%<#pragma omp atomic capture%> verwendet zwei unterschiedliche Ausdrücke für Speicher"
-@@ -34024,27 +34098,27 @@
+@@ -34024,27 +34077,27 @@
  msgid "expected %<(%> or end of line"
  msgstr "%<(%> oder Zeilenende erwartet"
  
@@ -198979,7 +199340,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "expected iteration declaration or initialization"
  msgstr "Schleifendeklaration oder Initialisierung erwartet"
-@@ -34054,72 +34128,72 @@
+@@ -34054,72 +34107,72 @@
  msgid "not enough perfectly nested loops"
  msgstr "nicht genügend perfekt geschachtelte Schleifen"
  
@@ -199066,7 +199427,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
  msgstr "%<#pragma omp target%> mit Zuordnungstyp außer %<to%>, %<from%>, %<tofrom%> oder %<alloc%> an %<map%>-Klausel"
-@@ -34134,7 +34208,7 @@
+@@ -34134,7 +34187,7 @@
  msgid "%<#pragma omp declare simd%> must be followed by function declaration or definition"
  msgstr "%<#pragma omp declare simpl%> muss vor der Deklaration oder Definition einer Funktion auftreten"
  
@@ -199075,7 +199436,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<#pragma omp declare simd%> or %<simd%> attribute cannot be used in the same function marked as a Cilk Plus SIMD-enabled function"
  msgstr "%<#pragma omp declare simd%> oder %<simd%>-Attribut darf nicht in derselben Funktion verwendet werden, die auch als Cilk-Plus-SIMD-aktivierte Funktion markiert ist"
-@@ -34144,32 +34218,32 @@
+@@ -34144,32 +34197,32 @@
  msgid "%<#pragma omp declare simd%> not immediately followed by a function declaration or definition"
  msgstr "hinter %<#pragma omp declare simd%> muss direkt eine Funktionsdeklaration oder -definition stehen"
  
@@ -199114,7 +199475,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%>"
  msgstr "%<#pragma opt end declare target%> ohne zugehöriges %<#pragma omp declare target%>"
-@@ -34224,22 +34298,22 @@
+@@ -34224,22 +34277,22 @@
  msgid "one of the initializer call arguments should be %<&omp_priv%>"
  msgstr "eins der Argumente für den Initialisierungsaufruf sollte %<&omp_priv%> sein"
  
@@ -199141,7 +199502,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<threadprivate%> %qE has incomplete type"
  msgstr "%<threadprivate%> %qE hat unvollständigen Typen"
-@@ -34254,52 +34328,52 @@
+@@ -34254,52 +34307,52 @@
  msgid "pragma simd must be inside a function"
  msgstr "»pragma simd« muss innerhalb einer Funktion sein"
  
@@ -199204,7 +199565,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
  msgstr "%<__transaction_cancel%> nicht innerhalb von %<__transaction_atomic%>"
-@@ -34309,7 +34383,7 @@
+@@ -34309,7 +34362,7 @@
  msgid "base of array section must be pointer or array type"
  msgstr "Basis des Arrayabschnitts muss Zeiger- oder Arraytyp sein"
  
@@ -199213,7 +199574,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "expected %<:%> or numeral"
  msgstr "%<:%> oder Zahl erwartet"
-@@ -35025,7 +35099,7 @@
+@@ -35025,7 +35078,7 @@
  msgid "initialization left-hand side might be a candidate for a format attribute"
  msgstr "Linke-Initialisierung könnte Kandidat für Formatattribut sein"
  
@@ -199222,7 +199583,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "return type might be a candidate for a format attribute"
  msgstr "Rückgabetyp könnte Kandidat für Formatattribut sein"
-@@ -35353,7 +35427,7 @@
+@@ -35353,7 +35406,7 @@
  msgid "ISO C forbids %<goto *expr;%>"
  msgstr "ISO-C verbietet %<goto *expr;%>"
  
@@ -199231,7 +199592,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "function declared %<noreturn%> has a %<return%> statement"
  msgstr "als %<noreturn%> deklarierte Funktion hat %<return%>-Anweisung"
-@@ -35363,7 +35437,7 @@
+@@ -35363,7 +35416,7 @@
  msgid "array notation expression cannot be used as a return value"
  msgstr "Arraynotations-Ausdruck kann nicht als Rückgabewert verwendet werden"
  
@@ -199240,7 +199601,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "use of %<_Cilk_spawn%> in a return statement is not allowed"
  msgstr "%<_Cilk_spawn%> darf nicht in einer return-Anweisung verwendet werden"
-@@ -35388,7 +35462,7 @@
+@@ -35388,7 +35441,7 @@
  msgid "function returns address of label"
  msgstr "Funktion liefert Adresse einer Sprungmarke zurück"
  
@@ -199249,7 +199610,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "switch quantity not an integer"
  msgstr "switch-Größe ist keine Ganzzahl"
-@@ -35403,7 +35477,7 @@
+@@ -35403,7 +35456,7 @@
  msgid "case label is not an integer constant expression"
  msgstr "»case«-Marke ist kein konstanter Ganzzahlausdruck"
  
@@ -199258,7 +199619,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "case label not within a switch statement"
  msgstr "case-Marke nicht innerhalb einer switch-Anweisung"
-@@ -35423,17 +35497,17 @@
+@@ -35423,17 +35476,17 @@
  msgid "rank-mismatch between if-statement%'s condition and the else-block"
  msgstr "Rangkonflikt zwischen der Bedingung der if-Anweisung und dem else-Block"
  
@@ -199279,7 +199640,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "break statement used with OpenMP for loop"
  msgstr "break-Anweisung mit OpenMP für Schleife verwendet"
-@@ -35443,7 +35517,7 @@
+@@ -35443,7 +35496,7 @@
  msgid "break statement within %<#pragma simd%> loop body"
  msgstr "break-Anweisung innerhalb einer %<#pragma simd%>-Schleife"
  
@@ -199288,7 +199649,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "continue statement within %<#pragma simd%> loop body"
  msgstr "continue-Anweisung innerhalb einer %<#pragma simd%>-Schleife"
-@@ -35549,12 +35623,12 @@
+@@ -35549,12 +35602,12 @@
  msgid "used vector type where scalar is required"
  msgstr "Vektortyp verwendet, wo Skalars benötigt wird"
  
@@ -199303,7 +199664,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
  msgstr "%<#pragma omp cancellation point%> muss eine der Klauseln %<parallel%>, %<for%>, %<sections%> oder %<taskgroup%> angeben"
-@@ -35564,25 +35638,25 @@
+@@ -35564,25 +35617,25 @@
  msgid "%<_Atomic%> %qE in %qs clause"
  msgstr "%<_Atomic%>-Ausdruck %qE in %qs-Klausel"
  
@@ -199336,7 +199697,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%qE is not a variable in %qs clause"
  msgstr "%qE in %qs-Klausel muss eine Variable sein"
-@@ -35593,70 +35667,70 @@
+@@ -35593,70 +35646,70 @@
  msgstr "%<_Atomic%>-Deklaration %qD in %qs-Klausel"
  
  #: c/c-typeck.c:12243 c/c-typeck.c:13461 c/c-typeck.c:13563
@@ -199422,7 +199783,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%qE does not have pointer or array type"
  msgstr "%qE hat weder Zeiger- noch Arraytyp"
-@@ -35676,7 +35750,7 @@
+@@ -35676,7 +35729,7 @@
  msgid "%qE has invalid type for %<reduction(%s)%>"
  msgstr "%qE hat ungültigen Typ für %<reduction(%s)%>"
  
@@ -199431,7 +199792,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "user defined reduction not found for %qE"
  msgstr "benutzerdefinierte Reduktion für %qE nicht gefunden"
-@@ -35686,17 +35760,17 @@
+@@ -35686,17 +35739,17 @@
  msgid "variable length element type in array %<reduction%> clause"
  msgstr "Elementtyp variabler Länge in %<reduction%>-Klausel eines Arrays"
  
@@ -199452,7 +199813,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs"
  msgstr "Modifizierer sollte an %<simd%>- oder %<for%>-Konstrukten nicht in %<linear%>-Klausel angegeben werden"
-@@ -35716,18 +35790,18 @@
+@@ -35716,18 +35769,18 @@
  msgid "%<_Atomic%> %qD in %<linear%> clause"
  msgstr "%<_Atomic%> %qD in %<linear%>-Klausel"
  
@@ -199475,7 +199836,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%qD appears more than once in reduction clauses"
  msgstr "%qD tritt in Reduktionsklauseln mehrfach auf"
-@@ -35739,32 +35813,32 @@
+@@ -35739,32 +35792,32 @@
  
  #: c/c-typeck.c:13196 c/c-typeck.c:13225 c/c-typeck.c:13385 c/c-typeck.c:13499
  #: c/c-typeck.c:13505 c/c-typeck.c:13518 c/c-typeck.c:13527
@@ -199517,7 +199878,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%qE is not a variable in %<aligned%> clause"
  msgstr "%qE ist %<aligned%>-Klausel keine Variable"
-@@ -35784,55 +35858,55 @@
+@@ -35784,55 +35837,55 @@
  msgid "%qE appears more than once in %<aligned%> clauses"
  msgstr "%qE tritt in %<aligned%>-Klausel mehrfach auf"
  
@@ -199586,7 +199947,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%qE is not an argument in %<uniform%> clause"
  msgstr "%qE in %<uniform%>-Klausel ist kein Argument"
-@@ -35842,32 +35916,32 @@
+@@ -35842,32 +35895,32 @@
  msgid "%qs variable is neither a pointer nor an array"
  msgstr "Variable %qs ist weder Zeiger noch Array"
  
@@ -199625,7 +199986,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
  msgstr "%<linear%>-Klauselschritt ist ein Parameter %qD, der nicht in der %<uniform%>-Klausel angegeben ist"
-@@ -36410,152 +36484,152 @@
+@@ -36410,152 +36463,152 @@
  msgid "use of multiversioned function without a default"
  msgstr "Verwendung einer multiversionierten Funktion ohne Standardargument"
  
@@ -199808,7 +200169,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "invalid initialization of reference of type %qT from expression of type %qT"
  msgstr "ungültige Initialisierung einer Referenz des Typs %qT von Ausdruck des Typs %qT"
-@@ -36656,272 +36730,272 @@
+@@ -36656,272 +36709,272 @@
  msgid "cannot derive from %<final%> base %qT in derived type %qT"
  msgstr "Es kann nicht von %<final%>-Basis %qT in abgeleiteten Typ %qT abgeleitet werden"
  
@@ -200135,7 +200496,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "non-static const member %q#D in class without a constructor"
  msgstr "nicht-statisches const-Element %q#D in Klasse ohne einen Konstruktor"
-@@ -36928,152 +37002,152 @@
+@@ -36928,152 +36981,152 @@
  
  #. If the function is defaulted outside the class, we just
  #. give the synthesis error.
@@ -200318,7 +200679,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "cannot convert %qE from type %qT to type %qT"
  msgstr "%qE kann nicht vom Typ %qT in den Typ %qT umgewandelt werden"
-@@ -37083,12 +37157,12 @@
+@@ -37083,12 +37136,12 @@
  #. 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.
@@ -200333,7 +200694,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "changes meaning of %qD from %q#D"
  msgstr "verändert die Bedeutung von %qD von %q#D"
-@@ -37118,332 +37192,332 @@
+@@ -37118,332 +37171,332 @@
  msgid "invalid return type %qT of constexpr function %q+D"
  msgstr "ungültiger Rückgabetyp %qT der Funktion %q+D als konstantem Ausdruck"
  
@@ -200732,7 +201093,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "unexpected AST of kind %s"
  msgstr "unerwarteter AST der Art %s"
-@@ -38239,7 +38313,7 @@
+@@ -38239,7 +38292,7 @@
  msgid "  skips initialization of %q#D"
  msgstr "  überspringt Initialisierung von %q#D"
  
@@ -200741,7 +201102,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "invalid exit from OpenMP structured block"
  msgstr "ungültiger Ausgang von strukturiertem OpenMP-Block"
-@@ -38254,7 +38328,7 @@
+@@ -38254,7 +38307,7 @@
  msgid "%qD is not a type"
  msgstr "%qD ist kein Typ"
  
@@ -200750,7 +201111,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%qD used without template parameters"
  msgstr "%qD ohne Template-Parameter verwendet"
-@@ -39890,7 +39964,7 @@
+@@ -39890,7 +39943,7 @@
  msgid "parameter declared %<auto%>"
  msgstr "Parameter als %<auto%> deklariert"
  
@@ -200759,7 +201120,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "invalid use of template-name %qE without an argument list"
  msgstr "ungültige Verwendung des Template-Namens %qE ohne eine Argumentliste"
-@@ -40341,13 +40415,13 @@
+@@ -40341,13 +40394,13 @@
  msgid "%qD has the same name as the class in which it is declared"
  msgstr "%qD hat den gleichen Namen wie die Klasse, in der es deklariert wurde"
  
@@ -200776,7 +201137,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "previous declaration here"
  msgstr "vorherige Deklaration hier"
-@@ -40357,8 +40431,8 @@
+@@ -40357,8 +40410,8 @@
  msgid "perhaps you want to explicitly add %<%T::%>"
  msgstr "Sie könnten ein explizites %<%T::%> hinzufügen"
  
@@ -200787,7 +201148,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "reference to %qD is ambiguous"
  msgstr "Referenz auf %qD ist mehrdeutig"
-@@ -40408,7 +40482,7 @@
+@@ -40408,7 +40461,7 @@
  msgid "scoped/unscoped mismatch in enum %q#T"
  msgstr "falsche Zuordnung zwischen innerhalb und außerhalb eines Gültigkeitsbereiches in enum %q#T"
  
@@ -200796,7 +201157,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "previous definition here"
  msgstr "vorherige Definition hier"
-@@ -40472,7 +40546,7 @@
+@@ -40472,7 +40525,7 @@
  msgid "return type %q#T is incomplete"
  msgstr "Rückgabetyp %q#T ist unvollständig"
  
@@ -200805,7 +201166,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<operator=%> should return a reference to %<*this%>"
  msgstr "%<operator=%> sollte eine Referenz auf %<*this%> zurückgeben"
-@@ -40487,7 +40561,7 @@
+@@ -40487,7 +40540,7 @@
  msgid "no return statements in function returning %qT"
  msgstr "keine return-Anweisungen in %qT zurückgebender Funktion"
  
@@ -200814,7 +201175,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "only plain %<auto%> return type can be deduced to %<void%>"
  msgstr "nur einfacher Rückgabetyp %<auto%> kann zu %<void%> hergeleitet werden"
-@@ -40645,27 +40719,27 @@
+@@ -40645,27 +40698,27 @@
  msgid "width of bit-field %qD has non-integral type %qT"
  msgstr "Breite des Bit-Feldes %qD hat Nicht-Ganzzahl-Typ %qT"
  
@@ -200847,7 +201208,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<operator new%> must return type %qT"
  msgstr "%<operator new%> muss Typ %qT zurückgeben"
-@@ -40674,67 +40748,67 @@
+@@ -40674,67 +40727,67 @@
  #.
  #. The first parameter shall not have an associated default
  #. argument.
@@ -200928,7 +201289,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%q#D, declared using unnamed type, is used but never defined"
  msgstr "%q#D (durch einen unbenannten Typen deklariert) wird verwendet, aber nirgends definiert"
-@@ -40743,47 +40817,47 @@
+@@ -40743,47 +40796,47 @@
  #. 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.
@@ -200985,7 +201346,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "default argument missing for parameter %P of %q+#D"
  msgstr "Standardargument fehlt für Parameter %P von %q+#D"
-@@ -40790,12 +40864,12 @@
+@@ -40790,12 +40843,12 @@
  
  #. We mark a lambda conversion op as deleted if we can't
  #. generate it properly; see maybe_add_lambda_conv_op.
@@ -201000,7 +201361,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "use of deleted function %qD"
  msgstr "gelöschte Funktion %qD wird verwendet"
-@@ -41104,18 +41178,18 @@
+@@ -41104,18 +41157,18 @@
  msgid "invalid initializer for array member %q#D"
  msgstr "ungültige Initialisierung für Arrayelement %q#D"
  
@@ -201022,7 +201383,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "uninitialized reference member in %q#T"
  msgstr "nicht initialisiertes Referenzelement in %q#T"
-@@ -41215,7 +41289,7 @@
+@@ -41215,7 +41268,7 @@
  msgid "array must be initialized with a brace-enclosed initializer"
  msgstr "Array muss mit Initialisierung mit umgebenden geschweiften Klammern initialisiert werden"
  
@@ -201031,7 +201392,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%qT is not a class type"
  msgstr "%qT ist kein Klassentyp"
-@@ -41235,7 +41309,7 @@
+@@ -41235,7 +41288,7 @@
  msgid "invalid use of non-static member function %qD"
  msgstr "ungültige Verwendung der nicht-statischen Elementfunktion %qD"
  
@@ -201040,7 +201401,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "invalid use of non-static data member %qD"
  msgstr "ungültige Verwendung des nicht-statischen Datenelementes %qD"
-@@ -41430,22 +41504,22 @@
+@@ -41430,22 +41483,22 @@
  msgid "because the array element type %qT has variable size"
  msgstr "da der Arrayelementtyp %qT variable Größe hat"
  
@@ -201067,7 +201428,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<this%> was not captured for this lambda function"
  msgstr "%<this%> wurde für diese Lambda-Funktion nicht aufgefangen"
-@@ -41500,186 +41574,186 @@
+@@ -41500,186 +41553,186 @@
  msgid "(if you use %<-fpermissive%>, G++ will accept your code, but allowing the use of an undeclared name is deprecated)"
  msgstr "(mit %<-fpermissive%> wird G++ den Code akzeptieren, aber die Verwendung eines nicht deklarierten Namens ist veraltet)"
  
@@ -201291,7 +201652,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "defaulted function %q+D with default argument"
  msgstr "vorgegebene Funktion %q+D mit Standardargument"
-@@ -41871,97 +41945,97 @@
+@@ -41871,97 +41924,97 @@
  msgid "%<%T::%D%> names constructor in %qT"
  msgstr "%<%T::%D%> benennt Konstruktor in %qT"
  
@@ -201408,7 +201769,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "suggested alternative:"
  msgid_plural "suggested alternatives:"
-@@ -41968,27 +42042,27 @@
+@@ -41968,27 +42021,27 @@
  msgstr[0] "empfohlene Alternative:"
  msgstr[1] "empfohlene Alternativen:"
  
@@ -201441,7 +201802,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "XXX leaving pop_everything ()\n"
  msgstr "XXX pop_everything () wird verlassen\n"
-@@ -42008,7 +42082,7 @@
+@@ -42008,7 +42061,7 @@
  msgid "LEXER_DEBUGGING_ENABLED_P is not set to true"
  msgstr "LEXER_DEBUGGING_ENABLED_P is not set to true"
  
@@ -201450,7 +201811,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<#pragma omp declare simd%> not immediately followed by function declaration or definition"
  msgstr "%<#pragma omp declare simd%> ist nicht direkt gefolgt von Funktionsdeklaration oder -definition"
-@@ -42033,7 +42107,7 @@
+@@ -42033,7 +42086,7 @@
  msgid "request for member %qE in non-class type %qT"
  msgstr "Abfrage des Elementes %qE in Nicht-Klassentyp %qT"
  
@@ -201459,7 +201820,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%<%T::%E%> has not been declared"
  msgstr "%<%T::%E%> wurde nicht deklariert"
-@@ -42093,725 +42167,731 @@
+@@ -42093,1201 +42146,1206 @@
  msgid "(perhaps a semicolon is missing after the definition of %qT)"
  msgstr "(vielleicht fehlt ein Semikolon hinter der Definition von %qT)"
  
@@ -202326,16 +202687,14 @@ Index: gcc/po/de.po
  
 -#: cp/parser.c:13201
 +#: cp/parser.c:13054
-+#, fuzzy, gcc-internal-format
-+#| msgid "invalid initializer for member function %qD"
+ #, gcc-internal-format
 +msgid "invalid initializer for structured binding declaration"
-+msgstr "ungültige Initialisierung für Elementfunktion %qD"
++msgstr "ungültige Initialisierung für strukturierte Bindungsdeklaration"
 +
 +#: cp/parser.c:13220
- #, gcc-internal-format
++#, gcc-internal-format
  msgid "%<friend%> used outside of class"
  msgstr "%<friend%> außerhalb einer Klasse verwendet"
-@@ -42818,476 +42898,476 @@
  
  #. Complain about `auto' as a storage specifier, if
  #. we're complaining about C++0x compatibility.
@@ -202906,7 +203265,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified name"
  msgstr "%<%T::%D%> statt %<%T::%D%> verwenden, um den Konstruktor mit qualifiziertem Namen zu benennen"
-@@ -43296,7 +43376,7 @@
+@@ -43296,7 +43354,7 @@
  #. here because we do not have enough
  #. information about its original syntactic
  #. form.
@@ -202915,7 +203274,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "invalid declarator"
  msgstr "ungültiger Deklarator"
-@@ -43303,337 +43383,339 @@
+@@ -43303,337 +43361,337 @@
  
  #. But declarations with qualified-ids can't appear in a
  #. function.
@@ -203196,20 +203555,16 @@ Index: gcc/po/de.po
  msgstr "eine geschweift geklammerte Initialisierung ist hier nicht erlaubt"
  
 -#: cp/parser.c:23680
--#, gcc-internal-format
--msgid "%<virtual%> specified more than once in base-specified"
 +#: cp/parser.c:23703
-+#, fuzzy, gcc-internal-format
-+#| msgid "%<virtual%> specified more than once in base-specified"
+ #, gcc-internal-format
+-msgid "%<virtual%> specified more than once in base-specified"
 +msgid "%<virtual%> specified more than once in base-specifier"
  msgstr "%<virtual%> mehr als einmal in Basisspezifikation angegeben"
  
 -#: cp/parser.c:23700
--#, gcc-internal-format
--msgid "more than one access specifier in base-specified"
 +#: cp/parser.c:23723
-+#, fuzzy, gcc-internal-format
-+#| msgid "more than one access specifier in base-specified"
+ #, gcc-internal-format
+-msgid "more than one access specifier in base-specified"
 +msgid "more than one access specifier in base-specifier"
  msgstr "mehr als ein Zugriff in Basisspezifikation angegeben"
  
@@ -203326,7 +203681,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "too few template-parameter-lists"
  msgstr "zu wenige Templateparameterlisten"
-@@ -43642,488 +43724,488 @@
+@@ -43642,488 +43700,488 @@
  #. something like:
  #.
  #. template <class T> template <class U> void S::f();
@@ -203912,7 +204267,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "implicit templates may not be %<virtual%>"
  msgstr "Implizite Templates dürfen nicht %<virtual%> sein"
-@@ -44215,7 +44297,7 @@
+@@ -44215,7 +44273,7 @@
  msgid "candidate is: %#D"
  msgstr "Kandidat ist: %#D"
  
@@ -203921,7 +204276,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "%s %#D"
  msgstr "%s %#D"
-@@ -44791,122 +44873,140 @@
+@@ -44791,122 +44849,137 @@
  msgid "%qE is not a valid template argument of type %qT because %qD does not have external linkage"
  msgstr "%qE ist kein gültiges Templateargument des Typs %qT, weil %qD keine externe Bindung hat"
  
@@ -203933,25 +204288,22 @@ Index: gcc/po/de.po
  
 -#: cp/pt.c:6639
 +#: cp/pt.c:6625
-+#, fuzzy, gcc-internal-format
-+#| msgid "  variable-sized array type %qT is not a valid template argument"
+ #, gcc-internal-format
 +msgid "the address of %qD is not a valid template argument"
-+msgstr " Arraytyp %qT mit veränderlicher Größe ist kein gültiges Templateargument"
++msgstr "die Adresse von %qD ist kein gültiges Templateargument"
 +
 +#: cp/pt.c:6634
-+#, fuzzy, gcc-internal-format
-+#| msgid "  variable-sized array type %qT is not a valid template argument"
++#, gcc-internal-format
 +msgid "the address of the %qT subobject of %qD is not a valid template argument"
-+msgstr " Arraytyp %qT mit veränderlicher Größe ist kein gültiges Templateargument"
++msgstr "die Adresse des %qT-Teilobjekts von %qD ist kein gültiges Templateargument"
 +
 +#: cp/pt.c:6641
-+#, fuzzy, gcc-internal-format
-+#| msgid "%qE is not a valid template argument of type %qT because %qD does not have external linkage"
++#, gcc-internal-format
 +msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
-+msgstr "%qE ist kein gültiges Templateargument des Typs %qT, weil %qD keine externe Bindung hat"
++msgstr "die Adresse von %qD ist kein gültiges Templateargument, weil sie keine statische Lebensdauer hat"
 +
 +#: cp/pt.c:6672
- #, gcc-internal-format
++#, gcc-internal-format
  msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
  msgstr "%qE ist kein gültiges Templateargument für Typ %qT, da es in CV-Qualifikation in Konflikt steht"
  
@@ -204086,7 +204438,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "  expected %qD but got %qD"
  msgstr "  %qD erwartet, %qD erhalten"
-@@ -44913,102 +45013,102 @@
+@@ -44913,102 +44986,102 @@
  
  #. Not sure if this is reachable, but it doesn't hurt
  #. to be robust.
@@ -204209,7 +204561,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "  when instantiating default argument for call to %D"
  msgstr "  bei Instanziierung des Standardarguments für Aufruf von %D"
-@@ -45026,271 +45126,271 @@
+@@ -45026,271 +45099,271 @@
  #.
  #. is an attempt to declare a variable with function
  #. type.
@@ -204535,7 +204887,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "duplicate explicit instantiation of %q#T"
  msgstr "doppelte explizite Instanziierung von %q#T"
-@@ -45302,92 +45402,92 @@
+@@ -45302,92 +45375,92 @@
  #. member function or static data member of a class template
  #. shall be present in every translation unit in which it is
  #. explicitly instantiated.
@@ -204646,7 +204998,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "deduced expression type does not satisfy placeholder constraints"
  msgstr "hergeleiteter Ausdruckstyp erfüllt die Platzhalterbeschränkungen nicht"
-@@ -45544,466 +45644,466 @@
+@@ -45544,466 +45617,466 @@
  msgid "  since %q+#D declared in base class"
  msgstr "  denn %q+#D ist in Basisklasse deklariert"
  
@@ -205207,7 +205559,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "non-pointer argument to %<__builtin_launder%>"
  msgstr "Argument, das kein Zeiger ist, in %<__builtin_launder%>"
-@@ -46018,107 +46118,107 @@
+@@ -46018,107 +46091,107 @@
  msgid "lambda-expression in a constant expression"
  msgstr "Lambda-Ausdruck in konstantem Ausdruck"
  
@@ -205336,7 +205688,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "lang_* check: failed in %s, at %s:%d"
  msgstr "lang_* check: failed in %s, at %s:%d"
-@@ -46801,102 +46901,102 @@
+@@ -46801,102 +46874,102 @@
  msgid "invalid conversion to type %qT from type %qT"
  msgstr "ungültige Umwandlung in Typ %qT von Typ %qT"
  
@@ -205459,7 +205811,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "returning a value from a destructor"
  msgstr "Wert von Destruktor zurückgegeben"
-@@ -46903,55 +47003,55 @@
+@@ -46903,55 +46976,55 @@
  
  #. If a return statement appears in a handler of the
  #. function-try-block of a constructor, the program is ill-formed.
@@ -205525,7 +205877,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "using xvalue (rvalue reference) as lvalue"
  msgstr "X-Wert (R-Wert-Referenz) wird als L-Wert verwendet"
-@@ -50948,87 +51048,87 @@
+@@ -50948,87 +51021,87 @@
  msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
  msgstr "Ziel der Zeigerinitialisierung für Prozedur bei %L darf kein Prozedurzeiger sein"
  
@@ -205630,7 +205982,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
  msgstr "Elemente mit demselben Wert bei %L und %L in Vektorindex in einem Variablen-Definitionskontext (%s)"
-@@ -51215,12 +51315,12 @@
+@@ -51215,12 +51288,12 @@
  msgid "Second argument of defined assignment at %L must be INTENT(IN)"
  msgstr "Zweites Argument der definierten Zuweisung bei %L muss INTENT(IN)"
  
@@ -205645,7 +205997,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Second argument of operator interface at %L must be INTENT(IN)"
  msgstr "Zweites Argument der Operatorschnittstelle bei %L muss INTENT(IN) sein"
-@@ -52006,509 +52106,525 @@
+@@ -52006,509 +52079,524 @@
  msgid "Fortran 2003: DT format specifier not allowed at %C"
  msgstr "Fortran 2003: DT-Format-Spezifizierer bei %C nicht erlaubt"
  
@@ -206117,10 +206469,9 @@ Index: gcc/po/de.po
 +msgstr "NAMELIST-Objekt %qs in Namensliste %qs bei %L mit ALLOCATABLE- oder POINTER-Komponenten"
 +
 +#: fortran/io.c:3317
-+#, fuzzy, gcc-internal-format
-+#| msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
++#, gcc-internal-format
 +msgid "NAMELIST object %qs in namelist %qs at %L has ALLOCATABLE or POINTER components and thus requires a defined input/output procedure"
-+msgstr "NAMELIST-Objekt %qs in Namensliste %qs bei %L ist polymorph und erfordert eine definierte Ein-/Ausgabeprozedur"
++msgstr "NAMELIST-Objekt %qs in Namensliste %qs bei %L hat ALLOCATABLE- oder POINTER-Komponenten erfordert daher eine definierte Ein-/Ausgabeprozedur"
 +
 +#: fortran/io.c:3328
  #, gcc-internal-format, gfc-internal-format
@@ -206272,7 +206623,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "WAIT statement not allowed in PURE procedure at %C"
  msgstr "WAIT-Anweisung ist in PURE-Prozedur bei %C nicht erlaubt"
-@@ -53413,261 +53529,261 @@
+@@ -53413,261 +53501,261 @@
  msgid "Missing generic specification in USE statement at %C"
  msgstr "Fehlende allgemeine Spezifikation in USE-Anweisung bei %C"
  
@@ -206584,7 +206935,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Can't USE the same %smodule we're building!"
  msgstr "Das %sModul, das gerade gebaut wird, kann nicht gleichzeitig mit USE verwendet werden"
-@@ -56054,7 +56170,7 @@
+@@ -56054,7 +56142,7 @@
  msgid "Unable to resolve the specific function %qs at %L"
  msgstr "Spezifische Funktion %qs bei %L kann nicht aufgelöst werden"
  
@@ -206593,7 +206944,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "Function %qs at %L has no IMPLICIT type"
  msgstr "Funktion %qs bei %L hat keinen IMPLICIT-Typ"
-@@ -57557,449 +57673,439 @@
+@@ -57557,449 +57645,439 @@
  msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
  msgstr "Allgemeiner Name %qs der Funktion %qs bei %L ist der gleiche wie der des abgeleiteten Typs bei %L"
  
@@ -207130,7 +207481,7 @@ Index: gcc/po/de.po
  #, gcc-internal-format
  msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
  msgstr "Enthaltene Prozedur %qs bei %L einer PURE-Prozedur muss auch PURE sein"
-@@ -59113,12 +59219,12 @@
+@@ -59113,12 +59191,12 @@
  msgid "The event variable at %L shall not be coindexed"
  msgstr "Event-Variable bei %L darf nicht koindiziert sein"
  
@@ -302781,6 +303132,19 @@ Index: gcc/po/zh_CN.po
  #~ msgid "bad method signature"
  #~ msgstr "错误的方法签名"
  
+Index: gcc/config.gcc
+===================================================================
+--- a/src/gcc/config.gcc	(.../tags/gcc_7_2_0_release)
++++ b/src/gcc/config.gcc	(.../branches/gcc-7-branch)
+@@ -2416,7 +2416,7 @@
+ 	;;
+ powerpc-*-rtems*)
+ 	tm_file="rs6000/biarch64.h ${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/e500.h rs6000/rtems.h rtems.h"
+-	extra_options="${extra_options} rs6000/sysv4.opt"
++	extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
+ 	tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
+ 	;;
+ powerpc*-*-linux*)
 Index: gcc/config/i386/i386.c
 ===================================================================
 --- a/src/gcc/config/i386/i386.c	(.../tags/gcc_7_2_0_release)
@@ -302838,3 +303202,466 @@ Index: gcc/config/sh/sh-mem.cc
        int witers = bytes / 4;
  
        if (witers > 1)
+Index: gcc/config/avr/avr.c
+===================================================================
+--- a/src/gcc/config/avr/avr.c	(.../tags/gcc_7_2_0_release)
++++ b/src/gcc/config/avr/avr.c	(.../branches/gcc-7-branch)
+@@ -1095,7 +1095,7 @@
+       || 0 == strcmp ("INTERRUPT", name)
+       || 0 == strcmp ("SIGNAL", name))
+     {
+-      warning_at (loc, OPT_Wmisspelled_isr, "%qs is a reserved indentifier"
++      warning_at (loc, OPT_Wmisspelled_isr, "%qs is a reserved identifier"
+                   " in AVR-LibC.  Consider %<#include <avr/interrupt.h>%>"
+                   " before using the %qs macro", name, name);
+     }
+@@ -9549,10 +9549,12 @@
+   bool io_p = (strncmp (IDENTIFIER_POINTER (name), "io", 2) == 0);
+   location_t loc = DECL_SOURCE_LOCATION (*node);
+ 
+-  if (TREE_CODE (*node) != VAR_DECL)
++  if (!VAR_P (*node))
+     {
+-      warning_at (loc, 0, "%qE attribute only applies to variables", name);
++      warning_at (loc, OPT_Wattributes, "%qE attribute only applies to "
++		  "variables", name);
+       *no_add = true;
++      return NULL_TREE;
+     }
+ 
+   if (args != NULL_TREE)
+@@ -9562,8 +9564,8 @@
+       tree arg = TREE_VALUE (args);
+       if (TREE_CODE (arg) != INTEGER_CST)
+ 	{
+-	  warning (0, "%qE attribute allows only an integer constant argument",
+-		   name);
++	  warning_at (loc, OPT_Wattributes, "%qE attribute allows only an "
++		      "integer constant argument", name);
+ 	  *no_add = true;
+ 	}
+       else if (io_p
+@@ -9572,19 +9574,20 @@
+ 			? low_io_address_operand : io_address_operand)
+ 			 (GEN_INT (TREE_INT_CST_LOW (arg)), QImode)))
+ 	{
+-	  warning_at (loc, 0, "%qE attribute address out of range", name);
++	  warning_at (loc, OPT_Wattributes, "%qE attribute address "
++		      "out of range", name);
+ 	  *no_add = true;
+ 	}
+       else
+ 	{
+ 	  tree attribs = DECL_ATTRIBUTES (*node);
+-	  const char *names[] = { "io", "io_low", "address", NULL } ;
++	  const char *names[] = { "io", "io_low", "address", NULL };
+ 	  for (const char **p = names; *p; p++)
+ 	    {
+ 	      tree other = lookup_attribute (*p, attribs);
+ 	      if (other && TREE_VALUE (other))
+ 		{
+-		  warning_at (loc, 0,
++		  warning_at (loc, OPT_Wattributes,
+ 			      "both %s and %qE attribute provide address",
+ 			      *p, name);
+ 		  *no_add = true;
+@@ -9595,7 +9598,8 @@
+     }
+ 
+   if (*no_add == false && io_p && !TREE_THIS_VOLATILE (*node))
+-    warning_at (loc, 0, "%qE attribute on non-volatile variable", name);
++    warning_at (loc, OPT_Wattributes, "%qE attribute on non-volatile variable",
++		name);
+ 
+   return NULL_TREE;
+ }
+@@ -9643,11 +9647,11 @@
+     false },
+   { "OS_main",   0, 0, false, true,  true,   avr_handle_fntype_attribute,
+     false },
+-  { "io",        0, 1, false, false, false,  avr_handle_addr_attribute,
++  { "io",        0, 1, true, false, false,  avr_handle_addr_attribute,
+     false },
+-  { "io_low",    0, 1, false, false, false,  avr_handle_addr_attribute,
++  { "io_low",    0, 1, true, false, false,  avr_handle_addr_attribute,
+     false },
+-  { "address",   1, 1, false, false, false,  avr_handle_addr_attribute,
++  { "address",   1, 1, true, false, false,  avr_handle_addr_attribute,
+     false },
+   { "absdata",   0, 0, true, false, false,  avr_handle_absdata_attribute,
+     false },
+Index: gcc/config/riscv/rtems.h
+===================================================================
+--- a/src/gcc/config/riscv/rtems.h	(.../tags/gcc_7_2_0_release)
++++ b/src/gcc/config/riscv/rtems.h	(.../branches/gcc-7-branch)
+@@ -0,0 +1,31 @@
++/* Definitions for RISC-V RTEMS systems with ELF format.
++   Copyright (C) 2017 Free Software Foundation, Inc.
++
++   This file is part of GCC.
++
++   GCC is free software; you can redistribute it and/or modify it
++   under the terms of the GNU General Public License as published
++   by the Free Software Foundation; either version 3, or (at your
++   option) any later version.
++
++   GCC is distributed in the hope that it will be useful, but WITHOUT
++   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
++   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
++   License for more details.
++
++   Under Section 7 of GPL version 3, you are granted additional
++   permissions described in the GCC Runtime Library Exception, version
++   3.1, as published by the Free Software Foundation.
++
++   You should have received a copy of the GNU General Public License and
++   a copy of the GCC Runtime Library Exception along with this program;
++   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
++   <http://www.gnu.org/licenses/>.  */
++
++#undef TARGET_OS_CPP_BUILTINS
++#define TARGET_OS_CPP_BUILTINS()		\
++    do {					\
++	builtin_define ("__rtems__");		\
++	builtin_define ("__USE_INIT_FINI__");	\
++	builtin_assert ("system=rtems");	\
++    } while (0)
+Index: gcc/config/rs6000/rtems.h
+===================================================================
+--- a/src/gcc/config/rs6000/rtems.h	(.../tags/gcc_7_2_0_release)
++++ b/src/gcc/config/rs6000/rtems.h	(.../branches/gcc-7-branch)
+@@ -37,6 +37,15 @@
+ #undef	TARGET_AIX
+ #define	TARGET_AIX TARGET_64BIT
+ 
++/* Simplified copy and paste from linux64.h and freebsd64.h */
++#undef DOT_SYMBOLS
++#define DOT_SYMBOLS 0
++
++/* Copy and paste from linux64.h and freebsd64.h */
++#undef TARGET_CMODEL
++#define TARGET_CMODEL rs6000_current_cmodel
++#define SET_CMODEL(opt) rs6000_current_cmodel = opt
++
+ #undef TARGET_OS_CPP_BUILTINS
+ #define TARGET_OS_CPP_BUILTINS()			\
+   do							\
+@@ -64,6 +73,15 @@
+   while (0)
+ 
+ /* Copy and paste from linux64.h and freebsd64.h */
++#undef RELOCATABLE_NEEDS_FIXUP
++#define RELOCATABLE_NEEDS_FIXUP \
++  (rs6000_isa_flags & rs6000_isa_flags_explicit & OPTION_MASK_RELOCATABLE)
++
++/* Copy and paste from linux64.h */
++#undef	RS6000_ABI_NAME
++#define	RS6000_ABI_NAME "linux"
++
++/* Copy and paste from linux64.h and freebsd64.h */
+ #define INVALID_64BIT "-m%s not supported in this configuration"
+ 
+ /* A lot of copy and paste from linux64.h and freebsd64.h */
+@@ -95,6 +113,24 @@
+ 	      rs6000_isa_flags |= OPTION_MASK_POWERPC64;	\
+ 	      error ("-m64 requires a PowerPC64 cpu");		\
+ 	    }							\
++	  if ((rs6000_isa_flags_explicit			\
++		& OPTION_MASK_MINIMAL_TOC) != 0)		\
++	    {							\
++	      if (global_options_set.x_rs6000_current_cmodel	\
++		  && rs6000_current_cmodel != CMODEL_SMALL)	\
++		error ("-mcmodel incompatible with other toc options"); \
++	      SET_CMODEL (CMODEL_SMALL);			\
++	    }							\
++	  else							\
++	    {							\
++	      if (!global_options_set.x_rs6000_current_cmodel)	\
++		SET_CMODEL (CMODEL_MEDIUM);			\
++	      if (rs6000_current_cmodel != CMODEL_SMALL)	\
++		{						\
++		  TARGET_NO_FP_IN_TOC = 0;			\
++		  TARGET_NO_SUM_IN_TOC = 0;			\
++		}						\
++	    }							\
+ 	}							\
+     }								\
+   while (0)
+@@ -141,6 +177,30 @@
+ #define RESTORE_FP_SUFFIX ""
+ 
+ /* Copy and paste from linux64.h and freebsd64.h */
++#undef	ASM_PREFERRED_EH_DATA_FORMAT
++#define	ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \
++  (TARGET_64BIT || flag_pic						\
++   ? (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel		\
++      | (TARGET_64BIT ? DW_EH_PE_udata8 : DW_EH_PE_sdata4))		\
++   : DW_EH_PE_absptr)
++
++/* Copy and paste from linux64.h and freebsd64.h */
++#undef  TOC_SECTION_ASM_OP
++#define TOC_SECTION_ASM_OP \
++  (TARGET_64BIT						\
++   ? "\t.section\t\".toc\",\"aw\""			\
++   : "\t.section\t\".got\",\"aw\"")
++
++/* Copy and paste from linux64.h and freebsd64.h */
++#undef  MINIMAL_TOC_SECTION_ASM_OP
++#define MINIMAL_TOC_SECTION_ASM_OP \
++  (TARGET_64BIT						\
++   ? "\t.section\t\".toc1\",\"aw\""			\
++   : (flag_pic						\
++      ? "\t.section\t\".got2\",\"aw\""			\
++      : "\t.section\t\".got1\",\"aw\""))
++
++/* Copy and paste from linux64.h and freebsd64.h */
+ #undef	ASM_DECLARE_FUNCTION_SIZE
+ #define	ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL)			\
+   do									\
+Index: gcc/config/rs6000/rs6000.c
+===================================================================
+--- a/src/gcc/config/rs6000/rs6000.c	(.../tags/gcc_7_2_0_release)
++++ b/src/gcc/config/rs6000/rs6000.c	(.../branches/gcc-7-branch)
+@@ -39555,6 +39555,22 @@
+ /* Remember the last target of rs6000_set_current_function.  */
+ static GTY(()) tree rs6000_previous_fndecl;
+ 
++/* Restore target's globals from NEW_TREE and invalidate the
++   rs6000_previous_fndecl cache.  */
++
++static void
++rs6000_activate_target_options (tree new_tree)
++{
++  cl_target_option_restore (&global_options, TREE_TARGET_OPTION (new_tree));
++  if (TREE_TARGET_GLOBALS (new_tree))
++    restore_target_globals (TREE_TARGET_GLOBALS (new_tree));
++  else if (new_tree == target_option_default_node)
++    restore_target_globals (&default_target_globals);
++  else
++    TREE_TARGET_GLOBALS (new_tree) = save_target_globals_default_opts ();
++  rs6000_previous_fndecl = NULL_TREE;
++}
++
+ /* Establish appropriate back-end context for processing the function
+    FNDECL.  The argument might be NULL to indicate processing at top
+    level, outside of any function scope.  */
+@@ -39561,17 +39577,8 @@
+ static void
+ rs6000_set_current_function (tree fndecl)
+ {
+-  tree old_tree = (rs6000_previous_fndecl
+-		   ? DECL_FUNCTION_SPECIFIC_TARGET (rs6000_previous_fndecl)
+-		   : NULL_TREE);
+-
+-  tree new_tree = (fndecl
+-		   ? DECL_FUNCTION_SPECIFIC_TARGET (fndecl)
+-		   : NULL_TREE);
+-
+   if (TARGET_DEBUG_TARGET)
+     {
+-      bool print_final = false;
+       fprintf (stderr, "\n==================== rs6000_set_current_function");
+ 
+       if (fndecl)
+@@ -39584,11 +39591,43 @@
+ 	fprintf (stderr, ", prev_fndecl (%p)", (void *)rs6000_previous_fndecl);
+ 
+       fprintf (stderr, "\n");
++    }
++
++  /* Only change the context if the function changes.  This hook is called
++     several times in the course of compiling a function, and we don't want to
++     slow things down too much or call target_reinit when it isn't safe.  */
++  if (fndecl == rs6000_previous_fndecl)
++    return;
++
++  tree old_tree;
++  if (rs6000_previous_fndecl == NULL_TREE)
++    old_tree = target_option_current_node;
++  else if (DECL_FUNCTION_SPECIFIC_TARGET (rs6000_previous_fndecl))
++    old_tree = DECL_FUNCTION_SPECIFIC_TARGET (rs6000_previous_fndecl);
++  else
++    old_tree = target_option_default_node;
++
++  tree new_tree;
++  if (fndecl == NULL_TREE)
++    {
++      if (old_tree != target_option_current_node)
++	new_tree = target_option_current_node;
++      else
++	new_tree = NULL_TREE;
++    }
++  else
++    {
++      new_tree = DECL_FUNCTION_SPECIFIC_TARGET (fndecl);
++      if (new_tree == NULL_TREE)
++	new_tree = target_option_default_node;
++    }
++
++  if (TARGET_DEBUG_TARGET)
++    {
+       if (new_tree)
+ 	{
+ 	  fprintf (stderr, "\nnew fndecl target specific options:\n");
+ 	  debug_tree (new_tree);
+-	  print_final = true;
+ 	}
+ 
+       if (old_tree)
+@@ -39595,47 +39634,17 @@
+ 	{
+ 	  fprintf (stderr, "\nold fndecl target specific options:\n");
+ 	  debug_tree (old_tree);
+-	  print_final = true;
+ 	}
+ 
+-      if (print_final)
++      if (old_tree != NULL_TREE || new_tree != NULL_TREE)
+ 	fprintf (stderr, "--------------------\n");
+     }
+ 
+-  /* Only change the context if the function changes.  This hook is called
+-     several times in the course of compiling a function, and we don't want to
+-     slow things down too much or call target_reinit when it isn't safe.  */
+-  if (fndecl && fndecl != rs6000_previous_fndecl)
+-    {
+-      rs6000_previous_fndecl = fndecl;
+-      if (old_tree == new_tree)
+-	;
++  if (new_tree && old_tree != new_tree)
++    rs6000_activate_target_options (new_tree);
+ 
+-      else if (new_tree && new_tree != target_option_default_node)
+-	{
+-	  cl_target_option_restore (&global_options,
+-				    TREE_TARGET_OPTION (new_tree));
+-	  if (TREE_TARGET_GLOBALS (new_tree))
+-	    restore_target_globals (TREE_TARGET_GLOBALS (new_tree));
+-	  else
+-	    TREE_TARGET_GLOBALS (new_tree)
+-	      = save_target_globals_default_opts ();
+-	}
+-
+-      else if (old_tree && old_tree != target_option_default_node)
+-	{
+-	  new_tree = target_option_current_node;
+-	  cl_target_option_restore (&global_options,
+-				    TREE_TARGET_OPTION (new_tree));
+-	  if (TREE_TARGET_GLOBALS (new_tree))
+-	    restore_target_globals (TREE_TARGET_GLOBALS (new_tree));
+-	  else if (new_tree == target_option_default_node)
+-	    restore_target_globals (&default_target_globals);
+-	  else
+-	    TREE_TARGET_GLOBALS (new_tree)
+-	      = save_target_globals_default_opts ();
+-	}
+-    }
++  if (fndecl)
++    rs6000_previous_fndecl = fndecl;
+ }
+ 
+ 

+Index: gcc/config/rs6000/vsx.md
+===================================================================
+--- a/src/gcc/config/rs6000/vsx.md	(.../tags/gcc_7_2_0_release)
++++ b/src/gcc/config/rs6000/vsx.md	(.../branches/gcc-7-branch)
+@@ -736,17 +736,20 @@
+ ;; special V1TI container class, which it is not appropriate to use vec_select
+ ;; for the type.
+ (define_insn "*vsx_le_permute_<mode>"
+-  [(set (match_operand:VSX_LE_128 0 "nonimmediate_operand" "=<VSa>,<VSa>,Z")
++  [(set (match_operand:VSX_LE_128 0 "nonimmediate_operand" "=<VSa>,<VSa>,Z,&r,&r,Q")
+ 	(rotate:VSX_LE_128
+-	 (match_operand:VSX_LE_128 1 "input_operand" "<VSa>,Z,<VSa>")
++	 (match_operand:VSX_LE_128 1 "input_operand" "<VSa>,Z,<VSa>,r,Q,r")
+ 	 (const_int 64)))]
+   "!BYTES_BIG_ENDIAN && TARGET_VSX && !TARGET_P9_VECTOR"
+   "@
+    xxpermdi %x0,%x1,%x1,2
+    lxvd2x %x0,%y1
+-   stxvd2x %x1,%y0"
+-  [(set_attr "length" "4")
+-   (set_attr "type" "vecperm,vecload,vecstore")])
++   stxvd2x %x1,%y0
++   mr %0,%L1\;mr %L0,%1
++   ld%U1%X1 %0,%L1\;ld%U1%X1 %L0,%1
++   std%U0%X0 %L1,%0\;std%U0%X0 %1,%L0"
++  [(set_attr "length" "4,4,4,8,8,8")
++   (set_attr "type" "vecperm,vecload,vecstore,*,load,store")])
+ 
+ (define_insn_and_split "*vsx_le_undo_permute_<mode>"
+   [(set (match_operand:VSX_LE_128 0 "vsx_register_operand" "=<VSa>,<VSa>")
+@@ -772,10 +775,12 @@
+    (set_attr "type" "veclogical")])
+ 
+ (define_insn_and_split "*vsx_le_perm_load_<mode>"
+-  [(set (match_operand:VSX_LE_128 0 "vsx_register_operand" "=<VSa>")
+-        (match_operand:VSX_LE_128 1 "memory_operand" "Z"))]
++  [(set (match_operand:VSX_LE_128 0 "vsx_register_operand" "=<VSa>,r")
++	(match_operand:VSX_LE_128 1 "memory_operand" "Z,Q"))]
+   "!BYTES_BIG_ENDIAN && TARGET_VSX && !TARGET_P9_VECTOR"
+-  "#"
++  "@
++   #
++   #"
+   "!BYTES_BIG_ENDIAN && TARGET_VSX && !TARGET_P9_VECTOR"
+   [(set (match_dup 2)
+ 	(rotate:VSX_LE_128 (match_dup 1)
+@@ -789,16 +794,18 @@
+                                        : operands[0];
+ }
+   "
+-  [(set_attr "type" "vecload")
+-   (set_attr "length" "8")])
++  [(set_attr "type" "vecload,load")
++   (set_attr "length" "8,8")])
+ 
+ (define_insn "*vsx_le_perm_store_<mode>"
+-  [(set (match_operand:VSX_LE_128 0 "memory_operand" "=Z")
+-        (match_operand:VSX_LE_128 1 "vsx_register_operand" "+<VSa>"))]
++  [(set (match_operand:VSX_LE_128 0 "memory_operand" "=Z,Q")
++	(match_operand:VSX_LE_128 1 "vsx_register_operand" "+<VSa>,r"))]
+   "!BYTES_BIG_ENDIAN && TARGET_VSX && !TARGET_P9_VECTOR"
+-  "#"
+-  [(set_attr "type" "vecstore")
+-   (set_attr "length" "12")])
++  "@
++   #
++   #"
++  [(set_attr "type" "vecstore,store")
++   (set_attr "length" "12,8")])
+ 
+ (define_split
+   [(set (match_operand:VSX_LE_128 0 "memory_operand" "")
+@@ -815,6 +822,31 @@
+                                        : operands[0];
+ })
+ 
++;; Peepholes to catch loads and stores for TImode if TImode landed in
++;; GPR registers on a little endian system.
++(define_peephole2
++  [(set (match_operand:VSX_LE_128 0 "int_reg_operand")
++	(rotate:VSX_LE_128 (match_operand:VSX_LE_128 1 "memory_operand")
++			   (const_int 64)))
++   (set (match_operand:VSX_LE_128 2 "int_reg_operand")
++	(rotate:VSX_LE_128 (match_dup 0)
++			   (const_int 64)))]
++  "!BYTES_BIG_ENDIAN && TARGET_VSX && TARGET_VSX_TIMODE && !TARGET_P9_VECTOR
++   && (rtx_equal_p (operands[0], operands[2])
++       || peep2_reg_dead_p (2, operands[0]))"
++   [(set (match_dup 2) (match_dup 1))])
++
++(define_peephole2
++  [(set (match_operand:VSX_LE_128 0 "int_reg_operand")
++	(rotate:VSX_LE_128 (match_operand:VSX_LE_128 1 "int_reg_operand")
++			   (const_int 64)))
++   (set (match_operand:VSX_LE_128 2 "memory_operand")
++	(rotate:VSX_LE_128 (match_dup 0)
++			   (const_int 64)))]
++  "!BYTES_BIG_ENDIAN && TARGET_VSX && TARGET_VSX_TIMODE && !TARGET_P9_VECTOR
++   && peep2_reg_dead_p (2, operands[0])"
++   [(set (match_dup 2) (match_dup 1))])
++
+ ;; Peephole to catch memory to memory transfers for TImode if TImode landed in
+ ;; VSX registers on a little endian system.  The vector types and IEEE 128-bit
+ ;; floating point are handled by the more generic swap elimination pass.

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/gcc-7.git



More information about the Reproducible-commits mailing list