[gcc-6] 180/401: * Update to SVN 20160802 (r238981, 6.1.1) from the gcc-6-branch.

Ximin Luo infinity0 at debian.org
Wed Apr 5 15:49:02 UTC 2017


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

infinity0 pushed a commit to branch pu/reproducible_builds
in repository gcc-6.

commit c76071e31bee1e4c7047a570baa2118b23da491d
Author: doko <doko at 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>
Date:   Tue Aug 2 11:11:14 2016 +0000

      * Update to SVN 20160802 (r238981, 6.1.1) from the gcc-6-branch.
    
    
    git-svn-id: svn://anonscm.debian.org/gcccvs/branches/sid/gcc-6@8927 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
---
 debian/changelog                |    7 +-
 debian/patches/svn-updates.diff | 2036 ++++++++++++++++++++++++++++++++++-----
 2 files changed, 1806 insertions(+), 237 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index d5432fe..e536ea6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,14 @@
 gcc-6 (6.1.1-11) UNRELEASED; urgency=medium
 
+  * Update to SVN 20160802 (r238981, 6.1.1) from the gcc-6-branch.
+    - Fix PR target/72767 (AVR), PR target/71151 (AVR), PR c/7652,
+      PR target/71216 (PPC), PR target/72103 (PPC), PR c++/72457, PR c++/71576,
+      PR c++/71833, PR fortran/71883.
+
   [ Nicolas Boulenguez ]
   * debian/ada/confirm_debian_bugs.py: Update for GCC 6. Closes: ##832799.
 
- -- Matthias Klose <doko at debian.org>  Fri, 29 Jul 2016 11:53:41 +0200
+ -- Matthias Klose <doko at debian.org>  Tue, 02 Aug 2016 13:07:04 +0200
 
 gcc-6 (6.1.1-10) unstable; urgency=medium
 
diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff
index 4bde4dc..b836b2c 100644
--- a/debian/patches/svn-updates.diff
+++ b/debian/patches/svn-updates.diff
@@ -1,10 +1,10 @@
-# DP: updates from the 6 branch upto 20160724 (r238695).
+# DP: updates from the 6 branch upto 20160802 (r238981).
 
 last_update()
 {
 	cat > ${dir}LAST_UPDATED <EOF
-Sun Jul 24 19:39:27 CEST 2016
-Sun Jul 24 17:39:27 UTC 2016 (revision 238695)
+Tue Aug  2 12:08:10 CEST 2016
+Tue Aug  2 10:08:10 UTC 2016 (revision 238981)
 EOF
 }
 
@@ -1981,6 +1981,31 @@ Index: libstdc++-v3/src/c++11/codecvt.cc
  #if __BYTE_ORDER__ != __ORDER_BIG_ENDIAN__
    mode = codecvt_mode(mode | little_endian);
  #endif
+Index: libstdc++-v3/doc/xml/manual/abi.xml
+===================================================================
+--- a/src/libstdc++-v3/doc/xml/manual/abi.xml	(.../tags/gcc_6_1_0_release)
++++ b/src/libstdc++-v3/doc/xml/manual/abi.xml	(.../branches/gcc-6-branch)
+@@ -331,6 +331,7 @@
+     <listitem><para>GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7</para></listitem>
+     <listitem><para>GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8</para></listitem>
+     <listitem><para>GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9</para></listitem>
++    <listitem><para>GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10</para></listitem>
+     </itemizedlist>
+     </listitem>
+ 
+Index: libstdc++-v3/doc/html/manual/abi.html
+===================================================================
+--- a/src/libstdc++-v3/doc/html/manual/abi.html	(.../tags/gcc_6_1_0_release)
++++ b/src/libstdc++-v3/doc/html/manual/abi.html	(.../branches/gcc-6-branch)
+@@ -129,7 +129,7 @@
+    GLIBCPP_3.2 for symbols that were introduced in the GCC 3.2.0
+    release.) If a particular release is not listed, it has the same
+    version labels as the preceding release.
+-   </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>GCC 3.0.0: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.1: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.2: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.3: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.4: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.1.0: GLIBCPP_3.1, CXXABI_1</p></li><li cl [...]
++   </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>GCC 3.0.0: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.1: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.2: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.3: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.4: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.1.0: GLIBCPP_3.1, CXXABI_1</p></li><li cl [...]
+     __GXX_ABI_VERSION. This macro is defined as the version of the
+     compiler v3 ABI, with g++ 3.0 being version 100. This macro will
+     be automatically defined whenever g++ is used (the curious can
 Index: libstdc++-v3/include/std/tuple
 ===================================================================
 --- a/src/libstdc++-v3/include/std/tuple	(.../tags/gcc_6_1_0_release)
@@ -2737,7 +2762,17 @@ Index: libstdc++-v3/ChangeLog
 ===================================================================
 --- a/src/libstdc++-v3/ChangeLog	(.../tags/gcc_6_1_0_release)
 +++ b/src/libstdc++-v3/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,209 @@
+@@ -1,3 +1,219 @@
++2016-08-02  Jonathan Wakely  <jwakely at redhat.com>
++
++	* testsuite/lib/libstdc++.exp (v3-build_support): Add
++	-fno-lto to additional flags for compiling libtestc++.a objects.
++
++2016-07-29  Jonathan Wakely  <jwakely at redhat.com>
++
++	* doc/xml/manual/abi.xml: Document 6.0.22 library version.
++	* doc/html/manual/abi.html: Regenerate.
++
 +2016-07-19  Jonathan Wakely  <jwakely at redhat.com>
 +
 +	Backport from mainline
@@ -3486,6 +3521,21 @@ Index: libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/69703.cc
 +  test01();
 +  test02();
 +}
+Index: libstdc++-v3/testsuite/lib/libstdc++.exp
+===================================================================
+--- a/src/libstdc++-v3/testsuite/lib/libstdc++.exp	(.../tags/gcc_6_1_0_release)
++++ b/src/libstdc++-v3/testsuite/lib/libstdc++.exp	(.../branches/gcc-6-branch)
+@@ -635,8 +635,9 @@
+ 	set object_file [file tail $obj]
+ 	# Compile with "-w" so that warnings issued by the compiler
+ 	# do not prevent compilation.
++	# Disable LTO so that ar/ranlib don't need the LTO plugin.
+ 	if { [v3_target_compile $srcdir/util/$f $object_file "object" \
+-		  [list "incdir=$srcdir" "additional_flags=-w"]]
++		  [list "incdir=$srcdir" "additional_flags=-w -fno-lto"]]
+ 	     != "" } {
+ 	    error "could not compile $f"
+ 	}
 Index: libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc
 ===================================================================
 --- a/src/libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc	(.../tags/gcc_6_1_0_release)
@@ -5204,7 +5254,15 @@ Index: libgcc/ChangeLog
 ===================================================================
 --- a/src/libgcc/ChangeLog	(.../tags/gcc_6_1_0_release)
 +++ b/src/libgcc/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,25 @@
+@@ -1,3 +1,33 @@
++2016-07-29  Bill Schmidt  <wschmidt at linux.vnet.ibm.com>
++
++	Backport from mainline
++	2016-07-29  Bill Schmidt  <wschmidt at linux.vnet.ibm.com>
++
++	* config/rs6000/_divkc3.c: Add copyright/license boilerplate.
++	* config/rs6000/_mulkc3.c: Likewise.
++
 +2016-07-14  Bill Schmidt  <wschmidt at linux.vnet.ibm.com>
 +
 +	Backport from mainline
@@ -5234,7 +5292,32 @@ Index: libgcc/config/rs6000/_divkc3.c
 ===================================================================
 --- a/src/libgcc/config/rs6000/_divkc3.c	(.../tags/gcc_6_1_0_release)
 +++ b/src/libgcc/config/rs6000/_divkc3.c	(.../branches/gcc-6-branch)
-@@ -0,0 +1,64 @@
+@@ -0,0 +1,89 @@
++/* Copyright (C) 1989-2016 Free Software Foundation, Inc.
++
++This file is part of GCC.
++
++GCC is free software; you can redistribute it and/or modify it under
++the terms of the GNU General Public License as published by the Free
++Software Foundation; either version 3, or (at your option) any later
++version.
++
++GCC is distributed in the hope that it will be useful, but WITHOUT ANY
++WARRANTY; without even the implied warranty of MERCHANTABILITY or
++FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++for more details.
++
++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/>.  */
++
++/* This is a temporary specialization of code from libgcc/libgcc2.c.  */
++
 +typedef float KFtype __attribute__ ((mode (KF)));
 +typedef __complex float KCtype __attribute__ ((mode (KC)));
 +
@@ -5342,7 +5425,32 @@ Index: libgcc/config/rs6000/_mulkc3.c
 ===================================================================
 --- a/src/libgcc/config/rs6000/_mulkc3.c	(.../tags/gcc_6_1_0_release)
 +++ b/src/libgcc/config/rs6000/_mulkc3.c	(.../branches/gcc-6-branch)
-@@ -0,0 +1,69 @@
+@@ -0,0 +1,94 @@
++/* Copyright (C) 1989-2016 Free Software Foundation, Inc.
++
++This file is part of GCC.
++
++GCC is free software; you can redistribute it and/or modify it under
++the terms of the GNU General Public License as published by the Free
++Software Foundation; either version 3, or (at your option) any later
++version.
++
++GCC is distributed in the hope that it will be useful, but WITHOUT ANY
++WARRANTY; without even the implied warranty of MERCHANTABILITY or
++FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++for more details.
++
++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/>.  */
++
++/* This is a temporary specialization of code from libgcc/libgcc2.c.  */
++
 +typedef float KFtype __attribute__ ((mode (KF)));
 +typedef __complex float KCtype __attribute__ ((mode (KC)));
 +
@@ -6452,7 +6560,7 @@ Index: gcc/DATESTAMP
 +++ b/src/gcc/DATESTAMP	(.../branches/gcc-6-branch)
 @@ -1 +1 @@
 -20160427
-+20160724
++20160802
 Index: gcc/tree-ssa-strlen.c
 ===================================================================
 --- a/src/gcc/tree-ssa-strlen.c	(.../tags/gcc_6_1_0_release)
@@ -7104,7 +7212,51 @@ Index: gcc/ChangeLog
 ===================================================================
 --- a/src/gcc/ChangeLog	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,2020 @@
+@@ -1,3 +1,2064 @@
++2016-08-01  Georg-Johann Lay  <avr at gjlay.de>
++
++	Backport from 2016-08-01 trunk r238948.
++
++	PR target/72767
++	* config/avr/avr.md (length) [branch]: Correct insn length
++	attribute for forward branches.
++
++2016-08-01  Georg-Johann Lay  <avr at gjlay.de>
++
++	Backport from 2016-06-16 trunk r237536.
++	2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj at atmel.com>
++
++	PR target/71151
++	* config/avr/avr.c (avr_asm_init_sections): Remove setup of
++	progmem_swtable_section.
++	(progmem_swtable_section): Remove.
++	(avr_asm_function_rodata_section): Remove.
++	(TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
++	* config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Define to 1.
++
++2016-07-29  Marek Polacek  <polacek at redhat.com>
++
++	Backport from mainline
++	2016-07-29  Marek Polacek  <polacek at redhat.com>
++
++	PR c/7652
++	* config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
++	(altivec_expand_st_builtin): Likewise.
++	* config/i386/i386.c (ix86_expand_args_builtin): Likewise.
++	(ix86_expand_round_builtin): Likewise.
++
++2016-07-27  Segher Boessenkool  <segher at kernel.crashing.org>
++
++	PR target/71216
++	* config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
++	when to emit a ".machine" pseudo-op.
++
++2016-07-26  Alan Modra  <amodra at gmail.com>
++
++	PR target/72103
++	* config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
++	sri->t_icode.
++
 +2016-07-21  Jakub Jelinek  <jakub at redhat.com>
 +
 +	PR sanitizer/71953
@@ -9125,7 +9277,7 @@ Index: gcc/ChangeLog
  2016-04-27  Release Manager
  
  	* GCC 6.1.0 released.
-@@ -49,7 +2066,7 @@
+@@ -49,7 +2110,7 @@
  	constant boolean.
  
  2016-04-20  Andrew Pinski  <apinski at cavium.com>
@@ -10964,9 +11116,8 @@ Index: gcc/testsuite/gcc.target/powerpc/divkc3-1.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/powerpc/divkc3-1.c	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/testsuite/gcc.target/powerpc/divkc3-1.c	(.../branches/gcc-6-branch)
-@@ -0,0 +1,23 @@
-+/* { dg-do run { target { powerpc64*-*-* && vsx_hw } } } */
-+/* { dg-require-effective-target powerpc_p8vector_ok } */
+@@ -0,0 +1,22 @@
++/* { dg-do run { target { powerpc64*-*-* && p8vector_hw } } } */
 +/* { dg-options "-mfloat128 -mvsx" } */
 +
 +void abort ();
@@ -11099,6 +11250,19 @@ Index: gcc/testsuite/gcc.target/powerpc/nan128-1.c
 +
 +  return 0;
 +}
+Index: gcc/testsuite/gcc.target/powerpc/pr63354.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/powerpc/pr63354.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/powerpc/pr63354.c	(.../branches/gcc-6-branch)
+@@ -3,7 +3,7 @@
+ 
+ /* { dg-do compile { target { powerpc*-*-linux* } } } */
+ /* { dg-options "-O2 -pg -mprofile-kernel" } */
+-/* { dg-require-effective-target powerpc64 } */
++/* { dg-require-effective-target lp64 } */
+ /* { dg-final { scan-assembler-not "mtlr" } } */
+ 
+ int foo(void)
 Index: gcc/testsuite/gcc.target/powerpc/pr68805.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/powerpc/pr68805.c	(.../tags/gcc_6_1_0_release)
@@ -14350,9 +14514,8 @@ Index: gcc/testsuite/gcc.target/powerpc/mulkc3-1.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/powerpc/mulkc3-1.c	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/testsuite/gcc.target/powerpc/mulkc3-1.c	(.../branches/gcc-6-branch)
-@@ -0,0 +1,23 @@
-+/* { dg-do run { target { powerpc64*-*-* && vsx_hw } } } */
-+/* { dg-require-effective-target powerpc_p8vector_ok } */
+@@ -0,0 +1,22 @@
++/* { dg-do run { target { powerpc64*-*-* && p8vector_hw } } } */
 +/* { dg-options "-mfloat128 -mvsx" } */
 +
 +void abort ();
@@ -14538,6 +14701,38 @@ Index: gcc/testsuite/gcc.target/arm/pr70830.c
 +    prints("IRQ" );
 +}
 +/* { dg-final { scan-assembler "ldmfd\tsp!, {r0, r1, r2, r3, ip, pc}\\^" } } */
+Index: gcc/testsuite/gcc.target/avr/pr71151-common.h
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/avr/pr71151-common.h	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/avr/pr71151-common.h	(.../branches/gcc-6-branch)
+@@ -0,0 +1,27 @@
++volatile char y;
++volatile char g;
++
++__attribute__((section(SECTION_NAME)))
++void foo(char x) 
++{
++	switch (x)
++	{
++		case 0:
++			y = 67; break;
++		case 1:
++			y = 20; break;
++		case 2:
++			y = 109; break;
++		case 3:
++			y = 33; break;
++		case 4:
++			y = 44; break;
++		case 5:
++			y = 37; break;
++		case 6:
++			y = 10; break;
++		case 7:
++			y = 98; break;
++	}
++	y = y + g;
++}
 Index: gcc/testsuite/gcc.target/avr/pr71103.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/avr/pr71103.c	(.../tags/gcc_6_1_0_release)
@@ -14559,6 +14754,202 @@ Index: gcc/testsuite/gcc.target/avr/pr71103.c
 +    return returnValue;
 +}
 +
+Index: gcc/testsuite/gcc.target/avr/pr71151-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/avr/pr71151-1.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/avr/pr71151-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,12 @@
++/* { dg-do compile } */
++/* { dg-options "-Os -ffunction-sections -fdata-sections" } */
++
++/* { dg-final { scan-assembler-not ".section	.progmem.gcc_sw_table.foo.str1.1" } } */
++/* { dg-final { scan-assembler ".section	.rodata.foo.str1.1,\"aMS\"" } } */
++
++
++extern void bar(const char*);
++void foo(void)
++{
++  bar("BBBBBBBBBB");
++}
+Index: gcc/testsuite/gcc.target/avr/pr71151-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/avr/pr71151-2.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/avr/pr71151-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,26 @@
++/* { dg-do run } */
++/* { dg-options "-Os -fno-tree-switch-conversion -ffunction-sections -fdata-sections" } */
++
++/* Make sure jumptables work properly if placed below 64 KB i.e. 2 byte
++   flash address for loading jump table entry, 2 byte entry, after
++   removing the special section placement hook. */
++
++#define SECTION_NAME ".foo"
++
++#include "exit-abort.h"
++#include "pr71151-common.h"
++
++int main()
++{
++	foo(5);
++	if (y != 37)
++		abort();
++
++	foo(0);
++	if (y != 67)
++		abort();
++
++	foo(7);
++	if (y != 98)
++		abort();
++}
+Index: gcc/testsuite/gcc.target/avr/pr71151-3.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/avr/pr71151-3.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/avr/pr71151-3.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,32 @@
++/* { dg-do run } */
++/* { dg-options "-Os -fno-tree-switch-conversion -ffunction-sections -mno-relax -fdata-sections -Wl,--section-start=.foo=0x10000" } */
++
++#ifdef __AVR_HAVE_ELPM__
++/* Make sure jumptables work properly if placed above 64 KB and below 128 KB,
++   i.e. 3 byte flash address for loading jump table entry and 2 byte jump table
++   entry, with relaxation disabled, after removing the special section
++   placement hook. */
++#define SECTION_NAME ".foo"
++#else
++/* No special jump table placement so that avrtest won't abort
++   for, e.g. ATmega64.  */
++#define SECTION_NAME ".text.foo"
++#endif
++
++#include "exit-abort.h"
++#include "pr71151-common.h"
++
++int main()
++{
++	foo(5);
++	if (y != 37)
++		abort();
++
++	foo(0);
++	if (y != 67)
++		abort();
++
++	foo(7);
++	if (y != 98)
++		abort();
++}
+Index: gcc/testsuite/gcc.target/avr/pr71151-4.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/avr/pr71151-4.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/avr/pr71151-4.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,32 @@
++/* { dg-do run } */
++/* { dg-options "-Os -fno-tree-switch-conversion -ffunction-sections -fdata-sections -mrelax -Wl,--section-start=.foo=0x10000" } */
++
++#ifdef __AVR_HAVE_ELPM__
++/* Make sure jumptables work properly if placed above 64 KB and below 128 KB,
++   i.e. 3 byte flash address for loading jump table entry and 2 byte jump
++   table entry, with relaxation enabled, after removing the special section
++   placement hook. */
++#define SECTION_NAME ".foo"
++#else
++/* No special jump table placement so that avrtest won't abort
++   for, e.g. ATmega64.  */
++#define SECTION_NAME ".text.foo"
++#endif
++
++#include "exit-abort.h"
++#include "pr71151-common.h"
++
++int main()
++{
++	foo(5);
++	if (y != 37)
++		abort();
++
++	foo(0);
++	if (y != 67)
++		abort();
++
++	foo(7);
++	if (y != 98)
++		abort();
++}
+Index: gcc/testsuite/gcc.target/avr/pr71151-5.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/avr/pr71151-5.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/avr/pr71151-5.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,32 @@
++/* { dg-do run } */
++/* { dg-options "-Os -fno-tree-switch-conversion -ffunction-sections -fdata-sections -mno-relax -Wl,--section-start=.foo=0x20000" } */
++
++#ifdef __AVR_3_BYTE_PC__
++/* Make sure jumptables work properly if placed above 128 KB, i.e. 3 byte
++   flash address for loading jump table entry and a jump table entry
++   that is a stub, with relaxation disabled, after removing the special
++   section placement hook. */
++#define SECTION_NAME ".foo"
++#else
++/* No special jump table placement so that avrtest won't abort
++   for, e.g. ATmega128.  */
++#define SECTION_NAME ".text.foo"
++#endif
++
++#include "exit-abort.h"
++#include "pr71151-common.h"
++
++int main()
++{
++	foo(5);
++	if (y != 37)
++		abort();
++
++	foo(0);
++	if (y != 67)
++		abort();
++
++	foo(7);
++	if (y != 98)
++		abort();
++}
+Index: gcc/testsuite/gcc.target/avr/pr71151-6.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/avr/pr71151-6.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/avr/pr71151-6.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,32 @@
++/* { dg-do run } */
++/* { dg-options "-Os -fno-tree-switch-conversion -ffunction-sections -fdata-sections -mrelax -Wl,--section-start=.foo=0x20000" } */
++
++#ifdef __AVR_3_BYTE_PC__
++/* Make sure jumptables work properly if placed above 128 KB, i.e. 3 byte
++   flash address for loading jump table entry and a jump table entry
++   that is a stub, with relaxation enabled, after removing the special
++   section placement hook. */
++#define SECTION_NAME ".foo"
++#else
++/* No special jump table placement so that avrtest won't abort
++   for, e.g. ATmega128.  */
++#define SECTION_NAME ".text.foo"
++#endif
++
++#include "exit-abort.h"
++#include "pr71151-common.h"
++
++int main()
++{
++	foo(5);
++	if (y != 37)
++		abort();
++
++	foo(0);
++	if (y != 67)
++		abort();
++
++	foo(7);
++	if (y != 98)
++		abort();
++}
 Index: gcc/testsuite/gcc.target/avr/torture/pr71103-2.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/avr/torture/pr71103-2.c	(.../tags/gcc_6_1_0_release)
@@ -14682,6 +15073,75 @@ Index: gcc/testsuite/gcc.target/avr/torture/pr71103-2.c
 +#endif /* have __flash1 */
 +#endif /* have __memx */
 +
+Index: gcc/testsuite/gcc.target/avr/pr71151-7.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/avr/pr71151-7.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/avr/pr71151-7.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,30 @@
++/* { dg-do run } */
++/* { dg-options "-Os -fno-tree-switch-conversion -ffunction-sections -fdata-sections -mno-relax -Wl,--section-start=.foo=0x1fffa" } */
++
++#ifdef __AVR_3_BYTE_PC__
++/* Make sure jumptables work properly if placed straddling 128 KB i.e
++   some entries below 128 KB and some above it, with relaxation disabled. */
++#define SECTION_NAME ".foo"
++#else
++/* No special jump table placement so that avrtest won't abort
++   for, e.g. ATmega128.  */
++#define SECTION_NAME ".text.foo"
++#endif
++
++#include "exit-abort.h"
++#include "pr71151-common.h"
++
++int main()
++{
++	foo(5);
++	if (y != 37)
++		abort();
++
++	foo(0);
++	if (y != 67)
++		abort();
++
++	foo(7);
++	if (y != 98)
++		abort();
++}
+Index: gcc/testsuite/gcc.target/avr/pr71151-8.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/avr/pr71151-8.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gcc.target/avr/pr71151-8.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,29 @@
++/* { dg-do run } */
++/* { dg-options "-Os -fno-tree-switch-conversion -ffunction-sections -fdata-sections -mrelax -Wl,--section-start=.foo=0x1fffa" } */
++
++#ifdef __AVR_3_BYTE_PC__
++/* Make sure jumptables work properly if placed straddling 128 KB i.e
++   some entries below 128 KB and some above it, with relaxation disabled. */
++#define SECTION_NAME ".foo"
++#else
++/* No special jump table placement so that avrtest won't abort.  */
++#define SECTION_NAME ".text.foo"
++#endif
++
++#include "exit-abort.h"
++#include "pr71151-common.h"
++
++int main()
++{
++	foo(5);
++	if (y != 37)
++		abort();
++
++	foo(0);
++	if (y != 67)
++		abort();
++
++	foo(7);
++	if (y != 98)
++		abort();
++}
 Index: gcc/testsuite/gcc.target/avr/pr50739.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/avr/pr50739.c	(.../tags/gcc_6_1_0_release)
@@ -18424,6 +18884,49 @@ Index: gcc/testsuite/gfortran.dg/select_type_35.f03
 +  end subroutine bar
 +end program foo
 +
+Index: gcc/testsuite/gfortran.dg/pr71883.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/pr71883.f90	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/pr71883.f90	(.../branches/gcc-6-branch)
+@@ -0,0 +1,38 @@
++! { dg-do compile }
++!
++! Test the fix for pr71883, in which an ICE would follow the error.
++!
++! Contributed by Gerhard Steinmetz  <gerhard.steinmetz.fortran at t-online.de>
++!
++program p
++   character(3), allocatable :: z(:,:)
++   z(1:2,1:2) = 'abc'
++   z(2,1) = z(12) ! { dg-error "Rank mismatch in array reference" }
++   z(21) = z(1,2) ! { dg-error "Rank mismatch in array reference" }
++contains
++   subroutine a
++      character(3), allocatable :: z(:,:)
++      z(1:2,1:2) = 'abc'
++      z(2,1) = z(-1) ! { dg-error "Rank mismatch in array reference" }
++      z(2,1) = z(99) ! { dg-error "Rank mismatch in array reference" }
++      z(2,1) = z(huge(0)) ! { dg-error "Rank mismatch in array reference" }
++      z(2,1) = z(-huge(0)) ! { dg-error "Rank mismatch in array reference" }
++      z(-1) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
++      z(99) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
++      z(huge(0)) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
++      z(-huge(0)) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
++  end subroutine
++
++   subroutine b
++      character(:), allocatable :: z(:,:)
++      z(1:2,1:2) = 'abc'
++      z(2,1) = z(-1) ! { dg-error "Rank mismatch in array reference" }
++      z(2,1) = z(99) ! { dg-error "Rank mismatch in array reference" }
++      z(2,1) = z(huge(0)) ! { dg-error "Rank mismatch in array reference" }
++      z(2,1) = z(-huge(0)) ! { dg-error "Rank mismatch in array reference" }
++      z(-1) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
++      z(99) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
++     z(huge(0)) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
++      z(-huge(0)) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
++   end subroutine
++end
 Index: gcc/testsuite/gfortran.dg/dec_union_6.f90
 ===================================================================
 --- a/src/gcc/testsuite/gfortran.dg/dec_union_6.f90	(.../tags/gcc_6_1_0_release)
@@ -20476,7 +20979,45 @@ Index: gcc/testsuite/ChangeLog
 ===================================================================
 --- a/src/gcc/testsuite/ChangeLog	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/testsuite/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,1286 @@
+@@ -1,3 +1,1324 @@
++2016-08-01  Georg-Johann Lay  <avr at gjlay.de>
++
++	Backport from 2016-06-16 trunk r237536, r237910.
++	2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj at atmel.com>
++
++	PR target/71151
++	* gcc.target/avr/pr71151-1.c: New test.
++	* gcc.target/avr/pr71151-2.c: New test.
++	* gcc.target/avr/pr71151-3.c: New test.
++	* gcc.target/avr/pr71151-4.c: New test.
++	* gcc.target/avr/pr71151-5.c: New test.
++	* gcc.target/avr/pr71151-6.c: New test.
++	* gcc.target/avr/pr71151-7.c: New test.
++	* gcc.target/avr/pr71151-8.c: New test.
++	* gcc.target/avr/pr71151-common.h: New file.
++
++2016-07-31  Bill Schmidt  <wschmidt at linux.vnet.ibm.com>
++
++	Backport from mainline
++	2016-07-31  Bill Schmidt  <wschmidt at linux.vnet.ibm.com>
++
++	* gcc.target/powerpc/divkc3-1.c: Require POWER8 hardware.
++	* gcc.target/powerpc/mulkc3-1.c: Likewise.
++
++2016-07-28  Paul Thomas  <pault at gcc.gnu.org>
++
++	Backport from trunk
++	PR fortran/71883
++	* gfortran.dg/pr71883.f90 : New test.
++
++2016-07-26  Bill Schmidt  <wschmidt at linux.vnet.ibm.com>
++
++	Backport from mainline
++	2016-07-26  Bill Schmidt  <wschmidt at linux.vnet.ibm.com>
++
++	* gcc.target/powerpc/pr63354.c: Require lp64 since
++	-mprofile-kernel is not legal with -m32.
++
 +2016-07-22  Andre Vehreschild  <vehre at gcc.gnu.org>
 +
 +	Backported from trunk:
@@ -20827,7 +21368,7 @@ Index: gcc/testsuite/ChangeLog
 +	Backport from mainline
 +	2016-07-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj at atmel.com>
 +
-+	PR target/50739	
++	PR target/50739
 +	* gcc.target/avr/pr50739.c: New test.
 +
 +2016-07-05  Bill Schmidt  <wschmidt at linux.vnet.ibm.com>
@@ -22307,6 +22848,39 @@ Index: gcc/testsuite/g++.dg/cpp0x/alignas7.C
 +
 +constexpr int al = alignof(double);
 +SA(alignof(A<al,char>::E) == al);
+Index: gcc/testsuite/g++.dg/cpp0x/variadic-nested1.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/variadic-nested1.C	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/variadic-nested1.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,9 @@
++// PR c++/71833
++// { dg-do compile { target c++11 } }
++
++template < typename ... Ts > struct A 
++{
++  template < Ts ..., typename ... Us > struct B {};
++};
++
++A <>::B < int > e;
+Index: gcc/testsuite/g++.dg/cpp0x/rv-bitfield3.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/rv-bitfield3.C	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/rv-bitfield3.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,14 @@
++// PR c++/71576
++// { dg-do compile { target c++11 } }
++
++template < typename T > T && foo ();
++
++struct A
++{
++  int i:5;
++};
++
++void foo ()
++{
++  int &&j = foo < A > ().i;
++}
 Index: gcc/testsuite/g++.dg/cpp0x/Wunused-variable-1.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/cpp0x/Wunused-variable-1.C	(.../tags/gcc_6_1_0_release)
@@ -22729,6 +23303,26 @@ Index: gcc/testsuite/g++.dg/cpp0x/constexpr-71828.C
 +
 +constexpr _Complex int a { 1, 2 };
 +static_assert (& __imag a != &__real a, "");
+Index: gcc/testsuite/g++.dg/cpp0x/constexpr-list1.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/constexpr-list1.C	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/constexpr-list1.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,15 @@
++// PR c++/72457
++// { dg-do compile { target c++11 } }
++
++struct A {
++  int i;
++  constexpr A(): i(0) {}
++};
++
++struct B: A { };
++
++struct C
++{
++  B b;
++  constexpr C() : b{} {}
++};
 Index: gcc/testsuite/g++.dg/torture/pr71452.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/torture/pr71452.C	(.../tags/gcc_6_1_0_release)
@@ -24779,9 +25373,9 @@ Index: gcc/cp/init.c
      }
  
 +  /* List-initialization from {} becomes value-initialization for non-aggregate
-+     classes with default constructors.  Handle this here so protected access
-+     works.  */
-+  if (init && TREE_CODE (init) == TREE_LIST)
++     classes with default constructors.  Handle this here when we're
++     initializing a base, so protected access works.  */
++  if (exp != true_exp && init && TREE_CODE (init) == TREE_LIST)
 +    {
 +      tree elt = TREE_VALUE (init);
 +      if (DIRECT_LIST_INIT_P (elt)
@@ -24983,7 +25577,21 @@ Index: gcc/cp/constexpr.c
 ===================================================================
 --- a/src/gcc/cp/constexpr.c	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/cp/constexpr.c	(.../branches/gcc-6-branch)
-@@ -1371,11 +1371,17 @@
+@@ -390,7 +390,12 @@
+ 	gcc_assert (TREE_TYPE (member) == vtbl_ptr_type_node);
+     }
+ 
+-  CONSTRUCTOR_APPEND_ELT (*vec, member, init);
++  /* Value-initialization can produce multiple initializers for the
++     same field; use the last one.  */
++  if (!vec_safe_is_empty (*vec) && (*vec)->last().index == member)
++    (*vec)->last().value = init;
++  else
++    CONSTRUCTOR_APPEND_ELT (*vec, member, init);
+   return true;
+ }
+ 
+@@ -1371,11 +1376,17 @@
    else
      {
        new_call.fundef = retrieve_constexpr_fundef (fun);
@@ -25003,7 +25611,7 @@ Index: gcc/cp/constexpr.c
  		error_at (loc, "%qD called in a constant expression before its "
  			  "definition is complete", fun);
  	      else if (DECL_INITIAL (fun))
-@@ -1444,9 +1450,19 @@
+@@ -1444,9 +1455,19 @@
      }
    else
      {
@@ -25025,7 +25633,7 @@ Index: gcc/cp/constexpr.c
  	  tree body, parms, res;
  
  	  /* Reuse or create a new unshared copy of this function's body.  */
-@@ -1750,6 +1766,10 @@
+@@ -1750,6 +1771,10 @@
  	       && (null_member_pointer_value_p (lhs)
  		   || null_member_pointer_value_p (rhs)))
  	r = constant_boolean_node (!is_code_eq, type);
@@ -25036,7 +25644,7 @@ Index: gcc/cp/constexpr.c
      }
  
    if (r == NULL_TREE)
-@@ -3714,6 +3734,19 @@
+@@ -3714,6 +3739,19 @@
  
      case REALPART_EXPR:
      case IMAGPART_EXPR:
@@ -25056,7 +25664,7 @@ Index: gcc/cp/constexpr.c
      case CONJ_EXPR:
      case FIX_TRUNC_EXPR:
      case FLOAT_EXPR:
-@@ -5140,10 +5173,12 @@
+@@ -5140,10 +5178,12 @@
      case GOTO_EXPR:
        {
  	tree *target = &TREE_OPERAND (t, 0);
@@ -25073,7 +25681,7 @@ Index: gcc/cp/constexpr.c
        }
  
      default:
-@@ -5151,7 +5186,7 @@
+@@ -5151,7 +5191,7 @@
  	return false;
  
        sorry ("unexpected AST of kind %s", get_tree_code_name (TREE_CODE (t)));
@@ -26217,7 +26825,23 @@ Index: gcc/cp/ChangeLog
 ===================================================================
 --- a/src/gcc/cp/ChangeLog	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/cp/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,497 @@
+@@ -1,3 +1,513 @@
++2016-07-29  Jason Merrill  <jason at redhat.com>
++
++	PR c++/72457
++	* init.c (expand_aggr_init_1): Only handle value-init of bases.
++	* constexpr.c (build_data_member_initialization): Handle multiple
++	initializers for the same field.
++
++2016-07-25  Jason Merrill  <jason at redhat.com>
++
++	PR c++/71576
++	* call.c (convert_like_real): Use lvalue_kind.
++
++	PR c++/71833
++	* pt.c (coerce_template_parameter_pack): Fix logic for
++	pack index.
++
 +2016-07-23  Jason Merrill  <jason at redhat.com>
 +
 +	PR c++/55922
@@ -27267,7 +27891,36 @@ Index: gcc/cp/pt.c
  
  	  tree gen_tmpl = most_general_template (tmpl);
  
-@@ -7823,7 +7837,7 @@
+@@ -7372,11 +7386,12 @@
+ 
+   /* Convert the remaining arguments, which will be a part of the
+      parameter pack "parm".  */
++  int first_pack_arg = arg_idx;
+   for (; arg_idx < nargs; ++arg_idx)
+     {
+       tree arg = TREE_VEC_ELT (inner_args, arg_idx);
+       tree actual_parm = TREE_VALUE (parm);
+-      int pack_idx = arg_idx - parm_idx;
++      int pack_idx = arg_idx - first_pack_arg;
+ 
+       if (packed_parms)
+         {
+@@ -7405,12 +7420,12 @@
+       TREE_VEC_ELT (packed_args, pack_idx) = arg;
+     }
+ 
+-  if (arg_idx - parm_idx < TREE_VEC_LENGTH (packed_args)
++  if (arg_idx - first_pack_arg < TREE_VEC_LENGTH (packed_args)
+       && TREE_VEC_LENGTH (packed_args) > 0)
+     {
+       if (complain & tf_error)
+ 	error ("wrong number of template arguments (%d, should be %d)",
+-	       arg_idx - parm_idx, TREE_VEC_LENGTH (packed_args));
++	       arg_idx - first_pack_arg, TREE_VEC_LENGTH (packed_args));
+       return error_mark_node;
+     }
+ 
+@@ -7823,7 +7838,7 @@
  
  /* Returns 1 if template args OT and NT are equivalent.  */
  
@@ -27276,7 +27929,7 @@ Index: gcc/cp/pt.c
  template_args_equal (tree ot, tree nt)
  {
    if (nt == ot)
-@@ -8580,7 +8594,9 @@
+@@ -8580,7 +8595,9 @@
  	     for parameters in the TYPE_DECL of the alias template
  	     done earlier.  So be careful while getting the template
  	     of FOUND.  */
@@ -27287,7 +27940,7 @@ Index: gcc/cp/pt.c
  	    ? TYPE_TI_TEMPLATE (TREE_TYPE (found))
  	    : CLASSTYPE_TI_TEMPLATE (found);
  	}
-@@ -8680,7 +8696,7 @@
+@@ -8680,7 +8697,7 @@
      {
        if (complain & tf_error)
  	{
@@ -27296,7 +27949,7 @@ Index: gcc/cp/pt.c
  	  diagnose_constraints (location_of (var), templ, arglist);
  	}
        return error_mark_node;
-@@ -9071,6 +9087,8 @@
+@@ -9071,6 +9088,8 @@
  
    if (tinst_depth >= max_tinst_depth)
      {
@@ -27305,7 +27958,7 @@ Index: gcc/cp/pt.c
        fatal_error (input_location,
  		   "template instantiation depth exceeds maximum of %d"
                     " (use -ftemplate-depth= to increase the maximum)",
-@@ -9554,7 +9572,7 @@
+@@ -9554,7 +9573,7 @@
      return 0;
    else if (COMPLETE_TYPE_P (type))
      return 1;
@@ -27314,7 +27967,7 @@ Index: gcc/cp/pt.c
      return can_complete_type_without_circularity (TREE_TYPE (type));
    else if (CLASS_TYPE_P (type)
  	   && TYPE_BEING_DEFINED (TYPE_MAIN_VARIANT (type)))
-@@ -9649,20 +9667,23 @@
+@@ -9649,20 +9668,23 @@
        }
  
    if (last_dep)
@@ -27346,7 +27999,7 @@ Index: gcc/cp/pt.c
        }
  
    return attributes;
-@@ -10118,17 +10139,12 @@
+@@ -10118,17 +10140,12 @@
  			  if (can_complete_type_without_circularity (rtype))
  			    complete_type (rtype);
  
@@ -27369,7 +28022,7 @@ Index: gcc/cp/pt.c
  			      cxx_incomplete_type_error (r, rtype);
  			      TREE_TYPE (r) = error_mark_node;
  			    }
-@@ -10732,6 +10748,12 @@
+@@ -10732,6 +10749,12 @@
    tree pack = tsubst_fold_expr_pack (t, args, complain, in_decl);
    if (pack == error_mark_node)
      return error_mark_node;
@@ -27382,7 +28035,7 @@ Index: gcc/cp/pt.c
    if (TREE_VEC_LENGTH (pack) == 0)
      return expand_empty_fold (t, complain);
    else
-@@ -10754,6 +10776,14 @@
+@@ -10754,6 +10777,14 @@
    if (init == error_mark_node)
      return error_mark_node;
  
@@ -27397,7 +28050,7 @@ Index: gcc/cp/pt.c
    tree vec = make_tree_vec (TREE_VEC_LENGTH (pack) + 1);
    TREE_VEC_ELT (vec, 0) = init;
    for (int i = 0; i < TREE_VEC_LENGTH (pack); ++i)
-@@ -10795,6 +10825,12 @@
+@@ -10795,6 +10826,12 @@
    tree pack = tsubst_fold_expr_pack (t, args, complain, in_decl);
    if (pack == error_mark_node)
      return error_mark_node;
@@ -27410,7 +28063,7 @@ Index: gcc/cp/pt.c
    if (TREE_VEC_LENGTH (pack) == 0)
      return expand_empty_fold (t, complain);
    else
-@@ -10817,6 +10853,14 @@
+@@ -10817,6 +10854,14 @@
    if (init == error_mark_node)
      return error_mark_node;
  
@@ -27425,7 +28078,7 @@ Index: gcc/cp/pt.c
    int n = TREE_VEC_LENGTH (pack);
    tree vec = make_tree_vec (n + 1);
    for (int i = 0; i < n; ++i)
-@@ -12285,6 +12329,14 @@
+@@ -12285,6 +12330,14 @@
  	    local_p = true;
  	    /* Subsequent calls to pushdecl will fill this in.  */
  	    ctx = NULL_TREE;
@@ -27440,7 +28093,7 @@ Index: gcc/cp/pt.c
  	    spec = retrieve_local_specialization (t);
  	  }
  	/* If we already have the specialization we need, there is
-@@ -13151,13 +13203,20 @@
+@@ -13151,13 +13204,20 @@
  
  		if (code == BOUND_TEMPLATE_TEMPLATE_PARM)
  		  {
@@ -27463,7 +28116,7 @@ Index: gcc/cp/pt.c
  		  }
  	      }
  	    break;
-@@ -13678,10 +13737,17 @@
+@@ -13678,10 +13738,17 @@
      if (!object_type)
        object_type = current_class_type;
  
@@ -27485,7 +28138,7 @@ Index: gcc/cp/pt.c
      return baselink;
  }
  
-@@ -13740,8 +13806,10 @@
+@@ -13740,8 +13807,10 @@
      {
        if (is_template)
  	expr = build_min_nt_loc (loc, TEMPLATE_ID_EXPR, expr, template_args);
@@ -27498,7 +28151,7 @@ Index: gcc/cp/pt.c
      }
  
    if (!BASELINK_P (name) && !DECL_P (expr))
-@@ -13821,6 +13889,9 @@
+@@ -13821,6 +13890,9 @@
        && TREE_CODE (expr) != OFFSET_REF)
      expr = convert_from_reference (expr);
  
@@ -27508,7 +28161,7 @@ Index: gcc/cp/pt.c
    return expr;
  }
  
-@@ -13996,7 +14067,8 @@
+@@ -13996,7 +14068,8 @@
      case FUNCTION_DECL:
        if (DECL_LANG_SPECIFIC (t) && DECL_TEMPLATE_INFO (t))
  	r = tsubst (t, args, complain, in_decl);
@@ -27518,7 +28171,7 @@ Index: gcc/cp/pt.c
  	{
  	  r = retrieve_local_specialization (t);
  	  if (r == NULL_TREE)
-@@ -14040,14 +14112,9 @@
+@@ -14040,14 +14113,9 @@
  		  gcc_assert (cp_unevaluated_operand || TREE_STATIC (r)
  			      || decl_constant_var_p (r)
  			      || errorcount || sorrycount);
@@ -27536,7 +28189,7 @@ Index: gcc/cp/pt.c
  		}
  	      /* Remember this for subsequent uses.  */
  	      if (local_specializations)
-@@ -14145,7 +14212,8 @@
+@@ -14145,7 +14213,8 @@
  	      len = TREE_VEC_LENGTH (expanded);
  	      /* Set TREE_USED for the benefit of -Wunused.  */
  	      for (int i = 0; i < len; i++)
@@ -27546,7 +28199,7 @@ Index: gcc/cp/pt.c
  	    }
  
  	  if (expanded == error_mark_node)
-@@ -17376,6 +17444,7 @@
+@@ -17376,6 +17445,7 @@
  
    tree pattern = DECL_TEMPLATE_RESULT (gen_tmpl);
  
@@ -27554,7 +28207,7 @@ Index: gcc/cp/pt.c
    if (VAR_P (pattern))
      {
        /* We need to determine if we're using a partial or explicit
-@@ -17387,14 +17456,16 @@
+@@ -17387,14 +17457,16 @@
  	pattern = error_mark_node;
        else if (elt)
  	{
@@ -27575,7 +28228,7 @@ Index: gcc/cp/pt.c
    if (DECL_CLASS_SCOPE_P (gen_tmpl))
      pop_nested_class ();
    pop_from_top_level ();
-@@ -20848,36 +20919,6 @@
+@@ -20848,36 +20920,6 @@
    return decl;
  }
  
@@ -27612,7 +28265,7 @@ Index: gcc/cp/pt.c
  /* Return the most specialized of the template partial specializations
     which can produce TARGET, a specialization of some class or variable
     template.  The value returned is actually a TREE_LIST; the TREE_VALUE is
-@@ -21379,14 +21420,12 @@
+@@ -21379,14 +21421,12 @@
     to instantiate the DECL, we regenerate it.  */
  
  static void
@@ -27628,7 +28281,7 @@ Index: gcc/cp/pt.c
    code_pattern = DECL_TEMPLATE_RESULT (tmpl);
  
    /* Make sure that we can see identifiers, and compute access
-@@ -21702,7 +21741,7 @@
+@@ -21702,7 +21742,7 @@
      return d;
  
    gen_tmpl = most_general_template (tmpl);
@@ -27637,7 +28290,7 @@ Index: gcc/cp/pt.c
  
    if (tmpl != gen_tmpl)
      /* We should already have the extra args.  */
-@@ -21721,6 +21760,20 @@
+@@ -21721,6 +21761,20 @@
    /* Set TD to the template whose DECL_TEMPLATE_RESULT is the pattern
       for the instantiation.  */
    td = template_for_substitution (d);
@@ -27658,7 +28311,7 @@ Index: gcc/cp/pt.c
    code_pattern = DECL_TEMPLATE_RESULT (td);
  
    /* We should never be trying to instantiate a member of a class
-@@ -21733,9 +21786,7 @@
+@@ -21733,9 +21787,7 @@
         outside the class, we may have too many arguments.  Drop the
         ones we don't need.  The same is true for specializations.  */
      args = get_innermost_template_args
@@ -27669,7 +28322,7 @@ Index: gcc/cp/pt.c
  
    if (TREE_CODE (d) == FUNCTION_DECL)
      {
-@@ -21748,7 +21799,10 @@
+@@ -21748,7 +21800,10 @@
    else
      {
        deleted_p = false;
@@ -27681,7 +28334,7 @@ Index: gcc/cp/pt.c
      }
  
    /* We may be in the middle of deferred access check.  Disable it now.  */
-@@ -21901,7 +21955,7 @@
+@@ -21901,7 +21956,7 @@
  
    /* Regenerate the declaration in case the template has been modified
       by a subsequent redeclaration.  */
@@ -27690,7 +28343,7 @@ Index: gcc/cp/pt.c
  
    /* We already set the file and line above.  Reset them now in case
       they changed as a result of calling regenerate_decl_from_template.  */
-@@ -23628,7 +23682,10 @@
+@@ -23628,7 +23683,10 @@
    if (0 && flag_checking && cxx_dialect >= cxx11
        /* Don't do this during nsdmi parsing as it can lead to
  	 unexpected recursive instantiations.  */
@@ -27702,7 +28355,7 @@ Index: gcc/cp/pt.c
      fold_non_dependent_expr (expr);
  
    /* Preserve OVERLOADs; the functions must be available to resolve
-@@ -23766,7 +23823,7 @@
+@@ -23766,7 +23824,7 @@
    else
      expr = build_concept_check (build_overload (tmpl, NULL_TREE), type, args);
  
@@ -27711,7 +28364,7 @@ Index: gcc/cp/pt.c
    PLACEHOLDER_TYPE_CONSTRAINTS (type) = constr;
  
    /* Our canonical type depends on the constraint.  */
-@@ -23918,8 +23975,11 @@
+@@ -23918,8 +23976,11 @@
  /* Replace occurrences of 'auto' in TYPE with the appropriate type deduced
     from INIT.  AUTO_NODE is the TEMPLATE_TYPE_PARM used for 'auto' in TYPE.
     The CONTEXT determines the context in which auto deduction is performed
@@ -27724,7 +28377,7 @@ Index: gcc/cp/pt.c
  tree
  do_auto_deduction (tree type, tree init, tree auto_node,
                     tsubst_flags_t complain, auto_deduction_context context)
-@@ -23965,8 +24025,10 @@
+@@ -23965,8 +24026,10 @@
  
    if (AUTO_IS_DECLTYPE (auto_node))
      {
@@ -27737,7 +28390,7 @@ Index: gcc/cp/pt.c
        targs = make_tree_vec (1);
        TREE_VEC_ELT (targs, 0)
  	= finish_decltype_type (init, id, tf_warning_or_error);
-@@ -24023,9 +24085,20 @@
+@@ -24023,9 +24086,20 @@
    if (flag_concepts && !processing_template_decl)
      if (tree constr = PLACEHOLDER_TYPE_CONSTRAINTS (auto_node))
        {
@@ -27760,7 +28413,7 @@ Index: gcc/cp/pt.c
              if (complain & tf_warning_or_error)
                {
                  switch (context)
-@@ -24344,18 +24417,6 @@
+@@ -24344,18 +24418,6 @@
  
  static GTY (()) hash_table<constr_hasher> *decl_constraints;
  
@@ -27779,7 +28432,7 @@ Index: gcc/cp/pt.c
  /* Returns the template constraints of declaration T. If T is not
     constrained, return NULL_TREE. Note that T must be non-null. */
  
-@@ -24362,6 +24423,9 @@
+@@ -24362,6 +24424,9 @@
  tree
  get_constraints (tree t)
  {
@@ -27789,7 +28442,7 @@ Index: gcc/cp/pt.c
    gcc_assert (DECL_P (t));
    if (TREE_CODE (t) == TEMPLATE_DECL)
      t = DECL_TEMPLATE_RESULT (t);
-@@ -24383,7 +24447,7 @@
+@@ -24383,7 +24448,7 @@
  {
    if (!ci)
      return;
@@ -27798,7 +28451,7 @@ Index: gcc/cp/pt.c
    if (TREE_CODE (t) == TEMPLATE_DECL)
      t = DECL_TEMPLATE_RESULT (t);
    gcc_assert (!get_constraints (t));
-@@ -24409,12 +24473,244 @@
+@@ -24409,12 +24474,244 @@
      decl_constraints->clear_slot (slot);
  }
  
@@ -30833,6 +31486,15 @@ Index: gcc/cp/call.c
  	    {
  	      maybe_print_user_conv_context (convs);
  	      if (fn)
+@@ -6640,7 +6650,7 @@
+ 	       for a non-reference copy-initialization (8.5).  */
+ 
+ 	    tree type = TREE_TYPE (ref_type);
+-	    cp_lvalue_kind lvalue = real_lvalue_p (expr);
++	    cp_lvalue_kind lvalue = lvalue_kind (expr);
+ 
+ 	    gcc_assert (same_type_ignoring_top_level_qualifiers_p
+ 			(type, next_conversion (convs)->type));
 @@ -7169,10 +7179,11 @@
  unsafe_copy_elision_p (tree target, tree exp)
  {
@@ -34293,6 +34955,26 @@ Index: gcc/fortran/gfortran.h
  
  /* primary.c */
  symbol_attribute gfc_variable_attr (gfc_expr *, gfc_typespec *);
+Index: gcc/fortran/error.c
+===================================================================
+--- a/src/gcc/fortran/error.c	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/fortran/error.c	(.../branches/gcc-6-branch)
+@@ -1303,10 +1303,15 @@
+ void
+ gfc_internal_error (const char *gmsgid, ...)
+ {
++  int e, w;
+   va_list argp;
+   diagnostic_info diagnostic;
+   rich_location rich_loc (line_table, UNKNOWN_LOCATION);
+ 
++  gfc_get_errors (&w, &e);
++  if (e > 0)
++    exit(EXIT_FAILURE);
++
+   va_start (argp, gmsgid);
+   diagnostic_set_info (&diagnostic, gmsgid, &argp, &rich_loc, DK_ICE);
+   report_diagnostic (&diagnostic);
 Index: gcc/fortran/lang.opt
 ===================================================================
 --- a/src/gcc/fortran/lang.opt	(.../tags/gcc_6_1_0_release)
@@ -34316,7 +34998,17 @@ Index: gcc/fortran/ChangeLog
 ===================================================================
 --- a/src/gcc/fortran/ChangeLog	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/fortran/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,263 @@
+@@ -1,3 +1,273 @@
++2016-07-28  Steven G. Kargl  <kargl at gcc.gnu.org>
++	    Thomas Koenig  <tkoenig at gcc.gnu.org>
++
++	Backported from trunk:
++	PR fortran/71883
++	* frontend-passes.c (gfc_run_passes): Bail out if there are any
++	errors.
++	* error.c (gfc_internal_error): If there are any errors in the
++	buffer, exit with EXIT_FAILURE.
++
 +2016-07-22  Andre Vehreschild  <vehre at gcc.gnu.org>
 +
 +	Backported from trunk:
@@ -35018,7 +35710,26 @@ Index: gcc/fortran/frontend-passes.c
 ===================================================================
 --- a/src/gcc/fortran/frontend-passes.c	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/fortran/frontend-passes.c	(.../branches/gcc-6-branch)
-@@ -174,8 +174,17 @@
+@@ -125,6 +125,7 @@
+   doloop_level = 0;
+   doloop_warn (ns);
+   doloop_list.release ();
++  int w, e;
+ 
+   if (flag_frontend_optimize)
+     {
+@@ -136,6 +137,10 @@
+       expr_array.release ();
+     }
+ 
++  gfc_get_errors (&w, &e);
++  if (e > 0)
++   return;
++
+   if (flag_realloc_lhs)
+     realloc_strings (ns);
+ }
+@@ -174,8 +179,17 @@
  
    if (!gfc_check_dependency (expr1, expr2, true))
      return 0;
@@ -35037,7 +35748,7 @@ Index: gcc/fortran/frontend-passes.c
    n = create_var (expr2, "trim");
    co->expr2 = n;
    return 0;
-@@ -656,12 +665,10 @@
+@@ -656,12 +670,10 @@
      {
        gfc_expr *length;
  
@@ -35052,7 +35763,7 @@ Index: gcc/fortran/frontend-passes.c
        else
  	symbol->attr.allocatable = 1;
      }
-@@ -2812,6 +2819,12 @@
+@@ -2812,6 +2824,12 @@
    if (in_where)
      return 0;
  
@@ -194969,7 +195680,11 @@ Index: gcc/po/ChangeLog
 ===================================================================
 --- a/src/gcc/po/ChangeLog	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/po/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,37 @@
+@@ -1,3 +1,41 @@
++2016-07-28  Joseph Myers  <joseph at codesourcery.com>
++
++	* sv.po: Update.
++
 +2016-06-06  Joseph Myers  <joseph at codesourcery.com>
 +
 +	* fr.po: Update.
@@ -506852,7 +507567,7 @@ Index: gcc/po/sv.po
 -"POT-Creation-Date: 2016-01-31 15:50+0000\n"
 -"PO-Revision-Date: 2016-04-24 20:48+0200\n"
 +"POT-Creation-Date: 2016-04-21 15:24+0000\n"
-+"PO-Revision-Date: 2016-05-14 00:01+0200\n"
++"PO-Revision-Date: 2016-07-15 19:05+0200\n"
  "Last-Translator: Göran Uddeborg <goeran at uddeborg.se>\n"
  "Language-Team: Swedish <tp-sv at listor.tp-sv.se>\n"
  "Language: sv\n"
@@ -506938,6 +507653,15 @@ Index: gcc/po/sv.po
  #: config/pdp11/pdp11.c:1732
  #, c-format
  msgid "invalid expression as operand"
+@@ -301,7 +301,7 @@
+ 
+ #: gcc.c:3388
+ msgid "                           Display specific types of command line options.\n"
+-msgstr "                           Visa specifika typer av kommandoradsflaggor-\n"
++msgstr "                           Visa specifika typer av kommandoradsflaggor.\n"
+ 
+ #: gcc.c:3390
+ msgid "  (Use '-v --help' to display command line options of sub-processes).\n"
 @@ -538,22 +538,22 @@
  msgid "Preprocessed source stored into %s file, please attach this to your bugreport.\n"
  msgstr "Preprocessad källkod lagrad i filen %s, bifoga den till din felrapport.\n"
@@ -507022,6 +507746,24 @@ Index: gcc/po/sv.po
  #, c-format
  msgid ""
  "Use \"-Wa,OPTION\" to pass \"OPTION\" to the assembler.\n"
+@@ -634,7 +634,7 @@
+ #: gcov-tool.c:167 gcov-tool.c:261 gcov-tool.c:417
+ #, c-format
+ msgid "    -v, --verbose                       Verbose mode\n"
+-msgstr "    -v, --version                       Utförligt läge\n"
++msgstr "    -v, --verbose                       Utförligt läge\n"
+ 
+ #: gcov-tool.c:168 gcov-tool.c:262
+ #, c-format
+@@ -709,7 +709,7 @@
+ #: gcov-tool.c:421
+ #, c-format
+ msgid "    -o, --object                        Print object level info\n"
+-msgstr "    -o, --objekt                        Skriv objektnivåinfo\n"
++msgstr "    -o, --object                        Skriv objektnivåinfo\n"
+ 
+ #: gcov-tool.c:422
+ #, c-format
 @@ -1103,7 +1103,7 @@
  msgid "GCSE disabled"
  msgstr "GCSE avslagen"
@@ -507204,6 +507946,24 @@ Index: gcc/po/sv.po
  #: cp/error.c:992 c-family/c-pretty-print.c:408
  #, gcc-internal-format
  msgid "<anonymous>"
+@@ -2080,7 +2080,7 @@
+ #: params.def:675
+ #, no-c-format
+ msgid "The lower bound for a buffer to be considered for stack smashing protection."
+-msgstr "Den undre gränsen för att en buffer skall övervägas för skydd mot stacksprängning."
++msgstr "Den undre gränsen för att en buffert skall övervägas för skydd mot stacksprängning."
+ 
+ #: params.def:680
+ #, no-c-format
+@@ -2140,7 +2140,7 @@
+ #: params.def:773
+ #, no-c-format
+ msgid "Maximum length of partial antic set when performing tree pre optimization."
+-msgstr "Maximal längd på partial förväntansmängd när föroptimeringar på träd görs."
++msgstr "Maximal längd på partiell förväntansmängd när föroptimeringar på träd görs."
+ 
+ #: params.def:783
+ #, no-c-format
 @@ -2439,49 +2439,59 @@
  
  #: params.def:1155
@@ -507701,6 +508461,15 @@ Index: gcc/po/sv.po
  #, c-format
  msgid "invalid %%p value"
  msgstr "ogiltigt %%p-värde"
+@@ -3416,7 +3426,7 @@
+ #: config/iq2000/iq2000.c:3202
+ #, c-format
+ msgid "invalid use of %%d, %%x, or %%X"
+-msgstr "ogiltig användning av %%d, %%x eller %%x"
++msgstr "ogiltig användning av %%d, %%x eller %%X"
+ 
+ #: config/lm32/lm32.c:507
+ #, c-format
 @@ -3472,7 +3482,7 @@
  msgstr "efterinkrementeringsadress är inte ett register"
  
@@ -508064,9 +508833,12 @@ Index: gcc/po/sv.po
  msgid "binary operator does not support mixing vector bool with floating point vector operands"
  msgstr "binär operator stödjer inte blandning av operanderna vektorboolean och flyttalsvektor"
  
-@@ -3881,55 +3891,55 @@
+@@ -3879,57 +3889,57 @@
+ #: config/sh/sh.c:1340
+ #, c-format
  msgid "invalid operand to %%S"
- msgstr "ogiltig operand till %%R"
+-msgstr "ogiltig operand till %%R"
++msgstr "ogiltig operand till %%S"
  
 -#: config/sh/sh.c:10038
 +#: config/sh/sh.c:10040
@@ -508416,6 +509188,15 @@ Index: gcc/po/sv.po
  msgid "candidate 2:"
  msgstr "kandidat 2:"
  
+@@ -4436,7 +4446,7 @@
+ #: cp/error.c:3291
+ #, c-format
+ msgid "In copy constructor %qs"
+-msgstr "I kopieringskonstuerare %qs"
++msgstr "I kopieringskonstruerare %qs"
+ 
+ #: cp/error.c:3293
+ #, c-format
 @@ -4511,98 +4521,98 @@
  msgid "%r%s:%d:%R   in constexpr expansion of %qs"
  msgstr "%r%s:%d:%R   i expansion av konstantuttryck i från %qs"
@@ -508860,6 +509641,15 @@ Index: gcc/po/sv.po
  #: fortran/lang.opt:146
  msgid "-J<directory>\tPut MODULE files in 'directory'."
  msgstr "-J<katalog>\tLägg MODULE-filer i ”katalog”."
+@@ -5697,7 +5711,7 @@
+ 
+ #: fortran/lang.opt:262
+ msgid "Warn on intrinsics not part of the selected standard."
+-msgstr "Inbyggd för inbyggda om inte är med i den valda standarden."
++msgstr "Inbyggd för inbyggda som inte är med i den valda standarden."
+ 
+ #: fortran/lang.opt:274
+ msgid "Warn about USE statements that have no ONLY qualifier."
 @@ -5820,10 +5834,10 @@
  msgid "Allow dollar signs in entity names."
  msgstr "Tillåt dollartecken i entitetsnamn."
@@ -508875,6 +509665,15 @@ Index: gcc/po/sv.po
  msgid "Does nothing. Preserved for backward compatibility."
  msgstr "Gör ingenting.  Bevarad för bakåtkompatibilitet."
  
+@@ -5922,7 +5936,7 @@
+ 
+ #: fortran/lang.opt:551
+ msgid "-finline-matmul-limit=<n>\tSpecify the size of the largest matrix for which matmul will be inlined."
+-msgstr "-fblas-matmul-limit=<n>\tSpecificera storleken på den största matris för vilken matmul kommer inline:as."
++msgstr "-finline-matmul-limit=<n>\tSpecificera storleken på den största matris för vilken matmul kommer inline:as."
+ 
+ #: fortran/lang.opt:555
+ msgid "-fmax-array-constructor=<n>\tMaximum number of objects in an array constructor."
 @@ -5948,121 +5962,121 @@
  msgid "Set default accessibility of module entities to PRIVATE."
  msgstr "Sätt modulentiteternas standardtillgänglighet till PRIVATE."
@@ -509050,6 +509849,15 @@ Index: gcc/po/sv.po
  #, c-format
  msgid "missing path after %qs"
  msgstr "sökväg saknas efter %qs"
+@@ -6239,7 +6253,7 @@
+ 
+ #: c-family/c.opt:339
+ msgid "Warn about memory access errors found by Pointer Bounds Checker."
+-msgstr "Farna för minnesåtkomstfel som hittas av pekargränskontrollen."
++msgstr "Varna för minnesåtkomstfel som hittas av pekargränskontrollen."
+ 
+ #: c-family/c.opt:343
+ msgid "Warn about variables that might be changed by \"longjmp\" or \"vfork\"."
 @@ -6374,1066 +6388,1070 @@
  msgstr "Varna när typkvalificerare ignoreras."
  
@@ -509419,7 +510227,8 @@ Index: gcc/po/sv.po
 -#: c-family/c.opt:801
 +#: c-family/c.opt:813
  msgid "Warn if a selector has multiple methods."
- msgstr "Varna för en väljare har multipla metoder."
+-msgstr "Varna för en väljare har multipla metoder."
++msgstr "Varna om en väljare har multipla metoder."
  
 -#: c-family/c.opt:805
 +#: c-family/c.opt:817
@@ -509564,7 +510373,8 @@ Index: gcc/po/sv.po
 -#: c-family/c.opt:953
 +#: c-family/c.opt:969
  msgid "Warn about questionable usage of the macros used to retrieve variable arguments."
- msgstr "Varna för tveksam användning av de makron som används för att hämta variabla argument.."
+-msgstr "Varna för tveksam användning av de makron som används för att hämta variabla argument.."
++msgstr "Varna för tveksam användning av de makron som används för att hämta variabla argument."
  
 -#: c-family/c.opt:957
 +#: c-family/c.opt:973
@@ -509584,7 +510394,8 @@ Index: gcc/po/sv.po
 -#: c-family/c.opt:969
 +#: c-family/c.opt:985
  msgid "Warn if a virtual base has a non-trivial move assignment operator."
- msgstr "Varna om en virtuella bas har en icketrivial flyttningstilldelningsoperator."
+-msgstr "Varna om en virtuella bas har en icketrivial flyttningstilldelningsoperator."
++msgstr "Varna om en virtuell bas har en icketrivial flyttningstilldelningsoperator."
  
 -#: c-family/c.opt:973
 +#: c-family/c.opt:989
@@ -509609,7 +510420,8 @@ Index: gcc/po/sv.po
 -#: c-family/c.opt:989
 +#: c-family/c.opt:1005
  msgid "A synonym for -std=c89 (for C) or -std=c++98 (for C++)."
- msgstr "En synonym för -std=c89 (för C) or -std=c++98 (för C++)."
+-msgstr "En synonym för -std=c89 (för C) or -std=c++98 (för C++)."
++msgstr "En synonym för -std=c89 (för C) eller -std=c++98 (för C++)."
  
 -#: c-family/c.opt:997
 +#: c-family/c.opt:1013
@@ -509746,7 +510558,8 @@ Index: gcc/po/sv.po
 -#: c-family/c.opt:1127
 +#: c-family/c.opt:1143
  msgid "Enable Cilk Plus."
- msgstr "Aktiver Cilk Plus."
+-msgstr "Aktiver Cilk Plus."
++msgstr "Aktivera Cilk Plus."
  
 -#: c-family/c.opt:1131
 +#: c-family/c.opt:1147
@@ -510322,7 +511135,8 @@ Index: gcc/po/sv.po
 -#: c-family/c.opt:1717
 +#: c-family/c.opt:1733
  msgid "Conform to the ISO 2011 C++ standard with GNU extensions."
- msgstr "Följ standarden ISO 2011 C med GNU-utökningar."
+-msgstr "Följ standarden ISO 2011 C med GNU-utökningar."
++msgstr "Följ standarden ISO 2011 C++ med GNU-utökningar."
  
 -#: c-family/c.opt:1721
 +#: c-family/c.opt:1737
@@ -510394,6 +511208,24 @@ Index: gcc/po/sv.po
  msgid "Do not predefine system-specific and GCC-specific macros."
  msgstr "Fördefiniera inte systemspecifika och GCC-specifika makron."
  
+@@ -7596,7 +7614,7 @@
+ 
+ #: config/mmix/mmix.opt:45
+ msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)."
+-msgstr "Generera divisionsresultat så att resten har samma tecken som täljaren (inte nämnaren)."
++msgstr "Generera divisionsresultat så att resten har samma tecken som nämnaren (inte täljaren)."
+ 
+ #: config/mmix/mmix.opt:49
+ msgid "Prepend global symbols with \":\" (for use with PREFIX)."
+@@ -7968,7 +7986,7 @@
+ 
+ #: config/msp430/msp430.opt:15
+ msgid "Warn if an MCU name is unrecognised or conflicts with other options (default: on)."
+-msgstr "Varna om ett MCU-namn inte känns igen eller står i konflikt med andra flaggor (standar: på)."
++msgstr "Varna om ett MCU-namn inte känns igen eller står i konflikt med andra flaggor (standard: på)."
+ 
+ #: config/msp430/msp430.opt:19
+ msgid "Specify the ISA to build for: msp430, msp430x, msp430xv2."
 @@ -8089,8 +8107,8 @@
  msgstr "PC-relativa literala laddningar."
  
@@ -510401,7 +511233,7 @@ Index: gcc/po/sv.po
 -msgid "When calculating a sqrt approximation, run fewer steps."
 -msgstr "Vid beräkning av sqrt-approximering, kör färre steg."
 +msgid "When calculating the reciprocal square root approximation,"
-+msgstr "Vid beräkning av den reciproka kvardratrotsapproximeringen,"
++msgstr "Vid beräkning av den reciproka kvadratrotsapproximeringen,"
  
  #: config/linux.opt:24
  msgid "Use Bionic C library."
@@ -510416,6 +511248,134 @@ Index: gcc/po/sv.po
  #: config/h8300/h8300.opt:23
  msgid "Generate H8S code."
  msgstr "Generera H8S-kod."
+@@ -8459,7 +8481,7 @@
+ 
+ #: config/h8300/h8300.opt:50
+ msgid "Enable linker relaxing."
+-msgstr "Aktivera länkaravslappning."
++msgstr "Aktivera länkarlättnad."
+ 
+ #: config/h8300/h8300.opt:54
+ msgid "Generate H8/300H code."
+@@ -8655,7 +8677,7 @@
+ 
+ #: config/i386/i386.opt:206 config/sh/sh.opt:209
+ msgid "Reserve space for outgoing arguments in the function prologue."
+-msgstr "Reservera utrymmer för utgående argument i funktionsprologen."
++msgstr "Reservera utrymme för utgående argument i funktionsprologen."
+ 
+ #: config/i386/i386.opt:210
+ msgid "Align some doubles on dword boundary."
+@@ -9035,15 +9057,15 @@
+ 
+ #: config/i386/i386.opt:724
+ msgid "Support BMI built-in functions and code generation."
+-msgstr "Stöd inbyggda BMI-funktioner och -kodgenerering ."
++msgstr "Stöd inbyggda BMI-funktioner och -kodgenerering."
+ 
+ #: config/i386/i386.opt:728
+ msgid "Support BMI2 built-in functions and code generation."
+-msgstr "Stöd inbyggda BMI2-funktioner och -kodgenerering ."
++msgstr "Stöd inbyggda BMI2-funktioner och -kodgenerering."
+ 
+ #: config/i386/i386.opt:732
+ msgid "Support LZCNT built-in function and code generation."
+-msgstr "Stöd inbyggda LZCNT-funktioner och -kodgenerering ."
++msgstr "Stöd inbyggda LZCNT-funktioner och -kodgenerering."
+ 
+ #: config/i386/i386.opt:736
+ msgid "Support Hardware Lock Elision prefixes."
+@@ -9095,7 +9117,7 @@
+ 
+ #: config/i386/i386.opt:784
+ msgid "Support TBM built-in functions and code generation."
+-msgstr "Stöd inbyggda TBM-funktioner och -kodgenerering ."
++msgstr "Stöd inbyggda TBM-funktioner och -kodgenerering."
+ 
+ #: config/i386/i386.opt:788
+ msgid "Support code generation of cmpxchg16b instruction."
+@@ -9139,11 +9161,11 @@
+ 
+ #: config/i386/i386.opt:828
+ msgid "Support F16C built-in functions and code generation."
+-msgstr "Stöd inbyggda F16C-funktioner och -kodgenerering ."
++msgstr "Stöd inbyggda F16C-funktioner och -kodgenerering."
+ 
+ #: config/i386/i386.opt:832
+ msgid "Support PREFETCHWT1 built-in functions and code generation."
+-msgstr "Stöd inbyggda PREFETCHWT1-funktioner och -kodgenerering ."
++msgstr "Stöd inbyggda PREFETCHWT1-funktioner och -kodgenerering."
+ 
+ #: config/i386/i386.opt:836
+ msgid "Emit profiling counter call at function entry before prologue."
+@@ -9163,7 +9185,7 @@
+ 
+ #: config/i386/i386.opt:853
+ msgid "Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time check."
+-msgstr "Expandera 32bits/64bits heltalsdivision till 8bitars teckenlös heltalsdivision med kontroll vid körning.."
++msgstr "Expandera 32bits/64bits heltalsdivision till 8bitars teckenlös heltalsdivision med kontroll vid körning."
+ 
+ #: config/i386/i386.opt:857
+ msgid "Split 32-byte AVX unaligned load."
+@@ -9175,11 +9197,11 @@
+ 
+ #: config/i386/i386.opt:865
+ msgid "Support RTM built-in functions and code generation."
+-msgstr "Stöd inbyggda RTM-funktioner och -kodgenerering ."
++msgstr "Stöd inbyggda RTM-funktioner och -kodgenerering."
+ 
+ #: config/i386/i386.opt:869
+ msgid "Support MPX code generation."
+-msgstr "Stöd MPX-kodgenerering ."
++msgstr "Stöd MPX-kodgenerering."
+ 
+ #: config/i386/i386.opt:873
+ msgid "Support MWAITX and MONITORX built-in functions and code generation."
+@@ -9203,7 +9225,7 @@
+ 
+ #: config/i386/i386.opt:899
+ msgid "Attempt to avoid generating instruction sequences containing ret bytes."
+-msgstr "Försök udvika att generera instruktionssekvenser som innehåller ret-byte:ar."
++msgstr "Försök undvika att generera instruktionssekvenser som innehåller ret-byte:ar."
+ 
+ #: config/i386/stringop.opt:8
+ msgid "the Free Software Foundation; either version 3, or (at your option)"
+@@ -9348,7 +9370,7 @@
+ 
+ #: config/v850/v850.opt:86
+ msgid "Put jump tables for switch statements into the .data section rather than the .code section."
+-msgstr "Lägg hopptabeller för switch-satser i .data-sektionen istället för .code-sektionen.."
++msgstr "Lägg hopptabeller för switch-satser i .data-sektionen istället för .code-sektionen."
+ 
+ #: config/v850/v850.opt:93
+ msgid "Compile for the v850 processor."
+@@ -9364,7 +9386,7 @@
+ 
+ #: config/v850/v850.opt:105
+ msgid "Compile for the v850es variant of the v850e1."
+-msgstr "Kompilera för varianten v850es av v850el."
++msgstr "Kompilera för varianten v850es av v850e1."
+ 
+ #: config/v850/v850.opt:109
+ msgid "Compile for the v850e2 processor."
+@@ -9388,7 +9410,7 @@
+ 
+ #: config/v850/v850.opt:135
+ msgid "Enable relaxing in the assembler."
+-msgstr "Aktivera avslappning i assemblern."
++msgstr "Aktivera lättnad i assemblern."
+ 
+ #: config/v850/v850.opt:139
+ msgid "Prohibit PC relative jumps."
+@@ -9404,7 +9426,7 @@
+ 
+ #: config/v850/v850.opt:151
+ msgid "Enable support for the RH850 ABI.  This is the default."
+-msgstr "Aktivera stöd för ABI:et RH850.  Detta är standard.."
++msgstr "Aktivera stöd för ABI:et RH850.  Detta är standard."
+ 
+ #: config/v850/v850.opt:155
+ msgid "Enable support for the old GCC ABI."
 @@ -9443,8 +9465,8 @@
  msgstr "Länka med kod för en __main-kärna."
  
@@ -510441,6 +511401,115 @@ Index: gcc/po/sv.po
  msgid "Known ARM FPUs (for use with the -mfpu= option):"
  msgstr "Kända ARM FPU:er (att användas med flaggan -mfpu=):"
  
+@@ -10162,7 +10184,7 @@
+ 
+ #: config/rs6000/rs6000.opt:185
+ msgid "Under -ffast-math, generate a FRIZ instruction for (double)(long long) conversions."
+-msgstr "Under -ffast-math, generera en FRIZ-instruktion för (double)(long long)-konverteringar.."
++msgstr "Under -ffast-math, generera en FRIZ-instruktion för (double)(long long)-konverteringar."
+ 
+ #: config/rs6000/rs6000.opt:193
+ msgid "Use vector/scalar (VSX) instructions."
+@@ -10454,7 +10476,7 @@
+ 
+ #: config/rs6000/rs6000.opt:594
+ msgid "Allow float variables in upper registers with -mcpu=power8 or -mpower8-vector."
+-msgstr "Tillåt flyttalsvariabler i övre register med -mcpu=power8 eller mpower8-vector."
++msgstr "Tillåt flyttalsvariabler i övre register med -mcpu=power8 eller -mpower8-vector."
+ 
+ #: config/rs6000/rs6000.opt:598
+ msgid "Allow float/double variables in upper registers if cpu allows it."
+@@ -11278,11 +11300,11 @@
+ 
+ #: config/rx/rx.opt:93
+ msgid "Generate assembler output that is compatible with the Renesas AS100 assembler.  This may restrict some of the compiler's capabilities.  The default is to generate GAS compatible syntax."
+-msgstr "Genereara assemblerutdatat som är kompatibel med Renesas AS100-assembler.  Detta kan begränsa några av kompilatorns egenskaper.  Standard är att generera GAS-kompatibel syntax."
++msgstr "Generera assemblerutdatat som är kompatibel med Renesas AS100-assembler.  Detta kan begränsa några av kompilatorns egenskaper.  Standard är att generera GAS-kompatibel syntax."
+ 
+ #: config/rx/rx.opt:99
+ msgid "Enable linker relaxation."
+-msgstr "Aktivera länkaravslappningar."
++msgstr "Aktivera länkarlättnader."
+ 
+ #: config/rx/rx.opt:105
+ msgid "Maximum size in bytes of constant values allowed as operands."
+@@ -11652,7 +11674,7 @@
+ 
+ #: config/mn10300/mn10300.opt:55
+ msgid "Enable linker relaxations."
+-msgstr "Aktivera länkaravslappningar."
++msgstr "Aktivera länkarlättnader."
+ 
+ #: config/mn10300/mn10300.opt:59
+ msgid "Return pointers in both a0 and d0."
+@@ -11724,7 +11746,7 @@
+ 
+ #: config/nds32/nds32.opt:104
+ msgid "Guide linker to relax instructions."
+-msgstr "Hjälp länkaren att relaxera instruktioner."
++msgstr "Hjälp länkaren att lätta instruktioner."
+ 
+ #: config/iq2000/iq2000.opt:31
+ msgid "Specify CPU for code generation purposes."
+@@ -12129,7 +12151,7 @@
+ 
+ #: config/sh/sh.opt:339
+ msgid "Specify the model for atomic operations."
+-msgstr "Ange modellen för atomiska operationer."
++msgstr "Ange modellen för atomära operationer."
+ 
+ #: config/sh/sh.opt:343
+ msgid "Use tas.b instruction for __atomic_test_and_set."
+@@ -12169,7 +12191,7 @@
+ 
+ #: config/mep/mep.opt:23
+ msgid "Enable absolute difference instructions."
+-msgstr "Använd instruktioner för absoluta skillnad."
++msgstr "Använd instruktioner för absolut skillnad."
+ 
+ #: config/mep/mep.opt:27
+ msgid "Enable all optional instructions."
+@@ -12205,11 +12227,11 @@
+ 
+ #: config/mep/mep.opt:59
+ msgid "Enable MeP Coprocessor with 32-bit registers."
+-msgstr "Använd MeP-koprocessor med 32-bitars register."
++msgstr "Använd MeP-hjälpprocessor med 32-bitars register."
+ 
+ #: config/mep/mep.opt:63
+ msgid "Enable MeP Coprocessor with 64-bit registers."
+-msgstr "Använd MeP-koprocessor med 64-bitars register."
++msgstr "Använd MeP-hjälpprocessor med 64-bitars register."
+ 
+ #: config/mep/mep.opt:67
+ msgid "Enable IVC2 scheduling."
+@@ -12321,7 +12343,7 @@
+ 
+ #: config/mips/mips.opt:87
+ msgid "-mcode-readable=SETTING\tSpecify when instructions are allowed to access code."
+-msgstr "-code-readable=INSTÄLLNING\tAnge när instruktioner tillåts komma åt kod."
++msgstr "-mcode-readable=INSTÄLLNING\tAnge när instruktioner tillåts komma åt kod."
+ 
+ #: config/mips/mips.opt:91
+ msgid "Valid arguments to -mcode-readable=:"
+@@ -12417,7 +12439,7 @@
+ 
+ #: config/mips/mips.opt:210
+ msgid "-mflush-func=FUNC\tUse FUNC to flush the cache before calling stack trampolines."
+-msgstr "-mflush-func=FUNK\tAnvänd FUNK för att tömma cachen föra anrop av stacktrampoliner."
++msgstr "-mflush-func=FUNK\tAnvänd FUNK för att tömma cachen före anrop av stacktrampoliner."
+ 
+ #: config/mips/mips.opt:214
+ msgid "-mabs=MODE\tSelect the IEEE 754 ABS/NEG instruction execution mode."
+@@ -12645,7 +12667,7 @@
+ 
+ #: config/arc/arc.opt:30
+ msgid "Compile code for little endian mode.  This is the default."
+-msgstr "Kompilera kod för omvänd byteordning.  Detta är standard.."
++msgstr "Kompilera kod för omvänd byteordning.  Detta är standard."
+ 
+ #: config/arc/arc.opt:34
+ msgid "Disable ARCompact specific pass to generate conditional execution instructions."
 @@ -12931,6 +12953,10 @@
  msgid "Enable double load/store instructions for ARC HS."
  msgstr "Använd dubbla ladda/lagra-instruktioner för ARC HS."
@@ -510452,6 +511521,42 @@ Index: gcc/po/sv.po
  #: java/lang.opt:122
  msgid "Warn if deprecated empty statements are found."
  msgstr "Varna om tomma satser som bör undvikas finns."
+@@ -12945,7 +12971,7 @@
+ 
+ #: java/lang.opt:150
+ msgid "--CLASSPATH\tDeprecated; use --classpath instead."
+-msgstr "--CLASSPATH\tAvrådes, använd -classpath istället."
++msgstr "--CLASSPATH\tAvrådes, använd --classpath istället."
+ 
+ #: java/lang.opt:157
+ msgid "Permit the use of the assert keyword."
+@@ -13025,7 +13051,7 @@
+ 
+ #: java/lang.opt:269
+ msgid "Generate code for built-in atomic operations."
+-msgstr "Generera kod för inbyggda atomiska operationer."
++msgstr "Generera kod för inbyggda atomära operationer."
+ 
+ #: java/lang.opt:273
+ msgid "Generated should be loaded by bootstrap loader."
+@@ -13142,7 +13168,7 @@
+ 
+ #: common.opt:578
+ msgid "Treat all warnings as errors."
+-msgstr "Behandla alla varningar som fel.."
++msgstr "Behandla alla varningar som fel."
+ 
+ #: common.opt:582
+ msgid "Treat specified warning as error."
+@@ -13174,7 +13200,7 @@
+ 
+ #: common.opt:610
+ msgid "Warn when an atomic memory model parameter is known to be outside the valid range."
+-msgstr "Varna när en atomisk minnesmodellparameter med säkerhet är utanför det giltiga intervallet."
++msgstr "Varna när en atomär minnesmodellparameter med säkerhet är utanför det giltiga intervallet."
+ 
+ #: common.opt:617
+ msgid "-Wlarger-than=<number>\tWarn if an object is larger than <number> bytes."
 @@ -13181,1715 +13207,1723 @@
  msgstr "-Wlarger-than=<antal>\tVarna för ett objekt är större än <antal> byte."
  
@@ -510976,7 +512081,8 @@ Index: gcc/po/sv.po
 -#: common.opt:1225
 +#: common.opt:1229
  msgid "Suppress output of previous and next insn numbers in debugging dumps."
- msgstr "Undertryck utskrift föregående och nästa instruktionsnummer i felsökningsutskrifter."
+-msgstr "Undertryck utskrift föregående och nästa instruktionsnummer i felsökningsutskrifter."
++msgstr "Undertryck utskrift av föregående och nästa instruktionsnummer i felsökningsutskrifter."
  
 -#: common.opt:1229
 +#: common.opt:1233
@@ -511026,7 +512132,8 @@ Index: gcc/po/sv.po
 -#: common.opt:1265
 +#: common.opt:1269
  msgid "-fexcess-precision=[fast|standard]\tSpecify handling of excess floating-point precision."
- msgstr "-fexecc-precision=[fast|standard]\tAnge hantering av överskjutande precision på flyttal."
+-msgstr "-fexecc-precision=[fast|standard]\tAnge hantering av överskjutande precision på flyttal."
++msgstr "-fexcess-precision=[fast|standard]\tAnge hantering av överskjutande precision på flyttal."
  
 -#: common.opt:1268
 +#: common.opt:1272
@@ -511135,12 +512242,14 @@ Index: gcc/po/sv.po
 +#: common.opt:1397 common.opt:1401 common.opt:1405 common.opt:1409
 +#: common.opt:2395
  msgid "Enable loop nest transforms.  Same as -floop-nest-optimize."
- msgstr "Aktivera transformationer av slingutbyten.  Samma som -floop-nest-interchange."
+-msgstr "Aktivera transformationer av slingutbyten.  Samma som -floop-nest-interchange."
++msgstr "Aktivera transformationer av slingutbyten.  Samma som -floop-nest-optimize."
  
 -#: common.opt:1409
 +#: common.opt:1413
  msgid "Enable support for GNU transactional memory."
- msgstr "Aktivera stöd för GNU:s transationsminne."
+-msgstr "Aktivera stöd för GNU:s transationsminne."
++msgstr "Aktivera stöd för GNU:s transaktionsminne."
  
 -#: common.opt:1413
 +#: common.opt:1417
@@ -511419,7 +512528,8 @@ Index: gcc/po/sv.po
 -#: common.opt:1700
 +#: common.opt:1704
  msgid "Report various link-time optimization statistics for WPA only."
- msgstr "Rapportera diverse optimeringsstatistik från länkningen endast för WPA.."
+-msgstr "Rapportera diverse optimeringsstatistik från länkningen endast för WPA.."
++msgstr "Rapportera diverse optimeringsstatistik från länkningen endast för WPA."
  
 -#: common.opt:1704
 +#: common.opt:1708
@@ -511747,7 +512857,8 @@ Index: gcc/po/sv.po
 -#: common.opt:1996
 +#: common.opt:2003
  msgid "Disable optimizations that assume default FP rounding behavior."
- msgstr "Avaktivera optimeringar som antar standardmässig avrundningsbeteende för FP."
+-msgstr "Avaktivera optimeringar som antar standardmässig avrundningsbeteende för FP."
++msgstr "Avaktivera optimeringar som antar standardmässigt avrundningsbeteende för FP."
  
 -#: common.opt:2000
 +#: common.opt:2007
@@ -511902,7 +513013,8 @@ Index: gcc/po/sv.po
 -#: common.opt:2142
 +#: common.opt:2149
  msgid "Disable floating point optimizations that ignore the IEEE signedness of zero."
- msgstr "Avaktivera flyttalsoptimeringar som ignorera IEEE:s tecken på noll."
+-msgstr "Avaktivera flyttalsoptimeringar som ignorera IEEE:s tecken på noll."
++msgstr "Avaktivera flyttalsoptimeringar som ignorerar IEEE:s tecken på noll."
  
 -#: common.opt:2146
 +#: common.opt:2153
@@ -512717,6 +513829,15 @@ Index: gcc/po/sv.po
  #, gcc-internal-format
  msgid "too few arguments to function %<va_start%>"
  msgstr "För många argument till funktionen %<va_start%>"
+@@ -15491,7 +15525,7 @@
+ #: builtins.c:5198
+ #, gcc-internal-format
+ msgid "invalid memory model for %<__atomic_load%>"
+-msgstr "ogiltigt minnesmodell för %<_atomic_load%>"
++msgstr "ogiltig minnesmodell för %<__atomic_load%>"
+ 
+ #: builtins.c:5230 builtins.c:5333
+ #, gcc-internal-format
 @@ -15520,7 +15554,7 @@
  
  #. All valid uses of __builtin_va_arg_pack () are removed during
@@ -513995,7 +515116,8 @@ Index: gcc/po/sv.po
 +#: gimplify.c:6722
  #, gcc-internal-format
  msgid "%<linear%> clause for variable other than loop iterator specified on construct combined with %<distribute%>"
- msgstr "%<linear%>-klausul för en annan variabel än en slingiterator angiven vid konstruktion combinerad med %<distribute%>"
+-msgstr "%<linear%>-klausul för en annan variabel än en slingiterator angiven vid konstruktion combinerad med %<distribute%>"
++msgstr "%<linear%>-klausul för en annan variabel än en slingiterator angiven vid konstruktion kombinerad med %<distribute%>"
  
 -#: gimplify.c:6833
 +#: gimplify.c:6917
@@ -514047,7 +515169,8 @@ Index: gcc/po/sv.po
 +#: gimplify.c:9948 omp-low.c:3622
 +#, gcc-internal-format
  msgid "%<ordered%> construct with %<depend%> clause must be closely nested inside a loop with %<ordered%> clause with a parameter"
- msgstr "%<ordered%>-konstruktion med %<depend%>-klausul måste måste vara nära innesluten inuti en slinga med %<ordered%>-klausul med en parameter"
+-msgstr "%<ordered%>-konstruktion med %<depend%>-klausul måste måste vara nära innesluten inuti en slinga med %<ordered%>-klausul med en parameter"
++msgstr "%<ordered%>-konstruktion med %<depend%>-klausul måste vara nära innesluten inuti en slinga med %<ordered%>-klausul med en parameter"
  
 -#: gimplify.c:9824
 +#: gimplify.c:9966
@@ -514280,7 +515403,8 @@ Index: gcc/po/sv.po
 +#: ipa-devirt.c:1108
  #, gcc-internal-format
  msgid "type %qT defined in anonymous namespace can not match type %qT across the translation unit boundary"
- msgstr "typen %qT definierad i en namnrymd kan inte matcha typen %qT över gränsen för översättningsenheten"
+-msgstr "typen %qT definierad i en namnrymd kan inte matcha typen %qT över gränsen för översättningsenheten"
++msgstr "typen %qT definierad i en anonym namnrymd kan inte matcha typen %qT över gränsen för översättningsenheten"
  
 -#: ipa-devirt.c:1089
 +#: ipa-devirt.c:1113
@@ -514364,7 +515488,8 @@ Index: gcc/po/sv.po
 +#: ipa-devirt.c:1302
  #, gcc-internal-format
  msgid "an enum with different value name is defined in another translation unit"
- msgstr "en uppräkningstyp andra värdenamn definierad i en annan översättningsenhet"
+-msgstr "en uppräkningstyp andra värdenamn definierad i en annan översättningsenhet"
++msgstr "en uppräkningstyp med andra värdenamn definierad i en annan översättningsenhet"
  
 -#: ipa-devirt.c:1287
 +#: ipa-devirt.c:1311
@@ -514376,7 +515501,8 @@ Index: gcc/po/sv.po
 +#: ipa-devirt.c:1319
  #, gcc-internal-format
  msgid "an enum with mismatching number of values is defined in another translation unit"
- msgstr "en uppräkningstyp ett inte matchande antal värden är definierad i en annan översättningsenhet"
+-msgstr "en uppräkningstyp ett inte matchande antal värden är definierad i en annan översättningsenhet"
++msgstr "en uppräkningstyp med ett inte matchande antal värden är definierad i en annan översättningsenhet"
  
 -#: ipa-devirt.c:1313
 +#: ipa-devirt.c:1337
@@ -514436,7 +515562,8 @@ Index: gcc/po/sv.po
 +#: ipa-devirt.c:1533 ipa-devirt.c:1589
  #, gcc-internal-format
  msgid "a type with different virtual table pointers is defined in another translation unit"
- msgstr "en typ en annan virtuell tabellpekare är definierad i en annan översättningsenhet"
+-msgstr "en typ en annan virtuell tabellpekare är definierad i en annan översättningsenhet"
++msgstr "en typ med en annan virtuell tabellpekare är definierad i en annan översättningsenhet"
  
 -#: ipa-devirt.c:1516 ipa-devirt.c:1570
 +#: ipa-devirt.c:1540 ipa-devirt.c:1594
@@ -514496,7 +515623,8 @@ Index: gcc/po/sv.po
 +#: ipa-devirt.c:1654
  #, gcc-internal-format
  msgid "a type with different number of methods is defined in another translation unit"
- msgstr "en typ med ett annat antal metoder defineirad i en annan översättningsenhet"
+-msgstr "en typ med ett annat antal metoder defineirad i en annan översättningsenhet"
++msgstr "en typ med ett annat antal metoder definierad i en annan översättningsenhet"
  
 -#: ipa-devirt.c:1652
 +#: ipa-devirt.c:1676
@@ -514895,7 +516023,8 @@ Index: gcc/po/sv.po
 +#: omp-low.c:3659
  #, gcc-internal-format
  msgid "%<ordered%> region may not be closely nested inside of %<critical%>, %<ordered%>, explicit %<task%> or %<taskloop%> region"
- msgstr "en %<ordered%> region får inte vara nära innesluten inuti en %<critical%>,, %<ordered%>, explicit %<task%> eller %<taskloop%> region"
+-msgstr "en %<ordered%> region får inte vara nära innesluten inuti en %<critical%>,, %<ordered%>, explicit %<task%> eller %<taskloop%> region"
++msgstr "en %<ordered%> region får inte vara nära innesluten inuti en %<critical%>, %<ordered%>, explicit %<task%> eller %<taskloop%> region"
  
 -#: omp-low.c:3659 omp-low.c:3672
 +#: omp-low.c:3670 omp-low.c:3683
@@ -515316,6 +516445,21 @@ Index: gcc/po/sv.po
  #, gcc-internal-format
  msgid "#pragma GCC target is not supported for this machine"
  msgstr "#pragma GCC target stödjs inte för denna maskin"
+@@ -19899,12 +19983,12 @@
+ #: trans-mem.c:783
+ #, gcc-internal-format
+ msgid "relaxed transaction in atomic transaction"
+-msgstr "relaxerad transaktion i atomär transaktion"
++msgstr "lättad transaktion i atomär transaktion"
+ 
+ #: trans-mem.c:786
+ #, gcc-internal-format
+ msgid "relaxed transaction in %<transaction_safe%> function"
+-msgstr "relaxerad transaktion i %<transaction_safe%>-funktion"
++msgstr "lättad transaktion i %<transaction_safe%>-funktion"
+ 
+ #: trans-mem.c:793
+ #, gcc-internal-format
 @@ -20008,8 +20092,8 @@
  
  #: tree-cfg.c:2965
@@ -515327,6 +516471,15 @@ Index: gcc/po/sv.po
  
  #: tree-cfg.c:2973
  #, gcc-internal-format
+@@ -20074,7 +20158,7 @@
+ #: tree-cfg.c:3194
+ #, gcc-internal-format
+ msgid "type mismatch in real/imagpart reference"
+-msgstr "typfel i referens till reel-/imaginärdel"
++msgstr "typfel i referens till reell-/imaginärdel"
+ 
+ #: tree-cfg.c:3204
+ #, gcc-internal-format
 @@ -20311,7 +20395,7 @@
  msgid "the first argument of a VEC_COND_EXPR must be of a boolean vector type of the same number of elements as the result"
  msgstr "första argumentet till en VEC_COND_EXPR måste vara av boolesk vektortyp med samma antal element som resultatet"
@@ -517821,6 +518974,15 @@ Index: gcc/po/sv.po
  #, gcc-internal-format
  msgid "size of unnamed array is too large"
  msgstr "storleken på en namnlös vektor är för stor"
+@@ -23342,7 +23432,7 @@
+ #: c-family/c-format.c:330
+ #, gcc-internal-format
+ msgid "unrecognized format specifier"
+-msgstr "oigenkänd formatangivelse"
++msgstr "okänd formatangivelse"
+ 
+ #: c-family/c-format.c:345
+ #, gcc-internal-format
 @@ -23649,21 +23739,16 @@
  msgid "strftime formats cannot format arguments"
  msgstr "strftime-format kan inte formatera argument"
@@ -517847,6 +519009,15 @@ Index: gcc/po/sv.po
  #: c-family/c-lex.c:222
  #, gcc-internal-format
  msgid "badly nested C headers from preprocessor"
+@@ -23698,7 +23783,7 @@
+ #: c-family/c-lex.c:523
+ #, gcc-internal-format
+ msgid "stray %<\\%o%> in program"
+-msgstr "överblivet %<\\\\%o%> i program"
++msgstr "överblivet %<\\%o%> i program"
+ 
+ #: c-family/c-lex.c:731
+ #, gcc-internal-format
 @@ -23745,7 +23830,7 @@
  msgid "repeated %<@%> before Objective-C string"
  msgstr "upprepat %<@%> före Objective-C++-sträng"
@@ -518035,7 +519206,8 @@ Index: gcc/po/sv.po
 +#: c-family/c-pragma.c:1164
  #, gcc-internal-format
  msgid "invalid location for %<pragma %s%>, ignored"
- msgstr "ogiltig plats för %<#pragma %s%>, ignoreras"
+-msgstr "ogiltig plats för %<#pragma %s%>, ignoreras"
++msgstr "ogiltig plats för %<pragma %s%>, ignoreras"
  
 -#: c-family/c-pragma.c:1168 c-family/c-pragma.c:1182
 +#: c-family/c-pragma.c:1171 c-family/c-pragma.c:1185
@@ -518300,9 +519472,12 @@ Index: gcc/po/sv.po
  #, gcc-internal-format
  msgid "lane %wd out of range %wd - %wd"
  msgstr "bana %wd utanför intervallet %wd - %wd"
-@@ -25033,8 +25118,8 @@
+@@ -25031,10 +25116,10 @@
+ #: config/alpha/alpha.c:575
+ #, gcc-internal-format
  msgid "bad value %qs for -mmemory-latency"
- msgstr "felaktigt värde %qs till flaggan -memory-latency"
+-msgstr "felaktigt värde %qs till flaggan -memory-latency"
++msgstr "felaktigt värde %qs till flaggan -mmemory-latency"
  
 -#: config/alpha/alpha.c:6652 config/alpha/alpha.c:6655 config/arc/arc.c:5375
 -#: config/arc/arc.c:5654 config/s390/s390.c:830 config/tilegx/tilegx.c:3540
@@ -518324,7 +519499,8 @@ Index: gcc/po/sv.po
 +#: config/arc/arc.c:735
 +#, gcc-internal-format
  msgid "This multiplier configuration is not available for HS cores"
- msgstr "Denna multiplicerarconfiguration är inte tillgänglig för HS-kärnor"
+-msgstr "Denna multiplicerarconfiguration är inte tillgänglig för HS-kärnor"
++msgstr "Denna multiplicerarkonfiguration är inte tillgänglig för HS-kärnor"
  
 -#: config/arc/arc.c:734
 +#: config/arc/arc.c:741
@@ -518509,6 +519685,15 @@ Index: gcc/po/sv.po
  #, gcc-internal-format
  msgid "insn addresses not freed"
  msgstr "instruktionsadressen inte frigjord"
+@@ -25235,7 +25340,7 @@
+ #: config/arm/arm-builtins.c:2396 config/arm/arm-builtins.c:2500
+ #, gcc-internal-format
+ msgid "selector must be an immediate"
+-msgstr "väljare måste vara en omedelbar"
++msgstr "en väljare måste vara en omedelbar"
+ 
+ #: config/arm/arm-builtins.c:2404 config/arm/arm-builtins.c:2449
+ #: config/arm/arm-builtins.c:2507 config/arm/arm-builtins.c:2516
 @@ -25428,184 +25533,184 @@
  msgid "-mslow-flash-data only supports non-pic code on armv7-m targets"
  msgstr "-mslow-flash-data stödjer endast icke-pic-kod på armv7-m-mål"
@@ -518970,6 +520155,30 @@ Index: gcc/po/sv.po
  #, gcc-internal-format
  msgid "rounding result will always be 0"
  msgstr "avrundningsresultatet kommer alltid bli 0"
+@@ -25918,12 +26023,12 @@
+ #: config/bfin/bfin.c:2393
+ #, gcc-internal-format
+ msgid "-mcorea should be used with -mmulticore"
+-msgstr "-fcorea måste användas tillsammans med -mmulticore"
++msgstr "-mcorea måste användas tillsammans med -mmulticore"
+ 
+ #: config/bfin/bfin.c:2396
+ #, gcc-internal-format
+ msgid "-mcoreb should be used with -mmulticore"
+-msgstr "-fcoreb måste användas tillsammans med -mmulticore"
++msgstr "-mcoreb måste användas tillsammans med -mmulticore"
+ 
+ #: config/bfin/bfin.c:2399
+ #, gcc-internal-format
+@@ -26186,7 +26291,7 @@
+ #: config/ft32/ft32.c:175
+ #, gcc-internal-format
+ msgid "'h' applied to non-register operand"
+-msgstr "”h” använt på operand som inte ett register"
++msgstr "”h” använt på operand som inte är ett register"
+ 
+ #: config/ft32/ft32.c:200
+ #, gcc-internal-format, gfc-internal-format
 @@ -26248,397 +26353,397 @@
  msgid "can%'t set position in PCH file: %m"
  msgstr "det går inte att sätta position i PCH-fil: %m"
@@ -519146,7 +520355,8 @@ Index: gcc/po/sv.po
 +#: config/i386/i386.c:5219
  #, gcc-internal-format
  msgid "-mpreferred-stack-boundary is not supported for this target"
- msgstr "-mprefetch-stack-boundary stödjs inte för denna målarkitektur"
+-msgstr "-mprefetch-stack-boundary stödjs inte för denna målarkitektur"
++msgstr "-mpreferred-stack-boundary stödjs inte för denna målarkitektur"
  
 -#: config/i386/i386.c:5200
 +#: config/i386/i386.c:5222
@@ -519641,7 +520851,8 @@ Index: gcc/po/sv.po
 +#: config/i386/i386.c:40107 config/rs6000/rs6000.c:13967
  #, gcc-internal-format
  msgid "selector must be an integer constant in the range 0..%wi"
- msgstr "selektor måste vara en heltalskonstant i intervallet 0..%wi"
+-msgstr "selektor måste vara en heltalskonstant i intervallet 0..%wi"
++msgstr "väljaren måste vara en heltalskonstant i intervallet 0..%wi"
  
 -#: config/i386/i386.c:40227
 +#: config/i386/i386.c:40301
@@ -519802,6 +521013,15 @@ Index: gcc/po/sv.po
  #, gcc-internal-format
  msgid "stack limit expression is not supported"
  msgstr "stackgränsuttryck stödjs inte"
+@@ -27367,7 +27472,7 @@
+ #: config/mep/mep.c:5974
+ #, gcc-internal-format
+ msgid "%qs is not available in non-VLIW functions"
+-msgstr "%qs är är inte tillgänglig i en icke-VLIW-funktion"
++msgstr "%qs är inte tillgänglig i en icke-VLIW-funktion"
+ 
+ #: config/mep/mep.c:6136 config/mep/mep.c:6253
+ #, gcc-internal-format
 @@ -27379,7 +27484,7 @@
  msgid "argument %d of %qE must be a multiple of %d"
  msgstr "argument %d till %qE måste vara en multipel av %d"
@@ -519811,6 +521031,15 @@ Index: gcc/po/sv.po
  #, gcc-internal-format
  msgid "incompatible type for argument %d of %qE"
  msgstr "inkompatibel typ för argument %d av %qE"
+@@ -27427,7 +27532,7 @@
+ #: config/microblaze/microblaze.c:1765
+ #, gcc-internal-format
+ msgid "-mxl-reorder can be used only with -mcpu=v8.30.a or greater"
+-msgstr "-mxl-multiply-high kan bara användas med -mcpu=v8.30.a eller större"
++msgstr "-mxl-reorder kan bara användas med -mcpu=v8.30.a eller större"
+ 
+ #: config/microblaze/microblaze.c:1771
+ #, gcc-internal-format
 @@ -27774,32 +27879,32 @@
  msgid "msp430_select_hwmult_lib needs one or more arguments"
  msgstr "msp430_select_hwmult_lib behöver ett eller flera argument"
@@ -519831,7 +521060,8 @@ Index: gcc/po/sv.po
 +#: config/msp430/msp430.c:788
  #, gcc-internal-format, gfc-internal-format
  msgid "MCU '%s' supports %s hardware multiply, but -mhwmult is set to 16-bit"
- msgstr "MCU ”%s” stödjer %s-hårvarumultiplikation, men -mhwmult är satt till 16-bitars"
+-msgstr "MCU ”%s” stödjer %s-hårvarumultiplikation, men -mhwmult är satt till 16-bitars"
++msgstr "MCU ”%s” stödjer %s-hårdvarumultiplikation, men -mhwmult är satt till 16-bitars"
  
 -#: config/msp430/msp430.c:777
 +#: config/msp430/msp430.c:791
@@ -519859,7 +521089,7 @@ Index: gcc/po/sv.po
  #, gcc-internal-format, gfc-internal-format
  msgid ""
  "Unrecognised MCU name '%s', assuming that it has no hardware multiply.\n"
-@@ -27817,7 +27922,7 @@
+@@ -27817,71 +27922,71 @@
  "Okänt MCU-namn ”%s”, antar att den inte har hårdvarumultiplikation.\n"
  "använd flaggan -mhwmult för att sätta detta explicit."
  
@@ -519868,8 +521098,10 @@ Index: gcc/po/sv.po
  #, gcc-internal-format, gfc-internal-format
  msgid ""
  "Unrecognised MCU name '%s', assuming that it just supports the MSP430 ISA.\n"
-@@ -27826,62 +27931,62 @@
- "Okänt MCU-namn ”%s”, amtar att den bara stödjer ISA:n MSP430.\n"
+ "Use the -mcpu option to set the ISA explicitly."
+ msgstr ""
+-"Okänt MCU-namn ”%s”, amtar att den bara stödjer ISA:n MSP430.\n"
++"Okänt MCU-namn ”%s”, antar att den bara stödjer ISA:n MSP430.\n"
  "Använd flaggan -mcpu för att sätta ISA:n explicit."
  
 -#: config/msp430/msp430.c:817
@@ -519888,13 +521120,15 @@ Index: gcc/po/sv.po
 +#: config/msp430/msp430.c:843
  #, gcc-internal-format
  msgid "-mcode-region=upper requires 430X-compatible cpu"
- msgstr "-mcode-region=upper behöver en 430X-kompatibel mcu"
+-msgstr "-mcode-region=upper behöver en 430X-kompatibel mcu"
++msgstr "-mcode-region=upper behöver en 430X-kompatibel cpu"
  
 -#: config/msp430/msp430.c:831
 +#: config/msp430/msp430.c:845
  #, gcc-internal-format
  msgid "-mdata-region=upper requires 430X-compatible cpu"
- msgstr "-mdata-region=upper behöver en 430X-kompatibel mcu"
+-msgstr "-mdata-region=upper behöver en 430X-kompatibel mcu"
++msgstr "-mdata-region=upper behöver en 430X-kompatibel cpu"
  
 -#: config/msp430/msp430.c:1834
 +#: config/msp430/msp430.c:1848
@@ -520364,7 +521598,8 @@ Index: gcc/po/sv.po
 +#: config/rs6000/rs6000.c:13545
  #, gcc-internal-format, gfc-internal-format
  msgid "hwcap %s is an invalid argument to builtin %s"
- msgstr "hwcap %s är ett ogiltigt argument tillden inbyggda %s"
+-msgstr "hwcap %s är ett ogiltigt argument tillden inbyggda %s"
++msgstr "hwcap %s är ett ogiltigt argument till den inbyggda %s"
  
 -#: config/rs6000/rs6000.c:13603
 +#: config/rs6000/rs6000.c:13618
@@ -520653,9 +521888,39 @@ Index: gcc/po/sv.po
  #, gcc-internal-format, gfc-internal-format
  msgid "%s\"%s\"%s is invalid"
  msgstr "%s”%s”%s är ogiltigt"
-@@ -29139,155 +29238,160 @@
+@@ -29047,7 +29146,7 @@
+ #: config/rs6000/sysv4.h:164
+ #, gcc-internal-format, gfc-internal-format
+ msgid "-msdata=%s and -mcall-%s are incompatible"
+-msgstr "-mmsdata=%s och -mcall-%s är inkompatibla"
++msgstr "-msdata=%s och -mcall-%s är inkompatibla"
+ 
+ #: config/rs6000/sysv4.h:173
+ #, gcc-internal-format
+@@ -29112,7 +29211,7 @@
+ #: config/s390/s390-c.c:671
+ #, gcc-internal-format
+ msgid "valid values for builtin %qF argument %d are 64, 128, 256, 512, 1024, 2048, and 4096"
+-msgstr "giltiga värden för till inbyggd %qF argument %d är 64, 128, 256, 512, 1024, 2048 och 4096"
++msgstr "giltiga värden till inbyggd %qF argument %d är 64, 128, 256, 512, 1024, 2048 och 4096"
+ 
+ #: config/s390/s390-c.c:841
+ #, gcc-internal-format
+@@ -29127,7 +29226,7 @@
+ #: config/s390/s390-c.c:907
+ #, gcc-internal-format
+ msgid "invalid parameter combination for intrinsic %qs"
+-msgstr "ogiltigt parameterkombination för den inbyggda %qs"
++msgstr "ogiltig parameterkombination för den inbyggda %qs"
+ 
+ #: config/s390/s390-c.c:913
+ #, gcc-internal-format
+@@ -29137,157 +29236,162 @@
+ #: config/s390/s390-c.c:953
+ #, gcc-internal-format
  msgid "constant argument %d for builtin %qF is out of range for target type"
- msgstr "det konstanta argumentet %d till den inbyggda %qF är utanför intervallet måltypen"
+-msgstr "det konstanta argumentet %d till den inbyggda %qF är utanför intervallet måltypen"
++msgstr "det konstanta argumentet %d till den inbyggda %qF är utanför intervallet för måltypen"
  
 -#: config/s390/s390.c:732
 +#: config/s390/s390.c:754
@@ -520685,7 +521950,8 @@ Index: gcc/po/sv.po
 +#: config/s390/s390.c:848
  #, gcc-internal-format
  msgid "Unresolved overloaded builtin"
- msgstr "Ej upplöst inbyggd"
+-msgstr "Ej upplöst inbyggd"
++msgstr "Ej upplöst överlagrad inbyggd"
  
 -#: config/s390/s390.c:833 config/tilegx/tilegx.c:3543
 +#: config/s390/s390.c:855 config/tilegx/tilegx.c:3543
@@ -523471,7 +524737,8 @@ Index: gcc/po/sv.po
 +#: c/c-parser.c:7929
  #, gcc-internal-format
  msgid "%<__builtin_complex%> operand not of real binary floating-point type"
- msgstr "%<__builtin_complex%>-operand är inte av en reel binär flyttalstyp"
+-msgstr "%<__builtin_complex%>-operand är inte av en reel binär flyttalstyp"
++msgstr "%<__builtin_complex%>-operand är inte av en reell binär flyttalstyp"
  
 -#: c/c-parser.c:7876
 +#: c/c-parser.c:7938
@@ -523663,7 +524930,8 @@ Index: gcc/po/sv.po
 +#: c/c-parser.c:10182
  #, gcc-internal-format
  msgid "%<#pragma grainsize%> ignored because -fcilkplus is not enabled"
- msgstr "%<pragma grainsize%> ignoreras för att -fcilkplus inte är aktiverat"
+-msgstr "%<pragma grainsize%> ignoreras för att -fcilkplus inte är aktiverat"
++msgstr "%<#pragma grainsize%> ignoreras för att -fcilkplus inte är aktiverat"
  
 -#: c/c-parser.c:10128
 +#: c/c-parser.c:10190
@@ -523995,7 +525263,8 @@ Index: gcc/po/sv.po
 +#: c/c-parser.c:13592 cp/parser.c:35195
  #, gcc-internal-format
  msgid "array section in %<#pragma acc declare%>"
- msgstr "vektordeklaration i %<pragma omp declare reduction%>"
+-msgstr "vektordeklaration i %<pragma omp declare reduction%>"
++msgstr "vektorsektionen i %<pragma acc declare%>"
  
 -#: c/c-parser.c:13554 cp/parser.c:35124
 +#: c/c-parser.c:13616 cp/parser.c:35219
@@ -524898,7 +526167,8 @@ Index: gcc/po/sv.po
 +#: c/c-typeck.c:4460
  #, gcc-internal-format
  msgid "address of array with reverse scalar storage order requested"
- msgstr "adress till vektor med omvänd skalär lagringsordnin begärd"
+-msgstr "adress till vektor med omvänd skalär lagringsordnin begärd"
++msgstr "adress till vektor med omvänd skalär lagringsordning begärd"
  
 -#: c/c-typeck.c:4617
 +#: c/c-typeck.c:4632
@@ -526178,7 +527448,8 @@ Index: gcc/po/sv.po
 +#: c/c-typeck.c:13159 cp/semantics.c:6817
  #, gcc-internal-format
  msgid "%qE is neither a variable nor a function name in clause %qs"
- msgstr "%qE är varken en variabel eller ett funktionsnamn klausulen %qs"
+-msgstr "%qE är varken en variabel eller ett funktionsnamn klausulen %qs"
++msgstr "%qE är varken en variabel eller ett funktionsnamn i klausulen %qs"
  
 -#: c/c-typeck.c:13217 cp/semantics.c:6783
 +#: c/c-typeck.c:13187 cp/semantics.c:6846
@@ -528035,19 +529306,22 @@ Index: gcc/po/sv.po
 +#: cp/cvt.c:1091
  #, gcc-internal-format
  msgid "implicit dereference will not access object of type %qT in third operand of conditional expression"
- msgstr "implicita avreferens kommer inte att använda objekt av typ %qT i tredje operanden till villkorligt uttryck"
+-msgstr "implicita avreferens kommer inte att använda objekt av typ %qT i tredje operanden till villkorligt uttryck"
++msgstr "implicit avreferens kommer inte att använda objekt av typ %qT i tredje operanden till villkorligt uttryck"
  
 -#: cp/cvt.c:1095
 +#: cp/cvt.c:1096
  #, gcc-internal-format
  msgid "implicit dereference will not access object of type %qT in right operand of comma operator"
- msgstr "implicita avreferens kommer inte att använda objekt av typ %qT i högeroperanden till kommaoperatorn"
+-msgstr "implicita avreferens kommer inte att använda objekt av typ %qT i högeroperanden till kommaoperatorn"
++msgstr "implicit avreferens kommer inte att använda objekt av typ %qT i högeroperanden till kommaoperatorn"
  
 -#: cp/cvt.c:1100
 +#: cp/cvt.c:1101
  #, gcc-internal-format
  msgid "implicit dereference will not access object of type %qT in left operand of comma operator"
- msgstr "implicita avreferens kommer inte att använda objekt av typ %qT i vänstra operanden av kommaoperatorn"
+-msgstr "implicita avreferens kommer inte att använda objekt av typ %qT i vänstra operanden av kommaoperatorn"
++msgstr "implicit avreferens kommer inte att använda objekt av typ %qT i vänstra operanden av kommaoperatorn"
  
 -#: cp/cvt.c:1105
 +#: cp/cvt.c:1106
@@ -528059,7 +529333,8 @@ Index: gcc/po/sv.po
 +#: cp/cvt.c:1110
  #, gcc-internal-format
  msgid "implicit dereference will not access object of type %qT in for increment expression"
- msgstr "implicit avrefrens kommer inte att använda objekt av typ %qT i for-ökningsuttryck"
+-msgstr "implicit avrefrens kommer inte att använda objekt av typ %qT i for-ökningsuttryck"
++msgstr "implicit avreferens kommer inte att använda objekt av typ %qT i for-ökningsuttryck"
  
 -#: cp/cvt.c:1123
 +#: cp/cvt.c:1124
@@ -529417,7 +530692,8 @@ Index: gcc/po/sv.po
 +#: cp/decl.c:7815
  #, gcc-internal-format
  msgid "concept %q#D declared with a deduced return type"
- msgstr "conceptet %q#D deklarerad med en härledd returtyp"
+-msgstr "conceptet %q#D deklarerad med en härledd returtyp"
++msgstr "konceptet %q#D deklarerat med en härledd returtyp"
  
 -#: cp/decl.c:7762
 +#: cp/decl.c:7817
@@ -529580,7 +530856,8 @@ Index: gcc/po/sv.po
 +#: cp/decl.c:8501
  #, gcc-internal-format
  msgid "concept must have type %<bool%>"
- msgstr "concept måste ha typen %<bool%>"
+-msgstr "concept måste ha typen %<bool%>"
++msgstr "koncept måste ha typen %<bool%>"
  
 -#: cp/decl.c:8559
 +#: cp/decl.c:8614
@@ -530473,7 +531750,8 @@ Index: gcc/po/sv.po
 +#: cp/decl.c:11077
  #, gcc-internal-format
  msgid "%qD cannot be declared %<virtual%>, since it is always static"
- msgstr "%qD kan inte deklareras %<virtual%>, eftersom den redan är statisk"
+-msgstr "%qD kan inte deklareras %<virtual%>, eftersom den redan är statisk"
++msgstr "%qD kan inte deklareras %<virtual%>, eftersom den alltid är statisk"
  
 -#: cp/decl.c:11043
 +#: cp/decl.c:11093
@@ -531482,7 +532760,7 @@ Index: gcc/po/sv.po
 +#, gcc-internal-format
  msgid "recursive instantiation of non-static data member initializer for %qD"
 -msgstr "pure virtual %q#D anropad från initierare av ickestatisk datamedlem"
-+msgstr "rekursiv instantiering av ickestatisk datamedleminitierare för %qD"
++msgstr "rekursiv instansiering av ickestatisk datamedleminitierare för %qD"
  
  #: cp/init.c:580
  #, gcc-internal-format
@@ -532394,7 +533672,7 @@ Index: gcc/po/sv.po
 +#: cp/parser.c:3176
  #, gcc-internal-format
 +msgid "%<concept%> only available with -fconcepts"
-+msgstr "%<concept%> är endast tillgängligt -fconcepts"
++msgstr "%<concept%> är endast tillgängligt med -fconcepts"
 +
 +#: cp/parser.c:3202
 +#, gcc-internal-format
@@ -534297,7 +535575,8 @@ Index: gcc/po/sv.po
 +#: cp/parser.c:26867
  #, gcc-internal-format
  msgid "expected %<@synchronized%>"
- msgstr "%<synchronized%> förväntades"
+-msgstr "%<synchronized%> förväntades"
++msgstr "%<@synchronized%> förväntades"
  
 -#: cp/parser.c:26774
 +#: cp/parser.c:26870
@@ -534315,7 +535594,8 @@ Index: gcc/po/sv.po
 +#: cp/parser.c:26876
  #, gcc-internal-format
  msgid "expected %<__transaction_relaxed%>"
- msgstr "%<__transaction _relaxed%> förväntades"
+-msgstr "%<__transaction _relaxed%> förväntades"
++msgstr "%<__transaction_relaxed%> förväntades"
  
 -#: cp/parser.c:26811
 +#: cp/parser.c:26907
@@ -534411,7 +535691,8 @@ Index: gcc/po/sv.po
 +#: cp/parser.c:28310
  #, gcc-internal-format
  msgid "invalid Objective-C++ selector name"
- msgstr "ogiltigt Objective-C++-selekterarnamn"
+-msgstr "ogiltigt Objective-C++-selekterarnamn"
++msgstr "ogiltigt Objective-C++-väljarnamn"
  
 -#: cp/parser.c:28290 cp/parser.c:28308
 +#: cp/parser.c:28385 cp/parser.c:28403
@@ -534529,7 +535810,7 @@ Index: gcc/po/sv.po
 +#, gcc-internal-format
  msgid "%<#pragma omp declare simd%> of %<simd%> attribute cannot be used in the same function marked as a Cilk Plus SIMD-enabled  function"
 -msgstr "%<#pragma omp declare simd%> kan inte användas i samma funktion som är markerad som en Cilk Plus SIMD-aktiverad funktion"
-+msgstr "%<#pragma omp declare simd%> av %<simd%>-attributkan inte användas i samma funktion som är markerad som en Cilk Plus SIMD-aktiverad funktion"
++msgstr "%<#pragma omp declare simd%> av %<simd%>-attribut kan inte användas i samma funktion som är markerad som en Cilk Plus SIMD-aktiverad funktion"
  
 -#: cp/parser.c:35572
 +#: cp/parser.c:35668
@@ -535365,7 +536646,8 @@ Index: gcc/po/sv.po
 +#: cp/pt.c:6009
  #, gcc-internal-format
  msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
- msgstr "mallparameter %qD är inte ett parameterpaket, men argunet %qD är det"
+-msgstr "mallparameter %qD är inte ett parameterpaket, men argunet %qD är det"
++msgstr "mallparameter %qD är inte ett parameterpaket, men argument %qD är det"
  
 -#: cp/pt.c:6014
 +#: cp/pt.c:6020
@@ -536170,7 +537452,8 @@ Index: gcc/po/sv.po
 +#: cp/pt.c:24033
  #, gcc-internal-format
  msgid "placeholder constraints not satisfied"
- msgstr "platshållabegränsningar är inte uppfyllt"
+-msgstr "platshållabegränsningar är inte uppfyllt"
++msgstr "platshållarbegränsningar är inte uppfyllt"
  
 -#: cp/pt.c:23931
 -#, fuzzy, gcc-internal-format
@@ -536650,7 +537933,7 @@ Index: gcc/po/sv.po
 +#, gcc-internal-format
  msgid "%<gang%> static expression must be integral"
 -msgstr "%<async%>-uttryck måste vara heltal"
-+msgstr "%<gang%>-statisk uttryck måste vara heltal"
++msgstr "%<gang%>-statiskt uttryck måste vara heltal"
  
 -#: cp/semantics.c:6113
 -#, fuzzy, gcc-internal-format
@@ -536722,7 +538005,7 @@ Index: gcc/po/sv.po
 +#, gcc-internal-format
  msgid "%<worker%> num value must bepositive"
 -msgstr "%<num_workers%>-värdet måste vara positivt"
-+msgstr "%<worker%>-numerikst värde måste vara positivt"
++msgstr "%<worker%>-numeriskt värde måste vara positivt"
  
 -#: cp/semantics.c:6188
 -#, fuzzy, gcc-internal-format
@@ -536935,7 +538218,7 @@ Index: gcc/po/sv.po
 +#, gcc-internal-format
  msgid "both arguments in binary fold have unexpanded parameter packs"
 -msgstr "mallargument %qE berör mallparametrar"
-+msgstr "båda argumentet i en binär vikning har oexpanderade parameterpaket"
++msgstr "båda argumenten i en binär vikning har oexpanderade parameterpaket"
  
 -#: cp/semantics.c:9291
 +#: cp/semantics.c:9354
@@ -537119,7 +538402,7 @@ Index: gcc/po/sv.po
  #, gcc-internal-format
  msgid "request for member %qD in %qE, which is of non-class type %qT"
  msgstr "begäran av medlem %qD i %qE, som är av icke-klasstyp %qT"
-@@ -44372,636 +44406,624 @@
+@@ -44372,692 +44406,679 @@
  msgid "the type being destroyed is %qT, but the destructor refers to %qT"
  msgstr "typen som destrueras är %qT, men destrueraren refererar till %qT"
  
@@ -537599,7 +538882,8 @@ Index: gcc/po/sv.po
 +#: cp/typeck.c:6322
  #, gcc-internal-format
  msgid "expression list treated as compound expression in functional cast"
- msgstr "uttryckslista behandlas som sammansatt uttryck i funtionstypkonvertering"
+-msgstr "uttryckslista behandlas som sammansatt uttryck i funtionstypkonvertering"
++msgstr "uttryckslista behandlas som sammansatt uttryck i funktionstypkonvertering"
  
 -#: cp/typeck.c:6377
 +#: cp/typeck.c:6359
@@ -537899,8 +539183,8 @@ Index: gcc/po/sv.po
 +#: cp/typeck.c:8658
  #, gcc-internal-format
  msgid "returning a value from a destructor"
- msgstr "returnerar ett värde från en destruktor"
-@@ -45008,56 +45030,55 @@
+-msgstr "returnerar ett värde från en destruktor"
++msgstr "returnerar ett värde från en destruerare"
  
  #. If a return statement appears in a handler of the
  #. function-try-block of a constructor, the program is ill-formed.
@@ -537969,6 +539253,15 @@ Index: gcc/po/sv.po
  #, gcc-internal-format
  msgid "using xvalue (rvalue reference) as lvalue"
  msgstr "hjälp xvärde (rvärdesreferens) som lvärde"
+@@ -45201,7 +45222,7 @@
+ #: cp/typeck2.c:440
+ #, gcc-internal-format
+ msgid "definition of %q#T is not complete until the closing brace"
+-msgstr "definitionen av %q#T är inte fullständig före den avlutande klammern"
++msgstr "definitionen av %q#T är inte fullständig före den avslutande klammern"
+ 
+ #: cp/typeck2.c:443
+ #, gcc-internal-format
 @@ -45214,10 +45235,9 @@
  msgstr "deklaration av %q#T"
  
@@ -538171,6 +539464,15 @@ Index: gcc/po/sv.po
  #, gcc-internal-format
  msgid "call to function which throws incomplete type %q#T"
  msgstr "anrop till funktion som kastar ofullständig typ %q#T"
+@@ -45470,7 +45487,7 @@
+ #: fortran/arith.c:745
+ #, gcc-internal-format
+ msgid "Integer division truncated to constant %qs at %L"
+-msgstr "Heltalsdivision havhuggen till konstanten %qs vid %L"
++msgstr "Heltalsdivision avhuggen till konstanten %qs vid %L"
+ 
+ #: fortran/arith.c:791
+ #, gcc-internal-format
 @@ -45562,16 +45579,14 @@
  #: fortran/arith.c:2075 fortran/arith.c:2108 fortran/arith.c:2147
  #: fortran/arith.c:2205 fortran/arith.c:2257 fortran/arith.c:2317
@@ -538425,8 +539727,12 @@ Index: gcc/po/sv.po
  #, gcc-internal-format
  msgid "gfc_find_array_ref(): No ref found"
  msgstr "gfc_find_array_ref(): Det finns ingen referens"
-@@ -46041,10 +46054,9 @@
- msgstr "ATOM-argumentet till vid %L till den inbyggda funktionen %s måste vara en co-vektor eller co-indexat"
+@@ -46038,13 +46051,12 @@
+ #: fortran/check.c:1035
+ #, gcc-internal-format, gfc-internal-format
+ msgid "ATOM argument at %L of the %s intrinsic function shall be a coarray or coindexed"
+-msgstr "ATOM-argumentet till vid %L till den inbyggda funktionen %s måste vara en co-vektor eller co-indexat"
++msgstr "ATOM-argumentet vid %L till den inbyggda funktionen %s måste vara en co-vektor eller co-indexerat"
  
  #: fortran/check.c:1042
 -#, fuzzy, gcc-internal-format
@@ -538447,7 +539753,7 @@ Index: gcc/po/sv.po
 +#, gcc-internal-format, gfc-internal-format
  msgid "EVENT argument at %L to the intrinsic EVENT_QUERY shall be of type EVENT_TYPE"
 -msgstr "Argumentet A vid %L till den inbyggda %s skall inte vara co-indexerat"
-+msgstr "EVENT-argumentetet vid %L till den inbyggda EVENT_QUERY skall ha typen EVENT_TYPE"
++msgstr "EVENT-argumentet vid %L till den inbyggda EVENT_QUERY skall ha typen EVENT_TYPE"
  
  #: fortran/check.c:1177
 -#, fuzzy, gcc-internal-format, gfc-internal-format
@@ -539293,7 +540599,8 @@ Index: gcc/po/sv.po
 +#: fortran/decl.c:5217
  #, gcc-internal-format, gfc-internal-format
  msgid "Dummy procedure at %C may not have BIND(C) attribute with NAME"
- msgstr "Attrapprocedur vid %C kan inte ha attributet BIND(c) tillsammans med NAME"
+-msgstr "Attrapprocedur vid %C kan inte ha attributet BIND(c) tillsammans med NAME"
++msgstr "Attrapprocedur vid %C kan inte ha attributet BIND(C) tillsammans med NAME"
  
 -#: fortran/decl.c:5214
 +#: fortran/decl.c:5240
@@ -540998,13 +542305,15 @@ Index: gcc/po/sv.po
 +#: fortran/match.c:2649
  #, gcc-internal-format, gfc-internal-format
  msgid "Image control statement STOP at %C in CRITICAL block"
- msgstr "Bildkontrollsatsen STOP vid %C i CRITICAL-block"
+-msgstr "Bildkontrollsatsen STOP vid %C i CRITICAL-block"
++msgstr "Bildstyrsatsen STOP vid %C i CRITICAL-block"
  
 -#: fortran/match.c:2648
 +#: fortran/match.c:2654
  #, gcc-internal-format, gfc-internal-format
  msgid "Image control statement STOP at %C in DO CONCURRENT block"
- msgstr "Bildkontrollsatsen STOP vid %C i DO CONCURRENT-block"
+-msgstr "Bildkontrollsatsen STOP vid %C i DO CONCURRENT-block"
++msgstr "Bildstyrsatsen STOP vid %C i DO CONCURRENT-block"
  
 -#: fortran/match.c:2656
 +#: fortran/match.c:2662
@@ -541058,7 +542367,7 @@ Index: gcc/po/sv.po
 +#, gcc-internal-format, gfc-internal-format
  msgid "Image control statement EVENT %s at %C in CRITICAL block"
 -msgstr "Bildkontrollsatsen %s vid %C i CRITICAL-block"
-+msgstr "Bildkontrollsatsen EVENT %s vid %C i CRITICAL-block"
++msgstr "Bildstyrsatsen EVENT %s vid %C i CRITICAL-block"
  
 -#: fortran/match.c:2794
 -#, fuzzy, gcc-internal-format, gfc-internal-format
@@ -541067,7 +542376,7 @@ Index: gcc/po/sv.po
 +#, gcc-internal-format, gfc-internal-format
  msgid "Image control statement EVENT %s at %C in DO CONCURRENT block"
 -msgstr "Bildkontrollsatsen %s vid %C i DO CONCURRENT-block"
-+msgstr "Bildkontrollsatsen EVENT %s vid %C i DO CONCURRENT-block"
++msgstr "Bildstyrsatsen EVENT %s vid %C i DO CONCURRENT-block"
  
 -#: fortran/match.c:2824 fortran/match.c:3019 fortran/match.c:3231
 -#: fortran/match.c:3741 fortran/match.c:4078
@@ -541122,13 +542431,15 @@ Index: gcc/po/sv.po
 +#: fortran/match.c:2988
  #, gcc-internal-format, gfc-internal-format
  msgid "Image control statement %s at %C in CRITICAL block"
- msgstr "Bildkontrollsatsen %s vid %C i CRITICAL-block"
+-msgstr "Bildkontrollsatsen %s vid %C i CRITICAL-block"
++msgstr "Bildstyrsatsen %s vid %C i CRITICAL-block"
  
 -#: fortran/match.c:2989
 +#: fortran/match.c:2995
  #, gcc-internal-format, gfc-internal-format
  msgid "Image control statement %s at %C in DO CONCURRENT block"
- msgstr "Bildkontrollsatsen %s vid %C i DO CONCURRENT-block"
+-msgstr "Bildkontrollsatsen %s vid %C i DO CONCURRENT-block"
++msgstr "Bildstyrsatsen %s vid %C i DO CONCURRENT-block"
  
 -#: fortran/match.c:3061
 +#: fortran/match.c:3067
@@ -541164,13 +542475,15 @@ Index: gcc/po/sv.po
 +#: fortran/match.c:3185
  #, gcc-internal-format, gfc-internal-format
  msgid "Image control statement SYNC at %C in CRITICAL block"
- msgstr "Bildkontrollsatsen SYNC vid %C i CRITICAL-block"
+-msgstr "Bildkontrollsatsen SYNC vid %C i CRITICAL-block"
++msgstr "Bildstyrsatsen SYNC vid %C i CRITICAL-block"
  
 -#: fortran/match.c:3185
 +#: fortran/match.c:3191
  #, gcc-internal-format, gfc-internal-format
  msgid "Image control statement SYNC at %C in DO CONCURRENT block"
- msgstr "Bildkontrollsatsen SYNC vid %C i DO CONCURRENT-block"
+-msgstr "Bildkontrollsatsen SYNC vid %C i DO CONCURRENT-block"
++msgstr "Bildstyrsatsen SYNC vid %C i DO CONCURRENT-block"
  
 -#: fortran/match.c:3365
 +#: fortran/match.c:3371
@@ -541272,7 +542585,8 @@ Index: gcc/po/sv.po
 +#: fortran/match.c:3803
  #, gcc-internal-format, gfc-internal-format
  msgid "SOURCE tag at %L conflicts with the typespec at %L"
- msgstr "SOURCE-taggen vid %L står i konflikt med typespecifikationen vid %L"
+-msgstr "SOURCE-taggen vid %L står i konflikt med typespecifikationen vid %L"
++msgstr "SOURCE-taggen vid %L står i konflikt med typspecifikationen vid %L"
  
 -#: fortran/match.c:3803
 +#: fortran/match.c:3809
@@ -541296,7 +542610,8 @@ Index: gcc/po/sv.po
 +#: fortran/match.c:3840
  #, gcc-internal-format, gfc-internal-format
  msgid "MOLD tag at %L conflicts with the typespec at %L"
- msgstr "MOLD-taggen vid %L står i konflikt med typespecifikationen vid %L"
+-msgstr "MOLD-taggen vid %L står i konflikt med typespecifikationen vid %L"
++msgstr "MOLD-taggen vid %L står i konflikt med typspecifikationen vid %L"
  
 -#: fortran/match.c:3860
 +#: fortran/match.c:3866
@@ -541356,13 +542671,15 @@ Index: gcc/po/sv.po
 +#: fortran/match.c:4161
  #, gcc-internal-format, gfc-internal-format
  msgid "Image control statement RETURN at %C in CRITICAL block"
- msgstr "Bildkontrollsatsen RETURN vid %C i CRITICAL-block"
+-msgstr "Bildkontrollsatsen RETURN vid %C i CRITICAL-block"
++msgstr "Bildstyrsatsen RETURN vid %C i CRITICAL-block"
  
 -#: fortran/match.c:4161
 +#: fortran/match.c:4167
  #, gcc-internal-format, gfc-internal-format
  msgid "Image control statement RETURN at %C in DO CONCURRENT block"
- msgstr "Bildkontrollsatsen RETURN vid %C i DO CONCURRENT-block"
+-msgstr "Bildkontrollsatsen RETURN vid %C i DO CONCURRENT-block"
++msgstr "Bildstyrsatsen RETURN vid %C i DO CONCURRENT-block"
  
 -#: fortran/match.c:4170
 +#: fortran/match.c:4176
@@ -541524,7 +542841,7 @@ Index: gcc/po/sv.po
 +#, gcc-internal-format, gfc-internal-format
  msgid "Expression in CASE selector at %L cannot be %s"
 -msgstr "Uttryck i CASE-sats vid %L måste vara skalärt"
-+msgstr "Uttryck i CASE-sats vid %L får inte vara %s"
++msgstr "Uttryck i CASE-väljare vid %L får inte vara %s"
  
 -#: fortran/match.c:5286
 +#: fortran/match.c:5292
@@ -541638,7 +542955,7 @@ Index: gcc/po/sv.po
 +#, gcc-internal-format, gfc-internal-format
  msgid "Can't USE the same %smodule we're building!"
 -msgstr "Det går inta att USE samma modul vi bygger!"
-+msgstr "Det går inta att USE samma %smodul vi bygger!"
++msgstr "Det går inte att USE samma %smodul vi bygger!"
  
 -#: fortran/openmp.c:287 fortran/openmp.c:495 fortran/openmp.c:2397
 -#: fortran/openmp.c:2471
@@ -541685,7 +543002,7 @@ Index: gcc/po/sv.po
 +#, gcc-internal-format, gfc-internal-format
  msgid "Syntax error in !$ACC DECLARE list at %C"
 -msgstr "Syntaxfel i !$OMP DECLARE TARGET-lista vid %C"
-+msgstr "Syntaxfel i !$OMP DECLARE-lista vid %C"
++msgstr "Syntaxfel i !$ACC DECLARE-lista vid %C"
  
 -#: fortran/openmp.c:989
 +#: fortran/openmp.c:991
@@ -541721,7 +543038,7 @@ Index: gcc/po/sv.po
 +#, gcc-internal-format, gfc-internal-format
  msgid "Assumed-size dummy array with $!ACC DECLARE at %L"
 -msgstr "Vektor %qs med antagen storlek i %s-klausul vid %L"
-+msgstr "Attrappvektor med antagen storlek med $!ACC DECLARE at %L"
++msgstr "Attrappvektor med antagen storlek med $!ACC DECLARE vid %L"
  
 -#: fortran/openmp.c:1539
 -#, fuzzy, gcc-internal-format
@@ -542909,6 +544226,15 @@ Index: gcc/po/sv.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Two main PROGRAMs at %L and %C"
  msgstr "Två huvud-PROGRAM vid %L och %C"
+@@ -52853,7 +52809,7 @@
+ #: fortran/primary.c:562
+ #, gcc-internal-format
+ msgid "Extension: exponent-letter %<q%> in real-literal-constant at %C"
+-msgstr "Utökning: exponentbokstav %<q%> i reeel literal konstant vid %C"
++msgstr "Utökning: exponentbokstav %<q%> i reell literal konstant vid %C"
+ 
+ #: fortran/primary.c:578
+ #, gcc-internal-format, gfc-internal-format
 @@ -52965,177 +52921,182 @@
  msgid "Syntax error in COMPLEX constant at %C"
  msgstr "Syntaxfel i COMPLEX-konstant vid %C"
@@ -544090,7 +545416,8 @@ Index: gcc/po/sv.po
 +#: fortran/resolve.c:11964
  #, gcc-internal-format, gfc-internal-format
  msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
- msgstr "PURE-attribute stämmer inte mellan MODULE PROCEDURE vid %L och dess gränssnitt i %s"
+-msgstr "PURE-attribute stämmer inte mellan MODULE PROCEDURE vid %L och dess gränssnitt i %s"
++msgstr "PURE-attribut stämmer inte mellan MODULE PROCEDURE vid %L och dess gränssnitt i %s"
  
 -#: fortran/resolve.c:11961
 +#: fortran/resolve.c:11972
@@ -544960,6 +546287,15 @@ Index: gcc/po/sv.po
  #, gcc-internal-format
  msgid "Can't open file %qs"
  msgstr "Kan inte öppna filen %qs"
+@@ -55669,7 +55616,7 @@
+ #: fortran/simplify.c:1173
+ #, gcc-internal-format, gfc-internal-format
+ msgid "If first argument of ATAN2 %L is zero, then the second argument must not be zero"
+-msgstr "Om första argumentet till ATANH2 %L är noll får inte andra argumentet vara noll"
++msgstr "Om första argumentet till ATAN2 %L är noll får inte andra argumentet vara noll"
+ 
+ #: fortran/simplify.c:1265
+ #, gcc-internal-format, gfc-internal-format
 @@ -55822,69 +55769,67 @@
  msgid "Argument NCOPIES of REPEAT intrinsic is too large at %L"
  msgstr "Argumentet NCOPIES till inbyggd REPEAT är för stort vid %L"
@@ -545403,10 +546739,47 @@ Index: gcc/po/sv.po
  
  #: lto/lto-symtab.c:703
  #, gcc-internal-format
-@@ -58141,364 +58070,3 @@
+@@ -57253,7 +57182,7 @@
+ #: objc/objc-act.c:707
+ #, gcc-internal-format
+ msgid "%<@package%> presently has the same effect as %<@public%>"
+-msgstr "%<package%> har för närvarande samma effekt som %<@public%>"
++msgstr "%<@package%> har för närvarande samma effekt som %<@public%>"
+ 
+ #: objc/objc-act.c:718
+ #, gcc-internal-format
+@@ -57278,7 +57207,7 @@
+ #: objc/objc-act.c:837
+ #, gcc-internal-format
+ msgid "%<@property%> is not available in Objective-C 1.0"
+-msgstr "%<property%> finns inte i Objective-C 1.0"
++msgstr "%<@property%> finns inte i Objective-C 1.0"
+ 
+ #: objc/objc-act.c:841
+ #, gcc-internal-format
+@@ -57673,7 +57602,7 @@
+ #: objc/objc-act.c:5101
+ #, gcc-internal-format
+ msgid "multiple selectors named %<%c%E%> found"
+-msgstr "multipla selektorer med namnet %<%c%E%> funna"
++msgstr "multipla väljare med namnet %<%c%E%> funna"
+ 
+ #: objc/objc-act.c:5104
+ #, gcc-internal-format
+@@ -57762,7 +57691,7 @@
+ #: objc/objc-act.c:5729
+ #, gcc-internal-format
+ msgid "undeclared selector %qE"
+-msgstr "odeklarerad selektor %qE"
++msgstr "odeklarerad väljare %qE"
+ 
+ #. Historically, a class method that produced objects (factory
+ #. method) would assign `self' to the instance that it
+@@ -58140,365 +58069,4 @@
+ #: objc/objc-runtime-shared-support.c:425
  #, gcc-internal-format
  msgid "creating selector for nonexistent method %qE"
- msgstr "skapar selektor för icke existerande metod %qE"
+-msgstr "skapar selektor för icke existerande metod %qE"
 -
 -#~ msgid "Bound on the number of variables in Omega constraint systems"
 -#~ msgstr "Gräns för antalet variabler i Omegasystem av bivillkor"
@@ -545768,6 +547141,7 @@ Index: gcc/po/sv.po
 -
 -#~ msgid "CHARACTER variable at %L has negative length %d, the length has been set to zero"
 -#~ msgstr "CHARACTER-variabel vid %L har negativ längd %d, längden har satts till noll"
++msgstr "skapar väljare för icke existerande metod %qE"
 Index: gcc/po/de.po
 ===================================================================
 --- a/src/gcc/po/de.po	(.../tags/gcc_6_1_0_release)
@@ -822404,7 +823778,23 @@ Index: gcc/config/i386/i386.c
      case V16SF_FTYPE_V16SF:
      case V8DI_FTYPE_UQI:
      case V8DF_FTYPE_V4DF:
-@@ -42263,6 +42317,8 @@
+@@ -39315,6 +39369,7 @@
+     case 5:
+       pat = GEN_FCN (icode) (real_target, args[0].op, args[1].op,
+ 			     args[2].op, args[3].op, args[4].op);
++      break;
+     case 6:
+       pat = GEN_FCN (icode) (real_target, args[0].op, args[1].op,
+ 			     args[2].op, args[3].op, args[4].op,
+@@ -39689,6 +39744,7 @@
+     case 5:
+       pat = GEN_FCN (icode) (target, args[0].op, args[1].op,
+ 			     args[2].op, args[3].op, args[4].op);
++      break;
+     case 6:
+       pat = GEN_FCN (icode) (target, args[0].op, args[1].op,
+ 			     args[2].op, args[3].op, args[4].op,
+@@ -42263,6 +42319,8 @@
  	    return ix86_get_builtin (IX86_BUILTIN_FLOORPS_SFIX);
  	  else if (out_n == 8 && in_n == 8)
  	    return ix86_get_builtin (IX86_BUILTIN_FLOORPS_SFIX256);
@@ -822413,7 +823803,7 @@ Index: gcc/config/i386/i386.c
  	}
        break;
  
-@@ -42288,6 +42344,8 @@
+@@ -42288,6 +42346,8 @@
  	    return ix86_get_builtin (IX86_BUILTIN_CEILPS_SFIX);
  	  else if (out_n == 8 && in_n == 8)
  	    return ix86_get_builtin (IX86_BUILTIN_CEILPS_SFIX256);
@@ -822422,7 +823812,7 @@ Index: gcc/config/i386/i386.c
  	}
        break;
  
-@@ -42300,6 +42358,8 @@
+@@ -42300,6 +42360,8 @@
  	    return ix86_get_builtin (IX86_BUILTIN_VEC_PACK_SFIX);
  	  else if (out_n == 8 && in_n == 4)
  	    return ix86_get_builtin (IX86_BUILTIN_VEC_PACK_SFIX256);
@@ -822431,7 +823821,7 @@ Index: gcc/config/i386/i386.c
  	}
        if (out_mode == SImode && in_mode == SFmode)
  	{
-@@ -42307,6 +42367,8 @@
+@@ -42307,6 +42369,8 @@
  	    return ix86_get_builtin (IX86_BUILTIN_CVTPS2DQ);
  	  else if (out_n == 8 && in_n == 8)
  	    return ix86_get_builtin (IX86_BUILTIN_CVTPS2DQ256);
@@ -822440,7 +823830,7 @@ Index: gcc/config/i386/i386.c
  	}
        break;
  
-@@ -42332,6 +42394,8 @@
+@@ -42332,6 +42396,8 @@
  	    return ix86_get_builtin (IX86_BUILTIN_ROUNDPS_AZ_SFIX);
  	  else if (out_n == 8 && in_n == 8)
  	    return ix86_get_builtin (IX86_BUILTIN_ROUNDPS_AZ_SFIX256);
@@ -822449,7 +823839,7 @@ Index: gcc/config/i386/i386.c
  	}
        break;
  
-@@ -42346,6 +42410,8 @@
+@@ -42346,6 +42412,8 @@
  	    return ix86_get_builtin (IX86_BUILTIN_FLOORPD);
  	  else if (out_n == 4 && in_n == 4)
  	    return ix86_get_builtin (IX86_BUILTIN_FLOORPD256);
@@ -822458,7 +823848,7 @@ Index: gcc/config/i386/i386.c
  	}
        if (out_mode == SFmode && in_mode == SFmode)
  	{
-@@ -42353,6 +42419,8 @@
+@@ -42353,6 +42421,8 @@
  	    return ix86_get_builtin (IX86_BUILTIN_FLOORPS);
  	  else if (out_n == 8 && in_n == 8)
  	    return ix86_get_builtin (IX86_BUILTIN_FLOORPS256);
@@ -822467,7 +823857,7 @@ Index: gcc/config/i386/i386.c
  	}
        break;
  
-@@ -42367,6 +42435,8 @@
+@@ -42367,6 +42437,8 @@
  	    return ix86_get_builtin (IX86_BUILTIN_CEILPD);
  	  else if (out_n == 4 && in_n == 4)
  	    return ix86_get_builtin (IX86_BUILTIN_CEILPD256);
@@ -822476,7 +823866,7 @@ Index: gcc/config/i386/i386.c
  	}
        if (out_mode == SFmode && in_mode == SFmode)
  	{
-@@ -42374,6 +42444,8 @@
+@@ -42374,6 +42446,8 @@
  	    return ix86_get_builtin (IX86_BUILTIN_CEILPS);
  	  else if (out_n == 8 && in_n == 8)
  	    return ix86_get_builtin (IX86_BUILTIN_CEILPS256);
@@ -822485,7 +823875,7 @@ Index: gcc/config/i386/i386.c
  	}
        break;
  
-@@ -42388,6 +42460,8 @@
+@@ -42388,6 +42462,8 @@
  	    return ix86_get_builtin (IX86_BUILTIN_TRUNCPD);
  	  else if (out_n == 4 && in_n == 4)
  	    return ix86_get_builtin (IX86_BUILTIN_TRUNCPD256);
@@ -822494,7 +823884,7 @@ Index: gcc/config/i386/i386.c
  	}
        if (out_mode == SFmode && in_mode == SFmode)
  	{
-@@ -42395,6 +42469,8 @@
+@@ -42395,6 +42471,8 @@
  	    return ix86_get_builtin (IX86_BUILTIN_TRUNCPS);
  	  else if (out_n == 8 && in_n == 8)
  	    return ix86_get_builtin (IX86_BUILTIN_TRUNCPS256);
@@ -822522,6 +823912,21 @@ Index: gcc/config/avr/avr.md
 ===================================================================
 --- a/src/gcc/config/avr/avr.md	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/config/avr/avr.md	(.../branches/gcc-6-branch)
+@@ -112,12 +112,12 @@
+ (define_attr "length" ""
+   (cond [(eq_attr "type" "branch")
+          (if_then_else (and (ge (minus (pc) (match_dup 0))
+-                                (const_int -63))
++                                (const_int -62))
+                             (le (minus (pc) (match_dup 0))
+                                 (const_int 62)))
+                        (const_int 1)
+                        (if_then_else (and (ge (minus (pc) (match_dup 0))
+-                                              (const_int -2045))
++                                              (const_int -2044))
+                                           (le (minus (pc) (match_dup 0))
+                                               (const_int 2045)))
+                                      (const_int 2)
 @@ -641,6 +641,22 @@
      if (avr_mem_flash_p (dest))
        DONE;
@@ -822578,7 +823983,108 @@ Index: gcc/config/avr/avr.c
 ===================================================================
 --- a/src/gcc/config/avr/avr.c	(.../tags/gcc_6_1_0_release)
 +++ b/src/gcc/config/avr/avr.c	(.../branches/gcc-6-branch)
-@@ -9721,7 +9721,9 @@
+@@ -203,9 +203,6 @@
+ /* Current architecture.  */
+ const avr_arch_t *avr_arch;
+ 
+-/* Section to put switch tables in.  */
+-static GTY(()) section *progmem_swtable_section;
+-
+ /* Unnamed sections associated to __attribute__((progmem)) aka. PROGMEM
+    or to address space __flash* or __memx.  Only used as singletons inside
+    avr_asm_select_section, but it must not be local there because of GTY.  */
+@@ -9461,24 +9458,6 @@
+ static void
+ avr_asm_init_sections (void)
+ {
+-  /* Set up a section for jump tables.  Alignment is handled by
+-     ASM_OUTPUT_BEFORE_CASE_LABEL.  */
+-
+-  if (AVR_HAVE_JMP_CALL)
+-    {
+-      progmem_swtable_section
+-        = get_unnamed_section (0, output_section_asm_op,
+-                               "\t.section\t.progmem.gcc_sw_table"
+-                               ",\"a\", at progbits");
+-    }
+-  else
+-    {
+-      progmem_swtable_section
+-        = get_unnamed_section (SECTION_CODE, output_section_asm_op,
+-                               "\t.section\t.progmem.gcc_sw_table"
+-                               ",\"ax\", at progbits");
+-    }
+-
+   /* Override section callbacks to keep track of `avr_need_clear_bss_p'
+      resp. `avr_need_copy_data_p'.  */
+ 
+@@ -9488,65 +9467,6 @@
+ }
+ 
+ 
+-/* Implement `TARGET_ASM_FUNCTION_RODATA_SECTION'.  */
+-
+-static section*
+-avr_asm_function_rodata_section (tree decl)
+-{
+-  /* If a function is unused and optimized out by -ffunction-sections
+-     and --gc-sections, ensure that the same will happen for its jump
+-     tables by putting them into individual sections.  */
+-
+-  unsigned int flags;
+-  section * frodata;
+-
+-  /* Get the frodata section from the default function in varasm.c
+-     but treat function-associated data-like jump tables as code
+-     rather than as user defined data.  AVR has no constant pools.  */
+-  {
+-    int fdata = flag_data_sections;
+-
+-    flag_data_sections = flag_function_sections;
+-    frodata = default_function_rodata_section (decl);
+-    flag_data_sections = fdata;
+-    flags = frodata->common.flags;
+-  }
+-
+-  if (frodata != readonly_data_section
+-      && flags & SECTION_NAMED)
+-    {
+-      /* Adjust section flags and replace section name prefix.  */
+-
+-      unsigned int i;
+-
+-      static const char* const prefix[] =
+-        {
+-          ".rodata",          ".progmem.gcc_sw_table",
+-          ".gnu.linkonce.r.", ".gnu.linkonce.t."
+-        };
+-
+-      for (i = 0; i < sizeof (prefix) / sizeof (*prefix); i += 2)
+-        {
+-          const char * old_prefix = prefix[i];
+-          const char * new_prefix = prefix[i+1];
+-          const char * name = frodata->named.name;
+-
+-          if (STR_PREFIX_P (name, old_prefix))
+-            {
+-              const char *rname = ACONCAT ((new_prefix,
+-                                            name + strlen (old_prefix), NULL));
+-              flags &= ~SECTION_CODE;
+-              flags |= AVR_HAVE_JMP_CALL ? 0 : SECTION_CODE;
+-
+-              return get_section (rname, flags, frodata->named.decl);
+-            }
+-        }
+-    }
+-
+-  return progmem_swtable_section;
+-}
+-
+-
+ /* Implement `TARGET_ASM_NAMED_SECTION'.  */
+ /* Track need of __do_clear_bss, __do_copy_data for named sections.  */
+ 
+@@ -9721,7 +9641,9 @@
              {
                const char *sname = ACONCAT ((new_prefix,
                                              name + strlen (old_prefix), NULL));
@@ -822589,6 +824095,29 @@ Index: gcc/config/avr/avr.c
              }
          }
  
+@@ -13747,9 +13669,6 @@
+ #undef  TARGET_FOLD_BUILTIN
+ #define TARGET_FOLD_BUILTIN avr_fold_builtin
+ 
+-#undef  TARGET_ASM_FUNCTION_RODATA_SECTION
+-#define TARGET_ASM_FUNCTION_RODATA_SECTION avr_asm_function_rodata_section
+-
+ #undef  TARGET_SCALAR_MODE_SUPPORTED_P
+ #define TARGET_SCALAR_MODE_SUPPORTED_P avr_scalar_mode_supported_p
+ 
+Index: gcc/config/avr/avr.h
+===================================================================
+--- a/src/gcc/config/avr/avr.h	(.../tags/gcc_6_1_0_release)
++++ b/src/gcc/config/avr/avr.h	(.../branches/gcc-6-branch)
+@@ -391,7 +391,7 @@
+ 
+ #define SUPPORTS_INIT_PRIORITY 0
+ 
+-#define JUMP_TABLES_IN_TEXT_SECTION 0
++#define JUMP_TABLES_IN_TEXT_SECTION 1
+ 
+ #define ASM_COMMENT_START " ; "
+ 
 Index: gcc/config/rtems.h
 ===================================================================
 --- a/src/gcc/config/rtems.h	(.../tags/gcc_6_1_0_release)
@@ -825059,6 +826588,17 @@ Index: gcc/config/rs6000/rs6000.c
    rs6000_align_branch_targets = (rs6000_cpu == PROCESSOR_POWER4
  				 || rs6000_cpu == PROCESSOR_POWER5
  				 || rs6000_cpu == PROCESSOR_POWER6
+@@ -5677,8 +5764,8 @@
+     }
+ 
+ #ifdef USING_ELFOS_H
+-  if (rs6000_default_cpu == 0 || rs6000_default_cpu[0] == '\0'
+-      || !global_options_set.x_rs6000_cpu_index)
++  if (!(rs6000_default_cpu && rs6000_default_cpu[0])
++      && !global_options_set.x_rs6000_cpu_index)
+     {
+       fputs ("\t.machine ", asm_out_file);
+       if ((rs6000_isa_flags & OPTION_MASK_MODULO) != 0)
 @@ -6134,6 +6221,128 @@
    gcc_unreachable ();
  }
@@ -826055,7 +827595,23 @@ Index: gcc/config/rs6000/rs6000.c
  
    if (target == 0
        || GET_MODE (target) != tmode
-@@ -14129,6 +14606,47 @@
+@@ -13768,6 +14245,7 @@
+       break;
+     case ALTIVEC_BUILTIN_LD_INTERNAL_2di:
+       icode = CODE_FOR_vector_altivec_load_v2di;
++      break;
+     case ALTIVEC_BUILTIN_LD_INTERNAL_1ti:
+       icode = CODE_FOR_vector_altivec_load_v1ti;
+       break;
+@@ -13829,6 +14307,7 @@
+       break;
+     case ALTIVEC_BUILTIN_ST_INTERNAL_2di:
+       icode = CODE_FOR_vector_altivec_store_v2di;
++      break;
+     case ALTIVEC_BUILTIN_ST_INTERNAL_1ti:
+       icode = CODE_FOR_vector_altivec_store_v1ti;
+       break;
+@@ -14129,6 +14608,47 @@
      case VSX_BUILTIN_STXVW4X_V16QI:
        return altivec_expand_stv_builtin (CODE_FOR_vsx_store_v16qi, exp);
  
@@ -826103,7 +827659,7 @@ Index: gcc/config/rs6000/rs6000.c
      case ALTIVEC_BUILTIN_MFVSCR:
        icode = CODE_FOR_altivec_mfvscr;
        tmode = insn_data[icode].operand[0].mode;
-@@ -14323,6 +14841,46 @@
+@@ -14323,6 +14843,46 @@
      case VSX_BUILTIN_LXVW4X_V16QI:
        return altivec_expand_lv_builtin (CODE_FOR_vsx_load_v16qi,
  					exp, target, false);
@@ -826150,7 +827706,7 @@ Index: gcc/config/rs6000/rs6000.c
        break;
      default:
        break;
-@@ -14792,6 +15350,14 @@
+@@ -14792,6 +15352,14 @@
      error ("Builtin function %s requires the -mhard-dfp option", name);
    else if ((fnmask & RS6000_BTM_P8_VECTOR) != 0)
      error ("Builtin function %s requires the -mpower8-vector option", name);
@@ -826165,7 +827721,7 @@ Index: gcc/config/rs6000/rs6000.c
    else if ((fnmask & (RS6000_BTM_HARD_FLOAT | RS6000_BTM_LDBL128))
  	   == (RS6000_BTM_HARD_FLOAT | RS6000_BTM_LDBL128))
      error ("Builtin function %s requires the -mhard-float and"
-@@ -14798,11 +15364,57 @@
+@@ -14798,11 +15366,57 @@
  	   " -mlong-double-128 options", name);
    else if ((fnmask & RS6000_BTM_HARD_FLOAT) != 0)
      error ("Builtin function %s requires the -mhard-float option", name);
@@ -826223,7 +827779,7 @@ Index: gcc/config/rs6000/rs6000.c
  /* Expand an expression EXP that calls a built-in function,
     with result going to TARGET if that's convenient
     (and in mode MODE if that's convenient).
-@@ -14990,9 +15602,11 @@
+@@ -14990,9 +15604,11 @@
      }  
  
    unsigned attr = rs6000_builtin_info[uns_fcode].attr & RS6000_BTC_TYPE_MASK;
@@ -826236,7 +827792,7 @@ Index: gcc/config/rs6000/rs6000.c
  
    /* Handle simple unary operations.  */
    d = bdesc_1arg;
-@@ -15012,6 +15626,12 @@
+@@ -15012,6 +15628,12 @@
      if (d->code == fcode)
        return rs6000_expand_ternop_builtin (d->icode, exp, target);
  
@@ -826249,7 +827805,7 @@ Index: gcc/config/rs6000/rs6000.c
    gcc_unreachable ();
  }
  
-@@ -15049,6 +15669,10 @@
+@@ -15049,6 +15671,10 @@
    opaque_p_V2SI_type_node = build_pointer_type (opaque_V2SI_type_node);
    opaque_V4SI_type_node = build_opaque_vector_type (intSI_type_node, 4);
  
@@ -826260,7 +827816,7 @@ Index: gcc/config/rs6000/rs6000.c
    /* We use V1TI mode as a special container to hold __int128_t items that
       must live in VSX registers.  */
    if (intTI_type_node)
-@@ -15111,6 +15735,12 @@
+@@ -15111,6 +15737,12 @@
        lang_hooks.types.register_builtin_type (ibm128_float_type_node,
  					      "__ibm128");
      }
@@ -826273,7 +827829,7 @@ Index: gcc/config/rs6000/rs6000.c
  
    /* Initialize the modes for builtin_function_type, mapping a machine mode to
       tree type node.  */
-@@ -15252,6 +15882,15 @@
+@@ -15252,6 +15884,15 @@
    if (TARGET_EXTRA_BUILTINS || TARGET_SPE || TARGET_PAIRED_FLOAT)
      rs6000_common_init_builtins ();
  
@@ -826289,7 +827845,7 @@ Index: gcc/config/rs6000/rs6000.c
    ftype = builtin_function_type (DFmode, DFmode, DFmode, VOIDmode,
  				 RS6000_BUILTIN_RECIP, "__builtin_recipdiv");
    def_builtin ("__builtin_recipdiv", ftype, RS6000_BUILTIN_RECIP);
-@@ -15816,10 +16455,44 @@
+@@ -15816,10 +16457,44 @@
  	       VSX_BUILTIN_STXVW4X_V8HI);
    def_builtin ("__builtin_vsx_stxvw4x_v16qi", void_ftype_v16qi_long_pvoid,
  	       VSX_BUILTIN_STXVW4X_V16QI);
@@ -826334,7 +827890,7 @@ Index: gcc/config/rs6000/rs6000.c
  
    def_builtin ("__builtin_vec_step", int_ftype_opaque, ALTIVEC_BUILTIN_VEC_STEP);
    def_builtin ("__builtin_vec_splats", opaque_ftype_opaque, ALTIVEC_BUILTIN_VEC_SPLATS);
-@@ -16351,10 +17024,6 @@
+@@ -16351,10 +17026,6 @@
    while (num_args > 0 && h.mode[num_args] == VOIDmode)
      num_args--;
  
@@ -826345,7 +827901,7 @@ Index: gcc/config/rs6000/rs6000.c
    ret_type = builtin_mode_to_type[h.mode[0]][h.uns_p[0]];
    if (!ret_type && h.uns_p[0])
      ret_type = builtin_mode_to_type[h.mode[0]][0];
-@@ -16406,6 +17075,7 @@
+@@ -16406,6 +17077,7 @@
    tree opaque_ftype_opaque = NULL_TREE;
    tree opaque_ftype_opaque_opaque = NULL_TREE;
    tree opaque_ftype_opaque_opaque_opaque = NULL_TREE;
@@ -826353,7 +827909,7 @@ Index: gcc/config/rs6000/rs6000.c
    tree v2si_ftype_qi = NULL_TREE;
    tree v2si_ftype_v2si_qi = NULL_TREE;
    tree v2si_ftype_int_qi = NULL_TREE;
-@@ -16622,6 +17292,64 @@
+@@ -16622,6 +17294,64 @@
  
        def_builtin (d->name, type, d->code);
      }
@@ -826418,7 +827974,7 @@ Index: gcc/config/rs6000/rs6000.c
  }
  
  /* Set up AIX/Darwin/64-bit Linux quad floating point routines.  */
-@@ -18006,25 +18734,33 @@
+@@ -18006,25 +18736,33 @@
      addr_mask = (reg_addr[mode].addr_mask[RELOAD_REG_VMX]
  		 & ~RELOAD_REG_AND_M16);
  
@@ -826463,7 +828019,7 @@ Index: gcc/config/rs6000/rs6000.c
  
        return -1;
      }
-@@ -18152,6 +18888,16 @@
+@@ -18152,6 +18890,16 @@
  	    }
  	}
  
@@ -826480,7 +828036,7 @@ Index: gcc/config/rs6000/rs6000.c
        /* Make sure the register class can handle offset addresses.  */
        else if (rs6000_legitimate_offset_address_p (mode, addr, false, true))
  	{
-@@ -18158,7 +18904,7 @@
+@@ -18158,7 +18906,7 @@
  	  if ((addr_mask & RELOAD_REG_OFFSET) == 0)
  	    {
  	      extra_cost = 1;
@@ -826489,7 +828045,7 @@ Index: gcc/config/rs6000/rs6000.c
  	    }
  	}
  
-@@ -18171,8 +18917,15 @@
+@@ -18171,8 +18919,15 @@
        break;
  
      case LO_SUM:
@@ -826506,7 +828062,7 @@ Index: gcc/config/rs6000/rs6000.c
  	  fail_msg = "bad LO_SUM";
  	  extra_cost = -1;
  	}
-@@ -18188,8 +18941,17 @@
+@@ -18188,8 +18943,17 @@
      case CONST:
      case SYMBOL_REF:
      case LABEL_REF:
@@ -826526,7 +828082,7 @@ Index: gcc/config/rs6000/rs6000.c
        break;
  
        /* TOC references look like offsetable memory.  */
-@@ -18200,6 +18962,12 @@
+@@ -18200,6 +18964,12 @@
  	  extra_cost = -1;
  	}
  
@@ -826539,7 +828095,7 @@ Index: gcc/config/rs6000/rs6000.c
        else if ((addr_mask & RELOAD_REG_OFFSET) == 0)
  	{
  	  extra_cost = 1;
-@@ -18256,7 +19024,8 @@
+@@ -18256,7 +19026,8 @@
       simple move insns are issued.  At present, 32-bit integers are not allowed
       in FPR/VSX registers.  Single precision binary floating is not a simple
       move because we need to convert to the single precision memory layout.
@@ -826549,7 +828105,7 @@ Index: gcc/config/rs6000/rs6000.c
    size = GET_MODE_SIZE (mode);
    if (TARGET_DIRECT_MOVE
        && ((mode == SDmode) || (TARGET_POWERPC64 && size == 8))
-@@ -18264,7 +19033,7 @@
+@@ -18264,7 +19035,7 @@
  	  || (to_type == VSX_REG_TYPE && from_type == GPR_REG_TYPE)))
      return true;
  
@@ -826558,7 +828114,15 @@ Index: gcc/config/rs6000/rs6000.c
  	   && ((to_type == VSX_REG_TYPE && from_type == GPR_REG_TYPE)
  	       || (to_type == GPR_REG_TYPE && from_type == VSX_REG_TYPE)))
      return true;
-@@ -18653,6 +19422,9 @@
+@@ -18460,6 +19231,7 @@
+ 		       && MEM_P (SUBREG_REG (x))));
+ 
+   sri->icode = CODE_FOR_nothing;
++  sri->t_icode = CODE_FOR_nothing;
+   sri->extra_cost = 0;
+   icode = ((in_p)
+ 	   ? reg_addr[mode].reload_load
+@@ -18653,6 +19425,9 @@
  	fprintf (stderr, ", reload func = %s, extra cost = %d",
  		 insn_data[sri->icode].name, sri->extra_cost);
  
@@ -826568,7 +828132,7 @@ Index: gcc/config/rs6000/rs6000.c
        fputs ("\n", stderr);
        debug_rtx (x);
      }
-@@ -18827,6 +19599,16 @@
+@@ -18827,6 +19602,16 @@
  	    }
  	}
  
@@ -826585,7 +828149,7 @@ Index: gcc/config/rs6000/rs6000.c
        /* Make sure the register class can handle offset addresses.  */
        else if (rs6000_legitimate_offset_address_p (mode, addr, false, true))
  	{
-@@ -18857,6 +19639,13 @@
+@@ -18857,6 +19642,13 @@
  	    }
  	}
  
@@ -826599,7 +828163,7 @@ Index: gcc/config/rs6000/rs6000.c
        /* Make sure the register class can handle offset addresses.  */
        else if (legitimate_lo_sum_address_p (mode, addr, false))
  	{
-@@ -19046,6 +19835,16 @@
+@@ -19046,6 +19838,16 @@
    machine_mode mode = GET_MODE (x);
    bool is_constant = CONSTANT_P (x);
  
@@ -826616,7 +828180,7 @@ Index: gcc/config/rs6000/rs6000.c
    /* For VSX, see if we should prefer FLOAT_REGS or ALTIVEC_REGS.  Do not allow
       the reloading of address expressions using PLUS into floating point
       registers.  */
-@@ -19067,7 +19866,8 @@
+@@ -19067,7 +19869,8 @@
  	}
  
        /* D-form addressing can easily reload the value.  */
@@ -826626,7 +828190,7 @@ Index: gcc/config/rs6000/rs6000.c
  	return rclass;
  
        /* If this is a scalar floating point value and we don't have D-form
-@@ -19095,6 +19895,25 @@
+@@ -19095,6 +19898,25 @@
        return NO_REGS;
      }
  
@@ -826652,7 +828216,7 @@ Index: gcc/config/rs6000/rs6000.c
    if (GET_MODE_CLASS (mode) == MODE_INT && rclass == NON_SPECIAL_REGS)
      return GENERAL_REGS;
  
-@@ -19483,8 +20302,16 @@
+@@ -19483,8 +20305,16 @@
  
        else if (TARGET_VSX && dest_vsx_p)
  	{
@@ -826670,7 +828234,7 @@ Index: gcc/config/rs6000/rs6000.c
  	  else
  	    return "lxvd2x %x0,%y1";
  	}
-@@ -19513,8 +20340,16 @@
+@@ -19513,8 +20343,16 @@
  
        else if (TARGET_VSX && src_vsx_p)
  	{
@@ -826688,7 +828252,7 @@ Index: gcc/config/rs6000/rs6000.c
  	  else
  	    return "stxvd2x %x1,%y0";
  	}
-@@ -19536,10 +20371,8 @@
+@@ -19536,10 +20374,8 @@
        if (dest_gpr_p)
  	return "#";
  
@@ -826701,7 +828265,7 @@ Index: gcc/config/rs6000/rs6000.c
  	return output_vec_const_move (operands);
      }
  
-@@ -21747,6 +22580,101 @@
+@@ -21747,6 +22583,101 @@
    return 1;
  }
  
@@ -826803,7 +828367,7 @@ Index: gcc/config/rs6000/rs6000.c
  /* Emit a conditional move: move TRUE_COND to DEST if OP of the
     operands of the last comparison is nonzero/true, FALSE_COND if it
     is zero/false.  Return 0 if the hardware has no such operation.  */
-@@ -21773,6 +22701,18 @@
+@@ -21773,6 +22704,18 @@
    if (GET_MODE (false_cond) != result_mode)
      return 0;
  
@@ -826822,7 +828386,7 @@ Index: gcc/config/rs6000/rs6000.c
    /* Don't allow using floating point comparisons for integer results for
       now.  */
    if (FLOAT_MODE_P (compare_mode) && !FLOAT_MODE_P (result_mode))
-@@ -22034,6 +22974,48 @@
+@@ -22034,6 +22977,48 @@
      emit_move_insn (dest, target);
  }
  
@@ -826871,7 +828435,7 @@ Index: gcc/config/rs6000/rs6000.c
  /* A subroutine of the atomic operation splitters.  Jump to LABEL if
     COND is true.  Mark the jump as unlikely to be taken.  */
  
-@@ -25949,7 +26931,7 @@
+@@ -25949,7 +26934,7 @@
  	if (info->vrsave_mask & ALTIVEC_REG_BIT (i))
  	  {
  	    rtx areg, savereg, mem;
@@ -826880,7 +828444,7 @@ Index: gcc/config/rs6000/rs6000.c
  
  	    offset = (info->altivec_save_offset + frame_off
  		      + 16 * (i - info->first_altivec_reg_save));
-@@ -25956,18 +26938,30 @@
+@@ -25956,18 +26941,30 @@
  
  	    savereg = gen_rtx_REG (V4SImode, i);
  
@@ -826921,7 +828485,7 @@ Index: gcc/config/rs6000/rs6000.c
  
  	    rs6000_frame_related (insn, frame_reg_rtx, sp_off - frame_off,
  				  areg, GEN_INT (offset));
-@@ -26687,23 +27681,35 @@
+@@ -26687,23 +27684,35 @@
  	  for (i = info->first_altivec_reg_save; i <= LAST_ALTIVEC_REGNO; ++i)
  	    if (info->vrsave_mask & ALTIVEC_REG_BIT (i))
  	      {
@@ -826971,7 +828535,7 @@ Index: gcc/config/rs6000/rs6000.c
  	      }
  	}
  
-@@ -26890,23 +27896,35 @@
+@@ -26890,23 +27899,35 @@
  	  for (i = info->first_altivec_reg_save; i <= LAST_ALTIVEC_REGNO; ++i)
  	    if (info->vrsave_mask & ALTIVEC_REG_BIT (i))
  	      {
@@ -827021,7 +828585,7 @@ Index: gcc/config/rs6000/rs6000.c
  	      }
  	}
  
-@@ -27724,6 +28742,11 @@
+@@ -27724,6 +28745,11 @@
  				   const0_rtx, const0_rtx));
    call_fusage = NULL_RTX;
    use_reg (&call_fusage, r12);
@@ -827033,7 +828597,7 @@ Index: gcc/config/rs6000/rs6000.c
    add_function_usage_to (insn, call_fusage);
    emit_insn (gen_frame_load (r0, r1, info->lr_save_offset));
    insn = emit_move_insn (lr, r0);
-@@ -28763,7 +29786,7 @@
+@@ -28763,7 +29789,7 @@
  
  /* The following variable value is the last issued insn.  */
  
@@ -827042,7 +828606,7 @@ Index: gcc/config/rs6000/rs6000.c
  
  /* The following variable helps to balance issuing of load and
     store instructions */
-@@ -28770,6 +29793,13 @@
+@@ -28770,6 +29796,13 @@
  
  static int load_store_pendulum;
  
@@ -827056,7 +828620,7 @@ Index: gcc/config/rs6000/rs6000.c
  /* Power4 load update and store update instructions are cracked into a
     load or store and an integer insn which are executed in the same cycle.
     Branches have their own dispatch slot which does not count against the
-@@ -28844,7 +29874,7 @@
+@@ -28844,7 +29877,7 @@
  	   some cycles later.  */
  
  	/* Separate a load from a narrower, dependent store.  */
@@ -827065,7 +828629,7 @@ Index: gcc/config/rs6000/rs6000.c
  	    && GET_CODE (PATTERN (insn)) == SET
  	    && GET_CODE (PATTERN (dep_insn)) == SET
  	    && GET_CODE (XEXP (PATTERN (insn), 1)) == MEM
-@@ -29070,7 +30100,9 @@
+@@ -29070,7 +30103,9 @@
            switch (attr_type)
              {
              case TYPE_FP:
@@ -827076,7 +828640,7 @@ Index: gcc/config/rs6000/rs6000.c
                  return 1;
                break;
              case TYPE_FPLOAD:
-@@ -29082,6 +30114,8 @@
+@@ -29082,6 +30117,8 @@
                break;
              }
          }
@@ -827085,7 +828649,7 @@ Index: gcc/config/rs6000/rs6000.c
      case REG_DEP_ANTI:
        /* Anti dependency; DEP_INSN reads a register that INSN writes some
  	 cycles later.  */
-@@ -29454,8 +30488,9 @@
+@@ -29454,8 +30491,9 @@
    case CPU_POWER7:
      return 5;
    case CPU_POWER8:
@@ -827096,7 +828660,7 @@ Index: gcc/config/rs6000/rs6000.c
    default:
      return 1;
    }
-@@ -29613,6 +30648,28 @@
+@@ -29613,6 +30651,28 @@
    return is_store_insn1 (PATTERN (insn), str_mem);
  }
  
@@ -827125,7 +828689,7 @@ Index: gcc/config/rs6000/rs6000.c
  /* Returns whether the dependence between INSN and NEXT is considered
     costly by the given target.  */
  
-@@ -29689,6 +30746,229 @@
+@@ -29689,6 +30749,229 @@
    return insn;
  }
  
@@ -827355,7 +828919,7 @@ Index: gcc/config/rs6000/rs6000.c
  /* We are about to begin issuing insns for this clock cycle. */
  
  static int
-@@ -29920,6 +31200,11 @@
+@@ -29920,6 +31203,11 @@
          }
      }
  
@@ -827367,7 +828931,7 @@ Index: gcc/config/rs6000/rs6000.c
    return cached_can_issue_more;
  }
  
-@@ -30088,7 +31373,6 @@
+@@ -30088,7 +31376,6 @@
          }
        break;
      case PROCESSOR_POWER8:
@@ -827375,7 +828939,7 @@ Index: gcc/config/rs6000/rs6000.c
        type = get_attr_type (insn);
  
        switch (type)
-@@ -30219,7 +31503,6 @@
+@@ -30219,7 +31506,6 @@
      }
      break;
    case PROCESSOR_POWER8:
@@ -827383,7 +828947,7 @@ Index: gcc/config/rs6000/rs6000.c
      type = get_attr_type (insn);
  
      switch (type)
-@@ -30338,7 +31621,7 @@
+@@ -30338,7 +31624,7 @@
  
        /* Do we have a special group ending nop? */
        if (rs6000_cpu_attr == CPU_POWER6 || rs6000_cpu_attr == CPU_POWER7
@@ -827392,7 +828956,7 @@ Index: gcc/config/rs6000/rs6000.c
  	{
  	  nop = gen_group_ending_nop ();
  	  emit_insn_before (nop, next_insn);
-@@ -30592,8 +31875,10 @@
+@@ -30592,8 +31878,10 @@
  		     int sched_verbose ATTRIBUTE_UNUSED,
  		     int max_ready ATTRIBUTE_UNUSED)
  {
@@ -827404,7 +828968,7 @@ Index: gcc/config/rs6000/rs6000.c
  }
  
  /* The following function is called at the end of scheduling BB.
-@@ -30634,14 +31919,16 @@
+@@ -30634,14 +31922,16 @@
      }
  }
  
@@ -827424,7 +828988,7 @@ Index: gcc/config/rs6000/rs6000.c
  typedef rs6000_sched_context_def *rs6000_sched_context_t;
  
  /* Allocate store for new scheduling context.  */
-@@ -30661,8 +31948,10 @@
+@@ -30661,8 +31951,10 @@
    if (clean_p)
      {
        sc->cached_can_issue_more = 0;
@@ -827436,7 +829000,7 @@ Index: gcc/config/rs6000/rs6000.c
      }
    else
      {
-@@ -30669,6 +31958,8 @@
+@@ -30669,6 +31961,8 @@
        sc->cached_can_issue_more = cached_can_issue_more;
        sc->last_scheduled_insn = last_scheduled_insn;
        sc->load_store_pendulum = load_store_pendulum;
@@ -827445,7 +829009,7 @@ Index: gcc/config/rs6000/rs6000.c
      }
  }
  
-@@ -30683,6 +31974,8 @@
+@@ -30683,6 +31977,8 @@
    cached_can_issue_more = sc->cached_can_issue_more;
    last_scheduled_insn = sc->last_scheduled_insn;
    load_store_pendulum = sc->load_store_pendulum;
@@ -827454,7 +829018,7 @@ Index: gcc/config/rs6000/rs6000.c
  }
  
  /* Free _SC.  */
-@@ -33448,17 +34741,25 @@
+@@ -33448,17 +34744,25 @@
    if (!REG_P (target))
      tmp = gen_reg_rtx (mode);
  
@@ -827490,7 +829054,7 @@ Index: gcc/config/rs6000/rs6000.c
  
    /* Copy into target, possibly by way of a register.  */
    if (!REG_P (target))
-@@ -33869,8 +35170,14 @@
+@@ -33869,8 +35173,14 @@
    machine_mode inner = GET_MODE_INNER (mode);
    unsigned int inner_bytes = GET_MODE_UNIT_SIZE (mode);
  
@@ -827506,7 +829070,7 @@ Index: gcc/config/rs6000/rs6000.c
    else
      {
        regno = GP_ARG_RETURN;
-@@ -33992,7 +35299,8 @@
+@@ -33992,7 +35302,8 @@
    if (DECIMAL_FLOAT_MODE_P (mode) && TARGET_HARD_FLOAT && TARGET_FPRS)
      /* _Decimal128 must use an even/odd register pair.  */
      regno = (mode == TDmode) ? FP_ARG_RETURN + 1 : FP_ARG_RETURN;
@@ -827516,7 +829080,7 @@ Index: gcc/config/rs6000/rs6000.c
  	   && ((TARGET_SINGLE_FLOAT && (mode == SFmode)) || TARGET_DOUBLE_FLOAT))
      regno = FP_ARG_RETURN;
    else if (TREE_CODE (valtype) == COMPLEX_TYPE
-@@ -34056,7 +35364,7 @@
+@@ -34056,7 +35367,7 @@
  static bool
  rs6000_lra_p (void)
  {
@@ -827525,7 +829089,7 @@ Index: gcc/config/rs6000/rs6000.c
  }
  
  /* Given FROM and TO register numbers, say whether this elimination is allowed.
-@@ -34417,9 +35725,11 @@
+@@ -34417,9 +35728,11 @@
    { "power8-fusion",		OPTION_MASK_P8_FUSION,		false, true  },
    { "power8-fusion-sign",	OPTION_MASK_P8_FUSION_SIGN,	false, true  },
    { "power8-vector",		OPTION_MASK_P8_VECTOR,		false, true  },
@@ -827538,7 +829102,7 @@ Index: gcc/config/rs6000/rs6000.c
    { "power9-vector",		OPTION_MASK_P9_VECTOR,		false, true  },
    { "powerpc-gfxopt",		OPTION_MASK_PPC_GFXOPT,		false, true  },
    { "powerpc-gpopt",		OPTION_MASK_PPC_GPOPT,		false, true  },
-@@ -34474,11 +35784,14 @@
+@@ -34474,11 +35787,14 @@
    { "popcntd",		 RS6000_BTM_POPCNTD,	false, false },
    { "cell",		 RS6000_BTM_CELL,	false, false },
    { "power8-vector",	 RS6000_BTM_P8_VECTOR,	false, false },
@@ -827553,7 +829117,7 @@ Index: gcc/config/rs6000/rs6000.c
  };
  
  /* Option variables that we want to support inside attribute((target)) and
-@@ -35049,7 +36362,9 @@
+@@ -35049,7 +36365,9 @@
    size_t i;
    size_t start_column = 0;
    size_t cur_column;
@@ -827564,7 +829128,7 @@ Index: gcc/config/rs6000/rs6000.c
    const char *comma = "";
  
    if (indent)
-@@ -35067,27 +36382,45 @@
+@@ -35067,27 +36385,45 @@
    cur_column = start_column;
    for (i = 0; i < num_elements; i++)
      {

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



More information about the Reproducible-commits mailing list