[gcc-6] 311/401: * Update to SVN 20161212 (r243541, 6.2.1) from the gcc-6-branch.

Ximin Luo infinity0 at debian.org
Wed Apr 5 15:50:19 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 19493426ddf3c54c96a993af6876f20da08a7ff5
Author: doko <doko at 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>
Date:   Mon Dec 12 10:59:24 2016 +0000

      * Update to SVN 20161212 (r243541, 6.2.1) from the gcc-6-branch.
    
    
    git-svn-id: svn://anonscm.debian.org/gcccvs/branches/sid/gcc-6@9173 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
---
 debian/changelog                |    23 +-
 debian/patches/gcc-linaro.diff  |    39 -
 debian/patches/svn-updates.diff | 21534 +++++++++++++++++++++++++++++++++-----
 3 files changed, 19198 insertions(+), 2398 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index afb40fb..33f3863 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,25 @@
 gcc-6 (6.2.1-6) UNRELEASED; urgency=medium
 
-  * Update to SVN 20161202 (r243204, 6.2.1) from the gcc-6-branch.
+  * Update to SVN 20161212 (r243541, 6.2.1) from the gcc-6-branch.
     - Fix PR target/78426 (SH), PR fortran/78500, PR target/78101 (PPC),
-      PR target/48863 (ARM32), PR inline-asm/70184.
+      PR target/48863 (ARM32), PR inline-asm/70184, PR libstdc++/71856,
+      PR libstdc++/77459, PR libstdc++/78326, PR libstdc++/51960,
+      PR target/57438 (x86), PR target/77933 (ARM), PR c++/78550,
+      PR tree-optimization/78542, PR tree-optimization/78482, PR c++/71848,
+      PR middle-end/71762, PR tree-optimization/71575, PR bootstrap/78188,
+      PR tree-optimization/78224, PR tree-optimization/77646, PR target/77957,
+      PR middle-end/78540, PR rtl-optimization/78546, PR fortran/78298,
+      PR middle-end/69183, PR middle-end/78416, PR middle-end/67335,
+      PR middle-end/78419, PR rtl-optimization/78378, PR fortran/78299,
+      PR target/77834, PR target/78227, PR target/77834,
+      PR rtl-optimization/77919, PR rtl-optimization/77919, PR middle-end/78025,
+      PR fortran/77973, PR sanitizer/66343, PR fortran/77665,
+      PR middle-end/77624, PR target/77587, PR tree-optimization/78646,
+      PR target/72827, PR c++/78551, PR c++/78649, PR c++/72808, PR c++/77591,
+      PR c++/77739, PR c++/77285, PR c++/78089, PR c++/77467, PR c++/77722,
+      PR c++/77638, PR c++/77637, PR c++/77482, PR c++/77375, PR c++/71274,
+      PR c++/71515, PR c++/77907, PR c++/57728, PR fortran/78593,
+      PR fortran/77666, PR fortran/78443.
 
   [ Matthias Klose ]
   * Fix dependency generation for libgphobos multilib builds.
@@ -15,7 +32,7 @@ gcc-6 (6.2.1-6) UNRELEASED; urgency=medium
   [ Svante Signell ]
   * GNU/Hurd port for gccgo.
 
- -- Matthias Klose <doko at debian.org>  Fri, 02 Dec 2016 22:26:50 +0100
+ -- Matthias Klose <doko at debian.org>  Mon, 12 Dec 2016 11:38:52 +0100
 
 gcc-6 (6.2.1-5) unstable; urgency=medium
 
diff --git a/debian/patches/gcc-linaro.diff b/debian/patches/gcc-linaro.diff
index 5c892c0..3096f82 100644
--- a/debian/patches/gcc-linaro.diff
+++ b/debian/patches/gcc-linaro.diff
@@ -59472,45 +59472,6 @@ LANG=C git diff --no-renames 70232cbbcab57eecc73626f3ea0e13bdfa00202d..bc32472ee
      return true;
    if (OPTION_BIONIC)
      if (fn_class == function_c94
---- a/src/gcc/configure
-+++ b/src/gcc/configure
-@@ -1711,7 +1711,8 @@ Optional Packages:
-   --with-stabs            arrange to use stabs instead of host debug format
-   --with-dwarf2           force the default debug format to be DWARF 2
-   --with-specs=SPECS      add SPECS to driver command-line processing
--  --with-pkgversion=PKG   Use PKG in the version string in place of "GCC"
-+  --with-pkgversion=PKG   Use PKG in the version string in place of "Linaro
-+                          GCC `cat $srcdir/LINARO-VERSION`"
-   --with-bugurl=URL       Direct users to URL to report a bug
-   --with-multilib-list    select multilibs (AArch64, SH and x86-64 only)
-   --with-gnu-ld           assume the C compiler uses GNU ld default=no
-@@ -7651,7 +7652,7 @@ if test "${with_pkgversion+set}" = set; then :
-       *)   PKGVERSION="($withval) " ;;
-      esac
- else
--  PKGVERSION="(GCC) "
-+  PKGVERSION="(Linaro GCC `cat $srcdir/LINARO-VERSION`) "
- 
- fi
- 
-@@ -18453,7 +18454,7 @@ else
-   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<_LT_EOF
--#line 18456 "configure"
-+#line 18457 "configure"
- #include "confdefs.h"
- 
- #if HAVE_DLFCN_H
-@@ -18559,7 +18560,7 @@ else
-   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<_LT_EOF
--#line 18562 "configure"
-+#line 18563 "configure"
- #include "confdefs.h"
- 
- #if HAVE_DLFCN_H
 --- a/src/gcc/configure.ac
 +++ b/src/gcc/configure.ac
 @@ -903,7 +903,7 @@ AC_ARG_WITH(specs,
diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff
index 42b9cfb..c86c4b4 100644
--- a/debian/patches/svn-updates.diff
+++ b/debian/patches/svn-updates.diff
@@ -1,10 +1,10 @@
-# DP: updates from the 6 branch upto 20161202 (r243204).
+# DP: updates from the 6 branch upto 20161212 (r243541).
 
 last_update()
 {
 	cat > ${dir}LAST_UPDATED <EOF
-Fri Dec  2 22:24:25 CET 2016
-Fri Dec  2 21:24:25 UTC 2016 (revision 243204)
+Mon Dec 12 11:03:18 CET 2016
+Mon Dec 12 10:03:18 UTC 2016 (revision 243541)
 EOF
 }
 
@@ -16,7 +16,35 @@ Index: libgomp/ChangeLog
 ===================================================================
 --- a/src/libgomp/ChangeLog	(.../tags/gcc_6_2_0_release)
 +++ b/src/libgomp/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,11 @@
+@@ -1,3 +1,39 @@
++2016-12-07  Jakub Jelinek  <jakub at redhat.com>
++
++	Backported from mainline
++	2016-11-01  Jakub Jelinek  <jakub at redhat.com>
++
++	* hashtab.h: Use standard GPLv3 with runtime exception
++	boilerplate.
++
++2016-12-06  Sebastian Huber  <sebastian.huber at embedded-brains.de>
++
++	Backported from mainline
++	2016-12-02  Sebastian Huber  <sebastian.huber at embedded-brains.de>
++
++	* libgomp/config/rtems/pool.h (gomp_thread_pool_reservoir): Use
++	pthread_spinlock_t instead of gomp_mutex_t lock.
++	(gomp_get_thread_pool): Likewise.
++	(gomp_release_thread_pool): Likewise.
++	* libgomp/config/rtems/proc.c (allocate_thread_pool_reservoir):
++	Likewise.
++
++2016-12-06  Sebastian Huber  <sebastian.huber at embedded-brains.de>
++
++	Backported from mainline
++	2016-12-02  Sebastian Huber  <sebastian.huber at embedded-brains.de>
++
++	* config/rtems/pool.h (gomp_get_thread_pool): Return proper
++	thread pool in case nthreads == 1.
++
 +2016-09-01  Jakub Jelinek  <jakub at redhat.com>
 +
 +	Backported from mainline
@@ -53,6 +81,128 @@ Index: libgomp/testsuite/libgomp.fortran/pr71014.f90
 +  end do
 +  if (any(s /= t)) call abort
 +end program pr71014
+Index: libgomp/hashtab.h
+===================================================================
+--- a/src/libgomp/hashtab.h	(.../tags/gcc_6_2_0_release)
++++ b/src/libgomp/hashtab.h	(.../branches/gcc-6-branch)
+@@ -2,20 +2,28 @@
+    Copyright (C) 1999-2016 Free Software Foundation, Inc.
+    Contributed by Vladimir Makarov <vmakarov at cygnus.com>.
+ 
+-This program 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 2 of the License, or
+-(at your option) any later version.
++   This file is part of the GNU Offloading and Multi Processing Library
++   (libgomp).
+ 
+-This program 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.
++   Libgomp 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.
+ 
+-You should have received a copy of the GNU General Public License
+-along with this program; if not, write to the Free Software
+-Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
++   Libgomp 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/>.  */
++
+ /* The hash table code copied from include/hashtab.[hc] and adjusted,
+    so that the hash table entries are in the flexible array at the end
+    of the control structure, no callbacks are used and the elements in the
+Index: libgomp/config/rtems/pool.h
+===================================================================
+--- a/src/libgomp/config/rtems/pool.h	(.../tags/gcc_6_2_0_release)
++++ b/src/libgomp/config/rtems/pool.h	(.../branches/gcc-6-branch)
+@@ -39,7 +39,7 @@
+    GOMP_RTEMS_THREAD_POOLS environment variable.  */
+ struct gomp_thread_pool_reservoir {
+   gomp_sem_t available;
+-  gomp_mutex_t lock;
++  pthread_spinlock_t lock;
+   size_t index;
+   int priority;
+   struct gomp_thread_pool *pools[];
+@@ -87,28 +87,24 @@
+ gomp_get_thread_pool (struct gomp_thread *thr, unsigned nthreads)
+ {
+   struct gomp_thread_pool *pool;
++  struct gomp_thread_pool_reservoir *res;
+ 
+   if (__builtin_expect (thr->thread_pool == NULL, 0))
+     pthread_setspecific (gomp_thread_destructor, thr);
+ 
+-  if (nthreads != 1)
++  res = gomp_get_thread_pool_reservoir ();
++  if (res != NULL)
+     {
+-      struct gomp_thread_pool_reservoir *res =
+-	gomp_get_thread_pool_reservoir ();
+-      if (res != NULL)
+-	{
+-	  gomp_sem_wait (&res->available);
+-	  gomp_mutex_lock (&res->lock);
+-	  pool = res->pools[--res->index];
+-	  gomp_mutex_unlock (&res->lock);
+-	  pool->threads_busy = nthreads;
+-	  thr->thread_pool = pool;
+-	}
+-      else
+-	pool = gomp_get_own_thread_pool (thr, nthreads);
++      gomp_sem_wait (&res->available);
++      pthread_spin_lock (&res->lock);
++      pool = res->pools[--res->index];
++      pthread_spin_unlock (&res->lock);
++      pool->threads_busy = nthreads;
++      thr->thread_pool = pool;
+     }
+   else
+-    pool = NULL;
++    pool = gomp_get_own_thread_pool (thr, nthreads);
++
+   return pool;
+ }
+ 
+@@ -119,9 +115,9 @@
+     gomp_tls_rtems_data.thread_pool_reservoir;
+   if (res != NULL)
+     {
+-      gomp_mutex_lock (&res->lock);
++      pthread_spin_lock (&res->lock);
+       res->pools[res->index++] = pool;
+-      gomp_mutex_unlock (&res->lock);
++      pthread_spin_unlock (&res->lock);
+       gomp_sem_post (&res->available);
+     }
+ }
+Index: libgomp/config/rtems/proc.c
+===================================================================
+--- a/src/libgomp/config/rtems/proc.c	(.../tags/gcc_6_2_0_release)
++++ b/src/libgomp/config/rtems/proc.c	(.../branches/gcc-6-branch)
+@@ -66,7 +66,7 @@
+   res->index = count;
+   res->priority = priority;
+   gomp_sem_init (&res->available, count);
+-  gomp_mutex_init (&res->lock);
++  pthread_spin_init (&res->lock, PTHREAD_PROCESS_PRIVATE);
+   for (i = 0; i < count; ++i)
+     res->pools[i] = &pools[i];
+   gomp_thread_pool_reservoirs[scheduler] = res;
 Index: libsanitizer/asan/asan_globals.cc
 ===================================================================
 --- a/src/libsanitizer/asan/asan_globals.cc	(.../tags/gcc_6_2_0_release)
@@ -348,6 +498,15 @@ Index: libstdc++-v3/python/libstdcxx/v6/xmethods.py
  
  class ListMethodsMatcher(gdb.xmethod.XMethodMatcher):
      def __init__(self):
+@@ -381,7 +390,7 @@
+         self.methods = [self._method_dict[m] for m in self._method_dict]
+ 
+     def match(self, class_type, method_name):
+-        if not re.match('^std::list<.*>$', class_type.tag):
++        if not re.match('^std::(__cxx11::)?list<.*>$', class_type.tag):
+             return None
+         method = self._method_dict.get(method_name)
+         if method is None or not method.enabled:
 @@ -410,7 +419,7 @@
          if self._val_type.code == gdb.TYPE_CODE_BOOL:
              start = obj['_M_impl']['_M_start']['_M_p']
@@ -357,6 +516,18 @@ Index: libstdc++-v3/python/libstdcxx/v6/xmethods.py
              offset = index % bit_size
              return (valp.dereference() & (1 << offset)) > 0
          else:
+Index: libstdc++-v3/python/libstdcxx/v6/printers.py
+===================================================================
+--- a/src/libstdc++-v3/python/libstdcxx/v6/printers.py	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/python/libstdcxx/v6/printers.py	(.../branches/gcc-6-branch)
+@@ -1357,6 +1357,7 @@
+     libstdcxx_printer.add_container('std::', 'bitset', StdBitsetPrinter)
+     libstdcxx_printer.add_container('std::', 'deque', StdDequePrinter)
+     libstdcxx_printer.add_container('std::', 'list', StdListPrinter)
++    libstdcxx_printer.add_container('std::__cxx11::', 'list', StdListPrinter)
+     libstdcxx_printer.add_container('std::', 'map', StdMapPrinter)
+     libstdcxx_printer.add_container('std::', 'multimap', StdMapPrinter)
+     libstdcxx_printer.add_container('std::', 'multiset', StdSetPrinter)
 Index: libstdc++-v3/scripts/testsuite_flags.in
 ===================================================================
 --- a/src/libstdc++-v3/scripts/testsuite_flags.in	(.../tags/gcc_6_2_0_release)
@@ -370,6 +541,297 @@ Index: libstdc++-v3/scripts/testsuite_flags.in
        CXXFLAGS_config="@SECTION_FLAGS@ @EXTRA_CXX_FLAGS@"
        echo ${CXXFLAGS_default} ${CXXFLAGS_config} 
        ;;
+Index: libstdc++-v3/src/c++11/shared_ptr.cc
+===================================================================
+--- a/src/libstdc++-v3/src/c++11/shared_ptr.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/src/c++11/shared_ptr.cc	(.../branches/gcc-6-branch)
+@@ -54,7 +54,7 @@
+     }
+   }
+ 
+-  _Sp_locker::_Sp_locker(const void* p)
++  _Sp_locker::_Sp_locker(const void* p) noexcept
+   {
+     if (__gthread_active_p())
+       {
+@@ -65,7 +65,7 @@
+       _M_key1 = _M_key2 = invalid;
+   }
+ 
+-  _Sp_locker::_Sp_locker(const void* p1, const void* p2)
++  _Sp_locker::_Sp_locker(const void* p1, const void* p2) noexcept
+   {
+     if (__gthread_active_p())
+       {
+Index: libstdc++-v3/src/c++11/debug.cc
+===================================================================
+--- a/src/libstdc++-v3/src/c++11/debug.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/src/c++11/debug.cc	(.../branches/gcc-6-branch)
+@@ -529,11 +529,6 @@
+   using _Error_formatter = __gnu_debug::_Error_formatter;
+   using _Parameter = __gnu_debug::_Error_formatter::_Parameter;
+ 
+-  template<typename _Tp>
+-    int
+-    format_word(char* buf, int n, const char* fmt, _Tp s)
+-    { return std::min(__builtin_snprintf(buf, n, fmt, s), n - 1); }
+-
+   void
+   get_max_length(std::size_t& max_length)
+   {
+@@ -560,6 +555,11 @@
+     bool	_M_wordwrap;
+   };
+ 
++  template<size_t Length>
++    void
++    print_literal(PrintContext& ctx, const char(&word)[Length])
++    { print_word(ctx, word, Length - 1); }
++
+   void
+   print_word(PrintContext& ctx, const char* word,
+ 	     std::ptrdiff_t count = -1)
+@@ -610,27 +610,28 @@
+       }
+     else
+       {
+-	print_word(ctx, "\n", 1);
++	print_literal(ctx, "\n");
+ 	print_word(ctx, word, count);
+       }
+   }
+ 
+-  void
+-  print_type(PrintContext& ctx,
+-	     const type_info* info,
+-	     const char* unknown_name)
+-  {
+-    if (!info)
+-      print_word(ctx, unknown_name);
+-    else
+-      {
+-	int status;
+-	char* demangled_name =
+-	  __cxxabiv1::__cxa_demangle(info->name(), NULL, NULL, &status);
+-	print_word(ctx, status == 0 ? demangled_name : info->name());
+-	free(demangled_name);
+-      }
+-  }
++  template<size_t Length>
++    void
++    print_type(PrintContext& ctx,
++	       const type_info* info,
++	       const char(&unknown_name)[Length])
++    {
++      if (!info)
++	print_literal(ctx, unknown_name);
++      else
++	{
++	  int status;
++	  char* demangled_name =
++	    __cxxabiv1::__cxa_demangle(info->name(), NULL, NULL, &status);
++	  print_word(ctx, status == 0 ? demangled_name : info->name());
++	  free(demangled_name);
++	}
++    }
+ 
+   bool
+   print_field(PrintContext& ctx,
+@@ -767,20 +768,18 @@
+   {
+     if (type._M_name)
+       {
+-	const int bufsize = 64;
+-	char buf[bufsize];
+-	int written
+-	  = format_word(buf, bufsize, "\"%s\"", type._M_name);
+-	print_word(ctx, buf, written);
++	print_literal(ctx, "\"");
++	print_word(ctx, type._M_name);
++	print_literal(ctx, "\"");
+       }
+ 
+-    print_word(ctx, " {\n");
++    print_literal(ctx, " {\n");
+ 
+     if (type._M_type)
+       {
+-	print_word(ctx, "  type = ");
++	print_literal(ctx, "  type = ");
+ 	print_type(ctx, type._M_type, "<unknown type>");
+-	print_word(ctx, ";\n");
++	print_literal(ctx, ";\n");
+       }
+   }
+ 
+@@ -792,9 +791,9 @@
+ 
+     if (inst._M_name)
+       {
+-	int written
+-	  = format_word(buf, bufsize, "\"%s\" ", inst._M_name);
+-	print_word(ctx, buf, written);
++	print_literal(ctx, "\"");
++	print_word(ctx, inst._M_name);
++	print_literal(ctx, "\" ");
+       }
+ 
+     int written
+@@ -803,7 +802,7 @@
+ 
+     if (inst._M_type)
+       {
+-	print_word(ctx, "  type = ");
++	print_literal(ctx, "  type = ");
+ 	print_type(ctx, inst._M_type, "<unknown type>");
+       }
+   }
+@@ -821,7 +820,7 @@
+ 	{
+ 	  const auto& ite = variant._M_iterator;
+ 
+-	  print_word(ctx, "iterator ");
++	  print_literal(ctx, "iterator ");
+ 	  print_description(ctx, ite);
+ 
+ 	  if (ite._M_type)
+@@ -828,29 +827,29 @@
+ 	    {
+ 	      if (ite._M_constness != _Error_formatter::__unknown_constness)
+ 		{
+-		  print_word(ctx, " (");
++		  print_literal(ctx, " (");
+ 		  print_field(ctx, param, "constness");
+-		  print_word(ctx, " iterator)");
++		  print_literal(ctx, " iterator)");
+ 		}
+ 
+-	      print_word(ctx, ";\n");
++	      print_literal(ctx, ";\n");
+ 	    }
+ 
+ 	  if (ite._M_state != _Error_formatter::__unknown_state)
+ 	    {
+-	      print_word(ctx, "  state = ");
++	      print_literal(ctx, "  state = ");
+ 	      print_field(ctx, param, "state");
+-	      print_word(ctx, ";\n");
++	      print_literal(ctx, ";\n");
+ 	    }
+ 
+ 	  if (ite._M_sequence)
+ 	    {
+-	      print_word(ctx, "  references sequence ");
++	      print_literal(ctx, "  references sequence ");
+ 	      if (ite._M_seq_type)
+ 		{
+-		  print_word(ctx, "with type '");
++		  print_literal(ctx, "with type '");
+ 		  print_field(ctx, param, "seq_type");
+-		  print_word(ctx, "' ");
++		  print_literal(ctx, "' ");
+ 		}
+ 
+ 	      int written
+@@ -858,34 +857,34 @@
+ 	      print_word(ctx, buf, written);
+ 	    }
+ 
+-	  print_word(ctx, "}\n", 2);
++	  print_literal(ctx, "}\n");
+ 	}
+ 	break;
+ 
+       case _Parameter::__sequence:
+-	print_word(ctx, "sequence ");
++	print_literal(ctx, "sequence ");
+ 	print_description(ctx, variant._M_sequence);
+ 
+ 	if (variant._M_sequence._M_type)
+-	  print_word(ctx, ";\n", 2);
++	  print_literal(ctx, ";\n");
+ 
+-	print_word(ctx, "}\n", 2);
++	print_literal(ctx, "}\n");
+ 	break;
+ 
+       case _Parameter::__instance:
+-	print_word(ctx, "instance ");
++	print_literal(ctx, "instance ");
+ 	print_description(ctx, variant._M_instance);
+ 
+ 	if (variant._M_instance._M_type)
+-	  print_word(ctx, ";\n", 2);
++	  print_literal(ctx, ";\n");
+ 
+-	print_word(ctx, "}\n", 2);
++	print_literal(ctx, "}\n");
+ 	break;
+ 
+       case _Parameter::__iterator_value_type:
+-	print_word(ctx, "iterator::value_type ");
++	print_literal(ctx, "iterator::value_type ");
+ 	print_description(ctx, variant._M_iterator_value_type);
+-	print_word(ctx, "}\n", 2);
++	print_literal(ctx, "}\n");
+ 	break;
+ 
+       default:
+@@ -1000,21 +999,19 @@
+   void
+   _Error_formatter::_M_error() const
+   {
+-    const int bufsize = 128;
+-    char buf[bufsize];
+-
+     // Emit file & line number information
+     bool go_to_next_line = false;
+     PrintContext ctx;
+     if (_M_file)
+       {
+-	int written = format_word(buf, bufsize, "%s:", _M_file);
+-	print_word(ctx, buf, written);
++	print_word(ctx, _M_file);
++	print_literal(ctx, ":");
+ 	go_to_next_line = true;
+       }
+ 
+     if (_M_line > 0)
+       {
++	char buf[64];
+ 	int written = __builtin_sprintf(buf, "%u:", _M_line);
+ 	print_word(ctx, buf, written);
+ 	go_to_next_line = true;
+@@ -1021,17 +1018,17 @@
+       }
+ 
+     if (go_to_next_line)
+-      print_word(ctx, "\n", 1);
++      print_literal(ctx, "\n");
+ 
+     if (ctx._M_max_length)
+       ctx._M_wordwrap = true;
+ 
+-    print_word(ctx, "Error: ");
++    print_literal(ctx, "Error: ");
+ 
+     // Print the error message
+     assert(_M_text);
+     print_string(ctx, _M_text, _M_parameters, _M_num_parameters);
+-    print_word(ctx, ".\n", 2);
++    print_literal(ctx, ".\n");
+ 
+     // Emit descriptions of the objects involved in the operation
+     ctx._M_first_line = true;
+@@ -1047,7 +1044,7 @@
+ 	  case _Parameter::__iterator_value_type:
+ 	    if (!has_header)
+ 	      {
+-		print_word(ctx, "\nObjects involved in the operation:\n");
++		print_literal(ctx, "\nObjects involved in the operation:\n");
+ 		has_header = true;
+ 	      }
+ 	    print_description(ctx, _M_parameters[i]);
 Index: libstdc++-v3/configure.host
 ===================================================================
 --- a/src/libstdc++-v3/configure.host	(.../tags/gcc_6_2_0_release)
@@ -493,11 +955,66 @@ Index: libstdc++-v3/doc/xml/manual/intro.xml
      <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2063">2063</link>:
  	<emphasis>Contradictory requirements for string move assignment</emphasis>
      </term>
+@@ -892,6 +898,12 @@
+     <listitem><para>Adjust constraints to allow safe conversions.
+     </para></listitem></varlistentry>
+ 
++    <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2127">2127</link>:
++	<emphasis>Move-construction with <code>raw_storage_iterator</code></emphasis>
++    </term>
++    <listitem><para>Add assignment operator taking an rvalue.
++    </para></listitem></varlistentry>
++
+     <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2132">2132</link>:
+ 	<emphasis><code>std::function</code> ambiguity</emphasis>
+     </term>
+@@ -997,6 +1009,13 @@
+     <listitem><para>Add <code>noexcept</code>.
+     </para></listitem></varlistentry>
+ 
++    <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2442">2442</link>:
++       <emphasis><code>call_once()</code> shouldn't <code>DECAY_COPY()</code></emphasis>
++    </term>
++    <listitem><para>Remove indirection through call wrapper that made copies
++    of arguments and forward arguments straight to <code>std::invoke</code>.
++    </para></listitem></varlistentry>
++
+     <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2454">2454</link>:
+        <emphasis>Add <code>raw_storage_iterator::base()</code> member
+        </emphasis>
+@@ -1025,6 +1044,13 @@
+     <listitem><para>Divide by the object type.
+     </para></listitem></varlistentry>
+ 
++    <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2484">2484</link>:
++       <emphasis><code>rethrow_if_nested()</code>  is doubly unimplementable
++       </emphasis>
++    </term>
++    <listitem><para>Avoid using <code>dynamic_cast</code> when it would be
++    ill-formed.
++    </para></listitem></varlistentry>
+ 
+   </variablelist>
+ 
 Index: libstdc++-v3/doc/xml/manual/status_cxx2011.xml
 ===================================================================
 --- a/src/libstdc++-v3/doc/xml/manual/status_cxx2011.xml	(.../tags/gcc_6_2_0_release)
 +++ b/src/libstdc++-v3/doc/xml/manual/status_cxx2011.xml	(.../branches/gcc-6-branch)
-@@ -1340,12 +1340,10 @@
+@@ -1006,11 +1006,10 @@
+       <entry/>
+     </row>
+     <row>
+-      <?dbhtml bgcolor="#B0B0B0" ?>
+       <entry>20.12.4</entry>
+       <entry>Scoped allocator adaptor members</entry>
+-      <entry>Partial</entry>
+-      <entry>OUTERMOST is not recursive.</entry>
++      <entry>Y</entry>
++      <entry/>
+     </row>
+     <row>
+       <entry>20.12.5</entry>
+@@ -1340,12 +1339,10 @@
        <entry/>
      </row>
      <row>
@@ -512,7 +1029,7 @@ Index: libstdc++-v3/doc/xml/manual/status_cxx2011.xml
      </row>
      <row>
        <entry>23.2.2</entry>
-@@ -1396,11 +1394,10 @@
+@@ -1396,11 +1393,10 @@
        <entry/>
      </row>
      <row>
@@ -526,7 +1043,7 @@ Index: libstdc++-v3/doc/xml/manual/status_cxx2011.xml
      </row>
      <row>
        <entry>23.3.6</entry>
-@@ -2349,8 +2346,7 @@
+@@ -2349,8 +2345,7 @@
        <entry>30.4.1.3</entry>
        <entry>Timed mutex types</entry>
        <entry/>
@@ -536,6 +1053,26 @@ Index: libstdc++-v3/doc/xml/manual/status_cxx2011.xml
      </row>
      <row>
        <entry>30.4.1.3.1</entry>
+Index: libstdc++-v3/doc/xml/manual/using.xml
+===================================================================
+--- a/src/libstdc++-v3/doc/xml/manual/using.xml	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/doc/xml/manual/using.xml	(.../branches/gcc-6-branch)
+@@ -948,6 +948,15 @@
+ 	mode</link>.
+       </para>
+     </listitem></varlistentry>
++    <varlistentry><term><code>_GLIBCXX_PARALLEL_ASSERTIONS</code></term>
++    <listitem>
++      <para>Undefined by default, but when any parallel mode header is included
++      this macro will be defined to a non-zero value if
++      <code>_GLIBCXX_ASSERTIONS</code> has a non-zero value, otherwise to zero.
++      When defined to a non-zero value, it enables extra error checking and
++      assertions in the parallel mode.
++      </para>
++    </listitem></varlistentry>
+ 
+     <varlistentry><term><code>_GLIBCXX_PROFILE</code></term>
+     <listitem>
 Index: libstdc++-v3/doc/xml/manual/appendix_contributing.xml
 ===================================================================
 --- a/src/libstdc++-v3/doc/xml/manual/appendix_contributing.xml	(.../tags/gcc_6_2_0_release)
@@ -872,6 +1409,16 @@ Index: libstdc++-v3/doc/html/manual/bugs.html
      </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#2063" target="_top">2063</a>:
  	<span class="emphasis"><em>Contradictory requirements for string move assignment</em></span>
      </span></dt><dd><p>Respect propagation trait for move assignment.
+@@ -387,6 +390,9 @@
+     </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#2118" target="_top">2118</a>:
+ 	<span class="emphasis"><em><code class="code">unique_ptr</code> for array does not support cv qualification conversion of actual argument</em></span>
+     </span></dt><dd><p>Adjust constraints to allow safe conversions.
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#2127" target="_top">2127</a>:
++	<span class="emphasis"><em>Move-construction with <code class="code">raw_storage_iterator</code></em></span>
++    </span></dt><dd><p>Add assignment operator taking an rvalue.
+     </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#2132" target="_top">2132</a>:
+ 	<span class="emphasis"><em><code class="code">std::function</code> ambiguity</em></span>
+     </span></dt><dd><p>Constrain the constructor to only accept callable types.
 Index: libstdc++-v3/doc/html/manual/source_organization.html
 ===================================================================
 --- a/src/libstdc++-v3/doc/html/manual/source_organization.html	(.../tags/gcc_6_2_0_release)
@@ -1146,11 +1693,114 @@ Index: libstdc++-v3/include/std/chrono
    } // inline namespace chrono_literals
    } // inline namespace literals
  
+Index: libstdc++-v3/include/std/mutex
+===================================================================
+--- a/src/libstdc++-v3/include/std/mutex	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/include/std/mutex	(.../branches/gcc-6-branch)
+@@ -579,13 +579,6 @@
+ #ifdef _GLIBCXX_HAVE_TLS
+   extern __thread void* __once_callable;
+   extern __thread void (*__once_call)();
+-
+-  template<typename _Callable>
+-    inline void
+-    __once_call_impl()
+-    {
+-      (*(_Callable*)__once_callable)();
+-    }
+ #else
+   extern function<void()> __once_functor;
+ 
+@@ -603,16 +596,18 @@
+     void
+     call_once(once_flag& __once, _Callable&& __f, _Args&&... __args)
+     {
++      // _GLIBCXX_RESOLVE_LIB_DEFECTS
++      // 2442. call_once() shouldn't DECAY_COPY()
++      auto __callable = [&] {
++	  std::__invoke(std::forward<_Callable>(__f),
++			std::forward<_Args>(__args)...);
++      };
+ #ifdef _GLIBCXX_HAVE_TLS
+-      auto __bound_functor = std::__bind_simple(std::forward<_Callable>(__f),
+-          std::forward<_Args>(__args)...);
+-      __once_callable = std::__addressof(__bound_functor);
+-      __once_call = &__once_call_impl<decltype(__bound_functor)>;
++      __once_callable = std::__addressof(__callable);
++      __once_call = []{ (*(decltype(__callable)*)__once_callable)(); };
+ #else
+       unique_lock<mutex> __functor_lock(__get_once_mutex());
+-      auto __callable = std::__bind_simple(std::forward<_Callable>(__f),
+-          std::forward<_Args>(__args)...);
+-      __once_functor = [&]() { __callable(); };
++      __once_functor = __callable;
+       __set_once_functor_lock_ptr(&__functor_lock);
+ #endif
+ 
 Index: libstdc++-v3/include/std/functional
 ===================================================================
 --- a/src/libstdc++-v3/include/std/functional	(.../tags/gcc_6_2_0_release)
 +++ b/src/libstdc++-v3/include/std/functional	(.../branches/gcc-6-branch)
-@@ -1462,7 +1462,7 @@
+@@ -185,31 +185,23 @@
+     { };
+ 
+   template<typename _Tp, typename _Up = typename decay<_Tp>::type>
+-    struct _Unwrap
++    struct __inv_unwrap
+     {
+-      using type = _Tp&&;
+-
+-      // Equivalent to std::forward<_Tp>
+-      static constexpr _Tp&&
+-      _S_fwd(_Tp& __t) noexcept { return static_cast<_Tp&&>(__t); }
++      using type = _Tp;
+     };
+ 
+   template<typename _Tp, typename _Up>
+-    struct _Unwrap<_Tp, reference_wrapper<_Up>>
++    struct __inv_unwrap<_Tp, reference_wrapper<_Up>>
+     {
+       using type = _Up&;
+-
+-      // Get an lvalue-reference from a reference_wrapper.
+-      static _Up&
+-      _S_fwd(const _Tp& __t) noexcept { __t.get(); }
+     };
+ 
+   // Used by __invoke_impl instead of std::forward<_Tp> so that a
+   // reference_wrapper is converted to an lvalue-reference.
+-  template<typename _Tp>
+-    inline typename _Unwrap<_Tp>::type
++  template<typename _Tp, typename _Up = typename __inv_unwrap<_Tp>::type>
++    inline _Up&&
+     __invfwd(typename remove_reference<_Tp>::type& __t) noexcept
+-    { return _Unwrap<_Tp>::_S_fwd(__t); }
++    { return static_cast<_Up&&>(__t); }
+ 
+   template<typename _Res, typename _Fn, typename... _Args>
+     inline _Res
+@@ -235,16 +227,15 @@
+       return ((*std::forward<_Tp>(__t)).*__f)(std::forward<_Args>(__args)...);
+     }
+ 
+-  template<typename _Res, typename _MemFun, typename _Tp, typename... _Args>
++  template<typename _Res, typename _MemPtr, typename _Tp>
+     inline _Res
+-    __invoke_impl(__invoke_memobj_ref, _MemFun&& __f, _Tp&& __t)
++    __invoke_impl(__invoke_memobj_ref, _MemPtr&& __f, _Tp&& __t)
+     noexcept(noexcept(__invfwd<_Tp>(__t).*__f))
+     { return __invfwd<_Tp>(__t).*__f; }
+ 
+-  template<typename _Res, typename _MemFun, typename _Tp, typename... _Args>
++  template<typename _Res, typename _MemPtr, typename _Tp>
+     inline _Res
+-    __invoke_impl(__invoke_memobj_deref, _MemFun&& __f, _Tp&& __t,
+-		  _Args&&... __args)
++    __invoke_impl(__invoke_memobj_deref, _MemPtr&& __f, _Tp&& __t)
+     noexcept(noexcept((*std::forward<_Tp>(__t)).*__f))
+     { return (*std::forward<_Tp>(__t)).*__f; }
+ 
+@@ -1462,7 +1453,7 @@
      void (_Undefined_class::*_M_member_pointer)();
    };
  
@@ -1159,7 +1809,7 @@ Index: libstdc++-v3/include/std/functional
    {
      void*       _M_access()       { return &_M_pod_data[0]; }
      const void* _M_access() const { return &_M_pod_data[0]; }
-@@ -1568,7 +1568,7 @@
+@@ -1568,7 +1559,7 @@
  	static void
  	_M_clone(_Any_data& __dest, const _Any_data& __source, true_type)
  	{
@@ -1168,7 +1818,7 @@ Index: libstdc++-v3/include/std/functional
  	}
  
  	// Clone a function object that is not location-invariant or
-@@ -1649,7 +1649,7 @@
+@@ -1649,7 +1640,7 @@
        private:
  	static void
  	_M_init_functor(_Any_data& __functor, _Functor&& __f, true_type)
@@ -1177,7 +1827,7 @@ Index: libstdc++-v3/include/std/functional
  
  	static void
  	_M_init_functor(_Any_data& __functor, _Functor&& __f, false_type)
-@@ -2020,7 +2020,7 @@
+@@ -2020,7 +2011,7 @@
         *  Swap the targets of @c this function object and @a __f. This
         *  function will not throw an %exception.
         */
@@ -1186,7 +1836,7 @@ Index: libstdc++-v3/include/std/functional
        {
  	std::swap(_M_functor, __x._M_functor);
  	std::swap(_M_manager, __x._M_manager);
-@@ -2233,9 +2233,11 @@
+@@ -2233,9 +2224,11 @@
     *
     *  This function will not throw an %exception.
     */
@@ -1231,6 +1881,112 @@ Index: libstdc++-v3/include/std/complex
  } // namespace
  
  #endif  // C++11
+Index: libstdc++-v3/include/std/scoped_allocator
+===================================================================
+--- a/src/libstdc++-v3/include/std/scoped_allocator	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/include/std/scoped_allocator	(.../branches/gcc-6-branch)
+@@ -49,21 +49,35 @@
+    */
+ 
+   template<typename _Alloc>
+-    inline auto
+-    __do_outermost(_Alloc& __a, int) -> decltype(__a.outer_allocator())
+-    { return __a.outer_allocator(); }
++    using __outer_allocator_t
++      = decltype(std::declval<_Alloc>().outer_allocator());
+ 
++  template<typename _Alloc, typename = void>
++    struct __outermost_type
++    {
++      using type = _Alloc;
++      static type& _S_outermost(_Alloc& __a) { return __a; }
++    };
++
+   template<typename _Alloc>
+-    inline _Alloc&
+-    __do_outermost(_Alloc& __a, ...)
+-    { return __a; }
++    struct __outermost_type<_Alloc, __void_t<__outer_allocator_t<_Alloc>>>
++    : __outermost_type<
++      typename remove_reference<__outer_allocator_t<_Alloc>>::type
++    >
++    {
++      using __base = __outermost_type<
++        typename remove_reference<__outer_allocator_t<_Alloc>>::type
++      >;
+ 
+-  // TODO: make recursive (see note in 20.12.4/1)
++      static typename __base::type&
++      _S_outermost(_Alloc& __a)
++      { return __base::_S_outermost(__a.outer_allocator()); }
++    };
++
+   template<typename _Alloc>
+-    inline auto
++    inline typename __outermost_type<_Alloc>::type&
+     __outermost(_Alloc& __a)
+-    -> decltype(__do_outermost(__a, 0))
+-    { return __do_outermost(__a, 0); }
++    { return __outermost_type<_Alloc>::_S_outermost(__a); }
+ 
+   template<typename _OuterAlloc, typename... _InnerAllocs>
+     class scoped_allocator_adaptor;
+@@ -170,13 +184,9 @@
+       { return std::tuple_cat(std::tie(outer_allocator()), _M_inner._M_tie()); }
+ 
+       template<typename _Alloc>
+-	using __outermost_type = typename
+-	  std::decay<decltype(__outermost(std::declval<_Alloc&>()))>::type;
++	using __outermost_alloc_traits
++	  = allocator_traits<typename __outermost_type<_Alloc>::type>;
+ 
+-      template<typename _Alloc>
+-	using __outermost_alloc_traits
+-	  = allocator_traits<__outermost_type<_Alloc>>;
+-      
+       template<typename _Tp, typename... _Args>
+         void 
+         _M_construct(__uses_alloc0, _Tp* __p, _Args&&... __args)
+@@ -225,6 +235,12 @@
+           _M_inner(_S_select_on_copy(std::get<_Indices+1>(__refs))...)
+         { }
+ 
++      // Used to constrain constructors to disallow invalid conversions.
++      template<typename _Alloc>
++        using _Constructible = typename enable_if<
++            is_constructible<_OuterAlloc, _Alloc>::value
++          >::type;
++
+     public:
+       typedef _OuterAlloc                       outer_allocator_type;
+       typedef typename __inner_type::__type     inner_allocator_type;
+@@ -270,7 +286,7 @@
+ 
+       scoped_allocator_adaptor() : _OuterAlloc(), _M_inner() { }
+ 
+-      template<typename _Outer2>
++      template<typename _Outer2, typename = _Constructible<_Outer2>>
+         scoped_allocator_adaptor(_Outer2&& __outer,
+                                  const _InnerAllocs&... __inner)
+         : _OuterAlloc(std::forward<_Outer2>(__outer)),
+@@ -287,7 +303,7 @@
+ 	_M_inner(std::move(__other._M_inner))
+       { }
+ 
+-      template<typename _Outer2>
++      template<typename _Outer2, typename = _Constructible<const _Outer2&>>
+         scoped_allocator_adaptor(
+             const scoped_allocator_adaptor<_Outer2, _InnerAllocs...>& __other)
+         : _OuterAlloc(__other.outer_allocator()),
+@@ -294,7 +310,7 @@
+           _M_inner(__other._M_inner)
+         { }
+ 
+-      template<typename _Outer2>
++      template<typename _Outer2, typename = _Constructible<_Outer2>>
+         scoped_allocator_adaptor(
+             scoped_allocator_adaptor<_Outer2, _InnerAllocs...>&& __other)
+         : _OuterAlloc(std::move(__other.outer_allocator())),
 Index: libstdc++-v3/include/c_std/cstdio
 ===================================================================
 --- a/src/libstdc++-v3/include/c_std/cstdio	(.../tags/gcc_6_2_0_release)
@@ -1244,6 +2000,23 @@ Index: libstdc++-v3/include/c_std/cstdio
  extern "C" char* gets (char* __s) __attribute__((__deprecated__));
  #endif
  
+Index: libstdc++-v3/include/parallel/base.h
+===================================================================
+--- a/src/libstdc++-v3/include/parallel/base.h	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/include/parallel/base.h	(.../branches/gcc-6-branch)
+@@ -419,7 +419,11 @@
+ 	}
+     }
+ 
+-#define _GLIBCXX_PARALLEL_ASSERT(_Condition) __glibcxx_assert(_Condition)
++#if _GLIBCXX_PARALLEL_ASSERTIONS && defined(__glibcxx_assert_impl)
++#define _GLIBCXX_PARALLEL_ASSERT(_Condition) __glibcxx_assert_impl(_Condition)
++#else
++#define _GLIBCXX_PARALLEL_ASSERT(_Condition)
++#endif
+ 
+ } //namespace __gnu_parallel
+ 
 Index: libstdc++-v3/include/experimental/memory_resource
 ===================================================================
 --- a/src/libstdc++-v3/include/experimental/memory_resource	(.../tags/gcc_6_2_0_release)
@@ -1256,6 +2029,14 @@ Index: libstdc++-v3/include/experimental/memory_resource
  
  namespace std {
  namespace experimental {
+@@ -71,6 +72,7 @@
+   // 8.5 Class memory_resource
+   class memory_resource
+   {
++  protected:
+     static constexpr size_t _S_max_align = alignof(max_align_t);
+ 
+   public:
 Index: libstdc++-v3/include/experimental/random
 ===================================================================
 --- a/src/libstdc++-v3/include/experimental/random	(.../tags/gcc_6_2_0_release)
@@ -1280,7 +2061,41 @@ Index: libstdc++-v3/include/experimental/optional
  
  namespace std _GLIBCXX_VISIBILITY(default)
  {
-@@ -213,12 +214,6 @@
+@@ -133,6 +134,7 @@
+   __throw_bad_optional_access(const char* __s)
+   { _GLIBCXX_THROW_OR_ABORT(bad_optional_access(__s)); }
+ 
++#ifndef __cpp_lib_addressof_constexpr
+   template<typename _Tp, typename = void>
+     struct _Has_addressof_mem : std::false_type { };
+ 
+@@ -169,16 +171,21 @@
+     * overloaded addressof operator (unary operator&), in which case the call
+     * will not be a constant expression.
+     */
+-  template<typename _Tp, enable_if_t<!_Has_addressof<_Tp>::value, int>...>
+-    constexpr _Tp* __constexpr_addressof(_Tp& __t)
++  template<typename _Tp>
++    constexpr
++    enable_if_t<!_Has_addressof<_Tp>::value, _Tp*>
++    __constexpr_addressof(_Tp& __t)
+     { return &__t; }
+ 
+   /**
+     * @brief Fallback overload that defers to __addressof.
+     */
+-  template<typename _Tp, enable_if_t<_Has_addressof<_Tp>::value, int>...>
+-    inline _Tp* __constexpr_addressof(_Tp& __t)
++  template<typename _Tp>
++    inline
++    enable_if_t<_Has_addressof<_Tp>::value, _Tp*>
++    __constexpr_addressof(_Tp& __t)
+     { return std::__addressof(__t); }
++#endif // __cpp_lib_addressof_constexpr
+ 
+   /**
+     * @brief Class template that holds the necessary state for @ref optional
+@@ -213,12 +220,6 @@
        : _Optional_base{} { }
  
        // Constructors for engaged optionals.
@@ -1293,7 +2108,7 @@ Index: libstdc++-v3/include/experimental/optional
        template<typename... _Args>
          constexpr explicit _Optional_base(in_place_t, _Args&&... __args)
          : _M_payload(std::forward<_Args>(__args)...), _M_engaged(true) { }
-@@ -355,12 +350,6 @@
+@@ -355,12 +356,6 @@
        constexpr _Optional_base(nullopt_t) noexcept
        : _Optional_base{} { }
  
@@ -1306,7 +2121,7 @@ Index: libstdc++-v3/include/experimental/optional
        template<typename... _Args>
          constexpr explicit _Optional_base(in_place_t, _Args&&... __args)
          : _M_payload(std::forward<_Args>(__args)...), _M_engaged(true) { }
-@@ -473,20 +462,24 @@
+@@ -473,20 +468,24 @@
    template<typename _Tp>
    class optional;
  
@@ -1343,7 +2158,7 @@ Index: libstdc++-v3/include/experimental/optional
    /**
      * @brief Class template for optional values.
      */
-@@ -521,75 +514,75 @@
+@@ -521,75 +520,75 @@
  
        constexpr optional() = default;
        // Converting constructors for engaged optionals.
@@ -1452,7 +2267,7 @@ Index: libstdc++-v3/include/experimental/optional
  
        // [X.Y.4.3] (partly) Assignment.
        optional&
-@@ -599,18 +592,16 @@
+@@ -599,18 +598,16 @@
          return *this;
        }
  
@@ -1479,7 +2294,7 @@ Index: libstdc++-v3/include/experimental/optional
            if (this->_M_is_engaged())
              this->_M_get() = std::forward<_Up>(__u);
            else
-@@ -619,17 +610,17 @@
+@@ -619,17 +616,17 @@
            return *this;
          }
  
@@ -1506,7 +2321,7 @@ Index: libstdc++-v3/include/experimental/optional
            if (__u)
              {
                if (this->_M_is_engaged())
-@@ -644,17 +635,17 @@
+@@ -644,17 +641,17 @@
            return *this;
          }
  
@@ -1533,7 +2348,7 @@ Index: libstdc++-v3/include/experimental/optional
            if (__u)
              {
                if (this->_M_is_engaged())
-@@ -671,18 +662,15 @@
+@@ -671,18 +668,15 @@
          }
  
        template<typename... _Args>
@@ -1554,6 +2369,21 @@ Index: libstdc++-v3/include/experimental/optional
  				     _Args&&...>::value>
  	emplace(initializer_list<_Up> __il, _Args&&... __args)
  	{
+@@ -717,7 +711,13 @@
+       // [X.Y.4.5] Observers.
+       constexpr const _Tp*
+       operator->() const
+-      { return __constexpr_addressof(this->_M_get()); }
++      {
++#ifndef __cpp_lib_addressof_constexpr
++	return __constexpr_addressof(this->_M_get());
++#else
++	return std::__addressof(this->_M_get());
++#endif
++      }
+ 
+       _Tp*
+       operator->()
 Index: libstdc++-v3/include/experimental/algorithm
 ===================================================================
 --- a/src/libstdc++-v3/include/experimental/algorithm	(.../tags/gcc_6_2_0_release)
@@ -1748,6 +2578,846 @@ Index: libstdc++-v3/include/experimental/string_view
  } // namespace experimental
  } // namespace std
  
+Index: libstdc++-v3/include/experimental/bits/shared_ptr.h
+===================================================================
+--- a/src/libstdc++-v3/include/experimental/bits/shared_ptr.h	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/include/experimental/bits/shared_ptr.h	(.../branches/gcc-6-branch)
+@@ -69,22 +69,6 @@
+   template <typename _Tp, bool = is_array<_Tp>::value>
+     struct __libfund_v1 { using type = _Tp; };
+ 
+-  // helper for _Compatible
+-  template<typename _From_type, typename _To_type>
+-    struct __sp_compatible
+-    : is_convertible<_From_type*, _To_type*>::type
+-    { };
+-
+-  template<size_t _Nm, typename _Tp>
+-    struct __sp_compatible<_Tp[_Nm], _Tp[]>
+-    : true_type
+-    { };
+-
+-  template<size_t _Nm, typename _Tp>
+-    struct __sp_compatible<_Tp[_Nm], const _Tp[]>
+-    : true_type
+-    { };
+-
+   // Partial specialization for base class of experimental::shared_ptr<T>
+   // (i.e. the non-array form of experimental::shared_ptr)
+   template<typename _Tp, _Lock_policy _Lp>
+@@ -91,14 +75,23 @@
+     class __shared_ptr<__libfund_v1<_Tp, false>, _Lp>
+     : private __shared_ptr<_Tp, _Lp>
+     {
+-      template<typename _Tp1, typename _Res = void>
++      // For non-arrays, Y* is compatible with T* if Y* is convertible to T*.
++      template<typename _Yp, typename _Res = void>
+ 	using _Compatible
+-	  = enable_if_t<__sp_compatible<_Tp1, _Tp>::value, _Res>;
++	  = enable_if_t<experimental::is_convertible_v<_Yp*, _Tp*>, _Res>;
+ 
++      template<typename _Yp, typename _Del,
++	       typename _Ptr = typename unique_ptr<_Yp, _Del>::pointer,
++	       typename _Res = void>
++	using _UniqCompatible = enable_if_t<
++	  experimental::is_convertible_v<_Yp*, _Tp*>
++	  && experimental::is_convertible_v<_Ptr, _Tp*>,
++	  _Res>;
++
+       using _Base_type = __shared_ptr<_Tp>;
+ 
+-      _Base_type&  _M_get_base() { return *this;}
+-      const _Base_type&  _M_get_base() const { return *this;}
++      _Base_type&  _M_get_base() { return *this; }
++      const _Base_type&  _M_get_base() const { return *this; }
+ 
+     public:
+       using element_type = _Tp;
+@@ -105,17 +98,19 @@
+ 
+       constexpr __shared_ptr() noexcept = default;
+ 
+-      template<typename _Tp1>
+-	explicit __shared_ptr(_Tp1* __p)
++      template<typename _Tp1, typename = _Compatible<_Tp1>>
++	explicit
++	__shared_ptr(_Tp1* __p)
+ 	: _Base_type(__p)
+ 	{ }
+ 
+-      template<typename _Tp1, typename _Deleter>
++      template<typename _Tp1, typename _Deleter, typename = _Compatible<_Tp1>>
+ 	__shared_ptr(_Tp1* __p, _Deleter __d)
+ 	: _Base_type(__p, __d)
+ 	{ }
+ 
+-      template<typename _Tp1, typename _Deleter, typename _Alloc>
++      template<typename _Tp1, typename _Deleter, typename _Alloc,
++	       typename = _Compatible<_Tp1>>
+ 	__shared_ptr(_Tp1* __p, _Deleter __d, _Alloc __a)
+ 	: _Base_type(__p, __d, __a)
+ 	{ }
+@@ -152,21 +147,21 @@
+ 	: _Base_type(std::move((__r._M_get_base())))
+ 	{ }
+ 
+-      template<typename _Tp1>
+-	explicit __shared_ptr(const __weak_ptr<__libfund_v1<_Tp1>, _Lp>& __r)
++      template<typename _Tp1, typename = _Compatible<_Tp1>>
++	explicit
++	__shared_ptr(const __weak_ptr<__libfund_v1<_Tp1>, _Lp>& __r)
+ 	: _Base_type(__r._M_get_base())
+ 	{ }
+ 
+-      template<typename _Tp1, typename _Del, typename
+-	      = _Compatible<remove_pointer_t<
+-			    typename unique_ptr<_Tp1, _Del>::pointer>>>
+-	  __shared_ptr(std::unique_ptr<_Tp1, _Del>&& __r)
+-	  : _Base_type(std::move(__r))
+-	  { }
++      template<typename _Tp1, typename _Del,
++	       typename = _UniqCompatible<_Tp1, _Del>>
++	__shared_ptr(unique_ptr<_Tp1, _Del>&& __r)
++	: _Base_type(std::move(__r))
++	{ }
+ 
+ #if _GLIBCXX_USE_DEPRECATED
+       // Postcondition: use_count() == 1 and __r.get() == 0
+-      template<typename _Tp1>
++      template<typename _Tp1, typename = _Compatible<_Tp1>>
+ 	__shared_ptr(std::auto_ptr<_Tp1>&& __r)
+         : _Base_type(std::move(__r))
+ 	{ }
+@@ -180,7 +175,7 @@
+       { __shared_ptr(nullptr).swap(*this); }
+ 
+       template<typename _Tp1>
+-	void
++	_Compatible<_Tp1>
+ 	reset(_Tp1* __p)
+ 	{
+ 	  _GLIBCXX_DEBUG_ASSERT(__p == 0 || __p != get());
+@@ -188,12 +183,12 @@
+ 	}
+ 
+       template<typename _Tp1, typename _Deleter>
+-	void
++	_Compatible<_Tp1>
+ 	reset(_Tp1* __p, _Deleter __d)
+ 	{ __shared_ptr(__p, __d).swap(*this); }
+ 
+       template<typename _Tp1, typename _Deleter, typename _Alloc>
+-	void
++	_Compatible<_Tp1>
+ 	reset(_Tp1* __p, _Deleter __d, _Alloc __a)
+ 	{ __shared_ptr(__p, __d, std::move(__a)).swap(*this); }
+ 
+@@ -216,9 +211,9 @@
+ 	  return *this;
+ 	}
+ 
+-      template<typename _Tp1>
+-	_Compatible<_Tp1, __shared_ptr&>
+-	operator=(std::unique_ptr<_Tp1>&& __r)
++      template<typename _Tp1, typename _Del>
++	_UniqCompatible<_Tp1, _Del, __shared_ptr&>
++	operator=(unique_ptr<_Tp1, _Del>&& __r)
+ 	{
+ 	  _Base_type::operator=(std::move(__r));
+ 	  return *this;
+@@ -282,6 +277,77 @@
+ 	friend _Del* get_deleter(const __shared_ptr<_Tp1, _Lp1>&) noexcept;
+     };
+ 
++  // Helper traits for shared_ptr of array:
++
++  // Trait that tests if Y* is compatible with T*, for shared_ptr purposes.
++  template<typename _Yp, typename _Tp>
++    struct __sp_compatible
++    : is_convertible<_Yp*, _Tp*>::type
++    { };
++
++  template<size_t _Nm, typename _Tp>
++    struct __sp_compatible<_Tp[_Nm], _Tp[]>
++    : true_type
++    { };
++
++  template<size_t _Nm, typename _Tp>
++    struct __sp_compatible<_Tp[_Nm], const _Tp[]>
++    : true_type
++    { };
++
++  template<typename _Yp, typename _Tp>
++    constexpr bool __sp_compatible_v
++      = __sp_compatible<_Yp, _Tp>::value;
++
++  // Test conversion from Y(*)[N] to U(*)[N] without forming invalid type Y[N].
++  template<typename _Up, size_t _Nm, typename _Yp, typename = void>
++    struct __sp_is_constructible_arrN
++    : false_type
++    { };
++
++  template<typename _Up, size_t _Nm, typename _Yp>
++    struct __sp_is_constructible_arrN<_Up, _Nm, _Yp, __void_t<_Yp[_Nm]>>
++    : is_convertible<_Yp(*)[_Nm], _Up(*)[_Nm]>::type
++    { };
++
++  // Test conversion from Y(*)[] to U(*)[] without forming invalid type Y[].
++  template<typename _Up, typename _Yp, typename = void>
++    struct __sp_is_constructible_arr
++    : false_type
++    { };
++
++  template<typename _Up, typename _Yp>
++    struct __sp_is_constructible_arr<_Up, _Yp, __void_t<_Yp[]>>
++    : is_convertible<_Yp(*)[], _Up(*)[]>::type
++    { };
++
++  // Trait to check if shared_ptr<T> can be constructed from Y*.
++  template<typename _Tp, typename _Yp>
++    struct __sp_is_constructible;
++
++  // When T is U[N], Y(*)[N] shall be convertible to T*;
++  template<typename _Up, size_t _Nm, typename _Yp>
++    struct __sp_is_constructible<_Up[_Nm], _Yp>
++    : __sp_is_constructible_arrN<_Up, _Nm, _Yp>::type
++    { };
++
++  // when T is U[], Y(*)[] shall be convertible to T*;
++  template<typename _Up, typename _Yp>
++    struct __sp_is_constructible<_Up[], _Yp>
++    : __sp_is_constructible_arr<_Up, _Yp>::type
++    { };
++
++  // otherwise, Y* shall be convertible to T*.
++  template<typename _Tp, typename _Yp>
++    struct __sp_is_constructible
++    : is_convertible<_Yp*, _Tp*>::type
++    { };
++
++  template<typename _Tp, typename _Yp>
++    constexpr bool __sp_is_constructible_v
++      = __sp_is_constructible<_Tp, _Yp>::value;
++
++
+   // Partial specialization for base class of experimental::shared_ptr<T[N]>
+   // and experimental::shared_ptr<T[]> (i.e. the array forms).
+   template<typename _Tp, _Lock_policy _Lp>
+@@ -299,14 +365,27 @@
+ 	{ delete [] __p; }
+       };
+ 
++      // Constraint for constructing/resetting with a pointer of type _Yp*:
++      template<typename _Yp>
++	using _SafeConv = enable_if_t<__sp_is_constructible_v<_Tp, _Yp>>;
++
++      // Constraint for constructing/assigning from smart_pointer<_Tp1>:
+       template<typename _Tp1, typename _Res = void>
+-	using _Compatible
+-	  = enable_if_t<__sp_compatible<_Tp1, _Tp>::value, _Res>;
++	using _Compatible = enable_if_t<__sp_compatible_v<_Tp1, _Tp>, _Res>;
+ 
++      // Constraint for constructing/assigning from unique_ptr<_Tp1, _Del>:
++      template<typename _Tp1, typename _Del,
++	       typename _Ptr = typename unique_ptr<_Tp1, _Del>::pointer,
++	       typename _Res = void>
++	using _UniqCompatible = enable_if_t<
++	  __sp_compatible_v<_Tp1, _Tp>
++	  && experimental::is_convertible_v<_Ptr, element_type*>,
++	  _Res>;
++
+       using _Base_type = __shared_ptr<element_type>;
+ 
+-      _Base_type&  _M_get_base() { return *this;}
+-      const _Base_type&  _M_get_base() const { return *this;}
++      _Base_type&  _M_get_base() { return *this; }
++      const _Base_type&  _M_get_base() const { return *this; }
+ 
+     public:
+       constexpr __shared_ptr() noexcept
+@@ -313,17 +392,19 @@
+       : _Base_type()
+       { }
+ 
+-      template<typename _Tp1>
+-	explicit __shared_ptr(_Tp1* __p)
++      template<typename _Tp1, typename = _SafeConv<_Tp1>>
++	explicit
++	__shared_ptr(_Tp1* __p)
+ 	: _Base_type(__p, _Array_deleter())
+ 	{ }
+ 
+-      template<typename _Tp1, typename _Deleter>
++      template<typename _Tp1, typename _Deleter, typename = _SafeConv<_Tp1>>
+ 	__shared_ptr(_Tp1* __p, _Deleter __d)
+ 	: _Base_type(__p, __d)
+ 	{ }
+ 
+-      template<typename _Tp1, typename _Deleter, typename _Alloc>
++      template<typename _Tp1, typename _Deleter, typename _Alloc,
++	       typename = _SafeConv<_Tp1>>
+ 	__shared_ptr(_Tp1* __p, _Deleter __d, _Alloc __a)
+ 	: _Base_type(__p, __d, __a)
+ 	{ }
+@@ -360,22 +441,22 @@
+ 	: _Base_type(std::move((__r._M_get_base())))
+ 	{ }
+ 
+-      template<typename _Tp1>
+-	explicit __shared_ptr(const __weak_ptr<__libfund_v1<_Tp1>, _Lp>& __r)
++      template<typename _Tp1, typename = _Compatible<_Tp1>>
++	explicit
++	__shared_ptr(const __weak_ptr<__libfund_v1<_Tp1>, _Lp>& __r)
+ 	: _Base_type(__r._M_get_base())
+ 	{ }
+ 
+-      template<typename _Tp1, typename _Del, typename
+-	      = _Compatible<remove_pointer_t<
+-			    typename unique_ptr<_Tp1, _Del>::pointer>>>
+-	  __shared_ptr(std::unique_ptr<_Tp1, _Del>&& __r)
+-	  : _Base_type(std::move(__r))
+-	  { }
++      template<typename _Tp1, typename _Del,
++	       typename = _UniqCompatible<_Tp1, _Del>>
++	__shared_ptr(unique_ptr<_Tp1, _Del>&& __r)
++	: _Base_type(std::move(__r))
++	{ }
+ 
+ #if _GLIBCXX_USE_DEPRECATED
+       // Postcondition: use_count() == 1 and __r.get() == 0
+-      template<typename _Tp1>
+-	__shared_ptr(std::auto_ptr<_Tp1>&& __r)
++      template<typename _Tp1, typename = _Compatible<_Tp1>>
++	__shared_ptr(auto_ptr<_Tp1>&& __r)
+         : _Base_type(std::move(__r))
+ 	{ }
+ #endif
+@@ -388,7 +469,7 @@
+       { __shared_ptr(nullptr).swap(*this); }
+ 
+       template<typename _Tp1>
+-	void
++	_SafeConv<_Tp1>
+ 	reset(_Tp1* __p)
+ 	{
+ 	  _GLIBCXX_DEBUG_ASSERT(__p == 0 || __p != get());
+@@ -396,12 +477,12 @@
+ 	}
+ 
+       template<typename _Tp1, typename _Deleter>
+-	void
++	_SafeConv<_Tp1>
+ 	reset(_Tp1* __p, _Deleter __d)
+ 	{ __shared_ptr(__p, __d).swap(*this); }
+ 
+       template<typename _Tp1, typename _Deleter, typename _Alloc>
+-	void
++	_SafeConv<_Tp1>
+ 	reset(_Tp1* __p, _Deleter __d, _Alloc __a)
+ 	{ __shared_ptr(__p, __d, std::move(__a)).swap(*this); }
+ 
+@@ -428,9 +509,9 @@
+ 	  return *this;
+ 	}
+ 
+-      template<typename _Tp1>
+-	_Compatible<_Tp1, __shared_ptr&>
+-	operator=(std::unique_ptr<_Tp1>&& __r)
++      template<typename _Tp1, typename _Del>
++	_UniqCompatible<_Tp1, _Del, __shared_ptr&>
++	operator=(unique_ptr<_Tp1, _Del>&& __r)
+ 	{
+ 	  _Base_type::operator=(std::move(__r));
+ 	  return *this;
+@@ -439,7 +520,7 @@
+ #if _GLIBCXX_USE_DEPRECATED
+       template<typename _Tp1>
+ 	_Compatible<_Tp1, __shared_ptr&>
+-	operator=(std::auto_ptr<_Tp1>&& __r)
++	operator=(auto_ptr<_Tp1>&& __r)
+ 	{
+ 	  _Base_type::operator=(std::move(__r));
+ 	  return *this;
+@@ -501,11 +582,11 @@
+     {
+       template<typename _Tp1, typename _Res = void>
+ 	using _Compatible
+-	  = enable_if_t<__sp_compatible<_Tp1, _Tp>::value, _Res>;
++	  = enable_if_t<__sp_compatible_v<_Tp1, _Tp>, _Res>;
+ 
+       using _Base_type = __weak_ptr<remove_extent_t<_Tp>>;
+ 
+-      _Base_type&  _M_get_base() { return *this;}
++      _Base_type&  _M_get_base() { return *this; }
+       const _Base_type&  _M_get_base() const { return *this; }
+ 
+     public:
+@@ -630,26 +711,43 @@
+   template<typename _Tp>
+     class shared_ptr : public __shared_ptr<_Tp>
+     {
++      using _Base_type = __shared_ptr<_Tp>;
++
++    public:
++      using element_type = typename _Base_type::element_type;
++
++    private:
++      // Constraint for construction from a pointer of type _Yp*:
++      template<typename _Yp>
++	using _SafeConv = enable_if_t<__sp_is_constructible_v<_Tp, _Yp>>;
++
+       template<typename _Tp1, typename _Res = void>
+ 	using _Compatible
+-	  = enable_if_t<__sp_compatible<_Tp1, _Tp>::value, _Res>;
++	  = enable_if_t<__sp_compatible_v<_Tp1, _Tp>, _Res>;
+ 
+-      using _Base_type = __shared_ptr<_Tp>;
++      template<typename _Tp1, typename _Del,
++	       typename _Ptr = typename unique_ptr<_Tp1, _Del>::pointer,
++	       typename _Res = void>
++	using _UniqCompatible = enable_if_t<
++	  __sp_compatible_v<_Tp1, _Tp>
++	  && experimental::is_convertible_v<_Ptr, element_type*>,
++	  _Res>;
+ 
+     public:
+-      using element_type = typename _Base_type::element_type;
+ 
+       // 8.2.1.1, shared_ptr constructors
+       constexpr shared_ptr() noexcept = default;
+ 
+-      template<typename _Tp1>
+-	explicit shared_ptr(_Tp1* __p) : _Base_type(__p) { }
++      template<typename _Tp1, typename = _SafeConv<_Tp1>>
++	explicit
++	shared_ptr(_Tp1* __p) : _Base_type(__p) { }
+ 
+-      template<typename _Tp1, typename _Deleter>
++      template<typename _Tp1, typename _Deleter, typename = _SafeConv<_Tp1>>
+ 	shared_ptr(_Tp1* __p, _Deleter __d)
+ 	: _Base_type(__p, __d) { }
+ 
+-      template<typename _Tp1, typename _Deleter, typename _Alloc>
++      template<typename _Tp1, typename _Deleter, typename _Alloc,
++	       typename = _SafeConv<_Tp1>>
+ 	shared_ptr(_Tp1* __p, _Deleter __d, _Alloc __a)
+ 	: _Base_type(__p, __d, __a) { }
+ 
+@@ -672,7 +770,7 @@
+ 	shared_ptr(const shared_ptr<_Tp1>& __r) noexcept
+ 	: _Base_type(__r) { }
+ 
+-      shared_ptr(const shared_ptr<_Tp>&& __r) noexcept
++      shared_ptr(shared_ptr&& __r) noexcept
+       : _Base_type(std::move(__r)) { }
+ 
+       template<typename _Tp1, typename = _Compatible<_Tp1>>
+@@ -679,20 +777,20 @@
+ 	shared_ptr(shared_ptr<_Tp1>&& __r) noexcept
+ 	: _Base_type(std::move(__r)) { }
+ 
+-      template<typename _Tp1>
+-	explicit shared_ptr(const weak_ptr<_Tp1>& __r)
++      template<typename _Tp1, typename = _Compatible<_Tp1>>
++	explicit
++	shared_ptr(const weak_ptr<_Tp1>& __r)
+ 	: _Base_type(__r) { }
+ 
+ #if _GLIBCXX_USE_DEPRECATED
+-      template<typename _Tp1>
++      template<typename _Tp1, typename = _Compatible<_Tp1>>
+ 	shared_ptr(std::auto_ptr<_Tp1>&& __r)
+-	: _Base_type() { } // TODO
++	: _Base_type(std::move(__r)) { }
+ #endif
+ 
+-      template<typename _Tp1, typename _Del, typename
+-	= _Compatible<remove_pointer_t<
+-		      typename unique_ptr<_Tp1, _Del>::pointer>>>
+-	shared_ptr(std::unique_ptr<_Tp1, _Del>&& __r)
++      template<typename _Tp1, typename _Del,
++	       typename = _UniqCompatible<_Tp1, _Del>>
++	shared_ptr(unique_ptr<_Tp1, _Del>&& __r)
+ 	: _Base_type(std::move(__r)) { }
+ 
+       constexpr shared_ptr(nullptr_t __p)
+@@ -738,7 +836,7 @@
+ #endif
+ 
+       template <typename _Tp1, typename _Del>
+-	_Compatible<_Tp1, shared_ptr&>
++	_UniqCompatible<_Tp1, _Del, shared_ptr&>
+ 	operator=(unique_ptr<_Tp1, _Del>&& __r)
+ 	{
+ 	  _Base_type::operator=(std::move(__r));
+@@ -752,10 +850,10 @@
+ 
+     private:
+       template<typename _Alloc, typename... _Args>
+-      shared_ptr(_Sp_make_shared_tag __tag, const _Alloc& __a,
+-		 _Args&&... __args)
+-      : _Base_type(__tag, __a, std::forward<_Args>(__args)...)
+-      { }
++	shared_ptr(_Sp_make_shared_tag __tag, const _Alloc& __a,
++		   _Args&&... __args)
++	: _Base_type(__tag, __a, std::forward<_Args>(__args)...)
++	{ }
+ 
+       template<typename _Tp1, typename _Alloc, typename... _Args>
+ 	friend shared_ptr<_Tp1>
+@@ -768,170 +866,169 @@
+     };
+ 
+   // C++14 §20.8.2.2.7 //DOING
+-   template<typename _Tp1, typename _Tp2>
+-     bool operator==(const shared_ptr<_Tp1>& __a,
+-		     const shared_ptr<_Tp2>& __b) noexcept
+-     { return __a.get() == __b.get(); }
++  template<typename _Tp1, typename _Tp2>
++    bool operator==(const shared_ptr<_Tp1>& __a,
++		    const shared_ptr<_Tp2>& __b) noexcept
++    { return __a.get() == __b.get(); }
+ 
+-   template<typename _Tp>
+-     inline bool
+-     operator==(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
+-     { return !__a; }
++  template<typename _Tp>
++    inline bool
++    operator==(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
++    { return !__a; }
+ 
+-   template<typename _Tp>
+-     inline bool
+-     operator==(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
+-     { return !__a; }
++  template<typename _Tp>
++    inline bool
++    operator==(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
++    { return !__a; }
+ 
+-   template<typename _Tp1, typename _Tp2>
+-     inline bool
+-     operator!=(const shared_ptr<_Tp1>& __a,
+-		const shared_ptr<_Tp2>& __b) noexcept
+-     { return __a.get() != __b.get(); }
++  template<typename _Tp1, typename _Tp2>
++    inline bool
++    operator!=(const shared_ptr<_Tp1>& __a,
++	       const shared_ptr<_Tp2>& __b) noexcept
++    { return __a.get() != __b.get(); }
+ 
+-   template<typename _Tp>
+-     inline bool
+-     operator!=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
+-     { return (bool)__a; }
++  template<typename _Tp>
++    inline bool
++    operator!=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
++    { return (bool)__a; }
+ 
+-   template<typename _Tp>
+-     inline bool
+-     operator!=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
+-     { return (bool)__a; }
++  template<typename _Tp>
++    inline bool
++    operator!=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
++    { return (bool)__a; }
+ 
+-   template<typename _Tp1, typename _Tp2>
+-     inline bool
+-     operator<(const shared_ptr<_Tp1>& __a,
+-	       const shared_ptr<_Tp2>& __b) noexcept
+-     {
+-       using __elem_t1 = typename shared_ptr<_Tp1>::element_type;
+-       using __elem_t2 = typename shared_ptr<_Tp2>::element_type;
+-       using _CT = common_type_t<__elem_t1*, __elem_t2*>;
+-       return std::less<_CT>()(__a.get(), __b.get());
+-     }
++  template<typename _Tp1, typename _Tp2>
++    inline bool
++    operator<(const shared_ptr<_Tp1>& __a,
++	      const shared_ptr<_Tp2>& __b) noexcept
++    {
++      using __elem_t1 = typename shared_ptr<_Tp1>::element_type;
++      using __elem_t2 = typename shared_ptr<_Tp2>::element_type;
++      using _CT = common_type_t<__elem_t1*, __elem_t2*>;
++      return std::less<_CT>()(__a.get(), __b.get());
++    }
+ 
+-   template<typename _Tp>
+-     inline bool
+-     operator<(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
+-     {
+-       using __elem_t = typename shared_ptr<_Tp>::element_type;
+-       return std::less<__elem_t>()(__a.get(), nullptr);
+-     }
++  template<typename _Tp>
++    inline bool
++    operator<(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
++    {
++      using __elem_t = typename shared_ptr<_Tp>::element_type;
++      return std::less<__elem_t*>()(__a.get(), nullptr);
++    }
+ 
+-   template<typename _Tp>
+-     inline bool
+-     operator<(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
+-     {
+-       using __elem_t = typename shared_ptr<_Tp>::element_type;
+-       return std::less<__elem_t*>()(nullptr, __a.get());
+-     }
++  template<typename _Tp>
++    inline bool
++    operator<(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
++    {
++      using __elem_t = typename shared_ptr<_Tp>::element_type;
++      return std::less<__elem_t*>()(nullptr, __a.get());
++    }
+ 
+-   template<typename _Tp1, typename _Tp2>
+-     inline bool
+-     operator<=(const shared_ptr<_Tp1>& __a,
+-		const shared_ptr<_Tp2>& __b) noexcept
+-     { return !(__b < __a); }
++  template<typename _Tp1, typename _Tp2>
++    inline bool
++    operator<=(const shared_ptr<_Tp1>& __a,
++	       const shared_ptr<_Tp2>& __b) noexcept
++    { return !(__b < __a); }
+ 
+-   template<typename _Tp>
+-     inline bool
+-     operator<=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
+-     { return !(nullptr < __a); }
++  template<typename _Tp>
++    inline bool
++    operator<=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
++    { return !(nullptr < __a); }
+ 
+-   template<typename _Tp>
+-     inline bool
+-     operator<=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
+-     { return !(__a < nullptr); }
++  template<typename _Tp>
++    inline bool
++    operator<=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
++    { return !(__a < nullptr); }
+ 
+-   template<typename _Tp1, typename _Tp2>
+-     inline bool
+-     operator>(const shared_ptr<_Tp1>& __a,
+-	       const shared_ptr<_Tp2>& __b) noexcept
+-     { return (__b < __a); }
++  template<typename _Tp1, typename _Tp2>
++    inline bool
++    operator>(const shared_ptr<_Tp1>& __a,
++	      const shared_ptr<_Tp2>& __b) noexcept
++    { return (__b < __a); }
+ 
+-   template<typename _Tp>
+-     inline bool
+-     operator>(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
+-     {
+-       using __elem_t = typename shared_ptr<_Tp>::element_type;
+-       return std::less<__elem_t*>()(nullptr, __a.get());
+-     }
++  template<typename _Tp>
++    inline bool
++    operator>(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
++    {
++      using __elem_t = typename shared_ptr<_Tp>::element_type;
++      return std::less<__elem_t*>()(nullptr, __a.get());
++    }
+ 
+-   template<typename _Tp>
+-     inline bool
+-     operator>(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
+-     {
+-       using __elem_t = typename shared_ptr<_Tp>::element_type;
+-       return std::less<__elem_t*>()(__a.get(), nullptr);
+-     }
++  template<typename _Tp>
++    inline bool
++    operator>(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
++    {
++      using __elem_t = typename shared_ptr<_Tp>::element_type;
++      return std::less<__elem_t*>()(__a.get(), nullptr);
++    }
+ 
+-   template<typename _Tp1, typename _Tp2>
+-     inline bool
+-     operator>=(const shared_ptr<_Tp1>& __a,
+-		const shared_ptr<_Tp2>& __b) noexcept
+-     { return !(__a < __b); }
++  template<typename _Tp1, typename _Tp2>
++    inline bool
++    operator>=(const shared_ptr<_Tp1>& __a,
++	       const shared_ptr<_Tp2>& __b) noexcept
++    { return !(__a < __b); }
+ 
+-   template<typename _Tp>
+-     inline bool
+-     operator>=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
+-     { return !(__a < nullptr); }
++  template<typename _Tp>
++    inline bool
++    operator>=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
++    { return !(__a < nullptr); }
+ 
+-   template<typename _Tp>
+-     inline bool
+-     operator>=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
+-     { return !(nullptr < __a); }
++  template<typename _Tp>
++    inline bool
++    operator>=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
++    { return !(nullptr < __a); }
+ 
+-   // C++14 §20.8.2.2.8
+-   template<typename _Tp>
+-     inline void
+-     swap(shared_ptr<_Tp>& __a, shared_ptr<_Tp>& __b) noexcept
+-     { __a.swap(__b); }
++  // C++14 §20.8.2.2.8
++  template<typename _Tp>
++    inline void
++    swap(shared_ptr<_Tp>& __a, shared_ptr<_Tp>& __b) noexcept
++    { __a.swap(__b); }
+ 
+-   // 8.2.1.3, shared_ptr casts
+-   template<typename _Tp, typename _Tp1>
+-     inline shared_ptr<_Tp>
+-     static_pointer_cast(const shared_ptr<_Tp1>& __r) noexcept
+-     {
+-       using __elem_t = typename shared_ptr<_Tp>::element_type;
+-       return shared_ptr<_Tp>(__r, static_cast<__elem_t*>(__r.get()));
+-     }
++  // 8.2.1.3, shared_ptr casts
++  template<typename _Tp, typename _Tp1>
++    inline shared_ptr<_Tp>
++    static_pointer_cast(const shared_ptr<_Tp1>& __r) noexcept
++    {
++      using __elem_t = typename shared_ptr<_Tp>::element_type;
++      return shared_ptr<_Tp>(__r, static_cast<__elem_t*>(__r.get()));
++    }
+ 
+-   template<typename _Tp, typename _Tp1>
+-     inline shared_ptr<_Tp>
+-     dynamic_pointer_cast(const shared_ptr<_Tp1>& __r) noexcept
+-     {
+-       using __elem_t = typename shared_ptr<_Tp>::element_type;
+-       if (_Tp* __p = dynamic_cast<__elem_t*>(__r.get()))
+-	 return shared_ptr<_Tp>(__r, __p);
+-       return shared_ptr<_Tp>();
+-     }
++  template<typename _Tp, typename _Tp1>
++    inline shared_ptr<_Tp>
++    dynamic_pointer_cast(const shared_ptr<_Tp1>& __r) noexcept
++    {
++      using __elem_t = typename shared_ptr<_Tp>::element_type;
++      if (_Tp* __p = dynamic_cast<__elem_t*>(__r.get()))
++	return shared_ptr<_Tp>(__r, __p);
++      return shared_ptr<_Tp>();
++    }
+ 
+-   template<typename _Tp, typename _Tp1>
+-     inline shared_ptr<_Tp>
+-     const_pointer_cast(const shared_ptr<_Tp1>& __r) noexcept
+-     {
+-       using __elem_t = typename shared_ptr<_Tp>::element_type;
+-       return shared_ptr<_Tp>(__r, const_cast<__elem_t*>(__r.get()));
+-     }
++  template<typename _Tp, typename _Tp1>
++    inline shared_ptr<_Tp>
++    const_pointer_cast(const shared_ptr<_Tp1>& __r) noexcept
++    {
++      using __elem_t = typename shared_ptr<_Tp>::element_type;
++      return shared_ptr<_Tp>(__r, const_cast<__elem_t*>(__r.get()));
++    }
+ 
+-   template<typename _Tp, typename _Tp1>
+-     inline shared_ptr<_Tp>
+-     reinterpret_pointer_cast(const shared_ptr<_Tp1>& __r) noexcept
+-     {
+-       using __elem_t = typename shared_ptr<_Tp>::element_type;
+-       return shared_ptr<_Tp>(__r, reinterpret_cast<__elem_t*>(__r.get()));
+-     }
++  template<typename _Tp, typename _Tp1>
++    inline shared_ptr<_Tp>
++    reinterpret_pointer_cast(const shared_ptr<_Tp1>& __r) noexcept
++    {
++      using __elem_t = typename shared_ptr<_Tp>::element_type;
++      return shared_ptr<_Tp>(__r, reinterpret_cast<__elem_t*>(__r.get()));
++    }
+ 
+-   // C++14 §20.8.2.3
+-   template<typename _Tp>
+-     class weak_ptr : public __weak_ptr<_Tp>
+-     {
++  // C++14 §20.8.2.3
++  template<typename _Tp>
++    class weak_ptr : public __weak_ptr<_Tp>
++    {
+       template<typename _Tp1, typename _Res = void>
+-	using _Compatible
+-	  = enable_if_t<__sp_compatible<_Tp1, _Tp>::value, _Res>;
++	using _Compatible = enable_if_t<__sp_compatible_v<_Tp1, _Tp>, _Res>;
+ 
+       using _Base_type = __weak_ptr<_Tp>;
+ 
+-   public:
++     public:
+        constexpr weak_ptr() noexcept = default;
+ 
+        template<typename _Tp1, typename = _Compatible<_Tp1>>
+@@ -985,13 +1082,13 @@
+        { return shared_ptr<_Tp>(*this, std::nothrow); }
+ 
+        friend class enable_shared_from_this<_Tp>;
+-     };
++    };
+ 
+-   // C++14 §20.8.2.3.6
+-   template<typename _Tp>
+-     inline void
+-     swap(weak_ptr<_Tp>& __a, weak_ptr<_Tp>& __b) noexcept
+-     { __a.swap(__b); }
++  // C++14 §20.8.2.3.6
++  template<typename _Tp>
++    inline void
++    swap(weak_ptr<_Tp>& __a, weak_ptr<_Tp>& __b) noexcept
++    { __a.swap(__b); }
+ 
+   /// C++14 §20.8.2.2.10
+   template<typename _Del, typename _Tp, _Lock_policy _Lp>
+@@ -1009,8 +1106,8 @@
+       return __os;
+     }
+ 
+-   // C++14 §20.8.2.4
+-   template<typename _Tp = void> class owner_less;
++  // C++14 §20.8.2.4
++  template<typename _Tp = void> class owner_less;
+ 
+    /// Partial specialization of owner_less for shared_ptr.
+   template<typename _Tp>
+@@ -1147,6 +1244,14 @@
+       shared_from_this() const
+       { return shared_ptr<const _Tp>(this->_M_weak_this); }
+ 
++      weak_ptr<_Tp>
++      weak_from_this() noexcept
++      { return _M_weak_this; }
++
++      weak_ptr<const _Tp>
++      weak_from_this() const noexcept
++      { return _M_weak_this; }
++
+     private:
+       template<typename _Tp1>
+ 	void
 Index: libstdc++-v3/include/experimental/bits/erase_if.h
 ===================================================================
 --- a/src/libstdc++-v3/include/experimental/bits/erase_if.h	(.../tags/gcc_6_2_0_release)
@@ -2578,6 +4248,43 @@ Index: libstdc++-v3/include/bits/stl_pair.h
  	operator=(pair<_U1, _U2>&& __p)
  	{
  	  first = std::forward<_U1>(__p.first);
+Index: libstdc++-v3/include/bits/stl_raw_storage_iter.h
+===================================================================
+--- a/src/libstdc++-v3/include/bits/stl_raw_storage_iter.h	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/include/bits/stl_raw_storage_iter.h	(.../branches/gcc-6-branch)
+@@ -86,7 +86,18 @@
+ 	return *this;
+       }
+ 
+-      raw_storage_iterator<_OutputIterator, _Tp>&
++#if __cplusplus >= 201103L
++      // _GLIBCXX_RESOLVE_LIB_DEFECTS
++      // 2127. Move-construction with raw_storage_iterator
++      raw_storage_iterator&
++      operator=(_Tp&& __element)
++      {
++	std::_Construct(std::__addressof(*_M_iter), std::move(__element));
++	return *this;
++      }
++#endif
++
++      raw_storage_iterator&
+       operator++()
+       {
+ 	++_M_iter;
+@@ -93,10 +104,10 @@
+ 	return *this;
+       }
+ 
+-      raw_storage_iterator<_OutputIterator, _Tp>
++      raw_storage_iterator
+       operator++(int)
+       {
+-	raw_storage_iterator<_OutputIterator, _Tp> __tmp = *this;
++	raw_storage_iterator __tmp = *this;
+ 	++_M_iter;
+ 	return __tmp;
+       }
 Index: libstdc++-v3/include/bits/stl_multiset.h
 ===================================================================
 --- a/src/libstdc++-v3/include/bits/stl_multiset.h	(.../tags/gcc_6_2_0_release)
@@ -2626,6 +4333,40 @@ Index: libstdc++-v3/include/bits/c++config
  
    namespace __detail { inline namespace __7 { } }
  }
+@@ -424,9 +431,8 @@
+ #endif
+ 
+ // Assert.
+-#if !defined(_GLIBCXX_ASSERTIONS) && !defined(_GLIBCXX_PARALLEL)
+-# define __glibcxx_assert(_Condition)
+-#else
++#if defined(_GLIBCXX_ASSERTIONS) \
++  || defined(_GLIBCXX_PARALLEL) || defined(_GLIBCXX_PARALLEL_ASSERTIONS)
+ namespace std
+ {
+   // Avoid the use of assert, because we're trying to keep the <cassert>
+@@ -440,7 +446,7 @@
+     __builtin_abort();
+   }
+ }
+-#define __glibcxx_assert(_Condition)				   	 \
++#define __glibcxx_assert_impl(_Condition)				 \
+   do 									 \
+   {							      		 \
+     if (! (_Condition))                                                  \
+@@ -449,6 +455,12 @@
+   } while (false)
+ #endif
+ 
++#if defined(_GLIBCXX_ASSERTIONS)
++# define __glibcxx_assert(_Condition) __glibcxx_assert_impl(_Condition)
++#else
++# define __glibcxx_assert(_Condition)
++#endif
++
+ // Macros for race detectors.
+ // _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(A) and
+ // _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(A) should be used to explain
 Index: libstdc++-v3/include/bits/stl_iterator.h
 ===================================================================
 --- a/src/libstdc++-v3/include/bits/stl_iterator.h	(.../tags/gcc_6_2_0_release)
@@ -2691,9 +4432,21 @@ Index: libstdc++-v3/include/bits/allocator.h
 ===================================================================
 --- a/src/libstdc++-v3/include/bits/allocator.h	(.../tags/gcc_6_2_0_release)
 +++ b/src/libstdc++-v3/include/bits/allocator.h	(.../branches/gcc-6-branch)
-@@ -82,6 +82,15 @@
+@@ -50,6 +50,9 @@
+ #endif
+ 
+ #define __cpp_lib_incomplete_container_elements 201505
++#if __cplusplus >= 201103L
++# define __cpp_lib_allocator_is_always_equal 201411
++#endif
+ 
+ namespace std _GLIBCXX_VISIBILITY(default)
+ {
+@@ -80,8 +83,16 @@
+       // 2103. std::allocator propagate_on_container_move_assignment
+       typedef true_type propagate_on_container_move_assignment;
  
- #define __cpp_lib_allocator_is_always_equal 201411
+-#define __cpp_lib_allocator_is_always_equal 201411
        typedef true_type is_always_equal;
 +
 +      template<typename _Up, typename... _Args>
@@ -2707,6 +4460,15 @@ Index: libstdc++-v3/include/bits/allocator.h
  #endif
      };
  
+@@ -113,6 +124,8 @@
+       // _GLIBCXX_RESOLVE_LIB_DEFECTS
+       // 2103. std::allocator propagate_on_container_move_assignment
+       typedef true_type propagate_on_container_move_assignment;
++
++      typedef true_type is_always_equal;
+ #endif
+ 
+       allocator() throw() { }
 Index: libstdc++-v3/include/bits/stl_tree.h
 ===================================================================
 --- a/src/libstdc++-v3/include/bits/stl_tree.h	(.../tags/gcc_6_2_0_release)
@@ -3975,11 +5737,329 @@ Index: libstdc++-v3/include/Makefile.am
  	${experimental_bits_srcdir}/shared_ptr.h \
  	${experimental_bits_srcdir}/string_view.tcc \
  	${experimental_bits_filesystem_headers}
+Index: libstdc++-v3/libsupc++/nested_exception.h
+===================================================================
+--- a/src/libstdc++-v3/libsupc++/nested_exception.h	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/libsupc++/nested_exception.h	(.../branches/gcc-6-branch)
+@@ -92,42 +92,22 @@
+       { }
+     };
+ 
+-  template<typename _Tp,
+-	   bool __with_nested = !__is_base_of(nested_exception, _Tp)>
+-    struct _Throw_with_nested_impl
+-    {
+-      template<typename _Up>
+-	static void _S_throw(_Up&& __t)
+-	{ throw _Nested_exception<_Tp>{static_cast<_Up&&>(__t)}; }
+-    };
+-
++  // [except.nested]/8
++  // Throw an exception of unspecified type that is publicly derived from
++  // both remove_reference_t<_Tp> and nested_exception.
+   template<typename _Tp>
+-    struct _Throw_with_nested_impl<_Tp, false>
++    inline void
++    __throw_with_nested_impl(_Tp&& __t, true_type)
+     {
+-      template<typename _Up>
+-	static void _S_throw(_Up&& __t)
+-	{ throw static_cast<_Up&&>(__t); }
+-    };
++      using _Up = typename remove_reference<_Tp>::type;
++      throw _Nested_exception<_Up>{std::forward<_Tp>(__t)};
++    }
+ 
+-  template<typename _Tp, bool = __is_class(_Tp) && !__is_final(_Tp)>
+-    struct _Throw_with_nested_helper : _Throw_with_nested_impl<_Tp>
+-    { };
+-
+   template<typename _Tp>
+-    struct _Throw_with_nested_helper<_Tp, false>
+-    : _Throw_with_nested_impl<_Tp, false>
+-    { };
++    inline void
++    __throw_with_nested_impl(_Tp&& __t, false_type)
++    { throw std::forward<_Tp>(__t); }
+ 
+-  template<typename _Tp>
+-    struct _Throw_with_nested_helper<_Tp&, false>
+-    : _Throw_with_nested_helper<_Tp>
+-    { };
+-
+-  template<typename _Tp>
+-    struct _Throw_with_nested_helper<_Tp&&, false>
+-    : _Throw_with_nested_helper<_Tp>
+-    { };
+-
+   /// If @p __t is derived from nested_exception, throws @p __t.
+   /// Else, throws an implementation-defined object derived from both.
+   template<typename _Tp>
+@@ -135,33 +115,43 @@
+     inline void
+     throw_with_nested(_Tp&& __t)
+     {
+-      _Throw_with_nested_helper<_Tp>::_S_throw(static_cast<_Tp&&>(__t));
++      using _Up = typename remove_reference<_Tp>::type;
++      using _CopyConstructible
++	= __and_<is_copy_constructible<_Up>, is_move_constructible<_Up>>;
++      static_assert(_CopyConstructible::value,
++	  "throw_with_nested argument must be CopyConstructible");
++      using __nest = __and_<is_class<_Up>, __bool_constant<!__is_final(_Up)>,
++			    __not_<is_base_of<nested_exception, _Up>>>;
++      std::__throw_with_nested_impl(std::forward<_Tp>(__t), __nest{});
+     }
+ 
+-  template<typename _Tp, bool = __is_polymorphic(_Tp)>
+-    struct _Rethrow_if_nested_impl
+-    {
+-      static void _S_rethrow(const _Tp& __t)
+-      {
+-	if (auto __tp =
+-            dynamic_cast<const nested_exception*>(std::__addressof(__t)))
+-	  __tp->rethrow_nested();
+-      }
+-    };
++  // Determine if dynamic_cast<const nested_exception&> would be well-formed.
++  template<typename _Tp>
++    using __rethrow_if_nested_cond = typename enable_if<
++      __and_<is_polymorphic<_Tp>,
++	     __or_<__not_<is_base_of<nested_exception, _Tp>>,
++		   is_convertible<_Tp*, nested_exception*>>>::value
++    >::type;
+ 
+-  template<typename _Tp>
+-    struct _Rethrow_if_nested_impl<_Tp, false>
++  // Attempt dynamic_cast to nested_exception and call rethrow_nested().
++  template<typename _Ex>
++    inline __rethrow_if_nested_cond<_Ex>
++    __rethrow_if_nested_impl(const _Ex* __ptr)
+     {
+-      static void _S_rethrow(const _Tp&) { }
+-    };
++      if (auto __ne_ptr = dynamic_cast<const nested_exception*>(__ptr))
++	__ne_ptr->rethrow_nested();
++    }
+ 
++  // Otherwise, no effects.
++  inline void
++  __rethrow_if_nested_impl(const void*)
++  { }
++
+   /// If @p __ex is derived from nested_exception, @p __ex.rethrow_nested().
+   template<typename _Ex>
+     inline void
+     rethrow_if_nested(const _Ex& __ex)
+-    {
+-      _Rethrow_if_nested_impl<_Ex>::_S_rethrow(__ex);
+-    }
++    { std::__rethrow_if_nested_impl(std::__addressof(__ex)); }
+ 
+   // @} group exceptions
+ } // namespace std
 Index: libstdc++-v3/ChangeLog
 ===================================================================
 --- a/src/libstdc++-v3/ChangeLog	(.../tags/gcc_6_2_0_release)
 +++ b/src/libstdc++-v3/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,555 @@
+@@ -1,3 +1,753 @@
++2016-12-09  Jonathan Wakely  <jwakely at redhat.com>
++
++	Backport from mainline
++	2016-12-08  David Edelsohn  <dje.gcc at gmail.com>
++
++	* testsuite/25_algorithms/headers/algorithm/
++	parallel_algorithm_assert2.cc: Move dg-do run first.
++
++2016-12-08  Jonathan Wakely  <jwakely at redhat.com>
++
++	PR libstdc++/71856
++	* doc/xml/manual/using.xml: Document macro.
++	* include/bits/c++config [_GLIBCXX_DEBUG || _GLIBCXX_PARALLEL]
++	(__glibcxx_assert): Rename to __glibcxx_assert_impl.
++	[_GLIBCXX_DEBUG] (__glibcxx_assert): Expand to __glibcxx_assert_impl.
++	* include/parallel/base.h [_GLIBCXX_PARALLEL_ASSERTIONS]
++	(_GLIBCXX_PARALLEL_ASSERT): Expand to __glibcxx_assert_impl.
++	[!_GLIBCXX_PARALLEL_ASSERTIONS] (_GLIBCXX_PARALLEL_ASSERT): Define as
++	empty.
++	* testsuite/25_algorithms/headers/algorithm/
++	parallel_algorithm_assert2.cc: New test.
++
++2016-12-08  Jonathan Wakely  <jwakely at redhat.com>
++
++	Backport from mainline
++	2016-11-10  François Dumont  <fdumont at gcc.gnu.org>
++
++	PR libstdc++/77459
++	* src/c++11/debug.cc (format_word): Delete.
++	(print_literal): New. Replace call to print_word for literals.
++
++2016-12-07  Jonathan Wakely  <jwakely at redhat.com>
++
++	Backport from mainline
++	2016-11-13  Jonathan Wakely  <jwakely at redhat.com>
++
++	PR libstdc++/78326
++	* include/experimental/memory_resource (memory_resource::_S_max_align):
++	Change access to protected.
++
++	Backport from mainline
++	2016-10-19  Jonathan Wakely  <jwakely at redhat.com>
++
++	* testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc:
++	Add tests for valid and invalid conversions.
++	* testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc:
++	Likewise.
++
++	Backport from mainline
++	2016-10-19  Jonathan Wakely  <jwakely at redhat.com>
++
++	* include/experimental/bits/shared_ptr.h
++	(__shared_ptr<__libfund_v1<_Tp, false>, _Lp>::_Compatible): Just use
++	is_convertible for non-array specialization.
++	(__shared_ptr<__libfund_v1<_Tp, false>, _Lp>::_UniqCompatible): New
++	constraint for conversions from unique_ptr.
++	(__shared_ptr<__libfund_v1<_Tp, false>, _Lp>::__shared_ptr): Constrain.
++	(__shared_ptr<__libfund_v1<_Tp, false>, _Lp>::reset): Likewise.
++	(__sp_compatible_v): New variable template for trait.
++	(__sp_is_constructible): New trait to check shared_ptr constraints.
++	(__sp_is_constructible_v): New variable template for trait.
++	(__shared_ptr<__libfund_v1<_Tp, true>, _Lp>::_SafeConv): New
++	constraint for construction/reset, using __sp_is_constructible_v.
++	(__shared_ptr<__libfund_v1<_Tp, true>, _Lp>::_UniqCompatible): New
++	constraint for conversions from unique_ptr.
++	(__shared_ptr<__libfund_v1<_Tp, true>, _Lp>::__shared_ptr): Constrain.
++	(__shared_ptr<__libfund_v1<_Tp, true>, _Lp>::reset): Likewise.
++	(shared_ptr::_SafeConv): Constraint for checking constructors.
++	(shared_ptr(Tp1*), shared_ptr(_Tp1, _Deleter))
++	(shared_ptr(_Tp1, _Deleter, _Alloc)): Constrain with _SafeConv.
++	(shared_ptr(const weak_ptr<_Tp1>&)): Constrain with _Compatible.
++	(shared_ptr(auto_ptr<_Tp1>&&)): Fix, remove TODO.
++	* testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc:
++	Remove tests using invalid conversions.
++	* testsuite/experimental/memory/shared_ptr/cons/pointer_ctor_neg.cc:
++	New test.
++	* testsuite/experimental/memory/shared_ptr/cons/torture.cc: New test.
++	* testsuite/experimental/memory/shared_ptr/modifiers/reset.cc: Remove
++	tests using invalid conversions.
++	* testsuite/experimental/memory/shared_ptr/modifiers/reset_neg.cc: New
++	test.
++	* testsuite/experimental/memory/shared_ptr/observers/use_count.cc:
++	Remove tests using invalid conversions.
++
++	Backport from mainline
++	2016-10-18  Jonathan Wakely  <jwakely at redhat.com>
++
++	* include/experimental/bits/shared_ptr.h: Fix indentation.
++
++	Backport from mainline
++	2016-10-18  Jonathan Wakely  <jwakely at redhat.com>
++
++	* include/experimental/bits/shared_ptr.h (shared_ptr(shared_ptr&&)):
++	Remove const from parameter.
++	(operator<(const shared_ptr<T>&, nullptr_t)): Use correct
++	specialization of std::less.
++	* testsuite/experimental/memory/shared_ptr/comparison/comparison.cc:
++	Test comparison with nullptr and actually call test functions.
++
++	Backport from mainline
++	2016-10-11  Jonathan Wakely  <jwakely at redhat.com>
++
++	* doc/xml/manual/intro.xml: Document LWG 2484 status.
++	* libsupc++/nested_exception.h (_Throw_with_nested_impl)
++	(_Throw_with_nested_helper): Remove.
++	(__throw_with_nested_impl): New overloaded functions to implement
++	throw_with_nested logic.
++	(throw_with_nested): Call __throw_with_nested_impl.
++	(_Rethrow_if_nested_impl): Remove
++	(__rethrow_if_nested_impl): New overloaded functions to implement
++	rethrow_if_nested logic.
++	(rethrow_if_nested): Call __rethrow_if_nested_impl.
++	* testsuite/18_support/nested_exception/rethrow_if_nested.cc: Test
++	problem cases from LWG 2484.
++
++	Backport from mainline
++	2016-10-11  Jonathan Wakely  <jwakely at redhat.com>
++
++	* python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
++	Register printer for std::__cxx11::list.
++	* python/libstdcxx/v6/xmethods.py (ListMethodsMatcher.match): Match
++	std::__cxx11::list as well as std::list.
++
++	Backport from mainline
++	2016-10-12  Jonathan Wakely  <jwakely at redhat.com>
++
++	* doc/xml/manual/intro.xml: Document LWG 2442 status.
++	* include/std/mutex [_GLIBCXX_HAVE_TLS] (__once_call_impl): Remove.
++	(call_once): Use lambda expression and std::__invoke instead of
++	__bind_simple and __once_call_impl.
++	* testsuite/30_threads/call_once/dr2442.cc: New test.
++
++	Backport from mainline
++	2016-10-10  Jonathan Wakely  <jwakely at redhat.com>
++
++	* include/bits/allocator.h (allocator<T>::is_always_equal): Define.
++	* testsuite/20_util/allocator/requirements/typedefs.cc: Test for
++	is_always_equal.
++	* testsuite/util/testsuite_allocator.h
++	(uneq_allocator::is_always_equal): Define as false_type.
++
++	Backport from mainline
++	2016-10-06  Jonathan Wakely  <jwakely at redhat.com>
++
++	* doc/xml/manual/status_cxx2011.xml: Update status.
++	* include/std/scoped_allocator (__outer_allocator_t, __outermost_type):
++	New helpers for recursive OUTERMOST.
++	(__outermost): Use __outermost_type::_S_outermost.
++	(__do_outermost, scoped_allocator_adaptor::__outermost_type): Remove.
++	(scoped_allocator_adaptor::__outermost_alloc_traits): Use new
++	__outermost_type helper.
++	(scoped_allocator_adaptor::_Constructible): New alias template.
++	(scoped_allocator_adaptor::scoped_allocator_adaptor<_Outer2>):
++	Constrain template constructors.
++	* testsuite/20_util/scoped_allocator/3.cc: New test.
++	* testsuite/20_util/scoped_allocator/outermost.cc: New test.
++
++	Backport from mainline
++	2016-08-26  Jonathan Wakely  <jwakely at redhat.com>
++
++	PR libstdc++/51960
++	* doc/xml/manual/intro.xml: Document DR 2127 change.
++	* doc/html/*: Regenerate.
++	* include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
++	(operator++(), operator++(int)): Use injected class name.
++	* testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
++
++	Backport from mainline
++	2016-08-04  Jonathan Wakely  <jwakely at redhat.com>
++
++	* include/std/functional (_Unwrap): Rename to __inv_unwrap.
++	(__invfwd): Adjust.
++	(__invoke_impl): Remove unused template parameters.
++	* testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
++	parameter.
++	* testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
++	and test __invoke extension for C++11.
++
++2016-12-07  Ville Voutilainen  <ville.voutilainen at gmail.com>
++
++	Backport from mainline
++	2016-12-06  Ville Voutilainen  <ville.voutilainen at gmail.com>
++
++	Constrain optional's __constexpr_addressof in its return type
++	and use a constexpr addressof for optional, if available.
++	* include/experimental/optional (__constexpr_addressof):
++	Constrain in the return type instead of in a template parameter.
++	(_Has_addressof_mem)
++	(_Has_addressof_free, _Has_addressof, __constexpr_addressof):
++	Guard with #ifndef __cpp_lib_addressof_constexpr.
++	(operator->()): Use std::__addressof if it's constexpr.
++
++2016-12-06  Aditya Kumar  <hiraditya at msn.com>
++
++	* src/c++11/shared_ptr.cc (_Sp_locker::_Sp_locker(const void* p)): Add
++	noexcept on constructor.
++	(_Sp_locker::_Sp_locker(const void* p1, const void* p2)): Same.
++
 +2016-12-01  Rainer Orth  <ro at CeBiTec.Uni-Bielefeld.DE>
 +
 +	Backport from mainline
@@ -4535,6 +6615,61 @@ Index: libstdc++-v3/ChangeLog
  2016-08-22  Release Manager
  
  	* GCC 6.2.0 released.
+Index: libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_assert2.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_assert2.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_assert2.cc	(.../branches/gcc-6-branch)
+@@ -0,0 +1,50 @@
++// { dg-do run }
++// { dg-require-parallel-mode "" }
++// { dg-options "-fopenmp -D_GLIBCXX_PARALLEL" { target *-*-* } }
++
++// Copyright (C) 2016 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library 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.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++#undef _GLIBCXX_DEBUG
++#undef _GLIBCXX_ASSERTIONS
++#undef _GLIBCXX_PARALLEL_ASSERTIONS
++#define _GLIBCXX_PARALLEL_ASSERTIONS 1
++#include <parallel/algorithm>
++#include <testsuite_hooks.h>
++
++void
++test01()
++{
++  // This should not be enabled without _GLIBCXX_ASSERTIONS:
++  __glibcxx_assert(false);
++}
++
++void
++test02()
++{
++  bool result = false;
++
++  // This should be enabled by _GLIBCXX_PARALLEL_ASSERTIONS:
++  _GLIBCXX_PARALLEL_ASSERT(result = true);
++  VERIFY(result);
++}
++
++int main()
++{
++  test01();
++  test02();
++}
 Index: libstdc++-v3/testsuite/24_iterators/reverse_iterator/71771.cc
 ===================================================================
 --- a/src/libstdc++-v3/testsuite/24_iterators/reverse_iterator/71771.cc	(.../tags/gcc_6_2_0_release)
@@ -4599,6 +6734,91 @@ Index: libstdc++-v3/testsuite/Makefile.in
  	  rm -rf normal-parallel || true; \
  	  mkdir normal-parallel; \
  	  $(MAKE) $(AM_MAKEFLAGS) $(check_DEJAGNU_normal_targets); \
+Index: libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested.cc	(.../branches/gcc-6-branch)
+@@ -101,11 +101,30 @@
+   VERIFY( test );
+ }
+ 
++void
++test04()
++{
++  // LWG 2484 requires that these cases are well-formed, but don't rethrow.
+ 
++  std::rethrow_if_nested(1);
++
++  struct S { } nonpolymorphic;
++  std::rethrow_if_nested(nonpolymorphic);
++
++  struct derived3 : derived, derived2 { };
++  derived3 ambiguous_base;
++  std::rethrow_if_nested(ambiguous_base);
++
++  struct derived4 : private std::nested_exception { };
++  derived4 private_base;
++  std::rethrow_if_nested(private_base);
++}
++
+ int main()
+ {
+   test01();
+   test02();
+   test03();
++  test04();
+   return 0;
+ }
+Index: libstdc++-v3/testsuite/30_threads/call_once/dr2442.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/30_threads/call_once/dr2442.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/30_threads/call_once/dr2442.cc	(.../branches/gcc-6-branch)
+@@ -0,0 +1,45 @@
++// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-gnu* *-*-solaris* *-*-cygwin *-*-rtems* *-*-darwin* powerpc-ibm-aix* } }
++// { dg-options "-pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-gnu* *-*-solaris* powerpc-ibm-aix* } }
++// { dg-require-effective-target c++11 }
++// { dg-require-cstdint "" }
++// { dg-require-gthreads "" }
++
++// Copyright (C) 2016 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library 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.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++#include <mutex>
++#include <testsuite_hooks.h>
++
++void f(int& a, int&& b) { a = 1; b = 2; }
++
++void
++test01()
++{
++  // LWG 2442. call_once() shouldn't DECAY_COPY()
++  std::once_flag once;
++  int i = 0;
++  int j = 0;
++  call_once(once, f, i, std::move(j));
++  VERIFY( i == 1 );
++  VERIFY( j == 2 );
++}
++
++int
++main()
++{
++  test01();
++}
 Index: libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc
 ===================================================================
 --- a/src/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc	(.../tags/gcc_6_2_0_release)
@@ -6459,6 +8679,458 @@ Index: libstdc++-v3/testsuite/experimental/type_traits/value.cc
  // with this library; see the file COPYING3.  If not see
  // <http://www.gnu.org/licenses/>.
  
+Index: libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/reset_neg.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/reset_neg.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/reset_neg.cc	(.../branches/gcc-6-branch)
+@@ -0,0 +1,45 @@
++// { dg-do compile { target c++14 } }
++
++// Copyright (C) 2016 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library 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.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++// 8.2.1 Class template shared_ptr [memory.smartptr.shared]
++
++#include <experimental/memory>
++
++struct A { };
++struct B : A { };
++struct D
++{
++  void operator()(A* p) { delete [] p; ++delete_count; }
++  static long delete_count;
++};
++long D::delete_count = 0;
++
++// C++14 §20.8.2.2.4
++
++// reset
++void
++test01()
++{
++  std::experimental::shared_ptr<A[5]> p1(new A[5]);
++  p1.reset(new B[1]);           // { dg-error "no matching function" }
++  p1.reset(new B[5], D());      // { dg-error "no matching function" }
++  using constA = const A;
++  p1.reset(new constA[5]);      // { dg-error "no matching function" }
++  p1.reset(new constA[5], D()); // { dg-error "no matching function" }
++}
+Index: libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/reset.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/reset.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/reset.cc	(.../branches/gcc-6-branch)
+@@ -23,10 +23,9 @@
+ #include <testsuite_hooks.h>
+ 
+ struct A { };
+-struct B : A { };
+ struct D
+ {
+-  void operator()(B* p) { delete [] p; ++delete_count; }
++  void operator()(A* p) { delete [] p; ++delete_count; }
+   static long delete_count;
+ };
+ long D::delete_count = 0;
+@@ -55,7 +54,7 @@
+   bool test __attribute__((unused)) = true;
+ 
+   A * const a = new A[5];
+-  B * const b = new B[5];
++  A * const b = new A[5];
+   std::experimental::shared_ptr<A[5]> p1(a);
+   std::experimental::shared_ptr<A[5]> p2(p1);
+   p1.reset(b);
+@@ -72,7 +71,7 @@
+ 
+   {
+     std::experimental::shared_ptr<A[5]> p1;
+-    p1.reset(new B[5], D());
++    p1.reset(new A[5], D());
+   }
+   VERIFY( D::delete_count == 1 );
+ 
+Index: libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/pointer_ctor_neg.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/pointer_ctor_neg.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/pointer_ctor_neg.cc	(.../branches/gcc-6-branch)
+@@ -0,0 +1,51 @@
++// { dg-do compile { target c++14 } }
++
++// Copyright (C) 2016 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library 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.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++// 8.2.1 Class template shared_ptr [memory.smartptr.shared]
++
++#include <experimental/memory>
++
++struct A { };
++struct B : A { };
++struct C { };
++struct D { void operator()(B* p) const { delete[] p; } };
++
++// 8.2.1.1 shared_ptr constructors [memory.smartptr.shared.const]
++
++// Construction from pointer
++void
++test01()
++{
++  C * const c = nullptr;
++  std::experimental::shared_ptr<A> p(c); // { dg-error "no match" }
++}
++
++void
++test02()
++{
++  B * const b = nullptr;
++  std::experimental::shared_ptr<A[5]> p(b); // { dg-error "no match" }
++}
++
++void
++test03()
++{
++  B * const b = nullptr;
++  std::experimental::shared_ptr<A[]> p(b); // { dg-error "no match" }
++}
+Index: libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc	(.../branches/gcc-6-branch)
+@@ -26,19 +26,43 @@
+ 
+ struct A : std::experimental::enable_shared_from_this<A>
+ {
+-    ~A() { ++destroyed; }
++  ~A() { ++destroyed; }
+ };
+ 
++struct B : A { };
++
+ // 8.2.1.1 shared_ptr constructors [memory.smartptr.shared.const]
+ 
+ // Construction from unique_ptr<A[]>
+ 
+-int
++template<typename From, typename To>
++constexpr bool constructible()
++{
++  using std::experimental::shared_ptr;
++  using std::experimental::is_constructible_v;
++  using std::unique_ptr;
++  return is_constructible_v<shared_ptr<To>, unique_ptr<From>>;
++}
++
++static_assert(  constructible< A,    A    >(), "A -> A compatible" );
++static_assert( !constructible< A,    A[]  >(), "A -> A[] not compatible" );
++static_assert( !constructible< A,    A[1] >(), "A -> A[1] not compatible" );
++static_assert( !constructible< A[],  A    >(), "A[] -> A not compatible" );
++static_assert(  constructible< A[],  A[]  >(), "A[] -> A[] compatible" );
++static_assert( !constructible< A[],  A[1] >(), "A[] -> A[1] not compatible" );
++
++static_assert(  constructible< B,    A    >(), "B -> A compatible" );
++static_assert( !constructible< B,    A[]  >(), "B -> A[] not compatible" );
++static_assert( !constructible< B,    A[1] >(), "B -> A[1] not compatible" );
++static_assert( !constructible< B[],  A    >(), "B[] -> A not compatible" );
++static_assert( !constructible< B[],  A[]  >(), "B[] -> A[] not compatible" );
++static_assert( !constructible< B[],  A[1] >(), "B[2] -> A[1] not compatible" );
++
++void
+ test01()
+ {
+   bool test __attribute__((unused)) = true;
+-
+-  std::unique_ptr<A[]> up(new A[5]);
++  std::unique_ptr<A> up(new A);
+   std::experimental::shared_ptr<A> sp(std::move(up));
+   VERIFY( up.get() == 0 );
+   VERIFY( sp.get() != 0 );
+@@ -47,9 +71,23 @@
+   VERIFY( sp->shared_from_this() != nullptr );
+ 
+   sp.reset();
++  VERIFY( destroyed == 1 );
++  destroyed = 0;
++}
++
++void
++test02()
++{
++  std::unique_ptr<A[]> up(new A[5]);
++  std::experimental::shared_ptr<A[]> sp(std::move(up));
++  VERIFY( up.get() == 0 );
++  VERIFY( sp.get() != 0 );
++  VERIFY( sp.use_count() == 1 );
++
++  VERIFY( sp[0].shared_from_this() != nullptr );
++
++  sp.reset();
+   VERIFY( destroyed == 5 );
+-
+-  return 0;
+ }
+ 
+ int
+@@ -56,5 +94,5 @@
+ main()
+ {
+   test01();
+-  return 0;
++  test02();
+ }
+Index: libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc	(.../branches/gcc-6-branch)
+@@ -23,11 +23,46 @@
+ #include <testsuite_hooks.h>
+ 
+ struct A { };
++struct B : A { };
+ 
+ // 8.2.1.1 shared_ptr constructors [memory.smartptr.shared.const]
+ 
++template<typename From, typename To>
++constexpr bool constructible()
++{
++  using std::experimental::shared_ptr;
++  using std::experimental::weak_ptr;
++  using std::experimental::is_constructible_v;
++  return is_constructible_v<shared_ptr<To>, weak_ptr<From>>
++    && is_constructible_v<shared_ptr<To>, const weak_ptr<From>&>;
++}
++
++static_assert(  constructible< A,    A    >(), "A -> A compatible" );
++static_assert( !constructible< A,    A[]  >(), "A -> A[] not compatible" );
++static_assert( !constructible< A,    A[1] >(), "A -> A[1] not compatible" );
++static_assert( !constructible< A[],  A    >(), "A[] -> A not compatible" );
++static_assert(  constructible< A[],  A[]  >(), "A[] -> A[] compatible" );
++static_assert( !constructible< A[],  A[1] >(), "A[] -> A[1] not compatible" );
++static_assert( !constructible< A[1], A    >(), "A[1] -> A not compatible" );
++static_assert(  constructible< A[1], A[]  >(), "A[1] -> A[] compatible" );
++static_assert(  constructible< A[1], A[1] >(), "A[1] -> A[1] compatible" );
++static_assert( !constructible< A[2], A[1] >(), "A[2] -> A[1] not compatible" );
++
++static_assert(  constructible< B,    A    >(), "B -> A compatible" );
++static_assert( !constructible< B,    A[]  >(), "B -> A[] not compatible" );
++static_assert( !constructible< B,    A[1] >(), "B -> A[1] not compatible" );
++static_assert( !constructible< B[],  A    >(), "B[] -> A not compatible" );
++static_assert( !constructible< B[],  A[]  >(), "B[] -> A[] not compatible" );
++static_assert( !constructible< B[],  A[1] >(), "B[] -> A[1] not compatible" );
++static_assert( !constructible< B[1], A    >(), "B[] -> A not compatible" );
++static_assert( !constructible< B[1], A[]  >(), "B[] -> A[] not compatible" );
++static_assert( !constructible< B[1], A[1] >(), "B[] -> A[1] not compatible" );
++static_assert( !constructible< B[2], A[1] >(), "B[2] -> A[1] not compatible" );
++
++
++
+ // Construction from weak_ptr
+-int
++void
+ test01()
+ {
+   bool test __attribute__((unused)) = true;
+@@ -41,14 +76,10 @@
+   VERIFY( a3.get() == a );
+   VERIFY( a2.use_count() == wa.use_count() );
+   VERIFY( a3.use_count() == wa.use_count() );
+-
+-  return 0;
+ }
+ 
+-
+ int
+ main()
+ {
+   test01();
+-  return 0;
+ }
+Index: libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/torture.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/torture.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/torture.cc	(.../branches/gcc-6-branch)
+@@ -0,0 +1,53 @@
++// { dg-do compile { target c++14 } }
++
++// Copyright (C) 2016 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library 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.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++// 8.2.1 Class template shared_ptr [memory.smartptr.shared]
++
++#include <experimental/memory>
++
++using namespace std::experimental;
++
++static_assert( !is_constructible_v<shared_ptr<int>, void*>,
++    "can query constructibility without forming invalid type void[]");
++static_assert( !is_constructible_v<shared_ptr<int[2]>, void*>,
++    "can query constructibility without forming invalid type void[]");
++static_assert( !is_constructible_v<shared_ptr<int[]>, void*>,
++    "can query constructibility without forming invalid type void[]");
++
++static_assert( !is_constructible_v<shared_ptr<int>, void()>,
++    "can query constructibility without forming invalid type void()[]");
++static_assert( !is_constructible_v<shared_ptr<int[2]>, void()>,
++    "can query constructibility without forming invalid type void()[]");
++static_assert( !is_constructible_v<shared_ptr<int[]>, void()>,
++    "can query constructibility without forming invalid type void()[]");
++
++static_assert( !is_constructible_v<shared_ptr<int>, void()>,
++    "can query constructibility without forming invalid type void(*)()[]");
++static_assert( !is_constructible_v<shared_ptr<int[2]>, void()>,
++    "can query constructibility without forming invalid type void(*)()[]");
++static_assert( !is_constructible_v<shared_ptr<int[]>, void()>,
++    "can query constructibility without forming invalid type void(*)()[]");
++
++using A = int[];
++static_assert( !is_constructible_v<shared_ptr<int>, A*>,
++    "can query constructibility without forming invalid type int[][]");
++static_assert( !is_constructible_v<shared_ptr<int[2]>, A*>,
++    "can query constructibility without forming invalid type int[][]");
++static_assert( !is_constructible_v<shared_ptr<int[]>, A*>,
++    "can query constructibility without forming invalid type int[][]");
+Index: libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc	(.../branches/gcc-6-branch)
+@@ -23,24 +23,22 @@
+ #include <testsuite_hooks.h>
+ 
+ struct A { };
+-struct B : A { };
+ 
+ // 8.2.1.1 shared_ptr constructors [memory.smartptr.shared.const]
+ 
+ // Construction from pointer
+-int
++void
+ test01()
+ {
+   bool test __attribute__((unused)) = true;
+ 
+-  A * const a = 0;
++  A * const a = new A;
+   std::experimental::shared_ptr<A> p(a);
+-  VERIFY( p.get() == 0 );
++  VERIFY( p.get() == a );
+   VERIFY( p.use_count() == 1 );
+-  return 0;
+ }
+ 
+-int
++void
+ test02()
+ {
+   bool test __attribute__((unused)) = true;
+@@ -49,20 +47,16 @@
+   std::experimental::shared_ptr<A[5]> p(a);
+   VERIFY( p.get() == a );
+   VERIFY( p.use_count() == 1 );
+-  return 0;
+ }
+ 
+-int
++void
+ test03()
+ {
+   bool test __attribute__((unused)) = true;
+-
+-  B * const b = new B[5];
+-  std::experimental::shared_ptr<A[5]> p(b);
+-  VERIFY( p.get() == b );
++  A * const a = new A[5];
++  std::experimental::shared_ptr<A[]> p(a);
++  VERIFY( p.get() == a );
+   VERIFY( p.use_count() == 1 );
+-
+-  return 0;
+ }
+ 
+ int
+Index: libstdc++-v3/testsuite/experimental/memory/shared_ptr/comparison/comparison.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/comparison/comparison.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/comparison/comparison.cc	(.../branches/gcc-6-branch)
+@@ -77,8 +77,18 @@
+   return 0;
+ }
+ 
++void
++test03()
++{
++  std::experimental::shared_ptr<A[5]> a(new A[5]);
++  VERIFY( nullptr < a );
++}
++
+ int
+ main()
+ {
++  test01();
++  test02();
++  test03();
+   return 0;
+ }
+Index: libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/use_count.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/use_count.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/use_count.cc	(.../branches/gcc-6-branch)
+@@ -23,7 +23,6 @@
+ #include <testsuite_hooks.h>
+ 
+ struct A { };
+-struct B : A { };
+ 
+ // 8.2.1.2 shared_ptr observers [memory.smartptr.shared.obs]
+ 
+@@ -58,7 +57,7 @@
+ 
+   std::experimental::shared_ptr<A[5]> p1(new A[5]);
+   std::experimental::shared_ptr<A[5]> p2(p1);
+-  p2.reset(new B[5]);
++  p2.reset(new A[5]);
+   VERIFY( p1.use_count() == 1 );
+   VERIFY( p2.use_count() == 1 );
+ }
 Index: libstdc++-v3/testsuite/experimental/memory/observer_ptr/cons/cons.cc
 ===================================================================
 --- a/src/libstdc++-v3/testsuite/experimental/memory/observer_ptr/cons/cons.cc	(.../tags/gcc_6_2_0_release)
@@ -6699,6 +9371,20 @@ Index: libstdc++-v3/testsuite/17_intro/using_namespace_std_exp_neg.cc
 +}
 +
 +// { dg-error "expected namespace-name before" "" { target *-*-* } 63 }
+Index: libstdc++-v3/testsuite/libstdc++-xmethods/list.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/libstdc++-xmethods/list.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/libstdc++-xmethods/list.cc	(.../branches/gcc-6-branch)
+@@ -18,9 +18,6 @@
+ // with this library; see the file COPYING3.  If not see
+ // <http://www.gnu.org/licenses/>.
+ 
+-// List xmethods only recognize the non cxx11 std::list for now.
+-#define _GLIBCXX_USE_CXX11_ABI 0
+-
+ #include <list>
+ 
+ int
 Index: libstdc++-v3/testsuite/Makefile.am
 ===================================================================
 --- a/src/libstdc++-v3/testsuite/Makefile.am	(.../tags/gcc_6_2_0_release)
@@ -6712,6 +9398,18 @@ Index: libstdc++-v3/testsuite/Makefile.am
  	  rm -rf normal-parallel || true; \
  	  mkdir normal-parallel; \
  	  $(MAKE) $(AM_MAKEFLAGS) $(check_DEJAGNU_normal_targets); \
+Index: libstdc++-v3/testsuite/util/testsuite_allocator.h
+===================================================================
+--- a/src/libstdc++-v3/testsuite/util/testsuite_allocator.h	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/util/testsuite_allocator.h	(.../branches/gcc-6-branch)
+@@ -297,6 +297,7 @@
+ 
+ #if __cplusplus >= 201103L
+       typedef std::true_type			propagate_on_container_swap;
++      typedef std::false_type			is_always_equal;
+ #endif
+ 
+       template<typename Tp1>
 Index: libstdc++-v3/testsuite/20_util/duration/literals/range.cc
 ===================================================================
 --- a/src/libstdc++-v3/testsuite/20_util/duration/literals/range.cc	(.../tags/gcc_6_2_0_release)
@@ -6805,6 +9503,173 @@ Index: libstdc++-v3/testsuite/20_util/pair/traits.cc
 +		      std::unique_ptr<int>>>::value,
 +		      "");
 +}
+Index: libstdc++-v3/testsuite/20_util/scoped_allocator/outermost.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/20_util/scoped_allocator/outermost.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/20_util/scoped_allocator/outermost.cc	(.../branches/gcc-6-branch)
+@@ -0,0 +1,91 @@
++// Copyright (C) 2016 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library 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.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++// { dg-do compile { target c++11 } }
++
++#include <scoped_allocator>
++
++template<typename T>
++struct alloc
++{
++  using value_type = T;
++  alloc() = default;
++  template<typename U>
++    alloc(alloc<U>) { }
++  T* allocate(std::size_t);
++  void deallocate(T*, std::size_t);
++};
++
++template<typename T, typename U>
++  bool operator==(alloc<T>, alloc<U>) { return true; }
++
++template<typename T, typename U>
++  bool operator!=(alloc<T>, alloc<U>) { return false; }
++
++struct X
++{
++  using allocator_type = alloc<int>;
++  X(const allocator_type&);
++};
++
++template<typename A>
++struct nested_alloc : A
++{
++  nested_alloc() = default;
++  template<typename U>
++    nested_alloc(nested_alloc<U>) { }
++
++  A& outer_allocator() { return *this; }
++
++  template<typename U, typename... Args>
++    void construct(U*, Args&&...)
++    {
++      static_assert(!std::is_same<U, X>::value,
++          "OUTERMOST should recurse and use alloc<int> to construct X");
++    }
++};
++
++template<typename T, typename U>
++  bool operator==(nested_alloc<T> l, nested_alloc<U> r)
++  { return l.outer_allocator() == r.outer_allocator(); }
++
++template<typename T, typename U>
++  bool operator!=(nested_alloc<T> l, nested_alloc<U> r)
++  { return !(l == r); }
++
++template<typename A>
++  using scoped_alloc = std::scoped_allocator_adaptor<A>;
++
++void
++test01()
++{
++  scoped_alloc<nested_alloc<alloc<int>>> a;
++  alignas(X) char buf[sizeof(X)];
++  X* p = (X*)buf;
++  // Test that OUTERMOST is recursive and doesn't just unwrap one level:
++  a.construct(p);
++}
++
++void
++test02()
++{
++  scoped_alloc<scoped_alloc<nested_alloc<alloc<int>>>> a;
++  alignas(X) char buf[sizeof(X)];
++  X* p = (X*)buf;
++  // Test that OUTERMOST is recursive and doesn't just unwrap one level:
++  a.construct(p);
++}
+Index: libstdc++-v3/testsuite/20_util/scoped_allocator/3.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/20_util/scoped_allocator/3.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/20_util/scoped_allocator/3.cc	(.../branches/gcc-6-branch)
+@@ -0,0 +1,66 @@
++// Copyright (C) 2016 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library 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.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++// { dg-do compile { target c++11 } }
++
++#include <scoped_allocator>
++#include <testsuite_allocator.h>
++
++template<typename T>
++struct alloc
++{
++  using value_type = T;
++  alloc() = default;
++  template<typename U>
++    alloc(alloc<U>) { }
++  T* allocate(std::size_t);
++  void deallocate(T*, std::size_t);
++};
++
++template<typename T, typename U>
++  bool operator==(alloc<T>, alloc<U>) { return true; }
++
++template<typename T, typename U>
++  bool operator!=(alloc<T>, alloc<U>) { return false; }
++
++using scoped = std::scoped_allocator_adaptor<alloc<int>>;
++using other_alloc = __gnu_test::SimpleAllocator<int>;
++using other_scoped = std::scoped_allocator_adaptor<other_alloc>;
++
++using std::is_constructible;
++
++static_assert( is_constructible<scoped, const scoped&>::value,
++    "is_constructible<scoped, const scoped&>");
++static_assert( is_constructible<scoped, scoped>::value,
++    "is_constructible<scoped, scoped>");
++static_assert( is_constructible<scoped, const alloc<int>&>::value,
++    "is_constructible<scoped, const outer_allocator_type&>");
++static_assert( is_constructible<scoped, alloc<int>>::value,
++    "is_constructible<scoped, outer_allocator_type>");
++static_assert( is_constructible<scoped, const alloc<long>&>::value,
++    "is_constructible<scoped, const outer_allocator_type::rebind<U>::type&>");
++static_assert( is_constructible<scoped, alloc<long>>::value,
++    "is_constructible<scoped, outer_allocator_type::rebind<U>::type>");
++
++static_assert( !is_constructible<scoped, const other_alloc&>::value,
++    "!is_constructible<scoped, const other_alloc&>");
++static_assert( !is_constructible<scoped, other_alloc>::value,
++    "!is_constructible<scoped, other_alloc>");
++static_assert( !is_constructible<scoped, const other_scoped&>::value,
++    "!is_constructible<scoped, const other_scoped&>");
++static_assert( !is_constructible<scoped, other_scoped>::value,
++    "!is_constructible<scoped, other_scoped>");
 Index: libstdc++-v3/testsuite/20_util/function/cons/72820.cc
 ===================================================================
 --- a/src/libstdc++-v3/testsuite/20_util/function/cons/72820.cc	(.../tags/gcc_6_2_0_release)
@@ -6869,6 +9734,57 @@ Index: libstdc++-v3/testsuite/20_util/function/77322.cc
 +std::function<void()> f, g;
 +static_assert( noexcept(f.swap(g)), "member swap is noexcept" );
 +static_assert( noexcept(swap(f, g)), "non-member swap is noexcept" );
+Index: libstdc++-v3/testsuite/20_util/raw_storage_iterator/dr2127.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/20_util/raw_storage_iterator/dr2127.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/20_util/raw_storage_iterator/dr2127.cc	(.../branches/gcc-6-branch)
+@@ -0,0 +1,46 @@
++// Copyright (C) 2016 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library 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.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++// { dg-do run { target c++11 } }
++
++#include <memory>
++#include <testsuite_hooks.h>
++
++struct MoveOnly
++{
++  MoveOnly(int i) : i(i) { }
++  MoveOnly(MoveOnly&&) = default;
++  int i;
++};
++
++void
++test01()
++{
++  char buf[sizeof(MoveOnly)*2];
++  MoveOnly* addr = (MoveOnly*)buf;
++  std::raw_storage_iterator<MoveOnly*, MoveOnly> iter(addr);
++  *iter++ = MoveOnly{1};
++  *iter++ = MoveOnly{2};
++  VERIFY( addr[0].i == 1 );
++  VERIFY( addr[1].i == 2 );
++}
++
++int
++main()
++{
++  test01();
++}
 Index: libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc
 ===================================================================
 --- a/src/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc	(.../tags/gcc_6_2_0_release)
@@ -7159,6 +10075,93 @@ Index: libstdc++-v3/testsuite/20_util/unique_ptr/assign/cv_qual.cc
 -  // { dg-error "no type" "" { target *-*-* } 537 }
 -  // { dg-error "no matching function" "" { target *-*-* } 614 }
 -}
+Index: libstdc++-v3/testsuite/20_util/function_objects/invoke/ref_ext.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/20_util/function_objects/invoke/ref_ext.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/20_util/function_objects/invoke/ref_ext.cc	(.../branches/gcc-6-branch)
+@@ -0,0 +1,58 @@
++// Copyright (C) 2015-2016 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library 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.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++// { dg-do compile { target c++11 } }
++
++#include <functional>
++
++struct A {
++  void foo(int) { }
++};
++
++void
++test01()
++{
++  // PR libstdc++/59768
++  A a;
++  auto ref = std::ref(a);
++  std::__invoke(&A::foo, ref, 100);		// lvalue
++  std::__invoke(&A::foo, std::move(ref), 100);	// rvalue
++  const auto refc = std::ref(a);
++  std::__invoke(&A::foo, refc, 100);		// const lvalue
++  std::__invoke(&A::foo, std::move(refc), 100);	// const rvalue
++}
++
++struct B {
++  int bar = 0;
++};
++
++void
++test02()
++{
++  B b;
++  // Invocation through a reference_wrapper means the object is an lvalue.
++
++  int* ptr [[gnu::unused]];
++  auto ref = std::ref(b);
++  ptr = &std::__invoke(&B::bar, ref);
++  ptr = &std::__invoke(&B::bar, std::move(ref));
++
++  const int* cptr [[gnu::unused]];
++  auto cref = std::cref(b);
++  cptr = &std::__invoke(&B::bar, cref);
++  cptr = &std::__invoke(&B::bar, std::move(cref));
++}
+Index: libstdc++-v3/testsuite/20_util/function_objects/invoke/59768.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/20_util/function_objects/invoke/59768.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/20_util/function_objects/invoke/59768.cc	(.../branches/gcc-6-branch)
+@@ -21,7 +21,7 @@
+ #include <functional>
+ 
+ struct A {
+-  void foo(int n) { }
++  void foo(int) { }
+ };
+ 
+ void
+Index: libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc	(.../branches/gcc-6-branch)
+@@ -49,3 +49,6 @@
+ static_assert( is_same<allocator<int>::propagate_on_container_move_assignment,
+                        std::true_type>::value,
+                "propagate_on_container_move_assignment" );
++
++static_assert( is_same<allocator<int>::is_always_equal, std::true_type>::value,
++               "is_always_equal" );
 Index: libstdc++-v3/testsuite/20_util/allocator/void.cc
 ===================================================================
 --- a/src/libstdc++-v3/testsuite/20_util/allocator/void.cc	(.../tags/gcc_6_2_0_release)
@@ -7652,7 +10655,16 @@ Index: libgcc/ChangeLog
 ===================================================================
 --- a/src/libgcc/ChangeLog	(.../tags/gcc_6_2_0_release)
 +++ b/src/libgcc/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,40 @@
+@@ -1,3 +1,49 @@
++2016-12-11  Iain Sandoe  <iain at codesourcery.com>
++
++	Backport from mainline
++	2016-11-27  Iain Sandoe  <iain at codesourcery.com>
++		    Rainer Orth  <ro at CeBiTec.Uni-Bielefeld.DE>
++
++	PR target/67710
++	*  config/t-darwin: Default builds to 10.5 codegen.
++
 +2016-11-18  Walter Lee  <walt at tilera.com>
 +
 +	Backport from mainline
@@ -7693,6 +10705,18 @@ Index: libgcc/ChangeLog
  2016-08-22  Release Manager
  
  	* GCC 6.2.0 released.
+Index: libgcc/config/t-darwin
+===================================================================
+--- a/src/libgcc/config/t-darwin	(.../tags/gcc_6_2_0_release)
++++ b/src/libgcc/config/t-darwin	(.../branches/gcc-6-branch)
+@@ -1,3 +1,7 @@
++# Set this as a minimum (unless overriden by arch t-files) since it's a
++# reasonable lowest common denominator that works for all our archs.
++HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=10.5
++
+ crt3.o: $(srcdir)/config/darwin-crt3.c
+ 	$(crt_compile) $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) -c $<
+ 
 Index: libgcc/config/i386/t-cpuinfo-static
 ===================================================================
 --- a/src/libgcc/config/i386/t-cpuinfo-static	(.../tags/gcc_6_2_0_release)
@@ -7950,6 +10974,20 @@ Index: gcc/tree-ssa-tail-merge.c
    if (is_gimple_call (stmt1)
        && gimple_call_internal_p (stmt1))
      switch (gimple_call_internal_fn (stmt1))
+Index: gcc/graphite-isl-ast-to-gimple.c
+===================================================================
+--- a/src/gcc/graphite-isl-ast-to-gimple.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/graphite-isl-ast-to-gimple.c	(.../branches/gcc-6-branch)
+@@ -2493,9 +2493,6 @@
+       tree res = gimple_phi_result (phi);
+       if (virtual_operand_p (res))
+ 	continue;
+-      if (is_gimple_reg (res) && scev_analyzable_p (res, region->region))
+-	/* Cond phi nodes should not be scev_analyzable_p.  */
+-	gcc_unreachable ();
+ 
+       gphi *new_phi = create_phi_node (SSA_NAME_VAR (res), new_bb);
+       tree new_res = create_new_def_for (res, new_phi,
 Index: gcc/c-family/c-pretty-print.c
 ===================================================================
 --- a/src/gcc/c-family/c-pretty-print.c	(.../tags/gcc_6_2_0_release)
@@ -8154,13 +11192,62 @@ Index: gcc/c/c-typeck.c
  }
  

  /* If TYPE is an array type and EXPR is a parenthesized string
+Index: gcc/cgraph.c
+===================================================================
+--- a/src/gcc/cgraph.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/cgraph.c	(.../branches/gcc-6-branch)
+@@ -1952,14 +1952,17 @@
+   cgraph_node *node = get (decl);
+   if (!node)
+     return NULL;
+-  node = node->ultimate_alias_target ();
+-  if (node->decl != current_function_decl
+-      && !TREE_ASM_WRITTEN (node->decl))
++  enum availability avail;
++  node = node->ultimate_alias_target (&avail);
++  if (decl != current_function_decl
++      && (avail < AVAIL_AVAILABLE
++	  || (node->decl != current_function_decl
++	      && !TREE_ASM_WRITTEN (node->decl))))
+     return NULL;
+-  /* Allocate if it doesnt exist.  */
+-  if (node->ultimate_alias_target ()->rtl == NULL)
+-    node->ultimate_alias_target ()->rtl = ggc_cleared_alloc<cgraph_rtl_info> ();
+-  return node->ultimate_alias_target ()->rtl;
++  /* Allocate if it doesn't exist.  */
++  if (node->rtl == NULL)
++    node->rtl = ggc_cleared_alloc<cgraph_rtl_info> ();
++  return node->rtl;
+ }
+ 
+ /* Return a string describing the failure REASON.  */
 Index: gcc/DATESTAMP
 ===================================================================
 --- a/src/gcc/DATESTAMP	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/DATESTAMP	(.../branches/gcc-6-branch)
 @@ -1 +1 @@
 -20160822
-+20161202
++20161212
+Index: gcc/postreload.c
+===================================================================
+--- a/src/gcc/postreload.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/postreload.c	(.../branches/gcc-6-branch)
+@@ -1198,10 +1198,11 @@
+ 	      /* Delete the reg-reg addition.  */
+ 	      delete_insn (insn);
+ 
+-	      if (reg_state[regno].offset != const0_rtx)
+-		/* Previous REG_EQUIV / REG_EQUAL notes for PREV
+-		   are now invalid.  */
+-		remove_reg_equal_equiv_notes (prev);
++	      if (reg_state[regno].offset != const0_rtx
++		  /* Previous REG_EQUIV / REG_EQUAL notes for PREV
++		     are now invalid.  */
++		  && remove_reg_equal_equiv_notes (prev))
++		df_notes_rescan (prev);
+ 
+ 	      reg_state[regno].use_index = RELOAD_COMBINE_MAX_USES;
+ 	      return true;
 Index: gcc/tree.c
 ===================================================================
 --- a/src/gcc/tree.c	(.../tags/gcc_6_2_0_release)
@@ -8316,11 +11403,133 @@ Index: gcc/incpath.c
  	    cpp_errno (pfile, CPP_DL_ERROR, cur->name);
  	  else
  	    {
+Index: gcc/rtlanal.c
+===================================================================
+--- a/src/gcc/rtlanal.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/rtlanal.c	(.../branches/gcc-6-branch)
+@@ -2364,12 +2364,14 @@
+     }
+ }
+ 
+-/* Remove REG_EQUAL and/or REG_EQUIV notes if INSN has such notes.  */
++/* Remove REG_EQUAL and/or REG_EQUIV notes if INSN has such notes.
++   Return true if any note has been removed.  */
+ 
+-void
++bool
+ remove_reg_equal_equiv_notes (rtx_insn *insn)
+ {
+   rtx *loc;
++  bool ret = false;
+ 
+   loc = &REG_NOTES (insn);
+   while (*loc)
+@@ -2376,10 +2378,14 @@
+     {
+       enum reg_note kind = REG_NOTE_KIND (*loc);
+       if (kind == REG_EQUAL || kind == REG_EQUIV)
+-	*loc = XEXP (*loc, 1);
++	{
++	  *loc = XEXP (*loc, 1);
++	  ret = true;
++	}
+       else
+ 	loc = &XEXP (*loc, 1);
+     }
++  return ret;
+ }
+ 
+ /* Remove all REG_EQUAL and REG_EQUIV notes referring to REGNO.  */
 Index: gcc/configure
 ===================================================================
 --- a/src/gcc/configure	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/configure	(.../branches/gcc-6-branch)
-@@ -26743,7 +26743,7 @@
+@@ -3631,6 +3631,11 @@
+ fi
+ 
+ 
++case $target in
++    *darwin*) ld64_flag=yes;; # Darwin can only use a ld64-compatible linker.
++    *) ld64_flag=no;;
++esac
++
+ # With pre-defined ld
+ 
+ # Check whether --with-ld was given.
+@@ -3643,6 +3648,8 @@
+     as_fn_error "cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER" "$LINENO" 5
+   elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
+     gnu_ld_flag=yes
++  elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep ld64- > /dev/null; then
++    ld64_flag=yes
+   fi
+ 
+ cat >>confdefs.h <<_ACEOF
+@@ -18453,7 +18460,7 @@
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 18456 "configure"
++#line 18463 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+@@ -18559,7 +18566,7 @@
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 18562 "configure"
++#line 18569 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+@@ -24456,6 +24463,45 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_lto_plugin" >&5
+ $as_echo "$gcc_cv_lto_plugin" >&6; }
+ 
++# Target OS-specific assembler checks.
++
++case "$target_os" in
++  darwin*)
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for -mmacosx-version-min option" >&5
++$as_echo_n "checking assembler for -mmacosx-version-min option... " >&6; }
++if test "${gcc_cv_as_mmacosx_version_min+set}" = set; then :
++  $as_echo_n "(cached) " >&6
++else
++  gcc_cv_as_mmacosx_version_min=no
++  if test x$gcc_cv_as != x; then
++    $as_echo '.text' > conftest.s
++    if { ac_try='$gcc_cv_as $gcc_cv_as_flags -mmacosx-version-min=10.1 -o conftest.o conftest.s >&5'
++  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; }; }
++    then
++	gcc_cv_as_mmacosx_version_min=yes
++    else
++      echo "configure: failed program was" >&5
++      cat conftest.s >&5
++    fi
++    rm -f conftest.o conftest.s
++  fi
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_mmacosx_version_min" >&5
++$as_echo "$gcc_cv_as_mmacosx_version_min" >&6; }
++if test $gcc_cv_as_mmacosx_version_min = yes; then
++
++$as_echo "#define HAVE_AS_MMACOSX_VERSION_MIN_OPTION 1" >>confdefs.h
++
++fi
++    ;;
++esac
++
++# Target CPU-specific assembler checks.
++
+ case "$target" in
+   aarch64*-*-*)
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for -mabi option" >&5
+@@ -26743,7 +26789,7 @@
    elif test x$gcc_cv_as != x; then
      $as_echo '	.dwsect 0xA0000
  	Lframe..0:
@@ -8329,6 +11538,78 @@ Index: gcc/configure
  	  ' > conftest.s
      if { ac_try='$gcc_cv_as $gcc_cv_as_flags  -o conftest.o conftest.s >&5'
    { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+@@ -28069,6 +28115,71 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld_compress_debug" >&5
+ $as_echo "$gcc_cv_ld_compress_debug" >&6; }
+ 
++if test x"$ld64_flag" = x"yes"; then
++
++  # Set defaults for possibly untestable items.
++  gcc_cv_ld64_export_dynamic=0
++
++  if test "$build" = "$host"; then
++    darwin_try_test=1
++  else
++    darwin_try_test=0
++  fi
++
++  # On Darwin, because of FAT library support, it is often possible to execute
++  # exes from compatible archs even when the host differs from the build system.
++  case "$build","$host" in
++    x86_64-*-darwin*,i?86-*-darwin* | powerpc64*-*-darwin*,powerpc*-*-darwin*)
++	darwin_try_test=1;;
++    *) ;;
++  esac
++
++  # If the configurer specified a minimum ld64 version to be supported, then use
++  # that to determine feature support.
++  if test x"${gcc_cv_ld64_version}" != x; then
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking ld64 specified version" >&5
++$as_echo_n "checking ld64 specified version... " >&6; }
++    gcc_cv_ld64_major=`echo "$gcc_cv_ld64_version" | sed -e 's/\..*//'`
++    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_major" >&5
++$as_echo "$gcc_cv_ld64_major" >&6; }
++   if test "$gcc_cv_ld64_major" -ge 236; then
++      gcc_cv_ld64_export_dynamic=1
++    fi
++  elif test -x "$gcc_cv_ld" -a "$darwin_try_test" -eq 1; then
++    # If the version was not specified, try to find it.
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker version" >&5
++$as_echo_n "checking linker version... " >&6; }
++    if test x"${gcc_cv_ld64_version}" = x; then
++      gcc_cv_ld64_version=`$gcc_cv_ld -v 2>&1 | grep ld64 | sed s/.*ld64-// | awk '{print $1}'`
++    fi
++    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_version" >&5
++$as_echo "$gcc_cv_ld64_version" >&6; }
++
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker for -export_dynamic support" >&5
++$as_echo_n "checking linker for -export_dynamic support... " >&6; }
++    gcc_cv_ld64_export_dynamic=1
++    if $gcc_cv_ld -export_dynamic < /dev/null 2>&1 | grep 'unknown option' > /dev/null; then
++      gcc_cv_ld64_export_dynamic=0
++    fi
++    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_export_dynamic" >&5
++$as_echo "$gcc_cv_ld64_export_dynamic" >&6; }
++  fi
++
++  if test x"${gcc_cv_ld64_version}" != x; then
++
++cat >>confdefs.h <<_ACEOF
++#define LD64_VERSION "${gcc_cv_ld64_version}"
++_ACEOF
++
++  fi
++
++
++cat >>confdefs.h <<_ACEOF
++#define LD64_HAS_EXPORT_DYNAMIC $gcc_cv_ld64_export_dynamic
++_ACEOF
++
++fi
++
+ # --------
+ # UNSORTED
+ # --------
 Index: gcc/internal-fn.c
 ===================================================================
 --- a/src/gcc/internal-fn.c	(.../tags/gcc_6_2_0_release)
@@ -8345,6 +11626,23 @@ Index: gcc/internal-fn.c
  	      /* FALLTHRU */
  	    case PLUS_EXPR:
  	      expand_addsub_overflow (loc, code, lhs, arg0, arg1,
+Index: gcc/builtins.c
+===================================================================
+--- a/src/gcc/builtins.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/builtins.c	(.../branches/gcc-6-branch)
+@@ -5403,8 +5403,10 @@
+ 	 end before anything else has a chance to look at it.  The pointer
+ 	 parameter at this point is usually cast to a void *, so check for that
+ 	 and look past the cast.  */
+-      if (CONVERT_EXPR_P (arg1) && POINTER_TYPE_P (ttype)
+-	  && VOID_TYPE_P (TREE_TYPE (ttype)))
++      if (CONVERT_EXPR_P (arg1)
++	  && POINTER_TYPE_P (ttype)
++	  && VOID_TYPE_P (TREE_TYPE (ttype))
++	  && POINTER_TYPE_P (TREE_TYPE (TREE_OPERAND (arg1, 0))))
+ 	arg1 = TREE_OPERAND (arg1, 0);
+ 
+       ttype = TREE_TYPE (arg1);
 Index: gcc/fold-const.c
 ===================================================================
 --- a/src/gcc/fold-const.c	(.../tags/gcc_6_2_0_release)
@@ -8430,7 +11728,66 @@ Index: gcc/omp-low.c
 ===================================================================
 --- a/src/gcc/omp-low.c	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/omp-low.c	(.../branches/gcc-6-branch)
-@@ -4300,7 +4300,9 @@
+@@ -1279,7 +1279,8 @@
+    this is some variable.  */
+ 
+ static tree
+-build_outer_var_ref (tree var, omp_context *ctx, bool lastprivate = false)
++build_outer_var_ref (tree var, omp_context *ctx,
++		     enum omp_clause_code code = OMP_CLAUSE_ERROR)
+ {
+   tree x;
+ 
+@@ -1288,7 +1289,7 @@
+   else if (is_variable_sized (var))
+     {
+       x = TREE_OPERAND (DECL_VALUE_EXPR (var), 0);
+-      x = build_outer_var_ref (x, ctx, lastprivate);
++      x = build_outer_var_ref (x, ctx, code);
+       x = build_simple_mem_ref (x);
+     }
+   else if (is_taskreg_ctx (ctx))
+@@ -1296,11 +1297,17 @@
+       bool by_ref = use_pointer_for_field (var, NULL);
+       x = build_receiver_ref (var, by_ref, ctx);
+     }
+-  else if (gimple_code (ctx->stmt) == GIMPLE_OMP_FOR
+-	   && gimple_omp_for_kind (ctx->stmt) & GF_OMP_FOR_SIMD)
++  else if ((gimple_code (ctx->stmt) == GIMPLE_OMP_FOR
++	    && gimple_omp_for_kind (ctx->stmt) & GF_OMP_FOR_SIMD)
++	   || (code == OMP_CLAUSE_PRIVATE
++	       && (gimple_code (ctx->stmt) == GIMPLE_OMP_FOR
++		   || gimple_code (ctx->stmt) == GIMPLE_OMP_SECTIONS
++		   || gimple_code (ctx->stmt) == GIMPLE_OMP_SINGLE)))
+     {
+-      /* #pragma omp simd isn't a worksharing construct, and can reference even
+-	 private vars in its linear etc. clauses.  */
++      /* #pragma omp simd isn't a worksharing construct, and can reference
++	 even private vars in its linear etc. clauses.
++	 Similarly for OMP_CLAUSE_PRIVATE with outer ref, that can refer
++	 to private vars in all worksharing constructs.  */
+       x = NULL_TREE;
+       if (ctx->outer && is_taskreg_ctx (ctx))
+ 	x = lookup_decl (var, ctx->outer);
+@@ -1309,7 +1316,7 @@
+       if (x == NULL_TREE)
+ 	x = var;
+     }
+-  else if (lastprivate && is_taskloop_ctx (ctx))
++  else if (code == OMP_CLAUSE_LASTPRIVATE && is_taskloop_ctx (ctx))
+     {
+       gcc_assert (ctx->outer);
+       splay_tree_node n
+@@ -1346,7 +1353,7 @@
+ 	  gcc_assert (outer
+ 		      && gimple_code (outer->stmt) != GIMPLE_OMP_GRID_BODY);
+ 	}
+-	x = lookup_decl (var, outer);
++      x = lookup_decl (var, outer);
+     }
+   else if (is_reference (var))
+     /* This can happen with orphaned constructs.  If var is reference, it is
+@@ -4300,7 +4307,9 @@
  	{
  	  tree c = find_omp_clause (gimple_omp_for_clauses (ctx->stmt),
  				    OMP_CLAUSE_SAFELEN);
@@ -8441,6 +11798,33 @@ Index: gcc/omp-low.c
  	    max_vf = 1;
  	  else if (c && compare_tree_int (OMP_CLAUSE_SAFELEN_EXPR (c),
  					  max_vf) == -1)
+@@ -4939,7 +4948,7 @@
+ 		  if (is_task_ctx (ctx))
+ 		    x = build_receiver_ref (var, false, ctx);
+ 		  else
+-		    x = build_outer_var_ref (var, ctx);
++		    x = build_outer_var_ref (var, ctx, OMP_CLAUSE_PRIVATE);
+ 		}
+ 	      else
+ 		x = NULL;
+@@ -5509,7 +5518,7 @@
+ 		x = ovar;
+ 	    }
+ 	  if (!x)
+-	    x = build_outer_var_ref (var, ctx, true);
++	    x = build_outer_var_ref (var, ctx, OMP_CLAUSE_LASTPRIVATE);
+ 	  if (is_reference (var))
+ 	    new_var = build_simple_mem_ref_loc (clause_loc, new_var);
+ 	  x = lang_hooks.decls.omp_clause_assign_op (c, x, new_var);
+@@ -9601,7 +9610,7 @@
+   struct loop *loop = body_bb->loop_father;
+   if (loop != entry_bb->loop_father)
+     {
+-      gcc_assert (loop->header == body_bb);
++      gcc_assert (broken_loop || loop->header == body_bb);
+       gcc_assert (broken_loop
+ 		  || loop->latch == region->cont
+ 		  || single_pred (loop->latch) == region->cont);
 Index: gcc/gcov.c
 ===================================================================
 --- a/src/gcc/gcov.c	(.../tags/gcc_6_2_0_release)
@@ -8533,7 +11917,18 @@ Index: gcc/tree-ssa-sccvn.c
        else if (TREE_CODE (to) == SSA_NAME
  	       && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (to))
  	to = from;
-@@ -3458,7 +3475,7 @@
+@@ -3312,6 +3329,10 @@
+     {
+       if (vnresult->result_vdef && vdef)
+ 	changed |= set_ssa_val_to (vdef, vnresult->result_vdef);
++      else if (vdef)
++	/* If the call was discovered to be pure or const reflect
++	   that as far as possible.  */
++	changed |= set_ssa_val_to (vdef, vuse_ssa_val (gimple_vuse (stmt)));
+ 
+       if (!vnresult->result && lhs)
+ 	vnresult->result = lhs;
+@@ -3458,7 +3479,7 @@
  {
    bool changed = false;
    vn_reference_t vnresult = NULL;
@@ -8542,7 +11937,7 @@ Index: gcc/tree-ssa-sccvn.c
    bool resultsame = false;
    tree vuse = gimple_vuse (stmt);
    tree vdef = gimple_vdef (stmt);
-@@ -3482,31 +3499,40 @@
+@@ -3482,31 +3503,40 @@
       Otherwise, the vdefs for the store are used when inserting into
       the table, since the store generates a new memory state.  */
  
@@ -8597,7 +11992,7 @@ Index: gcc/tree-ssa-sccvn.c
        if (dump_file && (dump_flags & TDF_DETAILS))
  	{
  	  fprintf (dump_file, "No store match\n");
-@@ -3519,9 +3545,7 @@
+@@ -3519,9 +3549,7 @@
        /* Have to set value numbers before insert, since insert is
  	 going to valueize the references in-place.  */
        if (vdef)
@@ -8612,7 +12007,354 @@ Index: gcc/ChangeLog
 ===================================================================
 --- a/src/gcc/ChangeLog	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,1005 @@
+@@ -1,3 +1,1352 @@
++2016-12-11  Iain Sandoe  <iain at codesourcery.com>
++
++	Backport from mainline
++	2016-11-27  Iain Sandoe  <iain at codesourcery.com>
++		    Rainer Orth  <ro at CeBiTec.Uni-Bielefeld.DE>
++
++	PR target/67710
++	* config.in: Regenerate
++	* config/darwin-driver.c (darwin_driver_init): Emit a version string
++	for the assembler.
++	* config/darwin.h(ASM_MMACOSX_VERSION_MIN_SPEC): New, new tests.
++	* config/darwin.opt(asm_macosx_version_min): New.
++	* config/i386/darwin.h: Handle ASM_MMACOSX_VERSION_MIN_SPEC.
++	* configure: Regenerate
++	* configure.ac: Check for mmacosx-version-min handling.
++
++2016-12-11  Iain Sandoe  <iain at codesourcery.com>
++
++	Backport from mainline
++	2016-11-27  Iain Sandoe  <iain at codesourcery.com>
++
++	PR target/57438
++	* config/i386/i386.c (ix86_code_end): Note that we emitted code
++	where the function might otherwise appear empty for picbase thunks.
++	(ix86_output_function_epilogue): If we find a zero-sized function
++	assume that reaching it is UB and trap.  If we find a trailing label
++	append a nop.
++	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): If we
++	find a zero-sized function assume that reaching it is UB and trap.
++	If we find a trailing label, append a nop.
++
++2016-12-11 Iain Sandoe  <iain at codesourcery.com>
++
++	Backport from mainline
++	2016-11-27  Iain Sandoe  <iain at codesourcery.com>
++
++	PR target/71767
++	* config/darwin-sections.def (picbase_thunk_section): New.
++	* config/darwin.c (darwin_init_sections): Set up picbase thunk
++	section. (darwin_rodata_section, darwin_objc2_section,
++	machopic_select_section, darwin_asm_declare_constant_name,
++	darwin_emit_weak_or_comdat, darwin_function_section): Don’t use
++	coalesced with newer linkers.
++	(darwin_override_options): Decide on usage of coalesed sections
++	on the basis of the target linker version.
++	* config/darwin.h (MIN_LD64_NO_COAL_SECTS): New.
++	* config/darwin.opt  (mtarget-linker): New.
++	* config/i386/i386.c (ix86_code_end): Do not force the thunks into
++	a coalesced section, instead use a thunks section.
++
++	Backport from mainline
++	2016-11-28  Iain Sandoe  <iain at codesourcery.com>
++
++	PR target/71767
++	* configure.ac (with_ld64): Use portable method to extract the
++	major part of the version number.
++	* configure: Regenerated.
++
++	Backport from mainline
++	2016-11-27  Iain Sandoe  <iain at codesourcery.com>
++
++	PR target/71767
++	* configure.ac (with-ld64): New var, set for Darwin, set on
++	detection of ld64, gcc_cv_ld64_export_dynamic: New, New test.
++	* config/darwin.h: Use LD64_HAS_DYNAMIC export. DEF_LD64: New,
++	define.
++	* config/darwin10.h(DEF_LD64): Update for this target version.
++	* config/darwin12.h(LINK_GCC_C_SEQUENCE_SPEC): Remove rdynamic
++	test.  (DEF_LD64): Update for this target version.
++	* configure: Regenerated.
++	* config.in: Regenerated.
++
++	Backport from mainline
++	2016-11-27  Iain Sandoe  <iain at codesourcery.com>
++
++	PR target/71767
++	* config/darwin.c (imachopic_indirection_name): Make data
++	section indirections linker-visible.
++	* config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Make local
++	constant labels linker-visible.
++
++2016-12-09  Thomas Preud'homme  <thomas.preudhomme at arm.com>
++
++	Backport from mainline
++	2016-11-17  Thomas Preud'homme  <thomas.preudhomme at arm.com>
++
++	PR target/77933
++	* config/arm/arm.c (thumb1_expand_prologue): Distinguish between lr
++	being live in the function and lr needing to be saved.  Distinguish
++	between already saved pushable registers and registers to push.
++	Check for LR being an available pushable register.
++
++2016-12-09  Nathan Sidwell  <nathan at acm.org>
++
++	PR C++/78550
++	* convert.c (convert_to_integer_1): Maybe fold conversions to
++	integral types with fewer bits than its mode.
++
++2016-12-09  Richard Biener  <rguenther at suse.de>
++
++	Backport from mainline
++	2016-11-09  Richard Biener  <rguenther at suse.de>
++
++	* tree-vect-data-refs.c (vect_compute_data_ref_alignment):
++	Look at the DR_BASE_ADDRESS object for forcing alignment.
++
++	2016-11-07  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/78189
++	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Fix
++	alignment computation.
++
++2016-12-09  Richard Biener  <rguenther at suse.de>
++
++	Backport from mainline
++	2016-11-28  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/78542
++	* tree-ssa-ccp.c (evaluate_stmt): Only valueize simplification
++	if allowed.
++
++	2016-11-23  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/78482
++	* tree-cfgcleanup.c: Include tree-ssa-loop-niter.h.
++	(remove_forwarder_block_with_phi): When merging with a loop
++	header creates a new latch reset number of iteration information
++	of the loop.
++
++	2016-11-23  Richard Biener  <rguenther at suse.de>
++
++	PR middle-end/71762
++	* match.pd ((~X & Y) -> X < Y, (X & ~Y) -> Y < X,
++	(~X | Y) -> X <= Y, (X | ~Y) -> Y <= X): Remove.
++
++	2016-11-11  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/71575
++	* graphite-isl-ast-to-gimple.c (copy_cond_phi_nodes): Remove
++	bogus assert.
++
++	2016-11-07  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/78224
++	* tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
++	Split the fallthru edge in case its successor may have PHIs.
++
++	2016-11-05  David Edelsohn  <dje.gcc at gmail.com>
++		Richard Biener  <rguenther at suse.de>
++
++	PR bootstrap/78188
++	PR c++/71848
++	* ipa-comdats.c (pass_ipa_comdats::gate): Require HAVE_COMDAT_GROUP.
++
++	2016-09-20  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/77646
++	* tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
++	a VDEF.
++
++2016-12-07  Segher Boessenkool  <segher at kernel.crashing.org>
++
++	Backport from mainline
++	2016-11-12  Segher Boessenkool  <segher at kernel.crashing.org>
++
++	PR target/77957
++	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
++	return early if !optional_tbtab.
++
++2016-12-07  Jakub Jelinek  <jakub at redhat.com>
++
++	Backported from mainline
++	2016-11-28  Jakub Jelinek  <jakub at redhat.com>
++
++	PR middle-end/78540
++	* rtl.h (remove_reg_equal_equiv_notes): Return bool instead of void.
++	* rtlanal.c (remove_reg_equal_equiv_notes): Return true if any
++	note has been removed.
++	* postreload.c (reload_combine_recognize_pattern): If
++	remove_reg_equal_equiv_notes returns true, call df_notes_rescan.
++
++	PR rtl-optimization/78546
++	* simplify-rtx.c (neg_const_int): When negating most negative
++	number in mode wider than HOST_BITS_PER_WIDE_INT, use
++	simplify_const_unary_operation to produce CONST_DOUBLE or
++	CONST_WIDE_INT.
++	(simplify_plus_minus): Hanlde the case where neg_const_int
++	doesn't return a CONST_INT.
++
++	PR fortran/78298
++	* tree-nested.c (convert_local_reference_stmt): After adding
++	shared (FRAME.NN) clause to omp parallel, task or target,
++	add it also to all outer omp parallel, task or target constructs.
++
++	2016-11-23  Jakub Jelinek  <jakub at redhat.com>
++
++	PR middle-end/69183
++	* omp-low.c (build_outer_var_ref): Change lastprivate argument
++	to code, pass it recursively, adjust uses.  For OMP_CLAUSE_PRIVATE
++	on worksharing constructs, treat it like clauses on simd construct.
++	Formatting fix.
++	(lower_rec_input_clauses): For OMP_CLAUSE_PRIVATE_OUTER_REF pass
++	OMP_CLAUSE_PRIVATE as last argument to build_outer_var_ref.
++	(lower_lastprivate_clauses): Pass OMP_CLAUSE_LASTPRIVATE instead
++	of true as last argument to build_outer_var_ref.
++
++	2016-11-22  Jakub Jelinek  <jakub at redhat.com>
++
++	PR middle-end/78416
++	* expmed.c (expand_divmod): Use wide_int for computation of
++	op1_is_pow2.  Don't set it if op1 is 0.  Formatting fixes.
++	Use size <= HOST_BITS_PER_WIDE_INT instead of
++	HOST_BITS_PER_WIDE_INT >= size.
++
++	2016-11-21  Jakub Jelinek  <jakub at redhat.com>
++
++	PR middle-end/67335
++	* omp-simd-clone.c (simd_clone_adjust_argument_types): Use NULL prefix
++	for tmp simd array if DECL_NAME (parm) is NULL.
++
++	2016-11-18  Jakub Jelinek  <jakub at redhat.com>
++
++	PR middle-end/78419
++	* multiple_target.c (get_attr_len): Start with argnum and increment
++	argnum on every arg.  Use strchr in a loop instead of counting commas
++	manually.
++	(get_attr_str): Increment argnum for every comma in the string.
++	(separate_attrs): Use for instead of while loop, simplify.
++	(expand_target_clones): Rename defenition argument to definition.
++	Free attrs and attr_str even when diagnosing errors.  Temporarily
++	change input_location around targetm.target_option.valid_attribute_p
++	calls.  Don't emit warning or errors if that function fails.
++
++	2016-11-16  Jakub Jelinek  <jakub at redhat.com>
++
++	PR rtl-optimization/78378
++	* combine.c (make_extraction): Use force_to_mode for non-{REG,MEM}
++	inner only if pos is 0.  Fix up formatting.
++
++	PR fortran/78299
++	* omp-low.c (expand_omp_for_static_nochunk): Don't assert
++	that loop->header == body_bb if broken_loop.
++
++	2016-11-07  Jakub Jelinek  <jakub at redhat.com>
++
++	PR target/77834
++	* dse.c (dse_step5): Call scan_reads even if just
++	insn_info->frame_read.  Improve and fix dump file messages.
++
++	PR target/78227
++	* config/i386/i386.c (ix86_expand_sse_cmp): Force dest into
++	cmp_mode argument even for -O0 if cmp_mode != mode and maskcmp.
++
++	2016-11-04  Jakub Jelinek  <jakub at redhat.com>
++
++	PR target/77834
++	* alias.c (nonoverlapping_memrefs_p): Return 0 if exprx or expry
++	doesn't have rtl set.
++
++	2016-10-29  Jakub Jelinek  <jakub at redhat.com>
++
++	PR rtl-optimization/77919
++	* expr.c (expand_expr_real_1) <normal_inner_ref>: Only avoid forcing
++	into memory if both modes are complex and their inner modes have the
++	same precision.  If the two modes are different complex modes, convert
++	each part separately and generate a new CONCAT.
++
++	2016-10-28  Jakub Jelinek  <jakub at redhat.com>
++
++	PR rtl-optimization/77919
++	* expr.c (expand_expr_real_1) <normal_inner_ref>: Force CONCAT into
++	MEM if mode1 is not a complex mode.
++
++	2016-10-27  Jakub Jelinek  <jakub at redhat.com>
++
++	PR middle-end/78025
++	* omp-simd-clone.c (simd_clone_adjust): Handle noreturn declare simd
++	functions.
++
++	2016-10-26  Jakub Jelinek  <jakub at redhat.com>
++		    Martin Liska  <mliska at suse.cz>
++
++	PR fortran/77973
++	* gimplify.c (gimplify_adjust_omp_clauses_1): For all added map
++	clauses with OMP_CLAUSE_SIZE being a decl, call omp_notice_variable
++	on outer context if any.
++
++	2016-10-05  Jakub Jelinek  <jakub at redhat.com>
++
++	PR sanitizer/66343
++	* ubsan.c (ubsan_ids): New GTY(()) array.
++	(ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
++	instead of static local counters.
++
++	2016-09-22  Jakub Jelinek  <jakub at redhat.com>
++
++	PR fortran/77665
++	* tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
++	for all IFN_GOMP_SIMD_* internal fns, not just for
++	IFN_GOMP_SIMD_ORDERED_*.
++
++	2016-09-20  Jakub Jelinek  <jakub at redhat.com>
++
++	PR middle-end/77624
++	* builtins.c (fold_builtin_atomic_always_lock_free): Only look through
++	cast to void * if the cast is from some other pointer type.
++
++	2016-09-19  Jakub Jelinek  <jakub at redhat.com>
++		    Jan Hubicka  <jh at suse.cz>
++
++	PR target/77587
++	* cgraph.c (cgraph_node::rtl_info): Pass &avail to
++	ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
++	Call ultimate_alias_target just once, not up to 4 times.
++
++2016-12-07  Thomas Preud'homme  <thomas.preudhomme at arm.com>
++
++	Backport from mainline
++	2016-11-16  Thomas Preud'homme  <thomas.preudhomme at arm.com>
++
++	* config/arm/arm.md (arm_addsi3): Add alternative for addition of
++	general register with general register or ARM constant into SP
++	register.
++
++2016-12-06  Bill Schmidt  <wschmidt at linux.vnet.ibm.com>
++
++	Backport from mainline
++	2016-12-05  Bill Schmidt  <wschmidt at linux.vnet.ibm.com>
++	            Stefan Freudenberger  <stefan at reservoir.com>
++
++	PR tree-optimization/78646
++	* gimple-ssa-strength-reduction.c (replace_ref): The pointer
++	addition used for the memory base expression should have the type
++	of the candidate.
++
++2016-12-06  Bill Schmidt  <wschmidt at linux.vnet.ibm.com>
++
++	Backport from mainline
++	2016-09-01  Bill Schmidt  <wschmidt at linux.vnet.ibm.com>
++	            Michael Meissner  <meissner at linux.vnet.ibm.com>
++
++	PR target/72827
++	* config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
++	reg+reg addressing for TImode.
++	(rs6000_legitimate_address_p): Only allow register indirect
++	addressing for TImode, even without TARGET_QUAD_MEMORY.
++
 +2016-12-02  Andreas Krebbel  <krebbel at linux.vnet.ibm.com>
 +
 +	Backport from mainline
@@ -9618,7 +13360,7 @@ Index: gcc/ChangeLog
  2016-08-22  Release Manager
  
  	* GCC 6.2.0 released.
-@@ -205,9 +1207,9 @@
+@@ -205,9 +1554,9 @@
  
  2016-08-09  Martin Jambor  <mjambor at suse.cz>
  
@@ -9681,6 +13423,109 @@ Index: gcc/testsuite/gcc.target/powerpc/fusion4.c
 +void fusion_float_write (float *p, float f){ p[LARGE] = f; }
 +
 +/* { dg-final { scan-assembler "store fusion, type SF" } } */
+Index: gcc/testsuite/gcc.target/arm/pr77933-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/arm/pr77933-1.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.target/arm/pr77933-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,46 @@
++/* { dg-do run } */
++/* { dg-options "-O2" } */
++
++__attribute__ ((noinline, noclone)) void
++clobber_lr_and_highregs (void)
++{
++  __asm__ volatile ("" : : : "r8", "r9", "lr");
++}
++
++int
++main (void)
++{
++  int ret;
++
++  __asm volatile ("mov\tr4, #0xf4\n\t"
++		  "mov\tr5, #0xf5\n\t"
++		  "mov\tr6, #0xf6\n\t"
++		  "mov\tr7, #0xf7\n\t"
++		  "mov\tr0, #0xf8\n\t"
++		  "mov\tr8, r0\n\t"
++		  "mov\tr0, #0xfa\n\t"
++		  "mov\tr10, r0"
++		  : : : "r0", "r4", "r5", "r6", "r7", "r8", "r10");
++
++  clobber_lr_and_highregs ();
++
++  __asm volatile ("cmp\tr4, #0xf4\n\t"
++		  "bne\tfail\n\t"
++		  "cmp\tr5, #0xf5\n\t"
++		  "bne\tfail\n\t"
++		  "cmp\tr6, #0xf6\n\t"
++		  "bne\tfail\n\t"
++		  "cmp\tr7, #0xf7\n\t"
++		  "bne\tfail\n\t"
++		  "mov\tr0, r8\n\t"
++		  "cmp\tr0, #0xf8\n\t"
++		  "bne\tfail\n\t"
++		  "mov\tr0, r10\n\t"
++		  "cmp\tr0, #0xfa\n\t"
++		  "bne\tfail\n\t"
++		  "mov\t%0, #1\n"
++		  "fail:\n\t"
++		  "sub\tr0, #1"
++		  : "=r" (ret) : :);
++  return ret;
++}
+Index: gcc/testsuite/gcc.target/arm/pr77933-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/arm/pr77933-2.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.target/arm/pr77933-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,47 @@
++/* { dg-do run } */
++/* { dg-skip-if "" { ! { arm_thumb1_ok || arm_thumb2_ok } } } */
++/* { dg-options "-mthumb -O2 -mtpcs-leaf-frame" } */
++
++__attribute__ ((noinline, noclone)) void
++clobber_lr_and_highregs (void)
++{
++  __asm__ volatile ("" : : : "r8", "r9", "lr");
++}
++
++int
++main (void)
++{
++  int ret;
++
++  __asm volatile ("mov\tr4, #0xf4\n\t"
++		  "mov\tr5, #0xf5\n\t"
++		  "mov\tr6, #0xf6\n\t"
++		  "mov\tr7, #0xf7\n\t"
++		  "mov\tr0, #0xf8\n\t"
++		  "mov\tr8, r0\n\t"
++		  "mov\tr0, #0xfa\n\t"
++		  "mov\tr10, r0"
++		  : : : "r0", "r4", "r5", "r6", "r7", "r8", "r10");
++
++  clobber_lr_and_highregs ();
++
++  __asm volatile ("cmp\tr4, #0xf4\n\t"
++		  "bne\tfail\n\t"
++		  "cmp\tr5, #0xf5\n\t"
++		  "bne\tfail\n\t"
++		  "cmp\tr6, #0xf6\n\t"
++		  "bne\tfail\n\t"
++		  "cmp\tr7, #0xf7\n\t"
++		  "bne\tfail\n\t"
++		  "mov\tr0, r8\n\t"
++		  "cmp\tr0, #0xf8\n\t"
++		  "bne\tfail\n\t"
++		  "mov\tr0, r10\n\t"
++		  "cmp\tr0, #0xfa\n\t"
++		  "bne\tfail\n\t"
++		  "mov\t%0, #1\n"
++		  "fail:\n\t"
++		  "sub\tr0, #1"
++		  : "=r" (ret) : :);
++  return ret;
++}
 Index: gcc/testsuite/gcc.target/arm/pr48863.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/arm/pr48863.c	(.../tags/gcc_6_2_0_release)
@@ -9721,6 +13566,23 @@ Index: gcc/testsuite/gcc.target/arm/pr48863.c
 +    __builtin_abort ();
 +  return 0;
 +}
+Index: gcc/testsuite/gcc.target/arm/empty_fiq_handler.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/arm/empty_fiq_handler.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.target/arm/empty_fiq_handler.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,12 @@
++/* { dg-do compile } */
++/* { dg-skip-if "" { ! arm_cortex_m } { "-mthumb" } } */
++
++/* Below code used to trigger an ICE due to missing constraints for
++   sp = fp + cst pattern.  */
++
++void fiq_handler (void) __attribute__((interrupt ("FIQ")));
++
++void
++fiq_handler (void)
++{
++}
 Index: gcc/testsuite/gcc.target/avr/torture/pr77326.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/avr/torture/pr77326.c	(.../tags/gcc_6_2_0_release)
@@ -10971,6 +14833,41 @@ Index: gcc/testsuite/gcc.target/i386/bmi-6.c
  /* { dg-options "-O2 -mbmi" } */
  
  #include <x86intrin.h>
+Index: gcc/testsuite/gcc.target/i386/pr78227-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/pr78227-1.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/pr78227-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,30 @@
++/* PR target/78227 */
++/* { dg-do compile } */
++/* { dg-options "-mavx512f -O0 -Wno-psabi" } */
++
++typedef int V __attribute__((vector_size (64)));
++typedef long long int W __attribute__((vector_size (64)));
++
++V
++foo1 (V v)
++{
++  return v > 0;
++}
++
++V
++bar1 (V v)
++{
++  return v != 0;
++}
++
++W
++foo2 (W w)
++{
++  return w > 0;
++}
++
++W
++bar2 (W w)
++{
++  return w != 0;
++}
 Index: gcc/testsuite/gcc.target/i386/sse-12.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/i386/sse-12.c	(.../tags/gcc_6_2_0_release)
@@ -11012,6 +14909,41 @@ Index: gcc/testsuite/gcc.target/i386/pr65105-5.c
  /* { dg-final { scan-assembler "pandn" } } */
  /* { dg-final { scan-assembler "pxor" } } */
  /* { dg-final { scan-assembler "ptest" } } */
+Index: gcc/testsuite/gcc.target/i386/pr78227-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/pr78227-2.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/pr78227-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,30 @@
++/* PR target/78227 */
++/* { dg-do compile } */
++/* { dg-options "-mavx512bw -O0 -Wno-psabi" } */
++
++typedef signed char V __attribute__((vector_size (64)));
++typedef short int W __attribute__((vector_size (64)));
++
++V
++foo1 (V v)
++{
++  return v > 0;
++}
++
++V
++bar1 (V v)
++{
++  return v != 0;
++}
++
++W
++foo2 (W w)
++{
++  return w > 0;
++}
++
++W
++bar2 (W w)
++{
++  return w != 0;
++}
 Index: gcc/testsuite/gcc.target/i386/pr67761.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/i386/pr67761.c	(.../tags/gcc_6_2_0_release)
@@ -11024,6 +14956,34 @@ Index: gcc/testsuite/gcc.target/i386/pr67761.c
  /* { dg-final { scan-assembler "paddq" } } */
  
  void
+Index: gcc/testsuite/gcc.target/i386/pr78419.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/pr78419.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.target/i386/pr78419.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,23 @@
++/* PR middle-end/78419 */
++/* { dg-do compile } */
++
++static double bar (double *__restrict, double *__restrict, int)
++__attribute__ ((target_clones("avx,foo,avx2,avx512f,default")));
++
++double
++foo (double *__restrict a, double *__restrict b, int n)
++{
++  return bar (a,b,n);
++}
++
++double
++bar (double *__restrict a, double *__restrict b, int n)	/* { dg-error "attribute\[^\n\r]*foo\[^\n\r]* is unknown" } */
++{
++  double s;
++  int i;
++  s = 0.0;
++  for (i=0; i<n; i++)
++    s += a[i] + b[i];
++
++  return s;
++}
 Index: gcc/testsuite/gcc.target/i386/pr77377.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.target/i386/pr77377.c	(.../tags/gcc_6_2_0_release)
@@ -11144,6 +15104,31 @@ Index: gcc/testsuite/lib/target-supports.exp
  	set ld_output [remote_exec host "$gcc_ld" "--help"]
  	if { [ string first "--gc-sections" $ld_output ] >= 0 } {
  	    set gc_sections_available_saved 1
+@@ -6519,9 +6517,9 @@
+ # Return 1 if the language for the compiler under test is C.
+ 
+ proc check_effective_target_c { } {
+- global tool
++    global tool
+     if [string match $tool "gcc"] {
+-   return 1
++	return 1
+     }
+  return 0
+ }
+@@ -6529,9 +6527,9 @@
+ # Return 1 if the language for the compiler under test is C++.
+ 
+ proc check_effective_target_c++ { } {
+- global tool
+-    if [string match $tool "g++"] {
+-   return 1
++    global tool
++    if { [string match $tool "g++"] || [string match $tool "libstdc++"] } {
++	return 1
+     }
+  return 0
+ }
 Index: gcc/testsuite/gfortran.dg/pr77420_1.f90
 ===================================================================
 --- a/src/gcc/testsuite/gfortran.dg/pr77420_1.f90	(.../tags/gcc_6_2_0_release)
@@ -11274,6 +15259,132 @@ Index: gcc/testsuite/gfortran.dg/gomp/pr77374.f08
 +!$omp atomic
 +  baz (i) = 1		! { dg-error "unexpected" }
 +end subroutine
+Index: gcc/testsuite/gfortran.dg/gomp/pr69183.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/gomp/pr69183.f90	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/gomp/pr69183.f90	(.../branches/gcc-6-branch)
+@@ -0,0 +1,11 @@
++! PR middle-end/69183
++! { dg-do compile }
++
++program pr69183
++  integer, allocatable :: z
++  integer :: i
++  !$omp do private(z)
++  do i = 1, 2
++    z = i
++  end do
++end
+Index: gcc/testsuite/gfortran.dg/gomp/pr78298.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/gomp/pr78298.f90	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/gomp/pr78298.f90	(.../branches/gcc-6-branch)
+@@ -0,0 +1,28 @@
++! PR fortran/78298
++! { dg-do compile }
++! { dg-additional-options "-O2" }
++
++program pr78298
++  integer :: i, j, n
++  n = 2
++  !$omp parallel
++  !$omp do
++  do i = 1, n
++    !$omp parallel
++    !$omp do
++    do j = 1, n
++      call sub(i)
++    end do
++    !$omp end parallel
++  end do
++  !$omp end parallel
++  !call unused()
++contains
++  subroutine sub(x)
++    integer :: x
++  end
++  subroutine unused()
++    i = 0
++    j = 0
++  end
++end
+Index: gcc/testsuite/gfortran.dg/gomp/pr78299.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/gomp/pr78299.f90	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/gomp/pr78299.f90	(.../branches/gcc-6-branch)
+@@ -0,0 +1,55 @@
++! PR fortran/78299
++! { dg-do compile }
++! { dg-additional-options "-fcheck=bounds" }
++
++program pr78299
++  integer, parameter :: n = 8
++  integer :: i, j
++  real :: x(n), y(n)
++  x = 1.0
++  y = 2.0
++  do j = 1, 9
++    !$omp parallel workshare
++    !$omp parallel default(shared)
++    !$omp do
++    do i = 1, n
++      x(i) = x(i) * y(9)		! { dg-warning "is out of bounds" }
++    end do
++    !$omp end do
++    !$omp end parallel
++    !$omp end parallel workshare
++  end do
++  do j = 1, 9
++    !$omp parallel workshare
++    !$omp parallel default(shared)
++    !$omp do schedule(static)
++    do i = 1, n
++      x(i) = x(i) * y(9)		! { dg-warning "is out of bounds" }
++    end do
++    !$omp end do
++    !$omp end parallel
++    !$omp end parallel workshare
++  end do
++  do j = 1, 9
++    !$omp parallel workshare
++    !$omp parallel default(shared)
++    !$omp do schedule(static, 2)
++    do i = 1, n
++      x(i) = x(i) * y(9)		! { dg-warning "is out of bounds" }
++    end do
++    !$omp end do
++    !$omp end parallel
++    !$omp end parallel workshare
++  end do
++  do j = 1, 9
++    !$omp parallel workshare
++    !$omp parallel default(shared)
++    !$omp do schedule(dynamic, 3)
++    do i = 1, n
++      x(i) = x(i) * y(9)		! { dg-warning "is out of bounds" }
++    end do
++    !$omp end do
++    !$omp end parallel
++    !$omp end parallel workshare
++  end do
++end
+Index: gcc/testsuite/gfortran.dg/gomp/pr77973.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/gomp/pr77973.f90	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/gomp/pr77973.f90	(.../branches/gcc-6-branch)
+@@ -0,0 +1,12 @@
++! PR fortran/77973
++! { dg-do compile }
++
++subroutine s(x)
++  integer :: x(:)
++  integer :: i
++!$omp parallel
++!$omp target
++  x(1) = 1
++!$omp end target
++!$omp end parallel
++end
 Index: gcc/testsuite/gfortran.dg/gomp/pr77500.f90
 ===================================================================
 --- a/src/gcc/testsuite/gfortran.dg/gomp/pr77500.f90	(.../tags/gcc_6_2_0_release)
@@ -11356,6 +15467,60 @@ Index: gcc/testsuite/gfortran.dg/gomp/pr69281.f90
 +    integer, dimension(:,:), intent(in) :: a
 +  end subroutine
 +end program
+Index: gcc/testsuite/gfortran.dg/gomp/pr77665.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/gomp/pr77665.f90	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/gomp/pr77665.f90	(.../branches/gcc-6-branch)
+@@ -0,0 +1,18 @@
++! PR fortran/77665
++! { dg-do compile }
++! { dg-additional-options "-O2" }
++
++program pr77665
++  type t
++    integer :: a = 0
++  end type
++  type(t) :: x
++  integer :: i
++  !$omp declare reduction (+:t: omp_out%a = omp_out%a + omp_in%a)
++  !$omp simd reduction(+:x)
++  do i = 1, 8
++    if (abs(i) < 5) call abort
++    x%a = x%a + 1
++  end do
++  print *, x%a
++end
+Index: gcc/testsuite/gfortran.dg/gomp/pr77666.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/gomp/pr77666.f90	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/gomp/pr77666.f90	(.../branches/gcc-6-branch)
+@@ -0,0 +1,26 @@
++! PR fortran/77666
++! { dg-do compile }
++
++subroutine foo(x)
++  interface
++    subroutine baz(x, y)
++      integer, allocatable :: x(:), y
++    end subroutine
++  end interface
++  integer, allocatable :: x(:), y
++!$omp parallel private(x, y)
++  call baz (x, y)
++!$omp end parallel
++end
++subroutine bar
++  interface
++    subroutine baz(x, y)
++      integer, allocatable :: x(:), y
++    end subroutine
++  end interface
++  integer, allocatable :: x(:), y
++  call baz (x, y)
++!$omp parallel private(x, y)
++  call baz (x, y)
++!$omp end parallel
++end
 Index: gcc/testsuite/gfortran.dg/gomp/udr5.f90
 ===================================================================
 --- a/src/gcc/testsuite/gfortran.dg/gomp/udr5.f90	(.../tags/gcc_6_2_0_release)
@@ -11714,6 +15879,99 @@ Index: gcc/testsuite/gfortran.dg/pr77460.f90
 +  print*, sum((/x,-x,1d0/))
 +  print*, sum((/1d0,x,-x/))
 +end
+Index: gcc/testsuite/gfortran.dg/typebound_proc_35.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/typebound_proc_35.f90	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/typebound_proc_35.f90	(.../branches/gcc-6-branch)
+@@ -0,0 +1,88 @@
++! { dg-do run }
++!
++! PR 78443: [OOP] Incorrect behavior with non_overridable keyword
++!
++! Contributed by federico <perini at wisc.edu>
++
++module types
++    implicit none
++
++
++    ! Abstract parent class and its child type
++    type, abstract :: P1
++    contains
++        procedure :: test => test1
++        procedure (square_interface), deferred :: square
++    endtype
++
++    ! Deferred procedure interface
++    abstract interface
++        function square_interface( this, x ) result( y )
++           import P1
++           class(P1) :: this
++           real :: x, y
++        end function square_interface
++    end interface
++
++    type, extends(P1) :: C1
++    contains
++       procedure, non_overridable :: square => C1_square
++    endtype
++
++    ! Non-abstract parent class and its child type
++    type :: P2
++    contains
++        procedure :: test => test2
++        procedure :: square => P2_square
++    endtype
++
++    type, extends(P2) :: C2
++    contains
++       procedure, non_overridable :: square => C2_square
++    endtype
++
++contains
++
++    real function test1( this, x )
++        class(P1) :: this
++        real :: x
++        test1 = this % square( x )
++    end function
++
++    real function test2( this, x )
++        class(P2) :: this
++        real :: x
++        test2 = this % square( x )
++    end function
++
++    function P2_square( this, x ) result( y )
++       class(P2) :: this
++       real :: x, y
++       y = -100.      ! dummy
++    end function
++
++    function C1_square( this, x ) result( y )
++       class(C1) :: this
++       real :: x, y
++       y = x**2
++    end function
++
++    function C2_square( this, x ) result( y )
++       class(C2) :: this
++       real :: x, y
++       y = x**2
++    end function
++
++end module
++
++program main
++    use types
++    implicit none
++    type(P2) :: t1
++    type(C2) :: t2
++    type(C1) :: t3
++
++    if ( t1 % test( 2. ) /= -100.) call abort()
++    if ( t2 % test( 2. ) /= 4.) call abort()
++    if ( t3 % test( 2. ) /= 4.) call abort()
++end program
 Index: gcc/testsuite/gfortran.dg/pr78279.f90
 ===================================================================
 --- a/src/gcc/testsuite/gfortran.dg/pr78279.f90	(.../tags/gcc_6_2_0_release)
@@ -13052,6 +17310,21 @@ Index: gcc/testsuite/gfortran.dg/string_length_3.f90
 +  END FUNCTION mylen
 +END PROGRAM test_o_char
 +! { dg-final { scan-tree-dump-times "__var" 0 "original" } }
+Index: gcc/testsuite/gfortran.dg/derived_result.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/derived_result.f90	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gfortran.dg/derived_result.f90	(.../branches/gcc-6-branch)
+@@ -0,0 +1,10 @@
++! { dg-do compile }
++!
++! PR 78593: [6/7 Regression] ICE in gfc_match_varspec, at fortran/primary.c:2053
++!
++! Contributed by Gerhard Steinmetz <gerhard.steinmetz.fortran at t-online.de>
++
++type(t) function add (x, y)    ! { dg-error "is not accessible" }
++  integer, intent(in) :: x, y
++  add%a = x + y                ! { dg-error "Unclassifiable statement" }
++end
 Index: gcc/testsuite/gfortran.dg/pr69867.f90
 ===================================================================
 --- a/src/gcc/testsuite/gfortran.dg/pr69867.f90	(.../tags/gcc_6_2_0_release)
@@ -13325,6 +17598,29 @@ Index: gcc/testsuite/gcc.c-torture/execute/pr71700.c
 +    __builtin_abort ();
 +  return 0;
 +}
+Index: gcc/testsuite/gcc.c-torture/execute/pr78378.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.c-torture/execute/pr78378.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.c-torture/execute/pr78378.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,18 @@
++/* PR rtl-optimization/78378 */
++
++unsigned long long __attribute__ ((noinline, noclone))
++foo (unsigned long long x)
++{
++  x <<= 41;
++  x /= 232;
++  return 1 + (unsigned short) x;
++}
++
++int
++main ()
++{
++  unsigned long long x = foo (1);
++  if (x != 0x2c24)
++    __builtin_abort();
++  return 0;
++}
 Index: gcc/testsuite/gcc.c-torture/unsorted/dump-noaddr.x
 ===================================================================
 --- a/src/gcc/testsuite/gcc.c-torture/unsorted/dump-noaddr.x	(.../tags/gcc_6_2_0_release)
@@ -13683,6 +17979,24 @@ Index: gcc/testsuite/gnat.dg/inline13.ads
 +  function F (L : Arr) return String;
 +
 +end Inline13;
+Index: gcc/testsuite/gcc.dg/darwin-minversion-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/darwin-minversion-2.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/darwin-minversion-2.c	(.../branches/gcc-6-branch)
+@@ -1,11 +1,11 @@
+ /* Basic test for -mmacosx-version-min switch on Darwin.  */
+-/* { dg-options "-mmacosx-version-min=10.1 -mmacosx-version-min=10.3" } */
++/* { dg-options "-mmacosx-version-min=10.1 -mmacosx-version-min=10.5" } */
+ /* { dg-do run { target *-*-darwin* } } */
+ 
+ int
+ main ()
+ {
+-#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 1030
++#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 1050
+   fail me;
+ #endif
+   return 0;
 Index: gcc/testsuite/gcc.dg/Woverride-init-2.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/Woverride-init-2.c	(.../tags/gcc_6_2_0_release)
@@ -13743,6 +18057,34 @@ Index: gcc/testsuite/gcc.dg/pr77621.c
 +  for (i = 0; i < 8; i++)
 +    x[i] -= y[i] * x[i + 1];
 +}
+Index: gcc/testsuite/gcc.dg/pr57438-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/pr57438-2.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/pr57438-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,23 @@
++/* { dg-do compile { target *-*-darwin* } } */
++/* { dg-options "--param case-values-threshold=3 -O2" } */
++/* { dg-additional-options "-funwind-tables" { target powerpc*-*-darwin* } }
++
++/* This is testing that a trailing local label is followed by a
++   nop where required.  */
++
++int foo (int x)
++{
++  switch (x)
++    {
++      case 0:
++        return 10;
++      case 3:
++        return -1;
++      case 5:
++        return 29;
++      default:
++        __builtin_unreachable();
++    }
++}
++
++/* { dg-final { scan-assembler "nop\\nLFE.*" { target  { *-*-darwin* } } } } */
 Index: gcc/testsuite/gcc.dg/pr76783.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/pr76783.c	(.../tags/gcc_6_2_0_release)
@@ -13776,6 +18118,24 @@ Index: gcc/testsuite/gcc.dg/pr76783.c
 +    __builtin_abort();
 +  return 0;
 +}
+Index: gcc/testsuite/gcc.dg/darwin-minversion-3.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/darwin-minversion-3.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/darwin-minversion-3.c	(.../branches/gcc-6-branch)
+@@ -1,11 +1,11 @@
+ /* Test that most minor versions less than 10 work.  */
+-/* { dg-options "-mmacosx-version-min=10.4.1" } */
++/* { dg-options "-mmacosx-version-min=10.5.8" } */
+ /* { dg-do compile { target *-*-darwin* } } */
+ 
+ int
+ main ()
+ {
+-#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 1041
++#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 1058
+   fail me;
+ #endif
+   return 0;
 Index: gcc/testsuite/gcc.dg/pr70955.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/pr70955.c	(.../tags/gcc_6_2_0_release)
@@ -13844,6 +18204,157 @@ Index: gcc/testsuite/gcc.dg/pr78333.c
 +  foo ();
 +  return 0;
 +}
+Index: gcc/testsuite/gcc.dg/pr78540.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/pr78540.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/pr78540.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,27 @@
++/* PR middle-end/78540 */
++/* { dg-do compile { target int128 } } */
++/* { dg-options "-O2 -Wno-psabi" } */
++/* { dg-additional-options "-march=core2" { target i?86-*-* x86_64-*-* } } */
++
++typedef unsigned __int128 V __attribute__ ((vector_size (64)));
++V g;
++
++static inline V
++foo (V a)
++{
++  V b, c;
++  c[0] = 0;
++  a += 2281559097;
++  c ^= 0;
++  b[0] = 0;
++  return 1 + c + b + a;
++}
++
++V
++bar ()
++{
++  V a = g, b = g;
++  a[1] ^= 1;
++  b[foo (a)[0] & 3] |= 1;
++  return b;
++}
+Index: gcc/testsuite/gcc.dg/graphite/pr71575-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/graphite/pr71575-1.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/graphite/pr71575-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,22 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -floop-nest-optimize" } */
++
++void w(int x, double *y)
++{
++  int i, j;
++  double a;
++  double c[32];
++
++  for (i = 0; i < x; i++) {
++      for (j = 0; j < x - i; j++) {
++	  c[j] = y[i];
++      }
++      y[i] = a;
++      a += c[0] + y[i];
++  }
++}
++
++void v(int x, double *y)
++{
++  w(x, y);
++}
+Index: gcc/testsuite/gcc.dg/graphite/pr71575-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/graphite/pr71575-2.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/graphite/pr71575-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,16 @@
++/* { dg-do compile } */
++/* { dg-options "-Ofast -floop-nest-optimize" } */
++
++int *a;
++int b, c, d, e, g;
++char f;
++
++void fn1() {
++    for (; c;) {
++	b = 0;
++	for (; b <= 2; b++) {
++	    unsigned **h = (unsigned **) &a[b];
++	    *h = (unsigned *)(__UINTPTR_TYPE__)((g && (e = d)) != f++);
++	}
++    }
++}
+Index: gcc/testsuite/gcc.dg/const-uniq-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/const-uniq-1.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/const-uniq-1.c	(.../branches/gcc-6-branch)
+@@ -20,4 +20,4 @@
+   return a[i+1];
+ }
+ 
+-/* { dg-final { scan-tree-dump-times "L\\\$?C\\\.*0" 2 "gimple" } } */
++/* { dg-final { scan-tree-dump-times "\[lL\]\\\$?C\\\.*0" 2 "gimple" } } */
+Index: gcc/testsuite/gcc.dg/pch/pr66343-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/pch/pr66343-2.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/pch/pr66343-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,10 @@
++/* PR sanitizer/66343 */
++/* { dg-options "-fsanitize=undefined" } */
++
++#include "pr66343-2.h"
++
++void
++bar (int a, int b)
++{
++  a / b;
++}
+Index: gcc/testsuite/gcc.dg/pch/pr66343-2.hs
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/pch/pr66343-2.hs	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/pch/pr66343-2.hs	(.../branches/gcc-6-branch)
+@@ -0,0 +1,8 @@
++/* PR sanitizer/66343 */
++/* { dg-options "-fsanitize=undefined" } */
++
++void
++foo (int a, int b)
++{
++  a / b;
++}
+Index: gcc/testsuite/gcc.dg/pch/pr66343-1.hs
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/pch/pr66343-1.hs	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/pch/pr66343-1.hs	(.../branches/gcc-6-branch)
+@@ -0,0 +1,8 @@
++/* PR sanitizer/66343 */
++/* { dg-options "-fsanitize=undefined" } */
++
++void
++foo (int a, int b)
++{
++  a / b;
++}
+Index: gcc/testsuite/gcc.dg/pch/pr66343-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/pch/pr66343-1.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/pch/pr66343-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,15 @@
++/* PR sanitizer/66343 */
++/* { dg-do assemble } */
++/* { dg-options "-fsanitize=undefined" } */
++
++#include "pr66343-1.h"
++
++void
++bar (int a, int b)
++{
++  a / b;
++}
++
++/* Hack to turn off PCH assembly comparison, as it is incompatible
++   with dg-do assemble.  The target condition will be always false.  */
++/* { dg-error "" "" { target { lp64 && { ! lp64 } } } } */
 Index: gcc/testsuite/gcc.dg/init-excess-2.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/init-excess-2.c	(.../tags/gcc_6_2_0_release)
@@ -14006,6 +18517,28 @@ Index: gcc/testsuite/gcc.dg/torture/pr77916.c
 +  for (; b; b++, a++)
 +    a->f1 = b;
 +}
+Index: gcc/testsuite/gcc.dg/torture/pr71762-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr71762-2.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr71762-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,17 @@
++/* { dg-do run } */
++
++static _Bool
++foo (_Bool a, _Bool b)
++{
++  int x = a && ! b;
++  return x != 0;
++}
++
++int y = 1;
++int main()
++{
++  _Bool x[32];
++  if (foo (x[1], y))
++    __builtin_abort ();
++  return 0;
++}
 Index: gcc/testsuite/gcc.dg/torture/pr77478.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/torture/pr77478.c	(.../tags/gcc_6_2_0_release)
@@ -14033,6 +18566,33 @@ Index: gcc/testsuite/gcc.dg/torture/pr77478.c
 +  float a[21] = {0};
 +  return foo(a+1, 20) + foo(a, 20);
 +}
+Index: gcc/testsuite/gcc.dg/torture/pr71762-3.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr71762-3.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr71762-3.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,22 @@
++/* { dg-do run } */
++
++static _Bool
++foo (_Bool a, _Bool b)
++{
++  int x = a && ! b;
++  return x != 0;
++}
++
++int y = 1;
++int main()
++{
++  register _Bool x
++  /* Add register spec for the argv parameter to main.  */
++#if __i386__ || __x86_64__
++      __asm__("%esi")
++#endif
++    ;
++  if (foo (x, y))
++    __builtin_abort ();
++  return 0;
++}
 Index: gcc/testsuite/gcc.dg/torture/pr72851.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/torture/pr72851.c	(.../tags/gcc_6_2_0_release)
@@ -14174,6 +18734,33 @@ Index: gcc/testsuite/gcc.dg/torture/pr77839.c
 +	}
 +    }
 +}
+Index: gcc/testsuite/gcc.dg/torture/pr78546-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr78546-1.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr78546-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,22 @@
++/* PR rtl-optimization/78546 */
++/* { dg-do run { target int128 } } */
++
++typedef unsigned __int128 u128;
++u128 b;
++
++static inline u128
++foo (u128 p1)
++{
++  p1 += ~b;
++  return -p1;
++}
++
++int
++main ()
++{
++  asm volatile ("" : : : "memory");
++  u128 x = foo (~0x7fffffffffffffffLL);
++  if (x != 0x8000000000000001ULL)
++    __builtin_abort ();
++  return 0;
++}
 Index: gcc/testsuite/gcc.dg/torture/pr77768.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/torture/pr77768.c	(.../tags/gcc_6_2_0_release)
@@ -14218,6 +18805,27 @@ Index: gcc/testsuite/gcc.dg/torture/pr77514.c
 +      rs = &e8;
 +    }
 +}
+Index: gcc/testsuite/gcc.dg/torture/pr78546-2.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr78546-2.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr78546-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,16 @@
++/* PR rtl-optimization/78546 */
++/* { dg-do run { target int128 } } */
++
++typedef unsigned __int128 u128;
++u128 b;
++
++int
++main ()
++{
++  asm volatile ("" : : : "memory");
++  u128 x = ((u128) ~0x7fffffffffffffffLL) - b;
++  u128 y = 1 - x;
++  if (y != 0x8000000000000001ULL)
++    __builtin_abort ();
++  return 0;
++}
 Index: gcc/testsuite/gcc.dg/torture/pr77605.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/torture/pr77605.c	(.../tags/gcc_6_2_0_release)
@@ -14238,6 +18846,28 @@ Index: gcc/testsuite/gcc.dg/torture/pr77605.c
 +
 +  return 0; 
 +}
+Index: gcc/testsuite/gcc.dg/torture/pr78416.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr78416.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr78416.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,17 @@
++/* PR middle-end/78416 */
++/* { dg-do run { target int128 } } */
++
++int
++main ()
++{
++  unsigned __int128 x;
++  x = 0xFFFFFFFFFFFFFFFFULL;
++  x /= ~0x7FFFFFFFFFFFFFFFLL;
++  if (x != 0)
++    __builtin_abort ();
++  x = ~0x7FFFFFFFFFFFFFFELL;
++  x /= ~0x7FFFFFFFFFFFFFFFLL;
++  if (x != 1)
++    __builtin_abort ();
++  return 0;
++}
 Index: gcc/testsuite/gcc.dg/torture/pr77648-1.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/torture/pr77648-1.c	(.../tags/gcc_6_2_0_release)
@@ -14310,6 +18940,48 @@ Index: gcc/testsuite/gcc.dg/torture/pr77648-2.c
 +    __builtin_abort ();
 +  return 0;
 +}
+Index: gcc/testsuite/gcc.dg/torture/darwin-cfstring-3.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/darwin-cfstring-3.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/darwin-cfstring-3.c	(.../branches/gcc-6-branch)
+@@ -24,7 +24,7 @@
+   s0 = s1;
+ }
+ 
+-/* { dg-final { scan-assembler "\\.long\[ \\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[ \\t\]*\\.long\[ \\t\]+LC.*\n\[ \\t\]*\\.long\[ \\t\]+4\n" { target { *-*-darwin* && { ! lp64 } } } } } */
+-/* { dg-final { scan-assembler "\\.long\[ \\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[ \\t\]*\\.long\[ \\t\]+LC.*\n\[ \\t\]*\\.long\[ \\t\]+10\n" { target { *-*-darwin* && { ! lp64 } } } } } */
++/* { dg-final { scan-assembler "\\.long\[ \\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[ \\t\]*\\.long\[ \\t\]+\[lL\]C.*\n\[ \\t\]*\\.long\[ \\t\]+4\n" { target { *-*-darwin* && { ! lp64 } } } } } */
++/* { dg-final { scan-assembler "\\.long\[ \\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[ \\t\]*\\.long\[ \\t\]+\[lL\]C.*\n\[ \\t\]*\\.long\[ \\t\]+10\n" { target { *-*-darwin* && { ! lp64 } } } } } */
+ /* { dg-final { scan-assembler ".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space 4\n\t.quad\t.*\n\t.quad\t4\n" { target { *-*-darwin* && {  lp64 } } } } } */
+ /* { dg-final { scan-assembler ".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space 4\n\t.quad\t.*\n\t.quad\t10\n" { target { *-*-darwin* && {  lp64 } } } } } */
+Index: gcc/testsuite/gcc.dg/torture/pr78542.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr78542.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr78542.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,23 @@
++/* { dg-do run } */
++/* { dg-additional-options "-w -Wno-psabi" } */
++
++typedef unsigned V __attribute__ ((vector_size (16)));
++
++V
++foo (unsigned x, V v)
++{
++  do {
++      v %= x;
++      x = 1;
++  } while (v[1]);
++  return v;
++}
++
++int
++main ()
++{
++  V x = foo (5, (V) { 0, 1 });
++  if (x[0] || x[1] || x[2] || x[3])
++    __builtin_abort();
++  return 0;
++}
 Index: gcc/testsuite/gcc.dg/torture/pr77937-1.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/torture/pr77937-1.c	(.../tags/gcc_6_2_0_release)
@@ -14353,6 +19025,106 @@ Index: gcc/testsuite/gcc.dg/torture/pr77937-2.c
 +    d[5] = fn3(d[5] * b + c >> a);
 +  }
 +}
+Index: gcc/testsuite/gcc.dg/torture/pr77646.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr77646.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr77646.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,21 @@
++/* { dg-do compile } */
++
++struct e {
++    int (*f)();
++    void (*g)();
++} * c;
++int a;
++void *h();
++typedef struct { struct e j; } k;
++int l() { return a; }
++const struct e b = {l};
++void m()
++{
++  k *d = h();
++  d->j = b;
++  c = (struct e *)d;
++  struct e *i = c;
++  if (i->f(c))
++    while (i->f(c))
++      i->g();
++}
+Index: gcc/testsuite/gcc.dg/torture/pr78482.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr78482.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr78482.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,46 @@
++/* PR tree-optimization/78482 */
++/* { dg-do run } */
++
++short a = 65531;
++int b = 3, f;
++signed char c, d;
++static void fn1(int p1)
++{
++  short e;
++  b = f;
++  if (f > p1 && p1)
++    L:
++	for (e = 0; 0;)
++	  ;
++  else if (d) b = 0 >= b;
++  for (; e <= 3; e++)
++    {
++      if (b)
++	continue;
++      b = 3;
++      goto L;
++    }
++}
++
++__attribute__((noinline, noclone))
++int bar (const char *x, int y)
++{
++  asm volatile ("" : "+g" (x), "+g" (y) : : "memory");
++  if (y == 2)
++    __builtin_abort ();
++  return 0;
++}
++
++int main()
++{
++  for (; c >= 0; c--)
++    {
++      if (!b)
++	{
++	  bar("%d\n", 2);
++	  continue;
++	}
++      fn1(a);
++    }
++  return 0;
++}
+Index: gcc/testsuite/gcc.dg/torture/pr71762-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr71762-1.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr71762-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,18 @@
++/* { dg-do run } */
++/* { dg-additional-options "-fdisable-rtl-init-regs" } */
++
++static _Bool
++foo (_Bool a, _Bool b)
++{
++  int x = a && ! b;
++  return x != 0;
++}
++
++int y = 1;
++int main()
++{
++  _Bool x;
++  if (foo (x, y))
++    __builtin_abort ();
++  return 0;
++}
 Index: gcc/testsuite/gcc.dg/dg-test-1.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/dg-test-1.c	(.../tags/gcc_6_2_0_release)
@@ -14376,6 +19148,29 @@ Index: gcc/testsuite/gcc.dg/dg-test-1.c
 +bar (int e, int f, int g, int h)/* { dg-warning "unused parameter 'g'" "warn3" { target *-*-* } . } */
 +{				/* { dg-warning "unused parameter 'h'" "warn4" { target *-*-* } .-1 } */
 +}
+Index: gcc/testsuite/gcc.dg/pr77834.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/pr77834.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/pr77834.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,18 @@
++/* PR target/77834 */
++/* { dg-do compile } */
++/* { dg-options "-O -ftree-pre -Wno-psabi" } */
++/* { dg-additional-options "-mstringop-strategy=libcall" { target i?86-*-* x86_64-*-* } } */
++
++typedef int V __attribute__ ((vector_size (64)));
++
++V
++foo (V u, V v, int w)
++{
++  do
++    {
++      if (u[0]) v ^= u[w];
++    }
++  while ((V) { 0, u[w] }[1]);
++  u = (V) { v[v[0]], u[u[0]] };
++  return v + u;
++}
 Index: gcc/testsuite/gcc.dg/tree-ssa/phi-opt-15.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-15.c	(.../tags/gcc_6_2_0_release)
@@ -14487,6 +19282,20 @@ Index: gcc/testsuite/gcc.dg/tree-ssa/prefetch-8.c
 -/* { dg-final { scan-assembler "movnti" } } */
 -/* { dg-final { scan-assembler-times "mfence" 1 } } */
 -
+Index: gcc/testsuite/gcc.dg/tree-ssa/forwprop-28.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/tree-ssa/forwprop-28.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/forwprop-28.c	(.../branches/gcc-6-branch)
+@@ -83,6 +83,8 @@
+    to a ordered compare.  But the transform does not trigger if we transform
+    the negated code == 22 compare to code != 22 first.  It turns out if
+    we do that we even generate better code on x86 at least.  */
++/* ???  As PR71762 notices this transform causes wrong-code issues in RTL
++   with one uninitialized operand, thus it has been disabled.  */
+ 
+-/* { dg-final { scan-tree-dump-times "simplified to if \\\(\[^ ]* <" 4 "forwprop1"} } */
++/* { dg-final { scan-tree-dump-times "simplified to if \\\(\[^ ]* <" 4 "forwprop1" { xfail *-*-* } } } */
+ 
 Index: gcc/testsuite/gcc.dg/tree-ssa/prefetch-3.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/tree-ssa/prefetch-3.c	(.../tags/gcc_6_2_0_release)
@@ -14571,6 +19380,52 @@ Index: gcc/testsuite/gcc.dg/tree-ssa/prefetch-9.c
 -/* { dg-final { scan-assembler "movnti" } } */
 -/* { dg-final { scan-assembler-times "mfence" 1 } } */
 -
+Index: gcc/testsuite/gcc.dg/pr77587a.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/pr77587a.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/pr77587a.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,23 @@
++/* PR target/77587 */
++/* { dg-do compile } */
++/* { dg-require-weak-override "" } */
++
++void
++foo (long x, long y, long z)
++{
++}
++
++void bar (long x, long y, long z) __attribute__ ((weak, alias ("foo")));
++
++void
++baz (long x, long y, long z)
++{
++  bar (0, 0, 0);
++}
++
++int
++main ()
++{
++  baz (0, 0, 0);
++  return 0;
++}
+Index: gcc/testsuite/gcc.dg/darwin-minversion-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/darwin-minversion-1.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/darwin-minversion-1.c	(.../branches/gcc-6-branch)
+@@ -1,11 +1,11 @@
+ /* Basic test for -mmacosx-version-min switch on Darwin.  */
+-/* { dg-options "-mmacosx-version-min=10.1" } */
++/* { dg-options "-mmacosx-version-min=10.5" } */
+ /* { dg-do run { target *-*-darwin* } } */
+ 
+ int
+ main ()
+ {
+-#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 1010
++#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 1050
+   fail me;
+ #endif
+   return 0;
 Index: gcc/testsuite/gcc.dg/Woverride-init-1.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/Woverride-init-1.c	(.../tags/gcc_6_2_0_release)
@@ -14600,6 +19455,25 @@ Index: gcc/testsuite/gcc.dg/Woverride-init-1.c
 +  [0] = 3, /* { dg-warning "initialized field overwritten" } */
    [2] = 4
  };
+Index: gcc/testsuite/gcc.dg/pr77587.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/pr77587.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/pr77587.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,14 @@
++/* PR target/77587 */
++/* { dg-do run } */
++/* { dg-require-weak-override "" } */
++/* { dg-additional-sources "pr77587a.c" } */
++
++void
++bar (long x, long y, long z)
++{
++  struct __attribute__((aligned (16))) S { long a, b, c, d; } s;
++  char *p = (char *) &s;
++  __asm ("" : "+r" (p));
++  if (((__UINTPTR_TYPE__) p) & 15)
++    __builtin_abort ();
++}
 Index: gcc/testsuite/gcc.dg/ipa/iinline-attr.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/ipa/iinline-attr.c	(.../tags/gcc_6_2_0_release)
@@ -14611,6 +19485,27 @@ Index: gcc/testsuite/gcc.dg/ipa/iinline-attr.c
 -/* { dg-final { scan-ipa-dump "hooray\[^\\n\]*inline copy in test"  "inline"  } } */
 +/* { dg-final { scan-ipa-dump "hooray\[^\\n\]*inline copy in test" "inline" { xfail visium-*-* } } } */
 +/* Missing back-end support for attribute __optimize__ on Visium.  */
+Index: gcc/testsuite/gcc.dg/pr57438-1.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/pr57438-1.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/gcc.dg/pr57438-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,16 @@
++/* { dg-do compile { target *-*-darwin* } } */
++/* { dg-options "-O1" } */
++/* { dg-additional-options "-mdynamic-no-pic" { target powerpc*-*-darwin* } }
++
++/* This is testing that a completely empty function body results in the
++   insertion of a ud2/trap instruction to prevent a zero-sized FDE, and/or
++   the function label apparently pointing to following code.  */
++
++__attribute__((noinline))
++void foo (void)
++{
++  __builtin_unreachable();
++}
++
++/* { dg-final { scan-assembler "ud2" { target  { i?86-*-darwin*  x86_64-*-darwin* } } } } */
++/* { dg-final { scan-assembler "trap" { target { powerpc*-*-darwin* } } } } */
 Index: gcc/testsuite/gcc.dg/vect/pr72866.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/vect/pr72866.c	(.../tags/gcc_6_2_0_release)
@@ -14639,7 +19534,297 @@ Index: gcc/testsuite/ChangeLog
 ===================================================================
 --- a/src/gcc/testsuite/ChangeLog	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/testsuite/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,881 @@
+@@ -1,3 +1,1171 @@
++2016-12-11  Iain Sandoe  <iain at codesourcery.com>
++
++	Backport from mainline
++	2016-11-27  Iain Sandoe  <iain at codesourcery.com>
++		    Rainer Orth  <ro at CeBiTec.Uni-Bielefeld.DE>
++		    Dominique d'Humieres  <dominiq at lps.ens.fr>
++
++	PR target/67710
++	*  gcc.dg/darwin-minversion-1.c: Update min version check.
++	*  gcc.dg/darwin-minversion-2.c: Likewise.
++	*  gcc.dg/darwin-minversion-3.c: Likewise.
++
++2016-12-11  Iain Sandoe  <iain at codesourcery.com>
++
++	Backport from mainline
++	2016-11-27  Iain Sandoe  <iain at codesourcery.com>
++
++	PR target/57438
++	* gcc.dg/pr57438-1.c: New Test.
++	* gcc.dg/pr57438-2.c: New Test.
++
++2016-12-11  Iain Sandoe  <iain at codesourcery.com>
++
++	Backport from mainline
++	2016-11-27  Dominique d'Humieres  <dominiq at lps.ens.fr>
++		    Iain Sandoe  <iain at codesourcery.com>
++
++	PR target/71767
++	* g++.dg/abi/key2.C: Adjust for changed Darwin sections and
++	linker-visible symbols.
++	* g++.dg/torture/darwin-cfstring-3.C: Likewise.
++	* gcc.dg/const-uniq-1.c: Likewise.
++	* gcc.dg/torture/darwin-cfstring-3.c: Likewise.
++
++2016-12-09  Thomas Preud'homme  <thomas.preudhomme at arm.com>
++
++	Backport from mainline
++	2016-11-17  Thomas Preud'homme  <thomas.preudhomme at arm.com>
++
++	PR target/77933
++	* gcc.target/arm/pr77933-1.c: New test.
++	* gcc.target/arm/pr77933-2.c: Likewise.
++
++2016-12-09  Janus Weil  <janus at gcc.gnu.org>
++
++	Backport from trunk
++	PR fortran/78593
++	* gfortran.dg/derived_result.f90: New test case.
++
++2016-12-09  Nathan Sidwell  <nathan at acm.org>
++
++	PR c++/78550
++	* g++.dg/cpp1y/pr78550.C: New.
++
++2016-12-09  Richard Biener  <rguenther at suse.de>
++
++	Backport from mainline
++	2016-11-07  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/78189
++	* g++.dg/torture/pr78189.C: New testcase.
++
++2016-12-09  Richard Biener  <rguenther at suse.de>
++
++	Backport from mainline
++	2016-11-28  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/78542
++	* gcc.dg/torture/pr78542.c: New testcase.
++
++	2016-11-23  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/78482
++	* gcc.dg/torture/pr78482.c: New testcase.
++
++	2016-11-23  Richard Biener  <rguenther at suse.de>
++
++	PR middle-end/71762
++	* gcc.dg/torture/pr71762-1.c: New testcase.
++	* gcc.dg/torture/pr71762-2.c: Likewise.
++	* gcc.dg/torture/pr71762-3.c: Likewise.
++	* gcc.dg/tree-ssa/forwprop-28.c: XFAIL.
++
++	2016-11-11  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/71575
++	* gcc.dg/graphite/pr71575-1.c: New testcase.
++	* gcc.dg/graphite/pr71575-2.c: Likewise.
++
++	2016-11-07  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/78224
++	* g++.dg/torture/pr78224.C: New testcase.
++
++	2016-11-05  David Edelsohn  <dje.gcc at gmail.com>
++		Richard Biener  <rguenther at suse.de>
++
++	PR bootstrap/78188
++	PR c++/71848
++	* g++.dg/ipa/pr78188.C: New test.
++
++	2016-09-20  Richard Biener  <rguenther at suse.de>
++
++	PR tree-optimization/77646
++	* gcc.dg/torture/pr77646.c: New testcase.
++
++2016-12-08  Nathan Sidwell  <nathan at acm.org>
++
++	PR c++/78551
++	* g++.dg/cpp1y/pr78551.C: New.
++
++2016-12-07  Jakub Jelinek  <jakub at redhat.com>
++
++	Backported from mainline
++	2016-12-02  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/78649
++	* g++.dg/cpp0x/pr78649.C: New test.
++
++	2016-11-28  Jakub Jelinek  <jakub at redhat.com>
++
++	PR middle-end/78540
++	* gcc.dg/pr78540.c: New test.
++
++	PR c++/72808
++	* g++.dg/debug/pr72808.C: New test.
++
++	PR rtl-optimization/78546
++	* gcc.dg/torture/pr78546-1.c: New test.
++	* gcc.dg/torture/pr78546-2.c: New test.
++
++	PR fortran/78298
++	* gfortran.dg/gomp/pr78298.f90: New test.
++
++	PR c++/77591
++	* g++.dg/cpp1y/pr77591.C: New test.
++
++	2016-11-23  Jakub Jelinek  <jakub at redhat.com>
++
++	PR middle-end/69183
++	* gfortran.dg/gomp/pr69183.f90: New test.
++
++	PR c++/77739
++	* g++.dg/cpp1y/pr77739.C: New test.
++
++	2016-11-22  Jakub Jelinek  <jakub at redhat.com>
++
++	PR middle-end/78416
++	* gcc.dg/torture/pr78416.c: New test.
++
++	2016-11-21  Jakub Jelinek  <jakub at redhat.com>
++
++	PR middle-end/67335
++	* g++.dg/vect/simd-clone-7.cc: New test.
++
++	2016-11-18  Jakub Jelinek  <jakub at redhat.com>
++
++	PR middle-end/78419
++	* gcc.target/i386/pr78419.c: New test.
++
++	PR c++/77285
++	* g++.dg/tls/pr77285-1.C: New test.
++	* g++.dg/tls/pr77285-2.C: New test.
++
++	2016-11-16  Jakub Jelinek  <jakub at redhat.com>
++
++	PR rtl-optimization/78378
++	* gcc.c-torture/execute/pr78378.c: New test.
++
++	PR fortran/78299
++	* gfortran.dg/gomp/pr78299.f90: New test.
++
++	2016-11-07  Jakub Jelinek  <jakub at redhat.com>
++
++	PR target/78227
++	* gcc.target/i386/pr78227-1.c: New test.
++	* gcc.target/i386/pr78227-2.c: New test.
++
++	2016-11-04  Jakub Jelinek  <jakub at redhat.com>
++
++	PR target/77834
++	* gcc.dg/pr77834.c: New test.
++
++	2016-10-31  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/78089
++	* c-c++-common/builtin-shuffle-1.c: New test.
++
++	2016-10-29  Jakub Jelinek  <jakub at redhat.com>
++
++	PR rtl-optimization/77919
++	* g++.dg/torture/pr77919-2.C: New test.
++
++	2016-10-28  Jakub Jelinek  <jakub at redhat.com>
++
++	PR rtl-optimization/77919
++	* g++.dg/torture/pr77919.C: New test.
++
++	2016-10-27  Jakub Jelinek  <jakub at redhat.com>
++
++	PR middle-end/78025
++	* g++.dg/gomp/declare-simd-7.C: New test.
++
++	2016-10-26  Jakub Jelinek  <jakub at redhat.com>
++
++	PR fortran/77973
++	* gfortran.dg/gomp/pr77973.f90: New test.
++
++	2016-10-05  Jakub Jelinek  <jakub at redhat.com>
++
++	PR sanitizer/66343
++	* gcc.dg/pch/pr66343-1.c: New test.
++	* gcc.dg/pch/pr66343-1.hs: New file.
++	* gcc.dg/pch/pr66343-2.c: New test.
++	* gcc.dg/pch/pr66343-2.hs: New file.
++
++	2016-09-28  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/77467
++	* g++.dg/cpp1y/constexpr-77467.C: New test.
++
++	2016-09-27  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/77722
++	* g++.dg/ubsan/return-4.C: New test.
++	* g++.dg/ubsan/return-5.C: New test.
++	* g++.dg/ubsan/return-6.C: New test.
++
++	PR fortran/77666
++	* gfortran.dg/gomp/pr77666.f90: New test.
++
++	2016-09-22  Jakub Jelinek  <jakub at redhat.com>
++
++	PR fortran/77665
++	* gfortran.dg/gomp/pr77665.f90: New test.
++
++	2016-09-20  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/77638
++	* g++.dg/cpp0x/udlit-tmpl-arg-neg2.C: New test.
++
++	PR c++/77637
++	* g++.dg/cpp0x/gen-attrs-62.C: New test.
++
++	PR middle-end/77624
++	* c-c++-common/pr77624-1.c: New test.
++	* c-c++-common/pr77624-2.c: New test.
++
++	2016-09-19  Jakub Jelinek  <jakub at redhat.com>
++		    Jan Hubicka  <jh at suse.cz>
++
++	PR target/77587
++	* gcc.dg/pr77587.c: New test.
++	* gcc.dg/pr77587a.c: New file.
++
++	2016-09-16  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/77482
++	* g++.dg/cpp0x/constexpr-77482.C: New test.
++
++	PR c++/77375
++	* g++.dg/cpp0x/mutable1.C: New test.
++
++2016-12-07  Thomas Preud'homme  <thomas.preudhomme at arm.com>
++
++	Backport from mainline
++	2016-11-16  Thomas Preud'homme  <thomas.preudhomme at arm.com>
++
++	* gcc.target/arm/empty_fiq_handler.c: New test.
++
++	Backport from mainline
++	2016-11-21  Thomas Preud'homme  <thomas.preudhomme at arm.com>
++
++	* gcc.target/arm/empty_fiq_handler.c: Skip if -mthumb is passed in and
++	target is Thumb-only.
++
++2016-12-07  Jonathan Wakely  <jwakely at redhat.com>
++
++	Backport from trunk
++	2016-07-31  Jonathan Wakely  <jwakely at redhat.com>
++
++	* lib/target-supports.exp (check_effective_target_c): Fix indentation.
++	(check_effective_target_c++): Likewise. Also match for libstdc++.
++
++2016-12-04  Janus Weil  <janus at gcc.gnu.org>
++
++	Backport from trunk
++	PR fortran/78443
++	* gfortran.dg/typebound_proc_35.f90: New test case.
++
 +2016-12-02  Andreas Krebbel  <krebbel at linux.vnet.ibm.com>
 +
 +	Backport from mainline
@@ -15521,7 +20706,7 @@ Index: gcc/testsuite/ChangeLog
  2016-08-22  Release Manager
  
  	* GCC 6.2.0 released.
-@@ -150,8 +1028,8 @@
+@@ -150,8 +1318,8 @@
  
  2016-08-09  Martin Jambor  <mjambor at suse.cz>
  
@@ -15532,7 +20717,7 @@ Index: gcc/testsuite/ChangeLog
  
  2016-08-09  Richard Biener  <rguenther at suse.de>
  
-@@ -276,8 +1154,8 @@
+@@ -276,8 +1444,8 @@
  
  2016-07-20  Martin Jambor  <mjambor at suse.cz>
  
@@ -15543,7 +20728,7 @@ Index: gcc/testsuite/ChangeLog
  
  2016-07-19  Jakub Jelinek  <jakub at redhat.com>
  
-@@ -418,7 +1296,7 @@
+@@ -418,7 +1586,7 @@
  	2016-07-06  Yuri Rumyantsev  <ysrumyan at gmail.com>
  
  	PR tree-optimization/71518
@@ -15552,7 +20737,7 @@ Index: gcc/testsuite/ChangeLog
  
  2016-07-09  Thomas Koenig  <tkoenig at gcc.gnu.org>
  
-@@ -1639,7 +2517,7 @@
+@@ -1639,7 +2807,7 @@
  	* g++.dg/cpp1y/vla13.C: Same.
  	* g++.dg/cpp1y/vla14.C: Same.
  	* g++.dg/cpp1y/vla3.C: Same.
@@ -15561,7 +20746,7 @@ Index: gcc/testsuite/ChangeLog
  	* g++.dg/ubsan/vla-1.C: Same.
  
  2016-04-14  Marek Polacek  <polacek at redhat.com>
-@@ -1671,7 +2549,7 @@
+@@ -1671,7 +2839,7 @@
  	* g++.dg/cpp1y/vla13.C: New test.
  	* g++.dg/cpp1y/vla14.C: New test.
  	* g++.dg/cpp1y/vla3.C: Restore deleted test.
@@ -15570,7 +20755,7 @@ Index: gcc/testsuite/ChangeLog
  	* g++.dg/ubsan/vla-1.C: Disable exceptions.
  
  2016-04-13  Jakub Jelinek  <jakub at redhat.com>
-@@ -1699,8 +2577,8 @@
+@@ -1699,8 +2867,8 @@
  2016-04-13  Marek Polacek  <polacek at redhat.com>
  
  	PR c/70436
@@ -15581,7 +20766,7 @@ Index: gcc/testsuite/ChangeLog
  
  2016-04-13  Ilya Enkovich  <ilya.enkovich at intel.com>
  
-@@ -1947,7 +2825,7 @@
+@@ -1947,7 +3115,7 @@
  2016-04-06  Vladimir Makarov  <vmakarov at redhat.com>
  
  	PR rtl-optimization/70398
@@ -15618,6 +20803,35 @@ Index: gcc/testsuite/gfortran.fortran-torture/compile/pr76490.f90
 +      goto 15
 +   endif
 +end subroutine bug1
+Index: gcc/testsuite/g++.dg/debug/pr72808.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/debug/pr72808.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/debug/pr72808.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,24 @@
++// PR c++/72808
++// { dg-do compile }
++// { dg-options "-g -std=c++14" }
++
++struct A
++{
++  virtual void foo ();
++};
++
++struct B : A
++{
++  void foo ();
++  enum C : int;
++};
++
++enum B::C : int
++{
++  D
++};
++
++void
++B::foo ()
++{
++}
 Index: gcc/testsuite/g++.dg/debug/dwarf2/imported-decl-2.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/debug/dwarf2/imported-decl-2.C	(.../tags/gcc_6_2_0_release)
@@ -15683,6 +20897,30 @@ Index: gcc/testsuite/g++.dg/pr78229.C
 +	a();
 +      }
 +}
+Index: gcc/testsuite/g++.dg/ubsan/return-5.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/ubsan/return-5.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/ubsan/return-5.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,19 @@
++// PR c++/77722
++// { dg-do run }
++// { dg-options "-fsanitize=return -w" }
++// { dg-shouldfail "ubsan" }
++
++int
++foo ()
++{
++  int a = 5;
++}
++
++int
++main ()
++{
++  foo ();
++  return 0;
++}
++
++// { dg-output "execution reached the end of a value-returning function without returning a value" }
 Index: gcc/testsuite/g++.dg/ubsan/pr63956.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/ubsan/pr63956.C	(.../tags/gcc_6_2_0_release)
@@ -15705,6 +20943,82 @@ Index: gcc/testsuite/g++.dg/ubsan/pr63956.C
  
  constexpr int
  fn8 (int i)
+Index: gcc/testsuite/g++.dg/ubsan/return-4.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/ubsan/return-4.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/ubsan/return-4.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,18 @@
++// PR c++/77722
++// { dg-do run }
++// { dg-options "-fsanitize=return -w" }
++// { dg-shouldfail "ubsan" }
++
++int
++foo ()
++{
++}
++
++int
++main ()
++{
++  foo ();
++  return 0;
++}
++
++// { dg-output "execution reached the end of a value-returning function without returning a value" }
+Index: gcc/testsuite/g++.dg/ubsan/return-6.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/ubsan/return-6.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/ubsan/return-6.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,20 @@
++// PR c++/77722
++// { dg-do run }
++// { dg-options "-fsanitize=return -w" }
++// { dg-shouldfail "ubsan" }
++
++int
++foo ()
++{
++  int a = 5;
++  int b = 5;
++}
++
++int
++main ()
++{
++  foo ();
++  return 0;
++}
++
++// { dg-output "execution reached the end of a value-returning function without returning a value" }
+Index: gcc/testsuite/g++.dg/cpp0x/mutable1.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/mutable1.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/mutable1.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,12 @@
++// PR c++/77375
++// { dg-do run { target c++11 } }
++
++struct Base { mutable int i; };
++struct Derived : Base {};
++const Derived foo{};
++
++int
++main ()
++{
++  foo.i = 42;
++}
+Index: gcc/testsuite/g++.dg/cpp0x/constexpr-77482.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/constexpr-77482.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/constexpr-77482.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,6 @@
++// PR c++/77482
++// { dg-do compile { target c++11 } }
++
++constexpr auto x;	// { dg-error "declaration\[^\n\r]*has no initializer" }
++extern struct S s;
++constexpr auto y = s;	// { dg-error "has incomplete type" }
 Index: gcc/testsuite/g++.dg/cpp0x/constexpr-recursion3.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/cpp0x/constexpr-recursion3.C	(.../tags/gcc_6_2_0_release)
@@ -15740,6 +21054,77 @@ Index: gcc/testsuite/g++.dg/cpp0x/initlist-explicit1.C
 +{
 +  return unsigned{ X () };
 +}
+Index: gcc/testsuite/g++.dg/cpp0x/pr77907.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/pr77907.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/pr77907.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,23 @@
++// PR c++/77907
++// { dg-do run { target c++11 } }
++// { dg-options "-O2 -save-temps" }
++// { dg-final { scan-assembler-not "static_initialization" } }
++
++struct A {
++  int foo () { return 1; }
++};
++
++struct B {
++  using C = int (A::*) ();
++  constexpr explicit B (const C x) : b{x} {}
++  C b;
++};
++
++B b{&A::foo};
++
++int
++main ()
++{
++  if (!b.b)
++    __builtin_abort ();
++}
+Index: gcc/testsuite/g++.dg/cpp0x/pr78649.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/pr78649.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/pr78649.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,16 @@
++// PR c++/78649
++// { dg-do compile { target c++11 } }
++
++template <class> void foo ();
++template <class T, class... U>
++void
++test ()
++{
++  T t (foo<U>...);	// { dg-error "declared void" }
++}
++
++int
++main ()
++{
++  test<void> ();
++}
+Index: gcc/testsuite/g++.dg/cpp0x/explicit12.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/explicit12.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/explicit12.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,17 @@
++// PR c++/57728
++// { dg-do link { target c++11 } }
++
++template<typename T>
++struct A
++{
++  T x;
++  A() = default;
++  A(const A &other) = delete;
++};
++
++extern template class A<int>;
++
++int main()
++{
++  A<int> a;
++}
 Index: gcc/testsuite/g++.dg/cpp0x/pr71979.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/cpp0x/pr71979.C	(.../tags/gcc_6_2_0_release)
@@ -15760,6 +21145,58 @@ Index: gcc/testsuite/g++.dg/cpp0x/pr71979.C
 +  B b;
 +  b = B ();  // { dg-error "use of deleted" }
 +}
+Index: gcc/testsuite/g++.dg/cpp0x/gen-attrs-62.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/gen-attrs-62.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/gen-attrs-62.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,5 @@
++// PR c++/77637
++// { dg-do compile { target c++11 } }
++
++int [[...]] a;		// { dg-error "expected attribute before '...'" }
++int [[,,...]] b;	// { dg-error "expected attribute before '...'" }
+Index: gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-arg-neg2.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-arg-neg2.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-arg-neg2.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,7 @@
++// PR c++/77638
++// { dg-do compile { target c++11 } }
++
++template <T, T... U>		// { dg-error "'T' has not been declared" }
++int operator"" _foo ();		// { dg-error "has invalid parameter list" }
++template <T... U>		// { dg-error "'T' has not been declared" }
++int operator"" _bar ();		// { dg-error "has invalid parameter list" }
+Index: gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C	(.../branches/gcc-6-branch)
+@@ -24,7 +24,7 @@
+   s0 = s1;
+ }
+ 
+-/* { dg-final { scan-assembler "\\.long\[ \\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[ \\t\]*\\.long\[ \\t\]+LC.*\n\[ \\t\]*\\.long\[ \\t\]+4\n" { target { *-*-darwin* && { ! lp64 } } } } } */
+-/* { dg-final { scan-assembler "\\.long\[ \\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[ \\t\]*\\.long\[ \\t\]+LC.*\n\[ \\t\]*\\.long\[ \\t\]+10\n" { target { *-*-darwin* && { ! lp64 } } } } } */
++/* { dg-final { scan-assembler "\\.long\[ \\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[ \\t\]*\\.long\[ \\t\]+\[lL\]C.*\n\[ \\t\]*\\.long\[ \\t\]+4\n" { target { *-*-darwin* && { ! lp64 } } } } } */
++/* { dg-final { scan-assembler "\\.long\[ \\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[ \\t\]*\\.long\[ \\t\]+\[lL\]C.*\n\[ \\t\]*\\.long\[ \\t\]+10\n" { target { *-*-darwin* && { ! lp64 } } } } } */
+ /* { dg-final { scan-assembler ".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space 4\n\t.quad\t.*\n\t.quad\t4\n" { target { *-*-darwin* && {  lp64 } } } } } */
+ /* { dg-final { scan-assembler ".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space 4\n\t.quad\t.*\n\t.quad\t10\n" { target { *-*-darwin* && {  lp64 } } } } } */
+Index: gcc/testsuite/g++.dg/torture/pr77919.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/torture/pr77919.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/torture/pr77919.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,11 @@
++// PR rtl-optimization/77919
++// { dg-do compile }
++// { dg-additional-options "-Wno-psabi" }
++
++struct A { A (double) {} _Complex double i; };
++typedef int __attribute__ ((vector_size (16))) B;
++typedef struct { B b; } C;
++struct D { D (const B &x) : b (x) {} B b; };
++static inline B foo (const double *x) { C *a; a = (C *) x; return a->b; }
++static inline D baz (const A &x) { return foo ((double *) &x); }
++D b = baz (0);
 Index: gcc/testsuite/g++.dg/torture/pr77822.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/torture/pr77822.C	(.../tags/gcc_6_2_0_release)
@@ -15795,6 +21232,77 @@ Index: gcc/testsuite/g++.dg/torture/pr77822.C
 +	m_subunit_infos[m_subunits].m_multiplier = a;
 +    }
 +}
+Index: gcc/testsuite/g++.dg/torture/pr78224.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/torture/pr78224.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/torture/pr78224.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,51 @@
++// { dg-do compile }
++
++extern "C"{
++  float sqrtf(float);
++}
++
++inline float squareroot(const float f)
++{
++  return sqrtf(f);
++}
++
++inline int squareroot(const int f)
++{
++  return static_cast<int>(sqrtf(static_cast<float>(f)));
++}
++
++template <class T>
++class vector2d
++{
++public:
++  vector2d(T nx, T ny) : X(nx), Y(ny) {}
++  T getLength() const { return squareroot( X*X + Y*Y ); }
++  T X;
++  T Y;
++};
++
++vector2d<int> getMousePos();
++
++class Client
++{
++public:
++  Client();
++  ~Client();
++};
++
++void the_game(float turn_amount)
++{
++  Client client;
++  bool first = true;
++
++  while (1) {
++      if (first) {
++        first = false;
++      } else {
++        int dx = getMousePos().X;
++        int dy = getMousePos().Y;
++
++        turn_amount = vector2d<float>(dx, dy).getLength();
++      }
++  }
++}
+Index: gcc/testsuite/g++.dg/torture/pr77919-2.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/torture/pr77919-2.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/torture/pr77919-2.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,10 @@
++// PR rtl-optimization/77919
++// { dg-do compile }
++
++typedef _Complex long long B;
++struct A { A (double) {} _Complex double i; };
++typedef struct { B b; } C;
++struct D { D (const B &x) : b (x) {} B b; };
++static inline B foo (const double *x) { C *a; a = (C *) x; return a->b; }
++static inline D baz (const A &x) { return foo ((double *) &x); }
++D b = baz (0);
 Index: gcc/testsuite/g++.dg/torture/pr64312.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/torture/pr64312.C	(.../tags/gcc_6_2_0_release)
@@ -15846,6 +21354,77 @@ Index: gcc/testsuite/g++.dg/torture/pr77745.C
 +  if (foo(&c.c, &c.c) != 200)
 +    __builtin_abort();
 +}
+Index: gcc/testsuite/g++.dg/torture/pr78189.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/torture/pr78189.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/torture/pr78189.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,41 @@
++/* { dg-do run } */
++/* { dg-additional-options "-ftree-slp-vectorize -fno-vect-cost-model" } */
++
++#include <cstddef>
++
++struct A
++{
++  void * a;
++  void * b;
++};
++
++struct alignas(16) B
++{
++  void * pad;
++  void * misaligned;
++  void * pad2;
++
++  A a;
++
++  void Null();
++};
++
++void B::Null()
++{
++  a.a = nullptr;
++  a.b = nullptr;
++}
++
++void __attribute__((noinline,noclone))
++NullB(void * misalignedPtr)
++{
++  B* b = reinterpret_cast<B*>(reinterpret_cast<char *>(misalignedPtr) - offsetof(B, misaligned));
++  b->Null();
++}
++
++int main()
++{
++  B b;
++  NullB(&b.misaligned);
++  return 0;
++}
+Index: gcc/testsuite/g++.dg/ipa/pr78188.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/ipa/pr78188.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/ipa/pr78188.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,20 @@
++// { dg-do compile }
++// { dg-options "-O2 -fno-exceptions" }
++
++int a;
++static void __attribute__((noinline)) foo () { a = 1; }
++static void __attribute__((noinline)) foo2 () { a = 2; }
++
++struct X
++{
++  virtual void bar (int i) { if (!i) { foo (); __builtin_abort (); } }
++};
++
++void baz (int i)
++{
++  if (!i)
++     { foo2 (); __builtin_abort (); }
++}
++
++X xx;
++
 Index: gcc/testsuite/g++.dg/ipa/devirt-52.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/ipa/devirt-52.C	(.../tags/gcc_6_2_0_release)
@@ -15907,6 +21486,223 @@ Index: gcc/testsuite/g++.dg/ipa/devirt-52.C
 +  G (int);
 +};
 +void test () { G (0); }
+Index: gcc/testsuite/g++.dg/cpp1y/pr77739.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp1y/pr77739.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp1y/pr77739.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,15 @@
++// PR c++/77739
++// { dg-do compile { target c++14 } }
++
++struct A {
++  A();
++  A(const A &);
++};
++struct B {
++  B();
++  template <typename... Args> auto g(Args &&... p1) {
++    return [=] { f(p1...); };
++  }
++  void f(A, const char *);
++};
++B::B() { g(A(), ""); }
+Index: gcc/testsuite/g++.dg/cpp1y/pr78550.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp1y/pr78550.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp1y/pr78550.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,22 @@
++// { dg-do compile { target c++14 } }
++
++// PR 78550 ICE with initializer_list and bitfield member
++
++namespace std
++{
++  template <class T>
++  struct initializer_list
++    {
++      const T *a;
++      __SIZE_TYPE__ b;
++      constexpr initializer_list (const T *x, __SIZE_TYPE__ y) : a(x), b(y) { }
++    };
++}
++template <typename T>
++struct A {
++  A (std::initializer_list<T>);
++};
++struct B {
++  int k : 1;
++};
++A<B> a{{0}};
+Index: gcc/testsuite/g++.dg/cpp1y/constexpr-77467.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp1y/constexpr-77467.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp1y/constexpr-77467.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,128 @@
++// PR c++/77467
++// { dg-do compile { target c++14 } }
++
++constexpr int
++foo (const int x, const unsigned n) noexcept
++{
++  switch (n)
++    {
++    case 0:
++      return 1;
++    case 1:
++      return x;
++    default:
++      const auto m = (n >> 1);
++      const auto y = foo (x, m);
++      return ((m << 1) == n) ? y * y : x * y * y;
++    }
++}
++
++static_assert (foo (3, 2) == 9, "");
++static_assert (foo (2, 3) == 8, "");
++
++constexpr int
++bar (int x)
++{
++  int a = x;
++  switch (x)
++    a = x + 1;
++  return a;
++}
++
++static_assert (bar (0) == 0, "");
++static_assert (bar (1) == 1, "");
++
++constexpr int
++baz (const int x, int y) noexcept
++{
++  switch (x)
++    {
++    case 0:
++      return 1;
++    case 1:
++      return x;
++    case 2:
++      if ((y += 2) == 0)
++	{
++	case 3:
++	  y += 4;
++	  break;
++	}
++      else
++	{
++	case 4:
++	  y += 8;
++	  break;
++	}
++      break;
++    case 5:
++      for (y = 0; y < 3; y++)
++	{
++	case 7:
++	  if (y == -4)
++	    y += 3;
++	  if (y == -3)
++	    continue;
++	  if (y == -2)
++	    {
++	      y += 18;
++	      break;
++	    }
++	  if (y == 2)
++	    {
++	    case 6:
++	      y += 12;
++	    default:
++	      y++;
++	      break;
++	    }
++	}
++      break;
++    case -1:
++    case -2:
++      switch (y)
++	{
++	case 19:
++	  y += 2;
++	  break;
++	case 20:
++	  y += 3;
++	  if (x == 2)
++	    case 21:;
++	  y += 2;
++	  if (x == 3)
++	    default:;
++	  y += 4;
++	  break;
++	}
++      return x + y + 1;
++    }
++  return x + y;
++}
++
++static_assert (baz (0, 7) == 1, "");
++static_assert (baz (1, 7) == 1, "");
++static_assert (baz (2, -2) == 6, "");
++static_assert (baz (2, 0) == 12, "");
++static_assert (baz (3, 1) == 8, "");
++static_assert (baz (4, 2) == 14, "");
++static_assert (baz (5, -20) == 20, "");
++static_assert (baz (6, 5) == 24, "");
++static_assert (baz (7, -5) == 22, "");
++static_assert (baz (7, -4) == 22, "");
++static_assert (baz (7, -3) == 23, "");
++static_assert (baz (7, -2) == 23, "");
++static_assert (baz (7, -1) == 22, "");
++static_assert (baz (7, 0) == 22, "");
++static_assert (baz (7, 2) == 22, "");
++static_assert (baz (7, 6) == 14, "");
++static_assert (baz (8, 9) == 18, "");
++static_assert (baz (8, -2) == 7, "");
++static_assert (baz (-1, 19) == 21, "");
++static_assert (baz (-1, 20) == 29, "");
++static_assert (baz (-1, 21) == 27, "");
++static_assert (baz (-1, 5) == 9, "");
++static_assert (baz (-2, 19) == 20, "");
++static_assert (baz (-2, 20) == 28, "");
++static_assert (baz (-2, 21) == 26, "");
++static_assert (baz (-2, 5) == 8, "");
+Index: gcc/testsuite/g++.dg/cpp1y/pr78551.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp1y/pr78551.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp1y/pr78551.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,32 @@
++// { dg-do compile { target c++14 } }
++
++// PR c++/78551 ICE in constexpr evaluation overwriting array
++// intialized by string constant.
++
++constexpr char Foo (char x, int ix)
++{
++  char d[4] = "012";
++  d[0] = x;
++  return d[ix];
++}
++
++static const char a = Foo ('a', 1);
++static const char b = Foo ('a', 0);
++
++static_assert (a == '1', "");
++static_assert (b == 'a', "");
++
++struct A {
++  union {
++    long s;
++    char d[4];
++  };
++  constexpr A (char x)
++    : d("012")
++  { d[0] = x; }
++};
++
++static constexpr A c{'a'};
++
++static_assert (c.d[0] == 'a', "");
++static_assert (c.d[1] == '1', "");
 Index: gcc/testsuite/g++.dg/cpp1y/pr77539.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/cpp1y/pr77539.C	(.../tags/gcc_6_2_0_release)
@@ -15926,6 +21722,30 @@ Index: gcc/testsuite/g++.dg/cpp1y/pr77539.C
 +  return 1;
 +}
 +static_assert(foobar(),"");
+Index: gcc/testsuite/g++.dg/cpp1y/pr77591.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp1y/pr77591.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/cpp1y/pr77591.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,19 @@
++// PR c++/77591
++// { dg-do compile { target c++14 } }
++// { dg-options "-O0 -Wreturn-local-addr" }
++
++class A { };
++
++decltype(auto)
++foo ()
++{
++  A c;			// { dg-warning "reference to local variable 'c' returned" }
++  return (c);
++}
++
++decltype(auto)
++bar ()
++{
++  A c;			// { dg-warning "reference to local variable 'c' returned" }
++  return 1==1 ? c : c;
++}
 Index: gcc/testsuite/g++.dg/cpp1y/constexpr-77553.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/cpp1y/constexpr-77553.C	(.../tags/gcc_6_2_0_release)
@@ -16722,6 +22542,33 @@ Index: gcc/testsuite/g++.dg/ext/flexary9.C
      struct {
        int n;
        int good[0];          // { dg-warning "zero-size array" }
+Index: gcc/testsuite/g++.dg/vect/simd-clone-7.cc
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/vect/simd-clone-7.cc	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/vect/simd-clone-7.cc	(.../branches/gcc-6-branch)
+@@ -0,0 +1,10 @@
++// PR middle-end/67335
++// { dg-do compile }
++// { dg-additional-options "-fopenmp-simd" }
++
++#pragma omp declare simd notinbranch uniform(y)
++float
++bar (float x, float *y, int)
++{
++  return y[0] + y[1] * x;
++}
+Index: gcc/testsuite/g++.dg/abi/key2.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/abi/key2.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/abi/key2.C	(.../branches/gcc-6-branch)
+@@ -2,6 +2,7 @@
+ // PR darwin/25908
+ 
+ // { dg-do compile { target *-*-darwin* } }
++// { dg-options "-mtarget-linker 85.2" }
+ // { dg-final { scan-assembler ".globl __ZTV1f\\n	.weak_definition __ZTV1f(\\n	.section __DATA,__const_coal,coalesced)?\\n	.align" } }
+ // { dg-final { scan-assembler ".globl __ZTS1f\\n	.weak_definition __ZTS1f\\n	.section __TEXT,__const_coal,coalesced" } }
+ // { dg-final { scan-assembler ".globl __ZTI1f\\n	.weak_definition __ZTI1f(\\n	.section __DATA,__const_coal,coalesced)?\\n	.align" } }
 Index: gcc/testsuite/g++.dg/gomp/pr71910.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/gomp/pr71910.C	(.../tags/gcc_6_2_0_release)
@@ -16740,6 +22587,61 @@ Index: gcc/testsuite/g++.dg/gomp/pr71910.C
 +#pragma omp parallel
 +  __builtin_exit (0);
 +}
+Index: gcc/testsuite/g++.dg/gomp/declare-simd-7.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/gomp/declare-simd-7.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/gomp/declare-simd-7.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,50 @@
++// PR middle-end/78025
++// { dg-do compile }
++// { dg-additional-options "-O2" }
++
++struct S { S (); ~S (); };
++
++int bar1 (int, int, float &, S &, int *, int, int &, int &, int &, int &, int &);
++int bar2 (int, int, float &, S &, int *, int, int &, int &, int &, int &, int &);
++int bar3 (int, int, float &, S &, int *, int, int &, int &, int &, int &, int &) __attribute__((noreturn));
++int bar4 (int, int, float &, S &, int *, int, int &, int &, int &, int &, int &) __attribute__((noreturn));
++
++#pragma omp declare simd notinbranch uniform (b, c, d, e) aligned (e : 16) \
++		    linear (f : 2) linear (ref (g) : 1) \
++		    linear (val (h) : 1) linear (uval (i) : 1) \
++		    linear (k : 4)
++int
++foo1 (int a, int b, float c, S d, int *e, int f, int &g, int &h, int &i, int j, int k)
++{
++  return bar1 (a, b, c, d, e, f, g, h, i, j, k);
++}
++
++#pragma omp declare simd inbranch uniform (b, c, d, e) aligned (e : 16) \
++		    linear (f : 2) linear (ref (g) : 1) \
++		    linear (val (h) : 1) linear (uval (i) : 1) \
++		    linear (k : 4)
++int
++foo2 (int a, int b, float c, S d, int *e, int f, int &g, int &h, int &i, int j, int k)
++{
++  return bar2 (a, b, c, d, e, f, g, h, i, j, k);
++}
++
++#pragma omp declare simd notinbranch uniform (b, c, d, e) aligned (e : 16) \
++		    linear (f : 2) linear (ref (g) : 1) \
++		    linear (val (h) : 1) linear (uval (i) : 1) \
++		    linear (k : 4)
++int
++foo3 (int a, int b, float c, S d, int *e, int f, int &g, int &h, int &i, int j, int k)
++{
++  return bar3 (a, b, c, d, e, f, g, h, i, j, k);
++}
++
++#pragma omp declare simd inbranch uniform (b, c, d, e) aligned (e : 16) \
++		    linear (f : 2) linear (ref (g) : 1) \
++		    linear (val (h) : 1) linear (uval (i) : 1) \
++		    linear (k : 4)
++int
++foo4 (int a, int b, float c, S d, int *e, int f, int &g, int &h, int &i, int j, int k)
++{
++  return bar4 (a, b, c, d, e, f, g, h, i, j, k);
++}
 Index: gcc/testsuite/g++.dg/other/i386-2.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/other/i386-2.C	(.../tags/gcc_6_2_0_release)
@@ -16849,6 +22751,52 @@ Index: gcc/testsuite/g++.dg/lto/pr78472_1.C
 +{
 +  return &s;
 +}
+Index: gcc/testsuite/g++.dg/tls/pr77285-1.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/tls/pr77285-1.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/tls/pr77285-1.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,7 @@
++// { dg-do link { target c++11 } }
++// { dg-require-effective-target tls }
++// { dg-additional-sources pr77285-2.C }
++
++struct __attribute__((abi_tag("tag"))) X { ~X () {} int i = 0; };
++thread_local X var1;
++X var2;
+Index: gcc/testsuite/g++.dg/tls/pr77285-2.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/tls/pr77285-2.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/tls/pr77285-2.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,17 @@
++// PR c++/77285
++// { dg-do compile { target c++11 } }
++// { dg-require-effective-target tls }
++// { dg-final { scan-assembler "_Z4var1B3tag" } }
++// { dg-final { scan-assembler "_Z4var2B3tag" } }
++// { dg-final { scan-assembler "_ZTH4var1B3tag" } }
++// { dg-final { scan-assembler "_ZTW4var1B3tag" } }
++
++struct __attribute__((abi_tag("tag"))) X { ~X () {} int i = 0; };
++extern thread_local X var1;
++extern X var2;
++
++int
++main ()
++{
++ return var1.i + var2.i;
++}
+Index: gcc/testsuite/g++.dg/warn/deprecated-11.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/warn/deprecated-11.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/warn/deprecated-11.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,7 @@
++// PR c++/71274
++// { dg-options -Wdeprecated-declarations }
++
++struct foo
++{
++   __attribute__ ((deprecated)) static const int a;
++};
 Index: gcc/testsuite/g++.dg/warn/Wplacement-new-size-4.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/warn/Wplacement-new-size-4.C	(.../tags/gcc_6_2_0_release)
@@ -17309,6 +23257,19 @@ Index: gcc/testsuite/g++.dg/gcov/gcov-16.C
 +}
 +
 +// { dg-final { run-gcov remove-gcda gcov-16.C } }
+Index: gcc/testsuite/g++.dg/template/typename22.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/template/typename22.C	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/g++.dg/template/typename22.C	(.../branches/gcc-6-branch)
+@@ -0,0 +1,8 @@
++// PR c++/71515
++
++template < typename, typename = int > struct A;
++
++template < typename T > struct A < T, typename A < T >::type >
++{
++  A < int > *a;
++};
 Index: gcc/testsuite/g++.dg/pr77427.C
 ===================================================================
 --- a/src/gcc/testsuite/g++.dg/pr77427.C	(.../tags/gcc_6_2_0_release)
@@ -17401,6 +23362,56 @@ Index: gcc/testsuite/c-c++-common/pr72747-2.c
 +  return 0;
 +}
 +/* { dg-final { scan-tree-dump-times " w = " 1 "gimple" } } */
+Index: gcc/testsuite/c-c++-common/pr77624-1.c
+===================================================================
+--- a/src/gcc/testsuite/c-c++-common/pr77624-1.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/c-c++-common/pr77624-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,14 @@
++/* PR middle-end/77624 */
++/* { dg-do compile } */
++
++int
++foo (int a)
++{
++  return __atomic_is_lock_free (2, a);		/* { dg-warning "pointer from integer" "" { target c } } */
++}						/* { dg-error "invalid conversion" "" { target c++ } 7 } */
++
++int
++bar (int a)
++{
++  return __atomic_always_lock_free (2, a);	/* { dg-warning "pointer from integer" "" { target c } } */
++}						/* { dg-error "invalid conversion" "" { target c++ } 13 } */
+Index: gcc/testsuite/c-c++-common/pr77624-2.c
+===================================================================
+--- a/src/gcc/testsuite/c-c++-common/pr77624-2.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/c-c++-common/pr77624-2.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,26 @@
++/* PR middle-end/77624 */
++/* { dg-do compile } */
++
++void
++foo (int *a)
++{
++  double b = 0;
++  __atomic_is_lock_free (2, a, 2);	/* { dg-error "too many arguments" } */
++  __atomic_is_lock_free (2);		/* { dg-error "too few arguments" } */
++  __atomic_is_lock_free (2, b);		/* { dg-error "incompatible type" "" { target c } } */
++					/* { dg-message "expected" "" { target c } 10 } */
++					/* { dg-error "convert" "" { target c++ } 10 } */
++  __atomic_is_lock_free (2, 0);
++}
++
++void
++bar (int *a)
++{
++  double b = 0;
++  __atomic_always_lock_free (2, a, 2);	/* { dg-error "too many arguments" } */
++  __atomic_always_lock_free (2);	/* { dg-error "too few arguments" } */
++  __atomic_always_lock_free (2, b);	/* { dg-error "incompatible type" "" { target c } } */
++					/* { dg-message "expected" "" { target c } 22 } */
++					/* { dg-error "convert" "" { target c++ } 22 } */
++  __atomic_always_lock_free (2, 0);
++}
 Index: gcc/testsuite/c-c++-common/torture/pr77544.c
 ===================================================================
 --- a/src/gcc/testsuite/c-c++-common/torture/pr77544.c	(.../tags/gcc_6_2_0_release)
@@ -17413,6 +23424,33 @@ Index: gcc/testsuite/c-c++-common/torture/pr77544.c
 +} b;
 +int c, d;
 +void e() { b.a = d + c + ~(long)(302806U >> 0); }
+Index: gcc/testsuite/c-c++-common/builtin-shuffle-1.c
+===================================================================
+--- a/src/gcc/testsuite/c-c++-common/builtin-shuffle-1.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/testsuite/c-c++-common/builtin-shuffle-1.c	(.../branches/gcc-6-branch)
+@@ -0,0 +1,22 @@
++/* PR c++/78089 */
++/* { dg-do run } */
++
++typedef int V __attribute__((vector_size (16)));
++V a, b, c;
++
++int
++foo ()
++{
++  return __builtin_shuffle (a, b, c)[3];
++}
++
++int
++main ()
++{
++  a = (V) { 1, 2, 3, 4 };
++  b = (V) { 5, 6, 7, 8 };
++  c = (V) { 7, 2, 5, 6 };
++  if (foo () != 7)
++    __builtin_abort ();
++  return 0;
++}
 Index: gcc/testsuite/c-c++-common/pr72747-1.c
 ===================================================================
 --- a/src/gcc/testsuite/c-c++-common/pr72747-1.c	(.../tags/gcc_6_2_0_release)
@@ -17434,6 +23472,20 @@ Index: gcc/testsuite/c-c++-common/pr72747-1.c
 +}
 +/* { dg-final { scan-tree-dump-times " v2 = { 42, 42, 42, 42 }" 1 "gimple" } } */
 +
+Index: gcc/cp/typeck.c
+===================================================================
+--- a/src/gcc/cp/typeck.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/cp/typeck.c	(.../branches/gcc-6-branch)
+@@ -8552,7 +8552,8 @@
+ maybe_warn_about_returning_address_of_local (tree retval)
+ {
+   tree valtype = TREE_TYPE (DECL_RESULT (current_function_decl));
+-  tree whats_returned = retval;
++  tree whats_returned = c_fully_fold (retval, /*for_init*/false,
++				      /*maybe_constp*/NULL);
+ 
+   for (;;)
+     {
 Index: gcc/cp/init.c
 ===================================================================
 --- a/src/gcc/cp/init.c	(.../tags/gcc_6_2_0_release)
@@ -17498,7 +23550,26 @@ Index: gcc/cp/class.c
  	}
        return error_mark_node;
      }
-@@ -6686,53 +6688,148 @@
+@@ -1775,6 +1777,8 @@
+       SET_CLASSTYPE_REF_FIELDS_NEED_INIT
+ 	(t, CLASSTYPE_REF_FIELDS_NEED_INIT (t)
+ 	 | CLASSTYPE_REF_FIELDS_NEED_INIT (basetype));
++      if (TYPE_HAS_MUTABLE_P (basetype))
++	CLASSTYPE_HAS_MUTABLE (t) = 1;
+ 
+       /*  A standard-layout class is a class that:
+ 	  ...
+@@ -5162,8 +5166,7 @@
+ }
+ 
+ /* Returns true iff FN is a user-provided function, i.e. user-declared
+-   and not defaulted at its first declaration; or explicit, private,
+-   protected, or non-const.  */
++   and not defaulted at its first declaration.  */
+ 
+ bool
+ user_provided_p (tree fn)
+@@ -6686,53 +6689,148 @@
    return false;
  }
  
@@ -17675,7 +23746,7 @@ Index: gcc/cp/class.c
        if (field_nonempty_p (fld))
  	{
  	  /* Remember the first non-static data member.  */
-@@ -6742,8 +6839,8 @@
+@@ -6742,8 +6840,8 @@
  	  /* Remember the first non-static data member after the flexible
  	     array member, if one has been found, or the zero-length array
  	     if it has been found.  */
@@ -17686,7 +23757,7 @@ Index: gcc/cp/class.c
  	}
  
        /* Skip non-arrays.  */
-@@ -6759,13 +6856,16 @@
+@@ -6759,13 +6857,16 @@
  		 such field or a flexible array member has been seen to
  		 handle the pathological and unlikely case of multiple
  		 such members.  */
@@ -17708,7 +23779,7 @@ Index: gcc/cp/class.c
  	}
        else
  	{
-@@ -6776,16 +6876,39 @@
+@@ -6776,16 +6877,39 @@
  		 reset the after pointer.  */
  	      if (TYPE_DOMAIN (TREE_TYPE (fmem->array)))
  		{
@@ -17750,7 +23821,7 @@ Index: gcc/cp/class.c
  /* Issue diagnostics for invalid flexible array members or zero-length
     arrays that are not the last elements of the containing class or its
     base classes or that are its sole members.  */
-@@ -6793,28 +6916,41 @@
+@@ -6793,28 +6917,41 @@
  static void
  diagnose_flexarrays (tree t, const flexmems_t *fmem)
  {
@@ -17800,7 +23871,7 @@ Index: gcc/cp/class.c
  	msg = G_("flexible array member %qD not at end of %q#T");
        else if (!fmem->first)
  	msg = G_("flexible array member %qD in an otherwise empty %q#T");
-@@ -6821,21 +6957,42 @@
+@@ -6821,21 +6958,42 @@
  
        if (msg)
  	{
@@ -17852,7 +23923,7 @@ Index: gcc/cp/class.c
  }
  
  
-@@ -6848,7 +7005,8 @@
+@@ -6848,7 +7006,8 @@
     that fails the checks.  */
  
  static void
@@ -17862,7 +23933,7 @@ Index: gcc/cp/class.c
  {
    /* Initialize the result of a search for flexible array and zero-length
       array members.  Avoid doing any work if the most interesting FMEM data
-@@ -6856,18 +7014,20 @@
+@@ -6856,18 +7015,20 @@
    flexmems_t flexmems = flexmems_t ();
    if (!fmem)
      fmem = &flexmems;
@@ -17886,7 +23957,7 @@ Index: gcc/cp/class.c
    for (int i = 0; i < nbases; ++i)
      {
        tree base_binfo = BINFO_BASE_BINFO (TYPE_BINFO (t), i);
-@@ -6881,7 +7041,7 @@
+@@ -6881,7 +7042,7 @@
  	continue;
  
        /* Check the base class.  */
@@ -17895,7 +23966,7 @@ Index: gcc/cp/class.c
      }
  
    if (fmem == &flexmems)
-@@ -6898,17 +7058,26 @@
+@@ -6898,17 +7059,26 @@
  	  /* Check the virtual base class.  */
  	  tree basetype = TREE_TYPE (base_binfo);
  
@@ -17928,11 +23999,57 @@ Index: gcc/cp/class.c
        diagnose_flexarrays (t, fmem);
      }
  }
+Index: gcc/cp/decl.c
+===================================================================
+--- a/src/gcc/cp/decl.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/cp/decl.c	(.../branches/gcc-6-branch)
+@@ -13504,8 +13504,11 @@
+   if (at_class_scope_p ()
+       && COMPLETE_TYPE_P (current_class_type)
+       && UNSCOPED_ENUM_P (enumtype))
+-    insert_late_enum_def_into_classtype_sorted_fields (enumtype,
+-						       current_class_type);
++    {
++      insert_late_enum_def_into_classtype_sorted_fields (enumtype,
++							 current_class_type);
++      fixup_type_variants (current_class_type);
++    }
+ 
+   /* Finish debugging output for this type.  */
+   rest_of_type_compilation (enumtype, namespace_bindings_p ());
 Index: gcc/cp/constexpr.c
 ===================================================================
 --- a/src/gcc/cp/constexpr.c	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/cp/constexpr.c	(.../branches/gcc-6-branch)
-@@ -994,7 +994,8 @@
+@@ -891,6 +891,18 @@
+   static bool equal (constexpr_call *, constexpr_call *);
+ };
+ 
++enum constexpr_switch_state {
++  /* Used when processing a switch for the first time by cxx_eval_switch_expr
++     and default: label for that switch has not been seen yet.  */
++  css_default_not_seen,
++  /* Used when processing a switch for the first time by cxx_eval_switch_expr
++     and default: label for that switch has been seen already.  */
++  css_default_seen,
++  /* Used when processing a switch for the second time by
++     cxx_eval_switch_expr, where default: label should match.  */
++  css_default_processing
++};
++
+ /* The constexpr expansion context.  CALL is the current function
+    expansion, CTOR is the current aggregate initializer, OBJECT is the
+    object being initialized by CTOR, either a VAR_DECL or a _REF.  VALUES
+@@ -910,6 +922,8 @@
+   tree ctor;
+   /* The object we're building the CONSTRUCTOR for.  */
+   tree object;
++  /* If inside SWITCH_EXPR.  */
++  constexpr_switch_state *css_state;
+   /* Whether we should error on a non-constant expression or fail quietly.  */
+   bool quiet;
+   /* Whether we are strictly conforming to constant expression rules or
+@@ -994,7 +1008,8 @@
  }
  
  /* Reuse a copy or create a new unshared copy of the function FUN.
@@ -17942,7 +24059,7 @@ Index: gcc/cp/constexpr.c
  
  static tree
  get_fundef_copy (tree fun)
-@@ -1002,15 +1003,26 @@
+@@ -1002,15 +1017,26 @@
    maybe_initialize_fundef_copies_table ();
  
    tree copy;
@@ -17972,7 +24089,7 @@ Index: gcc/cp/constexpr.c
        copy = *slot;
        *slot = TREE_CHAIN (copy);
      }
-@@ -1018,12 +1030,14 @@
+@@ -1018,12 +1044,14 @@
    return copy;
  }
  
@@ -17989,7 +24106,7 @@ Index: gcc/cp/constexpr.c
    TREE_CHAIN (copy) = *slot;
    *slot = copy;
  }
-@@ -1731,6 +1745,63 @@
+@@ -1731,6 +1759,63 @@
    return r;
  }
  
@@ -18053,7 +24170,7 @@ Index: gcc/cp/constexpr.c
  /* Subroutine of cxx_eval_constant_expression.
     Like cxx_eval_unary_expression, except for binary expressions.  */
  
-@@ -1776,6 +1847,9 @@
+@@ -1776,6 +1861,9 @@
        else if (TREE_CODE (rhs) == PTRMEM_CST)
  	rhs = cplus_expand_constant (rhs);
      }
@@ -18063,7 +24180,201 @@ Index: gcc/cp/constexpr.c
  
    if (r == NULL_TREE)
      r = fold_binary_loc (loc, code, type, lhs, rhs);
-@@ -3434,65 +3508,6 @@
+@@ -1974,6 +2062,27 @@
+     }
+ }
+ 
++/* Extract element INDEX consisting of CHARS_PER_ELT chars from
++   STRING_CST STRING.  */
++
++static tree
++extract_string_elt (tree string, unsigned chars_per_elt, unsigned index)
++{
++  tree type = cv_unqualified (TREE_TYPE (TREE_TYPE (string)));
++  tree r;
++
++  if (chars_per_elt == 1)
++    r = build_int_cst (type, TREE_STRING_POINTER (string)[index]);
++  else
++    {
++      const unsigned char *ptr
++	= ((const unsigned char *)TREE_STRING_POINTER (string)
++	   + index * chars_per_elt);
++      r = native_interpret_expr (type, ptr, chars_per_elt);
++    }
++  return r;
++}
++
+ /* Subroutine of cxx_eval_constant_expression.
+    Attempt to reduce a reference to an array slot.  */
+ 
+@@ -2054,16 +2163,9 @@
+       tree r;
+       if (TREE_CODE (ary) == CONSTRUCTOR)
+ 	r = (*CONSTRUCTOR_ELTS (ary))[i].value;
+-      else if (elem_nchars == 1)
+-	r = build_int_cst (cv_unqualified (TREE_TYPE (TREE_TYPE (ary))),
+-			   TREE_STRING_POINTER (ary)[i]);
+       else
+-	{
+-	  tree type = cv_unqualified (TREE_TYPE (TREE_TYPE (ary)));
+-	  r = native_interpret_expr (type, (const unsigned char *)
+-				     TREE_STRING_POINTER (ary)
+-				     + i * elem_nchars, elem_nchars);
+-	}
++	r = extract_string_elt (ary, elem_nchars, i);
++
+       if (r)
+ 	/* Don't VERIFY_CONSTANT here.  */
+ 	return r;
+@@ -3078,6 +3180,35 @@
+ 	  *valp = build_constructor (type, NULL);
+ 	  CONSTRUCTOR_NO_IMPLICIT_ZERO (*valp) = no_zero_init;
+ 	}
++      else if (TREE_CODE (*valp) == STRING_CST)
++	{
++	  /* An array was initialized with a string constant, and now
++	     we're writing into one of its elements.  Explode the
++	     single initialization into a set of element
++	     initializations.  */
++	  gcc_assert (TREE_CODE (type) == ARRAY_TYPE);
++
++	  tree string = *valp;
++	  tree elt_type = TREE_TYPE (type);
++	  unsigned chars_per_elt = (TYPE_PRECISION (elt_type)
++				    / TYPE_PRECISION (char_type_node));
++	  unsigned num_elts = TREE_STRING_LENGTH (string) / chars_per_elt;
++	  tree ary_ctor = build_constructor (type, NULL);
++
++	  vec_safe_reserve (CONSTRUCTOR_ELTS (ary_ctor), num_elts);
++	  for (unsigned ix = 0; ix != num_elts; ix++)
++	    {
++	      constructor_elt elt = 
++		{
++		  build_int_cst (size_type_node, ix),
++		  extract_string_elt (string, chars_per_elt, ix)
++		};
++	      CONSTRUCTOR_ELTS (ary_ctor)->quick_push (elt);
++	    }
++	  
++	  *valp = ary_ctor;
++	}
++
+       /* If the value of object is already zero-initialized, any new ctors for
+ 	 subobjects will also be zero-initialized.  */
+       no_zero_init = CONSTRUCTOR_NO_IMPLICIT_ZERO (*valp);
+@@ -3293,14 +3424,12 @@
+ }
+ 
+ /* Subroutine of cxx_eval_statement_list.  Determine whether the statement
+-   at I matches *jump_target.  If we're looking for a case label and we see
+-   the default label, copy I into DEFAULT_LABEL.  */
++   STMT matches *jump_target.  If we're looking for a case label and we see
++   the default label, note it in ctx->css_state.  */
+ 
+ static bool
+-label_matches (tree *jump_target, tree_stmt_iterator i,
+-	       tree_stmt_iterator& default_label)
++label_matches (const constexpr_ctx *ctx, tree *jump_target, tree stmt)
+ {
+-  tree stmt = tsi_stmt (i);
+   switch (TREE_CODE (*jump_target))
+     {
+     case LABEL_DECL:
+@@ -3312,8 +3441,18 @@
+     case INTEGER_CST:
+       if (TREE_CODE (stmt) == CASE_LABEL_EXPR)
+ 	{
++	  gcc_assert (ctx->css_state != NULL);
+ 	  if (!CASE_LOW (stmt))
+-	    default_label = i;
++	    {
++	      /* default: should appear just once in a SWITCH_EXPR
++		 body (excluding nested SWITCH_EXPR).  */
++	      gcc_assert (*ctx->css_state != css_default_seen);
++	      /* When evaluating SWITCH_EXPR body for the second time,
++		 return true for the default: label.  */
++	      if (*ctx->css_state == css_default_processing)
++		return true;
++	      *ctx->css_state = css_default_seen;
++	    }
+ 	  else if (CASE_HIGH (stmt))
+ 	    {
+ 	      if (tree_int_cst_le (CASE_LOW (stmt), *jump_target)
+@@ -3340,7 +3479,6 @@
+ 			 tree *jump_target)
+ {
+   tree_stmt_iterator i;
+-  tree_stmt_iterator default_label = tree_stmt_iterator();
+   tree local_target;
+   /* In a statement-expression we want to return the last value.  */
+   tree r = NULL_TREE;
+@@ -3351,18 +3489,7 @@
+     }
+   for (i = tsi_start (t); !tsi_end_p (i); tsi_next (&i))
+     {
+-    reenter:
+       tree stmt = tsi_stmt (i);
+-      if (*jump_target)
+-	{
+-	  if (TREE_CODE (stmt) == STATEMENT_LIST)
+-	    /* The label we want might be inside.  */;
+-	  else if (label_matches (jump_target, i, default_label))
+-	    /* Found it.  */
+-	    *jump_target = NULL_TREE;
+-	  else
+-	    continue;
+-	}
+       r = cxx_eval_constant_expression (ctx, stmt, false,
+ 					non_constant_p, overflow_p,
+ 					jump_target);
+@@ -3371,12 +3498,6 @@
+       if (returns (jump_target) || breaks (jump_target))
+ 	break;
+     }
+-  if (switches (jump_target) && !tsi_end_p (default_label))
+-    {
+-      i = default_label;
+-      *jump_target = NULL_TREE;
+-      goto reenter;
+-    }
+   return r;
+ }
+ 
+@@ -3404,7 +3525,10 @@
+ 	   iter != save_exprs.end(); ++iter)
+ 	new_ctx.values->remove (*iter);
+     }
+-  while (!returns (jump_target) && !breaks (jump_target) && !*non_constant_p);
++  while (!returns (jump_target)
++	 && !breaks (jump_target)
++	 && !switches (jump_target)
++	 && !*non_constant_p);
+ 
+   if (breaks (jump_target))
+     *jump_target = NULL_TREE;
+@@ -3427,72 +3551,25 @@
+   *jump_target = cond;
+ 
+   tree body = TREE_OPERAND (t, 1);
+-  cxx_eval_statement_list (ctx, body,
+-			   non_constant_p, overflow_p, jump_target);
++  constexpr_ctx new_ctx = *ctx;
++  constexpr_switch_state css = css_default_not_seen;
++  new_ctx.css_state = &css;
++  cxx_eval_constant_expression (&new_ctx, body, false,
++				non_constant_p, overflow_p, jump_target);
++  if (switches (jump_target) && css == css_default_seen)
++    {
++      /* If the SWITCH_EXPR body has default: label, process it once again,
++	 this time instructing label_matches to return true for default:
++	 label on switches (jump_target).  */
++      css = css_default_processing;
++      cxx_eval_constant_expression (&new_ctx, body, false,
++				    non_constant_p, overflow_p, jump_target);
++    }
+   if (breaks (jump_target) || switches (jump_target))
+     *jump_target = NULL_TREE;
    return NULL_TREE;
  }
  
@@ -18129,7 +24440,51 @@ Index: gcc/cp/constexpr.c
  /* Attempt to reduce the expression T to a constant value.
     On failure, issue diagnostic and return error_mark_node.  */
  /* FIXME unify with c_fully_fold */
-@@ -3810,12 +3825,6 @@
+@@ -3507,6 +3584,27 @@
+   constexpr_ctx new_ctx;
+   tree r = t;
+ 
++  if (jump_target && *jump_target)
++    {
++      /* If we are jumping, ignore all statements/expressions except those
++	 that could have LABEL_EXPR or CASE_LABEL_EXPR in their bodies.  */
++      switch (TREE_CODE (t))
++	{
++	case BIND_EXPR:
++	case STATEMENT_LIST:
++	case LOOP_EXPR:
++	case COND_EXPR:
++	  break;
++	case LABEL_EXPR:
++	case CASE_LABEL_EXPR:
++	  if (label_matches (ctx, jump_target, t))
++	    /* Found it.  */
++	    *jump_target = NULL_TREE;
++	  return NULL_TREE;
++	default:
++	  return NULL_TREE;
++	}
++    }
+   if (t == error_mark_node)
+     {
+       *non_constant_p = true;
+@@ -3564,6 +3662,7 @@
+     case LABEL_DECL:
+     case LABEL_EXPR:
+     case CASE_LABEL_EXPR:
++    case PREDICT_EXPR:
+       return t;
+ 
+     case PARM_DECL:
+@@ -3668,6 +3767,7 @@
+ 
+     case INIT_EXPR:
+     case MODIFY_EXPR:
++      gcc_assert (jump_target == NULL || *jump_target == NULL_TREE);
+       r = cxx_eval_store_expression (ctx, t, lval,
+ 				     non_constant_p, overflow_p);
+       break;
+@@ -3810,12 +3910,6 @@
        break;
  
      case POINTER_PLUS_EXPR:
@@ -18142,11 +24497,212 @@ Index: gcc/cp/constexpr.c
      case PLUS_EXPR:
      case MINUS_EXPR:
      case MULT_EXPR:
+@@ -3902,6 +3996,22 @@
+       break;
+ 
+     case COND_EXPR:
++      if (jump_target && *jump_target)
++	{
++	  /* When jumping to a label, the label might be either in the
++	     then or else blocks, so process then block first in skipping
++	     mode first, and if we are still in the skipping mode at its end,
++	     process the else block too.  */
++	  r = cxx_eval_constant_expression (ctx, TREE_OPERAND (t, 1),
++					    lval, non_constant_p, overflow_p,
++					    jump_target);
++	  if (*jump_target)
++	    r = cxx_eval_constant_expression (ctx, TREE_OPERAND (t, 2),
++					      lval, non_constant_p, overflow_p,
++					      jump_target);
++	  break;
++	}
++      /* FALLTHRU */
+     case VEC_COND_EXPR:
+       r = cxx_eval_conditional_expression (ctx, t, lval,
+ 					   non_constant_p, overflow_p,
+@@ -3962,7 +4072,7 @@
+ 	  {
+ 	    if (same_type_ignoring_top_level_qualifiers_p (type,
+ 							   TREE_TYPE (op)))
+-	      STRIP_NOPS (t);
++	      return cp_fold_convert (type, op);
+ 	    else
+ 	      {
+ 		if (!ctx->quiet)
+@@ -4134,7 +4244,7 @@
+   bool overflow_p = false;
+   hash_map<tree,tree> map;
+ 
+-  constexpr_ctx ctx = { NULL, &map, NULL, NULL, NULL,
++  constexpr_ctx ctx = { NULL, &map, NULL, NULL, NULL, NULL,
+ 			allow_non_constant, strict };
+ 
+   tree type = initialized_type (t);
+@@ -4254,7 +4364,7 @@
+   bool overflow_p = false;
+   hash_map <tree, tree> map;
+ 
+-  constexpr_ctx ctx = { NULL, &map, NULL, NULL, NULL, true, true };
++  constexpr_ctx ctx = { NULL, &map, NULL, NULL, NULL, NULL, true, true };
+ 
+   cxx_eval_constant_expression (&ctx, t, false, &non_constant_p,
+ 				&overflow_p);
+Index: gcc/cp/error.c
+===================================================================
+--- a/src/gcc/cp/error.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/cp/error.c	(.../branches/gcc-6-branch)
+@@ -959,14 +959,13 @@
+ {
+   if (flags & TFF_DECL_SPECIFIERS)
+     {
+-      if (VAR_P (t)
+-	  && DECL_DECLARED_CONSTEXPR_P (t))
+-            {
+-              if (DECL_DECLARED_CONCEPT_P (t))
+-                pp_cxx_ws_string (pp, "concept");
+-              else
+-		pp_cxx_ws_string (pp, "constexpr");
+-            }
++      if (VAR_P (t) && DECL_DECLARED_CONSTEXPR_P (t))
++        {
++	  if (DECL_LANG_SPECIFIC (t) && DECL_DECLARED_CONCEPT_P (t))
++	    pp_cxx_ws_string (pp, "concept");
++	  else
++	    pp_cxx_ws_string (pp, "constexpr");
++	}
+       dump_type_prefix (pp, type, flags & ~TFF_UNQUALIFIED_NAME);
+       pp_maybe_space (pp);
+     }
 Index: gcc/cp/ChangeLog
 ===================================================================
 --- a/src/gcc/cp/ChangeLog	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/cp/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,63 @@
+@@ -1,3 +1,188 @@
++2016-12-08  Nathan Sidwell  <nathan at acm.org>
++
++	PR c++/78551
++	* constexpr.c (extract_string_elt): New.  Broken out of ...
++	(cxx_eval_array_reference): ... here.  Call it.
++	(cxx_eval_store_expression): Convert init by STRING_CST into
++	CONSTRUCTOR, if needed.
++
++2016-12-07  Jakub Jelinek  <jakub at redhat.com>
++
++	Backported from mainline
++	2016-12-02  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/78649
++	* pt.c (tsubst_init): Don't call build_value_init if decl's type
++	is error_mark_node.
++
++	2016-11-28  Jakub Jelinek  <jakub at redhat.com>
++		    Jason Merrill  <jason at redhat.com>
++
++	PR c++/72808
++	* decl.c (finish_enum_value_list): Call fixup_type_variants on
++	current_class_type after
++	insert_late_enum_def_into_classtype_sorted_fields.
++
++	2016-11-28  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/77591
++	* typeck.c (maybe_warn_about_returning_address_of_local): Optimize
++	whats_returned through fold_for_warn.
++
++	2016-11-23  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/77739
++	* cp-gimplify.c (cp_gimplify_tree) <case VEC_INIT_EXPR>: Pass
++	false as handle_invisiref_parm_p to cp_genericize_tree.
++	(struct cp_genericize_data): Add handle_invisiref_parm_p field.
++	(cp_genericize_r): Don't wrap is_invisiref_parm into references
++	if !wtd->handle_invisiref_parm_p.
++	(cp_genericize_tree): Add handle_invisiref_parm_p argument,
++	set wtd.handle_invisiref_parm_p to it.
++	(cp_genericize): Pass true as handle_invisiref_parm_p to
++	cp_genericize_tree.  Formatting fix.
++
++	2016-11-18  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/77285
++	* mangle.c (mangle_tls_init_fn, mangle_tls_wrapper_fn): Call
++	check_abi_tags.
++
++	2016-10-31  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/78089
++	* parser.c (cp_parser_postfix_expression): Replace return statement in
++	the first switch with setting postfix_expression to the return
++	expression and break;.
++
++	2016-09-28  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/77467
++	* constexpr.c (enum constexpr_switch_state): New.
++	(struct constexpr_ctx): Add css_state field.
++	(label_matches): Add CTX and STMT arguments, remove I and
++	DEFAULT_LABEL.  For CASE_LABEL_EXPR assert ctx->css_state != NULL,
++	handle default labels according to css_state.
++	(cxx_eval_statement_list): Remove statement skipping, label_matches
++	and default_label handling code.
++	(cxx_eval_loop_expr): Exit after first iteration even if
++	switches (jump_target).
++	(cxx_eval_switch_expr): Set up css_state field in ctx, if default
++	label has been seen in the body, but no cases matched, evaluate
++	the body second time.
++	(cxx_eval_constant_expression): Handle stmt skipping and label_matches
++	here.  Handle PREDICT_EXPR.  For MODIFY_EXPR or INIT_EXPR, assert
++	statement is not skipped.  For COND_EXPR during skipping, don't
++	evaluate condition, just the then block and if still skipping at the
++	end also the else block.
++	(cxx_eval_outermost_constant_expr): Adjust constexpr_ctx initializer.
++	(is_sub_constant_expr): Likewise.
++
++	2016-09-27  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/77722
++	* cp-gimplify.c (cp_ubsan_maybe_instrument_return): Instrument also
++	functions that have just a STATEMENT_LIST instead of BIND_EXPR, or
++	BIND_EXPR with some statement rather than STATEMENT_LIST as body.
++
++	2016-09-20  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/77638
++	* parser.c (cp_parser_template_declaration_after_parameter): For 2
++	argument operator"" template set ok to false for
++	parm == error_mark_node.
++
++	PR c++/77637
++	* parser.c (cp_parser_std_attribute_list): Reject ... without
++	preceding attribute.
++
++	2016-09-16  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c++/77482
++	* error.c (dump_simple_decl): Only check DECL_DECLARED_CONCEPT_P
++	if DECL_LANG_SPECIFIC is non-NULL.  Fix up formatting.
++
++	PR c++/77375
++	* class.c (check_bases): Set CLASSTYPE_HAS_MUTABLE if any
++	TYPE_HAS_MUTABLE_P for any bases.
++
++2016-12-06  Jason Merrill  <jason at redhat.com>
++
++	PR c++/71274
++	* decl2.c (maybe_instantiate_decl): Split out from mark_used.
++	(decl_constant_var_p): Use it instead.
++
++	PR c++/71515
++	* pt.c (resolve_typename_type): Try to avoid calling
++	currently_open_class.
++
++	PR c++/77907
++	* constexpr.c (cxx_eval_constant_expression): Use cp_fold_convert.
++
++	PR c++/57728
++	* pt.c (do_type_instantiation): Don't mess with non-user-provided
++	member functions.
++
 +2016-11-18  Jason Merrill  <jason at redhat.com>
 +
 +	PR c++/67631 - list-init and explicit conversions
@@ -18210,6 +24766,98 @@ Index: gcc/cp/ChangeLog
  2016-08-22  Release Manager
  
  	* GCC 6.2.0 released.
+Index: gcc/cp/cp-gimplify.c
+===================================================================
+--- a/src/gcc/cp/cp-gimplify.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/cp/cp-gimplify.c	(.../branches/gcc-6-branch)
+@@ -37,7 +37,7 @@
+ 
+ static tree cp_genericize_r (tree *, int *, void *);
+ static tree cp_fold_r (tree *, int *, void *);
+-static void cp_genericize_tree (tree*);
++static void cp_genericize_tree (tree*, bool);
+ static tree cp_fold (tree);
+ 
+ /* Local declarations.  */
+@@ -594,7 +594,7 @@
+ 				  tf_warning_or_error);
+ 	hash_set<tree> pset;
+ 	cp_walk_tree (expr_p, cp_fold_r, &pset, NULL);
+-	cp_genericize_tree (expr_p);
++	cp_genericize_tree (expr_p, false);
+ 	ret = GS_OK;
+ 	input_location = loc;
+       }
+@@ -924,6 +924,7 @@
+   struct cp_genericize_omp_taskreg *omp_ctx;
+   tree try_block;
+   bool no_sanitize_p;
++  bool handle_invisiref_parm_p;
+ };
+ 
+ /* Perform any pre-gimplification folding of C++ front end trees to
+@@ -1040,7 +1041,7 @@
+     }
+ 
+   /* Otherwise, do dereference invisible reference parms.  */
+-  if (is_invisiref_parm (stmt))
++  if (wtd->handle_invisiref_parm_p && is_invisiref_parm (stmt))
+     {
+       *stmt_p = convert_from_reference (stmt);
+       *walk_subtrees = 0;
+@@ -1448,7 +1449,7 @@
+ /* Lower C++ front end trees to GENERIC in T_P.  */
+ 
+ static void
+-cp_genericize_tree (tree* t_p)
++cp_genericize_tree (tree* t_p, bool handle_invisiref_parm_p)
+ {
+   struct cp_genericize_data wtd;
+ 
+@@ -1457,6 +1458,7 @@
+   wtd.omp_ctx = NULL;
+   wtd.try_block = NULL_TREE;
+   wtd.no_sanitize_p = false;
++  wtd.handle_invisiref_parm_p = handle_invisiref_parm_p;
+   cp_walk_tree (t_p, cp_genericize_r, &wtd, NULL);
+   delete wtd.p_set;
+   wtd.bind_expr_stack.release ();
+@@ -1507,14 +1509,11 @@
+     }
+   if (t == NULL_TREE)
+     return;
+-  t = DECL_SAVED_TREE (fndecl);
+-  if (TREE_CODE (t) == BIND_EXPR
+-      && TREE_CODE (BIND_EXPR_BODY (t)) == STATEMENT_LIST)
+-    {
+-      tree_stmt_iterator i = tsi_last (BIND_EXPR_BODY (t));
+-      t = ubsan_instrument_return (DECL_SOURCE_LOCATION (fndecl));
+-      tsi_link_after (&i, t, TSI_NEW_STMT);
+-    }
++  tree *p = &DECL_SAVED_TREE (fndecl);
++  if (TREE_CODE (*p) == BIND_EXPR)
++    p = &BIND_EXPR_BODY (*p);
++  t = ubsan_instrument_return (DECL_SOURCE_LOCATION (fndecl));
++  append_to_statement_list (t, p);
+ }
+ 
+ void
+@@ -1579,12 +1578,12 @@
+   /* Expand all the array notations here.  */
+   if (flag_cilkplus 
+       && contains_array_notation_expr (DECL_SAVED_TREE (fndecl)))
+-    DECL_SAVED_TREE (fndecl) = 
+-      expand_array_notation_exprs (DECL_SAVED_TREE (fndecl));
++    DECL_SAVED_TREE (fndecl)
++      = expand_array_notation_exprs (DECL_SAVED_TREE (fndecl));
+ 
+   /* We do want to see every occurrence of the parms, so we can't just use
+      walk_tree's hash functionality.  */
+-  cp_genericize_tree (&DECL_SAVED_TREE (fndecl));
++  cp_genericize_tree (&DECL_SAVED_TREE (fndecl), true);
+ 
+   if (flag_sanitize & SANITIZE_RETURN
+       && do_ubsan_in_current_function ())
 Index: gcc/cp/typeck2.c
 ===================================================================
 --- a/src/gcc/cp/typeck2.c	(.../tags/gcc_6_2_0_release)
@@ -18244,6 +24892,71 @@ Index: gcc/cp/typeck2.c
    if (TREE_CODE (init) == TARGET_EXPR)
      /* This represents the whole initialization.  */
      TARGET_EXPR_DIRECT_INIT_P (init) = true;
+Index: gcc/cp/pt.c
+===================================================================
+--- a/src/gcc/cp/pt.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/cp/pt.c	(.../branches/gcc-6-branch)
+@@ -13915,7 +13915,7 @@
+ 
+   init = tsubst_expr (init, args, complain, in_decl, false);
+ 
+-  if (!init)
++  if (!init && TREE_TYPE (decl) != error_mark_node)
+     {
+       /* If we had an initializer but it
+ 	 instantiated to nothing,
+@@ -21393,7 +21393,8 @@
+     if (! static_p)
+       for (tmp = TYPE_METHODS (t); tmp; tmp = DECL_CHAIN (tmp))
+ 	if (TREE_CODE (tmp) == FUNCTION_DECL
+-	    && DECL_TEMPLATE_INSTANTIATION (tmp))
++	    && DECL_TEMPLATE_INSTANTIATION (tmp)
++	    && (!extern_p || user_provided_p (tmp)))
+ 	  instantiate_class_member (tmp, extern_p);
+ 
+     for (tmp = TYPE_FIELDS (t); tmp; tmp = DECL_CHAIN (tmp))
+@@ -23586,30 +23587,27 @@
+     }
+   /* If we don't know what SCOPE refers to, then we cannot resolve the
+      TYPENAME_TYPE.  */
+-  if (TREE_CODE (scope) == TYPENAME_TYPE)
++  if (!CLASS_TYPE_P (scope))
+     return type;
+-  /* If the SCOPE is a template type parameter, we have no way of
+-     resolving the name.  */
+-  if (TREE_CODE (scope) == TEMPLATE_TYPE_PARM)
+-    return type;
+-  /* If the SCOPE is not the current instantiation, there's no reason
+-     to look inside it.  */
+-  if (only_current_p && !currently_open_class (scope))
+-    return type;
+   /* If this is a typedef, we don't want to look inside (c++/11987).  */
+   if (typedef_variant_p (type))
+     return type;
+   /* If SCOPE isn't the template itself, it will not have a valid
+      TYPE_FIELDS list.  */
+-  if (CLASS_TYPE_P (scope)
+-      && same_type_p (scope, CLASSTYPE_PRIMARY_TEMPLATE_TYPE (scope)))
++  if (same_type_p (scope, CLASSTYPE_PRIMARY_TEMPLATE_TYPE (scope)))
+     /* scope is either the template itself or a compatible instantiation
+        like X<T>, so look up the name in the original template.  */
+     scope = CLASSTYPE_PRIMARY_TEMPLATE_TYPE (scope);
+-  else
+-    /* scope is a partial instantiation, so we can't do the lookup or we
+-       will lose the template arguments.  */
++  /* We shouldn't have built a TYPENAME_TYPE with a non-dependent scope.  */
++  gcc_checking_assert (uses_template_parms (scope));
++  /* If scope has no fields, it can't be a current instantiation.  Check this
++     before currently_open_class to avoid infinite recursion (71515).  */
++  if (!TYPE_FIELDS (scope))
+     return type;
++  /* If the SCOPE is not the current instantiation, there's no reason
++     to look inside it.  */
++  if (only_current_p && !currently_open_class (scope))
++    return type;
+   /* Enter the SCOPE so that name lookup will be resolved as if we
+      were in the class definition.  In particular, SCOPE will no
+      longer be considered a dependent type.  */
 Index: gcc/cp/semantics.c
 ===================================================================
 --- a/src/gcc/cp/semantics.c	(.../tags/gcc_6_2_0_release)
@@ -18258,6 +24971,92 @@ Index: gcc/cp/semantics.c
    if (TREE_CODE (compound_literal) == CONSTRUCTOR)
      TREE_HAS_CONSTRUCTOR (compound_literal) = true;
    /* Put static/constant array temporaries in static variables, but always
+Index: gcc/cp/decl2.c
+===================================================================
+--- a/src/gcc/cp/decl2.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/cp/decl2.c	(.../branches/gcc-6-branch)
+@@ -81,6 +81,7 @@
+ static void determine_visibility_from_class (tree, tree);
+ static bool determine_hidden_inline (tree);
+ static bool decl_defined_p (tree);
++static void maybe_instantiate_decl (tree);
+ 
+ /* A list of static class variables.  This is needed, because a
+    static class variable can be declared inside the class without
+@@ -4217,7 +4218,7 @@
+      in the case of a constexpr variable, we can't treat it as a
+      constant until its initializer is complete in case it's used in
+      its own initializer.  */
+-  mark_used (decl);
++  maybe_instantiate_decl (decl);
+   return DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (decl);
+ }
+ 
+@@ -5054,6 +5055,38 @@
+   return true;
+ }
+ 
++/* Normally, we can wait until instantiation-time to synthesize DECL.
++   However, if DECL is a static data member initialized with a constant
++   or a constexpr function, we need it right now because a reference to
++   such a data member or a call to such function is not value-dependent.
++   For a function that uses auto in the return type, we need to instantiate
++   it to find out its type.  For OpenMP user defined reductions, we need
++   them instantiated for reduction clauses which inline them by hand
++   directly.  */
++
++static void
++maybe_instantiate_decl (tree decl)
++{
++  if (DECL_LANG_SPECIFIC (decl)
++      && DECL_TEMPLATE_INFO (decl)
++      && (decl_maybe_constant_var_p (decl)
++	  || (TREE_CODE (decl) == FUNCTION_DECL
++	      && DECL_OMP_DECLARE_REDUCTION_P (decl))
++	  || undeduced_auto_decl (decl))
++      && !DECL_DECLARED_CONCEPT_P (decl)
++      && !uses_template_parms (DECL_TI_ARGS (decl)))
++    {
++      /* Instantiating a function will result in garbage collection.  We
++	 must treat this situation as if we were within the body of a
++	 function so as to avoid collecting live data only referenced from
++	 the stack (such as overload resolution candidates).  */
++      ++function_depth;
++      instantiate_decl (decl, /*defer_ok=*/false,
++			/*expl_inst_class_mem_p=*/false);
++      --function_depth;
++    }
++}
++
+ /* Mark DECL (either a _DECL or a BASELINK) as "used" in the program.
+    If DECL is a specialization or implicitly declared class member,
+    generate the actual definition.  Return false if something goes
+@@ -5148,24 +5181,7 @@
+      it to find out its type.  For OpenMP user defined reductions, we need
+      them instantiated for reduction clauses which inline them by hand
+      directly.  */
+-  if (DECL_LANG_SPECIFIC (decl)
+-      && DECL_TEMPLATE_INFO (decl)
+-      && (decl_maybe_constant_var_p (decl)
+-	  || (TREE_CODE (decl) == FUNCTION_DECL
+-	      && DECL_OMP_DECLARE_REDUCTION_P (decl))
+-	  || undeduced_auto_decl (decl))
+-      && !DECL_DECLARED_CONCEPT_P (decl)
+-      && !uses_template_parms (DECL_TI_ARGS (decl)))
+-    {
+-      /* Instantiating a function will result in garbage collection.  We
+-	 must treat this situation as if we were within the body of a
+-	 function so as to avoid collecting live data only referenced from
+-	 the stack (such as overload resolution candidates).  */
+-      ++function_depth;
+-      instantiate_decl (decl, /*defer_ok=*/false,
+-			/*expl_inst_class_mem_p=*/false);
+-      --function_depth;
+-    }
++  maybe_instantiate_decl (decl);
+ 
+   if (processing_template_decl || in_template_function ())
+     return true;
 Index: gcc/cp/parser.c
 ===================================================================
 --- a/src/gcc/cp/parser.c	(.../tags/gcc_6_2_0_release)
@@ -18273,6 +25072,111 @@ Index: gcc/cp/parser.c
      error_at (location_of (expr1),
  	      "binary expression in operand of fold-expression");
    else if (TREE_CODE (expr1) == COND_EXPR)
+@@ -6402,7 +6404,10 @@
+ 	   can be used in constant-expressions.  */
+ 	if (!cast_valid_in_integral_constant_expression_p (type)
+ 	    && cp_parser_non_integral_constant_expression (parser, NIC_CAST))
+-	  return error_mark_node;
++	  {
++	    postfix_expression = error_mark_node;
++	    break;
++	  }
+ 
+ 	switch (keyword)
+ 	  {
+@@ -6482,7 +6487,7 @@
+ 	parser->type_definition_forbidden_message = saved_message;
+ 	/* `typeid' may not appear in an integral constant expression.  */
+ 	if (cp_parser_non_integral_constant_expression (parser, NIC_TYPEID))
+-	  return error_mark_node;
++	  postfix_expression = error_mark_node;
+       }
+       break;
+ 
+@@ -6574,23 +6579,28 @@
+ 		    /*cast_p=*/false, /*allow_expansion_p=*/true,
+ 		    /*non_constant_p=*/NULL);
+ 	if (vec == NULL)
+-	  return error_mark_node;
++	  {
++	    postfix_expression = error_mark_node;
++	    break;
++	  }
+ 
+ 	FOR_EACH_VEC_ELT (*vec, i, p)
+ 	  mark_exp_read (p);
+ 
+ 	if (vec->length () == 2)
+-	  return build_x_vec_perm_expr (loc, (*vec)[0], NULL_TREE, (*vec)[1],
+-					 tf_warning_or_error);
++	  postfix_expression
++	    = build_x_vec_perm_expr (loc, (*vec)[0], NULL_TREE, (*vec)[1],
++				     tf_warning_or_error);
+ 	else if (vec->length () == 3)
+-	  return build_x_vec_perm_expr (loc, (*vec)[0], (*vec)[1], (*vec)[2],
+-					 tf_warning_or_error);
++	  postfix_expression
++	    = build_x_vec_perm_expr (loc, (*vec)[0], (*vec)[1], (*vec)[2],
++				     tf_warning_or_error);
+ 	else
+-	{
+-	  error_at (loc, "wrong number of arguments to "
+-	      "%<__builtin_shuffle%>");
+-	  return error_mark_node;
+-	}
++	  {
++	    error_at (loc, "wrong number of arguments to "
++			   "%<__builtin_shuffle%>");
++	    postfix_expression = error_mark_node;
++	  }
+ 	break;
+       }
+ 
+@@ -24056,8 +24066,12 @@
+       if (token->type == CPP_ELLIPSIS)
+ 	{
+ 	  cp_lexer_consume_token (parser->lexer);
+-	  TREE_VALUE (attribute)
+-	    = make_pack_expansion (TREE_VALUE (attribute));
++	  if (attribute == NULL_TREE)
++	    error_at (token->location,
++		      "expected attribute before %<...%>");
++	  else
++	    TREE_VALUE (attribute)
++	      = make_pack_expansion (TREE_VALUE (attribute));
+ 	  token = cp_lexer_peek_token (parser->lexer);
+ 	}
+       if (token->type != CPP_COMMA)
+@@ -25531,7 +25545,8 @@
+ 	      tree type = INNERMOST_TEMPLATE_PARMS (parm_type);
+ 	      tree parm_list = TREE_VEC_ELT (parameter_list, 1);
+ 	      tree parm = INNERMOST_TEMPLATE_PARMS (parm_list);
+-	      if (TREE_TYPE (parm) != TREE_TYPE (type)
++	      if (parm == error_mark_node
++		  || TREE_TYPE (parm) != TREE_TYPE (type)
+ 		  || !TEMPLATE_PARM_PARAMETER_PACK (DECL_INITIAL (parm)))
+ 		ok = false;
+ 	    }
+Index: gcc/cp/mangle.c
+===================================================================
+--- a/src/gcc/cp/mangle.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/cp/mangle.c	(.../branches/gcc-6-branch)
+@@ -4068,6 +4068,7 @@
+ tree
+ mangle_tls_init_fn (const tree variable)
+ {
++  check_abi_tags (variable);
+   start_mangling (variable);
+   write_string ("_ZTH");
+   write_guarded_var_name (variable);
+@@ -4082,6 +4083,7 @@
+ tree
+ mangle_tls_wrapper_fn (const tree variable)
+ {
++  check_abi_tags (variable);
+   start_mangling (variable);
+   write_string (TLS_WRAPPER_PREFIX);
+   write_guarded_var_name (variable);
 Index: gcc/cp/cp-tree.h
 ===================================================================
 --- a/src/gcc/cp/cp-tree.h	(.../tags/gcc_6_2_0_release)
@@ -18286,6 +25190,52 @@ Index: gcc/cp/cp-tree.h
  extern tree digest_nsdmi_init		        (tree, tree);
  extern tree build_scoped_ref			(tree, tree, tree *);
  extern tree build_x_arrow			(location_t, tree,
+Index: gcc/tree-ssa-ccp.c
+===================================================================
+--- a/src/gcc/tree-ssa-ccp.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/tree-ssa-ccp.c	(.../branches/gcc-6-branch)
+@@ -1732,7 +1732,12 @@
+     {
+       fold_defer_overflow_warnings ();
+       simplified = ccp_fold (stmt);
+-      if (simplified && TREE_CODE (simplified) == SSA_NAME)
++      if (simplified
++	  && TREE_CODE (simplified) == SSA_NAME
++	  /* We may not use values of something that may be simulated again,
++	     see valueize_op_1.  */
++	  && (SSA_NAME_IS_DEFAULT_DEF (simplified)
++	      || ! prop_simulate_again_p (SSA_NAME_DEF_STMT (simplified))))
+ 	{
+ 	  val = *get_value (simplified);
+ 	  if (val.lattice_val != VARYING)
+Index: gcc/tree-call-cdce.c
+===================================================================
+--- a/src/gcc/tree-call-cdce.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/tree-call-cdce.c	(.../branches/gcc-6-branch)
+@@ -801,14 +801,20 @@
+       if (join_tgt_in_edge_from_call == NULL)
+         return false;
+       free_dominance_info (CDI_DOMINATORS);
++      /* We don't want to handle PHIs.  */
++      if (EDGE_COUNT (join_tgt_in_edge_from_call->dest->preds) > 1)
++	join_tgt_bb = split_edge (join_tgt_in_edge_from_call);
++      else
++	join_tgt_bb = join_tgt_in_edge_from_call->dest;
+     }
+   else
+-    join_tgt_in_edge_from_call = split_block (bi_call_bb, bi_call);
++    {
++      join_tgt_in_edge_from_call = split_block (bi_call_bb, bi_call);
++      join_tgt_bb = join_tgt_in_edge_from_call->dest;
++    }
+ 
+   bi_call_bsi = gsi_for_stmt (bi_call);
+ 
+-  join_tgt_bb = join_tgt_in_edge_from_call->dest;
+-
+   /* Now it is time to insert the first conditional expression
+      into bi_call_bb and split this bb so that bi_call is
+      shrink-wrapped.  */
 Index: gcc/tree-ssa-propagate.c
 ===================================================================
 --- a/src/gcc/tree-ssa-propagate.c	(.../tags/gcc_6_2_0_release)
@@ -18777,6 +25727,43 @@ Index: gcc/tree-ssa-propagate.c
      }
  
    ssa_prop_fini ();
+Index: gcc/config.in
+===================================================================
+--- a/src/gcc/config.in	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/config.in	(.../branches/gcc-6-branch)
+@@ -538,6 +538,13 @@
+ #endif
+ 
+ 
++/* Define if your Mac OS X assembler supports the -mmacos-version-min option.
++   */
++#ifndef USED_FOR_TARGET
++#undef HAVE_AS_MMACOSX_VERSION_MIN_OPTION
++#endif
++
++
+ /* Define if the assembler understands -mnan=. */
+ #ifndef USED_FOR_TARGET
+ #undef HAVE_AS_NAN
+@@ -1908,6 +1915,18 @@
+ #endif
+ 
+ 
++/* Define to 1 if ld64 supports '-export_dynamic'. */
++#ifndef USED_FOR_TARGET
++#undef LD64_HAS_EXPORT_DYNAMIC
++#endif
++
++
++/* Define to ld64 version. */
++#ifndef USED_FOR_TARGET
++#undef LD64_VERSION
++#endif
++
++
+ /* Define to the linker option to ignore unused dependencies. */
+ #ifndef USED_FOR_TARGET
+ #undef LD_AS_NEEDED_OPTION
 Index: gcc/dwarf2out.c
 ===================================================================
 --- a/src/gcc/dwarf2out.c	(.../tags/gcc_6_2_0_release)
@@ -18791,6 +25778,44 @@ Index: gcc/dwarf2out.c
  	return lookup_type_die (type_main_variant (type));
        else
  	/* Vectors have the debugging information in the type,
+Index: gcc/match.pd
+===================================================================
+--- a/src/gcc/match.pd	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/match.pd	(.../branches/gcc-6-branch)
+@@ -828,33 +828,6 @@
+   (op:c truth_valued_p at 0 (logical_inverted_value @0))
+   { constant_boolean_node (op == NE_EXPR ? true : false, type); }))
+ 
+-/* If arg1 and arg2 are booleans (or any single bit type)
+-   then try to simplify:
+-
+-   (~X & Y) -> X < Y
+-   (X & ~Y) -> Y < X
+-   (~X | Y) -> X <= Y
+-   (X | ~Y) -> Y <= X
+-
+-   But only do this if our result feeds into a comparison as
+-   this transformation is not always a win, particularly on
+-   targets with and-not instructions.
+-   -> simplify_bitwise_binary_boolean */
+-(simplify
+-  (ne (bit_and:c (bit_not @0) @1) integer_zerop)
+-  (if (INTEGRAL_TYPE_P (TREE_TYPE (@1))
+-       && TYPE_PRECISION (TREE_TYPE (@1)) == 1)
+-   (if (TYPE_UNSIGNED (TREE_TYPE (@1)))
+-    (lt @0 @1)
+-    (gt @0 @1))))
+-(simplify
+-  (ne (bit_ior:c (bit_not @0) @1) integer_zerop)
+-  (if (INTEGRAL_TYPE_P (TREE_TYPE (@1))
+-       && TYPE_PRECISION (TREE_TYPE (@1)) == 1)
+-   (if (TYPE_UNSIGNED (TREE_TYPE (@1)))
+-    (le @0 @1)
+-    (ge @0 @1))))
+-
+ /* ~~x -> x */
+ (simplify
+   (bit_not (bit_not @0))
 Index: gcc/expr.c
 ===================================================================
 --- a/src/gcc/expr.c	(.../tags/gcc_6_2_0_release)
@@ -18809,6 +25834,44 @@ Index: gcc/expr.c
  		  }
  
  		if (BYTES_BIG_ENDIAN)
+@@ -10265,10 +10272,36 @@
+ 	if (GET_CODE (op0) == CONCAT && !must_force_mem)
+ 	  {
+ 	    if (bitpos == 0
+-		&& bitsize == GET_MODE_BITSIZE (GET_MODE (op0)))
++		&& bitsize == GET_MODE_BITSIZE (GET_MODE (op0))
++		&& COMPLEX_MODE_P (mode1)
++		&& COMPLEX_MODE_P (GET_MODE (op0))
++		&& (GET_MODE_PRECISION (GET_MODE_INNER (mode1))
++		    == GET_MODE_PRECISION (GET_MODE_INNER (GET_MODE (op0)))))
+ 	      {
+ 		if (reversep)
+ 		  op0 = flip_storage_order (GET_MODE (op0), op0);
++		if (mode1 != GET_MODE (op0))
++		  {
++		    rtx parts[2];
++		    for (int i = 0; i < 2; i++)
++		      {
++			rtx op = read_complex_part (op0, i != 0);
++			if (GET_CODE (op) == SUBREG)
++			  op = force_reg (GET_MODE (op), op);
++			rtx temp = gen_lowpart_common (GET_MODE_INNER (mode1),
++						       op);
++			if (temp)
++			  op = temp;
++			else
++			  {
++			    if (!REG_P (op) && !MEM_P (op))
++			      op = force_reg (GET_MODE (op), op);
++			    op = gen_lowpart (GET_MODE_INNER (mode1), op);
++			  }
++			parts[i] = op;
++		      }
++		    op0 = gen_rtx_CONCAT (mode1, parts[0], parts[1]);
++		  }
+ 		return op0;
+ 	      }
+ 	    if (bitpos == 0
 Index: gcc/ada/system-linux-ppc64.ads
 ===================================================================
 --- a/src/gcc/ada/system-linux-ppc64.ads	(.../tags/gcc_6_2_0_release)
@@ -19231,7 +26294,13 @@ Index: gcc/ada/ChangeLog
 ===================================================================
 --- a/src/gcc/ada/ChangeLog	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/ada/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,86 @@
+@@ -1,3 +1,92 @@
++2016-12-07  Eric Botcazou  <ebotcazou at adacore.com>
++
++	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
++	Also call finish_character_type on Character subtypes.
++	* gcc-interface/utils.c (finish_character_type): Deal with subtypes.
++
 +2016-11-22  Uros Bizjak  <ubizjak at gmail.com>
 +
 +	* gcc-interface/Make-lang.in (check-acats): Fix detection
@@ -19447,7 +26516,54 @@ Index: gcc/ada/gcc-interface/utils.c
 ===================================================================
 --- a/src/gcc/ada/gcc-interface/utils.c	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/ada/gcc-interface/utils.c	(.../branches/gcc-6-branch)
-@@ -4210,12 +4210,15 @@
+@@ -1622,11 +1622,8 @@
+   character subtypes with RM_Size = Esize = CHAR_TYPE_SIZE into signed
+   types.  The idea is to ensure that the bit pattern contained in the
+   Esize'd objects is not changed, even though the numerical value will
+-  be interpreted differently depending on the signedness.
++  be interpreted differently depending on the signedness.  */
+ 
+-  For character types, the bounds are implicit and, therefore, need to
+-  be adjusted.  Morever, the debug info needs the unsigned version.  */
+-
+ void
+ finish_character_type (tree char_type)
+ {
+@@ -1639,11 +1636,32 @@
+        ? unsigned_char_type_node
+        : copy_type (gnat_unsigned_type_for (char_type)));
+ 
++  /* Create an unsigned version of the type and set it as debug type.  */
+   TYPE_NAME (unsigned_char_type) = TYPE_NAME (char_type);
+   TYPE_STRING_FLAG (unsigned_char_type) = TYPE_STRING_FLAG (char_type);
+   TYPE_ARTIFICIAL (unsigned_char_type) = TYPE_ARTIFICIAL (char_type);
++  SET_TYPE_DEBUG_TYPE (char_type, unsigned_char_type);
+ 
+-  SET_TYPE_DEBUG_TYPE (char_type, unsigned_char_type);
++  /* If this is a subtype, make the debug type a subtype of the debug type
++     of the base type and convert literal RM bounds to unsigned.  */
++  if (TREE_TYPE (char_type))
++    {
++      tree base_unsigned_char_type = TYPE_DEBUG_TYPE (TREE_TYPE (char_type));
++      tree min_value = TYPE_RM_MIN_VALUE (char_type);
++      tree max_value = TYPE_RM_MAX_VALUE (char_type);
++
++      if (TREE_CODE (min_value) == INTEGER_CST)
++	min_value = fold_convert (base_unsigned_char_type, min_value);
++      if (TREE_CODE (max_value) == INTEGER_CST)
++	max_value = fold_convert (base_unsigned_char_type, max_value);
++
++      TREE_TYPE (unsigned_char_type) = base_unsigned_char_type;
++      SET_TYPE_RM_MIN_VALUE (unsigned_char_type, min_value);
++      SET_TYPE_RM_MAX_VALUE (unsigned_char_type, max_value);
++    }
++
++  /* Adjust the RM bounds of the original type to unsigned; that's especially
++     important for types since they are implicit in this case.  */
+   SET_TYPE_RM_MIN_VALUE (char_type, TYPE_MIN_VALUE (unsigned_char_type));
+   SET_TYPE_RM_MAX_VALUE (char_type, TYPE_MAX_VALUE (unsigned_char_type));
+ }
+@@ -4210,12 +4228,15 @@
        return convert (type, unpadded);
      }
  
@@ -19466,7 +26582,7 @@ Index: gcc/ada/gcc-interface/utils.c
  
    /* If the input is a justified modular type, we need to extract the actual
       object before converting it to any other type with the exceptions of an
-@@ -4518,7 +4521,12 @@
+@@ -4518,7 +4539,12 @@
  	  && (ecode == ARRAY_TYPE || ecode == UNCONSTRAINED_ARRAY_TYPE
  	      || (ecode == RECORD_TYPE && TYPE_CONTAINS_TEMPLATE_P (etype))))
  	return unchecked_convert (type, expr, false);
@@ -19556,6 +26672,23 @@ Index: gcc/ada/gcc-interface/decl.c
  	      || Has_Size_Clause (gnat_entity)
  	      || (!IN (kind, Numeric_Kind)
  		  && !IN (kind, Enumeration_Kind)
+@@ -1810,8 +1811,14 @@
+       TYPE_BIASED_REPRESENTATION_P (gnu_type)
+ 	= Has_Biased_Representation (gnat_entity);
+ 
+-      /* Set TYPE_STRING_FLAG for Character and Wide_Character subtypes.  */
+-      TYPE_STRING_FLAG (gnu_type) = TYPE_STRING_FLAG (TREE_TYPE (gnu_type));
++      /* Do the same processing for Character subtypes as for types.  */
++      if (TYPE_STRING_FLAG (TREE_TYPE (gnu_type)))
++	{
++	  TYPE_NAME (gnu_type) = gnu_entity_name;
++	  TYPE_STRING_FLAG (gnu_type) = 1;
++	  TYPE_ARTIFICIAL (gnu_type) = artificial_p;
++	  finish_character_type (gnu_type);
++	}
+ 
+       /* Inherit our alias set from what we're a subtype of.  Subtypes
+ 	 are not different types and a pointer can designate any instance
 Index: gcc/ada/gcc-interface/Make-lang.in
 ===================================================================
 --- a/src/gcc/ada/gcc-interface/Make-lang.in	(.../tags/gcc_6_2_0_release)
@@ -19873,10 +27006,48 @@ Index: gcc/common/config/i386/i386-common.c
      case OPT_mclwb:
        if (value)
  	{
+Index: gcc/dse.c
+===================================================================
+--- a/src/gcc/dse.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/dse.c	(.../branches/gcc-6-branch)
+@@ -3306,12 +3306,19 @@
+ 		  bitmap_clear (v);
+ 		}
+ 	      else if (insn_info->read_rec
+-                       || insn_info->non_frame_wild_read)
++		       || insn_info->non_frame_wild_read
++		       || insn_info->frame_read)
+ 		{
+-		  if (dump_file && !insn_info->non_frame_wild_read)
+-		    fprintf (dump_file, "regular read\n");
+-                  else if (dump_file && (dump_flags & TDF_DETAILS))
+-		    fprintf (dump_file, "non-frame wild read\n");
++		  if (dump_file && (dump_flags & TDF_DETAILS))
++		    {
++		      if (!insn_info->non_frame_wild_read
++			  && !insn_info->frame_read)
++			fprintf (dump_file, "regular read\n");
++		      if (insn_info->non_frame_wild_read)
++			fprintf (dump_file, "non-frame wild read\n");
++		      if (insn_info->frame_read)
++			fprintf (dump_file, "frame read\n");
++		    }
+ 		  scan_reads (insn_info, v, NULL);
+ 		}
+ 	    }
 Index: gcc/gimple-ssa-strength-reduction.c
 ===================================================================
 --- a/src/gcc/gimple-ssa-strength-reduction.c	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/gimple-ssa-strength-reduction.c	(.../branches/gcc-6-branch)
+@@ -1882,7 +1882,7 @@
+   if (align < TYPE_ALIGN (acc_type))
+     acc_type = build_aligned_type (acc_type, align);
+ 
+-  add_expr = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (c->base_expr),
++  add_expr = fold_build2 (POINTER_PLUS_EXPR, c->cand_type,
+ 			  c->base_expr, c->stride);
+   mem_ref = fold_build2 (MEM_REF, acc_type, add_expr,
+ 			 wide_int_to_tree (c->cand_type, c->index));
 @@ -2155,35 +2155,41 @@
    basis_type = TREE_TYPE (basis_name);
    lhs = make_temp_ssa_name (basis_type, NULL, "slsr");
@@ -20194,6 +27365,15 @@ Index: gcc/fortran/class.c
  }
  
  
+@@ -746,7 +748,7 @@
+ {
+   gfc_component *c;
+ 
+-  if (tb->non_overridable)
++  if (tb->non_overridable && !tb->overridden)
+     return;
+ 
+   c = gfc_find_component (vtype, name, true, true, NULL);
 Index: gcc/fortran/decl.c
 ===================================================================
 --- a/src/gcc/fortran/decl.c	(.../tags/gcc_6_2_0_release)
@@ -20380,6 +27560,26 @@ Index: gcc/fortran/trans-openmp.c
 ===================================================================
 --- a/src/gcc/fortran/trans-openmp.c	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/fortran/trans-openmp.c	(.../branches/gcc-6-branch)
+@@ -207,6 +207,9 @@
+ {
+   tree type = TREE_TYPE (decl);
+ 
++  if (gfc_omp_privatize_by_reference (decl))
++    type = TREE_TYPE (type);
++
+   if (GFC_DESCRIPTOR_TYPE_P (type)
+       && GFC_TYPE_ARRAY_AKIND (type) == GFC_ARRAY_ALLOCATABLE)
+     return true;
+@@ -214,9 +217,6 @@
+   if (GFC_DECL_GET_SCALAR_ALLOCATABLE (decl))
+     return true;
+ 
+-  if (gfc_omp_privatize_by_reference (decl))
+-    type = TREE_TYPE (type);
+-
+   if (gfc_has_alloc_comps (type, decl))
+     return true;
+ 
 @@ -2816,7 +2816,11 @@
    gfc_start_block (&block);
  
@@ -20474,7 +27674,29 @@ Index: gcc/fortran/ChangeLog
 ===================================================================
 --- a/src/gcc/fortran/ChangeLog	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/fortran/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,309 @@
+@@ -1,3 +1,331 @@
++2016-12-09  Janus Weil  <janus at gcc.gnu.org>
++
++	Backport from trunk
++	PR fortran/78593
++	* primary.c (gfc_match_varspec): Check if sym is non-null to avoid ICE.
++
++2016-12-07  Jakub Jelinek  <jakub at redhat.com>
++
++	Backported from mainline
++	2016-09-27  Jakub Jelinek  <jakub at redhat.com>
++
++	PR fortran/77666
++	* trans-openmp.c (gfc_omp_private_outer_ref): Return true even for
++	references to allocatable arrays.
++
++2016-12-04  Janus Weil  <janus at gcc.gnu.org>
++
++	Backport from trunk
++	PR fortran/78443
++	* class.c (add_proc_comp): Add a vtype component for non-overridable
++	procedures that are overriding.
++
 +2016-12-01  Steven G. Kargl  <kargl at gcc.gnu.org>
 +
 +	PR fortran/78279
@@ -21814,6 +29036,15 @@ Index: gcc/fortran/primary.c
        gfc_pop_error (&old_error);
        m = MATCH_NO;
        goto cleanup;
+@@ -2013,7 +2017,7 @@
+       if (m != MATCH_YES)
+ 	return MATCH_ERROR;
+ 
+-      if (sym->f2k_derived)
++      if (sym && sym->f2k_derived)
+ 	tbp = gfc_find_typebound_proc (sym, &t, name, false, &gfc_current_locus);
+       else
+ 	tbp = NULL;
 Index: gcc/fortran/trans-intrinsic.c
 ===================================================================
 --- a/src/gcc/fortran/trans-intrinsic.c	(.../tags/gcc_6_2_0_release)
@@ -21947,7 +29178,49 @@ Index: gcc/configure.ac
 ===================================================================
 --- a/src/gcc/configure.ac	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/configure.ac	(.../branches/gcc-6-branch)
-@@ -4437,7 +4437,7 @@
+@@ -271,6 +271,11 @@
+ gnu_ld_flag="$with_gnu_ld",
+ gnu_ld_flag=no)
+ 
++case $target in
++    *darwin*) ld64_flag=yes;; # Darwin can only use a ld64-compatible linker.
++    *) ld64_flag=no;;
++esac
++
+ # With pre-defined ld
+ AC_ARG_WITH(ld,
+ [AS_HELP_STRING([--with-ld], [arrange to use the specified ld (full pathname)])],
+@@ -280,6 +285,8 @@
+     AC_MSG_ERROR([cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER])
+   elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
+     gnu_ld_flag=yes
++  elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep ld64- > /dev/null; then
++    ld64_flag=yes
+   fi
+   AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER",
+ 	[Define to enable the use of a default linker.])
+@@ -3645,6 +3652,20 @@
+   [Define to the level of your linker's plugin support.])
+ AC_MSG_RESULT($gcc_cv_lto_plugin)
+ 
++# Target OS-specific assembler checks.
++
++case "$target_os" in
++  darwin*)
++    gcc_GAS_CHECK_FEATURE([-mmacosx-version-min option],
++      gcc_cv_as_mmacosx_version_min,,
++      [-mmacosx-version-min=10.1], [.text],,
++      [AC_DEFINE(HAVE_AS_MMACOSX_VERSION_MIN_OPTION, 1,
++	[Define if your Mac OS X assembler supports the -mmacos-version-min option.])])
++    ;;
++esac
++
++# Target CPU-specific assembler checks.
++
+ case "$target" in
+   aarch64*-*-*)
+     gcc_GAS_CHECK_FEATURE([-mabi option], gcc_cv_as_aarch64_mabi,,
+@@ -4437,7 +4458,7 @@
  	  gcc_cv_as_aix_dwloc, [2,21,0],,
  	  [	.dwsect 0xA0000
  	Lframe..0:
@@ -21956,6 +29229,66 @@ Index: gcc/configure.ac
  	  ],,
  	  [AC_DEFINE(HAVE_XCOFF_DWARF_EXTRAS, 1,
  	    [Define if your assembler supports AIX debug frame section label reference.])])
+@@ -5148,6 +5169,59 @@
+ [Define to the linker option to enable compressed debug sections.])
+ AC_MSG_RESULT($gcc_cv_ld_compress_debug)
+ 
++if test x"$ld64_flag" = x"yes"; then
++
++  # Set defaults for possibly untestable items.
++  gcc_cv_ld64_export_dynamic=0
++
++  if test "$build" = "$host"; then
++    darwin_try_test=1
++  else
++    darwin_try_test=0
++  fi
++
++  # On Darwin, because of FAT library support, it is often possible to execute
++  # exes from compatible archs even when the host differs from the build system.
++  case "$build","$host" in
++    x86_64-*-darwin*,i?86-*-darwin* | powerpc64*-*-darwin*,powerpc*-*-darwin*)
++	darwin_try_test=1;;
++    *) ;;
++  esac
++
++  # If the configurer specified a minimum ld64 version to be supported, then use
++  # that to determine feature support.
++  if test x"${gcc_cv_ld64_version}" != x; then
++    AC_MSG_CHECKING(ld64 specified version)
++    gcc_cv_ld64_major=`echo "$gcc_cv_ld64_version" | sed -e 's/\..*//'`
++    AC_MSG_RESULT($gcc_cv_ld64_major)
++   if test "$gcc_cv_ld64_major" -ge 236; then
++      gcc_cv_ld64_export_dynamic=1
++    fi
++  elif test -x "$gcc_cv_ld" -a "$darwin_try_test" -eq 1; then
++    # If the version was not specified, try to find it.
++    AC_MSG_CHECKING(linker version)
++    if test x"${gcc_cv_ld64_version}" = x; then
++      gcc_cv_ld64_version=`$gcc_cv_ld -v 2>&1 | grep ld64 | sed s/.*ld64-// | awk '{print $1}'`
++    fi
++    AC_MSG_RESULT($gcc_cv_ld64_version)
++
++    AC_MSG_CHECKING(linker for -export_dynamic support)
++    gcc_cv_ld64_export_dynamic=1
++    if $gcc_cv_ld -export_dynamic < /dev/null 2>&1 | grep 'unknown option' > /dev/null; then
++      gcc_cv_ld64_export_dynamic=0
++    fi
++    AC_MSG_RESULT($gcc_cv_ld64_export_dynamic)
++  fi
++
++  if test x"${gcc_cv_ld64_version}" != x; then
++    AC_DEFINE_UNQUOTED(LD64_VERSION, "${gcc_cv_ld64_version}",
++      [Define to ld64 version.])
++  fi
++
++  AC_DEFINE_UNQUOTED(LD64_HAS_EXPORT_DYNAMIC, $gcc_cv_ld64_export_dynamic,
++  [Define to 1 if ld64 supports '-export_dynamic'.])
++fi
++
+ # --------
+ # UNSORTED
+ # --------
 Index: gcc/BASE-VER
 ===================================================================
 --- a/src/gcc/BASE-VER	(.../tags/gcc_6_2_0_release)
@@ -21963,6 +29296,24 @@ Index: gcc/BASE-VER
 @@ -1 +1 @@
 -6.2.0
 +6.2.1
+Index: gcc/alias.c
+===================================================================
+--- a/src/gcc/alias.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/alias.c	(.../branches/gcc-6-branch)
+@@ -2746,6 +2746,13 @@
+       || TREE_CODE (expry) == CONST_DECL)
+     return 1;
+ 
++  /* If either of the decls doesn't have DECL_RTL set (e.g. marked as
++     living in multiple places), we can't tell anything.  Exception
++     are FUNCTION_DECLs for which we can create DECL_RTL on demand.  */
++  if ((!DECL_RTL_SET_P (exprx) && TREE_CODE (exprx) != FUNCTION_DECL)
++      || (!DECL_RTL_SET_P (expry) && TREE_CODE (expry) != FUNCTION_DECL))
++    return 0;
++
+   rtlx = DECL_RTL (exprx);
+   rtly = DECL_RTL (expry);
+ 
 Index: gcc/tree-data-ref.c
 ===================================================================
 --- a/src/gcc/tree-data-ref.c	(.../tags/gcc_6_2_0_release)
@@ -21988,7 +29339,52 @@ Index: gcc/tree-vect-data-refs.c
 ===================================================================
 --- a/src/gcc/tree-vect-data-refs.c	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/tree-vect-data-refs.c	(.../branches/gcc-6-branch)
-@@ -2703,10 +2703,17 @@
+@@ -765,10 +765,25 @@
+   base = ref;
+   while (handled_component_p (base))
+     base = TREE_OPERAND (base, 0);
++  unsigned int base_alignment;
++  unsigned HOST_WIDE_INT base_bitpos;
++  get_object_alignment_1 (base, &base_alignment, &base_bitpos);
++  /* As data-ref analysis strips the MEM_REF down to its base operand
++     to form DR_BASE_ADDRESS and adds the offset to DR_INIT we have to
++     adjust things to make base_alignment valid as the alignment of
++     DR_BASE_ADDRESS.  */
+   if (TREE_CODE (base) == MEM_REF)
+-    base = build2 (MEM_REF, TREE_TYPE (base), base_addr,
+-		   build_int_cst (TREE_TYPE (TREE_OPERAND (base, 1)), 0));
+-  unsigned int base_alignment = get_object_alignment (base);
++    {
++      base_bitpos -= mem_ref_offset (base).to_short_addr () * BITS_PER_UNIT;
++      base_bitpos &= (base_alignment - 1);
++    }
++  if (base_bitpos != 0)
++    base_alignment = base_bitpos & -base_bitpos;
++  /* Also look at the alignment of the base address DR analysis
++     computed.  */
++  unsigned int base_addr_alignment = get_pointer_alignment (base_addr);
++  if (base_addr_alignment > base_alignment)
++    base_alignment = base_addr_alignment;
+ 
+   if (base_alignment >= TYPE_ALIGN (TREE_TYPE (vectype)))
+     DR_VECT_AUX (dr)->base_element_aligned = true;
+@@ -790,12 +805,9 @@
+ 
+   if (base_alignment < TYPE_ALIGN (vectype))
+     {
+-      /* Strip an inner MEM_REF to a bare decl if possible.  */
+-      if (TREE_CODE (base) == MEM_REF
+-	  && integer_zerop (TREE_OPERAND (base, 1))
+-	  && TREE_CODE (TREE_OPERAND (base, 0)) == ADDR_EXPR)
+-	base = TREE_OPERAND (TREE_OPERAND (base, 0), 0);
+-
++      base = base_addr;
++      if (TREE_CODE (base) == ADDR_EXPR)
++	base = TREE_OPERAND (base, 0);
+       if (!vect_can_force_dr_alignment_p (base, TYPE_ALIGN (vectype)))
+ 	{
+ 	  if (dump_enabled_p ())
+@@ -2703,10 +2715,17 @@
        data_reference_p dra = datarefs_copy[i];
        stmt_vec_info stmtinfo_a = vinfo_for_stmt (DR_STMT (dra));
        stmt_vec_info lastinfo = NULL;
@@ -22046,7 +29442,50 @@ Index: gcc/gimplify.c
        return GS_ALL_DONE;
      }
  }
-@@ -11693,6 +11692,10 @@
+@@ -7817,9 +7816,10 @@
+       && omp_shared_to_firstprivate_optimizable_decl_p (decl))
+     omp_mark_stores (gimplify_omp_ctxp->outer_context, decl);
+ 
++  tree chain = *list_p;
+   clause = build_omp_clause (input_location, code);
+   OMP_CLAUSE_DECL (clause) = decl;
+-  OMP_CLAUSE_CHAIN (clause) = *list_p;
++  OMP_CLAUSE_CHAIN (clause) = chain;
+   if (private_debug)
+     OMP_CLAUSE_PRIVATE_DEBUG (clause) = 1;
+   else if (code == OMP_CLAUSE_PRIVATE && (flags & GOVD_PRIVATE_OUTER_REF))
+@@ -7846,7 +7846,7 @@
+       OMP_CLAUSE_SET_MAP_KIND (clause, GOMP_MAP_ALLOC);
+       OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION (clause) = 1;
+       OMP_CLAUSE_SET_MAP_KIND (nc, GOMP_MAP_FIRSTPRIVATE_POINTER);
+-      OMP_CLAUSE_CHAIN (nc) = *list_p;
++      OMP_CLAUSE_CHAIN (nc) = chain;
+       OMP_CLAUSE_CHAIN (clause) = nc;
+       struct gimplify_omp_ctx *ctx = gimplify_omp_ctxp;
+       gimplify_omp_ctxp = ctx->outer_context;
+@@ -7916,7 +7916,7 @@
+       tree nc = build_omp_clause (input_location, OMP_CLAUSE_LASTPRIVATE);
+       OMP_CLAUSE_DECL (nc) = decl;
+       OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE (nc) = 1;
+-      OMP_CLAUSE_CHAIN (nc) = *list_p;
++      OMP_CLAUSE_CHAIN (nc) = chain;
+       OMP_CLAUSE_CHAIN (clause) = nc;
+       struct gimplify_omp_ctx *ctx = gimplify_omp_ctxp;
+       gimplify_omp_ctxp = ctx->outer_context;
+@@ -7927,6 +7927,12 @@
+   struct gimplify_omp_ctx *ctx = gimplify_omp_ctxp;
+   gimplify_omp_ctxp = ctx->outer_context;
+   lang_hooks.decls.omp_finish_clause (clause, pre_p);
++  if (gimplify_omp_ctxp)
++    for (; clause != chain; clause = OMP_CLAUSE_CHAIN (clause))
++      if (OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_MAP
++	  && DECL_P (OMP_CLAUSE_SIZE (clause)))
++	omp_notice_variable (gimplify_omp_ctxp, OMP_CLAUSE_SIZE (clause),
++			     true);
+   gimplify_omp_ctxp = ctx;
+   return 0;
+ }
+@@ -11693,6 +11699,10 @@
    /* ??? Add some way to ignore exceptions for this TFE.  */
    if (flag_instrument_function_entry_exit
        && !DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT (fndecl)
@@ -22207,6 +29646,294 @@ Index: gcc/tree-ssa-phiopt.c
    result = duplicate_ssa_name (result, NULL);
  
    if (negate)
+Index: gcc/multiple_target.c
+===================================================================
+--- a/src/gcc/multiple_target.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/multiple_target.c	(.../branches/gcc-6-branch)
+@@ -101,22 +101,18 @@
+ {
+   tree arg;
+   int str_len_sum = 0;
+-  int argnum = 1;
++  int argnum = 0;
+ 
+   for (arg = arglist; arg; arg = TREE_CHAIN (arg))
+     {
+-      unsigned int i;
+       const char *str = TREE_STRING_POINTER (TREE_VALUE (arg));
+-      int len = strlen (str);
+-
++      size_t len = strlen (str);
+       str_len_sum += len + 1;
+-      if (arg != arglist)
++      for (const char *p = strchr (str, ','); p; p = strchr (p + 1, ','))
+ 	argnum++;
+-      for (i = 0; i < strlen (str); i++)
+-	if (str[i] == ',')
+-	  argnum++;
++      argnum++;
+     }
+-  if (argnum == 1)
++  if (argnum <= 1)
+     return -1;
+   return str_len_sum;
+ }
+@@ -134,8 +130,9 @@
+   for (arg = arglist; arg; arg = TREE_CHAIN (arg))
+     {
+       const char *str = TREE_STRING_POINTER (TREE_VALUE (arg));
+-
+       size_t len = strlen (str);
++      for (const char *p = strchr (str, ','); p; p = strchr (p + 1, ','))
++	argnum++;
+       memcpy (attr_str + str_len_sum, str, len);
+       attr_str[str_len_sum + len] = TREE_CHAIN (arg) ? ',' : '\0';
+       str_len_sum += len + 1;
+@@ -152,19 +149,16 @@
+ {
+   int i = 0;
+   bool has_default = false;
+-  char *attr = strtok (attr_str, ",");
+ 
+-  while (attr != NULL)
++  for (char *attr = strtok (attr_str, ",");
++       attr != NULL; attr = strtok (NULL, ","))
+     {
+       if (strcmp (attr, "default") == 0)
+ 	{
+ 	  has_default = true;
+-	  attr = strtok (NULL, ",");
+ 	  continue;
+ 	}
+-      attrs[i] = attr;
+-      attr = strtok (NULL, ",");
+-      i++;
++      attrs[i++] = attr;
+     }
+   if (!has_default)
+     return -1;
+@@ -235,7 +229,7 @@
+    create the appropriate clone for each valid target attribute.  */
+ 
+ static bool
+-expand_target_clones (struct cgraph_node *node, bool defenition)
++expand_target_clones (struct cgraph_node *node, bool definition)
+ {
+   int i;
+   /* Parsing target attributes separated by comma.  */
+@@ -266,6 +260,8 @@
+     {
+       error_at (DECL_SOURCE_LOCATION (node->decl),
+ 		"default target was not set");
++      XDELETEVEC (attrs);
++      XDELETEVEC (attr_str);
+       return false;
+     }
+ 
+@@ -286,7 +282,7 @@
+ 
+       create_new_asm_name (attr, suffix);
+       /* Create new target clone.  */
+-      cgraph_node *new_node = create_target_clone (node, defenition, suffix);
++      cgraph_node *new_node = create_target_clone (node, definition, suffix);
+       XDELETEVEC (suffix);
+ 
+       /* Set new attribute for the clone.  */
+@@ -293,15 +289,17 @@
+       tree attributes = make_attribute ("target", attr,
+ 					DECL_ATTRIBUTES (new_node->decl));
+       DECL_ATTRIBUTES (new_node->decl) = attributes;
++      location_t saved_loc = input_location;
++      input_location = DECL_SOURCE_LOCATION (node->decl);
+       if (!targetm.target_option.valid_attribute_p (new_node->decl, NULL,
+-						    TREE_VALUE (attributes), 0))
++						    TREE_VALUE (attributes),
++						    0))
+ 	{
+-	  warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
+-		      "attribute(target_clones(\"%s\")) is not "
+-		      "valid for current target", attr);
++	  input_location = saved_loc;
+ 	  continue;
+ 	}
+ 
++      input_location = saved_loc;
+       decl2_v = new_node->function_version ();
+       if (decl2_v != NULL)
+         continue;
+@@ -320,22 +318,20 @@
+       DECL_FUNCTION_VERSIONED (new_node->decl) = 1;
+     }
+ 
++  XDELETEVEC (attrs);
++  XDELETEVEC (attr_str);
++
+   /* Setting new attribute to initial function.  */
+-  tree attributes =  make_attribute ("target", "default",
+-				     DECL_ATTRIBUTES (node->decl));
++  tree attributes = make_attribute ("target", "default",
++				    DECL_ATTRIBUTES (node->decl));
+   DECL_ATTRIBUTES (node->decl) = attributes;
+-  if (!targetm.target_option.valid_attribute_p (node->decl, NULL,
+-						TREE_VALUE (attributes), 0))
+-    {
+-      error_at (DECL_SOURCE_LOCATION (node->decl),
+-		"attribute(target_clones(\"default\")) is not "
+-		"valid for current target");
+-      return false;
+-    }
+-
+-  XDELETEVEC (attrs);
+-  XDELETEVEC (attr_str);
+-  return true;
++  location_t saved_loc = input_location;
++  input_location = DECL_SOURCE_LOCATION (node->decl);
++  bool ret
++    = targetm.target_option.valid_attribute_p (node->decl, NULL,
++					       TREE_VALUE (attributes), 0);
++  input_location = saved_loc;
++  return ret;
+ }
+ 
+ static bool target_clone_pass;
+Index: gcc/expmed.c
+===================================================================
+--- a/src/gcc/expmed.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/expmed.c	(.../branches/gcc-6-branch)
+@@ -4031,11 +4031,10 @@
+   op1_is_constant = CONST_INT_P (op1);
+   if (op1_is_constant)
+     {
+-      unsigned HOST_WIDE_INT ext_op1 = UINTVAL (op1);
+-      if (unsignedp)
+-	ext_op1 &= GET_MODE_MASK (mode);
+-      op1_is_pow2 = ((EXACT_POWER_OF_2_OR_ZERO_P (ext_op1)
+-		     || (! unsignedp && EXACT_POWER_OF_2_OR_ZERO_P (-ext_op1))));
++      wide_int ext_op1 = rtx_mode_t (op1, mode);
++      op1_is_pow2 = (wi::popcount (ext_op1) == 1
++		     || (! unsignedp
++			 && wi::popcount (wi::neg (ext_op1)) == 1));
+     }
+ 
+   /*
+@@ -4116,11 +4115,10 @@
+      not straightforward to generalize this.  Maybe we should make an array
+      of possible modes in init_expmed?  Save this for GCC 2.7.  */
+ 
+-  optab1 = ((op1_is_pow2 && op1 != const0_rtx)
++  optab1 = (op1_is_pow2
+ 	    ? (unsignedp ? lshr_optab : ashr_optab)
+ 	    : (unsignedp ? udiv_optab : sdiv_optab));
+-  optab2 = ((op1_is_pow2 && op1 != const0_rtx)
+-	    ? optab1
++  optab2 = (op1_is_pow2 ? optab1
+ 	    : (unsignedp ? udivmod_optab : sdivmod_optab));
+ 
+   for (compute_mode = mode; compute_mode != VOIDmode;
+@@ -4176,10 +4174,15 @@
+       /* convert_modes may have placed op1 into a register, so we
+ 	 must recompute the following.  */
+       op1_is_constant = CONST_INT_P (op1);
+-      op1_is_pow2 = (op1_is_constant
+-		     && ((EXACT_POWER_OF_2_OR_ZERO_P (INTVAL (op1))
+-			  || (! unsignedp
+-			      && EXACT_POWER_OF_2_OR_ZERO_P (-UINTVAL (op1))))));
++      if (op1_is_constant)
++	{
++	  wide_int ext_op1 = rtx_mode_t (op1, compute_mode);
++	  op1_is_pow2 = (wi::popcount (ext_op1) == 1
++			 || (! unsignedp
++			     && wi::popcount (wi::neg (ext_op1)) == 1));
++	}
++      else
++	op1_is_pow2 = 0;
+     }
+ 
+   /* If one of the operands is a volatile MEM, copy it into a register.  */
+@@ -4219,10 +4222,10 @@
+ 		unsigned HOST_WIDE_INT mh, ml;
+ 		int pre_shift, post_shift;
+ 		int dummy;
+-		unsigned HOST_WIDE_INT d = (INTVAL (op1)
+-					    & GET_MODE_MASK (compute_mode));
++		wide_int wd = rtx_mode_t (op1, compute_mode);
++		unsigned HOST_WIDE_INT d = wd.to_uhwi ();
+ 
+-		if (EXACT_POWER_OF_2_OR_ZERO_P (d))
++		if (wi::popcount (wd) == 1)
+ 		  {
+ 		    pre_shift = floor_log2 (d);
+ 		    if (rem_flag)
+@@ -4362,7 +4365,7 @@
+ 		else if (d == -1)
+ 		  quotient = expand_unop (compute_mode, neg_optab, op0,
+ 					  tquotient, 0);
+-		else if (HOST_BITS_PER_WIDE_INT >= size
++		else if (size <= HOST_BITS_PER_WIDE_INT
+ 			 && abs_d == (unsigned HOST_WIDE_INT) 1 << (size - 1))
+ 		  {
+ 		    /* This case is not handled correctly below.  */
+@@ -4372,6 +4375,7 @@
+ 		      goto fail1;
+ 		  }
+ 		else if (EXACT_POWER_OF_2_OR_ZERO_P (d)
++			 && (size <= HOST_BITS_PER_WIDE_INT || d >= 0)
+ 			 && (rem_flag
+ 			     ? smod_pow2_cheap (speed, compute_mode)
+ 			     : sdiv_pow2_cheap (speed, compute_mode))
+@@ -4385,7 +4389,9 @@
+ 						compute_mode)
+ 				 != CODE_FOR_nothing)))
+ 		  ;
+-		else if (EXACT_POWER_OF_2_OR_ZERO_P (abs_d))
++		else if (EXACT_POWER_OF_2_OR_ZERO_P (abs_d)
++			 && (size <= HOST_BITS_PER_WIDE_INT
++			     || abs_d != (unsigned HOST_WIDE_INT) d))
+ 		  {
+ 		    if (rem_flag)
+ 		      {
+@@ -4520,7 +4526,7 @@
+       case FLOOR_DIV_EXPR:
+       case FLOOR_MOD_EXPR:
+       /* We will come here only for signed operations.  */
+-	if (op1_is_constant && HOST_BITS_PER_WIDE_INT >= size)
++	if (op1_is_constant && size <= HOST_BITS_PER_WIDE_INT)
+ 	  {
+ 	    unsigned HOST_WIDE_INT mh, ml;
+ 	    int pre_shift, lgup, post_shift;
+@@ -4589,9 +4595,8 @@
+ 						  op0, constm1_rtx), NULL_RTX);
+ 		t2 = expand_binop (compute_mode, ior_optab, op0, t1, NULL_RTX,
+ 				   0, OPTAB_WIDEN);
+-		nsign = expand_shift
+-		  (RSHIFT_EXPR, compute_mode, t2,
+-		   size - 1, NULL_RTX, 0);
++		nsign = expand_shift (RSHIFT_EXPR, compute_mode, t2,
++				      size - 1, NULL_RTX, 0);
+ 		t3 = force_operand (gen_rtx_MINUS (compute_mode, t1, nsign),
+ 				    NULL_RTX);
+ 		t4 = expand_divmod (0, TRUNC_DIV_EXPR, compute_mode, t3, op1,
+@@ -4700,7 +4705,10 @@
+       case CEIL_MOD_EXPR:
+ 	if (unsignedp)
+ 	  {
+-	    if (op1_is_constant && EXACT_POWER_OF_2_OR_ZERO_P (INTVAL (op1)))
++	    if (op1_is_constant
++		&& EXACT_POWER_OF_2_OR_ZERO_P (INTVAL (op1))
++		&& (size <= HOST_BITS_PER_WIDE_INT
++		    || INTVAL (op1) >= 0))
+ 	      {
+ 		rtx t1, t2, t3;
+ 		unsigned HOST_WIDE_INT d = INTVAL (op1);
+@@ -4913,7 +4921,7 @@
+ 	break;
+ 
+       case EXACT_DIV_EXPR:
+-	if (op1_is_constant && HOST_BITS_PER_WIDE_INT >= size)
++	if (op1_is_constant && size <= HOST_BITS_PER_WIDE_INT)
+ 	  {
+ 	    HOST_WIDE_INT d = INTVAL (op1);
+ 	    unsigned HOST_WIDE_INT ml;
 Index: gcc/gimple-fold.c
 ===================================================================
 --- a/src/gcc/gimple-fold.c	(.../tags/gcc_6_2_0_release)
@@ -22234,7 +29961,15 @@ Index: gcc/tree-cfgcleanup.c
 ===================================================================
 --- a/src/gcc/tree-cfgcleanup.c	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/tree-cfgcleanup.c	(.../branches/gcc-6-branch)
-@@ -602,10 +602,15 @@
+@@ -42,6 +42,7 @@
+ #include "tree-scalar-evolution.h"
+ #include "gimple-match.h"
+ #include "gimple-fold.h"
++#include "tree-ssa-loop-niter.h"
+ 
+ 
+ /* The set of blocks in that at least one of the following changes happened:
+@@ -602,10 +603,15 @@
    /* If there is an LHS, remove it, but only if its type has fixed size.
       The LHS will need to be recreated during RTL expansion and creating
       temporaries of variable-sized types is not supported.  Also don't
@@ -22253,11 +29988,51 @@ Index: gcc/tree-cfgcleanup.c
      {
        gimple_call_set_lhs (stmt, NULL_TREE);
  
+@@ -873,6 +879,18 @@
+ 	     DEST.  */
+ 	  e = single_succ_edge (split_edge (e));
+ 	}
++      else
++	{
++	  /* If we merge the forwarder into a loop header verify if we
++	     are creating another loop latch edge.  If so, reset
++	     number of iteration information of the loop.  */
++	  if (dest->loop_father->header == dest
++	      && dominated_by_p (CDI_DOMINATORS, e->src, dest))
++	    {
++	      dest->loop_father->any_upper_bound = false;
++	      free_numbers_of_iterations_estimates_loop (dest->loop_father);
++	    }
++	}
+ 
+       s = redirect_edge_and_branch (e, dest);
+ 
 Index: gcc/simplify-rtx.c
 ===================================================================
 --- a/src/gcc/simplify-rtx.c	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/simplify-rtx.c	(.../branches/gcc-6-branch)
-@@ -251,15 +251,14 @@
+@@ -55,12 +55,17 @@
+ static rtx simplify_binary_operation_1 (enum rtx_code, machine_mode,
+ 					rtx, rtx, rtx, rtx);
+ 

+-/* Negate a CONST_INT rtx, truncating (because a conversion from a
+-   maximally negative number can overflow).  */
++/* Negate a CONST_INT rtx.  */
+ static rtx
+ neg_const_int (machine_mode mode, const_rtx i)
+ {
+-  return gen_int_mode (-(unsigned HOST_WIDE_INT) INTVAL (i), mode);
++  unsigned HOST_WIDE_INT val = -UINTVAL (i);
++  
++  if (GET_MODE_PRECISION (mode) > HOST_BITS_PER_WIDE_INT
++      && val == UINTVAL (i))
++    return simplify_const_unary_operation (NEG, mode, CONST_CAST_RTX (i),
++					   mode);
++  return gen_int_mode (val, mode);
+ }
+ 
+ /* Test whether expression, X, is an immediate constant that represents
+@@ -251,15 +256,14 @@
        /* If we're accessing the constant in a different mode than it was
           originally stored, attempt to fix that up via subreg simplifications.
           If that fails we have no choice but to return the original memory.  */
@@ -22276,6 +30051,22 @@ Index: gcc/simplify-rtx.c
      }
  
    return x;
+@@ -4476,9 +4480,12 @@
+       rtx value = ops[n_ops - 1].op;
+       if (ops[n_ops - 1].neg ^ ops[n_ops - 2].neg)
+ 	value = neg_const_int (mode, value);
+-      ops[n_ops - 2].op = plus_constant (mode, ops[n_ops - 2].op,
+-					 INTVAL (value));
+-      n_ops--;
++      if (CONST_INT_P (value))
++	{
++	  ops[n_ops - 2].op = plus_constant (mode, ops[n_ops - 2].op,
++					     INTVAL (value));
++	  n_ops--;
++	}
+     }
+ 
+   /* Put a non-negated operand first, if possible.  */
 Index: gcc/tree-ssa-pre.c
 ===================================================================
 --- a/src/gcc/tree-ssa-pre.c	(.../tags/gcc_6_2_0_release)
@@ -22499,6 +30290,44 @@ Index: gcc/loop-invariant.c
  	    }
  	  continue;
  	}
+Index: gcc/ubsan.c
+===================================================================
+--- a/src/gcc/ubsan.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/ubsan.c	(.../branches/gcc-6-branch)
+@@ -314,6 +314,10 @@
+     return 0;
+ }
+ 
++/* Counters for internal labels.  ubsan_ids[0] for Lubsan_type,
++   ubsan_ids[1] for Lubsan_data labels.  */
++static GTY(()) unsigned int ubsan_ids[2];
++
+ /* Helper routine that returns ADDR_EXPR of a VAR_DECL of a type
+    descriptor.  It first looks into the hash table; if not found,
+    create the VAR_DECL, put it into the hash table and return the
+@@ -461,10 +465,9 @@
+   TREE_STATIC (str) = 1;
+ 
+   char tmp_name[32];
+-  static unsigned int type_var_id_num;
+-  ASM_GENERATE_INTERNAL_LABEL (tmp_name, "Lubsan_type", type_var_id_num++);
++  ASM_GENERATE_INTERNAL_LABEL (tmp_name, "Lubsan_type", ubsan_ids[0]++);
+   decl = build_decl (UNKNOWN_LOCATION, VAR_DECL, get_identifier (tmp_name),
+-			  dtype);
++		     dtype);
+   TREE_STATIC (decl) = 1;
+   TREE_PUBLIC (decl) = 0;
+   DECL_ARTIFICIAL (decl) = 1;
+@@ -564,8 +567,7 @@
+ 
+   /* Now, fill in the type.  */
+   char tmp_name[32];
+-  static unsigned int ubsan_var_id_num;
+-  ASM_GENERATE_INTERNAL_LABEL (tmp_name, "Lubsan_data", ubsan_var_id_num++);
++  ASM_GENERATE_INTERNAL_LABEL (tmp_name, "Lubsan_data", ubsan_ids[1]++);
+   tree var = build_decl (UNKNOWN_LOCATION, VAR_DECL, get_identifier (tmp_name),
+ 			 ret);
+   TREE_STATIC (var) = 1;
 Index: gcc/lto/lto.c
 ===================================================================
 --- a/src/gcc/lto/lto.c	(.../tags/gcc_6_2_0_release)
@@ -22554,7 +30383,7 @@ Index: gcc/po/es.po
 ===================================================================
 --- a/src/gcc/po/es.po	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/po/es.po	(.../branches/gcc-6-branch)
-@@ -1,37 +1,63 @@
+@@ -1,37 +1,64 @@
  # Mensajes en español para gcc-4.7.2.
 -# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 +# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2016 Free Software Foundation, Inc.
@@ -22584,6 +30413,7 @@ Index: gcc/po/es.po
 +# scheduler       - planificador
 +# SSA             - SSA
 +# statement       - sentencia
++# Thumb           - TBD
 +# ubsan           - ubsan
 +#
 +# advierte de -> avisa sobre
@@ -22598,7 +30428,7 @@ Index: gcc/po/es.po
 -"Last-Translator: Cristian Othón Martínez Vera <cfuga at cfuga.mx>\n"
 -"Language-Team: Spanish <es at li.org>\n"
 +"POT-Creation-Date: 2016-08-19 21:03+0000\n"
-+"PO-Revision-Date: 2016-12-01 23:28+0100\n"
++"PO-Revision-Date: 2016-12-08 19:25+0100\n"
 +"Last-Translator: Antonio Ceballos <aceballos at gmail.com>\n"
 +"Language-Team: Spanish <es at tp.org.es>\n"
  "Language: es\n"
@@ -22628,7 +30458,7 @@ Index: gcc/po/es.po
  msgid "return not followed by barrier"
  msgstr "return no es seguido por una barrera"
  
-@@ -94,62 +120,56 @@
+@@ -94,62 +121,56 @@
  msgid "const/copy propagation disabled"
  msgstr "propagación const/copy desactivada"
  
@@ -22706,30 +30536,386 @@ Index: gcc/po/es.po
  #, c-format
  msgid "Internal compiler error: Error reporting routines re-entered.\n"
  msgstr "Error interno del compilador: Error al reportar rutinas reentradas.\n"
-@@ -285,19 +305,19 @@
- #, fuzzy
- #| msgid "  -pass-exit-codes         Exit with highest error code from a phase\n"
+@@ -164,7 +185,7 @@
+ 
+ #: final.c:3402
+ msgid "invalid 'asm': "
+-msgstr "'asm' inválido: "
++msgstr "'asm' no válido: "
+ 
+ #: final.c:3531
+ #, c-format
+@@ -189,7 +210,7 @@
+ #: final.c:3774
+ #, c-format
+ msgid "invalid %%-code"
+-msgstr "%%-código inválido"
++msgstr "%%-código no válido"
+ 
+ #: final.c:3804
+ #, c-format
+@@ -212,7 +233,7 @@
+ #: config/pdp11/pdp11.c:1732
+ #, c-format
+ msgid "invalid expression as operand"
+-msgstr "expresión inválida como operando"
++msgstr "expresión no válida como operando"
+ 
+ #: gcc.c:119
+ #, c-format
+@@ -282,294 +303,194 @@
+ msgstr "Opciones:\n"
+ 
+ #: gcc.c:3384
+-#, fuzzy
+-#| msgid "  -pass-exit-codes         Exit with highest error code from a phase\n"
  msgid "  -pass-exit-codes         Exit with highest error code from a phase.\n"
 -msgstr "  -pass-exit-codes         Sale con el código de error más alto de una fase\n"
 +msgstr "  -pass-exit-codes         Sale con el código de error más alto de una fase.\n"
  
  #: gcc.c:3385
- #, fuzzy
- #| msgid "  --help                   Display this information\n"
+-#, fuzzy
+-#| msgid "  --help                   Display this information\n"
  msgid "  --help                   Display this information.\n"
 -msgstr "  --help                   Muestra esta información\n"
 +msgstr "  --help                   Muestra esta información.\n"
  
  #: gcc.c:3386
- #, fuzzy
- #| msgid "  --target-help            Display target specific command line options\n"
+-#, fuzzy
+-#| msgid "  --target-help            Display target specific command line options\n"
  msgid "  --target-help            Display target specific command line options.\n"
 -msgstr "  --target-help            Muestra opciones de línea de órdenes específicas del objetivo\n"
 +msgstr "  --target-help            Muestra opciones de línea de órdenes específicas del objetivo.\n"
  
  #: gcc.c:3387
- #, fuzzy
-@@ -594,62 +614,62 @@
+-#, fuzzy
+-#| msgid "  --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]\n"
+ msgid "  --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...].\n"
+-msgstr "  --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]\n"
++msgstr "  --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...].\n"
+ 
+ #: gcc.c:3388
+-#, fuzzy
+-#| msgid "                           Display specific types of command line options\n"
+ msgid "                           Display specific types of command line options.\n"
+-msgstr "                           Muestra tipos específicos de opciones de línea de órdenes\n"
++msgstr "                           Muestra tipos específicos de opciones de línea de órdenes.\n"
+ 
+ #: gcc.c:3390
+-#, fuzzy
+-#| msgid "  (Use '-v --help' to display command line options of sub-processes)\n"
+ msgid "  (Use '-v --help' to display command line options of sub-processes).\n"
+-msgstr "  (Use '-v --help' para mostrar las opciones de línea de órdenes de los subprocesos)\n"
++msgstr "  (Use '-v --help' para mostrar las opciones de línea de órdenes de los subprocesos).\n"
+ 
+ #: gcc.c:3391
+-#, fuzzy
+-#| msgid "  --version                Display compiler version information\n"
+ msgid "  --version                Display compiler version information.\n"
+-msgstr "  --version                Muestra la información de versión del compilador\n"
++msgstr "  --version                Muestra la información de versión del compilador.\n"
+ 
+ #: gcc.c:3392
+-#, fuzzy
+-#| msgid "  -dumpspecs               Display all of the built in spec strings\n"
+ msgid "  -dumpspecs               Display all of the built in spec strings.\n"
+-msgstr "  -dumpspecs               Muestra todas las cadenas internas de especificación\n"
++msgstr "  -dumpspecs               Muestra todas las cadenas internas de especificación.\n"
+ 
+ #: gcc.c:3393
+-#, fuzzy
+-#| msgid "  -dumpversion             Display the version of the compiler\n"
+ msgid "  -dumpversion             Display the version of the compiler.\n"
+-msgstr "  -dumpversion             Muestra la versión del compilador\n"
++msgstr "  -dumpversion             Muestra la versión del compilador.\n"
+ 
+ #: gcc.c:3394
+-#, fuzzy
+-#| msgid "  -dumpmachine             Display the compiler's target processor\n"
+ msgid "  -dumpmachine             Display the compiler's target processor.\n"
+-msgstr "  -dumpmachine             Muestra el procesador objetivo del compilador\n"
++msgstr "  -dumpmachine             Muestra el procesador objetivo del compilador.\n"
+ 
+ #: gcc.c:3395
+-#, fuzzy
+-#| msgid "  -print-search-dirs       Display the directories in the compiler's search path\n"
+ msgid "  -print-search-dirs       Display the directories in the compiler's search path.\n"
+-msgstr "  -print-search-dirs       Muestra los directorios en la ruta de búsqueda del compilador\n"
++msgstr "  -print-search-dirs       Muestra los directorios en la ruta de búsqueda del compilador.\n"
+ 
+ #: gcc.c:3396
+-#, fuzzy
+-#| msgid "  -print-libgcc-file-name  Display the name of the compiler's companion library\n"
+ msgid "  -print-libgcc-file-name  Display the name of the compiler's companion library.\n"
+-msgstr "  -print-libgcc-file-name  Muestra el nombre de la biblioteca que acompaña al compilador\n"
++msgstr "  -print-libgcc-file-name  Muestra el nombre de la biblioteca que acompaña al compilador.\n"
+ 
+ #: gcc.c:3397
+-#, fuzzy
+-#| msgid "  -print-file-name=<lib>   Display the full path to library <lib>\n"
+ msgid "  -print-file-name=<lib>   Display the full path to library <lib>.\n"
+-msgstr "  -print-file-name=<bib>   Muestra la ruta completa a la biblioteca <bib>\n"
++msgstr "  -print-file-name=<bib>   Muestra la ruta completa a la biblioteca <bib>.\n"
+ 
+ #: gcc.c:3398
+-#, fuzzy
+-#| msgid "  -print-prog-name=<prog>  Display the full path to compiler component <prog>\n"
+ msgid "  -print-prog-name=<prog>  Display the full path to compiler component <prog>.\n"
+-msgstr "  -print-prog-name=<prog>  Muestra la ruta completa del programa componente del compilador <prog>\n"
++msgstr "  -print-prog-name=<prog>  Muestra la ruta completa del programa componente del compilador <prog>.\n"
+ 
+ #: gcc.c:3399
+-#, fuzzy
+-#| msgid ""
+-#| "  -print-multi-lib         Display the mapping between command line options and\n"
+-#| "                           multiple library search directories\n"
+ msgid ""
+ "  -print-multiarch         Display the target's normalized GNU triplet, used as\n"
+ "                           a component in the library path.\n"
+ msgstr ""
+-"  -print-multi-lib         Muestra el mapeo entre las opciones de línea de órdenes\n"
+-"                           y los múltiples directorios de búsqueda de bibliotecas\n"
++"  -print-multiarch         Muestra el triplete GNU normalizado del destino, usado como\n"
++"                           como componente en la ruta de la biblioteca.\n"
+ 
+ #: gcc.c:3402
+-#, fuzzy
+-#| msgid "  -print-multi-directory   Display the root directory for versions of libgcc\n"
+ msgid "  -print-multi-directory   Display the root directory for versions of libgcc.\n"
+-msgstr "  -print-multi-directory   Muestra el directorio raíz para las versiones de libgcc\n"
++msgstr "  -print-multi-directory   Muestra el directorio raíz para las versiones de libgcc.\n"
+ 
+ #: gcc.c:3403
+-#, fuzzy
+-#| msgid ""
+-#| "  -print-multi-lib         Display the mapping between command line options and\n"
+-#| "                           multiple library search directories\n"
+ msgid ""
+ "  -print-multi-lib         Display the mapping between command line options and\n"
+ "                           multiple library search directories.\n"
+ msgstr ""
+ "  -print-multi-lib         Muestra el mapeo entre las opciones de línea de órdenes\n"
+-"                           y los múltiples directorios de búsqueda de bibliotecas\n"
++"                           y los múltiples directorios de búsqueda de bibliotecas.\n"
+ 
+ #: gcc.c:3406
+-#, fuzzy
+-#| msgid "  -print-multi-os-directory Display the relative path to OS libraries\n"
+ msgid "  -print-multi-os-directory Display the relative path to OS libraries.\n"
+-msgstr "  -print-multi-os-directory Muestra la ruta relativa para las bibliotecas del SO\n"
++msgstr "  -print-multi-os-directory Muestra la ruta relativa para las bibliotecas del SO.\n"
+ 
+ #: gcc.c:3407
+-#, fuzzy
+-#| msgid "  -print-sysroot           Display the target libraries directory\n"
+ msgid "  -print-sysroot           Display the target libraries directory.\n"
+-msgstr "  -print-sysroot           Muestra el directorio de las bibliotecas objetivo\n"
++msgstr "  -print-sysroot           Muestra el directorio de las bibliotecas objetivo.\n"
+ 
+ #: gcc.c:3408
+-#, fuzzy
+-#| msgid "  -print-sysroot-headers-suffix Display the sysroot suffix used to find headers\n"
+ msgid "  -print-sysroot-headers-suffix Display the sysroot suffix used to find headers.\n"
+-msgstr "  -print-sysroot-headers-suffix Muestra el sufijo sysroot que se usa para buscar encabezados\n"
++msgstr "  -print-sysroot-headers-suffix Muestra el sufijo sysroot que se usa para buscar encabezados.\n"
+ 
+ #: gcc.c:3409
+-#, fuzzy
+-#| msgid "  -Wa,<options>            Pass comma-separated <options> on to the assembler\n"
+ msgid "  -Wa,<options>            Pass comma-separated <options> on to the assembler.\n"
+-msgstr "  -Wa,<opciones>           Pasa <opciones> separadas por coma al ensamblador\n"
++msgstr "  -Wa,<opciones>           Pasa <opciones> separadas por coma al ensamblador.\n"
+ 
+ #: gcc.c:3410
+-#, fuzzy
+-#| msgid "  -Wp,<options>            Pass comma-separated <options> on to the preprocessor\n"
+ msgid "  -Wp,<options>            Pass comma-separated <options> on to the preprocessor.\n"
+-msgstr "  -Wp,<opciones>           Pasa <opciones> separadas por coma al preprocesador\n"
++msgstr "  -Wp,<opciones>           Pasa <opciones> separadas por coma al preprocesador.\n"
+ 
+ #: gcc.c:3411
+-#, fuzzy
+-#| msgid "  -Wl,<options>            Pass comma-separated <options> on to the linker\n"
+ msgid "  -Wl,<options>            Pass comma-separated <options> on to the linker.\n"
+-msgstr "  -Wl,<opciones>           Pasa <opciones> separadas por coma al enlazador\n"
++msgstr "  -Wl,<opciones>           Pasa <opciones> separadas por coma al enlazador.\n"
+ 
+ #: gcc.c:3412
+-#, fuzzy
+-#| msgid "  -Xassembler <arg>        Pass <arg> on to the assembler\n"
+ msgid "  -Xassembler <arg>        Pass <arg> on to the assembler.\n"
+-msgstr "  -Xassembler <argumento>  Pasa el <argumento> al ensamblador\n"
++msgstr "  -Xassembler <argumento>  Pasa el <argumento> al ensamblador.\n"
+ 
+ #: gcc.c:3413
+-#, fuzzy
+-#| msgid "  -Xpreprocessor <arg>     Pass <arg> on to the preprocessor\n"
+ msgid "  -Xpreprocessor <arg>     Pass <arg> on to the preprocessor.\n"
+-msgstr "  -Xpreprocessor <argumento> Pasa el <argumento> al preprocesador\n"
++msgstr "  -Xpreprocessor <argumento> Pasa el <argumento> al preprocesador.\n"
+ 
+ #: gcc.c:3414
+-#, fuzzy
+-#| msgid "  -Xlinker <arg>           Pass <arg> on to the linker\n"
+ msgid "  -Xlinker <arg>           Pass <arg> on to the linker.\n"
+-msgstr "  -Xlinker <argumento>     Pasa el <argumento> al enlazador\n"
++msgstr "  -Xlinker <argumento>     Pasa el <argumento> al enlazador.\n"
+ 
+ #: gcc.c:3415
+-#, fuzzy
+-#| msgid "  -save-temps              Do not delete intermediate files\n"
+ msgid "  -save-temps              Do not delete intermediate files.\n"
+-msgstr "  -save-temps              No borra los ficheros intermedios\n"
++msgstr "  -save-temps              No borra los ficheros intermedios.\n"
+ 
+ #: gcc.c:3416
+-#, fuzzy
+-#| msgid "  -save-temps=<arg>        Do not delete intermediate files\n"
+ msgid "  -save-temps=<arg>        Do not delete intermediate files.\n"
+-msgstr "  -save-temps=<arg>        No borra los ficheros intermedios\n"
++msgstr "  -save-temps=<arg>        No borra los ficheros intermedios.\n"
+ 
+ #: gcc.c:3417
+-#, fuzzy
+-#| msgid ""
+-#| "  -no-canonical-prefixes   Do not canonicalize paths when building relative\n"
+-#| "                           prefixes to other gcc components\n"
+ msgid ""
+ "  -no-canonical-prefixes   Do not canonicalize paths when building relative\n"
+ "                           prefixes to other gcc components.\n"
+ msgstr ""
+ "  -no-canonical-prefixes   No crea rutas completas al construir prefijos\n"
+-"                           relativos a otros componentes de gcc\n"
++"                           relativos a otros componentes de gcc.\n"
+ 
+ #: gcc.c:3420
+-#, fuzzy
+-#| msgid "  -pipe                    Use pipes rather than intermediate files\n"
+ msgid "  -pipe                    Use pipes rather than intermediate files.\n"
+-msgstr "  -pipe                    Usa tuberías en lugar de ficheros intermedios\n"
++msgstr "  -pipe                    Usa tuberías en lugar de ficheros intermedios.\n"
+ 
+ #: gcc.c:3421
+-#, fuzzy
+-#| msgid "  -time                    Time the execution of each subprocess\n"
+ msgid "  -time                    Time the execution of each subprocess.\n"
+-msgstr "  -time                    Obtiene el tiempo de ejecución de cada subproceso\n"
++msgstr "  -time                    Obtiene el tiempo de ejecución de cada subproceso.\n"
+ 
+ #: gcc.c:3422
+-#, fuzzy
+-#| msgid "  -specs=<file>            Override built-in specs with the contents of <file>\n"
+ msgid "  -specs=<file>            Override built-in specs with the contents of <file>.\n"
+-msgstr "  -specs=<fichero>         Sobrepone las especificaciones internas con el contenido del <fichero>\n"
++msgstr "  -specs=<fichero>         Sobrepone las especificaciones internas con el contenido del <fichero>.\n"
+ 
+ #: gcc.c:3423
+-#, fuzzy
+-#| msgid "  -std=<standard>          Assume that the input sources are for <standard>\n"
+ msgid "  -std=<standard>          Assume that the input sources are for <standard>.\n"
+-msgstr "  -std=<estándar>          Asume que los ficheros de entrada son para el <estándar>\n"
++msgstr "  -std=<estándar>          Asume que los ficheros de entrada son para el <estándar>.\n"
+ 
+ #: gcc.c:3424
+-#, fuzzy
+-#| msgid ""
+-#| "  --sysroot=<directory>    Use <directory> as the root directory for headers\n"
+-#| "                           and libraries\n"
+ msgid ""
+ "  --sysroot=<directory>    Use <directory> as the root directory for headers\n"
+ "                           and libraries.\n"
+ msgstr ""
+ "  --sysroot=<directorio>   Usa el <directorio> como directorio raíz para\n"
+-"                           los encabezados y bibliotecas\n"
++"                           los encabezados y bibliotecas.\n"
+ 
+ #: gcc.c:3427
+-#, fuzzy
+-#| msgid "  -B <directory>           Add <directory> to the compiler's search paths\n"
+ msgid "  -B <directory>           Add <directory> to the compiler's search paths.\n"
+-msgstr "  -B <directorio>          Agrega el <directorio> a las rutas de búsqueda del compilador\n"
++msgstr "  -B <directorio>          Agrega el <directorio> a las rutas de búsqueda del compilador.\n"
+ 
+ #: gcc.c:3428
+-#, fuzzy
+-#| msgid "  -v                       Display the programs invoked by the compiler\n"
+ msgid "  -v                       Display the programs invoked by the compiler.\n"
+-msgstr "  -v                       Muestra los programas invocados por el compilador\n"
++msgstr "  -v                       Muestra los programas invocados por el compilador.\n"
+ 
+ #: gcc.c:3429
+-#, fuzzy
+-#| msgid "  -###                     Like -v but options quoted and commands not executed\n"
+ msgid "  -###                     Like -v but options quoted and commands not executed.\n"
+-msgstr "  -###                     Como -v pero no se ejecutan las opciones entre comillas y las órdenes\n"
++msgstr "  -###                     Como -v pero no se ejecutan las opciones entre comillas y las órdenes.\n"
+ 
+ #: gcc.c:3430
+-#, fuzzy
+-#| msgid "  -E                       Preprocess only; do not compile, assemble or link\n"
+ msgid "  -E                       Preprocess only; do not compile, assemble or link.\n"
+-msgstr "  -E                       Solamente preprocesa; no compila, ensambla o enlaza\n"
++msgstr "  -E                       Solamente preprocesa; no compila, ensambla o enlaza.\n"
+ 
+ #: gcc.c:3431
+-#, fuzzy
+-#| msgid "  -S                       Compile only; do not assemble or link\n"
+ msgid "  -S                       Compile only; do not assemble or link.\n"
+-msgstr "  -S                       Solamente compila; no ensambla o enlaza\n"
++msgstr "  -S                       Solamente compila; no ensambla o enlaza.\n"
+ 
+ #: gcc.c:3432
+-#, fuzzy
+-#| msgid "  -c                       Compile and assemble, but do not link\n"
+ msgid "  -c                       Compile and assemble, but do not link.\n"
+-msgstr "  -c                       Compila y ensambla, pero no enlaza\n"
++msgstr "  -c                       Compila y ensambla, pero no enlaza.\n"
+ 
+ #: gcc.c:3433
+-#, fuzzy
+-#| msgid "  -o <file>                Place the output into <file>\n"
+ msgid "  -o <file>                Place the output into <file>.\n"
+-msgstr "  -o <fichero>             Coloca la salida en el <fichero>\n"
++msgstr "  -o <fichero>             Coloca la salida en el <fichero>.\n"
+ 
+ #: gcc.c:3434
+-#, fuzzy
+-#| msgid "  -pie                     Create a position independent executable\n"
+ msgid "  -pie                     Create a position independent executable.\n"
+-msgstr "  -pie                     Genera un ejecutable independiente de posición\n"
++msgstr "  -pie                     Genera un ejecutable independiente de posición.\n"
+ 
+ #: gcc.c:3435
+-#, fuzzy
+-#| msgid "  -shared                  Create a shared library\n"
+ msgid "  -shared                  Create a shared library.\n"
+-msgstr "  -shared                  Crea una biblioteca compartida\n"
++msgstr "  -shared                  Crea una biblioteca compartida.\n"
+ 
+ #: gcc.c:3436
+-#, fuzzy
+-#| msgid ""
+-#| "  -x <language>            Specify the language of the following input files\n"
+-#| "                           Permissible languages include: c c++ assembler none\n"
+-#| "                           'none' means revert to the default behavior of\n"
+-#| "                           guessing the language based on the file's extension\n"
+ msgid ""
+ "  -x <language>            Specify the language of the following input files.\n"
+ "                           Permissible languages include: c c++ assembler none\n"
+@@ -577,9 +498,9 @@
+ "                           guessing the language based on the file's extension.\n"
+ msgstr ""
+ "  -x <lenguaje>            Especifica el lenguaje de los siguientes ficheros de entrada\n"
+-"                           Los lenguajes permitidos incluyen: c c++ assembler none\n"
+-"                           'none' significa revertir a la conducta habitual de\n"
+-"                           adivinar el lenguaje basado en la extensión del fichero\n"
++"                           Los lenguajes permitidos son: c c++ assembler none\n"
++"                           'none' significa revertir al comportamiento habitual de\n"
++"                           adivinar el lenguaje por la extensión del fichero.\n"
+ 
+ #: gcc.c:3443
+ #, c-format
+@@ -594,62 +515,62 @@
  " automáticamente a los varios subprocesos invocados por %s.  Para pasar\n"
  " otras opciones a estos procesos se deben usar las opciones -W<letra>.\n"
  
@@ -22806,7 +30992,7 @@ Index: gcc/po/es.po
  #, c-format
  msgid ""
  "\n"
-@@ -656,19 +676,19 @@
+@@ -656,19 +577,19 @@
  "For bug reporting instructions, please see:\n"
  msgstr ""
  "\n"
@@ -22830,7 +31016,7 @@ Index: gcc/po/es.po
  #, c-format
  msgid ""
  "This is free software; see the source for copying conditions.  There is NO\n"
-@@ -680,7 +700,7 @@
+@@ -680,7 +601,7 @@
  "PARTICULAR\n"
  "\n"
  
@@ -22839,7 +31025,7 @@ Index: gcc/po/es.po
  #, c-format
  msgid ""
  "\n"
-@@ -693,7 +713,7 @@
+@@ -693,7 +614,7 @@
  "======================\n"
  "\n"
  
@@ -22848,7 +31034,7 @@ Index: gcc/po/es.po
  #, c-format
  msgid ""
  "Use \"-Wl,OPTION\" to pass \"OPTION\" to the linker.\n"
-@@ -700,7 +720,7 @@
+@@ -700,7 +621,7 @@
  "\n"
  msgstr "Utilice \"-Wl,OPCIÓN\" para pasar la \"OPCIÓN\" al enlazador.\n"
  
@@ -22857,7 +31043,7 @@ Index: gcc/po/es.po
  #, c-format
  msgid ""
  "Assembler options\n"
-@@ -711,7 +731,7 @@
+@@ -711,7 +632,7 @@
  "=======================\n"
  "\n"
  
@@ -22866,7 +31052,7 @@ Index: gcc/po/es.po
  #, c-format
  msgid ""
  "Use \"-Wa,OPTION\" to pass \"OPTION\" to the assembler.\n"
-@@ -723,111 +743,106 @@
+@@ -723,111 +644,106 @@
  #: gcov-tool.c:166
  #, c-format
  msgid "  merge [options] <dir1> <dir2>         Merge coverage file contents\n"
@@ -23007,7 +31193,7 @@ Index: gcc/po/es.po
  
  #: gcov-tool.c:509
  #, c-format
-@@ -835,6 +850,8 @@
+@@ -835,18 +751,18 @@
  "Offline tool to handle gcda counts\n"
  "\n"
  msgstr ""
@@ -23015,8 +31201,24 @@ Index: gcc/po/es.po
 +"\n"
  
  #: gcov-tool.c:510
- #, fuzzy, c-format
-@@ -856,7 +873,7 @@
+-#, fuzzy, c-format
+-#| msgid "  -h, --help                      Print this help, then exit\n"
++#, c-format
+ msgid "  -h, --help                            Print this help, then exit\n"
+-msgstr "  -h, --help                      Muestra esta información, y finaliza\n"
++msgstr "  -h, --help                            Muestra esta información, y finaliza\n"
+ 
+ #: gcov-tool.c:511
+-#, fuzzy, c-format
+-#| msgid "  -v, --version                   Print version number, then exit\n"
++#, c-format
+ msgid "  -v, --version                         Print version number, then exit\n"
+-msgstr "  -v, --version                   Muestra el número de versión, y finaliza\n"
++msgstr "  -v, --version                         Muestra el número de versión, y finaliza\n"
+ 
+ #: gcov-tool.c:515 gcov.c:492
+ #, c-format
+@@ -856,14 +772,13 @@
  "%s.\n"
  msgstr ""
  "\n"
@@ -23025,7 +31227,28 @@ Index: gcc/po/es.po
  "%s.\n"
  
  #: gcov-tool.c:526
-@@ -936,7 +953,7 @@
+-#, fuzzy, c-format
+-#| msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
++#, c-format
+ msgid "Copyright %s 2014-2016 Free Software Foundation, Inc.\n"
+-msgstr "Copyright (C) 2001 Free Software Foundation, Inc.\n"
++msgstr "Copyright %s 2014-2016 Free Software Foundation, Inc.\n"
+ 
+ #: gcov-tool.c:529 gcov.c:506
+ #, c-format
+@@ -912,10 +827,7 @@
+ msgstr "  -b, --branch-probabilities      Incluye las probabilidades de ramificación en la salida\n"
+ 
+ #: gcov.c:477
+-#, fuzzy, c-format
+-#| msgid ""
+-#| "  -c, --branch-counts             Given counts of branches taken\n"
+-#| "                                    rather than percentages\n"
++#, c-format
+ msgid ""
+ "  -c, --branch-counts             Output counts of branches taken\n"
+ "                                    rather than percentages\n"
+@@ -936,7 +848,7 @@
  #: gcov.c:481
  #, c-format
  msgid "  -i, --intermediate-format       Output .gcov file in intermediate text format\n"
@@ -23034,7 +31257,7 @@ Index: gcc/po/es.po
  
  #: gcov.c:482
  #, c-format
-@@ -950,7 +967,7 @@
+@@ -950,7 +862,7 @@
  #: gcov.c:484
  #, c-format
  msgid "  -m, --demangled-names           Output demangled function names\n"
@@ -23043,7 +31266,65 @@ Index: gcc/po/es.po
  
  #: gcov.c:485
  #, c-format
-@@ -1211,7 +1228,7 @@
+@@ -1018,34 +930,29 @@
+ msgstr "\n"
+ 
+ #: gcov.c:856
+-#, fuzzy, c-format
+-#| msgid "%s: Cannot open output file: %s\n"
++#, c-format
+ msgid "Cannot open intermediate output file %s\n"
+-msgstr "%s: No se puede abrir el fichero de salida: %s\n"
++msgstr "No se puede abrir el fichero de salida intermedia %s\n"
+ 
+ #: gcov.c:1139
+-#, fuzzy, c-format
+-#| msgid "%s:source file is newer than graph file '%s'\n"
++#, c-format
+ msgid "%s:source file is newer than notes file '%s'\n"
+-msgstr "%s:el fichero fuente es más nuevo que el fichero de grafo '%s'\n"
++msgstr "%s:el fichero fuente es más nuevo que el fichero de notas '%s'\n"
+ 
+ #: gcov.c:1144
+-#, fuzzy, c-format
+-#| msgid "(the message is only displayed one per source file)\n"
++#, c-format
+ msgid "(the message is displayed only once per source file)\n"
+-msgstr "(el mensaje sólo se muestra una vez por cada fichero de código)\n"
++msgstr "(el mensaje sólo se muestra una vez por cada fichero de código fuente)\n"
+ 
+ #: gcov.c:1169
+-#, fuzzy, c-format
+-#| msgid "%s:cannot open graph file\n"
++#, c-format
+ msgid "%s:cannot open notes file\n"
+-msgstr "%s:no se puede abrir el fichero de grafo\n"
++msgstr "%s:no se puede abrir el fichero de notas\n"
+ 
+ #: gcov.c:1175
+-#, fuzzy, c-format
+-#| msgid "%s:not a gcov data file\n"
++#, c-format
+ msgid "%s:not a gcov notes file\n"
+-msgstr "%s:no es un fichero de datos gcov\n"
++msgstr "%s:no es un fichero de notas gcov\n"
+ 
+ #: gcov.c:1188
+ #, c-format
+@@ -1083,10 +990,9 @@
+ msgstr "%s:versión '%.4s', se prefiere la versión '%.4s'\n"
+ 
+ #: gcov.c:1417
+-#, fuzzy, c-format
+-#| msgid "%s:stamp mismatch with graph file\n"
++#, c-format
+ msgid "%s:stamp mismatch with notes file\n"
+-msgstr "%s:no coincide la marca con el fichero de grafo\n"
++msgstr "%s:no coincide la marca con el fichero de notas\n"
+ 
+ #: gcov.c:1452
+ #, c-format
+@@ -1211,16 +1117,15 @@
  msgid "GCSE disabled"
  msgstr "GCSE desactivado"
  
@@ -23052,7 +31333,18 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "function returns address of local variable"
  msgstr "la función devuelve la dirección de una variable local"
-@@ -1274,32 +1291,32 @@
+ 
+ #: gimple-ssa-isolate-paths.c:442 gimple-ssa-isolate-paths.c:287
+-#, fuzzy, gcc-internal-format
+-#| msgid "function returns address of local variable"
++#, gcc-internal-format
+ msgid "function may return address of local variable"
+-msgstr "la función devuelve la dirección de una variable local"
++msgstr "la función puede devolver la dirección de una variable local"
+ 
+ #: incpath.c:72
+ #, c-format
+@@ -1274,32 +1179,28 @@
  msgid "At top level:"
  msgstr "En el nivel principal:"
  
@@ -23069,20 +31361,20 @@ Index: gcc/po/es.po
  msgstr "En la función %qs"
  
 -#: langhooks.c:448 cp/error.c:3252
+-#, fuzzy
+-#| msgid "    inlined from %qs at %s:%d:%d"
 +#: langhooks.c:448 cp/error.c:3268
- #, fuzzy
- #| msgid "    inlined from %qs at %s:%d:%d"
  msgid "    inlined from %qs at %r%s:%d:%d%R"
 -msgstr "    incluído en línea de %qs en %s:%d:%d"
-+msgstr "    incluido en línea de %qs en %s:%d:%d"
++msgstr "    incluido en línea de %qs en %r%s:%d:%d%R"
  
 -#: langhooks.c:453 cp/error.c:3257
+-#, fuzzy
+-#| msgid "    inlined from %qs at %s:%d"
 +#: langhooks.c:453 cp/error.c:3273
- #, fuzzy
- #| msgid "    inlined from %qs at %s:%d"
  msgid "    inlined from %qs at %r%s:%d%R"
 -msgstr "    incluído en línea de %qs en %s:%d"
-+msgstr "    incluido en línea de %qs en %s:%d"
++msgstr "    incluido en línea de %qs en %r%s:%d%R"
  
 -#: langhooks.c:459 cp/error.c:3263
 +#: langhooks.c:459 cp/error.c:3279
@@ -23093,7 +31385,7 @@ Index: gcc/po/es.po
  
  #: loop-iv.c:3041 tree-ssa-loop-niter.c:2319
  msgid "assuming that the loop is not infinite"
-@@ -1327,30 +1344,27 @@
+@@ -1327,30 +1228,27 @@
  
  #. What to print when a switch has no documentation.
  #: opts.c:184
@@ -23130,7 +31422,20 @@ Index: gcc/po/es.po
  
  #: opts.c:1207
  msgid "[default]"
-@@ -1435,7 +1449,7 @@
+@@ -1370,10 +1268,9 @@
+ msgstr " No se encontraron opciones con las características deseadas\n"
+ 
+ #: opts.c:1246
+-#, fuzzy, c-format
+-#| msgid " None found.  Use --help=%s to show *all* the options supported by the %s front-end\n"
++#, c-format
+ msgid " None found.  Use --help=%s to show *all* the options supported by the %s front-end.\n"
+-msgstr " No se encontró ninguna.  Use --help=%s para mostrar *todas* las opciones admitidas por el frente %s\n"
++msgstr " No se encontró ninguna.  Use --help=%s para mostrar *todas* las opciones admitidas por el frente %s.\n"
+ 
+ #: opts.c:1252
+ #, c-format
+@@ -1435,7 +1332,7 @@
  #: plugin.c:828
  #, c-format
  msgid "*** WARNING *** there are active plugins, do not report this as a bug unless you can reproduce it without enabling any plugins.\n"
@@ -23139,7 +31444,7 @@ Index: gcc/po/es.po
  
  #. It's the compiler's fault.
  #: reload1.c:6113
-@@ -1492,12 +1506,12 @@
+@@ -1492,12 +1389,12 @@
  msgid "collect: relinking\n"
  msgstr "collect: reenlazando\n"
  
@@ -23154,7 +31459,7 @@ Index: gcc/po/es.po
  #, c-format
  msgid ""
  "%s%s%s %sversion %s (%s)\n"
-@@ -1506,37 +1520,37 @@
+@@ -1506,37 +1403,36 @@
  "%s%s%s %sversión %s (%s)\n"
  "%s\tcompilado por GNU C versión %s, "
  
@@ -23165,11 +31470,13 @@ Index: gcc/po/es.po
  msgstr "%s%s%s %sversión %s (%s) compilado por CC, "
  
 -#: toplev.c:646
+-#, fuzzy, c-format
+-#| msgid "GMP version %s, MPFR version %s, MPC version %s\n"
 +#: toplev.c:644
- #, fuzzy, c-format
- #| msgid "GMP version %s, MPFR version %s, MPC version %s\n"
++#, c-format
  msgid "GMP version %s, MPFR version %s, MPC version %s, isl version %s\n"
- msgstr "GMP versión %s, MPFR versión %s, MPC versión %s\n"
+-msgstr "GMP versión %s, MPFR versión %s, MPC versión %s\n"
++msgstr "GMP versión %s, MPFR versión %s, MPC versión %s, isl versión %s\n"
  
 -#: toplev.c:648
 +#: toplev.c:646
@@ -23200,7 +31507,19 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "<anonymous>"
  msgstr "<anónimo>"
-@@ -1636,10 +1650,8 @@
+@@ -1546,10 +1442,8 @@
+ msgstr "la función no se consideró para la inclusión en línea"
+ 
+ #: cif-code.def:43
+-#, fuzzy
+-#| msgid "%qE is not initialized"
+ msgid "caller is not optimized"
+-msgstr "%qE no está inicializado"
++msgstr "el que llama no está optimizado"
+ 
+ #: cif-code.def:47
+ msgid "function body not available"
+@@ -1636,22 +1530,18 @@
  msgstr ""
  
  #: cif-code.def:125
@@ -23212,8 +31531,10 @@ Index: gcc/po/es.po
  
  #: cif-code.def:129
  #, fuzzy
-@@ -1648,10 +1660,8 @@
- msgstr "función inválida en la declaración call"
+ #| msgid "invalid function in call statement"
+ msgid "caller function contains cilk spawn"
+-msgstr "función inválida en la declaración call"
++msgstr "función no válida en la declaración call"
  
  #: cif-code.def:133
 -#, fuzzy
@@ -23224,7 +31545,7 @@ Index: gcc/po/es.po
  
  #. The remainder are real diagnostic types.
  #: diagnostic.def:33
-@@ -1701,10 +1711,9 @@
+@@ -1701,10 +1591,9 @@
  msgstr "errorperm: "
  
  #: params.def:49
@@ -23237,7 +31558,7 @@ Index: gcc/po/es.po
  
  #: params.def:54
  #, no-c-format
-@@ -1712,527 +1721,446 @@
+@@ -1712,527 +1601,445 @@
  msgstr ""
  
  #: params.def:71
@@ -23361,8 +31682,9 @@ Index: gcc/po/es.po
 +msgstr "La longitud máxima de la lista de operaciones pendientes del planificador."
  
  #: params.def:180
- #, fuzzy, no-c-format
- #| msgid "The maximum number of backtrack attempts the scheduler should make when modulo scheduling a loop"
+-#, fuzzy, no-c-format
+-#| msgid "The maximum number of backtrack attempts the scheduler should make when modulo scheduling a loop"
++#, no-c-format
  msgid "The maximum number of backtrack attempts the scheduler should make when modulo scheduling a loop."
 -msgstr "El número máximo de intentos hacia atrás que debe hacer el calendarizador cuando calendarice un bucle módulo"
 +msgstr "El número máximo de intentos hacia atrás que debe hacer el planificador cuando planifique un bucle módulo."
@@ -23933,7 +32255,7 @@ Index: gcc/po/es.po
  
  #: params.def:621
  #, no-c-format
-@@ -2239,168 +2167,146 @@
+@@ -2239,168 +2046,146 @@
  msgid "The minimal probability of speculation success (in percents), so that speculative insn will be scheduled."
  msgstr "La probabilidad mínima de éxito de especulación (en porcentaje), para que esa insn especulativa se calendarize."
  
@@ -24154,7 +32476,7 @@ Index: gcc/po/es.po
  
  #: params.def:819
  #, no-c-format
-@@ -2408,63 +2314,54 @@
+@@ -2408,63 +2193,54 @@
  msgstr ""
  
  #: params.def:827
@@ -24237,7 +32559,7 @@ Index: gcc/po/es.po
  
  #: params.def:897
  #, no-c-format
-@@ -2472,209 +2369,189 @@
+@@ -2472,209 +2248,189 @@
  msgstr ""
  
  #: params.def:903
@@ -24503,7 +32825,7 @@ Index: gcc/po/es.po
  
  #: params.def:1127
  #, no-c-format
-@@ -2684,81 +2561,77 @@
+@@ -2684,81 +2440,77 @@
  #: params.def:1132
  #, no-c-format
  msgid "Use callbacks instead of inline code if number of accesses in function becomes greater or equal to this number."
@@ -24604,7 +32926,7 @@ Index: gcc/po/es.po
  
  #: c-family/c-format.c:417
  msgid "format"
-@@ -3033,8 +2906,8 @@
+@@ -3033,8 +2785,8 @@
  msgid "<command-line>"
  msgstr "<línea-de-orden>"
  
@@ -24615,7 +32937,7 @@ Index: gcc/po/es.po
  #, c-format
  msgid "Unsupported operand for code '%c'"
  msgstr "No se admite el operando para el código '%c'"
-@@ -3043,42 +2916,38 @@
+@@ -3043,42 +2795,38 @@
  #: config/aarch64/aarch64.c:4492 config/aarch64/aarch64.c:4504
  #: config/aarch64/aarch64.c:4515 config/aarch64/aarch64.c:4538
  #: config/aarch64/aarch64.c:4591 config/aarch64/aarch64.c:4794
@@ -24669,47 +32991,96 @@ Index: gcc/po/es.po
  #, c-format
  msgid "'%%&' used without any local dynamic TLS references"
  msgstr "se usó '%%&' sin ninguna referencia TLS dinámica local"
-@@ -3094,18 +2963,18 @@
- msgstr "valor %%r inválido"
+@@ -3086,70 +2834,70 @@
+ #: config/alpha/alpha.c:5160 config/bfin/bfin.c:1423
+ #, c-format
+ msgid "invalid %%J value"
+-msgstr "valor %%J inválido"
++msgstr "valor %%J no válido"
+ 
+ #: config/alpha/alpha.c:5190 config/ia64/ia64.c:5482
+ #, c-format
+ msgid "invalid %%r value"
+-msgstr "valor %%r inválido"
++msgstr "valor %%r no válido"
  
  #: config/alpha/alpha.c:5200 config/ia64/ia64.c:5436
 -#: config/rs6000/rs6000.c:19965 config/xtensa/xtensa.c:2357
 +#: config/rs6000/rs6000.c:20830 config/xtensa/xtensa.c:2357
  #, c-format
  msgid "invalid %%R value"
- msgstr "valor %%R inválido"
+-msgstr "valor %%R inválido"
++msgstr "valor %%R no válido"
  
 -#: config/alpha/alpha.c:5206 config/rs6000/rs6000.c:19885
 +#: config/alpha/alpha.c:5206 config/rs6000/rs6000.c:20750
  #: config/xtensa/xtensa.c:2324
  #, c-format
  msgid "invalid %%N value"
- msgstr "valor %%N inválido"
+-msgstr "valor %%N inválido"
++msgstr "valor %%N no válido"
  
 -#: config/alpha/alpha.c:5214 config/rs6000/rs6000.c:19913
 +#: config/alpha/alpha.c:5214 config/rs6000/rs6000.c:20778
  #, c-format
  msgid "invalid %%P value"
- msgstr "valor %%P inválido"
-@@ -3136,7 +3005,7 @@
- msgstr "valor %%U inválido"
+-msgstr "valor %%P inválido"
++msgstr "valor %%P no válido"
+ 
+ #: config/alpha/alpha.c:5222
+ #, c-format
+ msgid "invalid %%h value"
+-msgstr "valor %%h inválido"
++msgstr "valor %%h no válido"
+ 
+ #: config/alpha/alpha.c:5230 config/xtensa/xtensa.c:2350
+ #, c-format
+ msgid "invalid %%L value"
+-msgstr "valor %%L inválido"
++msgstr "valor %%L no válido"
+ 
+ #: config/alpha/alpha.c:5249
+ #, c-format
+ msgid "invalid %%m value"
+-msgstr "valor %%m inválido"
++msgstr "valor %%m no válido"
+ 
+ #: config/alpha/alpha.c:5255
+ #, c-format
+ msgid "invalid %%M value"
+-msgstr "valor %%M inválido"
++msgstr "valor %%M no válido"
+ 
+ #: config/alpha/alpha.c:5292
+ #, c-format
+ msgid "invalid %%U value"
+-msgstr "valor %%U inválido"
++msgstr "valor %%U no válido"
  
  #: config/alpha/alpha.c:5300 config/alpha/alpha.c:5311
 -#: config/rs6000/rs6000.c:19973
 +#: config/rs6000/rs6000.c:20838
  #, c-format
  msgid "invalid %%s value"
- msgstr "valor %%s inválido"
-@@ -3146,7 +3015,7 @@
+-msgstr "valor %%s inválido"
++msgstr "valor %%s no válido"
+ 
+ #: config/alpha/alpha.c:5322
+ #, c-format
  msgid "invalid %%C value"
- msgstr "valor %%C inválido"
+-msgstr "valor %%C inválido"
++msgstr "valor %%C no válido"
  
 -#: config/alpha/alpha.c:5359 config/rs6000/rs6000.c:19749
 +#: config/alpha/alpha.c:5359 config/rs6000/rs6000.c:20614
  #, c-format
  msgid "invalid %%E value"
- msgstr "valor %%E inválido"
-@@ -3157,7 +3026,7 @@
+-msgstr "valor %%E inválido"
++msgstr "valor %%E no válido"
+ 
+ #: config/alpha/alpha.c:5384 config/alpha/alpha.c:5434
+ #, c-format
+@@ -3157,201 +2905,193 @@
  msgstr "reubicación unspec desconocida"
  
  #: config/alpha/alpha.c:5393 config/cr16/cr16.c:1531
@@ -24717,8 +33088,73 @@ Index: gcc/po/es.po
 +#: config/rs6000/rs6000.c:21155 config/spu/spu.c:1446
  #, c-format
  msgid "invalid %%xn code"
- msgstr "código %%xn inválido"
-@@ -3215,7 +3084,7 @@
+-msgstr "código %%xn inválido"
++msgstr "código %%xn no válido"
+ 
+ #: config/alpha/alpha.c:5499
+-#, fuzzy, c-format
+-#| msgid "invalid address"
++#, c-format
+ msgid "invalid operand address"
+-msgstr "dirección inválida"
++msgstr "dirección de operando no válida"
+ 
+ #: config/arc/arc.c:2966
+-#, fuzzy, c-format
+-#| msgid "invalid operand to %%s code"
++#, c-format
+ msgid "invalid operand to %%Z code"
+-msgstr "operando inválido para el código %%s"
++msgstr "operando no válido para el código %%Z"
+ 
+ #: config/arc/arc.c:2974
+-#, fuzzy, c-format
+-#| msgid "invalid operand to %%s code"
++#, c-format
+ msgid "invalid operand to %%z code"
+-msgstr "operando inválido para el código %%s"
++msgstr "operando no válido para el código %%z"
+ 
+ #: config/arc/arc.c:2982
+-#, fuzzy, c-format
+-#| msgid "invalid operand to %%s code"
++#, c-format
+ msgid "invalid operand to %%M code"
+-msgstr "operando inválido para el código %%s"
++msgstr "operando no válido para el código %%M"
+ 
+ #: config/arc/arc.c:3131 config/m32r/m32r.c:2105
+ #, c-format
+ msgid "invalid operand to %%R code"
+-msgstr "operando inválido para el código %%R"
++msgstr "operando no válido para el código %%R"
+ 
+ #: config/arc/arc.c:3170 config/m32r/m32r.c:2128
+ #, c-format
+ msgid "invalid operand to %%H/%%L code"
+-msgstr "operando inválido para el código %%H%%L"
++msgstr "operando no válido para el código %%H%%L"
+ 
+ #: config/arc/arc.c:3218 config/m32r/m32r.c:2199
+ #, c-format
+ msgid "invalid operand to %%U code"
+-msgstr "operando inválido para el código %%U"
++msgstr "operando no válido para el código %%U"
+ 
+ #: config/arc/arc.c:3229
+ #, c-format
+ msgid "invalid operand to %%V code"
+-msgstr "operando inválido para el código %%V"
++msgstr "operando no válido para el código %%V"
+ 
+ #: config/arc/arc.c:3286
+-#, fuzzy, c-format
+-#| msgid "invalid operand to %%s code"
++#, c-format
+ msgid "invalid operand to %%O code"
+-msgstr "operando inválido para el código %%s"
++msgstr "operando no válido para el código %%O"
+ 
  #. Unknown flag.
  #. Undocumented flag.
  #: config/arc/arc.c:3312 config/epiphany/epiphany.c:1286
@@ -24726,10 +33162,16 @@ Index: gcc/po/es.po
 +#: config/m32r/m32r.c:2226 config/nds32/nds32.c:2291 config/sparc/sparc.c:8932
  #, c-format
  msgid "invalid operand output code"
- msgstr "operando inválido en el código de salida"
-@@ -3226,29 +3095,29 @@
+-msgstr "operando inválido en el código de salida"
++msgstr "operando no válido en el código de salida"
+ 
+ #: config/arc/arc.c:4883
+-#, fuzzy, c-format
+-#| msgid "invalid UNSPEC as operand"
++#, c-format
  msgid "invalid UNSPEC as operand: %d"
- msgstr "UNSPEC inválido como operando"
+-msgstr "UNSPEC inválido como operando"
++msgstr "UNSPEC no válido como operando: %d"
  
 -#: config/arm/arm.c:19021 config/arm/arm.c:19046 config/arm/arm.c:19056
 -#: config/arm/arm.c:19065 config/arm/arm.c:19073
@@ -24737,7 +33179,8 @@ Index: gcc/po/es.po
 +#: config/arm/arm.c:19062 config/arm/arm.c:19070
  #, c-format
  msgid "invalid shift operand"
- msgstr "operando de desplazamiento inválido"
+-msgstr "operando de desplazamiento inválido"
++msgstr "operando de desplazamiento no válido"
  
 -#: config/arm/arm.c:21830 config/arm/arm.c:21848
 +#: config/arm/arm.c:21835 config/arm/arm.c:21853
@@ -24768,9 +33211,10 @@ Index: gcc/po/es.po
  #: config/bfin/bfin.c:1443 config/bfin/bfin.c:1450 config/bfin/bfin.c:1457
  #: config/bfin/bfin.c:1466 config/bfin/bfin.c:1473 config/bfin/bfin.c:1480
  #: config/bfin/bfin.c:1487
-@@ -3256,102 +3125,101 @@
+ #, c-format
  msgid "invalid operand for code '%c'"
- msgstr "operando inválido para el código '%c'"
+-msgstr "operando inválido para el código '%c'"
++msgstr "operando no válido para el código '%c'"
  
 -#: config/arm/arm.c:22173
 +#: config/arm/arm.c:22178
@@ -24780,11 +33224,13 @@ Index: gcc/po/es.po
  
  #. Former Maverick support, removed after GCC-4.7.
 -#: config/arm/arm.c:22194
+-#, fuzzy, c-format
+-#| msgid "Unsupported operand for code '%c'"
 +#: config/arm/arm.c:22199
- #, fuzzy, c-format
- #| msgid "Unsupported operand for code '%c'"
++#, c-format
  msgid "obsolete Maverick format code '%c'"
- msgstr "No se admite el operando para el código '%c'"
+-msgstr "No se admite el operando para el código '%c'"
++msgstr "código de formato Maverick obsoleto '%c'"
  
 -#: config/arm/arm.c:23613
 +#: config/arm/arm.c:23618
@@ -24847,7 +33293,8 @@ Index: gcc/po/es.po
 -#: config/avr/avr.c:3422 config/avr/avr.c:4352 config/avr/avr.c:4801
 +#: config/avr/avr.c:3419 config/avr/avr.c:4349 config/avr/avr.c:4798
  msgid "invalid insn:"
- msgstr "insn inválida:"
+-msgstr "insn inválida:"
++msgstr "insn no válida:"
  
 -#: config/avr/avr.c:3476 config/avr/avr.c:3581 config/avr/avr.c:3639
 -#: config/avr/avr.c:3685 config/avr/avr.c:3704 config/avr/avr.c:3896
@@ -24901,7 +33348,7 @@ Index: gcc/po/es.po
  
  #: config/avr/driver-avr.c:118
  #, c-format
-@@ -3360,6 +3228,9 @@
+@@ -3360,20 +3100,23 @@
  "'%s': specfile='%s'\n"
  "\n"
  msgstr ""
@@ -24911,8 +33358,15 @@ Index: gcc/po/es.po
  
  #: config/bfin/bfin.c:1385
  #, c-format
-@@ -3372,8 +3243,8 @@
- msgstr "operando const_double inválido"
+ msgid "invalid %%j value"
+-msgstr "valor %%j inválido"
++msgstr "valor %%j no válido"
+ 
+ #: config/bfin/bfin.c:1578 config/c6x/c6x.c:2293
+ #, c-format
+ msgid "invalid const_double operand"
+-msgstr "operando const_double inválido"
++msgstr "operando const_double no válido"
  
  #: config/cris/cris.c:612 config/ft32/ft32.c:104 config/moxie/moxie.c:103
 -#: final.c:3407 final.c:3409 fold-const.c:277 gcc.c:5211 gcc.c:5225
@@ -24922,25 +33376,272 @@ Index: gcc/po/es.po
  #: tree-ssa-loop-niter.c:2328 tree-vrp.c:7480 cp/typeck.c:6065 java/expr.c:382
  #: lto/lto-object.c:184 lto/lto-object.c:281 lto/lto-object.c:338
  #: lto/lto-object.c:362
-@@ -3655,7 +3526,7 @@
+@@ -3391,27 +3134,27 @@
+ 
+ #: config/cris/cris.c:744
+ msgid "invalid operand for 'b' modifier"
+-msgstr "operando inválido para el modificador 'b'"
++msgstr "operando no válido para el modificador 'b'"
+ 
+ #: config/cris/cris.c:761
+ msgid "invalid operand for 'o' modifier"
+-msgstr "operando inválido para el modificador 'o'"
++msgstr "operando no válido para el modificador 'o'"
+ 
+ #: config/cris/cris.c:780
+ msgid "invalid operand for 'O' modifier"
+-msgstr "operando inválido para el modificador 'O'"
++msgstr "operando no válido para el modificador 'O'"
+ 
+ #: config/cris/cris.c:813
+ msgid "invalid operand for 'p' modifier"
+-msgstr "operador inválido para el modificador 'p'"
++msgstr "operador no válido para el modificador 'p'"
+ 
+ #: config/cris/cris.c:852
+ msgid "invalid operand for 'z' modifier"
+-msgstr "operando inválido para el modificador 'z'"
++msgstr "operando no válido para el modificador 'z'"
+ 
+ #: config/cris/cris.c:916 config/cris/cris.c:950
+ msgid "invalid operand for 'H' modifier"
+-msgstr "operando inválido para el modificador 'H'"
++msgstr "operando no válido para el modificador 'H'"
+ 
+ #: config/cris/cris.c:926
+ msgid "bad register"
+@@ -3419,27 +3162,27 @@
+ 
+ #: config/cris/cris.c:970
+ msgid "invalid operand for 'e' modifier"
+-msgstr "operando inválido para el modificador 'e'"
++msgstr "operando no válido para el modificador 'e'"
+ 
+ #: config/cris/cris.c:987
+ msgid "invalid operand for 'm' modifier"
+-msgstr "operando inválido para el modificador 'm'"
++msgstr "operando no válido para el modificador 'm'"
+ 
+ #: config/cris/cris.c:1012
+ msgid "invalid operand for 'A' modifier"
+-msgstr "operando inválido para el modificador 'A'"
++msgstr "operando no válido para el modificador 'A'"
+ 
+ #: config/cris/cris.c:1082
+ msgid "invalid operand for 'D' modifier"
+-msgstr "operando inválido para el modificador 'D'"
++msgstr "operando no válido para el modificador 'D'"
+ 
+ #: config/cris/cris.c:1096
+ msgid "invalid operand for 'T' modifier"
+-msgstr "operando inválido para el modificador 'T'"
++msgstr "operando no válido para el modificador 'T'"
+ 
+ #: config/cris/cris.c:1116 config/ft32/ft32.c:230 config/moxie/moxie.c:173
+ msgid "invalid operand modifier letter"
+-msgstr "letra de modificador de operando inválida"
++msgstr "letra de modificador de operando no válida"
+ 
+ #: config/cris/cris.c:1170
+ msgid "unexpected multiplicative operand"
+@@ -3494,17 +3237,17 @@
+ #: config/fr30/fr30.c:569
+ #, c-format
+ msgid "fr30_print_operand: invalid operand to %%A code"
+-msgstr "fr30_print_operand: operando inválido para el código %%A"
++msgstr "fr30_print_operand: operando no válido para el código %%A"
+ 
+ #: config/fr30/fr30.c:586
+ #, c-format
+ msgid "fr30_print_operand: invalid %%x code"
+-msgstr "fr30_print_operand: código %%x inválido"
++msgstr "fr30_print_operand: código %%x no válido"
+ 
+ #: config/fr30/fr30.c:593
+ #, c-format
+ msgid "fr30_print_operand: invalid %%F code"
+-msgstr "fr30_print_operand: código %%F inválido"
++msgstr "fr30_print_operand: código %%F no válido"
+ 
+ #: config/fr30/fr30.c:610
+ #, c-format
+@@ -3598,72 +3341,66 @@
+ #: config/i386/i386.c:16060
+ #, c-format
+ msgid "invalid UNSPEC as operand"
+-msgstr "UNSPEC inválido como operando"
++msgstr "UNSPEC no válido como operando"
+ 
+ #: config/i386/i386.c:16764
+-#, fuzzy, c-format
+-#| msgid "invalid operand size for operand code '%c'"
++#, c-format
+ msgid "invalid operand size for operand code 'O'"
+-msgstr "tamaño de operando inválido para el código de operando '%c'"
++msgstr "tamaño de operando no válido para el código de operando 'O'"
+ 
+ #: config/i386/i386.c:16799
+-#, fuzzy, c-format
+-#| msgid "invalid operand size for operand code '%c'"
++#, c-format
+ msgid "invalid operand size for operand code 'z'"
+-msgstr "tamaño de operando inválido para el código de operando '%c'"
++msgstr "tamaño de operando no válido para el código de operando 'z'"
+ 
+ #: config/i386/i386.c:16869
+-#, fuzzy, c-format
+-#| msgid "invalid operand type used with operand code '%c'"
++#, c-format
+ msgid "invalid operand type used with operand code 'Z'"
+-msgstr "se usó un tipo de operando inválido con el código de operando '%c'"
++msgstr "se usó un tipo de operando no válido con el código de operando 'Z'"
+ 
+ #: config/i386/i386.c:16874
+-#, fuzzy, c-format
+-#| msgid "invalid operand size for operand code '%c'"
++#, c-format
+ msgid "invalid operand size for operand code 'Z'"
+-msgstr "tamaño de operando inválido para el código de operando '%c'"
++msgstr "tamaño de operando no válido para el código de operando 'Z'"
+ 
+ #: config/i386/i386.c:16950
+ #, c-format
+ msgid "operand is not a condition code, invalid operand code 'Y'"
+-msgstr "el operando no es un código de condición, código de operando 'Y' inválido"
++msgstr "el operando no es un código de condición, código de operando 'Y' no válido"
+ 
+ #: config/i386/i386.c:17023
+ #, c-format
+ msgid "operand is not a condition code, invalid operand code 'D'"
+-msgstr "el operando no es un código de condición, código de operando 'D' inválido"
++msgstr "el operando no es un código de condición, código de operando 'D' no válido"
+ 
+ #: config/i386/i386.c:17040
+-#, fuzzy, c-format
+-#| msgid "operand is not a condition code, invalid operand code 'D'"
++#, c-format
+ msgid "operand is not a condition code, invalid operand code '%c'"
+-msgstr "el operando no es un código de condición, código de operando 'D' inválido"
++msgstr "el operando no es un código de condición, código de operando '%c' no válido"
+ 
+ #: config/i386/i386.c:17053
+ #, c-format
+ msgid "operand is not an offsettable memory reference, invalid operand code 'H'"
+-msgstr "el operando no es una referencia de memoria desplazable, código de operando 'H' inválido"
++msgstr "el operando no es una referencia de memoria desplazable, código de operando 'H' no válido"
+ 
+ #: config/i386/i386.c:17218
+ #, c-format
+ msgid "invalid operand code '%c'"
+-msgstr "código de operando '%c' inválido"
++msgstr "código de operando '%c' no válido"
+ 
+ #: config/i386/i386.c:17276
+ #, c-format
  msgid "invalid constraints for operand"
- msgstr "restricciones inválidas para el operando"
+-msgstr "restricciones inválidas para el operando"
++msgstr "restricciones no válidas para el operando"
  
 -#: config/i386/i386.c:27726
 +#: config/i386/i386.c:27754
  msgid "unknown insn mode"
  msgstr "modo insn desconocido"
  
-@@ -3701,7 +3572,7 @@
+ #: config/i386/djgpp.h:146
+-#, fuzzy, c-format
+-#| msgid "-f%s ignored for Unicos/Mk (not supported)"
++#, c-format
+ msgid "-f%s ignored (not supported for DJGPP)\n"
+-msgstr "se descarta -f%s para Unicos/Mk (no se admite)"
++msgstr "se descarta -f%s (no se admite para DJGPP)\n"
+ 
+ #: config/i386/i386-interix.h:77
+ msgid "Use native (MS) bitfield layout"
+@@ -3676,7 +3413,7 @@
+ #: config/ia64/ia64.c:5364
+ #, c-format
+ msgid "invalid %%G mode"
+-msgstr "modo %%G inválido"
++msgstr "modo %%G no válido"
+ 
+ #: config/ia64/ia64.c:5534
+ #, c-format
+@@ -3685,31 +3422,31 @@
+ 
+ #: config/ia64/ia64.c:11107
+ msgid "invalid conversion from %<__fpreg%>"
+-msgstr "conversión inválida de %<__fpreg%>"
++msgstr "conversión no válida de %<__fpreg%>"
+ 
+ #: config/ia64/ia64.c:11110
+ msgid "invalid conversion to %<__fpreg%>"
+-msgstr "conversión inválida a %<__fpreg%>"
++msgstr "conversión no válida a %<__fpreg%>"
+ 
+ #: config/ia64/ia64.c:11123 config/ia64/ia64.c:11134
+ msgid "invalid operation on %<__fpreg%>"
+-msgstr "operación inválida en %<__fpreg%>"
++msgstr "operación no válida en %<__fpreg%>"
+ 
+ #: config/iq2000/iq2000.c:3135 config/tilegx/tilegx.c:5308
+ #: config/tilepro/tilepro.c:4703
+ #, c-format
  msgid "invalid %%P operand"
- msgstr "operando %%P inválido"
+-msgstr "operando %%P inválido"
++msgstr "operando %%P no válido"
  
 -#: config/iq2000/iq2000.c:3143 config/rs6000/rs6000.c:19903
 +#: config/iq2000/iq2000.c:3143 config/rs6000/rs6000.c:20768
  #, c-format
  msgid "invalid %%p value"
- msgstr "valor %%p inválido"
-@@ -3765,7 +3636,7 @@
+-msgstr "valor %%p inválido"
++msgstr "valor %%p no válido"
+ 
+ #: config/iq2000/iq2000.c:3202
+ #, c-format
+ msgid "invalid use of %%d, %%x, or %%X"
+-msgstr "uso inválido de %%d, %%x, o %%X"
++msgstr "uso no válido de %%d, %%x, o %%X"
+ 
+ #: config/lm32/lm32.c:507
+ #, c-format
+@@ -3726,17 +3463,17 @@
+ 
+ #: config/lm32/lm32.c:593
+ msgid "invalid addressing mode"
+-msgstr "modo de direccionamiento inválido"
++msgstr "modo de direccionamiento no válido"
+ 
+ #: config/m32r/m32r.c:2072
+ #, c-format
+ msgid "invalid operand to %%s code"
+-msgstr "operando inválido para el código %%s"
++msgstr "operando no válido para el código %%s"
+ 
+ #: config/m32r/m32r.c:2079
+ #, c-format
+ msgid "invalid operand to %%p code"
+-msgstr "operador inválido para el código %%p"
++msgstr "operador no válido para el código %%p"
+ 
+ #: config/m32r/m32r.c:2137
+ msgid "bad insn for 'A'"
+@@ -3745,12 +3482,12 @@
+ #: config/m32r/m32r.c:2184
+ #, c-format
+ msgid "invalid operand to %%T/%%B code"
+-msgstr "operando inválido para el código %%T/%%B"
++msgstr "operando no válido para el código %%T/%%B"
+ 
+ #: config/m32r/m32r.c:2207
+ #, c-format
+ msgid "invalid operand to %%N code"
+-msgstr "operando inválido para el código %%N"
++msgstr "operando no válido para el código %%N"
+ 
+ #: config/m32r/m32r.c:2240
+ msgid "pre-increment address is not a register"
+@@ -3765,7 +3502,7 @@
  msgstr "la dirección de post-incremento no es un registro"
  
  #: config/m32r/m32r.c:2328 config/m32r/m32r.c:2343
@@ -24949,7 +33650,87 @@ Index: gcc/po/es.po
  msgid "bad address"
  msgstr "dirección errónea"
  
-@@ -3892,297 +3763,280 @@
+@@ -3776,7 +3513,7 @@
+ #: config/mep/mep.c:3233
+ #, c-format
+ msgid "invalid %%L code"
+-msgstr "código %%L inválido"
++msgstr "código %%L no válido"
+ 
+ #: config/microblaze/microblaze.c:2190
+ #, c-format
+@@ -3791,21 +3528,21 @@
+ #: config/microblaze/microblaze.c:2234
+ #, c-format
+ msgid "PRINT_OPERAND, invalid insn for %%C"
+-msgstr "PRINT_OPERAND, insn inválida para %%C"
++msgstr "PRINT_OPERAND, insn no válida para %%C"
+ 
+ #: config/microblaze/microblaze.c:2263
+ #, c-format
+ msgid "PRINT_OPERAND, invalid insn for %%N"
+-msgstr "PRINT_OPERAND, insn inválida para %%N"
++msgstr "PRINT_OPERAND, insn no válida para %%N"
+ 
+ #: config/microblaze/microblaze.c:2283 config/microblaze/microblaze.c:2458
+ msgid "insn contains an invalid address !"
+-msgstr "¡ La insn contiene una dirección inválida !"
++msgstr "¡ La insn contiene una dirección no válida !"
+ 
+ #: config/microblaze/microblaze.c:2298 config/microblaze/microblaze.c:2517
+ #: config/xtensa/xtensa.c:2454
+ msgid "invalid address"
+-msgstr "dirección inválida"
++msgstr "dirección no válida"
+ 
+ #: config/microblaze/microblaze.c:2401
+ #, c-format
+@@ -3822,7 +3559,7 @@
+ #: config/mips/mips.c:8615 config/mips/mips.c:8624
+ #, c-format
+ msgid "invalid use of '%%%c'"
+-msgstr "uso inválido de '%%%c'"
++msgstr "uso no válido de '%%%c'"
+ 
+ #: config/mmix/mmix.c:1547 config/mmix/mmix.c:1677
+ msgid "MMIX Internal: Expected a CONST_INT, not this"
+@@ -3851,7 +3588,7 @@
+ 
+ #: config/mmix/mmix.c:2671
+ msgid "MMIX Internal: Trying to output invalidly reversed condition:"
+-msgstr "MMIX Interno: Tratando de mostrar una condición invertida de forma inválida:"
++msgstr "MMIX Interno: Tratando de mostrar una condición invertida de forma no válida:"
+ 
+ #: config/mmix/mmix.c:2678
+ msgid "MMIX Internal: What's the CC of this?"
+@@ -3866,21 +3603,19 @@
+ msgstr "MMIX Interno: Esto no es una constante:"
+ 
+ #: config/msp430/msp430.c:3609
+-#, fuzzy, c-format
+-#| msgid "invalid reference prefix"
++#, c-format
+ msgid "invalid operand prefix"
+-msgstr "prefijo de referencia inválido"
++msgstr "prefijo de operando no válido"
+ 
+ #: config/msp430/msp430.c:3643
+-#, fuzzy, c-format
+-#| msgid "invalid use of %<restrict%>"
++#, c-format
+ msgid "invalid zero extract"
+-msgstr "uso inválido de %<restrict%>"
++msgstr "extracto de cero no válido"
+ 
+ #: config/rl78/rl78.c:1797 config/rl78/rl78.c:1883
+ #, c-format
+ msgid "q/Q modifiers invalid for symbol references"
+-msgstr "modificadores q/Q inválidos para las referencia de símbolo"
++msgstr "modificadores q/Q no válidos para las referencia de símbolo"
+ 
+ #: config/rs6000/host-darwin.c:94
+ #, c-format
+@@ -3892,307 +3627,289 @@
  msgid "Try running '%s' in the shell to raise its limit.\n"
  msgstr "Pruebe ejecutar '%s' en el intérprete de órdenes para elevar su límite.\n"
  
@@ -25044,85 +33825,99 @@ Index: gcc/po/es.po
 +#: config/rs6000/rs6000.c:20623
  #, c-format
  msgid "invalid %%f value"
- msgstr "valor %%f inválido"
+-msgstr "valor %%f inválido"
++msgstr "valor %%f no válido"
  
 -#: config/rs6000/rs6000.c:19767
 +#: config/rs6000/rs6000.c:20632
  #, c-format
  msgid "invalid %%F value"
- msgstr "valor %%F inválido"
+-msgstr "valor %%F inválido"
++msgstr "valor %%F no válido"
  
 -#: config/rs6000/rs6000.c:19776
 +#: config/rs6000/rs6000.c:20641
  #, c-format
  msgid "invalid %%G value"
- msgstr "valor %%G inválido"
+-msgstr "valor %%G inválido"
++msgstr "valor %%G no válido"
  
 -#: config/rs6000/rs6000.c:19811
 +#: config/rs6000/rs6000.c:20676
  #, c-format
  msgid "invalid %%j code"
- msgstr "código %%j inválido"
+-msgstr "código %%j inválido"
++msgstr "código %%j no válido"
  
 -#: config/rs6000/rs6000.c:19821
 +#: config/rs6000/rs6000.c:20686
  #, c-format
  msgid "invalid %%J code"
- msgstr "código %%J inválido"
+-msgstr "código %%J inválido"
++msgstr "código %%J no válido"
  
 -#: config/rs6000/rs6000.c:19831
 +#: config/rs6000/rs6000.c:20696
  #, c-format
  msgid "invalid %%k value"
- msgstr "valor %%k inválido"
+-msgstr "valor %%k inválido"
++msgstr "valor %%k no válido"
  
 -#: config/rs6000/rs6000.c:19846 config/xtensa/xtensa.c:2343
 +#: config/rs6000/rs6000.c:20711 config/xtensa/xtensa.c:2343
  #, c-format
  msgid "invalid %%K value"
- msgstr "valor %%K inválido"
+-msgstr "valor %%K inválido"
++msgstr "valor %%K no válido"
  
 -#: config/rs6000/rs6000.c:19893
 +#: config/rs6000/rs6000.c:20758
  #, c-format
  msgid "invalid %%O value"
- msgstr "valor %%O inválido"
+-msgstr "valor %%O inválido"
++msgstr "valor %%O no válido"
  
 -#: config/rs6000/rs6000.c:19940
 +#: config/rs6000/rs6000.c:20805
  #, c-format
  msgid "invalid %%q value"
- msgstr "valor %%q inválido"
+-msgstr "valor %%q inválido"
++msgstr "valor %%q no válido"
  
 -#: config/rs6000/rs6000.c:19993
 +#: config/rs6000/rs6000.c:20858
  #, c-format
  msgid "invalid %%T value"
- msgstr "valor %%T inválido"
+-msgstr "valor %%T inválido"
++msgstr "valor %%T no válido"
  
 -#: config/rs6000/rs6000.c:20005
 +#: config/rs6000/rs6000.c:20870
  #, c-format
  msgid "invalid %%u value"
- msgstr "valor %%u inválido"
+-msgstr "valor %%u inválido"
++msgstr "valor %%u no válido"
  
 -#: config/rs6000/rs6000.c:20019 config/xtensa/xtensa.c:2313
 +#: config/rs6000/rs6000.c:20884 config/xtensa/xtensa.c:2313
  #, c-format
  msgid "invalid %%v value"
- msgstr "valor %%v inválido"
+-msgstr "valor %%v inválido"
++msgstr "valor %%v no válido"
  
 -#: config/rs6000/rs6000.c:20086 config/xtensa/xtensa.c:2364
 +#: config/rs6000/rs6000.c:20951 config/xtensa/xtensa.c:2364
  #, c-format
  msgid "invalid %%x value"
- msgstr "valor %%x inválido"
+-msgstr "valor %%x inválido"
++msgstr "valor %%x no válido"
  
 -#: config/rs6000/rs6000.c:20234
 +#: config/rs6000/rs6000.c:21099
  #, c-format
  msgid "invalid %%y value, try using the 'Z' constraint"
- msgstr "valor %%y inválido, pruebe usando la restricción 'Z'"
+-msgstr "valor %%y inválido, pruebe usando la restricción 'Z'"
++msgstr "valor %%y no válido, pruebe usando la restricción 'Z'"
  
 -#: config/rs6000/rs6000.c:20912
 +#: config/rs6000/rs6000.c:21814
@@ -25221,25 +34016,29 @@ Index: gcc/po/es.po
 +#: config/s390/s390.c:7248
  #, c-format
  msgid "invalid comparison operator for 'E' output modifier"
- msgstr "operador de comparación inválido para el modificador de salida 'E'"
+-msgstr "operador de comparación inválido para el modificador de salida 'E'"
++msgstr "operador de comparación no válido para el modificador de salida 'E'"
  
 -#: config/s390/s390.c:7250
 +#: config/s390/s390.c:7271
  #, c-format
  msgid "invalid reference for 'J' output modifier"
- msgstr "referencia inválida para el modificador de salida 'J'"
+-msgstr "referencia inválida para el modificador de salida 'J'"
++msgstr "referencia no válida para el modificador de salida 'J'"
  
 -#: config/s390/s390.c:7268
 +#: config/s390/s390.c:7289
  #, c-format
  msgid "invalid address for 'O' output modifier"
- msgstr "dirección inválida para el modificador de salida 'O'"
+-msgstr "dirección inválida para el modificador de salida 'O'"
++msgstr "dirección no válida para el modificador de salida 'O'"
  
 -#: config/s390/s390.c:7290
 +#: config/s390/s390.c:7311
  #, c-format
  msgid "invalid address for 'R' output modifier"
- msgstr "dirección inválida para el modificador de salida 'R'"
+-msgstr "dirección inválida para el modificador de salida 'R'"
++msgstr "dirección no válida para el modificador de salida 'R'"
  
 -#: config/s390/s390.c:7308
 +#: config/s390/s390.c:7329
@@ -25251,7 +34050,8 @@ Index: gcc/po/es.po
 +#: config/s390/s390.c:7339
  #, c-format
  msgid "invalid address for 'S' output modifier"
- msgstr "dirección inválida para el modificador de saida 'S'"
+-msgstr "dirección inválida para el modificador de saida 'S'"
++msgstr "dirección no válida para el modificador de saida 'S'"
  
 -#: config/s390/s390.c:7339
 +#: config/s390/s390.c:7360
@@ -25269,32 +34069,38 @@ Index: gcc/po/es.po
 +#: config/s390/s390.c:7456 config/s390/s390.c:7477
  #, c-format
  msgid "invalid constant for output modifier '%c'"
- msgstr "constante inválida para el modificador de salida '%c'"
+-msgstr "constante inválida para el modificador de salida '%c'"
++msgstr "constante no válida para el modificador de salida '%c'"
  
 -#: config/s390/s390.c:7453
 +#: config/s390/s390.c:7474
  #, c-format
  msgid "invalid constant - try using an output modifier"
- msgstr "constante inválida - pruebe usar un modificador de salida"
+-msgstr "constante inválida - pruebe usar un modificador de salida"
++msgstr "constante no válida - pruebe usar un modificador de salida"
  
 -#: config/s390/s390.c:7494
+-#, fuzzy, c-format
+-#| msgid "invalid constant for output modifier '%c'"
 +#: config/s390/s390.c:7515
- #, fuzzy, c-format
- #| msgid "invalid constant for output modifier '%c'"
++#, c-format
  msgid "invalid constant vector for output modifier '%c'"
- msgstr "constante inválida para el modificador de salida '%c'"
+-msgstr "constante inválida para el modificador de salida '%c'"
++msgstr "vector constante no válido para el modificador de salida '%c'"
  
 -#: config/s390/s390.c:7501
 +#: config/s390/s390.c:7522
  #, c-format
  msgid "invalid expression - try using an output modifier"
- msgstr "expresión inválida - pruebe usar un modificador de salida"
+-msgstr "expresión inválida - pruebe usar un modificador de salida"
++msgstr "expresión no válida - pruebe usar un modificador de salida"
  
 -#: config/s390/s390.c:7504
 +#: config/s390/s390.c:7525
  #, c-format
  msgid "invalid expression for output modifier '%c'"
- msgstr "expresión inválida para el modificador de salida '%c'"
+-msgstr "expresión inválida para el modificador de salida '%c'"
++msgstr "expresión no válida para el modificador de salida '%c'"
  
 -#: config/s390/s390.c:11356
 -#, fuzzy
@@ -25334,7 +34140,19 @@ Index: gcc/po/es.po
  
  #: config/sh/sh.c:1313
  #, c-format
-@@ -4206,43 +4060,43 @@
+ msgid "invalid operand to %%R"
+-msgstr "operando inválido para %%R"
++msgstr "operando no válido para %%R"
+ 
+ #: config/sh/sh.c:1340
+ #, c-format
+ msgid "invalid operand to %%S"
+-msgstr "operando inválido para %%S"
++msgstr "operando no válido para %%S"
+ 
+ #: config/sh/sh.c:10040
+ msgid "created and used with different architectures / ABIs"
+@@ -4206,45 +3923,44 @@
  msgid "created and used with different endianness"
  msgstr "creado y usado con diferente orden de bits"
  
@@ -25342,88 +34160,235 @@ Index: gcc/po/es.po
 +#: config/sparc/sparc.c:8758 config/sparc/sparc.c:8764
  #, c-format
  msgid "invalid %%Y operand"
- msgstr "operando %%Y inválido"
+-msgstr "operando %%Y inválido"
++msgstr "operando %%Y no válido"
  
 -#: config/sparc/sparc.c:8734
 +#: config/sparc/sparc.c:8834
  #, c-format
  msgid "invalid %%A operand"
- msgstr "operando %%A inválido"
+-msgstr "operando %%A inválido"
++msgstr "operando %%A no válido"
  
 -#: config/sparc/sparc.c:8744
 +#: config/sparc/sparc.c:8844
  #, c-format
  msgid "invalid %%B operand"
- msgstr "operando %%B inválido"
+-msgstr "operando %%B inválido"
++msgstr "operando %%B no válido"
  
 -#: config/sparc/sparc.c:8773 config/tilegx/tilegx.c:5095
 +#: config/sparc/sparc.c:8873 config/tilegx/tilegx.c:5095
  #: config/tilepro/tilepro.c:4510
  #, c-format
  msgid "invalid %%C operand"
- msgstr "operando %%C inválido"
+-msgstr "operando %%C inválido"
++msgstr "operando %%C no válido"
  
 -#: config/sparc/sparc.c:8790 config/tilegx/tilegx.c:5128
 +#: config/sparc/sparc.c:8890 config/tilegx/tilegx.c:5128
  #, c-format
  msgid "invalid %%D operand"
- msgstr "operando %%D inválido"
+-msgstr "operando %%D inválido"
++msgstr "operando %%D no válido"
  
 -#: config/sparc/sparc.c:8806
 +#: config/sparc/sparc.c:8906
  #, c-format
  msgid "invalid %%f operand"
- msgstr "operando %%f inválido"
+-msgstr "operando %%f inválido"
++msgstr "operando %%f no válido"
  
 -#: config/sparc/sparc.c:8818
 +#: config/sparc/sparc.c:8918
  #, c-format
  msgid "invalid %%s operand"
- msgstr "operando %%s inválido"
+-msgstr "operando %%s inválido"
++msgstr "operando %%s no válido"
  
 -#: config/sparc/sparc.c:8863
+-#, fuzzy, c-format
+-#| msgid "floating point constant not a valid immediate operand"
 +#: config/sparc/sparc.c:8963
- #, fuzzy, c-format
- #| msgid "floating point constant not a valid immediate operand"
++#, c-format
  msgid "floating-point constant not a valid immediate operand"
-@@ -4380,31 +4234,31 @@
+ msgstr "la constante de coma flotante no es un operando inmediato válido"
+ 
+@@ -4271,52 +3987,52 @@
+ #: config/tilegx/tilegx.c:5080 config/tilepro/tilepro.c:4495
+ #, c-format
+ msgid "invalid %%c operand"
+-msgstr "operando %%c inválido"
++msgstr "operando %%c no válido"
+ 
+ #: config/tilegx/tilegx.c:5111
+ #, c-format
+ msgid "invalid %%d operand"
+-msgstr "operando %%d inválido"
++msgstr "operando %%d no válido"
+ 
+ #: config/tilegx/tilegx.c:5208
+ #, c-format
+ msgid "invalid %%H specifier"
+-msgstr "especificador %%H inválido"
++msgstr "especificador %%H no válido"
+ 
+ #: config/tilegx/tilegx.c:5250 config/tilepro/tilepro.c:4524
+ #, c-format
+ msgid "invalid %%h operand"
+-msgstr "operando %%h inválido"
++msgstr "operando %%h no válido"
+ 
+ #: config/tilegx/tilegx.c:5262 config/tilepro/tilepro.c:4588
+ #, c-format
+ msgid "invalid %%I operand"
+-msgstr "operando %%I inválido"
++msgstr "operando %%I no válido"
+ 
+ #: config/tilegx/tilegx.c:5274 config/tilepro/tilepro.c:4600
+ #, c-format
+ msgid "invalid %%i operand"
+-msgstr "operando %%i inválido"
++msgstr "operando %%i no válido"
+ 
+ #: config/tilegx/tilegx.c:5295 config/tilepro/tilepro.c:4621
+ #, c-format
+ msgid "invalid %%j operand"
+-msgstr "operando %%j inválido"
++msgstr "operando %%j no válido"
+ 
+ #: config/tilegx/tilegx.c:5326
+ #, c-format
+ msgid "invalid %%%c operand"
+-msgstr "operando %%%c inválido"
++msgstr "operando %%%c no válido"
+ 
+ #: config/tilegx/tilegx.c:5341 config/tilepro/tilepro.c:4735
+ #, c-format
+ msgid "invalid %%N operand"
+-msgstr "operando %%N inválido"
++msgstr "operando %%N no válido"
+ 
+ #: config/tilegx/tilegx.c:5385
+ #, c-format
+ msgid "invalid operand for 'r' specifier"
+-msgstr "operando inválido para el especificador 'r'"
++msgstr "operando no válido para el especificador 'r'"
+ 
+ #: config/tilegx/tilegx.c:5409 config/tilepro/tilepro.c:4816
+ #, c-format
+@@ -4326,32 +4042,32 @@
+ #: config/tilepro/tilepro.c:4560
+ #, c-format
+ msgid "invalid %%H operand"
+-msgstr "operando %%H inválido"
++msgstr "operando %%H no válido"
+ 
+ #: config/tilepro/tilepro.c:4660
+ #, c-format
+ msgid "invalid %%L operand"
+-msgstr "operando %%L inválido"
++msgstr "operando %%L no válido"
+ 
+ #: config/tilepro/tilepro.c:4720
+ #, c-format
+ msgid "invalid %%M operand"
+-msgstr "operando %%M inválido"
++msgstr "operando %%M no válido"
+ 
+ #: config/tilepro/tilepro.c:4763
+ #, c-format
+ msgid "invalid %%t operand"
+-msgstr "operando %%t inválido"
++msgstr "operando %%t no válido"
+ 
+ #: config/tilepro/tilepro.c:4770
+ #, c-format
+ msgid "invalid %%t operand '"
+-msgstr "operando %%t inválido '"
++msgstr "operando %%t no válido '"
+ 
+ #: config/tilepro/tilepro.c:4791
+ #, c-format
+ msgid "invalid %%r operand"
+-msgstr "operando %%r inválido"
++msgstr "operando %%r no válido"
+ 
+ #: config/v850/v850.c:293
+ msgid "const_double_split got a bad insn:"
+@@ -4380,35 +4096,25 @@
  msgid "illegal operand detected"
  msgstr "se detectó un operando ilegal"
  
 -#: config/visium/visium.c:3195
+-#, fuzzy
+-#| msgid "illegal operand detected"
 +#: config/visium/visium.c:3255
- #, fuzzy
- #| msgid "illegal operand detected"
  msgid "illegal operand "
- msgstr "se detectó un operando ilegal"
+-msgstr "se detectó un operando ilegal"
++msgstr "operando ilegal"
  
 -#: config/visium/visium.c:3246
+-#, fuzzy
+-#| msgid "illegal operand detected"
 +#: config/visium/visium.c:3306
- #, fuzzy
- #| msgid "illegal operand detected"
  msgid "illegal operand address (1)"
- msgstr "se detectó un operando ilegal"
+-msgstr "se detectó un operando ilegal"
++msgstr "dirección de operando ilegal (1)"
  
 -#: config/visium/visium.c:3253
+-#, fuzzy
+-#| msgid "illegal operand detected"
 +#: config/visium/visium.c:3313
- #, fuzzy
- #| msgid "illegal operand detected"
  msgid "illegal operand address (2)"
- msgstr "se detectó un operando ilegal"
+-msgstr "se detectó un operando ilegal"
++msgstr "dirección de operando ilegal (2)"
  
 -#: config/visium/visium.c:3268
+-#, fuzzy
+-#| msgid "illegal operand detected"
 +#: config/visium/visium.c:3328
- #, fuzzy
- #| msgid "illegal operand detected"
  msgid "illegal operand address (3)"
- msgstr "se detectó un operando ilegal"
+-msgstr "se detectó un operando ilegal"
++msgstr "dirección de operando ilegal (3)"
  
 -#: config/visium/visium.c:3276
+-#, fuzzy
+-#| msgid "illegal operand detected"
 +#: config/visium/visium.c:3336
- #, fuzzy
- #| msgid "illegal operand detected"
  msgid "illegal operand address (4)"
-@@ -4442,11 +4296,11 @@
+-msgstr "se detectó un operando ilegal"
++msgstr "dirección de operando ilegal (4)"
+ 
+ #: config/xtensa/xtensa.c:768 config/xtensa/xtensa.c:800
+ #: config/xtensa/xtensa.c:809
+@@ -4418,21 +4124,21 @@
+ #: config/xtensa/xtensa.c:2301
+ #, c-format
+ msgid "invalid %%D value"
+-msgstr "valor %%D inválido"
++msgstr "valor %%D no válido"
+ 
+ #: config/xtensa/xtensa.c:2338
+ msgid "invalid mask"
+-msgstr "máscara inválida"
++msgstr "máscara no válida"
+ 
+ #: config/xtensa/xtensa.c:2371
+ #, c-format
+ msgid "invalid %%d value"
+-msgstr "valor %%d inválido"
++msgstr "valor %%d no válido"
+ 
+ #: config/xtensa/xtensa.c:2390 config/xtensa/xtensa.c:2400
+ #, c-format
+ msgid "invalid %%t/%%b value"
+-msgstr "valor %%t%%b inválido"
++msgstr "valor %%t%%b no válido"
+ 
+ #: config/xtensa/xtensa.c:2479
+ msgid "no register in address"
+@@ -4442,11 +4148,11 @@
  msgid "address offset not a constant"
  msgstr "el desplazamiento de dirección no es una constante"
  
@@ -25438,7 +34403,7 @@ Index: gcc/po/es.po
  msgid "({anonymous})"
  msgstr "({anónimo})"
  
-@@ -4454,9 +4308,9 @@
+@@ -4454,9 +4160,9 @@
  #: c/c-parser.c:5286 c/c-parser.c:5670 c/c-parser.c:5839 c/c-parser.c:5870
  #: c/c-parser.c:6085 c/c-parser.c:8825 c/c-parser.c:8860 c/c-parser.c:8891
  #: c/c-parser.c:8938 c/c-parser.c:9119 c/c-parser.c:9899 c/c-parser.c:9969
@@ -25451,7 +34416,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "expected %<;%>"
  msgstr "se esperaba %<;%>"
-@@ -4467,22 +4321,22 @@
+@@ -4467,22 +4173,22 @@
  #: c/c-parser.c:5545 c/c-parser.c:5755 c/c-parser.c:6021 c/c-parser.c:6144
  #: c/c-parser.c:7203 c/c-parser.c:7628 c/c-parser.c:7669 c/c-parser.c:7802
  #: c/c-parser.c:7996 c/c-parser.c:8013 c/c-parser.c:8039 c/c-parser.c:9410
@@ -25485,7 +34450,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "expected %<,%>"
  msgstr "se esperaba %<,%>"
-@@ -4497,27 +4351,27 @@
+@@ -4497,27 +4203,27 @@
  #: c/c-parser.c:7828 c/c-parser.c:8005 c/c-parser.c:8030 c/c-parser.c:8054
  #: c/c-parser.c:8277 c/c-parser.c:8668 c/c-parser.c:9204 c/c-parser.c:9225
  #: c/c-parser.c:9433 c/c-parser.c:9488 c/c-parser.c:9871 c/c-parser.c:10552
@@ -25529,7 +34494,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "expected %<]%>"
  msgstr "se esperaba %<]%>"
-@@ -4526,13 +4380,13 @@
+@@ -4526,13 +4232,13 @@
  msgid "expected %<;%>, %<,%> or %<)%>"
  msgstr "se esperaba %<;%>, %<,%> o %<)%>"
  
@@ -25546,7 +34511,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "expected %<{%>"
  msgstr "se esperaba %<{%>"
-@@ -4539,9 +4393,9 @@
+@@ -4539,9 +4245,9 @@
  
  #: c/c-parser.c:4917 c/c-parser.c:4926 c/c-parser.c:6043 c/c-parser.c:6385
  #: c/c-parser.c:7278 c/c-parser.c:9218 c/c-parser.c:9601 c/c-parser.c:9662
@@ -25559,7 +34524,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "expected %<:%>"
  msgstr "se esperaba %<:%>"
-@@ -4548,23 +4402,21 @@
+@@ -4548,23 +4254,21 @@
  
  #: c/c-parser.c:5185 cp/semantics.c:613
  msgid "Cilk array notation cannot be used as a computed goto expression"
@@ -25588,7 +34553,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "expected %<while%>"
  msgstr "se esperaba %<while%>"
-@@ -4571,57 +4423,57 @@
+@@ -4571,57 +4275,57 @@
  
  #: c/c-parser.c:5663 cp/semantics.c:850
  msgid "Cilk array notation cannot be used as a condition for a do-while statement"
@@ -25659,7 +34624,7 @@ Index: gcc/po/es.po
  msgid "candidate 2:"
  msgstr "candidato 2:"
  
-@@ -4633,85 +4485,85 @@
+@@ -4633,85 +4337,83 @@
  msgid "candidate is: %+#D"
  msgstr "el candidato es: %+#D"
  
@@ -25728,11 +34693,12 @@ Index: gcc/po/es.po
  msgstr "{anónimo}"
  
 -#: cp/error.c:1101
+-#, fuzzy
+-#| msgid "(anonymous)"
 +#: cp/error.c:1104
- #, fuzzy
- #| msgid "(anonymous)"
  msgid "(anonymous namespace)"
- msgstr "(anónimo)"
+-msgstr "(anónimo)"
++msgstr "(espacio de nombres anónimo)"
  
 -#: cp/error.c:1217
 +#: cp/error.c:1220
@@ -25764,7 +34730,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "<unknown>"
  msgstr "<desconocido>"
-@@ -4718,148 +4570,146 @@
+@@ -4718,148 +4420,130 @@
  
  #. While waiting for caret diagnostics, avoid printing
  #. __cxa_allocate_exception, __cxa_throw, and the like.
@@ -25859,18 +34825,20 @@ Index: gcc/po/es.po
  msgstr "%s: En la instanciación de %q#D:\n"
  
 -#: cp/error.c:3343
+-#, fuzzy
+-#| msgid "%s:%d:%d:   "
 +#: cp/error.c:3359
- #, fuzzy
- #| msgid "%s:%d:%d:   "
  msgid "%r%s:%d:%d:%R   "
- msgstr "%s:%d:%d:   "
+-msgstr "%s:%d:%d:   "
++msgstr "%r%s:%d:%d:%R   "
  
 -#: cp/error.c:3346
+-#, fuzzy
+-#| msgid "%s:%d:   "
 +#: cp/error.c:3362
- #, fuzzy
- #| msgid "%s:%d:   "
  msgid "%r%s:%d:%R   "
- msgstr "%s:%d:   "
+-msgstr "%s:%d:   "
++msgstr "%r%s:%d:%R   "
  
 -#: cp/error.c:3354
 +#: cp/error.c:3370
@@ -25895,46 +34863,52 @@ Index: gcc/po/es.po
  msgstr "se requiere desde %q#D\n"
  
 -#: cp/error.c:3368
+-#, fuzzy
+-#| msgid "recursively required from here"
 +#: cp/error.c:3384
- #, fuzzy
- #| msgid "recursively required from here"
  msgid "recursively required from here\n"
- msgstr "se requiere recursivamente desde aquí"
+-msgstr "se requiere recursivamente desde aquí"
++msgstr "se requiere recursivamente desde aquí\n"
  
 -#: cp/error.c:3369
+-#, fuzzy
+-#| msgid "required from here"
 +#: cp/error.c:3385
- #, fuzzy
- #| msgid "required from here"
  msgid "required from here\n"
- msgstr "se requiere desde aquí"
+-msgstr "se requiere desde aquí"
++msgstr "se requiere desde aquí\n"
  
 -#: cp/error.c:3421
+-#, fuzzy
+-#| msgid "%s:%d:%d:   [ skipping %d instantiation contexts ]\n"
 +#: cp/error.c:3437
- #, fuzzy
- #| msgid "%s:%d:%d:   [ skipping %d instantiation contexts ]\n"
  msgid "%r%s:%d:%d:%R   [ skipping %d instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]\n"
- msgstr "%s:%d:%d:   [ se saltan %d contextos de instanciación ]\n"
+-msgstr "%s:%d:%d:   [ se saltan %d contextos de instanciación ]\n"
++msgstr "%r%s:%d:%d:%R   [ se saltan %d contextos de instanciación; utilice -ftemplate-backtrace-limit=0 para desactivarlo ]\n"
  
 -#: cp/error.c:3427
+-#, fuzzy
+-#| msgid "%s:%d:%d:   [ skipping %d instantiation contexts ]\n"
 +#: cp/error.c:3443
- #, fuzzy
- #| msgid "%s:%d:%d:   [ skipping %d instantiation contexts ]\n"
  msgid "%r%s:%d:%R   [ skipping %d instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]\n"
- msgstr "%s:%d:%d:   [ se saltan %d contextos de instanciación ]\n"
+-msgstr "%s:%d:%d:   [ se saltan %d contextos de instanciación ]\n"
++msgstr "%r%s:%d:%R   [ se saltan %d contextos de instanciación; utilice -ftemplate-backtrace-limit=0 para desactivarlo ]\n"
  
 -#: cp/error.c:3481
+-#, fuzzy
+-#| msgid "%s:%d:%d:   in constexpr expansion of %qs"
 +#: cp/error.c:3497
- #, fuzzy
- #| msgid "%s:%d:%d:   in constexpr expansion of %qs"
  msgid "%r%s:%d:%d:%R   in constexpr expansion of %qs"
- msgstr "%s:%d:%d:   en la expansión de la expresión constante de %qs"
+-msgstr "%s:%d:%d:   en la expansión de la expresión constante de %qs"
++msgstr "%r%s:%d:%d:%R   en la expansión de la expresión constante de %qs"
  
 -#: cp/error.c:3485
+-#, fuzzy
+-#| msgid "%s:%d:   in constexpr expansion of %qs"
 +#: cp/error.c:3501
- #, fuzzy
- #| msgid "%s:%d:   in constexpr expansion of %qs"
  msgid "%r%s:%d:%R   in constexpr expansion of %qs"
- msgstr "%s:%d:   en la expansión de la expresión constante de %qs"
+-msgstr "%s:%d:   en la expansión de la expresión constante de %qs"
++msgstr "%r%s:%d:%R   en la expansión de la expresión constante de %qs"
  
 -#: cp/pt.c:1947 cp/semantics.c:5220
 +#: cp/pt.c:1945 cp/semantics.c:5217
@@ -25946,7 +34920,7 @@ Index: gcc/po/es.po
  msgid "candidate is:"
  msgid_plural "candidates are:"
  msgstr[0] "el candidato es:"
-@@ -4905,27 +4755,27 @@
+@@ -4905,27 +4589,27 @@
  msgid "source type is not polymorphic"
  msgstr "el tipo fuente no es polimórfico"
  
@@ -25979,7 +34953,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "wrong type argument to conjugation"
  msgstr "argumento de tipo erróneo para la conjugación"
-@@ -4997,31 +4847,25 @@
+@@ -4997,31 +4681,25 @@
  msgid "arguments '%s' and '%s' for intrinsic '%s'"
  msgstr "argumentos '%s' y '%s' para el intrínseco '%s'"
  
@@ -26021,7 +34995,7 @@ Index: gcc/po/es.po
  
  #: fortran/expr.c:622
  #, c-format
-@@ -5047,7 +4891,7 @@
+@@ -5047,7 +4725,7 @@
  msgid "Driving:"
  msgstr "Conduciendo:"
  
@@ -26030,7 +35004,7 @@ Index: gcc/po/es.po
  msgid "actual argument to INTENT = OUT/INOUT"
  msgstr "argumento actual de INTENT = OUT/INOUT"
  
-@@ -5060,10 +4904,8 @@
+@@ -5060,10 +4738,8 @@
  msgstr "Se requiere una anchura que no sea negativa"
  
  #: fortran/io.c:552
@@ -26042,7 +35016,7 @@ Index: gcc/po/es.po
  
  #: fortran/io.c:554
  msgid "Unexpected end of format string"
-@@ -5078,10 +4920,8 @@
+@@ -5078,10 +4754,8 @@
  msgstr "Falta el paréntesis izquierdo inicial"
  
  #: fortran/io.c:604
@@ -26054,7 +35028,7 @@ Index: gcc/po/es.po
  
  #: fortran/io.c:635
  msgid "Expected P edit descriptor"
-@@ -5165,7 +5005,7 @@
+@@ -5165,7 +4839,7 @@
  msgid "Expected integer"
  msgstr "Se esperaba un entero"
  
@@ -26063,7 +35037,7 @@ Index: gcc/po/es.po
  msgid "Expected string"
  msgstr "Se esperaba una cadena"
  
-@@ -5177,67 +5017,67 @@
+@@ -5177,67 +4851,67 @@
  msgid "Expected attribute bit name"
  msgstr "Se esperaba un nombre de atributo de bit"
  
@@ -26147,7 +35121,7 @@ Index: gcc/po/es.po
  msgid "simple IF"
  msgstr "IF simple"
  
-@@ -5249,228 +5089,201 @@
+@@ -5249,228 +4923,195 @@
  msgid "internal function"
  msgstr "función interna"
  
@@ -26201,7 +35175,8 @@ Index: gcc/po/es.po
  #, fuzzy
  #| msgid "invalid type argument"
  msgid "value argument"
- msgstr "argumento de tipo inválido"
+-msgstr "argumento de tipo inválido"
++msgstr "argumento de tipo no válido"
  
 -#: fortran/resolve.c:2278
 -#, fuzzy
@@ -26235,11 +35210,12 @@ Index: gcc/po/es.po
 +msgstr "argumento de coarray"
  
 -#: fortran/resolve.c:2298
+-#, fuzzy
+-#| msgid "parameterized structures not implemented"
 +#: fortran/resolve.c:2304
- #, fuzzy
- #| msgid "parameterized structures not implemented"
  msgid "parametrized derived type argument"
- msgstr "no se han implementado las estructuras parametrizadas"
+-msgstr "no se han implementado las estructuras parametrizadas"
++msgstr "argumento de tipo derivado parametrizado"
  
 -#: fortran/resolve.c:2303
 -#, fuzzy
@@ -26262,7 +35238,8 @@ Index: gcc/po/es.po
  #, fuzzy
  #| msgid "invalid type argument"
  msgid "assumed-type argument"
- msgstr "argumento de tipo inválido"
+-msgstr "argumento de tipo inválido"
++msgstr "argumento de tipo no válido"
  
 -#: fortran/resolve.c:2326
 +#: fortran/resolve.c:2332
@@ -26279,24 +35256,27 @@ Index: gcc/po/es.po
 +msgstr "puntero o resultado asignable"
  
 -#: fortran/resolve.c:2338
+-#, fuzzy
+-#| msgid "bit array slice with non-constant length"
 +#: fortran/resolve.c:2344
- #, fuzzy
- #| msgid "bit array slice with non-constant length"
  msgid "result with non-constant character length"
- msgstr "rebanada de la matriz de bits con longitud no constante"
+-msgstr "rebanada de la matriz de bits con longitud no constante"
++msgstr "resultado con longitud de carácter no constante"
  
 -#: fortran/resolve.c:2350
+-#, fuzzy
+-#| msgid "module procedure"
 +#: fortran/resolve.c:2356
- #, fuzzy
- #| msgid "module procedure"
  msgid "bind(c) procedure"
- msgstr "procedimiento módulo"
+-msgstr "procedimiento módulo"
++msgstr "procedimiento bind(c)"
  
 -#: fortran/resolve.c:3552
 +#: fortran/resolve.c:3558
  #, c-format
  msgid "Invalid context for NULL() pointer at %%L"
- msgstr "Contexto inválido para el puntero NULL() en %%L"
+-msgstr "Contexto inválido para el puntero NULL() en %%L"
++msgstr "Contexto no válido para el puntero NULL() en %%L"
  
 -#: fortran/resolve.c:3568
 -#, fuzzy, c-format
@@ -26445,7 +35425,7 @@ Index: gcc/po/es.po
  msgid "ACQUIRED_LOCK variable"
  msgstr "variable ACQUIRED_LOCK"
  
-@@ -5479,28 +5292,28 @@
+@@ -5479,28 +5120,28 @@
  msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
  msgstr "Longitudes de CHARACTER diferentes (%ld/%ld) en el constructor de matriz"
  
@@ -26480,7 +35460,91 @@ Index: gcc/po/es.po
  
  #: fortran/trans-intrinsic.c:897
  #, c-format
-@@ -5769,7 +5582,7 @@
+@@ -5531,7 +5172,7 @@
+ #: fortran/trans-stmt.c:1101
+ #, c-format
+ msgid "Invalid image number %d in SYNC IMAGES"
+-msgstr "Número de imagen %d inválido en SYNC IMAGES"
++msgstr "Número de imagen %d no válido en SYNC IMAGES"
+ 
+ #: fortran/trans-stmt.c:1898 fortran/trans-stmt.c:2183
+ msgid "Loop variable has been modified"
+@@ -5573,54 +5214,38 @@
+ 
+ #. The remainder are real diagnostic types.
+ #: fortran/gfc-diagnostic.def:33
+-#, fuzzy
+-#| msgid "Fatal Error:"
+ msgid "Fatal Error"
+-msgstr "Error Fatal:"
++msgstr "Error Fatal"
+ 
+ #. This is like DK_ICE, but backtrace is not printed.  Used in the driver
+ #. when reporting fatal signal in the compiler.
+ #: fortran/gfc-diagnostic.def:34 fortran/gfc-diagnostic.def:50
+-#, fuzzy
+-#| msgid "internal compiler error: "
+ msgid "internal compiler error"
+-msgstr "error interno del compilador: "
++msgstr "error interno del compilador"
+ 
+ #: fortran/gfc-diagnostic.def:35
+-#, fuzzy
+-#| msgid "Error:"
+ msgid "Error"
+-msgstr "Error:"
++msgstr "Error"
+ 
+ #: fortran/gfc-diagnostic.def:36
+-#, fuzzy
+-#| msgid "sorry, unimplemented: "
+ msgid "sorry, unimplemented"
+-msgstr "lo sentimos, sin implementar: "
++msgstr "lo sentimos, sin implementar"
+ 
+ #: fortran/gfc-diagnostic.def:37
+-#, fuzzy
+-#| msgid "Warning:"
+ msgid "Warning"
+-msgstr "Aviso:"
++msgstr "Aviso"
+ 
+ #: fortran/gfc-diagnostic.def:38
+-#, fuzzy
+-#| msgid "anachronism: "
+ msgid "anachronism"
+-msgstr "anacronismo: "
++msgstr "anacronismo"
+ 
+ #: fortran/gfc-diagnostic.def:39
+-#, fuzzy
+-#| msgid "note:"
+ msgid "note"
+-msgstr "nota:"
++msgstr "nota"
+ 
+ #: fortran/gfc-diagnostic.def:40
+-#, fuzzy
+-#| msgid "debug: "
+ msgid "debug"
+-msgstr "depuración: "
++msgstr "depuración"
+ 
+ #. These two would be re-classified as DK_WARNING or DK_ERROR, so the
+ #. prefix does not matter.
+@@ -5639,10 +5264,8 @@
+ #. This one is just for counting DK_WARNING promoted to DK_ERROR
+ #. due to -Werror and -Werror=warning.
+ #: fortran/gfc-diagnostic.def:47
+-#, fuzzy
+-#| msgid "error: "
+ msgid "error"
+-msgstr "error: "
++msgstr "error"
+ 
+ #: go/go-backend.c:171
+ msgid "lseek failed while reading export data"
+@@ -5769,7 +5392,7 @@
  "For bug reporting instructions, please see:\n"
  "%s.\n"
  msgstr ""
@@ -26489,7 +35553,7 @@ Index: gcc/po/es.po
  "%s.\n"
  
  #: java/jcf-dump.c:1258 java/jcf-dump.c:1326
-@@ -5807,22 +5620,18 @@
+@@ -5807,22 +5430,18 @@
  msgid "%s: Failed to close output file %s\n"
  msgstr "%s: No se puede cerrar el fichero de salida %s\n"
  
@@ -26515,7 +35579,7 @@ Index: gcc/po/es.po
  
  #: gcc.c:961
  msgid "-fuse-linker-plugin is not supported in this configuration"
-@@ -5830,11 +5639,11 @@
+@@ -5830,11 +5449,11 @@
  
  #: gcc.c:976
  msgid "cannot specify -static with -fsanitize=address"
@@ -26529,7 +35593,7 @@ Index: gcc/po/es.po
  
  #: gcc.c:1122 ada/gcc-interface/lang-specs.h:33 java/jvspec.c:79
  msgid "-pg and -fomit-frame-pointer are incompatible"
-@@ -5848,155 +5657,90 @@
+@@ -5848,111 +5467,121 @@
  msgid "-E or -x required when input is from standard input"
  msgstr "se requiere -E ó -x cuando la entrada es de entrada estándar"
  
@@ -26598,266 +35662,260 @@ Index: gcc/po/es.po
 -#: config/sparc/sol2.h:219 config/sparc/sol2.h:225
 -msgid "may not use both -m32 and -m64"
 -msgstr "no se pueden usar -m32 y -m64 al mismo tiempo"
--
++#: config/dragonfly.h:76 config/alpha/freebsd.h:33 config/i386/freebsd.h:82
++#: config/i386/freebsd64.h:35 config/ia64/freebsd.h:26
++#: config/rs6000/sysv4.h:731 config/sparc/freebsd.h:45
++msgid "consider using '-pg' instead of '-p' with gprof(1)"
++msgstr "considere usar '-pg' en lugar de '-p' con gprof(1)"
+ 
 -#: config/s390/tpf.h:110
 -msgid "static is not supported on TPF-OS"
 -msgstr "static no se admite en TPF-OS"
--
--#: config/i386/mingw-w64.h:87 config/i386/mingw32.h:117
++#: config/lynx.h:69
++msgid "cannot use mthreads and mlegacy-threads together"
++msgstr "no se pueden usar mthreads y mlegacy-threads juntos"
+ 
++#: config/lynx.h:94
++msgid "cannot use mshared and static together"
++msgstr "no se pueden usar mshared y static juntos"
++
++#: config/sol2.h:181
++msgid "-fvtable-verify is not supported in this configuration"
++msgstr "-fvtable-verify no se admite en esta configuración"
++
++#: config/sol2.h:268 config/sol2.h:273
++msgid "does not support multilib"
++msgstr "no se admite multilib"
++
++#: config/sol2.h:365
++msgid "-pie is not supported in this configuration"
++msgstr "-pie no se admite en esta configuración"
++
++#: config/vxworks.h:70
++msgid "-Xbind-now and -Xbind-lazy are incompatible"
++msgstr "-Xbind-now y -Xbind-lazy son incompatibles"
++
++#: config/arc/arc.h:142 config/mips/mips.h:1358
++msgid "may not use both -EB and -EL"
++msgstr "no se pueden usar -EB y -EL al mismo tiempo"
++
++#: config/arm/arm.h:100
++msgid "-mfloat-abi=soft and -mfloat-abi=hard may not be used together"
++msgstr "no se pueden usar juntos -mfloat-abi=soft y -mfloat-abi=hard"
++
++#: config/arm/arm.h:102 config/tilegx/tilegx.h:546 config/tilegx/tilegx.h:551
++msgid "-mbig-endian and -mlittle-endian may not be used together"
++msgstr "no se pueden usar juntos -mbig-endian y -mlittle-endian"
++
++#: config/arm/freebsd.h:49
++msgid "consider using `-pg' instead of `-p' with gprof (1) "
++msgstr "considere usar `-pg' en lugar de `-p' con gprof (1)"
++
++#: config/avr/specs.h:68
++msgid "shared is not supported"
++msgstr "no se admite shared"
++
++#: config/bfin/elf.h:55
++msgid "no processor type specified for linking"
++msgstr "no existe el tipo de procesador especificado para enlazar"
++
++#: config/cris/cris.h:184
++msgid "do not specify both -march=... and -mcpu=..."
++msgstr "no especifique -march=... y -mcpu=... al mismo tiempo"
++
++#: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:130
+ #: config/i386/mingw-w64.h:87 config/i386/mingw32.h:117
 -#: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:130
--msgid "shared and mdll are not compatible"
--msgstr "shared y mdll no son compatibles"
--
+ msgid "shared and mdll are not compatible"
+ msgstr "shared y mdll no son compatibles"
+ 
 -#: config/alpha/freebsd.h:33 config/rs6000/sysv4.h:731 config/dragonfly.h:76
 -#: config/ia64/freebsd.h:26 config/i386/freebsd.h:82
 -#: config/i386/freebsd64.h:35 config/sparc/freebsd.h:45
-+#: config/dragonfly.h:76 config/alpha/freebsd.h:33 config/i386/freebsd.h:82
-+#: config/i386/freebsd64.h:35 config/ia64/freebsd.h:26
-+#: config/rs6000/sysv4.h:731 config/sparc/freebsd.h:45
- msgid "consider using '-pg' instead of '-p' with gprof(1)"
- msgstr "considere usar '-pg' en lugar de '-p' con gprof(1)"
+-msgid "consider using '-pg' instead of '-p' with gprof(1)"
+-msgstr "considere usar '-pg' en lugar de '-p' con gprof(1)"
++#: config/mcore/mcore.h:53
++msgid "the m210 does not have little endian support"
++msgstr "el m210 no admite little endian"
  
 -#: objc/lang-specs.h:30 objc/lang-specs.h:41
 -msgid "GNU Objective C no longer supports traditional compilation"
 -msgstr "Objective C de GNU ya no admite compilación tradicional"
-+#: config/lynx.h:69
-+msgid "cannot use mthreads and mlegacy-threads together"
-+msgstr "no se pueden usar mthreads y mlegacy-threads juntos"
++#: config/mips/r3900.h:37
++msgid "-mhard-float not supported"
++msgstr "no se admite -mhard-float"
  
 -#: objc/lang-specs.h:55
 -msgid "objc-cpp-output is deprecated; please use objective-c-cpp-output instead"
 -msgstr "objc-cpp-output es obsoleto; por favor use en su lugar objective-c-cpp-output"
-+#: config/lynx.h:94
-+msgid "cannot use mshared and static together"
-+msgstr "no se pueden usar mshared y static juntos"
++#: config/mips/r3900.h:39
++msgid "-msingle-float and -msoft-float cannot both be specified"
++msgstr "no se pueden especificar -msingle-float y -msoft-float al mismo tiempo"
  
 -#: config/tilegx/tilegx.h:546 config/tilegx/tilegx.h:551 config/arm/arm.h:102
 -msgid "-mbig-endian and -mlittle-endian may not be used together"
 -msgstr "no se pueden usar juntos -mbig-endian y -mlittle-endian"
 -
--#: config/moxie/moxiebox.h:43
-+#: config/sol2.h:181
- #, fuzzy
+ #: config/moxie/moxiebox.h:43
+-#, fuzzy
 -#| msgid "Assume target CPU is configured as little endian"
--msgid "this target is little-endian"
+ msgid "this target is little-endian"
 -msgstr "Asume que el CPU destino está configurado como little endian"
-+#| msgid "weakref is not supported in this configuration"
-+msgid "-fvtable-verify is not supported in this configuration"
-+msgstr "weakref no se admite en esta configuración"
++msgstr "este destino es little endian"
  
 -#: ada/gcc-interface/lang-specs.h:34
 -msgid "-c or -S required for Ada"
 -msgstr "se requiere -c o -S para Ada"
-+#: config/sol2.h:268 config/sol2.h:273
-+msgid "does not support multilib"
-+msgstr "no se admite multilib"
++#: config/nios2/elf.h:44
++msgid "You need a C startup file for -msys-crt0="
++msgstr "Se necesita un fichero de arranque de C para -msys-crt0="
  
 -#: ada/gcc-interface/lang-specs.h:52
 -msgid "-c required for gnat2why"
 -msgstr "se requiere -c para gnat2why"
 -
 -#: ada/gcc-interface/lang-specs.h:65
-+#: config/sol2.h:365
- #, fuzzy
+-#, fuzzy
 -#| msgid "-c required for gnat2why"
 -msgid "-c required for gnat2scil"
 -msgstr "se requiere -c para gnat2why"
-+#| msgid "ifunc is not supported in this configuration"
-+msgid "-pie is not supported in this configuration"
-+msgstr "ifunc no se admite en esta configuración"
- 
--#: config/pa/pa-hpux10.h:102 config/pa/pa-hpux10.h:105
--#: config/pa/pa-hpux10.h:113 config/pa/pa-hpux10.h:116
--#: config/pa/pa-hpux11.h:134 config/pa/pa-hpux11.h:137
--#: config/pa/pa64-hpux.h:29 config/pa/pa64-hpux.h:32 config/pa/pa64-hpux.h:41
--#: config/pa/pa64-hpux.h:44
--msgid "warning: consider linking with '-static' as system libraries with"
--msgstr "aviso: considere enlazar con '-static' como bibliotecas de sistema con"
--
--#: config/pa/pa-hpux10.h:103 config/pa/pa-hpux10.h:106
--#: config/pa/pa-hpux10.h:114 config/pa/pa-hpux10.h:117
--#: config/pa/pa-hpux11.h:135 config/pa/pa-hpux11.h:138
--#: config/pa/pa64-hpux.h:30 config/pa/pa64-hpux.h:33 config/pa/pa64-hpux.h:42
--#: config/pa/pa64-hpux.h:45
--msgid "  profiling support are only provided in archive format"
--msgstr " soporte a análisis de perfil sólo se proveen en formato de archivo"
 -
- #: config/vxworks.h:70
- msgid "-Xbind-now and -Xbind-lazy are incompatible"
- msgstr "-Xbind-now y -Xbind-lazy son incompatibles"
+ #: config/pa/pa-hpux10.h:102 config/pa/pa-hpux10.h:105
+ #: config/pa/pa-hpux10.h:113 config/pa/pa-hpux10.h:116
+ #: config/pa/pa-hpux11.h:134 config/pa/pa-hpux11.h:137
+@@ -5969,96 +5598,64 @@
+ msgid "  profiling support are only provided in archive format"
+ msgstr " soporte a análisis de perfil sólo se proveen en formato de archivo"
+ 
+-#: config/vxworks.h:70
+-msgid "-Xbind-now and -Xbind-lazy are incompatible"
+-msgstr "-Xbind-now y -Xbind-lazy son incompatibles"
++#: config/rs6000/darwin.h:95
++msgid " conflicting code gen style switches are used"
++msgstr " se usan interruptores de estilo de generación de código en conflicto"
  
 -#: config/cris/cris.h:184
 -msgid "do not specify both -march=... and -mcpu=..."
 -msgstr "no especifique -march=... y -mcpu=... al mismo tiempo"
--
- #: config/arc/arc.h:142 config/mips/mips.h:1358
- msgid "may not use both -EB and -EL"
- msgstr "no se pueden usar -EB y -EL al mismo tiempo"
++#: config/rs6000/freebsd64.h:171
++msgid "consider using `-pg' instead of `-p' with gprof(1)"
++msgstr "considere usar `-pg' en lugar de `-p' con gprof(1)"
+ 
+-#: config/arc/arc.h:142 config/mips/mips.h:1358
+-msgid "may not use both -EB and -EL"
+-msgstr "no se pueden usar -EB y -EL al mismo tiempo"
++#: config/rx/rx.h:80
++msgid "-mas100-syntax is incompatible with -gdwarf"
++msgstr "-mas100-syntax es incompatible con -gdwarf"
  
 -#: objcp/lang-specs.h:58
 -msgid "objc++-cpp-output is deprecated; please use objective-c++-cpp-output instead"
 -msgstr "objc++-cpp-output es obsoleto; pr favor use en su lugar objective-c++-cpp-output"
-+#: config/arm/arm.h:100
-+msgid "-mfloat-abi=soft and -mfloat-abi=hard may not be used together"
-+msgstr "no se pueden usar juntos -mfloat-abi=soft y -mfloat-abi=hard"
++#: config/rx/rx.h:81
++msgid "rx100 cpu does not have FPU hardware"
++msgstr "la cpu rx100 no tiene FPU de hardware"
  
 -#: config/rs6000/darwin.h:95
 -msgid " conflicting code gen style switches are used"
 -msgstr " se usan interruptores de estilo de generación de código en conflicto"
-+#: config/arm/arm.h:102 config/tilegx/tilegx.h:546 config/tilegx/tilegx.h:551
-+msgid "-mbig-endian and -mlittle-endian may not be used together"
-+msgstr "no se pueden usar juntos -mbig-endian y -mlittle-endian"
++#: config/rx/rx.h:82
++msgid "rx200 cpu does not have FPU hardware"
++msgstr "la cpu rx200 no tiene FPU de hardware"
  
 -#: fortran/lang-specs.h:54 fortran/lang-specs.h:68
 -msgid "gfortran does not support -E without -cpp"
 -msgstr "gfortran no admite -E sin usar -cpp"
-+#: config/arm/freebsd.h:49
-+#, fuzzy
-+#| msgid "consider using `-pg' instead of `-p' with gprof(1)"
-+msgid "consider using `-pg' instead of `-p' with gprof (1) "
-+msgstr "considere usar `-pg' en lugar de `-p' con gprof(1)"
++#: config/s390/tpf.h:110
++msgid "static is not supported on TPF-OS"
++msgstr "static no se admite en TPF-OS"
  
--#: config/sh/sh.h:375 config/sh/sh.h:378
--msgid "SH2a does not support little-endian"
--msgstr "SH2a no se admite para little-endian"
--
- #: config/avr/specs.h:68
- #, fuzzy
- #| msgid "-fpic is not supported"
-@@ -6003,14 +5747,23 @@
- msgid "shared is not supported"
- msgstr "no se admite -fpic"
+ #: config/sh/sh.h:375 config/sh/sh.h:378
+ msgid "SH2a does not support little-endian"
+ msgstr "SH2a no se admite para little-endian"
+ 
+-#: config/avr/specs.h:68
+-#, fuzzy
+-#| msgid "-fpic is not supported"
+-msgid "shared is not supported"
+-msgstr "no se admite -fpic"
++#: config/sparc/linux64.h:149 config/sparc/linux64.h:156
++#: config/sparc/netbsd-elf.h:108 config/sparc/netbsd-elf.h:117
++#: config/sparc/sol2.h:228 config/sparc/sol2.h:234
++msgid "may not use both -m32 and -m64"
++msgstr "no se pueden usar -m32 y -m64 al mismo tiempo"
  
 -#: config/arm/arm.h:100
 -msgid "-mfloat-abi=soft and -mfloat-abi=hard may not be used together"
 -msgstr "no se pueden usar juntos -mfloat-abi=soft y -mfloat-abi=hard"
-+#: config/bfin/elf.h:55
-+msgid "no processor type specified for linking"
-+msgstr "no existe el tipo de procesador especificado para enlazar"
- 
--#: config/vax/netbsd-elf.h:51
--msgid "the -shared option is not currently supported for VAX ELF"
--msgstr "la opción -shared no se admite actualmente en ELF de VAX"
-+#: config/cris/cris.h:184
-+msgid "do not specify both -march=... and -mcpu=..."
-+msgstr "no especifique -march=... y -mcpu=... al mismo tiempo"
- 
-+#: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:130
-+#: config/i386/mingw-w64.h:87 config/i386/mingw32.h:117
-+msgid "shared and mdll are not compatible"
-+msgstr "shared y mdll no son compatibles"
-+
-+#: config/mcore/mcore.h:53
-+msgid "the m210 does not have little endian support"
-+msgstr "el m210 no admite little endian"
-+
- #: config/mips/r3900.h:37
- msgid "-mhard-float not supported"
- msgstr "no se admite -mhard-float"
-@@ -6019,22 +5772,38 @@
- msgid "-msingle-float and -msoft-float cannot both be specified"
- msgstr "no se pueden especificar -msingle-float y -msoft-float al mismo tiempo"
- 
--#: config/vax/vax.h:46 config/vax/vax.h:47
--msgid "profiling not supported with -mg"
--msgstr "el análisis de perfil no se admite con -mg"
-+#: config/moxie/moxiebox.h:43
-+msgid "this target is little-endian"
-+msgstr "este destino es little endian"
- 
-+#: config/nios2/elf.h:44
-+msgid "You need a C startup file for -msys-crt0="
-+msgstr "Se necesita un fichero de arranque de C para -msys-crt0="
-+
-+#: config/pa/pa-hpux10.h:102 config/pa/pa-hpux10.h:105
-+#: config/pa/pa-hpux10.h:113 config/pa/pa-hpux10.h:116
-+#: config/pa/pa-hpux11.h:134 config/pa/pa-hpux11.h:137
-+#: config/pa/pa64-hpux.h:29 config/pa/pa64-hpux.h:32 config/pa/pa64-hpux.h:41
-+#: config/pa/pa64-hpux.h:44
-+msgid "warning: consider linking with '-static' as system libraries with"
-+msgstr "aviso: considere enlazar con '-static' como bibliotecas de sistema con"
-+
-+#: config/pa/pa-hpux10.h:103 config/pa/pa-hpux10.h:106
-+#: config/pa/pa-hpux10.h:114 config/pa/pa-hpux10.h:117
-+#: config/pa/pa-hpux11.h:135 config/pa/pa-hpux11.h:138
-+#: config/pa/pa64-hpux.h:30 config/pa/pa64-hpux.h:33 config/pa/pa64-hpux.h:42
-+#: config/pa/pa64-hpux.h:45
-+msgid "  profiling support are only provided in archive format"
-+msgstr " soporte a análisis de perfil sólo se proveen en formato de archivo"
-+
-+#: config/rs6000/darwin.h:95
-+msgid " conflicting code gen style switches are used"
-+msgstr " se usan interruptores de estilo de generación de código en conflicto"
-+
- #: config/rs6000/freebsd64.h:171
- msgid "consider using `-pg' instead of `-p' with gprof(1)"
- msgstr "considere usar `-pg' en lugar de `-p' con gprof(1)"
+-
+ #: config/vax/netbsd-elf.h:51
+ msgid "the -shared option is not currently supported for VAX ELF"
+ msgstr "la opción -shared no se admite actualmente en ELF de VAX"
  
--#: config/lynx.h:69
--msgid "cannot use mthreads and mlegacy-threads together"
--msgstr "no se pueden usar mthreads y mlegacy-threads juntos"
+-#: config/mips/r3900.h:37
+-msgid "-mhard-float not supported"
+-msgstr "no se admite -mhard-float"
 -
--#: config/lynx.h:94
--msgid "cannot use mshared and static together"
--msgstr "no se pueden usar mshared y static juntos"
+-#: config/mips/r3900.h:39
+-msgid "-msingle-float and -msoft-float cannot both be specified"
+-msgstr "no se pueden especificar -msingle-float y -msoft-float al mismo tiempo"
 -
- #: config/rx/rx.h:80
- msgid "-mas100-syntax is incompatible with -gdwarf"
- msgstr "-mas100-syntax es incompatible con -gdwarf"
-@@ -6049,15 +5818,45 @@
- msgid "rx200 cpu does not have FPU hardware"
- msgstr "el cpu rx200 no tiene FPU de hardware"
+ #: config/vax/vax.h:46 config/vax/vax.h:47
+ msgid "profiling not supported with -mg"
+ msgstr "el análisis de perfil no se admite con -mg"
  
--#: config/arm/freebsd.h:49
-+#: config/s390/tpf.h:110
-+msgid "static is not supported on TPF-OS"
-+msgstr "static no se admite en TPF-OS"
-+
-+#: config/sh/sh.h:375 config/sh/sh.h:378
-+msgid "SH2a does not support little-endian"
-+msgstr "SH2a no se admite para little-endian"
-+
-+#: config/sparc/linux64.h:149 config/sparc/linux64.h:156
-+#: config/sparc/netbsd-elf.h:108 config/sparc/netbsd-elf.h:117
-+#: config/sparc/sol2.h:228 config/sparc/sol2.h:234
-+msgid "may not use both -m32 and -m64"
-+msgstr "no se pueden usar -m32 y -m64 al mismo tiempo"
-+
-+#: config/vax/netbsd-elf.h:51
-+msgid "the -shared option is not currently supported for VAX ELF"
-+msgstr "la opción -shared no se admite actualmente en ELF de VAX"
-+
-+#: config/vax/vax.h:46 config/vax/vax.h:47
-+msgid "profiling not supported with -mg"
-+msgstr "el análisis de perfil no se admite con -mg"
-+
+-#: config/rs6000/freebsd64.h:171
+-msgid "consider using `-pg' instead of `-p' with gprof(1)"
+-msgstr "considere usar `-pg' en lugar de `-p' con gprof(1)"
 +#: ada/gcc-interface/lang-specs.h:34
 +msgid "-c or -S required for Ada"
 +msgstr "se requiere -c o -S para Ada"
-+
+ 
+-#: config/lynx.h:69
+-msgid "cannot use mthreads and mlegacy-threads together"
+-msgstr "no se pueden usar mthreads y mlegacy-threads juntos"
 +#: ada/gcc-interface/lang-specs.h:52
 +msgid "-c required for gnat2why"
 +msgstr "se requiere -c para gnat2why"
-+
+ 
+-#: config/lynx.h:94
+-msgid "cannot use mshared and static together"
+-msgstr "no se pueden usar mshared y static juntos"
 +#: ada/gcc-interface/lang-specs.h:65
- #, fuzzy
--#| msgid "consider using `-pg' instead of `-p' with gprof(1)"
--msgid "consider using `-pg' instead of `-p' with gprof (1) "
--msgstr "considere usar `-pg' en lugar de `-p' con gprof(1)"
-+#| msgid "-c required for gnat2why"
 +msgid "-c required for gnat2scil"
-+msgstr "se requiere -c para gnat2why"
++msgstr "se requiere -c para gnat2scil"
  
--#: config/bfin/elf.h:55
--msgid "no processor type specified for linking"
--msgstr "no existe el tipo de procesador especificado para enlazar"
+-#: config/rx/rx.h:80
+-msgid "-mas100-syntax is incompatible with -gdwarf"
+-msgstr "-mas100-syntax es incompatible con -gdwarf"
 +#: fortran/lang-specs.h:54 fortran/lang-specs.h:68
 +msgid "gfortran does not support -E without -cpp"
 +msgstr "gfortran no admite -E sin usar -cpp"
  
+-#: config/rx/rx.h:81
+-#, fuzzy
+-#| msgid "rx200 cpu does not have FPU hardware"
+-msgid "rx100 cpu does not have FPU hardware"
+-msgstr "el cpu rx200 no tiene FPU de hardware"
+-
+-#: config/rx/rx.h:82
+-msgid "rx200 cpu does not have FPU hardware"
+-msgstr "el cpu rx200 no tiene FPU de hardware"
+-
+-#: config/arm/freebsd.h:49
+-#, fuzzy
+-#| msgid "consider using `-pg' instead of `-p' with gprof(1)"
+-msgid "consider using `-pg' instead of `-p' with gprof (1) "
+-msgstr "considere usar `-pg' en lugar de `-p' con gprof(1)"
+-
+-#: config/bfin/elf.h:55
+-msgid "no processor type specified for linking"
+-msgstr "no existe el tipo de procesador especificado para enlazar"
+-
  #: java/lang-specs.h:32
  msgid "-fjni and -femit-class-files are incompatible"
-@@ -6071,149 +5870,113 @@
+ msgstr "-fjni y -femit-class-files son incompatibles"
+@@ -6071,149 +5668,113 @@
  msgid "-femit-class-file should used along with -fsyntax-only"
  msgstr "-femit-class-file se debe usar junto con -fsyntax-only"
  
@@ -27042,7 +36100,7 @@ Index: gcc/po/es.po
  
  #: fortran/lang.opt:330
  msgid "Warn about unused dummy arguments."
-@@ -6220,124 +5983,95 @@
+@@ -6220,124 +5781,95 @@
  msgstr "Avisa sobre posibles argumentos de relleno sin uso."
  
  #: fortran/lang.opt:334
@@ -27200,7 +36258,7 @@ Index: gcc/po/es.po
  #: common.opt:920 common.opt:924 common.opt:928 common.opt:932 common.opt:1421
  #: common.opt:1570 common.opt:1574 common.opt:1800 common.opt:1946
  #: common.opt:2598
-@@ -6344,303 +6078,209 @@
+@@ -6344,303 +5876,209 @@
  msgid "Does nothing. Preserved for backward compatibility."
  msgstr "No hace nada. Preservado por compatibilidad hacia atrás."
  
@@ -27605,7 +36663,7 @@ Index: gcc/po/es.po
  #: c-family/c.opt:1409 config/pa/pa.opt:42 config/pa/pa.opt:66
  #: config/sh/sh.opt:213 common.opt:1074 common.opt:1301 common.opt:1653
  #: common.opt:1999 common.opt:2035 common.opt:2124 common.opt:2128
-@@ -6649,47 +6289,33 @@
+@@ -6649,47 +6087,33 @@
  msgid "Does nothing.  Preserved for backward compatibility."
  msgstr "No hace nada.  Se preserva por compatibilidad hacia atrás."
  
@@ -27667,7 +36725,7 @@ Index: gcc/po/es.po
  
  #: c-family/c.opt:43 c-family/c.opt:46 c-family/c.opt:181
  #, c-format
-@@ -6718,88 +6344,60 @@
+@@ -6718,88 +6142,60 @@
  msgstr "falta una ruta después de %qs"
  
  #: c-family/c.opt:182
@@ -27770,7 +36828,7 @@ Index: gcc/po/es.po
  
  #: c-family/c.opt:240 c-family/c.opt:244
  #, c-format
-@@ -6807,310 +6405,220 @@
+@@ -6807,310 +6203,220 @@
  msgstr "falta un fichero make objetivo después de %qs"
  
  #: c-family/c.opt:241
@@ -28135,7 +37193,7 @@ Index: gcc/po/es.po
  
  #: c-family/c.opt:483
  msgid "Warn whenever type qualifiers are ignored."
-@@ -7117,212 +6625,156 @@
+@@ -7117,212 +6423,156 @@
  msgstr "Avisa cada vez que se ignoran los calificadores de tipo."
  
  #: c-family/c.opt:487
@@ -28386,7 +37444,7 @@ Index: gcc/po/es.po
  
  #: c-family/c.opt:650 c-family/c.opt:1024 c-family/c.opt:1031
  #: c-family/c.opt:1205 c-family/c.opt:1224 c-family/c.opt:1247
-@@ -7337,52 +6789,36 @@
+@@ -7337,52 +6587,36 @@
  msgstr "la opción %qs ya no se admite"
  
  #: c-family/c.opt:654
@@ -28447,7 +37505,7 @@ Index: gcc/po/es.po
  
  #: c-family/c.opt:701
  msgid "argument %qs to %<-Wnormalized%> not recognized"
-@@ -7389,326 +6825,228 @@
+@@ -7389,326 +6623,228 @@
  msgstr "no se reconoce el argumento %qs para %<-Wnormalized%>"
  
  #: c-family/c.opt:717
@@ -28830,7 +37888,7 @@ Index: gcc/po/es.po
  
  #: c-family/c.opt:989
  msgid "In C++, nonzero means warn about deprecated conversion from string literals to 'char *'.  In C, similar warning, except that the conversion is of course not deprecated by the ISO C standard."
-@@ -7715,77 +7053,61 @@
+@@ -7715,77 +6851,61 @@
  msgstr "En C++, un valor diferente de cero significa avisar sobre conversiones obsoletas de literales de cadena a `char *'.  En C, aviso similar, excepto que la conversión por supuesto no es obsoleta por el estándar ISO C."
  
  #: c-family/c.opt:993
@@ -28922,7 +37980,7 @@ Index: gcc/po/es.po
  
  #: c-family/c.opt:1064
  msgid "Use zero bounds for all incoming arguments in 'main' function.  It helps when"
-@@ -7793,89 +7115,75 @@
+@@ -7793,89 +6913,75 @@
  
  #: c-family/c.opt:1069
  msgid "Forces Pointer Bounds Checker to use narrowed bounds for address of the first"
@@ -29030,7 +38088,7 @@ Index: gcc/po/es.po
  
  #: c-family/c.opt:1158
  #, c-format
-@@ -7883,34 +7191,24 @@
+@@ -7883,34 +6989,24 @@
  msgstr "no se especificó un nombre de clase con %qs"
  
  #: c-family/c.opt:1159
@@ -29070,7 +38128,7 @@ Index: gcc/po/es.po
  
  #: c-family/c.opt:1183
  msgid "Preprocess directives only."
-@@ -7917,76 +7215,56 @@
+@@ -7917,76 +7013,56 @@
  msgstr "Preprocesa sólo directivas."
  
  #: c-family/c.opt:1187
@@ -29160,7 +38218,7 @@ Index: gcc/po/es.po
  
  #: c-family/c.opt:1250
  msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
-@@ -7993,40 +7271,28 @@
+@@ -7993,40 +7069,28 @@
  msgstr "se renombró -fhandle-exceptions a -fexceptions (y ahora está activado por defecto)"
  
  #: c-family/c.opt:1257
@@ -29207,7 +38265,7 @@ Index: gcc/po/es.po
  
  #: c-family/c.opt:1288
  msgid "Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types."
-@@ -8033,44 +7299,33 @@
+@@ -8033,44 +7097,33 @@
  msgstr "Permite las conversiones implícitas entre vectores con números diferentes de subpartes y/o tipos de elementos diferentes."
  
  #: c-family/c.opt:1292
@@ -29260,7 +38318,7 @@ Index: gcc/po/es.po
  
  #: c-family/c.opt:1352
  msgid "Specify which ABI to use for Objective-C family code and meta-data generation."
-@@ -8077,28 +7332,20 @@
+@@ -8077,28 +7130,20 @@
  msgstr "Especifica cuál ABI usar para el código de la familia Objective-C y la generación de metadatos."
  
  #: c-family/c.opt:1358
@@ -29293,7 +38351,7 @@ Index: gcc/po/es.po
  
  #: c-family/c.opt:1376
  msgid "Enable inline checks for nil receivers with the NeXT runtime and ABI version 2."
-@@ -8105,412 +7352,281 @@
+@@ -8105,412 +7150,281 @@
  msgstr "Activa las revisiones en línea para los receptores nil con el tiempo de ejecución NeXT y la ABI versión 2."
  
  #: c-family/c.opt:1381
@@ -29776,7 +38834,7 @@ Index: gcc/po/es.po
  
  #: c-family/c.opt:1723 c-family/c.opt:1728
  msgid "Conform to the ISO 1998 C++ standard revised by the 2003 technical"
-@@ -8517,206 +7633,145 @@
+@@ -8517,206 +7431,145 @@
  msgstr "Conforma al estándar ISO 1998 C++ revisado por el técnico 2003"
  
  #: c-family/c.opt:1733
@@ -30019,7 +39077,7 @@ Index: gcc/po/es.po
  
  #: config/mcore/mcore.opt:23
  msgid "Generate code for the M*Core M210"
-@@ -8727,70 +7782,48 @@
+@@ -8727,70 +7580,48 @@
  msgstr "Genera código para el M*Core M340"
  
  #: config/mcore/mcore.opt:31
@@ -30101,7 +39159,7 @@ Index: gcc/po/es.po
  
  #: config/linux-android.opt:23
  msgid "Generate code for the Android platform."
-@@ -8797,191 +7830,129 @@
+@@ -8797,191 +7628,129 @@
  msgstr "Genera código para la plataforma Android."
  
  #: config/mmix/mmix.opt:24
@@ -30324,7 +39382,7 @@ Index: gcc/po/es.po
  
  #: config/bfin/bfin.opt:56
  msgid "Work around a hardware anomaly by adding a number of NOPs before a"
-@@ -8992,10 +7963,8 @@
+@@ -8992,10 +7761,8 @@
  msgstr "Evita cargas especulativas para evitar una anomalía de hardware."
  
  #: config/bfin/bfin.opt:65
@@ -30336,7 +39394,7 @@ Index: gcc/po/es.po
  
  #: config/bfin/bfin.opt:69
  msgid "Generate code that won't be linked against any other ID shared libraries,"
-@@ -9002,71 +7971,49 @@
+@@ -9002,71 +7769,49 @@
  msgstr "Genera código que se puede enlazar contra ninguna otra biblioteca compartida de ID"
  
  #: config/bfin/bfin.opt:74 config/m68k/m68k.opt:171
@@ -30419,7 +39477,7 @@ Index: gcc/po/es.po
  
  #: config/bfin/bfin.opt:118
  msgid "Assume ICPLBs are enabled at runtime."
-@@ -9085,422 +8032,304 @@
+@@ -9085,422 +7830,304 @@
  msgstr "ISAs M68K conocidas (para uso con la opción -march=):"
  
  #: config/m68k/ieee.opt:24 config/i386/i386.opt:358
@@ -30589,7 +39647,7 @@ Index: gcc/po/es.po
 -#| msgid "Generate code for a cpu32"
  msgid "Generate code for a cpu32."
 -msgstr "Genera código para un cpu32"
-+msgstr "Genera código para el cpu32."
++msgstr "Genera código para la cpu32."
  
  #: config/m68k/m68k.opt:131
 -#, fuzzy
@@ -30916,7 +39974,7 @@ Index: gcc/po/es.po
  
  #: config/aarch64/aarch64.opt:136
  msgid "-moverride=STRING\tPower users only! Override CPU optimization parameters."
-@@ -9507,174 +8336,120 @@
+@@ -9507,174 +8134,120 @@
  msgstr ""
  
  #: config/aarch64/aarch64.opt:140
@@ -31120,7 +40178,7 @@ Index: gcc/po/es.po
  
  #: config/ia64/ia64.opt:114 config/spu/spu.opt:72 config/pa/pa.opt:58
  #: config/sh/sh.opt:273
-@@ -9683,18 +8458,14 @@
+@@ -9683,18 +8256,14 @@
  
  #: config/ia64/ia64.opt:118 config/rs6000/sysv4.opt:32
  #: config/alpha/alpha.opt:130
@@ -31142,7 +40200,7 @@ Index: gcc/po/es.po
  
  #: config/ia64/ia64.opt:126
  msgid "Known Itanium CPUs (for use with the -mtune= option):"
-@@ -9701,202 +8472,136 @@
+@@ -9701,202 +8270,136 @@
  msgstr "CPUs Itanium conocidos (para uso con la opción -mtune=):"
  
  #: config/ia64/ia64.opt:136
@@ -31378,7 +40436,7 @@ Index: gcc/po/es.po
  
  #: config/epiphany/epiphany.opt:24
  msgid "Don't use any of r32..r63."
-@@ -9907,10 +8612,8 @@
+@@ -9907,10 +8410,8 @@
  msgstr "aloja de preferencia registros que permitan la generación de instrucciones short."
  
  #: config/epiphany/epiphany.opt:32
@@ -31390,7 +40448,7 @@ Index: gcc/po/es.po
  
  #: config/epiphany/epiphany.opt:36
  msgid "enable conditional move instruction usage."
-@@ -9917,34 +8620,24 @@
+@@ -9917,34 +8418,24 @@
  msgstr "activa el uso de la instrucción move condicional."
  
  #: config/epiphany/epiphany.opt:40
@@ -31430,7 +40488,7 @@ Index: gcc/po/es.po
  
  #: config/epiphany/epiphany.opt:68
  msgid "Set number of bytes on the stack preallocated for use by the callee."
-@@ -9952,19 +8645,15 @@
+@@ -9952,19 +8443,15 @@
  
  #: config/epiphany/epiphany.opt:72
  msgid "Assume round to nearest is selected for purposes of scheduling."
@@ -31453,7 +40511,7 @@ Index: gcc/po/es.po
  
  #: config/epiphany/epiphany.opt:84
  msgid "Assume labels and symbols can be addressed using 16 bit absolute addresses."
-@@ -9983,10 +8672,8 @@
+@@ -9983,10 +8470,8 @@
  msgstr "Divide moves vectoriales de 8 byte sin alinear antes de post-modificar la generación de dirección."
  
  #: config/epiphany/epiphany.opt:132
@@ -31465,7 +40523,7 @@ Index: gcc/po/es.po
  
  #: config/epiphany/epiphany.opt:136
  msgid "Set register to hold -1."
-@@ -9994,289 +8681,202 @@
+@@ -9994,289 +8479,200 @@
  
  #: config/ft32/ft32.opt:23
  msgid "target the software simulator."
@@ -31764,8 +40822,8 @@ Index: gcc/po/es.po
 +msgstr "Usa el soporte de hilos específico de Mingw."
  
  #: config/i386/cygming.opt:39
- #, fuzzy
- #| msgid "Set Windows defines"
+-#, fuzzy
+-#| msgid "Set Windows defines"
  msgid "Set Windows defines."
 -msgstr "Establece las definiciones de Windows"
 +msgstr "Establece las definiciones de Windows."
@@ -31805,7 +40863,7 @@ Index: gcc/po/es.po
  
  #: config/i386/mingw.opt:33
  msgid "For nested functions on stack executable permission is set."
-@@ -10283,102 +8883,72 @@
+@@ -10283,102 +8679,72 @@
  msgstr "Se establece el permiso ejecutable para las funciones anidadas en la pila."
  
  #: config/i386/mingw-w64.opt:23
@@ -31925,7 +40983,7 @@ Index: gcc/po/es.po
  
  #: config/i386/i386.opt:255
  msgid "Known assembler dialects (for use with the -masm-dialect= option):"
-@@ -10385,22 +8955,16 @@
+@@ -10385,22 +8751,16 @@
  msgstr "Dialectos de ensamblador conocidos (para uso con la opción -masm-dialect=):"
  
  #: config/i386/i386.opt:265
@@ -31951,1759 +41009,2071 @@ Index: gcc/po/es.po
  
  #: config/i386/i386.opt:277 config/rs6000/aix64.opt:36
  #: config/rs6000/linux64.opt:32 config/tilegx/tilegx.opt:57
-@@ -10411,7 +8975,7 @@
- #, fuzzy
- #| msgid "Use complex addressing modes"
+@@ -10408,16 +8768,12 @@
+ msgstr "Modelos de código conocidos (para uso con la opción -mcmodel=):"
+ 
+ #: config/i386/i386.opt:296
+-#, fuzzy
+-#| msgid "Use complex addressing modes"
  msgid "Use given address mode."
 -msgstr "Usar modos de direccionamiento complejos"
-+msgstr "Usar modos de direccionamiento complejos."
++msgstr "Usar el modo de dirección dado."
  
  #: config/i386/i386.opt:300
- #, fuzzy
-@@ -10427,25 +8991,25 @@
- #, fuzzy
- #| msgid "Generate sin, cos, sqrt for FPU"
+-#, fuzzy
+-#| msgid "Known code models (for use with the -mcmodel= option):"
+ msgid "Known address mode (for use with the -maddress-mode= option):"
+-msgstr "Modelos de código conocidos (para uso con la opción -mcmodel=):"
++msgstr "Modo de dirección conocido (para uso con la opción -maddress-mode=):"
+ 
+ #: config/i386/i386.opt:309
+ msgid "%<-mcpu=%> is deprecated; use %<-mtune=%> or %<-march=%> instead"
+@@ -10424,28 +8780,20 @@
+ msgstr "%<-mcpu=%> es obsoleto; utilice %<-mtune=%> o %<-march%> en su lugar"
+ 
+ #: config/i386/i386.opt:313
+-#, fuzzy
+-#| msgid "Generate sin, cos, sqrt for FPU"
  msgid "Generate sin, cos, sqrt for FPU."
 -msgstr "Genera sin, cos, sqrt para FPU"
 +msgstr "Genera sin, cos, sqrt para FPU."
  
  #: config/i386/i386.opt:317
- #, fuzzy
- #| msgid "Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack"
+-#, fuzzy
+-#| msgid "Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack"
  msgid "Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack."
 -msgstr "Usar siempre el Puntero de Argumento Realineado Dinámicamente (DRAP) para realinear la pila"
 +msgstr "Usar siempre el Puntero de Argumento Realineado Dinámicamente (DRAP) para realinear la pila."
  
  #: config/i386/i386.opt:321
- #, fuzzy
- #| msgid "Return values of functions in FPU registers"
+-#, fuzzy
+-#| msgid "Return values of functions in FPU registers"
  msgid "Return values of functions in FPU registers."
 -msgstr "Devuelve los valores de funciones en registros FPU"
 +msgstr "Devuelve los valores de funciones en registros FPU."
  
  #: config/i386/i386.opt:325
- #, fuzzy
- #| msgid "Generate floating point mathematics using given instruction set"
+-#, fuzzy
+-#| msgid "Generate floating point mathematics using given instruction set"
  msgid "Generate floating point mathematics using given instruction set."
 -msgstr "Genera matemáticas de coma flotante usando el conjunto de instrucciones dado"
 +msgstr "Genera matemáticas de coma flotante usando el conjunto de instrucciones dado."
  
  #: config/i386/i386.opt:329
  msgid "Valid arguments to -mfpmath=:"
-@@ -10455,13 +9019,13 @@
- #, fuzzy
- #| msgid "Inline all known string operations"
+@@ -10452,16 +8800,12 @@
+ msgstr "Argumentos válidos para -mfpmath=:"
+ 
+ #: config/i386/i386.opt:362
+-#, fuzzy
+-#| msgid "Inline all known string operations"
  msgid "Inline all known string operations."
 -msgstr "Incluye en línea todas las operaciones de cadenas conocidas"
 +msgstr "Incluye en línea todas las operaciones de cadenas conocidas."
  
  #: config/i386/i386.opt:366
- #, fuzzy
- #| msgid "Inline memset/memcpy string operations, but perform inline version only for small blocks"
+-#, fuzzy
+-#| msgid "Inline memset/memcpy string operations, but perform inline version only for small blocks"
  msgid "Inline memset/memcpy string operations, but perform inline version only for small blocks."
 -msgstr "Incluye en línea las operaciones de cadena memset/memcpy, pero realiza la versión inline sólo para los bloques pequeños"
 +msgstr "Incluye en línea las operaciones de cadena memset/memcpy, pero realiza la versión inline sólo para los bloques pequeños."
  
  #: config/i386/i386.opt:369
  msgid "%<-mintel-syntax%> and %<-mno-intel-syntax%> are deprecated; use %<-masm=intel%> and %<-masm=att%> instead"
-@@ -10471,85 +9035,85 @@
- #, fuzzy
- #| msgid "Use native (MS) bitfield layout"
+@@ -10468,102 +8812,72 @@
+ msgstr "%<-mintel-syntax%> y %<-mno-intel-syntax%> son obsoletos; utilice %<-masm=intel%> y %<-masm=att%> en su lugar"
+ 
+ #: config/i386/i386.opt:374
+-#, fuzzy
+-#| msgid "Use native (MS) bitfield layout"
  msgid "Use native (MS) bitfield layout."
 -msgstr "Usa la disposición de campos de bits nativos (MS)"
 +msgstr "Usa la disposición de campos de bits nativos (MS)."
  
  #: config/i386/i386.opt:394
- #, fuzzy
- #| msgid "Set 80387 floating-point precision to 32-bit"
+-#, fuzzy
+-#| msgid "Set 80387 floating-point precision to 32-bit"
  msgid "Set 80387 floating-point precision to 32-bit."
 -msgstr "Establece la precisión de coma flotante 80387 a 32-bit"
 +msgstr "Establece la precisión de coma flotante 80387 a 32-bit."
  
  #: config/i386/i386.opt:398
- #, fuzzy
- #| msgid "Set 80387 floating-point precision to 64-bit"
+-#, fuzzy
+-#| msgid "Set 80387 floating-point precision to 64-bit"
  msgid "Set 80387 floating-point precision to 64-bit."
 -msgstr "Establece la precisión de coma flotante 80387 a 64-bit"
 +msgstr "Establece la precisión de coma flotante 80387 a 64-bit."
  
  #: config/i386/i386.opt:402
- #, fuzzy
- #| msgid "Set 80387 floating-point precision to 80-bit"
+-#, fuzzy
+-#| msgid "Set 80387 floating-point precision to 80-bit"
  msgid "Set 80387 floating-point precision to 80-bit."
 -msgstr "Establece la precisión de coma flotante 80387 a 80-bit"
 +msgstr "Establece la precisión de coma flotante 80387 a 80-bit."
  
  #: config/i386/i386.opt:406
- #, fuzzy
- #| msgid "Attempt to keep stack aligned to this power of 2"
+-#, fuzzy
+-#| msgid "Attempt to keep stack aligned to this power of 2"
  msgid "Attempt to keep stack aligned to this power of 2."
 -msgstr "Trata de mantenter la pila alineada a esta potencia de 2"
 +msgstr "Trata de mantenter la pila alineada a esta potencia de 2."
  
  #: config/i386/i386.opt:410
- #, fuzzy
- #| msgid "Assume incoming stack aligned to this power of 2"
+-#, fuzzy
+-#| msgid "Assume incoming stack aligned to this power of 2"
  msgid "Assume incoming stack aligned to this power of 2."
 -msgstr "Asume que la pila de entrada está alineada a esta potencia de 2"
 +msgstr "Asume que la pila de entrada está alineada a esta potencia de 2."
  
  #: config/i386/i386.opt:414
- #, fuzzy
- #| msgid "Use push instructions to save outgoing arguments"
+-#, fuzzy
+-#| msgid "Use push instructions to save outgoing arguments"
  msgid "Use push instructions to save outgoing arguments."
 -msgstr "Usa instrucciones push para guardar los argumentos de salida"
 +msgstr "Usa instrucciones push para guardar los argumentos de salida."
  
  #: config/i386/i386.opt:418
- #, fuzzy
- #| msgid "Use red-zone in the x86-64 code"
+-#, fuzzy
+-#| msgid "Use red-zone in the x86-64 code"
  msgid "Use red-zone in the x86-64 code."
 -msgstr "Usa la zona roja en el código x86-64"
 +msgstr "Usa la zona roja en el código x86-64."
  
  #: config/i386/i386.opt:422
- #, fuzzy
- #| msgid "Number of registers used to pass integer arguments"
+-#, fuzzy
+-#| msgid "Number of registers used to pass integer arguments"
  msgid "Number of registers used to pass integer arguments."
 -msgstr "Número de registros usados para pasar argumentos enteros"
 +msgstr "Número de registros usados para pasar argumentos enteros."
  
  #: config/i386/i386.opt:426
- #, fuzzy
- #| msgid "Alternate calling convention"
+-#, fuzzy
+-#| msgid "Alternate calling convention"
  msgid "Alternate calling convention."
 -msgstr "Convención de llamada alternativa"
-+msgstr "Convención de llamada alternativa."
++msgstr "Convenio de llamada alternativa."
  
  #: config/i386/i386.opt:430 config/alpha/alpha.opt:23
- #, fuzzy
- #| msgid "Do not use hardware fp"
+-#, fuzzy
+-#| msgid "Do not use hardware fp"
  msgid "Do not use hardware fp."
 -msgstr "No usa fp de hardware"
 +msgstr "No usa fp de hardware."
  
  #: config/i386/i386.opt:434
- #, fuzzy
- #| msgid "Use SSE register passing conventions for SF and DF mode"
+-#, fuzzy
+-#| msgid "Use SSE register passing conventions for SF and DF mode"
  msgid "Use SSE register passing conventions for SF and DF mode."
 -msgstr "Usa las convenciones de paso de registro SSE para los modos SF y DF"
-+msgstr "Usa las convenciones de paso de registro SSE para los modos SF y DF."
++msgstr "Usa los convenios de paso de registro SSE para los modos SF y DF."
  
  #: config/i386/i386.opt:438
- #, fuzzy
- #| msgid "Realign stack in prologue"
+-#, fuzzy
+-#| msgid "Realign stack in prologue"
  msgid "Realign stack in prologue."
 -msgstr "Realínea la pila en el prólogo"
 +msgstr "Realinea la pila en el prólogo."
  
  #: config/i386/i386.opt:442
- #, fuzzy
- #| msgid "Enable stack probing"
+-#, fuzzy
+-#| msgid "Enable stack probing"
  msgid "Enable stack probing."
 -msgstr "Habilita la prueba de la pila"
 +msgstr "Habilita la prueba de la pila."
  
  #: config/i386/i386.opt:446
  msgid "Specify memcpy expansion strategy when expected size is known."
-@@ -10563,7 +9127,7 @@
- #, fuzzy
- #| msgid "Chose strategy to generate stringop using"
+-msgstr ""
++msgstr "Especifica la estrategia de expansión de memcpy cuando se conoce el tamaño esperado."
+ 
+ #: config/i386/i386.opt:450
+ msgid "Specify memset expansion strategy when expected size is known."
+-msgstr ""
++msgstr "Especifica la estrategia de expansión de memset cuando se conoce el tamaño esperado."
+ 
+ #: config/i386/i386.opt:454
+-#, fuzzy
+-#| msgid "Chose strategy to generate stringop using"
  msgid "Chose strategy to generate stringop using."
 -msgstr "Escoge la estrategia para generar stringop using"
 +msgstr "Escoge la estrategia para generar stringop using."
  
  #: config/i386/i386.opt:458
  msgid "Valid arguments to -mstringop-strategy=:"
-@@ -10573,7 +9137,7 @@
- #, fuzzy
- #| msgid "Use given thread-local storage dialect"
+@@ -10570,10 +8884,8 @@
+ msgstr "Argumentos válidos para -mstringop-strategy=:"
+ 
+ #: config/i386/i386.opt:486
+-#, fuzzy
+-#| msgid "Use given thread-local storage dialect"
  msgid "Use given thread-local storage dialect."
 -msgstr "Usa el dialecto de almacenamiento thread-local dado"
 +msgstr "Usa el dialecto de almacenamiento thread-local dado."
  
  #: config/i386/i386.opt:490
  msgid "Known TLS dialects (for use with the -mtls-dialect= option):"
-@@ -10583,7 +9147,7 @@
- #, fuzzy, c-format
- #| msgid "Use direct references against %gs when accessing tls data"
+@@ -10580,32 +8892,25 @@
+ msgstr "Dialectos TLS conocidos (para usar con la opción -mtls-dialect=):"
+ 
+ #: config/i386/i386.opt:500
+-#, fuzzy, c-format
+-#| msgid "Use direct references against %gs when accessing tls data"
++#, c-format
  msgid "Use direct references against %gs when accessing tls data."
 -msgstr "Usa referencias directas contra %gs cuando se accesen datos tls"
-+msgstr "Usa referencias directas contra %gs cuando se accesen datos tls."
++msgstr "Usa referencias directas contra %gs cuando se acceden datos tls."
  
  #: config/i386/i386.opt:508
  msgid "Fine grain control of tune features."
-@@ -10593,19 +9157,19 @@
- #, fuzzy
- #| msgid "Allow all ugly features"
+-msgstr ""
++msgstr "Control fino de las características de ajuste."
+ 
+ #: config/i386/i386.opt:512
+-#, fuzzy
+-#| msgid "Allow all ugly features"
  msgid "Clear all tune features."
 -msgstr "Desactiva todas las características feas"
-+msgstr "Desactiva todas las características feas."
++msgstr "Quita todas las características de ajuste."
  
  #: config/i386/i386.opt:519
- #, fuzzy
- #| msgid "Generate code that conforms to the given ABI"
+-#, fuzzy
+-#| msgid "Generate code that conforms to the given ABI"
  msgid "Generate code that conforms to Intel MCU psABI."
 -msgstr "Genera código que cumpla con la ABI dada"
-+msgstr "Genera código que cumpla con la ABI dada."
++msgstr "Genera código que cumpla con Intel MCU psABI."
  
  #: config/i386/i386.opt:523
- #, fuzzy
- #| msgid "Generate code that conforms to the given ABI"
+-#, fuzzy
+-#| msgid "Generate code that conforms to the given ABI"
  msgid "Generate code that conforms to the given ABI."
 -msgstr "Genera código que cumpla con la ABI dada"
 +msgstr "Genera código que cumpla con la ABI dada."
  
  #: config/i386/i386.opt:527
  msgid "Known ABIs (for use with the -mabi= option):"
-@@ -10615,7 +9179,7 @@
- #, fuzzy
- #| msgid "Vector library ABI to use"
+@@ -10612,10 +8917,8 @@
+ msgstr "ABIs conocidas (para usar con la opción -mabi=):"
+ 
+ #: config/i386/i386.opt:537 config/rs6000/rs6000.opt:189
+-#, fuzzy
+-#| msgid "Vector library ABI to use"
  msgid "Vector library ABI to use."
 -msgstr "ABI de biblioteca de vectores a utilizar"
 +msgstr "ABI de biblioteca de vectores a utilizar."
  
  #: config/i386/i386.opt:541
  msgid "Known vectorization library ABIs (for use with the -mveclibabi= option):"
-@@ -10625,7 +9189,7 @@
- #, fuzzy
- #| msgid "Return 8-byte vectors in memory"
+@@ -10622,10 +8925,8 @@
+ msgstr "ABIs de biblioteca de vectorización conocidas (para usar con la opción -mveclibabi=):"
+ 
+ #: config/i386/i386.opt:551
+-#, fuzzy
+-#| msgid "Return 8-byte vectors in memory"
  msgid "Return 8-byte vectors in memory."
 -msgstr "Devuelve vectores de 8 bytes en memoria"
 +msgstr "Devuelve vectores de 8 bytes en memoria."
  
  #: config/i386/i386.opt:555
  msgid "Generate reciprocals instead of divss and sqrtss."
-@@ -10651,7 +9215,7 @@
- #, fuzzy
- #| msgid "Do dispatch scheduling if processor is bdver1 or bdver2 and Haifa scheduling"
+@@ -10643,15 +8944,14 @@
+ msgid "Generate vzeroupper instruction before a transfer of control flow out of"
+ msgstr "Genera la instrucción vzeroupper antes de una transferencia de flujo de control fuera de"
+ 
++# TODO review
+ #: config/i386/i386.opt:572
+ msgid "Disable Scalar to Vector optimization pass transforming 64-bit integer"
+-msgstr ""
++msgstr "Desactiva el paso de optimización de escalar a vector al transformar enteros de 64 bits"
+ 
+ #: config/i386/i386.opt:577
+-#, fuzzy
+-#| msgid "Do dispatch scheduling if processor is bdver1 or bdver2 and Haifa scheduling"
  msgid "Do dispatch scheduling if processor is bdver1, bdver2, bdver3, bdver4"
 -msgstr "Despacha al calendarizador si el procesador es bdver1 o bdver2 y la calendarización es Haifa"
-+msgstr "Despacha al planificador si el procesador es bdver1 o bdver2 y la planificación es Haifa"
++msgstr "Despacha al planificador si el procesador es bdver1, bdver2, bdver3, bdver4"
  
  #: config/i386/i386.opt:582
  msgid "Use 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-vectorizer."
-@@ -10661,85 +9225,85 @@
- #, fuzzy
- #| msgid "Generate 32bit i386 code"
+@@ -10658,88 +8958,60 @@
+ msgstr "Usa instrucciones AVX de 128-bit en lugar de instrucciones AVX de 256-bit en el auto-vectorizador."
+ 
+ #: config/i386/i386.opt:588
+-#, fuzzy
+-#| msgid "Generate 32bit i386 code"
  msgid "Generate 32bit i386 code."
 -msgstr "Genera código i386 de 32bit"
 +msgstr "Genera código i386 de 32bit."
  
  #: config/i386/i386.opt:592
- #, fuzzy
- #| msgid "Generate 64bit x86-64 code"
+-#, fuzzy
+-#| msgid "Generate 64bit x86-64 code"
  msgid "Generate 64bit x86-64 code."
 -msgstr "Genera código x86-64 de 64bit"
 +msgstr "Genera código x86-64 de 64bit."
  
  #: config/i386/i386.opt:596
- #, fuzzy
- #| msgid "Generate 32bit x86-64 code"
+-#, fuzzy
+-#| msgid "Generate 32bit x86-64 code"
  msgid "Generate 32bit x86-64 code."
 -msgstr "Genera código x86-64 de 32bit"
 +msgstr "Genera código x86-64 de 32bit."
  
  #: config/i386/i386.opt:600
- #, fuzzy
- #| msgid "Generate 32bit i386 code"
+-#, fuzzy
+-#| msgid "Generate 32bit i386 code"
  msgid "Generate 16bit i386 code."
 -msgstr "Genera código i386 de 32bit"
-+msgstr "Genera código i386 de 32bit."
++msgstr "Genera código i386 de 16bit."
  
  #: config/i386/i386.opt:604
- #, fuzzy
- #| msgid "Support MMX built-in functions"
+-#, fuzzy
+-#| msgid "Support MMX built-in functions"
  msgid "Support MMX built-in functions."
 -msgstr "Admite funciones internas MMX"
 +msgstr "Admite funciones internas MMX."
  
  #: config/i386/i386.opt:608
- #, fuzzy
- #| msgid "Support 3DNow! built-in functions"
+-#, fuzzy
+-#| msgid "Support 3DNow! built-in functions"
  msgid "Support 3DNow! built-in functions."
 -msgstr "Admite funciones internas 3DNow!"
 +msgstr "Admite funciones internas 3DNow!."
  
  #: config/i386/i386.opt:612
- #, fuzzy
- #| msgid "Support Athlon 3Dnow! built-in functions"
+-#, fuzzy
+-#| msgid "Support Athlon 3Dnow! built-in functions"
  msgid "Support Athlon 3Dnow! built-in functions."
 -msgstr "Admite funciones internas Athlon 3DNow!"
 +msgstr "Admite funciones internas Athlon 3DNow!."
  
  #: config/i386/i386.opt:616
- #, fuzzy
- #| msgid "Support MMX and SSE built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX and SSE built-in functions and code generation"
  msgid "Support MMX and SSE built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX y SSE"
 +msgstr "Admite funciones internas y generación de código MMX y SSE."
  
  #: config/i386/i386.opt:620
- #, fuzzy
- #| msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
  msgid "Support MMX, SSE and SSE2 built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE y SSE2"
 +msgstr "Admite funciones internas y generación de código MMX, SSE y SSE2."
  
  #: config/i386/i386.opt:624
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2 y SSE3"
 +msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2 y SSE3."
  
  #: config/i386/i386.opt:628
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3 y SSSE3"
 +msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3 y SSSE3."
  
  #: config/i386/i386.opt:632
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3 y SSE4.1"
 +msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3 y SSE4.1."
  
  #: config/i386/i386.opt:636 config/i386/i386.opt:640
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 y SSE4.2"
 +msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 y SSE4.2."
  
  #: config/i386/i386.opt:644
- #, fuzzy
- #| msgid "Do not support SSE4.1 and SSE4.2 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Do not support SSE4.1 and SSE4.2 built-in functions and code generation"
  msgid "Do not support SSE4.1 and SSE4.2 built-in functions and code generation."
 -msgstr "No admite funciones internas y generación de código SSE4.1 y SSE4.2"
 +msgstr "No admite funciones internas y generación de código SSE4.1 y SSE4.2."
  
  #: config/i386/i386.opt:647
  msgid "%<-msse5%> was removed"
-@@ -10749,97 +9313,97 @@
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation"
+@@ -10746,100 +9018,68 @@
+ msgstr "se eliminó %<-msse5%>"
+ 
+ #: config/i386/i386.opt:652
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 y AVX"
 +msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 y AVX."
  
  #: config/i386/i386.opt:656
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2"
 +msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2."
  
  #: config/i386/i386.opt:660
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2"
-+msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2."
++msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 y AVX512F."
  
  #: config/i386/i386.opt:664
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512PF built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2"
-+msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2."
++msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F y AVX512PF."
  
  #: config/i386/i386.opt:668
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512ER built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2"
-+msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2."
++msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F y AVX512ER."
  
  #: config/i386/i386.opt:672
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512CD built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2"
-+msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2."
++msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F y AVX512CD."
  
  #: config/i386/i386.opt:676
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512DQ built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2"
-+msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2."
++msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F y AVX512DQ."
  
  #: config/i386/i386.opt:680
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512BW built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2"
-+msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2."
++msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F y AVX512BW."
  
  #: config/i386/i386.opt:684
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VL built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2"
-+msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2."
++msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F y AVX512VL."
  
  #: config/i386/i386.opt:688
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512IFMA built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2"
-+msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2."
++msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F y AVX512IFMA."
  
  #: config/i386/i386.opt:692
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VBMI built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2"
-+msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2."
++msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F y AVX512VBMI."
  
  #: config/i386/i386.opt:696
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y FMA"
 +msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y FMA."
  
  #: config/i386/i386.opt:700
- #, fuzzy
- #| msgid "Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation"
  msgid "Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3 y SSE4A"
 +msgstr "Admite funciones internas y generación de código MMX, SSE, SSE2, SSE3 y SSE4A."
  
  #: config/i386/i386.opt:704
- #, fuzzy
- #| msgid "Support FMA4 built-in functions and code generation "
+-#, fuzzy
+-#| msgid "Support FMA4 built-in functions and code generation "
  msgid "Support FMA4 built-in functions and code generation."
 -msgstr "Admite funciones internas FMA4 y generación de código "
-+msgstr "Admite funciones internas FMA4 y generación de código ."
++msgstr "Admite funciones internas FMA4 y generación de código."
  
  #: config/i386/i386.opt:708
- #, fuzzy
- #| msgid "Support XOP built-in functions and code generation "
+-#, fuzzy
+-#| msgid "Support XOP built-in functions and code generation "
  msgid "Support XOP built-in functions and code generation."
 -msgstr "Admite funciones internas XOP y generación de código "
-+msgstr "Admite funciones internas XOP y generación de código ."
++msgstr "Admite funciones internas XOP y generación de código."
  
  #: config/i386/i386.opt:712
- #, fuzzy
- #| msgid "Support LWP built-in functions and code generation "
+-#, fuzzy
+-#| msgid "Support LWP built-in functions and code generation "
  msgid "Support LWP built-in functions and code generation."
 -msgstr "Admite funciones internas LWP y generación de código "
-+msgstr "Admite funciones internas LWP y generación de código ."
++msgstr "Admite funciones internas LWP y generación de código."
  
  #: config/i386/i386.opt:716
  msgid "Support code generation of Advanced Bit Manipulation (ABM) instructions."
-@@ -10853,19 +9417,19 @@
- #, fuzzy
- #| msgid "Support BMI built-in functions and code generation"
+@@ -10850,36 +9090,28 @@
+ msgstr "Admite la generación de código de la instrucción popcnt."
+ 
+ #: config/i386/i386.opt:724
+-#, fuzzy
+-#| msgid "Support BMI built-in functions and code generation"
  msgid "Support BMI built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código BMI"
 +msgstr "Admite funciones internas y generación de código BMI."
  
  #: config/i386/i386.opt:728
- #, fuzzy
- #| msgid "Support BMI2 built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support BMI2 built-in functions and code generation"
  msgid "Support BMI2 built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código BMI2"
 +msgstr "Admite funciones internas y generación de código BMI2."
  
  #: config/i386/i386.opt:732
- #, fuzzy
- #| msgid "Support LZCNT built-in function and code generation"
+-#, fuzzy
+-#| msgid "Support LZCNT built-in function and code generation"
  msgid "Support LZCNT built-in function and code generation."
 -msgstr "Admite funciones internas y generación de código LZCNT"
 +msgstr "Admite funciones internas y generación de código LZCNT."
  
  #: config/i386/i386.opt:736
  msgid "Support Hardware Lock Elision prefixes."
-@@ -10875,7 +9439,7 @@
- #, fuzzy
- #| msgid "no support for induction"
+-msgstr ""
++msgstr "Admite prefijos de elisión de bloqueo de hardware."
+ 
+ #: config/i386/i386.opt:740
+-#, fuzzy
+-#| msgid "no support for induction"
  msgid "Support RDSEED instruction."
 -msgstr "no se admite la inducción"
-+msgstr "no se admite la inducción."
++msgstr "Admite la instrucción RDSEED."
  
  #: config/i386/i386.opt:744
  msgid "Support PREFETCHW instruction."
-@@ -10895,13 +9459,13 @@
+-msgstr ""
++msgstr "Admite la instrucción PREFETCHW."
+ 
+ #: config/i386/i386.opt:748
  #, fuzzy
- #| msgid "no support for induction"
+@@ -10889,51 +9121,39 @@
+ 
+ #: config/i386/i386.opt:752
+ msgid "Support CLFLUSHOPT instructions."
+-msgstr ""
++msgstr "Admite las instrucciones CLFLUSHOPT."
+ 
+ #: config/i386/i386.opt:756
+-#, fuzzy
+-#| msgid "no support for induction"
  msgid "Support CLWB instruction."
 -msgstr "no se admite la inducción"
-+msgstr "no se admite la inducción."
++msgstr "Admite la instrucción CLWB.."
  
  #: config/i386/i386.opt:760
- #, fuzzy
- #| msgid "Support MMX built-in functions"
+-#, fuzzy
+-#| msgid "Support MMX built-in functions"
  msgid "Support PCOMMIT instruction."
 -msgstr "Admite funciones internas MMX"
-+msgstr "Admite funciones internas MMX."
++msgstr "Admite la instrucción PCOMMIT."
  
  #: config/i386/i386.opt:764
  msgid "Support FXSAVE and FXRSTOR instructions."
-@@ -10917,13 +9481,13 @@
- #, fuzzy
- #| msgid "Support MMX built-in functions"
+-msgstr ""
++msgstr "Admite las instrucciones PXSAVE y FXRSTOR."
+ 
+ #: config/i386/i386.opt:768
+-#, fuzzy
+-#| msgid "Support code generation of movbe instruction."
+ msgid "Support XSAVE and XRSTOR instructions."
+-msgstr "Admite la generación de código de la instrucción movbe."
++msgstr "Admite las instrucciones XSAV y XRSTOR."
+ 
+ #: config/i386/i386.opt:772
+-#, fuzzy
+-#| msgid "Support MMX built-in functions"
  msgid "Support XSAVEOPT instruction."
 -msgstr "Admite funciones internas MMX"
-+msgstr "Admite funciones internas MMX."
++msgstr "Admite las instrucciones XSAVEOPT."
  
  #: config/i386/i386.opt:776
- #, fuzzy
- #| msgid "Support MMX built-in functions"
+-#, fuzzy
+-#| msgid "Support MMX built-in functions"
  msgid "Support XSAVEC instructions."
 -msgstr "Admite funciones internas MMX"
-+msgstr "Admite funciones internas MMX."
++msgstr "Admite las instrucciones XSAVEC."
  
  #: config/i386/i386.opt:780
  msgid "Support XSAVES and XRSTORS instructions."
-@@ -10933,7 +9497,7 @@
- #, fuzzy
- #| msgid "Support TBM built-in functions and code generation"
+-msgstr ""
++msgstr "Admite las instrucciones XSAVES y XRSTORS."
+ 
+ #: config/i386/i386.opt:784
+-#, fuzzy
+-#| msgid "Support TBM built-in functions and code generation"
  msgid "Support TBM built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código TBM"
 +msgstr "Admite funciones internas y generación de código TBM."
  
  #: config/i386/i386.opt:788
  msgid "Support code generation of cmpxchg16b instruction."
-@@ -10955,49 +9519,49 @@
- #, fuzzy
- #| msgid "Support AES built-in functions and code generation"
+@@ -10952,52 +9172,36 @@
+ msgstr "Admite la generación de código de la instrucción crc32."
+ 
+ #: config/i386/i386.opt:804
+-#, fuzzy
+-#| msgid "Support AES built-in functions and code generation"
  msgid "Support AES built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código AES"
 +msgstr "Admite funciones internas y generación de código AES."
  
  #: config/i386/i386.opt:808
- #, fuzzy
- #| msgid "Support MMX and SSE built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support MMX and SSE built-in functions and code generation"
  msgid "Support SHA1 and SHA256 built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX y SSE"
-+msgstr "Admite funciones internas y generación de código MMX y SSE."
++msgstr "Admite funciones internas y generación de código SHA1 y SHA256."
  
  #: config/i386/i386.opt:812
- #, fuzzy
- #| msgid "Support PCLMUL built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support PCLMUL built-in functions and code generation"
  msgid "Support PCLMUL built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código PCLMUL"
 +msgstr "Admite funciones internas y generación de código PCLMUL."
  
  #: config/i386/i386.opt:816
- #, fuzzy
- #| msgid "Encode SSE instructions with VEX prefix"
+-#, fuzzy
+-#| msgid "Encode SSE instructions with VEX prefix"
  msgid "Encode SSE instructions with VEX prefix."
 -msgstr "Codifica las instrucciones SSE con el prefijo VEX"
 +msgstr "Codifica las instrucciones SSE con el prefijo VEX."
  
  #: config/i386/i386.opt:820
- #, fuzzy
- #| msgid "Support FSGSBASE built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support FSGSBASE built-in functions and code generation"
  msgid "Support FSGSBASE built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código FSGSBASE"
 +msgstr "Admite funciones internas y generación de código FSGSBASE."
  
  #: config/i386/i386.opt:824
- #, fuzzy
- #| msgid "Support RDRND built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support RDRND built-in functions and code generation"
  msgid "Support RDRND built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código RDRND"
 +msgstr "Admite funciones internas y generación de código RDRND."
  
  #: config/i386/i386.opt:828
- #, fuzzy
- #| msgid "Support F16C built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support F16C built-in functions and code generation"
  msgid "Support F16C built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código F16C"
 +msgstr "Admite funciones internas y generación de código F16C."
  
  #: config/i386/i386.opt:832
- #, fuzzy
- #| msgid "Support F16C built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support F16C built-in functions and code generation"
  msgid "Support PREFETCHWT1 built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código F16C"
-+msgstr "Admite funciones internas y generación de código F16C."
++msgstr "Admite funciones internas y generación de código PREFETCHWT1."
  
  #: config/i386/i386.opt:836
  msgid "Emit profiling counter call at function entry before prologue."
-@@ -11019,25 +9583,25 @@
- #, fuzzy
- #| msgid "Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time check"
+@@ -11005,81 +9209,63 @@
+ 
+ #: config/i386/i386.opt:840
+ msgid "Generate __mcount_loc section with all mcount or __fentry__ calls."
+-msgstr ""
++msgstr "Genera sección __mcount_loc con todos los mcount o llamadas __fentry__."
+ 
+ #: config/i386/i386.opt:844
+ msgid "Generate mcount/__fentry__ calls as nops. To activate they need to be"
+-msgstr ""
++msgstr "Genera llamadas mcount/__fentry__ como nops. Para activarlo han de ser"
+ 
+ #: config/i386/i386.opt:849
+ msgid "Skip setting up RAX register when passing variable arguments."
+-msgstr ""
++msgstr "Salta configurar registro RAX cuando se pasan argumentos variables."
+ 
+ #: config/i386/i386.opt:853
+-#, fuzzy
+-#| msgid "Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time check"
  msgid "Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time check."
 -msgstr "Expande la división entera de 32bit/64bit en división entera sin signo de 8bit con revisión en tiempo de ejecución"
 +msgstr "Expande la división entera de 32bit/64bit en división entera sin signo de 8bit con revisión en tiempo de ejecución."
  
  #: config/i386/i386.opt:857
- #, fuzzy
- #| msgid "Split 32-byte AVX unaligned load"
+-#, fuzzy
+-#| msgid "Split 32-byte AVX unaligned load"
  msgid "Split 32-byte AVX unaligned load."
 -msgstr "Divide load sin alinear AVX de 32-byte"
 +msgstr "Divide load sin alinear AVX de 32-byte."
  
  #: config/i386/i386.opt:861
- #, fuzzy
- #| msgid "Split 32-byte AVX unaligned store"
+-#, fuzzy
+-#| msgid "Split 32-byte AVX unaligned store"
  msgid "Split 32-byte AVX unaligned store."
 -msgstr "Divide store sin alinear AVX de 32-byte"
 +msgstr "Divide store sin alinear AVX de 32-byte."
  
  #: config/i386/i386.opt:865
- #, fuzzy
- #| msgid "Support TBM built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support TBM built-in functions and code generation"
  msgid "Support RTM built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código TBM"
-+msgstr "Admite funciones internas y generación de código TBM."
++msgstr "Admite funciones internas y generación de código RTM."
  
  #: config/i386/i386.opt:869
- #, fuzzy
-@@ -11049,19 +9613,19 @@
- #, fuzzy
- #| msgid "Support MMX and SSE built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support code generation of movbe instruction."
+ msgid "Support MPX code generation."
+-msgstr "Admite la generación de código de la instrucción movbe."
++msgstr "Admite la generación de código MPX."
+ 
+ #: config/i386/i386.opt:873
+-#, fuzzy
+-#| msgid "Support MMX and SSE built-in functions and code generation"
  msgid "Support MWAITX and MONITORX built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código MMX y SSE"
-+msgstr "Admite funciones internas y generación de código MMX y SSE."
++msgstr "Admite funciones internas y generación de código MWAITX y MONITORX."
  
  #: config/i386/i386.opt:877
- #, fuzzy
- #| msgid "Support AES built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support AES built-in functions and code generation"
  msgid "Support CLZERO built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código AES"
-+msgstr "Admite funciones internas y generación de código AES."
++msgstr "Admite funciones internas y generación de código CLZERO."
  
  #: config/i386/i386.opt:881
- #, fuzzy
- #| msgid "Support PCLMUL built-in functions and code generation"
+-#, fuzzy
+-#| msgid "Support PCLMUL built-in functions and code generation"
  msgid "Support PKU built-in functions and code generation."
 -msgstr "Admite funciones internas y generación de código PCLMUL"
-+msgstr "Admite funciones internas y generación de código PCLMUL."
++msgstr "Admite funciones internas y generación de código PKU."
  
  #: config/i386/i386.opt:885
  msgid "Use given stack-protector guard."
-@@ -11093,13 +9657,13 @@
- #, fuzzy
- #| msgid "Assume code will be linked by GNU ld"
+-msgstr ""
++msgstr "USa la guarda de protección de la pila dada."
+ 
+ #: config/i386/i386.opt:889
+-#, fuzzy
+-#| msgid "Known ARM architectures (for use with the -march= option):"
+ msgid "Known stack protector guard (for use with the -mstack-protector-guard= option):"
+-msgstr "Arquitecturas ARM conocidas (para usar con la opción -march=):"
++msgstr "Guarda de protección de pila conocida (para usar con la opción -mstack-protector-guard=):"
+ 
+ #: config/i386/i386.opt:899
+ msgid "Attempt to avoid generating instruction sequences containing ret bytes."
+-msgstr ""
++msgstr "Trata de evitar que se generen secuencias de instrucciones que contengan ret bytes."
+ 
+ #: config/i386/stringop.opt:8
+ msgid "the Free Software Foundation; either version 3, or (at your option)"
+-msgstr ""
++msgstr "la Free Software Foundation; bien versión 3, o (a su elección)"
+ 
+ #: config/i386/stringop.opt:13
+ msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the"
+@@ -11087,341 +9273,233 @@
+ 
+ #: config/i386/stringop.opt:18
+ msgid "see <http://www.gnu.org/licenses/>.  */"
+-msgstr ""
++msgstr "véase <http://www.gnu.org/licenses/>.  */"
+ 
+ #: config/pa/pa64-hpux.opt:23
+-#, fuzzy
+-#| msgid "Assume code will be linked by GNU ld"
  msgid "Assume code will be linked by GNU ld."
 -msgstr "Asume que el código se enlazará por ld de GNU"
-+msgstr "Asume que el código se enlazará por ld de GNU."
++msgstr "Asume que el código se enlazará mediante ld de GNU."
  
  #: config/pa/pa64-hpux.opt:27
- #, fuzzy
- #| msgid "Assume code will be linked by HP ld"
+-#, fuzzy
+-#| msgid "Assume code will be linked by HP ld"
  msgid "Assume code will be linked by HP ld."
 -msgstr "Asume que el código se enlazará por ld de HP"
-+msgstr "Asume que el código se enlazará por ld de HP."
++msgstr "Asume que el código se enlazará mediante ld de HP."
  
  #: config/pa/pa-hpux1010.opt:23 config/pa/pa-hpux.opt:31
  #: config/pa/pa-hpux1131.opt:23 config/pa/pa-hpux1111.opt:23
-@@ -11106,121 +9670,121 @@
- #, fuzzy
- #| msgid "Specify UNIX standard for predefines and linking"
+-#, fuzzy
+-#| msgid "Specify UNIX standard for predefines and linking"
  msgid "Specify UNIX standard for predefines and linking."
 -msgstr "Especifica el estándar UNIX para las predefiniciones y enlace"
-+msgstr "Especifica el estándar UNIX para las predefiniciones y enlace."
++msgstr "Especifica el estándar UNIX para las predefiniciones y enlazado."
  
  #: config/pa/pa-hpux.opt:27
- #, fuzzy
- #| msgid "Generate cpp defines for server IO"
+-#, fuzzy
+-#| msgid "Generate cpp defines for server IO"
  msgid "Generate cpp defines for server IO."
 -msgstr "Genera definiciones cpp para ES de servidor"
 +msgstr "Genera definiciones cpp para ES de servidor."
  
  #: config/pa/pa-hpux.opt:35
- #, fuzzy
- #| msgid "Generate cpp defines for workstation IO"
+-#, fuzzy
+-#| msgid "Generate cpp defines for workstation IO"
  msgid "Generate cpp defines for workstation IO."
 -msgstr "Genera definiciones cpp para ES de estación de trabajo"
 +msgstr "Genera definiciones cpp para ES de estación de trabajo."
  
  #: config/pa/pa.opt:30 config/pa/pa.opt:83 config/pa/pa.opt:91
- #, fuzzy
- #| msgid "Generate PA1.0 code"
+-#, fuzzy
+-#| msgid "Generate PA1.0 code"
  msgid "Generate PA1.0 code."
 -msgstr "Genera código PA1.0"
 +msgstr "Genera código PA1.0."
  
  #: config/pa/pa.opt:34 config/pa/pa.opt:95 config/pa/pa.opt:136
- #, fuzzy
- #| msgid "Generate PA1.1 code"
+-#, fuzzy
+-#| msgid "Generate PA1.1 code"
  msgid "Generate PA1.1 code."
 -msgstr "Genera código PA1.1"
 +msgstr "Genera código PA1.1."
  
  #: config/pa/pa.opt:38 config/pa/pa.opt:99
- #, fuzzy
- #| msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+-#, fuzzy
+-#| msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
  msgid "Generate PA2.0 code (requires binutils 2.10 or later)."
 -msgstr "Genera código PA2.0 (requiere binutils 2.10 o superior)"
 +msgstr "Genera código PA2.0 (requiere binutils 2.10 o superior)."
  
  #: config/pa/pa.opt:46
- #, fuzzy
- #| msgid "Disable FP regs"
+-#, fuzzy
+-#| msgid "Disable FP regs"
  msgid "Disable FP regs."
 -msgstr "Desactiva los registros FP"
 +msgstr "Desactiva los registros FP."
  
  #: config/pa/pa.opt:50
- #, fuzzy
- #| msgid "Disable indexed addressing"
+-#, fuzzy
+-#| msgid "Disable indexed addressing"
  msgid "Disable indexed addressing."
 -msgstr "Desactiva el direccionamiento indizado"
-+msgstr "Desactiva el direccionamiento indizado."
++msgstr "Desactiva el direccionamiento indexado."
  
  #: config/pa/pa.opt:54
- #, fuzzy
- #| msgid "Generate fast indirect calls"
+-#, fuzzy
+-#| msgid "Generate fast indirect calls"
  msgid "Generate fast indirect calls."
 -msgstr "Genera llamadas indirectas rápidas"
 +msgstr "Genera llamadas indirectas rápidas."
  
  #: config/pa/pa.opt:62
- #, fuzzy
- #| msgid "Assume code will be assembled by GAS"
+-#, fuzzy
+-#| msgid "Assume code will be assembled by GAS"
  msgid "Assume code will be assembled by GAS."
 -msgstr "Asume que el código será ensamblado por GAS"
-+msgstr "Asume que el código será ensamblado por GAS."
++msgstr "Asume que el código será ensamblado mediante GAS."
  
  #: config/pa/pa.opt:71
- #, fuzzy
- #| msgid "Enable linker optimizations"
+-#, fuzzy
+-#| msgid "Enable linker optimizations"
  msgid "Enable linker optimizations."
 -msgstr "Activa las optimizaciones del enlazador"
 +msgstr "Activa las optimizaciones del enlazador."
  
  #: config/pa/pa.opt:75
- #, fuzzy
- #| msgid "Always generate long calls"
+-#, fuzzy
+-#| msgid "Always generate long calls"
  msgid "Always generate long calls."
 -msgstr "Genera siempre llamadas long"
 +msgstr "Genera siempre llamadas long."
  
  #: config/pa/pa.opt:79
- #, fuzzy
- #| msgid "Emit long load/store sequences"
+-#, fuzzy
+-#| msgid "Emit long load/store sequences"
  msgid "Emit long load/store sequences."
 -msgstr "Emite secuencias load/store long"
 +msgstr "Emite secuencias load/store long."
  
  #: config/pa/pa.opt:87
- #, fuzzy
- #| msgid "Disable space regs"
+-#, fuzzy
+-#| msgid "Disable space regs"
  msgid "Disable space regs."
 -msgstr "Desactiva los registros de espacio"
 +msgstr "Desactiva los registros de espacio."
  
  #: config/pa/pa.opt:103
- #, fuzzy
- #| msgid "Use portable calling conventions"
+-#, fuzzy
+-#| msgid "Use portable calling conventions"
  msgid "Use portable calling conventions."
 -msgstr "Usa convenciones de llamada transportable"
-+msgstr "Usa convenciones de llamada transportable."
++msgstr "Usa convenios de llamada transportable."
  
  #: config/pa/pa.opt:107
- #, fuzzy
- #| msgid "Specify CPU for scheduling purposes.  Valid arguments are 700, 7100, 7100LC, 7200, 7300, and 8000"
+-#, fuzzy
+-#| msgid "Specify CPU for scheduling purposes.  Valid arguments are 700, 7100, 7100LC, 7200, 7300, and 8000"
  msgid "Specify CPU for scheduling purposes.  Valid arguments are 700, 7100, 7100LC, 7200, 7300, and 8000."
 -msgstr "Especifica el CPU por razones de calendarización.  Los argumentos válidos son 700, 7100, 7100LC, 7200, 7300, y 8000"
-+msgstr "Especifica el CPU por razones de planificación.  Los argumentos válidos son 700, 7100, 7100LC, 7200, 7300, y 8000."
++msgstr "Especifica la CPU por razones de planificación.  Los argumentos válidos son 700, 7100, 7100LC, 7200, 7300, y 8000."
  
  #: config/pa/pa.opt:132 config/frv/frv.opt:215
- #, fuzzy
- #| msgid "Use software floating point"
+-#, fuzzy
+-#| msgid "Use software floating point"
  msgid "Use software floating point."
 -msgstr "Usa coma flotante de software"
 +msgstr "Usa coma flotante de software."
  
  #: config/pa/pa.opt:140
- #, fuzzy
- #| msgid "Do not disable space regs"
+-#, fuzzy
+-#| msgid "Do not disable space regs"
  msgid "Do not disable space regs."
 -msgstr "No desactiva los registros de espacio"
 +msgstr "No desactiva los registros de espacio."
  
  #: config/v850/v850.opt:29
- #, fuzzy
- #| msgid "Use registers r2 and r5"
+-#, fuzzy
+-#| msgid "Use registers r2 and r5"
  msgid "Use registers r2 and r5."
 -msgstr "Usa los registros r2 y r5"
 +msgstr "Usa los registros r2 y r5."
  
  #: config/v850/v850.opt:33
- #, fuzzy
- #| msgid "Use 4 byte entries in switch tables"
+-#, fuzzy
+-#| msgid "Use 4 byte entries in switch tables"
  msgid "Use 4 byte entries in switch tables."
 -msgstr "Usa entradas de 4 byte en las tablas de switch"
 +msgstr "Usa entradas de 4 byte en las tablas de switch."
  
  # No me gusta mucho esta traducción. cfuga
  #: config/v850/v850.opt:37
-@@ -11227,145 +9791,145 @@
- #, fuzzy
- #| msgid "Enable backend debugging"
+-#, fuzzy
+-#| msgid "Enable backend debugging"
  msgid "Enable backend debugging."
 -msgstr "Habilita la depuración del extremo trasero"
 +msgstr "Habilita la depuración del extremo trasero."
  
  #: config/v850/v850.opt:41
- #, fuzzy
- #| msgid "Do not use the callt instruction"
+-#, fuzzy
+-#| msgid "Do not use the callt instruction"
  msgid "Do not use the callt instruction (default)."
 -msgstr "No usa la instrucción callt"
-+msgstr "No usa la instrucción callt."
++msgstr "No usa la instrucción callt (predeterminado)."
  
  #: config/v850/v850.opt:45
- #, fuzzy
- #| msgid "Reuse r30 on a per function basis"
+-#, fuzzy
+-#| msgid "Reuse r30 on a per function basis"
  msgid "Reuse r30 on a per function basis."
 -msgstr "Reusa r30 basado por función"
 +msgstr "Reusa r30 basado por función."
  
  #: config/v850/v850.opt:52
- #, fuzzy
- #| msgid "Prohibit PC relative function calls"
+-#, fuzzy
+-#| msgid "Prohibit PC relative function calls"
  msgid "Prohibit PC relative function calls."
 -msgstr "Prohíbe la llamada a funciones relativas al PC"
 +msgstr "Prohíbe la llamada a funciones relativas al PC."
  
  #: config/v850/v850.opt:56
- #, fuzzy
- #| msgid "Use stubs for function prologues"
+-#, fuzzy
+-#| msgid "Use stubs for function prologues"
  msgid "Use stubs for function prologues."
 -msgstr "Usa cabos para los prólogos de función"
-+msgstr "Usa cabos para los prólogos de función."
++msgstr "Usa stubs para los prólogos de función."
  
  #: config/v850/v850.opt:60
- #, fuzzy
- #| msgid "Set the max size of data eligible for the SDA area"
+-#, fuzzy
+-#| msgid "Set the max size of data eligible for the SDA area"
  msgid "Set the max size of data eligible for the SDA area."
 -msgstr "Establece el tamaño máximo de datos elegibles para el área SDA"
 +msgstr "Establece el tamaño máximo de datos elegibles para el área SDA."
  
  #: config/v850/v850.opt:67
- #, fuzzy
- #| msgid "Enable the use of the short load instructions"
+-#, fuzzy
+-#| msgid "Enable the use of the short load instructions"
  msgid "Enable the use of the short load instructions."
 -msgstr "Activa el uso de las instrucciones short load"
 +msgstr "Activa el uso de las instrucciones short load."
  
  #: config/v850/v850.opt:71
- #, fuzzy
- #| msgid "Same as: -mep -mprolog-function"
+-#, fuzzy
+-#| msgid "Same as: -mep -mprolog-function"
  msgid "Same as: -mep -mprolog-function."
 -msgstr "Igual que: -mep -mprolog-function"
 +msgstr "Igual que: -mep -mprolog-function."
  
  #: config/v850/v850.opt:75
- #, fuzzy
- #| msgid "Set the max size of data eligible for the TDA area"
+-#, fuzzy
+-#| msgid "Set the max size of data eligible for the TDA area"
  msgid "Set the max size of data eligible for the TDA area."
 -msgstr "Establece el tamaño máximo de datos elegibles para el área TDA"
 +msgstr "Establece el tamaño máximo de datos elegibles para el área TDA."
  
  #: config/v850/v850.opt:82
- #, fuzzy
- #| msgid "Do not enforce strict alignment"
+-#, fuzzy
+-#| msgid "Do not enforce strict alignment"
  msgid "Do not enforce strict alignment."
 -msgstr "No refuerza la alineación estricta"
 +msgstr "No refuerza la alineación estricta."
  
  #: config/v850/v850.opt:86
- #, fuzzy
- #| msgid "Put jump tables for switch statements into the .data section rather than the .code section"
+-#, fuzzy
+-#| msgid "Put jump tables for switch statements into the .data section rather than the .code section"
  msgid "Put jump tables for switch statements into the .data section rather than the .code section."
 -msgstr "Coloca las tablas de salto para las declaraciones switch en la sección .data en lugar de la sección .code"
 +msgstr "Coloca las tablas de salto para las declaraciones switch en la sección .data en lugar de la sección .code."
  
  #: config/v850/v850.opt:93
- #, fuzzy
- #| msgid "Compile for the v850 processor"
+-#, fuzzy
+-#| msgid "Compile for the v850 processor"
  msgid "Compile for the v850 processor."
 -msgstr "Compila para el procesador v850"
 +msgstr "Compila para el procesador v850."
  
  #: config/v850/v850.opt:97
- #, fuzzy
- #| msgid "Compile for the v850e processor"
+-#, fuzzy
+-#| msgid "Compile for the v850e processor"
  msgid "Compile for the v850e processor."
 -msgstr "Compila para el procesador v850e"
 +msgstr "Compila para el procesador v850e."
  
  #: config/v850/v850.opt:101
- #, fuzzy
- #| msgid "Compile for the v850e1 processor"
+-#, fuzzy
+-#| msgid "Compile for the v850e1 processor"
  msgid "Compile for the v850e1 processor."
 -msgstr "Compila para el procesador v850e1"
 +msgstr "Compila para el procesador v850e1."
  
  #: config/v850/v850.opt:105
- #, fuzzy
- #| msgid "Compile for the v850es variant of the v850e1"
+-#, fuzzy
+-#| msgid "Compile for the v850es variant of the v850e1"
  msgid "Compile for the v850es variant of the v850e1."
 -msgstr "Compila para la variante v850es del procesador v850e1"
 +msgstr "Compila para la variante v850es del procesador v850e1."
  
  #: config/v850/v850.opt:109
- #, fuzzy
- #| msgid "Compile for the v850e2 processor"
+-#, fuzzy
+-#| msgid "Compile for the v850e2 processor"
  msgid "Compile for the v850e2 processor."
 -msgstr "Compila para el procesador v850e2"
 +msgstr "Compila para el procesador v850e2."
  
  #: config/v850/v850.opt:113
- #, fuzzy
- #| msgid "Compile for the v850e2v3 processor"
+-#, fuzzy
+-#| msgid "Compile for the v850e2v3 processor"
  msgid "Compile for the v850e2v3 processor."
 -msgstr "Compila para el procesador v850e2v3"
 +msgstr "Compila para el procesador v850e2v3."
  
  #: config/v850/v850.opt:117
- #, fuzzy
- #| msgid "Compile for the v850e processor"
+-#, fuzzy
+-#| msgid "Compile for the v850e processor"
  msgid "Compile for the v850e3v5 processor."
 -msgstr "Compila para el procesador v850e"
-+msgstr "Compila para el procesador v850e."
++msgstr "Compila para el procesador v850e3v5."
  
  #: config/v850/v850.opt:124
- #, fuzzy
- #| msgid "Enable clip instructions"
+-#, fuzzy
+-#| msgid "Enable clip instructions"
  msgid "Enable v850e3v5 loop instructions."
 -msgstr "Activa las instrucciones clip"
-+msgstr "Activa las instrucciones clip."
++msgstr "Activa las instrucciones de bucle del v850e3v5."
  
  #: config/v850/v850.opt:128
- #, fuzzy
- #| msgid "Set the max size of data eligible for the ZDA area"
+-#, fuzzy
+-#| msgid "Set the max size of data eligible for the ZDA area"
  msgid "Set the max size of data eligible for the ZDA area."
 -msgstr "Establece el tamaño máximo de datos elegibles para el área ZDA"
 +msgstr "Establece el tamaño máximo de datos elegibles para el área ZDA."
  
  #: config/v850/v850.opt:135
- #, fuzzy
- #| msgid "Enable compatibility with ic960 assembler"
+-#, fuzzy
+-#| msgid "Enable compatibility with ic960 assembler"
  msgid "Enable relaxing in the assembler."
 -msgstr "Activar la compatibilidad con el ensamblador ic960"
-+msgstr "Activar la compatibilidad con el ensamblador ic960."
++msgstr "Activar la relajación en el ensamblador."
  
  #: config/v850/v850.opt:139
- #, fuzzy
- #| msgid "Prohibit PC relative function calls"
+-#, fuzzy
+-#| msgid "Prohibit PC relative function calls"
  msgid "Prohibit PC relative jumps."
 -msgstr "Prohíbe la llamada a funciones relativas al PC"
-+msgstr "Prohíbe la llamada a funciones relativas al PC."
++msgstr "Prohíbe los saltos relativos al PC."
  
  #: config/v850/v850.opt:143
- #, fuzzy
- #| msgid "Prevent the use of all hardware floating-point instructions"
+-#, fuzzy
+-#| msgid "Prevent the use of all hardware floating-point instructions"
  msgid "Inhibit the use of hardware floating point instructions."
 -msgstr "Previene el uso de todas las instrucciones de coma flotante de hardware"
-+msgstr "Previene el uso de todas las instrucciones de coma flotante de hardware."
++msgstr "Inhibe el uso de las instrucciones de coma flotante de hardware."
  
  #: config/v850/v850.opt:147
- #, fuzzy
- #| msgid "Allow the use of hardware floating-point ABI and instructions"
+-#, fuzzy
+-#| msgid "Allow the use of hardware floating-point ABI and instructions"
  msgid "Allow the use of hardware floating point instructions for V850E2V3 and up."
 -msgstr "Permite el uso de la ABI y las instrucciones de coma flotante de hardware"
-+msgstr "Permite el uso de la ABI y las instrucciones de coma flotante de hardware."
++msgstr "Permite el uso de las instrucciones de coma flotante de hardware para el V850E2V3 y superior."
  
  #: config/v850/v850.opt:151
- #, fuzzy
-@@ -11377,7 +9941,7 @@
- #, fuzzy
- #| msgid "Enable support for huge objects"
+-#, fuzzy
+-#| msgid "Enable the use of RX FPU instructions.  This is the default."
+ msgid "Enable support for the RH850 ABI.  This is the default."
+-msgstr "Activa el uso de las instrucciones de FPU RX.  Este es el valor por defecto."
++msgstr "Activa el soporte del ABI del RH850.  Este es el valor por defecto."
+ 
+ #: config/v850/v850.opt:155
+-#, fuzzy
+-#| msgid "Enable support for huge objects"
  msgid "Enable support for the old GCC ABI."
 -msgstr "Activa el soporte para objetos enormes"
-+msgstr "Activa el soporte para objetos enormes."
++msgstr "Activa el soporte para el antiguo ABI de GCC."
  
  #: config/v850/v850.opt:159
  msgid "Support alignments of up to 64-bits."
-@@ -11387,37 +9951,37 @@
- #, fuzzy
- #| msgid "-G<number>\tPut global and static data smaller than <number> bytes into a special section (on some targets)"
+-msgstr ""
++msgstr "Activa alineamientos de hasta 64 bits."
+ 
+ #: config/g.opt:27
+-#, fuzzy
+-#| msgid "-G<number>\tPut global and static data smaller than <number> bytes into a special section (on some targets)"
  msgid "-G<number>\tPut global and static data smaller than <number> bytes into a special section (on some targets)."
 -msgstr "-G<número>\tColoca los datos globales y estáticos más pequeños que <número> bytes en una sección especial (en algunos objetivos)"
 +msgstr "-G<número>\tColoca los datos globales y estáticos más pequeños que <número> bytes en una sección especial (en algunos objetivos)."
  
  #: config/lynx.opt:23
- #, fuzzy
- #| msgid "Support legacy multi-threading"
+-#, fuzzy
+-#| msgid "Support legacy multi-threading"
  msgid "Support legacy multi-threading."
 -msgstr "Soporte para multihilos antiguo"
 +msgstr "Soporte para multihilos antiguo."
  
  #: config/lynx.opt:27
- #, fuzzy
- #| msgid "Use shared libraries"
+-#, fuzzy
+-#| msgid "Use shared libraries"
  msgid "Use shared libraries."
 -msgstr "Usa bibliotecas compartidas"
 +msgstr "Usa bibliotecas compartidas."
  
  #: config/lynx.opt:31
- #, fuzzy
- #| msgid "Support multi-threading"
+-#, fuzzy
+-#| msgid "Support multi-threading"
  msgid "Support multi-threading."
 -msgstr "Soporte para multihilos"
 +msgstr "Soporte para multihilos."
  
  #: config/nvptx/nvptx.opt:22
- #, fuzzy
- #| msgid "Generate code for a Fido A"
+-#, fuzzy
+-#| msgid "Generate code for a Fido A"
  msgid "Generate code for a 32-bit ABI."
 -msgstr "Genera código para un Fido A"
-+msgstr "Genera código para un Fido A."
++msgstr "Genera código para ABI de 32 bits."
  
  #: config/nvptx/nvptx.opt:26
- #, fuzzy
- #| msgid "Generate code for a Fido A"
+-#, fuzzy
+-#| msgid "Generate code for a Fido A"
  msgid "Generate code for a 64-bit ABI."
 -msgstr "Genera código para un Fido A"
-+msgstr "Genera código para un Fido A."
++msgstr "Genera código para ABI de 64 bits."
  
  #: config/nvptx/nvptx.opt:30
  msgid "Link in code for a __main kernel."
-@@ -11431,49 +9995,49 @@
- #, fuzzy
- #| msgid "Assume the VxWorks RTP environment"
+-msgstr ""
++msgstr "Enlace en el código para un núcleo __main."
+ 
+ #: config/nvptx/nvptx.opt:34
+ msgid "Optimize partition neutering."
+@@ -11428,52 +9506,36 @@
+ msgstr ""
+ 
+ #: config/vxworks.opt:36
+-#, fuzzy
+-#| msgid "Assume the VxWorks RTP environment"
  msgid "Assume the VxWorks RTP environment."
 -msgstr "Asume el ambiente RTP de VxWorks"
 +msgstr "Asume el entorno RTP de VxWorks."
  
  #: config/vxworks.opt:43
- #, fuzzy
- #| msgid "Assume the VxWorks vThreads environment"
+-#, fuzzy
+-#| msgid "Assume the VxWorks vThreads environment"
  msgid "Assume the VxWorks vThreads environment."
 -msgstr "Asume el ambiente vThreads de VxWorks"
 +msgstr "Asume el entorno vThreads de VxWorks."
  
  #: config/cr16/cr16.opt:23
- #, fuzzy
- #| msgid "-msim   Use simulator runtime"
+-#, fuzzy
+-#| msgid "-msim   Use simulator runtime"
  msgid "-msim   Use simulator runtime."
 -msgstr "-msim   Usa el simulador de tiempo de ejecución"
 +msgstr "-msim   Usa el simulador de tiempo de ejecución."
  
  #: config/cr16/cr16.opt:27
- #, fuzzy
- #| msgid "Generate SBIT, CBIT instructions"
+-#, fuzzy
+-#| msgid "Generate SBIT, CBIT instructions"
  msgid "Generate SBIT, CBIT instructions."
 -msgstr "Genera instrucciones SBIT, CBIT"
 +msgstr "Genera instrucciones SBIT, CBIT."
  
  #: config/cr16/cr16.opt:31
- #, fuzzy
- #| msgid "Support multiply accumulate instructions"
+-#, fuzzy
+-#| msgid "Support multiply accumulate instructions"
  msgid "Support multiply accumulate instructions."
 -msgstr "Da soporte a múltiples instrucciones de acumulador"
 +msgstr "Da soporte a múltiples instrucciones de acumulador."
  
  #: config/cr16/cr16.opt:38
- #, fuzzy
- #| msgid "Treat data references as near, far or medium. medium is default"
+-#, fuzzy
+-#| msgid "Treat data references as near, far or medium. medium is default"
  msgid "Treat data references as near, far or medium. medium is default."
 -msgstr "Trata las referencias a datos como near, far o medium. Por defecto es medium"
 +msgstr "Trata las referencias a datos como near, far o medium. Por defecto es medium."
  
  #: config/cr16/cr16.opt:42
- #, fuzzy
- #| msgid "Generate code for CR16C architecture"
+-#, fuzzy
+-#| msgid "Generate code for CR16C architecture"
  msgid "Generate code for CR16C architecture."
 -msgstr "Genera código para la arquitectura CR16C"
 +msgstr "Genera código para la arquitectura CR16C."
  
  #: config/cr16/cr16.opt:46
- #, fuzzy
- #| msgid "Generate code for CR16C+ architecture (Default)"
+-#, fuzzy
+-#| msgid "Generate code for CR16C+ architecture (Default)"
  msgid "Generate code for CR16C+ architecture (Default)."
 -msgstr "Genera código para la arquitectura CR16C+ (Por defecto)"
 +msgstr "Genera código para la arquitectura CR16C+ (Por defecto)."
  
  #: config/cr16/cr16.opt:50
  msgid "Treat integers as 32-bit."
-@@ -11483,7 +10047,7 @@
- #, fuzzy
- #| msgid "Use subroutines for function prologues and epilogues"
+@@ -11480,46 +9542,37 @@
+ msgstr "Trata los enteros como 32-bit."
+ 
+ #: config/avr/avr.opt:23
+-#, fuzzy
+-#| msgid "Use subroutines for function prologues and epilogues"
  msgid "Use subroutines for function prologues and epilogues."
 -msgstr "Usa subrutinas para los prólogos y epílogos de función"
 +msgstr "Usa subrutinas para los prólogos y epílogos de función."
  
  #: config/avr/avr.opt:26
- #, fuzzy, c-format
-@@ -11495,7 +10059,7 @@
- #, fuzzy
- #| msgid "-mmcu=MCU\tSelect the target MCU"
+-#, fuzzy, c-format
+-#| msgid "missing makefile target after %qs"
++#, c-format
+ msgid "missing device or architecture after %qs"
+-msgstr "falta un fichero make objetivo después de %qs"
++msgstr "falta dispositivo o arquitectura después de %qs"
+ 
+ #: config/avr/avr.opt:27
+-#, fuzzy
+-#| msgid "-mmcu=MCU\tSelect the target MCU"
  msgid "-mmcu=MCU\tSelect the target MCU."
 -msgstr "-mmcu=MCU\tSelecciona el MCU destino"
 +msgstr "-mmcu=MCU\tSelecciona el MCU destino."
  
  #: config/avr/avr.opt:31
  msgid "Set the number of 64 KiB flash segments."
-@@ -11513,13 +10077,13 @@
- #, fuzzy
- #| msgid "Use an 8-bit 'int' type"
+-msgstr ""
++msgstr "Establece el número de segmentos flash de 64 KiB."
+ 
+ #: config/avr/avr.opt:35
+ msgid "Indicate presence of a processor erratum."
+-msgstr ""
++msgstr "Indica la presencia de una errata del procesador."
+ 
+ #: config/avr/avr.opt:39
+ msgid "Enable Read-Modify-Write (RMW) instructions support/use."
+-msgstr ""
++msgstr "Activa el soporte/uso de instrucciones Leer-Modificar-Escribir (LME)."
+ 
+ #: config/avr/avr.opt:49
+-#, fuzzy
+-#| msgid "Use an 8-bit 'int' type"
  msgid "Use an 8-bit 'int' type."
 -msgstr "Usa un tipo 'int' de 8-bit"
 +msgstr "Usa un tipo 'int' de 8-bit."
  
  #: config/avr/avr.opt:53
- #, fuzzy
- #| msgid "Change the stack pointer without disabling interrupts"
+-#, fuzzy
+-#| msgid "Change the stack pointer without disabling interrupts"
  msgid "Change the stack pointer without disabling interrupts."
 -msgstr "Cambia el puntero de la pila sin desactivar las interrupciones"
 +msgstr "Cambia el puntero de la pila sin desactivar las interrupciones."
  
  #: config/avr/avr.opt:57
  msgid "Set the branch costs for conditional branch instructions.  Reasonable values are small, non-negative integers.  The default branch cost is 0."
-@@ -11529,13 +10093,13 @@
- #, fuzzy
- #| msgid "Change only the low 8 bits of the stack pointer"
+@@ -11526,16 +9579,12 @@
+ msgstr "Establece los costos de ramificación para las instrucciones de ramificación condicional.  Los valores razonables son enteros pequeños que no son negativos.  El costo de ramificación por defecto es 0."
+ 
+ #: config/avr/avr.opt:67
+-#, fuzzy
+-#| msgid "Change only the low 8 bits of the stack pointer"
  msgid "Change only the low 8 bits of the stack pointer."
 -msgstr "Cambia sólo los 8 bits bajos del puntero de pila"
 +msgstr "Cambia sólo los 8 bits bajos del puntero de pila."
  
  #: config/avr/avr.opt:71
- #, fuzzy
- #| msgid "Relax branches"
+-#, fuzzy
+-#| msgid "Relax branches"
  msgid "Relax branches."
 -msgstr "Relaja ramificaciones"
 +msgstr "Relaja ramificaciones."
  
  #: config/avr/avr.opt:75
  msgid "Make the linker relaxation machine assume that a program counter wrap-around occurs."
-@@ -11557,7 +10121,7 @@
- #, fuzzy
- #| msgid "taking the address of a label is non-standard"
+@@ -11554,244 +9603,172 @@
+ msgstr "El dispositivo no tiene el registro de función especial SPH. Esta opción la sobreescribirá el controlador del compilador con la opción correcta si se puede deducir la presencia/ausencia de SPH con -mmcu=MCU."
+ 
+ #: config/avr/avr.opt:92
+-#, fuzzy
+-#| msgid "taking the address of a label is non-standard"
  msgid "Warn if the address space of an address is changed."
 -msgstr "tomar la dirección de una etiqueta no es estándar"
-+msgstr "tomar la dirección de una etiqueta no es estándar."
++msgstr "Avisa si se cambia el espacio de direcciones de una direccción."
  
  #: config/avr/avr.opt:96
  msgid "Allow to use truncation instead of rounding towards 0 for fractional int types."
-@@ -11571,145 +10135,145 @@
- #, fuzzy
- #| msgid "Compile for the m32rx"
+-msgstr ""
++msgstr "Permite truncar en lugar de redondear a 0 los tipos de fracciones de enteros."
+ 
+ #: config/avr/avr.opt:100
+ msgid "Do not link against the device-specific library lib<MCU>.a."
+-msgstr ""
++msgstr "No enlaza contra la biblioteca específica de dispositivo lib<MCU>.a."
+ 
+ #: config/m32r/m32r.opt:34
+-#, fuzzy
+-#| msgid "Compile for the m32rx"
  msgid "Compile for the m32rx."
 -msgstr "Compila para el m32rx"
 +msgstr "Compila para el m32rx."
  
  #: config/m32r/m32r.opt:38
- #, fuzzy
- #| msgid "Compile for the m32r2"
+-#, fuzzy
+-#| msgid "Compile for the m32r2"
  msgid "Compile for the m32r2."
 -msgstr "Compila para el m32r2"
 +msgstr "Compila para el m32r2."
  
  #: config/m32r/m32r.opt:42
- #, fuzzy
- #| msgid "Compile for the m32r"
+-#, fuzzy
+-#| msgid "Compile for the m32r"
  msgid "Compile for the m32r."
 -msgstr "Compila para el m32r"
 +msgstr "Compila para el m32r."
  
  #: config/m32r/m32r.opt:46
- #, fuzzy
- #| msgid "Align all loops to 32 byte boundary"
+-#, fuzzy
+-#| msgid "Align all loops to 32 byte boundary"
  msgid "Align all loops to 32 byte boundary."
 -msgstr "Alínea todos los bucles al límite de 32 byte"
 +msgstr "Alinea todos los bucles al límite de 32 byte."
  
  #: config/m32r/m32r.opt:50
- #, fuzzy
- #| msgid "Prefer branches over conditional execution"
+-#, fuzzy
+-#| msgid "Prefer branches over conditional execution"
  msgid "Prefer branches over conditional execution."
 -msgstr "Prefiere las ramas sobre la ejecución condicional"
 +msgstr "Prefiere las ramas sobre la ejecución condicional."
  
  #: config/m32r/m32r.opt:54
- #, fuzzy
- #| msgid "Give branches their default cost"
+-#, fuzzy
+-#| msgid "Give branches their default cost"
  msgid "Give branches their default cost."
 -msgstr "Da a las ramificaciones su costo por defecto"
 +msgstr "Da a las ramificaciones su costo por defecto."
  
  #: config/m32r/m32r.opt:58
- #, fuzzy
- #| msgid "Display compile time statistics"
+-#, fuzzy
+-#| msgid "Display compile time statistics"
  msgid "Display compile time statistics."
 -msgstr "Muestra estadísticas de tiempo de compilación"
 +msgstr "Muestra estadísticas de tiempo de compilación."
  
  #: config/m32r/m32r.opt:62
- #, fuzzy
- #| msgid "Specify cache flush function"
+-#, fuzzy
+-#| msgid "Specify cache flush function"
  msgid "Specify cache flush function."
 -msgstr "Especifica la función de limpieza de caché"
 +msgstr "Especifica la función de limpieza de caché."
  
  #: config/m32r/m32r.opt:66
- #, fuzzy
- #| msgid "Specify cache flush trap number"
+-#, fuzzy
+-#| msgid "Specify cache flush trap number"
  msgid "Specify cache flush trap number."
 -msgstr "Especifica el número de trampa de limpieza de caché"
 +msgstr "Especifica el número de trampa de limpieza de caché."
  
  #: config/m32r/m32r.opt:70
- #, fuzzy
- #| msgid "Only issue one instruction per cycle"
+-#, fuzzy
+-#| msgid "Only issue one instruction per cycle"
  msgid "Only issue one instruction per cycle."
 -msgstr "Sólo ejecuta una instrucción por ciclo"
 +msgstr "Sólo ejecuta una instrucción por ciclo."
  
  #: config/m32r/m32r.opt:74
- #, fuzzy
- #| msgid "Allow two instructions to be issued per cycle"
+-#, fuzzy
+-#| msgid "Allow two instructions to be issued per cycle"
  msgid "Allow two instructions to be issued per cycle."
 -msgstr "Permite que se ejecuten dos instrucciones por ciclo"
 +msgstr "Permite que se ejecuten dos instrucciones por ciclo."
  
  #: config/m32r/m32r.opt:78
- #, fuzzy
- #| msgid "Code size: small, medium or large"
+-#, fuzzy
+-#| msgid "Code size: small, medium or large"
  msgid "Code size: small, medium or large."
 -msgstr "Tamaño del código: small, medium o large"
 +msgstr "Tamaño del código: small, medium o large."
  
  #: config/m32r/m32r.opt:94
- #, fuzzy
- #| msgid "Don't call any cache flush functions"
+-#, fuzzy
+-#| msgid "Don't call any cache flush functions"
  msgid "Don't call any cache flush functions."
 -msgstr "No llama a ninguna función de limpieza de caché"
 +msgstr "No llama a ninguna función de limpieza de caché."
  
  #: config/m32r/m32r.opt:98
- #, fuzzy
- #| msgid "Don't call any cache flush trap"
+-#, fuzzy
+-#| msgid "Don't call any cache flush trap"
  msgid "Don't call any cache flush trap."
 -msgstr "No llama a ninguna trampa de limpieza de caché"
 +msgstr "No llama a ninguna trampa de limpieza de caché."
  
  #: config/m32r/m32r.opt:105
- #, fuzzy
- #| msgid "Small data area: none, sdata, use"
+-#, fuzzy
+-#| msgid "Small data area: none, sdata, use"
  msgid "Small data area: none, sdata, use."
 -msgstr "Área de datos small: none, sdata, use"
 +msgstr "Área de datos small: none, sdata, use."
  
  #: config/s390/tpf.opt:23
- #, fuzzy
- #| msgid "Enable TPF-OS tracing code"
+-#, fuzzy
+-#| msgid "Enable TPF-OS tracing code"
  msgid "Enable TPF-OS tracing code."
 -msgstr "Activa el código de rastreo TPF-OS"
 +msgstr "Activa el código de rastreo TPF-OS."
  
  #: config/s390/tpf.opt:27
- #, fuzzy
- #| msgid "Specify main object for TPF-OS"
+-#, fuzzy
+-#| msgid "Specify main object for TPF-OS"
  msgid "Specify main object for TPF-OS."
 -msgstr "Especifica el objeto principal para TPF-OS"
 +msgstr "Especifica el objeto principal para TPF-OS."
  
  #: config/s390/s390.opt:48
- #, fuzzy
- #| msgid "31 bit ABI"
+-#, fuzzy
+-#| msgid "31 bit ABI"
  msgid "31 bit ABI."
 -msgstr "ABI de 31 bit"
 +msgstr "ABI de 31 bit."
  
  #: config/s390/s390.opt:52
- #, fuzzy
- #| msgid "64 bit ABI"
+-#, fuzzy
+-#| msgid "64 bit ABI"
  msgid "64 bit ABI."
 -msgstr "ABI de 64 bit"
 +msgstr "ABI de 64 bit."
  
  #: config/s390/s390.opt:96
- #, fuzzy
- #| msgid "Maintain backchain pointer"
+-#, fuzzy
+-#| msgid "Maintain backchain pointer"
  msgid "Maintain backchain pointer."
 -msgstr "Mantiene el puntero a la cadena hacia atrás"
 +msgstr "Mantiene el puntero a la cadena hacia atrás."
  
  #: config/s390/s390.opt:100
- #, fuzzy
- #| msgid "Additional debug prints"
+-#, fuzzy
+-#| msgid "Additional debug prints"
  msgid "Additional debug prints."
 -msgstr "Impresiones adicionales de depuración"
 +msgstr "Impresiones adicionales de depuración."
  
  #: config/s390/s390.opt:104
- #, fuzzy
- #| msgid "ESA/390 architecture"
+-#, fuzzy
+-#| msgid "ESA/390 architecture"
  msgid "ESA/390 architecture."
 -msgstr "Arquitectura ESA/390"
 +msgstr "Arquitectura ESA/390."
  
  #: config/s390/s390.opt:108
- #, fuzzy
- #| msgid "Enable decimal floating point hardware support"
+-#, fuzzy
+-#| msgid "Enable decimal floating point hardware support"
  msgid "Enable decimal floating point hardware support."
 -msgstr "Admite la coma flotante decimal de hardware"
 +msgstr "Admite la coma flotante decimal de hardware."
  
  #: config/s390/s390.opt:112
- #, fuzzy
- #| msgid "Enable hardware floating point"
+-#, fuzzy
+-#| msgid "Enable hardware floating point"
  msgid "Enable hardware floating point."
 -msgstr "Activa coma flotante de hardware"
 +msgstr "Activa coma flotante de hardware."
  
  #: config/s390/s390.opt:116
  msgid "Takes two non-negative integer numbers separated by a comma."
-@@ -11719,37 +10283,37 @@
- #, fuzzy
- #| msgid "Use hardware floating point instructions"
+-msgstr ""
++msgstr "Toma dos números enteros no negativos separados por coma."
+ 
+ #: config/s390/s390.opt:134
+-#, fuzzy
+-#| msgid "Use hardware floating point instructions"
  msgid "Use hardware transactional execution instructions."
 -msgstr "Usa instrucciones de coma flotante por hardware"
-+msgstr "Usa instrucciones de coma flotante por hardware."
++msgstr "Usa instrucciones de ejecución transaccional por hardware."
  
  #: config/s390/s390.opt:138
- #, fuzzy
- #| msgid "hardware decimal floating point instructions not available on %s"
+-#, fuzzy
+-#| msgid "hardware decimal floating point instructions not available on %s"
  msgid "Use hardware vector facility instructions and enable the vector ABI."
 -msgstr "las instrucciones de coma flotante decimal de hardware no están disponibles en %s"
-+msgstr "las instrucciones de coma flotante decimal de hardware no están disponibles en %s."
++msgstr "Usa las instrucciones de operaciones con vectores por hardware y activa el vector ABI."
  
  #: config/s390/s390.opt:142
- #, fuzzy
- #| msgid "Use packed stack layout"
+-#, fuzzy
+-#| msgid "Use packed stack layout"
  msgid "Use packed stack layout."
 -msgstr "Usa la disposición de pila empacada"
 +msgstr "Usa la disposición de pila empacada."
  
  #: config/s390/s390.opt:146
- #, fuzzy
- #| msgid "Use bras for executable < 64k"
+-#, fuzzy
+-#| msgid "Use bras for executable < 64k"
  msgid "Use bras for executable < 64k."
 -msgstr "Usa bras para el ejecutable < 64k"
 +msgstr "Usa bras para el ejecutable < 64k."
  
  #: config/s390/s390.opt:150
- #, fuzzy
- #| msgid "Disable hardware floating point"
+-#, fuzzy
+-#| msgid "Disable hardware floating point"
  msgid "Disable hardware floating point."
 -msgstr "Desactiva la coma flotante de hardware"
 +msgstr "Desactiva la coma flotante de hardware."
  
  #: config/s390/s390.opt:154
- #, fuzzy
- #| msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
+-#, fuzzy
+-#| msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
  msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered."
 -msgstr "Establece el número máximo de bytes que se deben dejar en el tamaño de la pila antes de que se active una instrucción trap"
 +msgstr "Establece el número máximo de bytes que se deben dejar en el tamaño de la pila antes de que se active una instrucción trap."
  
  #: config/s390/s390.opt:158
  msgid "Switches off the -mstack-guard= option."
-@@ -11759,7 +10323,7 @@
- #, fuzzy
- #| msgid "Emit extra code in the function prologue in order to trap if the stack size exceeds the given limit"
+-msgstr ""
++msgstr "Desactiva la opción -mstack-guard=."
+ 
+ #: config/s390/s390.opt:162
+-#, fuzzy
+-#| msgid "Emit extra code in the function prologue in order to trap if the stack size exceeds the given limit"
  msgid "Emit extra code in the function prologue in order to trap if the stack size exceeds the given limit."
 -msgstr "Emite código extra en el prólogo de la función para atrapar en caso de que el tamaño de la pila exceda el límite dado"
 +msgstr "Emite código extra en el prólogo de la función para atrapar en caso de que el tamaño de la pila exceda el límite dado."
  
  #: config/s390/s390.opt:166
  msgid "Switches off the -mstack-size= option."
-@@ -11769,7 +10333,7 @@
- #, fuzzy
- #| msgid "Generate string instructions for block moves"
+-msgstr ""
++msgstr "Desactiva la opción -mstack-size= ."
+ 
+ #: config/s390/s390.opt:174
+-#, fuzzy
+-#| msgid "Generate string instructions for block moves"
  msgid "Use the mvcle instruction for block moves."
 -msgstr "Genera instrucciones de cadena para movimiento de bloques"
-+msgstr "Genera instrucciones de cadena para movimiento de bloques."
++msgstr "Utiliza la instrucción mvcle para movimiento de bloques."
  
  #: config/s390/s390.opt:178
  msgid "Enable the z vector language extension providing the context-sensitive"
-@@ -11779,19 +10343,19 @@
- #, fuzzy
- #| msgid "Warn if a function uses alloca or creates an array with dynamic size"
+-msgstr ""
++msgstr "Activa la extensión de lenguaje de vector z que ofrece la sensibilidad al contexto"
+ 
+ #: config/s390/s390.opt:183
+-#, fuzzy
+-#| msgid "Warn if a function uses alloca or creates an array with dynamic size"
  msgid "Warn if a function uses alloca or creates an array with dynamic size."
 -msgstr "Avisa si una función usa alloca o crea una matriz de tamaño dinámico"
 +msgstr "Avisa si una función usa alloca o crea una matriz de tamaño dinámico."
  
  #: config/s390/s390.opt:187
- #, fuzzy
- #| msgid "Warn if a single function's framesize exceeds the given framesize"
+-#, fuzzy
+-#| msgid "Warn if a single function's framesize exceeds the given framesize"
  msgid "Warn if a single function's framesize exceeds the given framesize."
 -msgstr "Avisa si el tamaño de marco de una sola función excede el tamaño de marco dado"
 +msgstr "Avisa si el tamaño de marco de una sola función excede el tamaño de marco dado."
  
  #: config/s390/s390.opt:191
- #, fuzzy
- #| msgid "z/Architecture"
+-#, fuzzy
+-#| msgid "z/Architecture"
  msgid "z/Architecture."
 -msgstr "z/Architecture"
 +msgstr "z/Architecture."
  
  #: config/s390/s390.opt:195
  msgid "Set the branch costs for conditional branch instructions.  Reasonable"
-@@ -11845,7 +10409,7 @@
- #, fuzzy
- #| msgid "Provide libraries for the simulator"
+@@ -11803,49 +9780,39 @@
+ 
+ #: config/rl78/rl78.opt:31
+ msgid "Selects the type of hardware multiplication and division to use (none/g13/g14)."
+-msgstr ""
++msgstr "Selecciona el tipo de multiplicación y división por hardware que se usará (none/g13/g14)."
+ 
+ #: config/rl78/rl78.opt:50
+-#, fuzzy
+-#| msgid "Specifies the number of registers to reserve for interrupt handlers."
+ msgid "Use all registers, reserving none for interrupt handlers."
+-msgstr "Especifica el número de registros a reservar para los manejadores de interrupciones."
++msgstr "Usa todos los registros, sin reservar ninguno para los manejadores de interrupciones."
+ 
+ #: config/rl78/rl78.opt:54
+ msgid "Enable assembler and linker relaxation.  Enabled by default at -Os."
+-msgstr ""
++msgstr "Activa la relajación del ensamblador y el enlazador.  Activado por defecto a -Os."
+ 
+ #: config/rl78/rl78.opt:58
+ msgid "Selects the type of RL78 core being targeted (g10/g13/g14).  The default is the G14.  If set, also selects the hardware multiply support to be used."
+-msgstr ""
++msgstr "Selecciona el tipo de núcleo RL78 de destino (g10/g13/g14).  El predeterminado es G14.  Si se pone, también selecciona el soporte de multiplicación por hardware que se usará."
+ 
+ #: config/rl78/rl78.opt:77
+-#, fuzzy
+-#| msgid "Alias for -mcpu."
+ msgid "Alias for -mcpu=g10."
+-msgstr "Alias para -mcpu."
++msgstr "Alias para -mcpu=g10."
+ 
+ #: config/rl78/rl78.opt:81
+-#, fuzzy
+-#| msgid "Alias for -mcpu."
+ msgid "Alias for -mcpu=g13."
+-msgstr "Alias para -mcpu."
++msgstr "Alias para -mcpu=g13."
+ 
+ #: config/rl78/rl78.opt:85 config/rl78/rl78.opt:89
+-#, fuzzy
+-#| msgid "Alias for -mcpu."
+ msgid "Alias for -mcpu=g14."
+-msgstr "Alias para -mcpu."
++msgstr "Alias para -mcpu=g14."
+ 
+ #: config/rl78/rl78.opt:93
+ msgid "Assume ES is zero throughout program execution, use ES: for read-only data."
+-msgstr ""
++msgstr "Asume que ES es cero a lo largo de la ejecución del programa, usa ES: para datos de solo lectura."
+ 
+ #: config/stormy16/stormy16.opt:24
+-#, fuzzy
+-#| msgid "Provide libraries for the simulator"
  msgid "Provide libraries for the simulator."
 -msgstr "Provee bibliotecas para el simulador"
 +msgstr "Provee bibliotecas para el simulador."
  
  #: config/arm/arm-tables.opt:25
  msgid "Known ARM CPUs (for use with the -mcpu= and -mtune= options):"
-@@ -11867,7 +10431,7 @@
- #, fuzzy
- #| msgid "Specify an ABI"
+@@ -11864,10 +9831,8 @@
+ msgstr "Dialecto TLS a utilizar:"
+ 
+ #: config/arm/arm.opt:36
+-#, fuzzy
+-#| msgid "Specify an ABI"
  msgid "Specify an ABI."
 -msgstr "Especifica una ABI"
 +msgstr "Especifica una ABI."
  
  #: config/arm/arm.opt:40
  msgid "Known ARM ABIs (for use with the -mabi= option):"
-@@ -11877,25 +10441,25 @@
- #, fuzzy
- #| msgid "Generate a call to abort if a noreturn function returns"
+@@ -11874,28 +9839,20 @@
+ msgstr "ABIs ARM conocidas (para uso con la opción -mabi=):"
+ 
+ #: config/arm/arm.opt:59
+-#, fuzzy
+-#| msgid "Generate a call to abort if a noreturn function returns"
  msgid "Generate a call to abort if a noreturn function returns."
 -msgstr "Genera una llamada a abortar si una funcion noreturn devuelve"
 +msgstr "Genera una llamada a abortar si una funcion noreturn devuelve."
  
  #: config/arm/arm.opt:66
- #, fuzzy
- #| msgid "Pass FP arguments in FP registers"
+-#, fuzzy
+-#| msgid "Pass FP arguments in FP registers"
  msgid "Pass FP arguments in FP registers."
 -msgstr "Pasa los argumentos FP en los registros FP"
 +msgstr "Pasa los argumentos FP en los registros FP."
  
  #: config/arm/arm.opt:70
- #, fuzzy
- #| msgid "Generate APCS conformant stack frames"
+-#, fuzzy
+-#| msgid "Generate APCS conformant stack frames"
  msgid "Generate APCS conformant stack frames."
 -msgstr "Genera marcos de pila que cumplan con APCS"
 +msgstr "Genera marcos de pila que cumplan con APCS."
  
  #: config/arm/arm.opt:74
- #, fuzzy
- #| msgid "Generate re-entrant, PIC code"
+-#, fuzzy
+-#| msgid "Generate re-entrant, PIC code"
  msgid "Generate re-entrant, PIC code."
 -msgstr "Genera código PIC reentrante"
 +msgstr "Genera código PIC reentrante."
  
  #: config/arm/arm.opt:90
  msgid "Generate code in 32 bit ARM state."
-@@ -11905,19 +10469,19 @@
- #, fuzzy
- #| msgid "Thumb: Assume non-static functions may be called from ARM code"
+@@ -11902,22 +9859,16 @@
+ msgstr "Genera código en el estado ARM de 32 bit."
+ 
+ #: config/arm/arm.opt:98
+-#, fuzzy
+-#| msgid "Thumb: Assume non-static functions may be called from ARM code"
  msgid "Thumb: Assume non-static functions may be called from ARM code."
 -msgstr "Thumb: Asume que las funciones no static pueden ser llamadas desde código ARM"
 +msgstr "Thumb: Asume que las funciones no static pueden ser llamadas desde código ARM."
  
  #: config/arm/arm.opt:102
- #, fuzzy
- #| msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
+-#, fuzzy
+-#| msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
  msgid "Thumb: Assume function pointers may go to non-Thumb aware code."
 -msgstr "Thumb: Asume que los punteros de función pueden ir a código no informado sobre Thumb"
 +msgstr "Thumb: Asume que los punteros de función pueden ir a código no informado sobre Thumb."
  
  #: config/arm/arm.opt:110
- #, fuzzy
- #| msgid "Specify if floating point hardware should be used"
+-#, fuzzy
+-#| msgid "Specify if floating point hardware should be used"
  msgid "Specify if floating point hardware should be used."
 -msgstr "Especifica si se debe usar la coma flotante"
-+msgstr "Especifica si se debe usar la coma flotante."
++msgstr "Especifica si se debe usar hardware para coma flotante."
  
  #: config/arm/arm.opt:114
  msgid "Known floating-point ABIs (for use with the -mfloat-abi= option):"
-@@ -11927,13 +10491,13 @@
- #, fuzzy
- #| msgid "Switch on/off MIPS16 ASE on alternating functions for compiler testing"
+@@ -11924,16 +9875,12 @@
+ msgstr "ABIs de coma flotante conocidas (para usar con la opción -mfloat-abi):"
+ 
+ #: config/arm/arm.opt:127
+-#, fuzzy
+-#| msgid "Switch on/off MIPS16 ASE on alternating functions for compiler testing"
  msgid "Switch ARM/Thumb modes on alternating functions for compiler testing."
 -msgstr "Activa/desactiva el ASE de MIPS16 en funciones alternates para pruebas del compilador"
-+msgstr "Activa/desactiva el ASE de MIPS16 en funciones alternates para pruebas del compilador."
++msgstr "Conmuta los modos ARM/Thumb en funciones alternantes para pruebas del compilador."
  
  #: config/arm/arm.opt:131
- #, fuzzy
- #| msgid "Specify the __fp16 floating-point format"
+-#, fuzzy
+-#| msgid "Specify the __fp16 floating-point format"
  msgid "Specify the __fp16 floating-point format."
 -msgstr "Especifica el formato de coma flotante __fp16"
 +msgstr "Especifica el formato de coma flotante __fp16."
  
  #: config/arm/arm.opt:135
  msgid "Known __fp16 formats (for use with the -mfp16-format= option):"
-@@ -11943,73 +10507,73 @@
- #, fuzzy
- #| msgid "Specify the name of the target floating point hardware/format"
+@@ -11940,76 +9887,52 @@
+ msgstr "Formatos __fp16 conocidos (para usar con la opción -mfp16-format=):"
+ 
+ #: config/arm/arm.opt:148
+-#, fuzzy
+-#| msgid "Specify the name of the target floating point hardware/format"
  msgid "Specify the name of the target floating point hardware/format."
 -msgstr "Especifica el nombre del hardware/formato de coma flotante destino"
 +msgstr "Especifica el nombre del hardware/formato de coma flotante destino."
  
  #: config/arm/arm.opt:159
- #, fuzzy
- #| msgid "Generate call insns as indirect calls, if necessary"
+-#, fuzzy
+-#| msgid "Generate call insns as indirect calls, if necessary"
  msgid "Generate call insns as indirect calls, if necessary."
 -msgstr "Genera las llamadas insns como llamadas indirectas, si es necesario"
 +msgstr "Genera las llamadas insns como llamadas indirectas, si es necesario."
  
  #: config/arm/arm.opt:163
- #, fuzzy
- #| msgid "Assume arguments alias no other storage"
+-#, fuzzy
+-#| msgid "Assume arguments alias no other storage"
  msgid "Assume data segments are relative to text segment."
 -msgstr "Asume que los argumentos no son alias de otro almacenamiento"
-+msgstr "Asume que los argumentos no son alias de otro almacenamiento."
++msgstr "Asume que los segmentos de datos son relativos a los segmentos de texto."
  
  #: config/arm/arm.opt:167
- #, fuzzy
- #| msgid "Specify the register to be used for PIC addressing"
+-#, fuzzy
+-#| msgid "Specify the register to be used for PIC addressing"
  msgid "Specify the register to be used for PIC addressing."
 -msgstr "Especifica el registro a usar para el direccionamiento PIC"
 +msgstr "Especifica el registro a usar para el direccionamiento PIC."
  
  #: config/arm/arm.opt:171
- #, fuzzy
- #| msgid "Store function names in object code"
+-#, fuzzy
+-#| msgid "Store function names in object code"
  msgid "Store function names in object code."
 -msgstr "Almacena nombres de función en el código objeto"
 +msgstr "Almacena nombres de función en el código objeto."
  
  #: config/arm/arm.opt:175
- #, fuzzy
- #| msgid "Permit scheduling of a function's prologue sequence"
+-#, fuzzy
+-#| msgid "Permit scheduling of a function's prologue sequence"
  msgid "Permit scheduling of a function's prologue sequence."
 -msgstr "Permite la calendarización de un secuencia de los prólogos de función"
-+msgstr "Permite la planificación de un secuencia de los prólogos de función."
++msgstr "Permite la planificación de la secuencia de prólogo de funciones."
  
  #: config/arm/arm.opt:179 config/rs6000/rs6000.opt:248
- #, fuzzy
- #| msgid "Do not load the PIC register in function prologues"
+-#, fuzzy
+-#| msgid "Do not load the PIC register in function prologues"
  msgid "Do not load the PIC register in function prologues."
 -msgstr "No carga el registro PIC en los prólogos de función"
 +msgstr "No carga el registro PIC en los prólogos de función."
  
  #: config/arm/arm.opt:186
- #, fuzzy
- #| msgid "Specify the minimum bit alignment of structures"
+-#, fuzzy
+-#| msgid "Specify the minimum bit alignment of structures"
  msgid "Specify the minimum bit alignment of structures."
 -msgstr "Especifica la alineación mínima de bit de las estructuras"
 +msgstr "Especifica la alineación mínima de bit de las estructuras."
  
  #: config/arm/arm.opt:190
- #, fuzzy
- #| msgid "Generate code for Thumb state"
+-#, fuzzy
+-#| msgid "Generate code for Thumb state"
  msgid "Generate code for Thumb state."
 -msgstr "Genera código para el estado Thumb"
 +msgstr "Genera código para el estado Thumb."
  
  #: config/arm/arm.opt:194
- #, fuzzy
- #| msgid "Support calls between Thumb and ARM instruction sets"
+-#, fuzzy
+-#| msgid "Support calls between Thumb and ARM instruction sets"
  msgid "Support calls between Thumb and ARM instruction sets."
 -msgstr "Soporte a llamadas entre los conjuntos de instrucciones Thumb y ARM"
-+msgstr "Soporte a llamadas entre los conjuntos de instrucciones Thumb y ARM."
++msgstr "Admite llamadas entre los conjuntos de instrucciones Thumb y ARM."
  
  #: config/arm/arm.opt:198
- #, fuzzy
- #| msgid "Specify thread local storage scheme"
+-#, fuzzy
+-#| msgid "Specify thread local storage scheme"
  msgid "Specify thread local storage scheme."
 -msgstr "Especifica el esquema de almacenamiento local de hilo"
 +msgstr "Especifica el esquema de almacenamiento local de hilo."
  
  #: config/arm/arm.opt:202
- #, fuzzy
- #| msgid "Specify how to access the thread pointer"
+-#, fuzzy
+-#| msgid "Specify how to access the thread pointer"
  msgid "Specify how to access the thread pointer."
 -msgstr "Especifica cómo accessar al puntero de hilo"
-+msgstr "Especifica cómo accessar al puntero de hilo."
++msgstr "Especifica cómo accedar al puntero de hilo."
  
  #: config/arm/arm.opt:206
  msgid "Valid arguments to -mtp=:"
-@@ -12019,19 +10583,19 @@
- #, fuzzy
- #| msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
+@@ -12016,38 +9939,28 @@
+ msgstr "Argumentos válidos para -mtp=:"
+ 
+ #: config/arm/arm.opt:219
+-#, fuzzy
+-#| msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
  msgid "Thumb: Generate (non-leaf) stack frames even if not needed."
 -msgstr "Thumb: Genera marcos de pila (no-hojas) aún si no es necesario"
-+msgstr "Thumb: Genera marcos de pila (no-hojas) aún si no es necesario."
++msgstr "Thumb: Genera marcos de pila (no-hojas) aun si no es necesario."
  
  #: config/arm/arm.opt:223
- #, fuzzy
- #| msgid "Thumb: Generate (leaf) stack frames even if not needed"
+-#, fuzzy
+-#| msgid "Thumb: Generate (leaf) stack frames even if not needed"
  msgid "Thumb: Generate (leaf) stack frames even if not needed."
 -msgstr "Thumb: Genera marcos de pila (hojas) aún si no es necesario"
-+msgstr "Thumb: Genera marcos de pila (hojas) aún si no es necesario."
++msgstr "Thumb: Genera marcos de pila (hojas) aun si no es necesario."
  
  #: config/arm/arm.opt:227 config/mn10300/mn10300.opt:42
- #, fuzzy
- #| msgid "Tune code for the given processor"
+-#, fuzzy
+-#| msgid "Tune code for the given processor"
  msgid "Tune code for the given processor."
 -msgstr "Ajusta el código para el procesador dado"
 +msgstr "Ajusta el código para el procesador dado."
  
  #: config/arm/arm.opt:231
  msgid "Print CPU tuning information as comment in assembler file.  This is"
-@@ -12041,13 +10605,13 @@
- #, fuzzy
- #| msgid "Use Neon quad-word (rather than double-word) registers for vectorization"
+-msgstr ""
++msgstr "Imprime información sobre el ajuste de la CPU como comentario en el fichero ensamblador.  Esto es"
+ 
+ #: config/arm/arm.opt:242
+-#, fuzzy
+-#| msgid "Use Neon quad-word (rather than double-word) registers for vectorization"
  msgid "Use Neon quad-word (rather than double-word) registers for vectorization."
 -msgstr "Usa los registros quad-word Neon (en lugar de double-word) para la vectorización"
 +msgstr "Usa los registros quad-word Neon (en lugar de double-word) para la vectorización."
  
  #: config/arm/arm.opt:246
- #, fuzzy
- #| msgid "Use Neon double-word (rather than quad-word) registers for vectorization"
+-#, fuzzy
+-#| msgid "Use Neon double-word (rather than quad-word) registers for vectorization"
  msgid "Use Neon double-word (rather than quad-word) registers for vectorization."
 -msgstr "Usa los registros double-word Neon (en lugar de quad-word) para la vectorización"
 +msgstr "Usa los registros double-word Neon (en lugar de quad-word) para la vectorización."
  
  #: config/arm/arm.opt:250
  msgid "Only generate absolute relocations on word sized values."
-@@ -12090,165 +10654,171 @@
- #, fuzzy
- #| msgid "Use hardware FP"
+@@ -12055,15 +9968,15 @@
+ 
+ #: config/arm/arm.opt:254
+ msgid "Generate IT blocks appropriate for ARMv8."
+-msgstr ""
++msgstr "Genera bloques IT apropiados para el ARMv8."
+ 
+ #: config/arm/arm.opt:258
+ msgid "Use the old RTX costing tables (transitional)."
+-msgstr ""
++msgstr "Usa las tablas de coste RTX antiguas (transicional)."
+ 
+ #: config/arm/arm.opt:262
+ msgid "Use the new generic RTX cost tables if new core-specific cost table not available (transitional)."
+-msgstr ""
++msgstr "Usa las nuevas tablas de coste RTX genéricas si no hay tablas de coste específicas del núcleo disponibles (transicional)."
+ 
+ #: config/arm/arm.opt:266
+ msgid "Avoid overlapping destination and address registers on LDRD instructions"
+@@ -12075,180 +9988,136 @@
+ 
+ #: config/arm/arm.opt:275
+ msgid "Use Neon to perform 64-bits operations rather than core registers."
+-msgstr ""
++msgstr "Usa Neon para realizar operaciones de 64 bits en lugar de registros del núcleo."
+ 
+ #: config/arm/arm.opt:279
+ msgid "Assume loading data from flash is slower than fetching instructions."
+-msgstr ""
++msgstr "Asume que cargar datos desde flash es más lento que las instrucciones de extracción."
+ 
+ #: config/arm/arm.opt:283
+ msgid "Assume unified syntax for inline assembly code."
+-msgstr ""
++msgstr "Asume sintaxis unificada para código ensamblador en línea."
+ 
+ #: config/sparc/sparc.opt:30 config/sparc/sparc.opt:34
+ #: config/visium/visium.opt:37
+-#, fuzzy
+-#| msgid "Use hardware FP"
  msgid "Use hardware FP."
 -msgstr "Usa FP de hardware"
 +msgstr "Usa FP de hardware."
  
  #: config/sparc/sparc.opt:38 config/visium/visium.opt:41
- #, fuzzy
- #| msgid "Do not use hardware FP"
+-#, fuzzy
+-#| msgid "Do not use hardware FP"
  msgid "Do not use hardware FP."
 -msgstr "No usa FP de hardware"
 +msgstr "No usa FP de hardware."
  
  #: config/sparc/sparc.opt:42
- #, fuzzy
- #| msgid "Use flat register window model"
+-#, fuzzy
+-#| msgid "Use flat register window model"
  msgid "Use flat register window model."
 -msgstr "Usar el modelo plano de ventana de registro"
 +msgstr "Usar el modelo plano de ventana de registro."
  
  #: config/sparc/sparc.opt:46
- #, fuzzy
- #| msgid "Assume possible double misalignment"
+-#, fuzzy
+-#| msgid "Assume possible double misalignment"
  msgid "Assume possible double misalignment."
 -msgstr "Asume que la desalineación de double es posible"
 +msgstr "Asume que la desalineación de double es posible."
  
  #: config/sparc/sparc.opt:50
- #, fuzzy
- #| msgid "Use ABI reserved registers"
+-#, fuzzy
+-#| msgid "Use ABI reserved registers"
  msgid "Use ABI reserved registers."
 -msgstr "Usa los registros ABI reservados"
 +msgstr "Usa los registros ABI reservados."
  
  #: config/sparc/sparc.opt:54
- #, fuzzy
- #| msgid "Use hardware quad FP instructions"
+-#, fuzzy
+-#| msgid "Use hardware quad FP instructions"
  msgid "Use hardware quad FP instructions."
 -msgstr "Usa instrucciones de FP quad de hardware"
 +msgstr "Usa instrucciones de FP quad de hardware."
  
  #: config/sparc/sparc.opt:58
- #, fuzzy
- #| msgid "Do not use hardware quad fp instructions"
+-#, fuzzy
+-#| msgid "Do not use hardware quad fp instructions"
  msgid "Do not use hardware quad fp instructions."
 -msgstr "No usa instrucciones de fp quad de hardware"
 +msgstr "No usa instrucciones de fp quad de hardware."
  
  #: config/sparc/sparc.opt:62
- #, fuzzy
- #| msgid "Compile for V8+ ABI"
+-#, fuzzy
+-#| msgid "Compile for V8+ ABI"
  msgid "Compile for V8+ ABI."
 -msgstr "Compila para el ABI V8+"
 +msgstr "Compila para el ABI V8+."
  
  #: config/sparc/sparc.opt:66
- #, fuzzy
- #| msgid "Use UltraSPARC Visual Instruction Set version 1.0 extensions"
+-#, fuzzy
+-#| msgid "Use UltraSPARC Visual Instruction Set version 1.0 extensions"
  msgid "Use UltraSPARC Visual Instruction Set version 1.0 extensions."
 -msgstr "Usa las extensiones del Conjunto de Instrucciones Visuales de UltraSPARC versión 1.0"
 +msgstr "Usa las extensiones del Conjunto de Instrucciones Visuales de UltraSPARC versión 1.0."
  
  #: config/sparc/sparc.opt:70
- #, fuzzy
- #| msgid "Use UltraSPARC Visual Instruction Set version 2.0 extensions"
+-#, fuzzy
+-#| msgid "Use UltraSPARC Visual Instruction Set version 2.0 extensions"
  msgid "Use UltraSPARC Visual Instruction Set version 2.0 extensions."
 -msgstr "Usa las extensiones del Conjunto de Instrucciones Visuales de UltraSPARC versión 2.0"
 +msgstr "Usa las extensiones del Conjunto de Instrucciones Visuales de UltraSPARC versión 2.0."
  
  #: config/sparc/sparc.opt:74
- #, fuzzy
- #| msgid "Use UltraSPARC Visual Instruction Set version 3.0 extensions"
+-#, fuzzy
+-#| msgid "Use UltraSPARC Visual Instruction Set version 3.0 extensions"
  msgid "Use UltraSPARC Visual Instruction Set version 3.0 extensions."
 -msgstr "Usa las extensiones del Conjunto de Instrucciones Visuales de UltraSPARC versión 3.0"
 +msgstr "Usa las extensiones del Conjunto de Instrucciones Visuales de UltraSPARC versión 3.0."
  
  #: config/sparc/sparc.opt:78
- #, fuzzy
-+#| msgid "Use UltraSPARC Visual Instruction Set version 1.0 extensions"
+-#, fuzzy
+-#| msgid "Use UltraSPARC Fused Multiply-Add extensions"
 +msgid "Use UltraSPARC Visual Instruction Set version 4.0 extensions."
-+msgstr "Usa las extensiones del Conjunto de Instrucciones Visuales de UltraSPARC versión 1.0."
++msgstr "Usa las extensiones del Conjunto de Instrucciones Visuales de UltraSPARC versión 4.0."
 +
 +#: config/sparc/sparc.opt:82
-+#, fuzzy
- #| msgid "Use UltraSPARC Fused Multiply-Add extensions"
  msgid "Use UltraSPARC Compare-and-Branch extensions."
 -msgstr "Usa las extensiones Multiplicación-Adición de Corto Circuito de UltraSPARC"
-+msgstr "Usa las extensiones Multiplicación-Adición de Corto Circuito de UltraSPARC."
++msgstr "Usa las extensiones Comparación-y-Ramificación de UltraSPARC."
  
 -#: config/sparc/sparc.opt:82
+-#, fuzzy
+-#| msgid "Use UltraSPARC Fused Multiply-Add extensions"
 +#: config/sparc/sparc.opt:86
- #, fuzzy
- #| msgid "Use UltraSPARC Fused Multiply-Add extensions"
  msgid "Use UltraSPARC Fused Multiply-Add extensions."
 -msgstr "Usa las extensiones Multiplicación-Adición de Corto Circuito de UltraSPARC"
 +msgstr "Usa las extensiones Multiplicación-Adición de Corto Circuito de UltraSPARC."
  
 -#: config/sparc/sparc.opt:86
+-#, fuzzy
+-#| msgid "Use UltraSPARC Population-Count instruction"
 +#: config/sparc/sparc.opt:90
- #, fuzzy
- #| msgid "Use UltraSPARC Population-Count instruction"
  msgid "Use UltraSPARC Population-Count instruction."
 -msgstr "Usa la instrucción Población-Cuenta de UltraSPARC"
 +msgstr "Usa la instrucción Población-Cuenta de UltraSPARC."
  
 -#: config/sparc/sparc.opt:90
+-#, fuzzy
+-#| msgid "Pointers are 64-bit"
 +#: config/sparc/sparc.opt:94
- #, fuzzy
- #| msgid "Pointers are 64-bit"
  msgid "Pointers are 64-bit."
 -msgstr "Los punteros son de 64-bit"
 +msgstr "Los punteros son de 64-bit."
  
 -#: config/sparc/sparc.opt:94
+-#, fuzzy
+-#| msgid "Pointers are 32-bit"
 +#: config/sparc/sparc.opt:98
- #, fuzzy
- #| msgid "Pointers are 32-bit"
  msgid "Pointers are 32-bit."
 -msgstr "Los punteros son de 32-bit"
 +msgstr "Los punteros son de 32-bit."
  
 -#: config/sparc/sparc.opt:98
+-#, fuzzy
+-#| msgid "Use 64-bit ABI"
 +#: config/sparc/sparc.opt:102
- #, fuzzy
- #| msgid "Use 64-bit ABI"
  msgid "Use 64-bit ABI."
 -msgstr "Usa la ABI de 64-bit"
 +msgstr "Usa la ABI de 64-bit."
  
 -#: config/sparc/sparc.opt:102
+-#, fuzzy
+-#| msgid "Use 32-bit ABI"
 +#: config/sparc/sparc.opt:106
- #, fuzzy
- #| msgid "Use 32-bit ABI"
  msgid "Use 32-bit ABI."
 -msgstr "Usa la ABI de 32-bit"
 +msgstr "Usa la ABI de 32-bit."
  
 -#: config/sparc/sparc.opt:106
+-#, fuzzy
+-#| msgid "Use stack bias"
 +#: config/sparc/sparc.opt:110
- #, fuzzy
- #| msgid "Use stack bias"
  msgid "Use stack bias."
 -msgstr "Usa la tendencia de la pila"
 +msgstr "Usa la tendencia de la pila."
  
 -#: config/sparc/sparc.opt:110
+-#, fuzzy
+-#| msgid "Use structs on stronger alignment for double-word copies"
 +#: config/sparc/sparc.opt:114
- #, fuzzy
- #| msgid "Use structs on stronger alignment for double-word copies"
  msgid "Use structs on stronger alignment for double-word copies."
 -msgstr "Usa structs en la alineación más fuerte para copias double-word"
 +msgstr "Usa structs en la alineación más fuerte para copias double-word."
  
 -#: config/sparc/sparc.opt:114
+-#, fuzzy
+-#| msgid "Optimize tail call instructions in assembler and linker"
 +#: config/sparc/sparc.opt:118
- #, fuzzy
- #| msgid "Optimize tail call instructions in assembler and linker"
  msgid "Optimize tail call instructions in assembler and linker."
 -msgstr "Optimiza las instrucciones de la llamada del extremo en el ensamblador y el enlazador"
 +msgstr "Optimiza las instrucciones de la llamada del extremo en el ensamblador y el enlazador."
@@ -33711,28 +43081,29 @@ Index: gcc/po/es.po
 -#: config/sparc/sparc.opt:118
 +#: config/sparc/sparc.opt:122
  msgid "Do not generate code that can only run in supervisor mode (default)."
- msgstr ""
+-msgstr ""
++msgstr "No genera código que solo pueda correr en modo supervisor (predeterminado)."
  
 -#: config/sparc/sparc.opt:122 config/visium/visium.opt:45
+-#, fuzzy
+-#| msgid "Use features of and schedule code for given CPU"
 +#: config/sparc/sparc.opt:126 config/visium/visium.opt:45
- #, fuzzy
- #| msgid "Use features of and schedule code for given CPU"
  msgid "Use features of and schedule code for given CPU."
 -msgstr "Usa las características y el código de calendarizador para el CPU dado"
 +msgstr "Usa las características y el código de planificador para el CPU dado."
  
 -#: config/sparc/sparc.opt:199
+-#, fuzzy
+-#| msgid "Use given SPARC-V9 code model"
 +#: config/sparc/sparc.opt:206
- #, fuzzy
- #| msgid "Use given SPARC-V9 code model"
  msgid "Use given SPARC-V9 code model."
 -msgstr "Usa el modelo de código del SPARC-V9 dado"
 +msgstr "Usa el modelo de código del SPARC-V9 dado."
  
 -#: config/sparc/sparc.opt:203
+-#, fuzzy
+-#| msgid "Enable debug output"
 +#: config/sparc/sparc.opt:210
- #, fuzzy
- #| msgid "Enable debug output"
  msgid "Enable debug output."
 -msgstr "Activa la salida de depuración"
 +msgstr "Activa la salida de depuración."
@@ -33760,7 +43131,7 @@ Index: gcc/po/es.po
  msgid "Specify the memory model in effect for the program."
  msgstr "Especifica el modelo de memoria en efecto para el programa."
  
-@@ -12256,13 +10826,13 @@
+@@ -12256,13 +10125,13 @@
  #, fuzzy
  #| msgid "Generate 64-bit code"
  msgid "Generate 64-bit code."
@@ -33776,7 +43147,7 @@ Index: gcc/po/es.po
  
  #: config/rs6000/rs6000-tables.opt:24
  msgid "Known CPUs (for use with the -mcpu= and -mtune= options):"
-@@ -12272,199 +10842,199 @@
+@@ -12272,199 +10141,199 @@
  #, fuzzy
  #| msgid "Preserve the PowerPC 476's link stack by matching up a blr with the bcl/bl insns used for GOT accesses"
  msgid "Preserve the PowerPC 476's link stack by matching up a blr with the bcl/bl insns used for GOT accesses."
@@ -34009,7 +43380,7 @@ Index: gcc/po/es.po
  
  #: config/rs6000/rs6000.opt:279 config/rs6000/rs6000.opt:283
  msgid "Generate software reciprocal divide and square root for better throughput."
-@@ -12478,145 +11048,145 @@
+@@ -12478,145 +10347,145 @@
  #, fuzzy
  #| msgid "Do not place floating point constants in TOC"
  msgid "Do not place floating point constants in TOC."
@@ -34179,7 +43550,7 @@ Index: gcc/po/es.po
  
  #: config/rs6000/rs6000.opt:397
  msgid "using darwin64 ABI"
-@@ -12638,49 +11208,49 @@
+@@ -12638,49 +10507,49 @@
  #, fuzzy
  #| msgid "-mcpu=\tUse features of and schedule code for given CPU"
  msgid "-mcpu=\tUse features of and schedule code for given CPU."
@@ -34237,7 +43608,7 @@ Index: gcc/po/es.po
  
  #: config/rs6000/rs6000.opt:454
  msgid "Valid arguments to -mfloat-gprs=:"
-@@ -12690,25 +11260,31 @@
+@@ -12690,25 +10559,31 @@
  #, fuzzy
  #| msgid "-mlong-double-<n>\tSpecify size of long double (64 or 128 bits)"
  msgid "-mlong-double-<n>\tSpecify size of long double (64 or 128 bits)."
@@ -34273,7 +43644,7 @@ Index: gcc/po/es.po
  
  #: config/rs6000/rs6000.opt:490
  msgid "Valid arguments to -malign-:"
-@@ -12718,31 +11294,31 @@
+@@ -12718,31 +10593,31 @@
  #, fuzzy
  #| msgid "Specify scheduling priority for dispatch slot restricted insns"
  msgid "Specify scheduling priority for dispatch slot restricted insns."
@@ -34310,7 +43681,7 @@ Index: gcc/po/es.po
  
  #: config/rs6000/rs6000.opt:538
  msgid "Specify Xilinx FPU."
-@@ -12756,7 +11332,7 @@
+@@ -12756,7 +10631,7 @@
  #, fuzzy
  #| msgid "Control whether we save the TOC in the prologue for indirect calls or generate the save inline"
  msgid "Control whether we save the TOC in the prologue for indirect calls or generate the save inline."
@@ -34319,7 +43690,7 @@ Index: gcc/po/es.po
  
  #: config/rs6000/rs6000.opt:550
  msgid "Allow 128-bit integers in VSX registers."
-@@ -12770,7 +11346,7 @@
+@@ -12770,7 +10645,7 @@
  #, fuzzy
  #| msgid "Align destination of the string operations"
  msgid "Allow sign extension in fusion operations."
@@ -34328,7 +43699,7 @@ Index: gcc/po/es.po
  
  #: config/rs6000/rs6000.opt:562
  msgid "Use/do not use vector and scalar instructions added in ISA 2.07."
-@@ -12788,13 +11364,13 @@
+@@ -12788,13 +10663,13 @@
  #, fuzzy
  #| msgid "Use vector/scalar (VSX) instructions"
  msgid "Use ISA 2.07 transactional memory (HTM) instructions."
@@ -34344,7 +43715,7 @@ Index: gcc/po/es.po
  
  #: config/rs6000/rs6000.opt:582
  msgid "Generate the quad word memory atomic instructions (lqarx/stqcx)."
-@@ -12824,37 +11400,55 @@
+@@ -12824,37 +10699,55 @@
  msgid "Fuse certain operations together for better performance on power9."
  msgstr ""
  
@@ -34410,7 +43781,7 @@ Index: gcc/po/es.po
  msgid "Enable/disable default conversions between __float128 & long double."
  msgstr ""
  
-@@ -12862,37 +11456,37 @@
+@@ -12862,37 +10755,37 @@
  #, fuzzy
  #| msgid "Select ABI calling convention"
  msgid "Select ABI calling convention."
@@ -34454,7 +43825,7 @@ Index: gcc/po/es.po
  
  #: config/rs6000/sysv4.opt:82 config/rs6000/sysv4.opt:86
  #: config/rs6000/sysv4.opt:95 config/rs6000/sysv4.opt:137
-@@ -12900,211 +11494,211 @@
+@@ -12900,211 +10793,211 @@
  #, fuzzy
  #| msgid "no description yet"
  msgid "no description yet."
@@ -34701,7 +44072,7 @@ Index: gcc/po/es.po
  
  #: config/tilepro/tilepro.opt:23
  msgid "Compile with 32 bit longs and pointers, which is the only supported"
-@@ -13114,7 +11708,7 @@
+@@ -13114,7 +11007,7 @@
  #, fuzzy
  #| msgid "-mcpu=CPU\tUse features of and schedule code for given CPU"
  msgid "-mcpu=CPU\tUse features of and schedule code for given CPU."
@@ -34710,7 +44081,7 @@ Index: gcc/po/es.po
  
  #: config/tilepro/tilepro.opt:32
  msgid "Known TILEPro CPUs (for use with the -mcpu= option):"
-@@ -13124,37 +11718,37 @@
+@@ -13124,37 +11017,37 @@
  #, fuzzy
  #| msgid "Enable multiply instructions"
  msgid "Enable multiply instructions."
@@ -34754,7 +44125,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/elf.opt:30
  msgid "Name of system library to link against."
-@@ -13176,7 +11770,7 @@
+@@ -13176,7 +11069,7 @@
  #, fuzzy
  #| msgid "Enable clip instructions"
  msgid "Enable MUL instructions."
@@ -34763,7 +44134,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:43
  msgid "Enable MULX instructions, assume fast shifter."
-@@ -13186,19 +11780,19 @@
+@@ -13186,19 +11079,19 @@
  #, fuzzy
  #| msgid "Use the software emulation for divides (default)"
  msgid "Use table based fast divide (default at -O3)."
@@ -34786,7 +44157,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:59
  msgid "Volatile memory accesses do not use I/O load/store instructions."
-@@ -13208,7 +11802,7 @@
+@@ -13208,7 +11101,7 @@
  #, fuzzy
  #| msgid "unusual TP-relative address"
  msgid "Enable/disable GP-relative addressing."
@@ -34795,7 +44166,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:67
  msgid "Valid options for GP-relative addressing (for -mgpopt):"
-@@ -13227,7 +11821,7 @@
+@@ -13227,7 +11120,7 @@
  #, fuzzy
  #| msgid "Use big-endian byte order"
  msgid "Use big-endian byte order."
@@ -34804,7 +44175,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:98 config/c6x/c6x.opt:34 config/mep/mep.opt:86
  #: config/mips/mips.opt:138 config/tilegx/tilegx.opt:49
-@@ -13234,7 +11828,7 @@
+@@ -13234,7 +11127,7 @@
  #, fuzzy
  #| msgid "Use little-endian byte order"
  msgid "Use little-endian byte order."
@@ -34813,7 +44184,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:102
  msgid "Floating point custom instruction configuration name."
-@@ -13244,7 +11838,7 @@
+@@ -13244,7 +11137,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the ftruncds custom instruction."
@@ -34822,7 +44193,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:110
  msgid "Integer id (N) of ftruncds custom instruction."
-@@ -13254,7 +11848,7 @@
+@@ -13254,7 +11147,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fextsd custom instruction."
@@ -34831,7 +44202,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:118
  msgid "Integer id (N) of fextsd custom instruction."
-@@ -13264,7 +11858,7 @@
+@@ -13264,7 +11157,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fixdu custom instruction."
@@ -34840,7 +44211,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:126
  msgid "Integer id (N) of fixdu custom instruction."
-@@ -13274,7 +11868,7 @@
+@@ -13274,7 +11167,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fixdi custom instruction."
@@ -34849,7 +44220,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:134
  msgid "Integer id (N) of fixdi custom instruction."
-@@ -13284,7 +11878,7 @@
+@@ -13284,7 +11177,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fixsu custom instruction."
@@ -34858,7 +44229,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:142
  msgid "Integer id (N) of fixsu custom instruction."
-@@ -13294,7 +11888,7 @@
+@@ -13294,7 +11187,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fixsi custom instruction."
@@ -34867,7 +44238,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:150
  msgid "Integer id (N) of fixsi custom instruction."
-@@ -13304,7 +11898,7 @@
+@@ -13304,7 +11197,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the floatud custom instruction."
@@ -34876,7 +44247,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:158
  msgid "Integer id (N) of floatud custom instruction."
-@@ -13314,7 +11908,7 @@
+@@ -13314,7 +11207,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the floatid custom instruction."
@@ -34885,7 +44256,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:166
  msgid "Integer id (N) of floatid custom instruction."
-@@ -13324,7 +11918,7 @@
+@@ -13324,7 +11217,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the floatus custom instruction."
@@ -34894,7 +44265,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:174
  msgid "Integer id (N) of floatus custom instruction."
-@@ -13334,7 +11928,7 @@
+@@ -13334,7 +11227,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the floatis custom instruction."
@@ -34903,7 +44274,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:182
  msgid "Integer id (N) of floatis custom instruction."
-@@ -13344,7 +11938,7 @@
+@@ -13344,7 +11237,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fcmpned custom instruction."
@@ -34912,7 +44283,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:190
  msgid "Integer id (N) of fcmpned custom instruction."
-@@ -13354,7 +11948,7 @@
+@@ -13354,7 +11247,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fcmpeqd custom instruction."
@@ -34921,7 +44292,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:198
  msgid "Integer id (N) of fcmpeqd custom instruction."
-@@ -13364,7 +11958,7 @@
+@@ -13364,7 +11257,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fcmpged custom instruction."
@@ -34930,7 +44301,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:206
  msgid "Integer id (N) of fcmpged custom instruction."
-@@ -13374,7 +11968,7 @@
+@@ -13374,7 +11267,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fcmpgtd custom instruction."
@@ -34939,7 +44310,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:214
  msgid "Integer id (N) of fcmpgtd custom instruction."
-@@ -13384,7 +11978,7 @@
+@@ -13384,7 +11277,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fcmpled custom instruction."
@@ -34948,7 +44319,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:222
  msgid "Integer id (N) of fcmpled custom instruction."
-@@ -13394,7 +11988,7 @@
+@@ -13394,7 +11287,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fcmpltd custom instruction."
@@ -34957,7 +44328,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:230
  msgid "Integer id (N) of fcmpltd custom instruction."
-@@ -13404,7 +11998,7 @@
+@@ -13404,7 +11297,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the flogd custom instruction."
@@ -34966,7 +44337,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:238
  msgid "Integer id (N) of flogd custom instruction."
-@@ -13414,7 +12008,7 @@
+@@ -13414,7 +11307,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fexpd custom instruction."
@@ -34975,7 +44346,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:246
  msgid "Integer id (N) of fexpd custom instruction."
-@@ -13424,7 +12018,7 @@
+@@ -13424,7 +11317,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fatand custom instruction."
@@ -34984,7 +44355,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:254
  msgid "Integer id (N) of fatand custom instruction."
-@@ -13434,7 +12028,7 @@
+@@ -13434,7 +11327,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the ftand custom instruction."
@@ -34993,7 +44364,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:262
  msgid "Integer id (N) of ftand custom instruction."
-@@ -13444,7 +12038,7 @@
+@@ -13444,7 +11337,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fsind custom instruction."
@@ -35002,7 +44373,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:270
  msgid "Integer id (N) of fsind custom instruction."
-@@ -13454,7 +12048,7 @@
+@@ -13454,7 +11347,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fcosd custom instruction."
@@ -35011,7 +44382,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:278
  msgid "Integer id (N) of fcosd custom instruction."
-@@ -13464,7 +12058,7 @@
+@@ -13464,7 +11357,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fsqrtd custom instruction."
@@ -35020,7 +44391,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:286
  msgid "Integer id (N) of fsqrtd custom instruction."
-@@ -13474,7 +12068,7 @@
+@@ -13474,7 +11367,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fabsd custom instruction."
@@ -35029,7 +44400,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:294
  msgid "Integer id (N) of fabsd custom instruction."
-@@ -13484,7 +12078,7 @@
+@@ -13484,7 +11377,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fnegd custom instruction."
@@ -35038,7 +44409,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:302
  msgid "Integer id (N) of fnegd custom instruction."
-@@ -13494,7 +12088,7 @@
+@@ -13494,7 +11387,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fmaxd custom instruction."
@@ -35047,7 +44418,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:310
  msgid "Integer id (N) of fmaxd custom instruction."
-@@ -13504,7 +12098,7 @@
+@@ -13504,7 +11397,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fmind custom instruction."
@@ -35056,7 +44427,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:318
  msgid "Integer id (N) of fmind custom instruction."
-@@ -13514,7 +12108,7 @@
+@@ -13514,7 +11407,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fdivd custom instruction."
@@ -35065,7 +44436,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:326
  msgid "Integer id (N) of fdivd custom instruction."
-@@ -13524,7 +12118,7 @@
+@@ -13524,7 +11417,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fmuld custom instruction."
@@ -35074,7 +44445,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:334
  msgid "Integer id (N) of fmuld custom instruction."
-@@ -13534,7 +12128,7 @@
+@@ -13534,7 +11427,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fsubd custom instruction."
@@ -35083,7 +44454,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:342
  msgid "Integer id (N) of fsubd custom instruction."
-@@ -13544,7 +12138,7 @@
+@@ -13544,7 +11437,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the faddd custom instruction."
@@ -35092,7 +44463,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:350
  msgid "Integer id (N) of faddd custom instruction."
-@@ -13554,7 +12148,7 @@
+@@ -13554,7 +11447,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fcmpnes custom instruction."
@@ -35101,7 +44472,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:358
  msgid "Integer id (N) of fcmpnes custom instruction."
-@@ -13564,7 +12158,7 @@
+@@ -13564,7 +11457,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fcmpeqs custom instruction."
@@ -35110,7 +44481,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:366
  msgid "Integer id (N) of fcmpeqs custom instruction."
-@@ -13574,7 +12168,7 @@
+@@ -13574,7 +11467,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fcmpges custom instruction."
@@ -35119,7 +44490,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:374
  msgid "Integer id (N) of fcmpges custom instruction."
-@@ -13584,7 +12178,7 @@
+@@ -13584,7 +11477,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fcmpgts custom instruction."
@@ -35128,7 +44499,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:382
  msgid "Integer id (N) of fcmpgts custom instruction."
-@@ -13594,7 +12188,7 @@
+@@ -13594,7 +11487,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fcmples custom instruction."
@@ -35137,7 +44508,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:390
  msgid "Integer id (N) of fcmples custom instruction."
-@@ -13604,7 +12198,7 @@
+@@ -13604,7 +11497,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fcmplts custom instruction."
@@ -35146,7 +44517,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:398
  msgid "Integer id (N) of fcmplts custom instruction."
-@@ -13614,7 +12208,7 @@
+@@ -13614,7 +11507,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the flogs custom instruction."
@@ -35155,7 +44526,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:406
  msgid "Integer id (N) of flogs custom instruction."
-@@ -13624,7 +12218,7 @@
+@@ -13624,7 +11517,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fexps custom instruction."
@@ -35164,7 +44535,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:414
  msgid "Integer id (N) of fexps custom instruction."
-@@ -13634,7 +12228,7 @@
+@@ -13634,7 +11527,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fatans custom instruction."
@@ -35173,7 +44544,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:422
  msgid "Integer id (N) of fatans custom instruction."
-@@ -13644,7 +12238,7 @@
+@@ -13644,7 +11537,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the ftans custom instruction."
@@ -35182,7 +44553,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:430
  msgid "Integer id (N) of ftans custom instruction."
-@@ -13654,7 +12248,7 @@
+@@ -13654,7 +11547,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fsins custom instruction."
@@ -35191,7 +44562,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:438
  msgid "Integer id (N) of fsins custom instruction."
-@@ -13664,7 +12258,7 @@
+@@ -13664,7 +11557,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fcoss custom instruction."
@@ -35200,7 +44571,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:446
  msgid "Integer id (N) of fcoss custom instruction."
-@@ -13674,7 +12268,7 @@
+@@ -13674,7 +11567,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fsqrts custom instruction."
@@ -35209,7 +44580,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:454
  msgid "Integer id (N) of fsqrts custom instruction."
-@@ -13684,7 +12278,7 @@
+@@ -13684,7 +11577,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fabss custom instr."
@@ -35218,7 +44589,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:462
  msgid "Integer id (N) of fabss custom instruction."
-@@ -13694,7 +12288,7 @@
+@@ -13694,7 +11587,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fnegs custom instruction."
@@ -35227,7 +44598,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:470
  msgid "Integer id (N) of fnegs custom instruction."
-@@ -13704,7 +12298,7 @@
+@@ -13704,7 +11597,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fmaxs custom instruction."
@@ -35236,7 +44607,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:478
  msgid "Integer id (N) of fmaxs custom instruction."
-@@ -13714,7 +12308,7 @@
+@@ -13714,7 +11607,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fmins custom instruction."
@@ -35245,7 +44616,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:486
  msgid "Integer id (N) of fmins custom instruction."
-@@ -13724,7 +12318,7 @@
+@@ -13724,7 +11617,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fdivs custom instruction."
@@ -35254,7 +44625,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:494
  msgid "Integer id (N) of fdivs custom instruction."
-@@ -13734,7 +12328,7 @@
+@@ -13734,7 +11627,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fmuls custom instruction."
@@ -35263,7 +44634,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:502
  msgid "Integer id (N) of fmuls custom instruction."
-@@ -13744,7 +12338,7 @@
+@@ -13744,7 +11637,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fsubs custom instruction."
@@ -35272,7 +44643,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:510
  msgid "Integer id (N) of fsubs custom instruction."
-@@ -13754,7 +12348,7 @@
+@@ -13754,7 +11647,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fadds custom instruction."
@@ -35281,7 +44652,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:518
  msgid "Integer id (N) of fadds custom instruction."
-@@ -13764,7 +12358,7 @@
+@@ -13764,7 +11657,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the frdy custom instruction."
@@ -35290,7 +44661,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:526
  msgid "Integer id (N) of frdy custom instruction."
-@@ -13774,7 +12368,7 @@
+@@ -13774,7 +11667,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the frdxhi custom instruction."
@@ -35299,7 +44670,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:534
  msgid "Integer id (N) of frdxhi custom instruction."
-@@ -13784,7 +12378,7 @@
+@@ -13784,7 +11677,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the frdxlo custom instruction."
@@ -35308,7 +44679,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:542
  msgid "Integer id (N) of frdxlo custom instruction."
-@@ -13794,7 +12388,7 @@
+@@ -13794,7 +11687,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fwry custom instruction."
@@ -35317,7 +44688,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:550
  msgid "Integer id (N) of fwry custom instruction."
-@@ -13804,7 +12398,7 @@
+@@ -13804,7 +11697,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the fwrx custom instruction."
@@ -35326,7 +44697,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:558
  msgid "Integer id (N) of fwrx custom instruction."
-@@ -13814,7 +12408,7 @@
+@@ -13814,7 +11707,7 @@
  #, fuzzy
  #| msgid "Do not use the callt instruction"
  msgid "Do not use the round custom instruction."
@@ -35335,7 +44706,7 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.opt:566
  msgid "Integer id (N) of round custom instruction."
-@@ -13828,13 +12422,13 @@
+@@ -13828,13 +11721,13 @@
  #, fuzzy
  #| msgid "Enable saturation instructions"
  msgid "Enable generation of R2 BMX instructions."
@@ -35351,7 +44722,7 @@ Index: gcc/po/es.po
  
  #: config/rx/rx.opt:29
  msgid "Store doubles in 64 bits."
-@@ -13910,7 +12504,7 @@
+@@ -13910,7 +11803,7 @@
  #, fuzzy
  #| msgid "Enable the use of the short load instructions"
  msgid "Enable the use of the LRA register allocator."
@@ -35360,7 +44731,7 @@ Index: gcc/po/es.po
  
  #: config/rx/rx.opt:151
  msgid "Enables or disables the use of the SMOVF, SMOVB, SMOVU, SUNTIL, SWHILE and RMPA instructions.  Enabled by default."
-@@ -13920,37 +12514,37 @@
+@@ -13920,37 +11813,37 @@
  #, fuzzy
  #| msgid "Always generate long calls"
  msgid "Always use JSR, never BSR, for calls."
@@ -35404,7 +44775,7 @@ Index: gcc/po/es.po
  
  #: config/visium/visium.opt:73
  #, fuzzy
-@@ -13970,49 +12564,49 @@
+@@ -13970,49 +11863,49 @@
  #, fuzzy
  #| msgid "Pass -z text to linker"
  msgid "Pass -z text to linker."
@@ -35462,7 +44833,7 @@ Index: gcc/po/es.po
  
  #: config/microblaze/microblaze.opt:72
  msgid "Use reorder instructions (swap and byte reversed load/store) (default)."
-@@ -14022,19 +12616,19 @@
+@@ -14022,19 +11915,19 @@
  #, fuzzy
  #| msgid "Use the software emulation for divides (default)"
  msgid "Use the software emulation for divides (default)."
@@ -35485,7 +44856,7 @@ Index: gcc/po/es.po
  
  #: config/microblaze/microblaze.opt:87
  #, c-format
-@@ -14045,13 +12639,13 @@
+@@ -14045,13 +11938,13 @@
  #, fuzzy
  #| msgid "Check for stack overflow at runtime"
  msgid "Check for stack overflow at runtime."
@@ -35501,7 +44872,7 @@ Index: gcc/po/es.po
  
  #: config/microblaze/microblaze.opt:95
  #, c-format
-@@ -14062,49 +12656,49 @@
+@@ -14062,49 +11955,49 @@
  #, fuzzy
  #| msgid "Clear the BSS to zero and place zero initialized in BSS"
  msgid "Clear the BSS to zero and place zero initialized in BSS."
@@ -35559,7 +44930,7 @@ Index: gcc/po/es.po
  
  #: config/microblaze/microblaze.opt:128
  #, fuzzy
-@@ -14116,97 +12710,97 @@
+@@ -14116,97 +12009,97 @@
  #, fuzzy
  #| msgid "Target DFLOAT double precision code"
  msgid "Target DFLOAT double precision code."
@@ -35673,7 +45044,7 @@ Index: gcc/po/es.po
  
  #: config/frv/frv.opt:73
  msgid "Known FR-V CPUs (for use with the -mcpu= option):"
-@@ -14216,223 +12810,223 @@
+@@ -14216,223 +12109,223 @@
  #, fuzzy
  #| msgid "Use fp double instructions"
  msgid "Use fp double instructions."
@@ -35934,7 +45305,7 @@ Index: gcc/po/es.po
  
  #: config/nds32/nds32.opt:42
  #, fuzzy
-@@ -14444,19 +13038,19 @@
+@@ -14444,19 +12337,19 @@
  #, fuzzy
  #| msgid "Generate bit instructions"
  msgid "Generate performance extension instructions."
@@ -35957,7 +45328,7 @@ Index: gcc/po/es.po
  
  #: config/nds32/nds32.opt:58
  msgid "Specify the size of each interrupt vector, which must be 4 or 16."
-@@ -14486,23 +13080,23 @@
+@@ -14486,23 +12379,23 @@
  #, fuzzy
  #| msgid "Warn when all constructors and destructors are private"
  msgid "Enable constructor/destructor feature."
@@ -35985,7 +45356,7 @@ Index: gcc/po/es.po
  
  #: config/iq2000/iq2000.opt:51
  msgid "Known IQ2000 CPUs (for use with the -mcpu= option):"
-@@ -14512,19 +13106,19 @@
+@@ -14512,19 +12405,19 @@
  #, fuzzy
  #| msgid "Use ROM instead of RAM"
  msgid "Use ROM instead of RAM."
@@ -36008,7 +45379,7 @@ Index: gcc/po/es.po
  
  #: config/c6x/c6x-tables.opt:24
  msgid "Known C6X ISAs (for use with the -march= option):"
-@@ -14534,121 +13128,121 @@
+@@ -14534,121 +12427,121 @@
  #, fuzzy
  #| msgid "Valid arguments for the -msdata= option"
  msgid "Valid arguments for the -msdata= option."
@@ -36150,7 +45521,7 @@ Index: gcc/po/es.po
  
  #: config/cris/cris.opt:180
  msgid "Emit traps as \"break 8\", default for CRIS v3 and up.  If disabled, calls to abort() are used."
-@@ -14668,121 +13262,121 @@
+@@ -14668,121 +12561,121 @@
  
  #: config/sh/superh.opt:10
  msgid "Runtime name."
@@ -36292,7 +45663,7 @@ Index: gcc/po/es.po
  
  #: config/sh/sh.opt:128
  msgid "Generate code for SH4 500 series (FPU-less)."
-@@ -14792,139 +13386,139 @@
+@@ -14792,139 +12685,139 @@
  #, fuzzy
  #| msgid "Generate default single-precision SH4 code"
  msgid "Generate default single-precision SH4 code."
@@ -36455,7 +45826,7 @@ Index: gcc/po/es.po
  
  #: config/sh/sh.opt:233
  msgid "Assume that zero displacement conditional branches are fast."
-@@ -14940,7 +13534,7 @@
+@@ -14940,7 +12833,7 @@
  #, fuzzy
  #| msgid "Enable cbranchdi4 pattern"
  msgid "Enable cbranchdi4 pattern."
@@ -36464,7 +45835,7 @@ Index: gcc/po/es.po
  
  #: config/sh/sh.opt:241
  msgid "Emit cmpeqdi_t pattern even when -mcbranchdi is in effect."
-@@ -14954,31 +13548,31 @@
+@@ -14954,31 +12847,31 @@
  #, fuzzy
  #| msgid "Enable SH5 cut2 workaround"
  msgid "Enable SH5 cut2 workaround."
@@ -36501,7 +45872,7 @@ Index: gcc/po/es.po
  
  #: config/sh/sh.opt:269
  msgid "Enable the use of 64-bit floating point registers in fmov instructions.  See -mdalign if 64-bit alignment is required."
-@@ -14988,67 +13582,67 @@
+@@ -14988,67 +12881,67 @@
  #, fuzzy
  #| msgid "Cost to assume for gettr insn"
  msgid "Cost to assume for gettr insn."
@@ -36541,7 +45912,7 @@ Index: gcc/po/es.po
  #| msgid "Assume symbols might be invalid"
  msgid "Assume symbols might be invalid."
 -msgstr "Asume que los símbolos pueden ser inválidos"
-+msgstr "Asume que los símbolos pueden ser inválidos."
++msgstr "Asume que los símbolos pueden ser no válidos."
  
  #: config/sh/sh.opt:301 config/arc/arc.opt:209
  #, fuzzy
@@ -36580,7 +45951,7 @@ Index: gcc/po/es.po
  
  #: config/sh/sh.opt:323
  msgid "Assume pt* instructions won't trap"
-@@ -15058,7 +13652,7 @@
+@@ -15058,7 +12951,7 @@
  #, fuzzy
  #| msgid "Shorten address references during linking"
  msgid "Shorten address references during linking."
@@ -36589,7 +45960,7 @@ Index: gcc/po/es.po
  
  #: config/sh/sh.opt:335
  msgid "Deprecated.  Use -matomic= instead to select the atomic model."
-@@ -15068,7 +13662,7 @@
+@@ -15068,7 +12961,7 @@
  #, fuzzy
  #| msgid "Generate code for built-in atomic operations"
  msgid "Specify the model for atomic operations."
@@ -36598,7 +45969,7 @@ Index: gcc/po/es.po
  
  #: config/sh/sh.opt:343
  msgid "Use tas.b instruction for __atomic_test_and_set."
-@@ -15078,13 +13672,13 @@
+@@ -15078,13 +12971,13 @@
  #, fuzzy
  #| msgid "Deprecated.  Use -Os instead"
  msgid "Deprecated.  Use -Os instead."
@@ -36614,7 +45985,7 @@ Index: gcc/po/es.po
  
  #: config/sh/sh.opt:355
  msgid "Don't generate privileged-mode only code; implies -mno-inline-ic_invalidate if the inline code would not work in user mode."
-@@ -15098,13 +13692,13 @@
+@@ -15098,13 +12991,13 @@
  #, fuzzy
  #| msgid "Enable the use of the short load instructions"
  msgid "Enable the use of the fsca instruction."
@@ -36630,7 +46001,7 @@ Index: gcc/po/es.po
  
  #: config/sh/sh.opt:373
  msgid "Use LRA instead of reload (transitional)."
-@@ -15114,181 +13708,181 @@
+@@ -15114,181 +13007,181 @@
  #, fuzzy
  #| msgid "Assume small address space"
  msgid "Assume small address space."
@@ -36842,7 +46213,7 @@ Index: gcc/po/es.po
  
  #: config/mips/mips.opt:36
  msgid "Known MIPS ABIs (for use with the -mabi= option):"
-@@ -15298,55 +13892,55 @@
+@@ -15298,55 +13191,55 @@
  #, fuzzy
  #| msgid "Generate code that can be used in SVR4-style dynamic objects"
  msgid "Generate code that can be used in SVR4-style dynamic objects."
@@ -36907,7 +46278,7 @@ Index: gcc/po/es.po
  
  #: config/mips/mips.opt:91
  msgid "Valid arguments to -mcode-readable=:"
-@@ -15356,121 +13950,121 @@
+@@ -15356,121 +13249,121 @@
  #, fuzzy
  #| msgid "Use branch-and-break sequences to check for integer divide by zero"
  msgid "Use branch-and-break sequences to check for integer divide by zero."
@@ -37049,7 +46420,7 @@ Index: gcc/po/es.po
  
  #: config/mips/mips.opt:202
  msgid "Conform to the o32 FPXX ABI."
-@@ -15480,13 +14074,13 @@
+@@ -15480,13 +13373,13 @@
  #, fuzzy
  #| msgid "Use 64-bit floating-point registers"
  msgid "Use 64-bit floating-point registers."
@@ -37065,7 +46436,7 @@ Index: gcc/po/es.po
  
  #: config/mips/mips.opt:214
  msgid "-mabs=MODE\tSelect the IEEE 754 ABS/NEG instruction execution mode."
-@@ -15506,31 +14100,31 @@
+@@ -15506,31 +13399,31 @@
  #, fuzzy
  #| msgid "Use 32-bit general registers"
  msgid "Use 32-bit general registers."
@@ -37102,7 +46473,7 @@ Index: gcc/po/es.po
  
  #: config/mips/mips.opt:252
  #, fuzzy
-@@ -15548,121 +14142,121 @@
+@@ -15548,121 +13441,121 @@
  #, fuzzy
  #| msgid "-mipsN\tGenerate code for ISA level N"
  msgid "-mipsN\tGenerate code for ISA level N."
@@ -37244,7 +46615,7 @@ Index: gcc/po/es.po
  
  #: config/mips/mips.opt:340
  msgid "Valid arguments to -mr10k-cache-barrier=:"
-@@ -15672,97 +14266,97 @@
+@@ -15672,97 +13565,97 @@
  #, fuzzy
  #| msgid "Try to allow the linker to turn PIC calls into direct calls"
  msgid "Try to allow the linker to turn PIC calls into direct calls."
@@ -37358,7 +46729,7 @@ Index: gcc/po/es.po
  
  #: config/mips/mips.opt:428
  msgid "Specify the compact branch usage policy."
-@@ -15796,13 +14390,13 @@
+@@ -15796,13 +13689,13 @@
  #, fuzzy
  #| msgid "Use given x86-64 code model"
  msgid "Use given TILE-Gx code model."
@@ -37374,7 +46745,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:30
  #, fuzzy
-@@ -15822,7 +14416,7 @@
+@@ -15822,7 +13715,7 @@
  #, fuzzy
  #| msgid "Same as -mcpu=i386"
  msgid "Same as -mA6."
@@ -37383,7 +46754,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:46
  msgid "Generate ARCompact 32-bit code for ARC601 processor."
-@@ -15836,7 +14430,7 @@
+@@ -15836,7 +13729,7 @@
  #, fuzzy
  #| msgid "Same as -mcpu=i386"
  msgid "Same as -mA7."
@@ -37392,7 +46763,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:58
  msgid "-mmpy-option={0,1,2,3,4,5,6,7,8,9} Compile ARCv2 code with a multiplier design option.  Option 2 is default on."
-@@ -15846,13 +14440,13 @@
+@@ -15846,13 +13739,13 @@
  #, fuzzy
  #| msgid "Enable clip instructions"
  msgid "Enable DIV-REM instructions for ARCv2."
@@ -37408,7 +46779,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:70
  #, fuzzy
-@@ -15868,37 +14462,37 @@
+@@ -15868,37 +13761,37 @@
  #, fuzzy
  #| msgid "Don't use data cache for volatile mem refs"
  msgid "Enable cache bypass for volatile references."
@@ -37452,7 +46823,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:108
  msgid "Generate Extended arithmetic instructions.  Currently only divaw, adds, subs and sat16 are supported."
-@@ -15912,13 +14506,13 @@
+@@ -15912,13 +13805,13 @@
  #, fuzzy
  #| msgid "Generate call insns as indirect calls"
  msgid "Generate call insns as register indirect calls."
@@ -37468,7 +46839,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:124
  msgid "Generate sdata references.  This is the default, unless you compile for PIC."
-@@ -15928,7 +14522,7 @@
+@@ -15928,7 +13821,7 @@
  #, fuzzy
  #| msgid "Do not generate code which uses the FPU"
  msgid "Do not generate millicode thunks (needed only with -Os)."
@@ -37477,7 +46848,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:132 config/arc/arc.opt:136
  msgid "FPX: Generate Single Precision FPX (compact) instructions."
-@@ -15938,7 +14532,7 @@
+@@ -15938,7 +13831,7 @@
  #, fuzzy
  #| msgid "Generate bit instructions"
  msgid "FPX: Generate Single Precision FPX (fast) instructions."
@@ -37486,7 +46857,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:144
  msgid "FPX: Enable Argonaut ARC CPU Double Precision Floating Point extensions."
-@@ -15948,13 +14542,13 @@
+@@ -15948,13 +13841,13 @@
  #, fuzzy
  #| msgid "Generate bit instructions"
  msgid "FPX: Generate Double Precision FPX (compact) instructions."
@@ -37502,7 +46873,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:160
  msgid "Disable LR and SR instructions from using FPX extension aux registers."
-@@ -15968,7 +14562,7 @@
+@@ -15968,7 +13861,7 @@
  #, fuzzy
  #| msgid "-mcpu=CPU\tCompile code for ARC variant CPU"
  msgid "-mcpu=CPU\tCompile code for ARC variant CPU."
@@ -37511,7 +46882,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:205
  msgid "size optimization level: 0:none 1:opportunistic 2: regalloc 3:drop align, -Os."
-@@ -15978,7 +14572,7 @@
+@@ -15978,7 +13871,7 @@
  #, fuzzy
  #| msgid "Cost to assume for a multiply insn"
  msgid "Cost to assume for a multiply instruction, with 4 being equal to a normal insn."
@@ -37520,7 +46891,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:217
  msgid "Tune for ARC600 cpu."
-@@ -16000,7 +14594,7 @@
+@@ -16000,7 +13893,7 @@
  #, fuzzy
  #| msgid "Enable the use of the short load instructions"
  msgid "Enable the use of indexed loads."
@@ -37529,7 +46900,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:245
  msgid "Enable the use of pre/post modify with register displacement."
-@@ -16010,7 +14604,7 @@
+@@ -16010,7 +13903,7 @@
  #, fuzzy
  #| msgid "Generate fused multiply/add instructions"
  msgid "Generate 32x16 multiply and mac instructions."
@@ -37538,7 +46909,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:255
  msgid "Set probability threshold for unaligning branches."
-@@ -16028,7 +14622,7 @@
+@@ -16028,7 +13921,7 @@
  #, fuzzy
  #| msgid "Avoid all range limits on call instructions"
  msgid "Do alignment optimizations for call instructions."
@@ -37547,7 +46918,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:271
  msgid "Enable Rcq constraint handling - most short code generation depends on this."
-@@ -16042,7 +14636,7 @@
+@@ -16042,7 +13935,7 @@
  #, fuzzy
  #| msgid "Enable cbranchdi4 pattern"
  msgid "Enable pre-reload use of cbranchsi pattern."
@@ -37556,7 +46927,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:283
  msgid "Enable bbit peephole2."
-@@ -16056,13 +14650,13 @@
+@@ -16056,13 +13949,13 @@
  #, fuzzy
  #| msgid "Enable cbranchdi4 pattern"
  msgid "Enable compact casesi pattern."
@@ -37572,7 +46943,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:299
  msgid "Expand adddi3 and subdi3 at rtl generation time into add.f / adc etc."
-@@ -16076,7 +14670,7 @@
+@@ -16076,7 +13969,7 @@
  #, fuzzy
  #| msgid "Enable Plan 9 language extensions"
  msgid "Enable DSP 3.1 Pack A extensions."
@@ -37581,7 +46952,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:314
  #, fuzzy
-@@ -16088,7 +14682,7 @@
+@@ -16088,7 +13981,7 @@
  #, fuzzy
  #| msgid "Enable leading zero instructions"
  msgid "Enable Dual and Single Operand Instructions for Telephony."
@@ -37590,7 +46961,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:328
  msgid "Enable XY Memory extension (DSP version 3)."
-@@ -16104,31 +14698,31 @@
+@@ -16104,31 +13997,31 @@
  #, fuzzy
  #| msgid "Enable sign extend instructions"
  msgid "Enable swap byte ordering extension instruction."
@@ -37627,7 +46998,7 @@ Index: gcc/po/es.po
  
  #: config/arc/arc.opt:357
  msgid "Pass -marclinux_prof option through to linker."
-@@ -16160,181 +14754,181 @@
+@@ -16160,181 +14053,181 @@
  #, fuzzy
  #| msgid "Enable clip instructions"
  msgid "Enable atomic instructions."
@@ -37839,7 +47210,7 @@ Index: gcc/po/es.po
  
  #: lto/lang.opt:28
  #, fuzzy, c-format
-@@ -16366,73 +14960,73 @@
+@@ -16366,73 +14259,73 @@
  #, fuzzy
  #| msgid "The resolution file"
  msgid "The resolution file."
@@ -37925,7 +47296,7 @@ Index: gcc/po/es.po
  
  #: common.opt:546
  msgid "Warn if a loop with constant number of iterations triggers undefined behavior."
-@@ -16442,85 +15036,85 @@
+@@ -16442,85 +14335,85 @@
  #, fuzzy
  #| msgid "Warn if an array is accessed out of bounds"
  msgid "Warn if an array is accessed out of bounds."
@@ -38025,7 +47396,7 @@ Index: gcc/po/es.po
  
  #: common.opt:610
  msgid "Warn when an atomic memory model parameter is known to be outside the valid range."
-@@ -16530,7 +15124,7 @@
+@@ -16530,7 +14423,7 @@
  #, fuzzy
  #| msgid "-Wlarger-than=<number>\tWarn if an object is larger than <number> bytes"
  msgid "-Wlarger-than=<number>\tWarn if an object is larger than <number> bytes."
@@ -38034,7 +47405,7 @@ Index: gcc/po/es.po
  
  #: common.opt:621
  msgid "Warn if comparing pointer parameter with nonnull attribute with NULL."
-@@ -16552,7 +15146,7 @@
+@@ -16552,7 +14445,7 @@
  #, fuzzy
  #| msgid "Warn about overflow in arithmetic expressions"
  msgid "Warn about overflow in arithmetic expressions."
@@ -38043,7 +47414,7 @@ Index: gcc/po/es.po
  
  #: common.opt:644
  msgid "During link time optimization warn about mismatched types of global declarations."
-@@ -16562,73 +15156,73 @@
+@@ -16562,73 +14455,73 @@
  #, fuzzy
  #| msgid "Warn when the packed attribute has no effect on struct layout"
  msgid "Warn when the packed attribute has no effect on struct layout."
@@ -38129,7 +47500,7 @@ Index: gcc/po/es.po
  
  #: common.opt:704
  msgid "Warn about C++ polymorphic types where adding final keyword would improve code quality."
-@@ -16642,115 +15236,115 @@
+@@ -16642,115 +14535,115 @@
  #, fuzzy
  #| msgid "Do not suppress warnings from system headers"
  msgid "Do not suppress warnings from system headers."
@@ -38264,7 +47635,7 @@ Index: gcc/po/es.po
  
  #: common.opt:884
  msgid "The version of the C++ ABI in use."
-@@ -16764,31 +15358,31 @@
+@@ -16764,31 +14657,31 @@
  #, fuzzy
  #| msgid "Align the start of functions"
  msgid "Align the start of functions."
@@ -38301,7 +47672,7 @@ Index: gcc/po/es.po
  
  #: common.opt:940
  msgid "-fasan-shadow-offset=<number>\tUse custom shadow memory offset."
-@@ -16806,7 +15400,7 @@
+@@ -16806,7 +14699,7 @@
  #, fuzzy
  #| msgid "This switch is deprecated; use -Wextra instead"
  msgid "This switch is deprecated; use -fsanitize-recover= instead."
@@ -38310,7 +47681,7 @@ Index: gcc/po/es.po
  
  #: common.opt:957
  msgid "Use trap instead of a library function for undefined behavior sanitization."
-@@ -16816,13 +15410,13 @@
+@@ -16816,13 +14709,13 @@
  #, fuzzy
  #| msgid "Generate unwind tables that are exact at each instruction boundary"
  msgid "Generate unwind tables that are exact at each instruction boundary."
@@ -38326,7 +47697,7 @@ Index: gcc/po/es.po
  
  #: common.opt:969
  msgid "Use sample profile information for call graph node weights. The default"
-@@ -16838,73 +15432,73 @@
+@@ -16838,73 +14731,73 @@
  #, fuzzy
  #| msgid "Generate code to check bounds before indexing arrays"
  msgid "Generate code to check bounds before indexing arrays."
@@ -38412,7 +47783,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1034
  msgid "Looks for opportunities to reduce stack adjustments and stack references."
-@@ -16914,67 +15508,67 @@
+@@ -16914,67 +14807,67 @@
  #, fuzzy
  #| msgid "Do not put uninitialized globals in the common section"
  msgid "Do not put uninitialized globals in the common section."
@@ -38491,7 +47862,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1090
  msgid "List all available debugging counters with their limits and counts."
-@@ -16990,7 +15584,7 @@
+@@ -16990,7 +14883,7 @@
  #, fuzzy
  #| msgid "Map one directory name to another in debug information"
  msgid "Map one directory name to another in debug information."
@@ -38500,7 +47871,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1102
  msgid "Output .debug_types section when using DWARF v4 debuginfo."
-@@ -17000,13 +15594,13 @@
+@@ -17000,13 +14893,13 @@
  #, fuzzy
  #| msgid "Defer popping functions args from stack until later"
  msgid "Defer popping functions args from stack until later."
@@ -38516,7 +47887,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1116
  msgid "Delete dead instructions that may throw exceptions."
-@@ -17016,7 +15610,7 @@
+@@ -17016,7 +14909,7 @@
  #, fuzzy
  #| msgid "Delete useless null pointer checks"
  msgid "Delete useless null pointer checks."
@@ -38525,7 +47896,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1124
  msgid "Stream extra data to support more aggressive devirtualization in LTO local transformation mode."
-@@ -17026,7 +15620,7 @@
+@@ -17026,7 +14919,7 @@
  #, fuzzy
  #| msgid "Perform superblock formation via tail duplication"
  msgid "Perform speculative devirtualization."
@@ -38534,7 +47905,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1132
  msgid "Try to convert virtual calls to direct ones."
-@@ -17036,7 +15630,7 @@
+@@ -17036,7 +14929,7 @@
  #, fuzzy
  #| msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics"
  msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics."
@@ -38543,7 +47914,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1153
  msgid "Show the source line with a caret indicating the column."
-@@ -17050,43 +15644,43 @@
+@@ -17050,43 +14943,43 @@
  #, fuzzy
  #| msgid "Amend appropriate diagnostic messages with the command line option that controls them"
  msgid "Amend appropriate diagnostic messages with the command line option that controls them."
@@ -38594,7 +47965,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1212
  msgid "Collect and dump debug information into temporary file if ICE in C/C++"
-@@ -17100,19 +15694,19 @@
+@@ -17100,19 +14993,19 @@
  #, fuzzy
  #| msgid "Dump optimization passes"
  msgid "Dump optimization passes."
@@ -38617,7 +47988,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1233
  msgid "Enable CFI tables via GAS assembler directives."
-@@ -17122,31 +15716,31 @@
+@@ -17122,31 +15015,31 @@
  #, fuzzy
  #| msgid "Perform early inlining"
  msgid "Perform early inlining."
@@ -38654,7 +48025,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1257
  msgid "Do not suppress C++ class debug information."
-@@ -17156,19 +15750,19 @@
+@@ -17156,19 +15049,19 @@
  #, fuzzy
  #| msgid "Enable exception handling"
  msgid "Enable exception handling."
@@ -38677,7 +48048,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1272
  #, c-format
-@@ -17183,25 +15777,25 @@
+@@ -17183,25 +15076,25 @@
  #, fuzzy
  #| msgid "Assume no NaNs or infinities are generated"
  msgid "Assume no NaNs or infinities are generated."
@@ -38707,7 +48078,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1309
  msgid "-ffp-contract=[off|on|fast] Perform floating-point expression contraction."
-@@ -17216,31 +15810,31 @@
+@@ -17216,31 +15109,31 @@
  #, fuzzy
  #| msgid "Allow function addresses to be held in registers"
  msgid "Allow function addresses to be held in registers."
@@ -38744,7 +48115,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1349
  msgid "Perform redundant load after store elimination in global common subexpression"
-@@ -17260,13 +15854,13 @@
+@@ -17260,13 +15153,13 @@
  #, fuzzy
  #| msgid "Enable in and out of Graphite representation"
  msgid "Enable in and out of Graphite representation."
@@ -38760,7 +48131,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1384
  #, fuzzy
-@@ -17278,7 +15872,7 @@
+@@ -17278,7 +15171,7 @@
  #, fuzzy
  #| msgid "Mark all loops as parallel"
  msgid "Mark all loops as parallel."
@@ -38769,7 +48140,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1397 common.opt:1401 common.opt:1405 common.opt:1409
  #: common.opt:2395
-@@ -17285,13 +15879,13 @@
+@@ -17285,13 +15178,13 @@
  #, fuzzy
  #| msgid "Enable loop interchange transforms.  Same as -floop-interchange"
  msgid "Enable loop nest transforms.  Same as -floop-nest-optimize."
@@ -38785,7 +48156,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1417
  msgid "Use STB_GNU_UNIQUE if supported by the assembler."
-@@ -17301,37 +15895,37 @@
+@@ -17301,37 +15194,37 @@
  #, fuzzy
  #| msgid "Run the loop optimizer twice"
  msgid "Enable the loop nest optimizer."
@@ -38829,7 +48200,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1453
  msgid "-fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables."
-@@ -17347,55 +15941,55 @@
+@@ -17347,55 +15240,55 @@
  #, fuzzy
  #| msgid "Convert conditional jumps in innermost loops to branchless equivalents"
  msgid "Convert conditional jumps in innermost loops to branchless equivalents."
@@ -38894,7 +48265,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1514
  msgid "Inline __atomic operations when a lock free instruction sequence is available."
-@@ -17405,55 +15999,55 @@
+@@ -17405,55 +15298,55 @@
  #, fuzzy
  #| msgid "Instrument function entry and exit with profiling calls"
  msgid "Instrument function entry and exit with profiling calls."
@@ -38959,7 +48330,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1554
  msgid "Perform Identical Code Folding for functions and read-only variables."
-@@ -17471,13 +16065,13 @@
+@@ -17471,13 +15364,13 @@
  #, fuzzy
  #| msgid "Discover readonly and non addressable static variables"
  msgid "Discover readonly and non addressable static variables."
@@ -38975,7 +48346,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1581
  #, c-format
-@@ -17488,7 +16082,7 @@
+@@ -17488,7 +15381,7 @@
  #, fuzzy
  #| msgid "-fira-region=[one|all|mixed] Set regions for IRA"
  msgid "-fira-region=[one|all|mixed] Set regions for IRA."
@@ -38984,7 +48355,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1594
  #, c-format
-@@ -17515,37 +16109,37 @@
+@@ -17515,37 +15408,37 @@
  #, fuzzy
  #| msgid "Optimize induction variables on trees"
  msgid "Optimize induction variables on trees."
@@ -39028,7 +48399,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1657
  msgid "Do CFG-sensitive rematerialization in LRA."
-@@ -17573,7 +16167,7 @@
+@@ -17573,7 +15466,7 @@
  #, fuzzy
  #| msgid "-flto-compression-level=<number>\tUse zlib compression level <number> for IL"
  msgid "-flto-compression-level=<number>\tUse zlib compression level <number> for IL."
@@ -39037,7 +48408,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1696
  msgid "Merge C++ types using One Definition Rule."
-@@ -17583,103 +16177,103 @@
+@@ -17583,103 +15476,103 @@
  #, fuzzy
  #| msgid "Report various link-time optimization statistics"
  msgid "Report various link-time optimization statistics."
@@ -39158,7 +48529,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1770
  #, fuzzy, c-format
-@@ -17705,13 +16299,13 @@
+@@ -17705,13 +15598,13 @@
  #, fuzzy
  #| msgid "When possible do not generate stack frames"
  msgid "When possible do not generate stack frames."
@@ -39174,7 +48545,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1796
  msgid "-fopt-info[-<type>=filename]\tDump compiler optimization details."
-@@ -17721,79 +16315,79 @@
+@@ -17721,79 +15614,79 @@
  #, fuzzy
  #| msgid "Optimize sibling and tail recursive calls"
  msgid "Optimize sibling and tail recursive calls."
@@ -39267,7 +48638,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1860
  msgid "Use PLT for PIC calls (-fno-plt: load the address from GOT at call site)."
-@@ -17803,13 +16397,13 @@
+@@ -17803,13 +15696,13 @@
  #, fuzzy
  #| msgid "Specify a plugin to load"
  msgid "Specify a plugin to load."
@@ -39283,7 +48654,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1872
  msgid "Run predictive commoning optimization."
-@@ -17819,19 +16413,19 @@
+@@ -17819,19 +15712,19 @@
  #, fuzzy
  #| msgid "Generate prefetch instructions, if available, for arrays in loops"
  msgid "Generate prefetch instructions, if available, for arrays in loops."
@@ -39306,7 +48677,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1888
  msgid "Set the top-level directory for storing the profile data."
-@@ -17841,55 +16435,55 @@
+@@ -17841,55 +15734,55 @@
  #, fuzzy
  #| msgid "Enable correction of flow inconsistent profile data input"
  msgid "Enable correction of flow inconsistent profile data input."
@@ -39371,7 +48742,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1938
  msgid "Record gcc command line switches in the object file."
-@@ -17899,7 +16493,7 @@
+@@ -17899,7 +15792,7 @@
  #, fuzzy
  #| msgid "Return small aggregates in registers"
  msgid "Return small aggregates in registers."
@@ -39380,7 +48751,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1950
  msgid "Tell DSE that the storage for a C++ object is dead when the constructor"
-@@ -17909,25 +16503,25 @@
+@@ -17909,25 +15802,25 @@
  #, fuzzy
  #| msgid "Enable register pressure sensitive insn scheduling"
  msgid "Relief of register pressure through live range shrinkage."
@@ -39410,7 +48781,7 @@ Index: gcc/po/es.po
  
  #: common.opt:1974
  msgid "-freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm."
-@@ -17943,109 +16537,109 @@
+@@ -17943,109 +15836,109 @@
  #, fuzzy
  #| msgid "Reorder basic blocks and partition into hot and cold sections"
  msgid "Reorder basic blocks and partition into hot and cold sections."
@@ -39538,7 +48909,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2070
  msgid "Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker."
-@@ -18055,67 +16649,67 @@
+@@ -18055,67 +15948,67 @@
  #, fuzzy
  #| msgid "Allow premature scheduling of queued insns"
  msgid "Allow premature scheduling of queued insns."
@@ -39617,7 +48988,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2132
  msgid "Turn on Redundant Extensions Elimination pass."
-@@ -18125,7 +16719,7 @@
+@@ -18125,7 +16018,7 @@
  #, fuzzy
  #| msgid "Show column numbers in diagnostics, when available.  Default on"
  msgid "Show column numbers in diagnostics, when available.  Default on."
@@ -39626,7 +48997,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2140
  msgid "Emit function prologues only before parts of the function that need it,"
-@@ -18135,43 +16729,43 @@
+@@ -18135,43 +16028,43 @@
  #, fuzzy
  #| msgid "Disable optimizations observable by IEEE signaling NaNs"
  msgid "Disable optimizations observable by IEEE signaling NaNs."
@@ -39677,7 +49048,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2173
  msgid "Optimize conditional patterns using SSA PHI nodes."
-@@ -18185,73 +16779,73 @@
+@@ -18185,73 +16078,73 @@
  #, fuzzy
  #| msgid "Apply variable expansion when loops are unrolled"
  msgid "Apply variable expansion when loops are unrolled."
@@ -39763,7 +49134,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2240
  msgid "Implement __atomic operations via libcalls to legacy __sync functions."
-@@ -18261,31 +16855,31 @@
+@@ -18261,31 +16154,31 @@
  #, fuzzy
  #| msgid "Check for syntax errors, then stop"
  msgid "Check for syntax errors, then stop."
@@ -39800,7 +49171,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2263
  #, c-format
-@@ -18296,61 +16890,61 @@
+@@ -18296,61 +16189,61 @@
  #, fuzzy
  #| msgid "Reorder top level functions, variables, and asms"
  msgid "Reorder top level functions, variables, and asms."
@@ -39872,7 +49243,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2338
  msgid "Perform conversions of switch initializations."
-@@ -18360,43 +16954,43 @@
+@@ -18360,43 +16253,43 @@
  #, fuzzy
  #| msgid "Enable SSA dead code elimination optimization on trees"
  msgid "Enable SSA dead code elimination optimization on trees."
@@ -39923,7 +49294,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2370
  msgid "Detect paths that trigger erroneous or undefined behavior due to"
-@@ -18410,37 +17004,37 @@
+@@ -18410,37 +16303,37 @@
  #, fuzzy
  #| msgid "Enable loop distribution on trees"
  msgid "Enable loop distribution on trees."
@@ -39967,7 +49338,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2411
  msgid "Enable hoisting loads from conditional pointers."
-@@ -18450,7 +17044,7 @@
+@@ -18450,7 +16343,7 @@
  #, fuzzy
  #| msgid "Enable SSA-PRE optimization on trees"
  msgid "Enable SSA-PRE optimization on trees."
@@ -39976,7 +49347,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2419
  msgid "In SSA-PRE optimization on trees, enable partial-partial redundancy elimination."
-@@ -18464,13 +17058,13 @@
+@@ -18464,13 +16357,13 @@
  #, fuzzy
  #| msgid "Enable reassociation on tree level"
  msgid "Enable reassociation on tree level."
@@ -39992,7 +49363,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2439
  msgid "Perform straight-line strength reduction."
-@@ -18480,25 +17074,25 @@
+@@ -18480,25 +16373,25 @@
  #, fuzzy
  #| msgid "Perform scalar replacement of aggregates"
  msgid "Perform scalar replacement of aggregates."
@@ -40022,7 +49393,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2459
  msgid "Split paths leading to loop backedges."
-@@ -18512,25 +17106,25 @@
+@@ -18512,25 +16405,25 @@
  #, fuzzy
  #| msgid "Compile whole compilation unit at a time"
  msgid "Compile whole compilation unit at a time."
@@ -40052,7 +49423,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2487
  msgid "Allow optimization for floating-point arithmetic which may change the"
-@@ -18544,79 +17138,79 @@
+@@ -18544,79 +16437,79 @@
  #, fuzzy
  #| msgid "Allow math optimizations that may violate IEEE or ISO standards"
  msgid "Allow math optimizations that may violate IEEE or ISO standards."
@@ -40145,7 +49516,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2574
  msgid "Specifies the vectorization cost model for code marked with a simd directive."
-@@ -18648,13 +17242,13 @@
+@@ -18648,13 +16541,13 @@
  #, fuzzy
  #| msgid "Add extra commentary to assembler output"
  msgid "Add extra commentary to assembler output."
@@ -40161,7 +49532,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2619
  #, c-format
-@@ -18683,25 +17277,25 @@
+@@ -18683,25 +16576,25 @@
  #, fuzzy
  #| msgid "Use expression value profiles in optimizations"
  msgid "Use expression value profiles in optimizations."
@@ -40191,7 +49562,7 @@ Index: gcc/po/es.po
  
  # wraps around? No entiendo bien. cfuga
  #: common.opt:2675
-@@ -18708,49 +17302,49 @@
+@@ -18708,49 +16601,49 @@
  #, fuzzy
  #| msgid "Assume signed arithmetic overflow wraps around"
  msgid "Assume signed arithmetic overflow wraps around."
@@ -40249,7 +49620,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2707
  msgid "Generate DWARF pubnames and pubtypes sections."
-@@ -18772,67 +17366,67 @@
+@@ -18772,67 +16665,67 @@
  #, fuzzy
  #| msgid "Generate debug information in default format"
  msgid "Don't generate debug information in separate .dwo files."
@@ -40328,7 +49699,7 @@ Index: gcc/po/es.po
  
  #: common.opt:2781
  msgid "-gz=<format>\tGenerate compressed debug sections in format <format>."
-@@ -18842,73 +17436,73 @@
+@@ -18842,73 +16735,73 @@
  #, fuzzy
  #| msgid "-iplugindir=<dir>\tSet <dir> to be the default plugin directory"
  msgid "-iplugindir=<dir>\tSet <dir> to be the default plugin directory."
@@ -40414,7 +49785,16 @@ Index: gcc/po/es.po
  
  #: common.opt:2974
  msgid "Use caller save register across calls if possible."
-@@ -18941,8 +17535,8 @@
+@@ -18922,7 +16815,7 @@
+ 
+ #: go/gofrontend/expressions.cc:617
+ msgid "invalid use of type"
+-msgstr "uso inválido del tipo"
++msgstr "uso no válido del tipo"
+ 
+ #: go/gofrontend/expressions.cc:2744 go/gofrontend/expressions.cc:2810
+ #: go/gofrontend/expressions.cc:2826
+@@ -18941,8 +16834,8 @@
  msgid "expected boolean type"
  msgstr "se esperaba un tipo booleano"
  
@@ -40425,7 +49805,128 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Expected integer"
  msgid "expected integer"
-@@ -19408,50 +18002,52 @@
+@@ -18952,7 +16845,7 @@
+ #, fuzzy
+ #| msgid "invalid comparison code in gimple cond"
+ msgid "invalid comparison of nil with nil"
+-msgstr "código de comparación inválido en la condición gimple"
++msgstr "código de comparación no válido en la condición gimple"
+ 
+ #: go/gofrontend/expressions.cc:5559 go/gofrontend/expressions.cc:5577
+ msgid "incompatible types in binary expression"
+@@ -18987,13 +16880,13 @@
+ 
+ #: go/gofrontend/expressions.cc:6773
+ msgid "invalid use of %<...%> with builtin function"
+-msgstr "uso inválido de %<..%> con la función interna"
++msgstr "uso no válido de %<..%> con la función interna"
+ 
+ #: go/gofrontend/expressions.cc:6784
+ #, fuzzy
+ #| msgid "invalid use of template-name %qE without an argument list"
+ msgid "invalid use of method value as argument of Offsetof"
+-msgstr "uso inválido del nombre-de-plantilla %qE sin una lista de argumentos"
++msgstr "uso no válido del nombre-de-plantilla %qE sin una lista de argumentos"
+ 
+ #: go/gofrontend/expressions.cc:6798
+ msgid "argument of Offsetof implies indirection of an embedded field"
+@@ -19022,7 +16915,7 @@
+ 
+ #: go/gofrontend/expressions.cc:7012
+ msgid "invalid type for make function"
+-msgstr "tipo inválido para la función make"
++msgstr "tipo no válido para la función make"
+ 
+ #: go/gofrontend/expressions.cc:7028
+ msgid "length required when allocating a slice"
+@@ -19078,7 +16971,7 @@
+ 
+ #: go/gofrontend/expressions.cc:8032
+ msgid "argument 2 has invalid type"
+-msgstr "el argumento 2 es de tipo inválido"
++msgstr "el argumento 2 es de tipo no válido"
+ 
+ #: go/gofrontend/expressions.cc:8048
+ msgid "argument must have complex type"
+@@ -19105,7 +16998,7 @@
+ 
+ #: go/gofrontend/expressions.cc:8846
+ msgid "invalid use of %<...%> with non-slice"
+-msgstr "uso inválido de %<...%> con algo que no es rebanada"
++msgstr "uso no válido de %<...%> con algo que no es rebanada"
+ 
+ #: go/gofrontend/expressions.cc:9222
+ #, fuzzy
+@@ -19119,7 +17012,7 @@
+ 
+ #: go/gofrontend/expressions.cc:9258
+ msgid "invalid use of %<...%> calling non-variadic function"
+-msgstr "uso inválido de %<...%> en la llamada a la función que no es variadic"
++msgstr "uso no válido de %<...%> en la llamada a la función que no es variadic"
+ 
+ #: go/gofrontend/expressions.cc:9614 go/gofrontend/expressions.cc:9628
+ msgid "number of results does not match number of values"
+@@ -19178,7 +17071,7 @@
+ 
+ #: go/gofrontend/expressions.cc:13523 go/gofrontend/statements.cc:1432
+ msgid "invalid receive on send-only channel"
+-msgstr "recepción inválida en canal de sólo envío"
++msgstr "recepción no válida en canal de sólo envío"
+ 
+ #: go/gofrontend/parse.cc:3016
+ #, fuzzy
+@@ -19192,7 +17085,7 @@
+ 
+ #: go/gofrontend/statements.cc:592
+ msgid "invalid left hand side of assignment"
+-msgstr "lado izquierdo de la asignación inválido"
++msgstr "lado izquierdo de la asignación no válido"
+ 
+ #: go/gofrontend/statements.cc:603 go/gofrontend/statements.cc:1021
+ msgid "use of untyped nil"
+@@ -19232,7 +17125,7 @@
+ 
+ #: go/gofrontend/statements.cc:4421
+ msgid "invalid send on receive-only channel"
+-msgstr "envío inválido en canal de sólo recepción"
++msgstr "envío no válido en canal de sólo recepción"
+ 
+ #: go/gofrontend/statements.cc:5392
+ msgid "too many variables for range clause with channel"
+@@ -19244,7 +17137,7 @@
+ 
+ #: go/gofrontend/types.cc:509
+ msgid "invalid comparison of non-ordered type"
+-msgstr "comparación inválida de tipo que no es ordenado"
++msgstr "comparación no válida de tipo que no es ordenado"
+ 
+ #: go/gofrontend/types.cc:525
+ msgid "slice can only be compared to nil"
+@@ -19261,19 +17154,19 @@
+ #: go/gofrontend/types.cc:535
+ #, c-format
+ msgid "invalid operation (%s)"
+-msgstr "operación inválida (%s)"
++msgstr "operación no válida (%s)"
+ 
+ #: go/gofrontend/types.cc:558
+ msgid "invalid comparison of non-comparable type"
+-msgstr "comparación inválida de tipo que no es comparable"
++msgstr "comparación no válida de tipo que no es comparable"
+ 
+ #: go/gofrontend/types.cc:576
+ msgid "invalid comparison of non-comparable struct"
+-msgstr "comparación inválida de struct que no es comparable"
++msgstr "comparación no válida de struct que no es comparable"
+ 
+ #: go/gofrontend/types.cc:587
+ msgid "invalid comparison of non-comparable array"
+-msgstr "comparación inválida de matriz que no es comparable"
++msgstr "comparación no válida de matriz que no es comparable"
+ 
+ #: go/gofrontend/types.cc:615
+ #, fuzzy
+@@ -19408,50 +17301,52 @@
  msgid "type attributes ignored after type is already defined"
  msgstr "se descartan los atributos de tipo después de que el tipo ya se definió"
  
@@ -40491,7 +49992,82 @@ Index: gcc/po/es.po
  
  #: bt-load.c:1566
  #, gcc-internal-format
-@@ -19667,12 +18263,12 @@
+@@ -19471,7 +17366,7 @@
+ #: builtins.c:1188
+ #, gcc-internal-format
+ msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
+-msgstr "el segundo argumento para %<__builtin_prefetch%> es inválido; se usa cero"
++msgstr "el segundo argumento para %<__builtin_prefetch%> es no válido; se usa cero"
+ 
+ #: builtins.c:1196
+ #, gcc-internal-format
+@@ -19481,7 +17376,7 @@
+ #: builtins.c:1203
+ #, gcc-internal-format
+ msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
+-msgstr "el tercer argumento para %<__builtin_prefetch%> es inválido; se usa cero"
++msgstr "el tercer argumento para %<__builtin_prefetch%> es no válido; se usa cero"
+ 
+ #: builtins.c:4176 gimplify.c:2414
+ #, gcc-internal-format
+@@ -19492,7 +17387,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid use of %qD"
+ msgid "invalid argument to %qD"
+-msgstr "uso inválido de %qD"
++msgstr "uso no válido de %qD"
+ 
+ #: builtins.c:4289
+ #, fuzzy, gcc-internal-format
+@@ -19530,7 +17425,7 @@
+ #: builtins.c:5064
+ #, gcc-internal-format
+ msgid "invalid memory model argument to builtin"
+-msgstr "argumento de modelo de memoria inválido para la función interna"
++msgstr "argumento de modelo de memoria no válido para la función interna"
+ 
+ #: builtins.c:5125
+ #, gcc-internal-format
+@@ -19540,17 +17435,17 @@
+ #: builtins.c:5133
+ #, gcc-internal-format
+ msgid "invalid failure memory model for %<__atomic_compare_exchange%>"
+-msgstr "falla de modelo de memoria inválido para %<__atomic_compare_exchange%>"
++msgstr "falla de modelo de memoria no válido para %<__atomic_compare_exchange%>"
+ 
+ #: builtins.c:5198
+ #, gcc-internal-format
+ msgid "invalid memory model for %<__atomic_load%>"
+-msgstr "modelo de memoria inválido para %<__atomic_load%>"
++msgstr "modelo de memoria no válido para %<__atomic_load%>"
+ 
+ #: builtins.c:5230 builtins.c:5333
+ #, gcc-internal-format
+ msgid "invalid memory model for %<__atomic_store%>"
+-msgstr "modelo de memoria inválido para %<__atomic_store%>"
++msgstr "modelo de memoria no válido para %<__atomic_store%>"
+ 
+ #: builtins.c:5448
+ #, gcc-internal-format
+@@ -19579,7 +17474,7 @@
+ #: builtins.c:5831 expr.c:10565
+ #, gcc-internal-format
+ msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>"
+-msgstr "%Kuso inválido de %<__builtin_va_arg_pack ()%>"
++msgstr "%Kuso no válido de %<__builtin_va_arg_pack ()%>"
+ 
+ #. All valid uses of __builtin_va_arg_pack_len () are removed during
+ #. inlining.
+@@ -19586,7 +17481,7 @@
+ #: builtins.c:5837
+ #, gcc-internal-format
+ msgid "%Kinvalid use of %<__builtin_va_arg_pack_len ()%>"
+-msgstr "%Kuso inválido de %<__builtin_va_arg_pack_len ()%>"
++msgstr "%Kuso no válido de %<__builtin_va_arg_pack_len ()%>"
+ 
+ #: builtins.c:6056
+ #, gcc-internal-format
+@@ -19667,12 +17562,12 @@
  msgid "%Kattempt to free a non-heap object"
  msgstr "%Kse intenta liberar un objeto que no es de pila"
  
@@ -40506,7 +50082,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "passing %qT for argument %P to %qD"
  msgid "passing too large argument on stack"
-@@ -20078,447 +18674,447 @@
+@@ -20078,447 +17973,447 @@
  msgid "%d exits recorded for loop %d (having %d exits)"
  msgstr "se grabaron %d salidas para el bucle %d (teniendo %d salidas)"
  
@@ -40773,7 +50349,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Assume symbols might be invalid"
  msgid "local symbols must be defined"
- msgstr "Asume que los símbolos pueden ser inválidos"
+-msgstr "Asume que los símbolos pueden ser inválidos"
++msgstr "Asume que los símbolos pueden ser no válidos"
  
 -#: cgraph.c:2844
 +#: cgraph.c:2855
@@ -41041,7 +50618,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "%s: section %s is missing"
  msgstr "%s: falta la sección %s"
-@@ -20549,12 +19145,12 @@
+@@ -20549,12 +18444,12 @@
  msgstr "se descarta el atributo %<weakref%> porque ya se inicializó la variable"
  
  #. include_self=
@@ -41056,7 +50633,16 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%q+F declared %<static%> but never defined"
  msgstr "%q+F se declaró %<static%> pero nunca se define"
-@@ -20652,12 +19248,12 @@
+@@ -20584,7 +18479,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "Invalid declaration"
+ msgid "%q+D aliased declaration"
+-msgstr "Declaración inválida"
++msgstr "Declaración no válida"
+ 
+ #: cgraphunit.c:1381
+ #, gcc-internal-format
+@@ -20652,12 +18547,12 @@
  msgid "cannot find '%s'"
  msgstr "no se puede encontrar '%s'"
  
@@ -41071,7 +50657,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%s: %m"
  msgstr "%s: %m"
-@@ -20667,7 +19263,7 @@
+@@ -20667,7 +18562,7 @@
  msgid "COLLECT_LTO_WRAPPER must be set"
  msgstr "se debe definir COLLECT_LTO_WRAPPER"
  
@@ -41080,7 +50666,7 @@ Index: gcc/po/es.po
  #: config/i386/intelmic-mkoffload.c:554 config/nvptx/mkoffload.c:403
  #, gcc-internal-format
  msgid "atexit failed"
-@@ -20922,7 +19518,7 @@
+@@ -20922,7 +18817,7 @@
  msgid "global constructors not supported on this target"
  msgstr "no se admiten constructores globales en este objetivo"
  
@@ -41089,7 +50675,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "in %s, at %s:%d"
  msgstr "en %s, en %s:%d"
-@@ -20963,12 +19559,12 @@
+@@ -20963,12 +18858,12 @@
  msgid "multiple EH personalities are supported only with assemblers supporting .cfi_personality directive"
  msgstr "sólo se admiten múltiples personalidades EH con ensambladores que admiten la directiva cfi.personality"
  
@@ -41104,7 +50690,25 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "-feliminate-dwarf2-dups is broken for C++, ignoring"
  msgstr ""
-@@ -21098,7 +19694,7 @@
+@@ -20976,7 +18871,7 @@
+ #: emit-rtl.c:2732
+ #, gcc-internal-format
+ msgid "invalid rtl sharing found in the insn"
+-msgstr "se encontró una compartición de rtl inválida en la insn"
++msgstr "se encontró una compartición de rtl no válida en la insn"
+ 
+ #: emit-rtl.c:2734
+ #, gcc-internal-format
+@@ -21091,7 +18986,7 @@
+ #: final.c:1533
+ #, gcc-internal-format
+ msgid "invalid argument %qs to -fdebug-prefix-map"
+-msgstr "argumento inválido %qs para -fdebug-prefix-map"
++msgstr "argumento no válido %qs para -fdebug-prefix-map"
+ 
+ #: final.c:1835
+ #, gcc-internal-format
+@@ -21098,7 +18993,7 @@
  msgid "the frame size of %wd bytes is larger than %wd bytes"
  msgstr "el tamaño de marco de %wd bytes es mayor que %wd bytes"
  
@@ -41113,7 +50717,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "could not open final insn dump file %qs: %m"
  msgstr "no se puede abrir el fichero de volcado de insn final %qs: %m"
-@@ -21113,48 +19709,48 @@
+@@ -21113,48 +19008,48 @@
  msgid "large fixed-point constant implicitly truncated to fixed-point type"
  msgstr "se truncó la constante de coma fija grande implícitamente al tipo de coma fija"
  
@@ -41171,7 +50775,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "fold check: original tree changed by fold"
  msgstr "fold check: el árbol original cambió por un pliegue"
-@@ -21169,17 +19765,17 @@
+@@ -21169,17 +19064,17 @@
  msgid "impossible constraint in %<asm%>"
  msgstr "restricción imposible en %<asm%>"
  
@@ -41192,7 +50796,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "function returns an aggregate"
  msgstr "la función devuelve un agregado"
-@@ -21244,7 +19840,7 @@
+@@ -21244,7 +19139,7 @@
  msgid "%s (program %s)"
  msgstr "%s (programa %s)"
  
@@ -41201,7 +50805,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "unrecognized command line option %qs"
  msgstr "no se reconoce la opción de línea de órdenes %qs"
-@@ -21259,7 +19855,7 @@
+@@ -21259,7 +19154,7 @@
  msgid "%qs is an unknown -save-temps option"
  msgstr "%qs es una opción desconocida para -save-temps"
  
@@ -41210,22 +50814,33 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "%qs is not a valid output file"
  msgid "input file %qs is the same as output file"
-@@ -21315,12 +19911,12 @@
+@@ -21308,241 +19203,241 @@
+ #: gcc.c:5149
+ #, gcc-internal-format
+ msgid "spec %qs invalid"
+-msgstr "la especificación %qs es inválida"
++msgstr "la especificación %qs es no válida"
+ 
+ #: gcc.c:5299
+ #, gcc-internal-format
  msgid "spec %qs has invalid %<%%0%c%>"
- msgstr "la especificación %qs tiene un %<%%0%c%> inválido"
+-msgstr "la especificación %qs tiene un %<%%0%c%> inválido"
++msgstr "la especificación %qs tiene un %<%%0%c%> no válido"
  
 -#: gcc.c:5619
 +#: gcc.c:5620
  #, gcc-internal-format
  msgid "spec %qs has invalid %<%%W%c%>"
- msgstr "la especificación %qs tiene un %<%%W%c%> inválido"
+-msgstr "la especificación %qs tiene un %<%%W%c%> inválido"
++msgstr "la especificación %qs tiene un %<%%W%c%> no válido"
  
 -#: gcc.c:5642
 +#: gcc.c:5643
  #, gcc-internal-format
  msgid "spec %qs has invalid %<%%x%c%>"
- msgstr "la especificación %qs tiene un %<%%x%c%> inválido"
-@@ -21328,221 +19924,221 @@
+-msgstr "la especificación %qs tiene un %<%%x%c%> inválido"
++msgstr "la especificación %qs tiene un %<%%x%c%> no válido"
+ 
  #. Catch the case where a spec string contains something like
  #. '%{foo:%*}'.  i.e. there is no * in the pattern on the left
  #. hand side of the :.
@@ -41276,13 +50891,15 @@ Index: gcc/po/es.po
 +#: gcc.c:6339
  #, gcc-internal-format
  msgid "braced spec %qs is invalid at %qc"
- msgstr "la especificación entre llaves %qs es inválida en %qc"
+-msgstr "la especificación entre llaves %qs es inválida en %qc"
++msgstr "la especificación entre llaves %qs es no válida en %qc"
  
 -#: gcc.c:6433
 +#: gcc.c:6434
  #, gcc-internal-format
  msgid "braced spec body %qs is invalid"
- msgstr "el cuerpo de la especificación entre llaves %qs es inválido"
+-msgstr "el cuerpo de la especificación entre llaves %qs es inválido"
++msgstr "el cuerpo de la especificación entre llaves %qs es no válido"
  
 -#: gcc.c:7039
 +#: gcc.c:7040
@@ -41398,32 +51015,37 @@ Index: gcc/po/es.po
 +#: gcc.c:8517
  #, gcc-internal-format
  msgid "multilib spec %qs is invalid"
- msgstr "la especificación multilib %qs es inválida"
+-msgstr "la especificación multilib %qs es inválida"
++msgstr "la especificación multilib %qs es no válida"
  
 -#: gcc.c:8715
 +#: gcc.c:8719
  #, gcc-internal-format
  msgid "multilib exclusions %qs is invalid"
- msgstr "las exclusiones multilib %qs son inválidas"
+-msgstr "las exclusiones multilib %qs son inválidas"
++msgstr "las exclusiones multilib %qs son no válidas"
  
 -#: gcc.c:8779
 +#: gcc.c:8783
  #, fuzzy, gcc-internal-format
  #| msgid "multilib select %qs is invalid"
  msgid "multilib select %qs %qs is invalid"
- msgstr "la selección multilib %qs es inválida"
+-msgstr "la selección multilib %qs es inválida"
++msgstr "la selección multilib %qs es no válida"
  
 -#: gcc.c:8941
 +#: gcc.c:8945
  #, gcc-internal-format
  msgid "multilib select %qs is invalid"
- msgstr "la selección multilib %qs es inválida"
+-msgstr "la selección multilib %qs es inválida"
++msgstr "la selección multilib %qs es no válida"
  
 -#: gcc.c:8981
 +#: gcc.c:8985
  #, gcc-internal-format
  msgid "multilib exclusion %qs is invalid"
- msgstr "la exclusión multilib %qs es inválida"
+-msgstr "la exclusión multilib %qs es inválida"
++msgstr "la exclusión multilib %qs es no válida"
  
 -#: gcc.c:9196
 +#: gcc.c:9200
@@ -41436,7 +51058,8 @@ Index: gcc/po/es.po
 +#: gcc.c:9339 gcc.c:9344
  #, gcc-internal-format
  msgid "invalid version number %qs"
- msgstr "número de versión %qs inválido"
+-msgstr "número de versión %qs inválido"
++msgstr "número de versión %qs no válido"
  
 -#: gcc.c:9383
 +#: gcc.c:9387
@@ -41491,7 +51114,16 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "too few arguments to function"
  msgid "too few arguments to %%:replace-extension"
-@@ -21681,9 +20277,9 @@
+@@ -21609,7 +19504,7 @@
+ #, fuzzy, gcc-internal-format, gfc-internal-format
+ #| msgid "invalid abstract type for %q+D"
+ msgid "invalid prototype for '%s'"
+-msgstr "tipo abstracto inválido para %q+D"
++msgstr "tipo abstracto no válido para %q+D"
+ 
+ #: gentarget-def.c:131
+ #, gcc-internal-format, gfc-internal-format
+@@ -21681,9 +19576,9 @@
  msgstr "no se puede escribir el fichero PCH"
  
  #: gimple-ssa-isolate-paths.c:290 gimple-ssa-isolate-paths.c:447 tree.c:12589
@@ -41504,7 +51136,16 @@ Index: gcc/po/es.po
  #: cp/typeck.c:1833 cp/typeck.c:3660
  #, gcc-internal-format
  msgid "declared here"
-@@ -21736,214 +20332,214 @@
+@@ -21724,7 +19619,7 @@
+ #: gimplify.c:5194
+ #, gcc-internal-format, gfc-internal-format
+ msgid "invalid lvalue in asm output %d"
+-msgstr "l-valor inválido en la salida asm %d"
++msgstr "l-valor no válido en la salida asm %d"
+ 
+ #: gimplify.c:5336
+ #, gcc-internal-format, gfc-internal-format
+@@ -21736,214 +19631,214 @@
  msgid "memory input %d is not directly addressable"
  msgstr "la entrada de memoria %d no es directamente direccionable"
  
@@ -41688,7 +51329,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid template declaration of %qD"
  msgid "invalid private reduction on %qE"
- msgstr "declaración de la plantilla de %qD inválida"
+-msgstr "declaración de la plantilla de %qD inválida"
++msgstr "declaración de la plantilla de %qD no válida"
  
 -#: gimplify.c:9948 omp-low.c:3622
 +#: gimplify.c:10047 omp-low.c:3616
@@ -41758,7 +51400,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "if this code is reached, the program will abort"
  msgstr "si se alcanza este código, el programa abortará"
-@@ -21958,7 +20554,7 @@
+@@ -21958,7 +19853,7 @@
  msgid "could not open Go dump file %qs: %m"
  msgstr "no se puede abrir el fichero de volcado Go %qs: %m"
  
@@ -41767,7 +51409,7 @@ Index: gcc/po/es.po
  #: objc/objc-act.c:461
  #, gcc-internal-format
  msgid "can%'t open %s: %m"
-@@ -21968,7 +20564,7 @@
+@@ -21968,7 +19863,7 @@
  #, fuzzy, gcc-internal-format
  #| msgid "Graphite loop optimizations cannot be used"
  msgid "Graphite loop optimizations cannot be used (isl is not available)."
@@ -41776,7 +51418,7 @@ Index: gcc/po/es.po
  
  #: hsa-brig.c:899
  #, gcc-internal-format
-@@ -21975,28 +20571,28 @@
+@@ -21975,28 +19870,28 @@
  msgid "Support for HSA does not implement immediate 16 bit FPU operands"
  msgstr ""
  
@@ -41810,7 +51452,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "verification failed: %s"
  msgid "HSA instruction verification failed"
-@@ -22028,7 +20624,7 @@
+@@ -22028,7 +19923,7 @@
  msgid "token %u has y-location == %u"
  msgstr ""
  
@@ -41819,7 +51461,16 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "%qs function cannot have arguments"
  msgid "function cannot be instrumented"
-@@ -22390,7 +20986,7 @@
+@@ -22083,7 +19978,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid initializer for virtual method %qD"
+ msgid "contains additional virtual method %qD"
+-msgstr "inicializador inválido para el método virtual %qD"
++msgstr "inicializador no válido para el método virtual %qD"
+ 
+ #: ipa-devirt.c:921
+ #, gcc-internal-format
+@@ -22390,7 +20285,7 @@
  msgid "could not emit HSAIL for function %s: function cannot be cloned"
  msgstr "%qE no es ni función ni función miembro; no se puede declarar friend"
  
@@ -41828,7 +51479,16 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "ipa inline summary is missing in input file"
  msgstr "falta el resumen de inclusión en línea ipa en el fichero de entrada"
-@@ -22612,12 +21208,12 @@
+@@ -22492,7 +20387,7 @@
+ #, fuzzy, gcc-internal-format, gfc-internal-format
+ #| msgid "invalid rotate insn"
+ msgid "invalid offload table in %s"
+-msgstr "insn rotate inválida"
++msgstr "insn rotate no válida"
+ 
+ #: lto-compress.c:193 lto-compress.c:201 lto-compress.c:222 lto-compress.c:285
+ #: lto-compress.c:293 lto-compress.c:314
+@@ -22612,12 +20507,12 @@
  #: lto-wrapper.c:974
  #, gcc-internal-format
  msgid "environment variable COLLECT_GCC must be set"
@@ -41843,7 +51503,16 @@ Index: gcc/po/es.po
  
  #: lto-wrapper.c:1135 lto-wrapper.c:1191
  #, fuzzy, gcc-internal-format
-@@ -22678,227 +21274,221 @@
+@@ -22635,7 +20530,7 @@
+ #, fuzzy, gcc-internal-format, gfc-internal-format
+ #| msgid "invalid operation (%s)"
+ msgid "invalid format of %s"
+-msgstr "operación inválida (%s)"
++msgstr "operación no válida (%s)"
+ 
+ #: lto-wrapper.c:1301
+ #, fuzzy, gcc-internal-format
+@@ -22678,271 +20573,265 @@
  msgid "attribute(target_clones(\"default\")) is not valid for current target"
  msgstr ""
  
@@ -41957,7 +51626,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid PHI argument"
  msgid "invalid arguments"
- msgstr "argumento PHI inválido"
+-msgstr "argumento PHI inválido"
++msgstr "argumento PHI no válido"
  
 -#: omp-low.c:3498
 +#: omp-low.c:3492
@@ -42105,15 +51775,16 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "invalid exit from OpenMP structured block"
  msgid "invalid exit from %s structured block"
- msgstr "salida inválida de un bloque estructurado OpenMP"
+-msgstr "salida inválida de un bloque estructurado OpenMP"
++msgstr "salida no válida de un bloque estructurado OpenMP"
  
 -#: omp-low.c:18013 omp-low.c:18018
 +#: omp-low.c:18018 omp-low.c:18023
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "invalid entry to OpenMP structured block"
  msgid "invalid entry to %s structured block"
-@@ -22905,44 +21495,44 @@
- msgstr "entrada inválida a un bloque estructurado OpenMP"
+-msgstr "entrada inválida a un bloque estructurado OpenMP"
++msgstr "entrada no válida a un bloque estructurado OpenMP"
  
  #. Otherwise, be vague and lazy, but efficient.
 -#: omp-low.c:18022
@@ -42121,7 +51792,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "invalid branch to/from an OpenMP structured block"
  msgid "invalid branch to/from %s structured block"
- msgstr "ramificación inválida desde/para un bloque estructurado OpenMP"
+-msgstr "ramificación inválida desde/para un bloque estructurado OpenMP"
++msgstr "ramificación no válida desde/para un bloque estructurado OpenMP"
  
 -#: omp-low.c:18823
 +#: omp-low.c:18828
@@ -42165,7 +51837,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "insufficient partitioning available to parallelize loop"
  msgstr ""
-@@ -22964,27 +21554,27 @@
+@@ -22964,27 +20853,27 @@
  msgid "indirect jumps are not available on this target"
  msgstr "El tipo BYTE usado en %C no está disponible en la máquina objetivo"
  
@@ -42198,7 +51870,49 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "valid arguments to %qs are: %s"
  msgstr "los argumentos válidos para %qs son: %s"
-@@ -23527,7 +22117,7 @@
+@@ -23189,12 +21078,12 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid --param value %qs"
+ msgid "invalid --param name %qs"
+-msgstr "valor de --param %qs inválido"
++msgstr "valor de --param %qs no válido"
+ 
+ #: opts.c:2228
+ #, gcc-internal-format
+ msgid "invalid --param value %qs"
+-msgstr "valor de --param %qs inválido"
++msgstr "valor de --param %qs no válido"
+ 
+ #: opts.c:2344
+ #, gcc-internal-format
+@@ -23248,7 +21137,7 @@
+ #: params.c:184
+ #, gcc-internal-format
+ msgid "invalid parameter %qs"
+-msgstr "el parámetro %qs es inválido"
++msgstr "el parámetro %qs es no válido"
+ 
+ #: params.c:190
+ #, gcc-internal-format
+@@ -23304,7 +21193,7 @@
+ #: passes.c:1099 passes.c:1127
+ #, gcc-internal-format, gfc-internal-format
+ msgid "Invalid range %s in option %s"
+-msgstr "Rango %s inválido en la opción %s"
++msgstr "Rango %s no válido en la opción %s"
+ 
+ #: passes.c:1145
+ #, gcc-internal-format, gfc-internal-format
+@@ -23319,7 +21208,7 @@
+ #: passes.c:1385
+ #, gcc-internal-format
+ msgid "invalid pass positioning operation"
+-msgstr "operación de posicionamiento de paso inválido"
++msgstr "operación de posicionamiento de paso no válido"
+ 
+ #: passes.c:1447
+ #, gcc-internal-format
+@@ -23527,7 +21416,7 @@
  msgid "register of %qD used for multiple global register variables"
  msgstr "se usó el registro de %qD para múltiples variables de registro globales"
  
@@ -42207,7 +51921,16 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "conflicts with %qD"
  msgstr "genera un conflicto con %qD"
-@@ -23683,62 +22273,62 @@
+@@ -23661,7 +21550,7 @@
+ #: stmt.c:430
+ #, gcc-internal-format
+ msgid "invalid punctuation %qc in constraint"
+-msgstr "puntuación %qc inválida en la restricción"
++msgstr "puntuación %qc no válida en la restricción"
+ 
+ #: stmt.c:446
+ #, gcc-internal-format
+@@ -23683,62 +21572,62 @@
  msgid "undefined named operand %qs"
  msgstr "operador %qs nombrado sin definir"
  
@@ -42282,7 +52005,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "alignment of array elements is greater than element size"
  msgstr "la alineación de los elementos de la matriz es mayor que el tamaño de los elementos"
-@@ -23965,165 +22555,165 @@
+@@ -23965,165 +21854,165 @@
  msgid "ld returned %d exit status"
  msgstr "ld devolvió el estado de salida %d"
  
@@ -42481,7 +52204,277 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "error closing %s: %m"
  msgstr "error al cerrar %s: %m"
-@@ -24602,7 +23192,7 @@
+@@ -24132,7 +22021,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid volatile use of %qD inside transaction"
+ msgid "invalid use of volatile lvalue inside transaction"
+-msgstr "uso volatile de %qD inválido dentro de la transacción"
++msgstr "uso volatile de %qD no válido dentro de la transacción"
+ 
+ #: trans-mem.c:624
+ #, fuzzy, gcc-internal-format
+@@ -24248,12 +22137,12 @@
+ #: tree-cfg.c:2846
+ #, gcc-internal-format
+ msgid "invalid first operand of MEM_REF"
+-msgstr "primer operando izquierdo de MEM_REF inválido"
++msgstr "primer operando izquierdo de MEM_REF no válido"
+ 
+ #: tree-cfg.c:2852
+ #, gcc-internal-format
+ msgid "invalid offset operand of MEM_REF"
+-msgstr "operando de desplazamiento de MEM_REF inválido"
++msgstr "operando de desplazamiento de MEM_REF no válido"
+ 
+ #: tree-cfg.c:2865
+ #, gcc-internal-format
+@@ -24278,7 +22167,7 @@
+ #: tree-cfg.c:2914
+ #, gcc-internal-format
+ msgid "invalid conditional operand"
+-msgstr "operando condicional inválido"
++msgstr "operando condicional no válido"
+ 
+ #: tree-cfg.c:2937
+ #, gcc-internal-format
+@@ -24288,7 +22177,7 @@
+ #: tree-cfg.c:2949
+ #, gcc-internal-format
+ msgid "invalid position or size operand to BIT_FIELD_REF"
+-msgstr "posición o tamaño de operando inválido para BIT_FIELD_REF"
++msgstr "posición o tamaño de operando no válido para BIT_FIELD_REF"
+ 
+ #: tree-cfg.c:2956
+ #, gcc-internal-format
+@@ -24305,7 +22194,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid position or size operand to BIT_FIELD_REF"
+ msgid "position plus size exceeds size of referenced object in BIT_FIELD_REF"
+-msgstr "posición o tamaño de operando inválido para BIT_FIELD_REF"
++msgstr "posición o tamaño de operando no válido para BIT_FIELD_REF"
+ 
+ #: tree-cfg.c:3006
+ #, gcc-internal-format
+@@ -24315,42 +22204,42 @@
+ #: tree-cfg.c:3016
+ #, gcc-internal-format
+ msgid "invalid reference prefix"
+-msgstr "prefijo de referencia inválido"
++msgstr "prefijo de referencia no válido"
+ 
+ #: tree-cfg.c:3027
+ #, gcc-internal-format
+ msgid "invalid operand to plus/minus, type is a pointer"
+-msgstr "operando inválido para más/menos, el tipo es un puntero"
++msgstr "operando no válido para más/menos, el tipo es un puntero"
+ 
+ #: tree-cfg.c:3038
+ #, gcc-internal-format
+ msgid "invalid operand to pointer plus, first operand is not a pointer"
+-msgstr "operando inválido para puntero más, el primer operando no es un puntero"
++msgstr "operando no válido para puntero más, el primer operando no es un puntero"
+ 
+ #: tree-cfg.c:3044
+ #, gcc-internal-format
+ msgid "invalid operand to pointer plus, second operand is not an integer type of appropriate width"
+-msgstr "operando inválido para puntero más, el segundo operando no es un tipo entero de la anchura apropiada"
++msgstr "operando no válido para puntero más, el segundo operando no es un tipo entero de la anchura apropiada"
+ 
+ #: tree-cfg.c:3095
+ #, gcc-internal-format
+ msgid "invalid CASE_CHAIN"
+-msgstr "CASE_CHAIN inválido"
++msgstr "CASE_CHAIN no válido"
+ 
+ #: tree-cfg.c:3123
+ #, gcc-internal-format
+ msgid "invalid expression for min lvalue"
+-msgstr "expresión inválida para el l-valor min"
++msgstr "expresión no válida para el l-valor min"
+ 
+ #: tree-cfg.c:3134
+ #, gcc-internal-format
+ msgid "invalid operand in indirect reference"
+-msgstr "operando inválido en la referencia indirecta"
++msgstr "operando no válido en la referencia indirecta"
+ 
+ #: tree-cfg.c:3163
+ #, gcc-internal-format
+ msgid "invalid operands to array reference"
+-msgstr "operandos inválidos en la referencia de matriz"
++msgstr "operandos no válidos en la referencia de matriz"
+ 
+ #: tree-cfg.c:3174
+ #, gcc-internal-format
+@@ -24385,22 +22274,22 @@
+ #: tree-cfg.c:3243
+ #, gcc-internal-format
+ msgid "invalid address operand in MEM_REF"
+-msgstr "operando de dirección inválido en MEM_REF"
++msgstr "operando de dirección no válido en MEM_REF"
+ 
+ #: tree-cfg.c:3250
+ #, gcc-internal-format
+ msgid "invalid offset operand in MEM_REF"
+-msgstr "operando de desplazamiento inválido en MEM_REF"
++msgstr "operando de desplazamiento no válido en MEM_REF"
+ 
+ #: tree-cfg.c:3260
+ #, gcc-internal-format
+ msgid "invalid address operand in TARGET_MEM_REF"
+-msgstr "operando de dirección inválido en TARGET_MEM_REF"
++msgstr "operando de dirección no válido en TARGET_MEM_REF"
+ 
+ #: tree-cfg.c:3267
+ #, gcc-internal-format
+ msgid "invalid offset operand in TARGET_MEM_REF"
+-msgstr "operando de desplazamiento inválido en TARGET_MEM_REF"
++msgstr "operando de desplazamiento no válido en TARGET_MEM_REF"
+ 
+ #: tree-cfg.c:3321
+ #, gcc-internal-format
+@@ -24415,7 +22304,7 @@
+ #: tree-cfg.c:3337
+ #, gcc-internal-format
+ msgid "invalid function in gimple call"
+-msgstr "función inválida en la llamada gimple"
++msgstr "función no válida en la llamada gimple"
+ 
+ #: tree-cfg.c:3347
+ #, gcc-internal-format
+@@ -24425,12 +22314,12 @@
+ #: tree-cfg.c:3358
+ #, gcc-internal-format
+ msgid "invalid pure const state for function"
+-msgstr "estado const pure inválido para la función"
++msgstr "estado const pure no válido para la función"
+ 
+ #: tree-cfg.c:3367
+ #, gcc-internal-format
+ msgid "invalid LHS in gimple call"
+-msgstr "LHS inválido en la llamada gimple"
++msgstr "LHS no válido en la llamada gimple"
+ 
+ #: tree-cfg.c:3377
+ #, gcc-internal-format
+@@ -24440,12 +22329,12 @@
+ #: tree-cfg.c:3393
+ #, gcc-internal-format
+ msgid "invalid conversion in gimple call"
+-msgstr "conversión inválida en la llamada gimple"
++msgstr "conversión no válida en la llamada gimple"
+ 
+ #: tree-cfg.c:3402
+ #, gcc-internal-format
+ msgid "invalid static chain in gimple call"
+-msgstr "cadena estática inválida en la llamada gimple"
++msgstr "cadena estática no válida en la llamada gimple"
+ 
+ #: tree-cfg.c:3413
+ #, gcc-internal-format
+@@ -24455,12 +22344,12 @@
+ #: tree-cfg.c:3430
+ #, gcc-internal-format
+ msgid "invalid argument to gimple call"
+-msgstr "argumento inválido en la llamada gimple"
++msgstr "argumento no válido en la llamada gimple"
+ 
+ #: tree-cfg.c:3450
+ #, gcc-internal-format
+ msgid "invalid operands in gimple comparison"
+-msgstr "operandos inválidos en la comparación gimple"
++msgstr "operandos no válidos en la comparación gimple"
+ 
+ #: tree-cfg.c:3466
+ #, gcc-internal-format
+@@ -24480,12 +22369,12 @@
+ #: tree-cfg.c:3506
+ #, gcc-internal-format
+ msgid "invalid vector comparison resulting type"
+-msgstr "tipo resultante inválido de la comparación de vectores"
++msgstr "tipo resultante no válido de la comparación de vectores"
+ 
+ #: tree-cfg.c:3513
+ #, gcc-internal-format
+ msgid "bogus comparison result type"
+-msgstr "tipo resultante inválido de la comparación"
++msgstr "tipo resultante no válido de la comparación"
+ 
+ #: tree-cfg.c:3535
+ #, gcc-internal-format
+@@ -24495,32 +22384,32 @@
+ #: tree-cfg.c:3541
+ #, gcc-internal-format
+ msgid "invalid operand in unary operation"
+-msgstr "operando inválido en la operación unaria"
++msgstr "operando no válido en la operación unaria"
+ 
+ #: tree-cfg.c:3573
+ #, gcc-internal-format
+ msgid "invalid types in nop conversion"
+-msgstr "tipos inválidos en la conversión nop"
++msgstr "tipos no válidos en la conversión nop"
+ 
+ #: tree-cfg.c:3588
+ #, gcc-internal-format
+ msgid "invalid types in address space conversion"
+-msgstr "tipos inválidos en la conversión nop"
++msgstr "tipos no válidos en la conversión nop"
+ 
+ #: tree-cfg.c:3602
+ #, gcc-internal-format
+ msgid "invalid types in fixed-point conversion"
+-msgstr "tipos inválidos en la conversión de coma fija"
++msgstr "tipos no válidos en la conversión de coma fija"
+ 
+ #: tree-cfg.c:3617
+ #, gcc-internal-format
+ msgid "invalid types in conversion to floating point"
+-msgstr "tipos inválidos en la conversión a coma flotante"
++msgstr "tipos no válidos en la conversión a coma flotante"
+ 
+ #: tree-cfg.c:3632
+ #, gcc-internal-format
+ msgid "invalid types in conversion to integer"
+-msgstr "tipos inválidos en la conversión a entero"
++msgstr "tipos no válidos en la conversión a entero"
+ 
+ #: tree-cfg.c:3646
+ #, gcc-internal-format
+@@ -24540,7 +22429,7 @@
+ #: tree-cfg.c:3706
+ #, gcc-internal-format
+ msgid "invalid operands in binary operation"
+-msgstr "operandos inválidos en la operación binaria"
++msgstr "operandos no válidos en la operación binaria"
+ 
+ #: tree-cfg.c:3721
+ #, gcc-internal-format
+@@ -24560,12 +22449,12 @@
+ #: tree-cfg.c:3809
+ #, gcc-internal-format
+ msgid "invalid non-vector operands to vector valued plus"
+-msgstr "operandos que no son vectores inválidos para un vector valuado con más"
++msgstr "operandos que no son vectores no válidos para un vector valuado con más"
+ 
+ #: tree-cfg.c:3820
+ #, gcc-internal-format
+ msgid "invalid (pointer) operands to plus/minus"
+-msgstr "operandos (punteros) inválidos para más/menos"
++msgstr "operandos (punteros) no válidos para más/menos"
+ 
+ #: tree-cfg.c:3834
+ #, gcc-internal-format
+@@ -24585,7 +22474,7 @@
+ #: tree-cfg.c:3951
+ #, gcc-internal-format
+ msgid "invalid operands in ternary operation"
+-msgstr "operandos inválidos en la operación terniaria"
++msgstr "operandos no válidos en la operación terniaria"
+ 
+ #: tree-cfg.c:3967
+ #, gcc-internal-format
+@@ -24602,7 +22491,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 ""
  
@@ -42490,7 +52483,104 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "type mismatch in conditional expression"
  msgstr "los tipos de datos no coinciden en la expresión condicional"
-@@ -24958,42 +23548,42 @@
+@@ -24625,7 +22514,7 @@
+ #: tree-cfg.c:4058
+ #, gcc-internal-format
+ msgid "invalid mask type in vector permute expression"
+-msgstr "tipo de máscara inválido en la expresión de permutación de vector"
++msgstr "tipo de máscara no válido en la expresión de permutación de vector"
+ 
+ #: tree-cfg.c:4074
+ #, fuzzy, gcc-internal-format
+@@ -24652,7 +22541,7 @@
+ #: tree-cfg.c:4149
+ #, gcc-internal-format
+ msgid "invalid operand in unary expression"
+-msgstr "operando inválido en la expresión unaria"
++msgstr "operando no válido en la expresión unaria"
+ 
+ #: tree-cfg.c:4163
+ #, gcc-internal-format
+@@ -24662,7 +22551,7 @@
+ #: tree-cfg.c:4189 tree-cfg.c:4215
+ #, gcc-internal-format
+ msgid "invalid rhs for gimple memory store"
+-msgstr "rhs inválido para el almacenamiento de memoria gimple"
++msgstr "rhs no válido para el almacenamiento de memoria gimple"
+ 
+ #: tree-cfg.c:4249 tree-cfg.c:4267 tree-cfg.c:4281
+ #, gcc-internal-format
+@@ -24693,12 +22582,12 @@
+ #: tree-cfg.c:4363
+ #, gcc-internal-format
+ msgid "invalid operand in return statement"
+-msgstr "operando inválido en la declaración return"
++msgstr "operando no válido en la declaración return"
+ 
+ #: tree-cfg.c:4378
+ #, gcc-internal-format
+ msgid "invalid conversion in return statement"
+-msgstr "conversión inválida en la declaración return"
++msgstr "conversión no válida en la declaración return"
+ 
+ #: tree-cfg.c:4402
+ #, gcc-internal-format
+@@ -24708,13 +22597,13 @@
+ #: tree-cfg.c:4421
+ #, gcc-internal-format
+ msgid "invalid operand to switch statement"
+-msgstr "operando inválido para la declaración switch"
++msgstr "operando no válido para la declaración switch"
+ 
+ #: tree-cfg.c:4429
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid operand to switch statement"
+ msgid "non-integral type switch statement"
+-msgstr "operando inválido para la declaración switch"
++msgstr "operando no válido para la declaración switch"
+ 
+ #: tree-cfg.c:4437
+ #, fuzzy, gcc-internal-format
+@@ -24732,7 +22621,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid operand to switch statement"
+ msgid "invalid case range in switch statement"
+-msgstr "operando inválido para la declaración switch"
++msgstr "operando no válido para la declaración switch"
+ 
+ #: tree-cfg.c:4466
+ #, fuzzy, gcc-internal-format
+@@ -24770,17 +22659,17 @@
+ #: tree-cfg.c:4563
+ #, gcc-internal-format
+ msgid "invalid comparison code in gimple cond"
+-msgstr "código de comparación inválido en la condición gimple"
++msgstr "código de comparación no válido en la condición gimple"
+ 
+ #: tree-cfg.c:4571
+ #, gcc-internal-format
+ msgid "invalid labels in gimple cond"
+-msgstr "etiquetas inválidas en la condición gimple"
++msgstr "etiquetas no válidas en la condición gimple"
+ 
+ #: tree-cfg.c:4654 tree-cfg.c:4663
+ #, gcc-internal-format
+ msgid "invalid PHI result"
+-msgstr "resultado PHI inválido"
++msgstr "resultado PHI no válido"
+ 
+ #: tree-cfg.c:4673
+ #, gcc-internal-format
+@@ -24790,7 +22679,7 @@
+ #: tree-cfg.c:4687
+ #, gcc-internal-format
+ msgid "invalid PHI argument"
+-msgstr "argumento PHI inválido"
++msgstr "argumento PHI no válido"
+ 
+ #: tree-cfg.c:4694
+ #, gcc-internal-format, gfc-internal-format
+@@ -24958,42 +22847,42 @@
  msgid "memory access check always fail"
  msgstr ""
  
@@ -42541,7 +52631,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "chkp_walk_pointer_assignments: unexpected RHS type: %s"
  msgstr ""
-@@ -25103,12 +23693,12 @@
+@@ -25103,12 +22992,12 @@
  #: tree-inline.c:3756
  #, gcc-internal-format
  msgid "function %q+F can never be inlined because it is suppressed using -fno-inline"
@@ -42556,7 +52646,7 @@ Index: gcc/po/es.po
  
  #: tree-inline.c:4425
  #, gcc-internal-format
-@@ -25198,27 +23788,27 @@
+@@ -25198,27 +23087,27 @@
  msgid "stmt volatile flag not up-to-date"
  msgstr "la opción volatile de stmt no está actualizada"
  
@@ -42589,7 +52679,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%qE may be used uninitialized in this function"
  msgstr "puede ser que se utilice %qE sin inicializar en esta función"
-@@ -25379,7 +23969,7 @@
+@@ -25379,7 +23268,7 @@
  msgid "vector shuffling operation will be expanded piecewise"
  msgstr "la operación de ordenamiento vectorial se expandirá por piezas"
  
@@ -42598,7 +52688,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "vectorization did not happen for a simd loop"
  msgstr ""
-@@ -25484,10 +24074,11 @@
+@@ -25484,10 +23373,11 @@
  #: c-family/c-common.c:9280 c-family/c-common.c:9303 c-family/c-common.c:9342
  #: c-family/c-common.c:9424 c-family/c-common.c:9467 c-family/c-common.c:9604
  #: config/darwin.c:2021 config/arm/arm.c:6488 config/arm/arm.c:6516
@@ -42614,7 +52704,7 @@ Index: gcc/po/es.po
  #: lto/lto-lang.c:243
  #, gcc-internal-format
  msgid "%qE attribute ignored"
-@@ -25723,7 +24314,7 @@
+@@ -25723,7 +23613,7 @@
  #, fuzzy, gcc-internal-format
  #| msgid "environment variable %qs not defined"
  msgid "Main variant is not defined"
@@ -42623,7 +52713,25 @@ Index: gcc/po/es.po
  
  #: tree.c:13545
  #, gcc-internal-format
-@@ -26168,8 +24759,8 @@
+@@ -25964,7 +23854,7 @@
+ #: varasm.c:1366
+ #, gcc-internal-format
+ msgid "invalid register name for %q+D"
+-msgstr "nombre de registro inválido para %q+D"
++msgstr "nombre de registro no válido para %q+D"
+ 
+ #: varasm.c:1368
+ #, gcc-internal-format
+@@ -26029,7 +23919,7 @@
+ #: varasm.c:5064
+ #, gcc-internal-format
+ msgid "invalid initial value for member %qE"
+-msgstr "valor inicial inválido para el miembro %qE"
++msgstr "valor inicial no válido para el miembro %qE"
+ 
+ #: varasm.c:5324
+ #, fuzzy, gcc-internal-format
+@@ -26168,8 +24058,8 @@
  msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support"
  msgstr "la longitud de la cadena %qd es mayor que la longitud %qd, la máxima que los compiladores ISO C%d deben admitir"
  
@@ -42634,7 +52742,34 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "overflow in constant expression"
  msgstr "desbordamiento en la expresión constante"
-@@ -26543,12 +25134,12 @@
+@@ -26228,7 +24118,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid operand in unary expression"
+ msgid "logical %<or%> of equal expressions"
+-msgstr "operando inválido en la expresión unaria"
++msgstr "operando no válido en la expresión unaria"
+ 
+ #: c-family/c-common.c:1326
+ #, fuzzy, gcc-internal-format
+@@ -26358,7 +24248,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid parameter type %qT"
+ msgid "%<_Atomic%>-qualified parameter type %qT of %q+D"
+-msgstr "tipo de parámetro %qT inválido"
++msgstr "tipo de parámetro %qT no válido"
+ 
+ #: c-family/c-common.c:1924
+ #, gcc-internal-format
+@@ -26500,7 +24390,7 @@
+ #: c-family/c-common.c:3866
+ #, gcc-internal-format
+ msgid "invalid operands to binary %s (have %qT and %qT)"
+-msgstr "operandos inválidos para el binario %s (se tiene %qT y %qT)"
++msgstr "operandos no válidos para el binario %s (se tiene %qT y %qT)"
+ 
+ #: c-family/c-common.c:4116
+ #, gcc-internal-format
+@@ -26543,20 +24433,20 @@
  msgid "the compiler can assume that the address of %qD will always evaluate to %<true%>"
  msgstr "la dirección de %qD siempre se evaluará como %<true%>"
  
@@ -42648,8 +52783,39 @@ Index: gcc/po/es.po
 +#: c-family/c-common.c:4668 c/c-decl.c:4126 c/c-typeck.c:13534
  #, gcc-internal-format
  msgid "invalid use of %<restrict%>"
- msgstr "uso inválido de %<restrict%>"
-@@ -26675,6 +25266,7 @@
+-msgstr "uso inválido de %<restrict%>"
++msgstr "uso no válido de %<restrict%>"
+ 
+ #: c-family/c-common.c:4868
+ #, gcc-internal-format
+ msgid "invalid application of %<sizeof%> to a function type"
+-msgstr "aplicación inválida de %<sizeof%> a un tipo de función"
++msgstr "aplicación no válida de %<sizeof%> a un tipo de función"
+ 
+ #: c-family/c-common.c:4878
+ #, gcc-internal-format
+@@ -26571,17 +24461,17 @@
+ #: c-family/c-common.c:4892
+ #, gcc-internal-format
+ msgid "invalid application of %qs to a void type"
+-msgstr "aplicación inválida de %qs a un tipo void"
++msgstr "aplicación no válida de %qs a un tipo void"
+ 
+ #: c-family/c-common.c:4901
+ #, gcc-internal-format
+ msgid "invalid application of %qs to incomplete type %qT"
+-msgstr "aplicación inválida de %qs a un tipo incompleto %qT"
++msgstr "aplicación no válida de %qs a un tipo incompleto %qT"
+ 
+ #: c-family/c-common.c:4909
+ #, gcc-internal-format
+ msgid "invalid application of %qs to array type %qT of incomplete element type"
+-msgstr "aplicación inválida de %qs a un tipo matriz %qT de tipo de elemento incompleto"
++msgstr "aplicación no válida de %qs a un tipo matriz %qT de tipo de elemento incompleto"
+ 
+ #: c-family/c-common.c:4951
+ #, gcc-internal-format
+@@ -26675,6 +24565,7 @@
  msgstr "se descarta el atributo %qE para el campo de tipo %qT"
  
  #: c-family/c-common.c:6684 c-family/c-common.c:6712 c-family/c-common.c:6808
@@ -42657,7 +52823,16 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "%qE attribute conflicts with attribute %s"
  msgid "%qE attribute ignored due to conflict with attribute %qs"
-@@ -26984,7 +25576,7 @@
+@@ -26766,7 +24657,7 @@
+ #: c-family/c-common.c:7530
+ #, gcc-internal-format
+ msgid "invalid pointer mode %qs"
+-msgstr "modo de puntero %qs inválido"
++msgstr "modo de puntero %qs no válido"
+ 
+ #: c-family/c-common.c:7547
+ #, gcc-internal-format
+@@ -26984,7 +24875,7 @@
  msgid "assume_aligned parameter not integer constant"
  msgstr "la alineación solicitada no es una constante entera"
  
@@ -42666,7 +52841,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%<__simd__%> attribute cannot be used in the same function marked as a Cilk Plus SIMD-enabled function"
  msgstr ""
-@@ -27014,7 +25606,7 @@
+@@ -27014,7 +24905,7 @@
  msgid "type was previously declared %qE"
  msgstr "el tipo se declaró previamente %qE"
  
@@ -42675,9 +52850,12 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "%qs can only be specified for functions"
  msgid "%<transaction_safe_dynamic%> may only be specified for a virtual function"
-@@ -27051,12 +25643,12 @@
+@@ -27049,14 +24940,14 @@
+ #: c-family/c-common.c:9001
+ #, gcc-internal-format
  msgid "invalid vector type for attribute %qE"
- msgstr "tipo de vector inválido para el atributo %qE"
+-msgstr "tipo de vector inválido para el atributo %qE"
++msgstr "tipo de vector no válido para el atributo %qE"
  
 -#: c-family/c-common.c:9007 ada/gcc-interface/utils.c:3766
 +#: c-family/c-common.c:9007 ada/gcc-interface/utils.c:3772
@@ -42690,7 +52868,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "zero vector size"
  msgstr "vector de tamaño cero"
-@@ -27066,22 +25658,22 @@
+@@ -27066,22 +24957,22 @@
  msgid "number of components of the vector not a power of two"
  msgstr "el número de componentes del vector no es una potencia de dos"
  
@@ -42704,7 +52882,8 @@ Index: gcc/po/es.po
 +#: c-family/c-common.c:9068 ada/gcc-interface/utils.c:5866
  #, gcc-internal-format, gfc-internal-format
  msgid "nonnull argument has invalid operand number (argument %lu)"
- msgstr "un argumento que no es nulo tiene un número de operando inválido (argumento %lu)"
+-msgstr "un argumento que no es nulo tiene un número de operando inválido (argumento %lu)"
++msgstr "un argumento que no es nulo tiene un número de operando no válido (argumento %lu)"
  
 -#: c-family/c-common.c:9090 ada/gcc-interface/utils.c:5882
 +#: c-family/c-common.c:9090 ada/gcc-interface/utils.c:5888
@@ -42717,7 +52896,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
  msgstr "un argumento que no es nulo hace referencia a un operando que no es puntero (argumento %lu, operando %lu)"
-@@ -27121,12 +25713,12 @@
+@@ -27121,12 +25012,12 @@
  msgid "%qE attribute only applies to variadic functions"
  msgstr "el atributo %qE se aplica solamente a funciones variadic"
  
@@ -42732,7 +52911,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "requested position is less than zero"
  msgstr "la posición solicitada es menor a cero"
-@@ -27350,17 +25942,17 @@
+@@ -27350,17 +25241,17 @@
  msgid "function %qD used as %<asm%> output"
  msgstr "se usó la función %qD como salida %<asm%>"
  
@@ -42753,16 +52932,59 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "decrement of read-only location %qE"
  msgstr "decremento de la ubicación de sólo lectura %qE"
-@@ -27426,7 +26018,7 @@
+@@ -27398,35 +25289,35 @@
+ #: c-family/c-common.c:10500
+ #, gcc-internal-format
+ msgid "invalid type argument (have %qT)"
+-msgstr "argumento de tipo inválido (se tiene %qT)"
++msgstr "argumento de tipo no válido (se tiene %qT)"
+ 
+ #: c-family/c-common.c:10504
+ #, gcc-internal-format
+ msgid "invalid type argument of array indexing (have %qT)"
+-msgstr "argumento de tipo inválido de índice de matriz (se tiene %qT)"
++msgstr "argumento de tipo no válido de índice de matriz (se tiene %qT)"
+ 
+ #: c-family/c-common.c:10509
+ #, gcc-internal-format
+ msgid "invalid type argument of unary %<*%> (have %qT)"
+-msgstr "argumento de tipo inválido del unario %<*%> (se tiene %qT)"
++msgstr "argumento de tipo no válido del unario %<*%> (se tiene %qT)"
+ 
+ #: c-family/c-common.c:10514
+ #, gcc-internal-format
+ msgid "invalid type argument of %<->%> (have %qT)"
+-msgstr "argumento de tipo inválido de %<->%> (se tiene %qT)"
++msgstr "argumento de tipo no válido de %<->%> (se tiene %qT)"
+ 
+ #: c-family/c-common.c:10519
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid type argument of %<->%> (have %qT)"
+ msgid "invalid type argument of %<->*%> (have %qT)"
+-msgstr "argumento de tipo inválido de %<->%> (se tiene %qT)"
++msgstr "argumento de tipo no válido de %<->%> (se tiene %qT)"
+ 
+ #: c-family/c-common.c:10524
+ #, gcc-internal-format
  msgid "invalid type argument of implicit conversion (have %qT)"
- msgstr "argumento de tipo inválido en la conversión implícita (se tiene %qT)"
+-msgstr "argumento de tipo inválido en la conversión implícita (se tiene %qT)"
++msgstr "argumento de tipo no válido en la conversión implícita (se tiene %qT)"
  
 -#: c-family/c-common.c:10666 cp/init.c:2782 cp/init.c:2801
 +#: c-family/c-common.c:10666 cp/init.c:2801 cp/init.c:2820
  #, gcc-internal-format
  msgid "size of array is too large"
  msgstr "el tamaño de la matriz es demasiado grande"
-@@ -27587,7 +26179,7 @@
+@@ -27475,7 +25366,7 @@
+ #: c-family/c-common.c:10957
+ #, gcc-internal-format
+ msgid "invalid memory model argument %d of %qE"
+-msgstr "argumento de modelo de memoria %d inválido de %qE"
++msgstr "argumento de modelo de memoria %d no válido de %qE"
+ 
+ #: c-family/c-common.c:10964
+ #, gcc-internal-format
+@@ -27587,7 +25478,7 @@
  msgid "division by zero"
  msgstr "división por cero"
  
@@ -42771,7 +52993,7 @@ Index: gcc/po/es.po
  #: cp/typeck.c:4820
  #, gcc-internal-format
  msgid "comparison between types %qT and %qT"
-@@ -27648,7 +26240,7 @@
+@@ -27648,7 +25539,7 @@
  msgstr "el valor del índice está fuera del límite"
  
  #: c-family/c-common.c:12539 c-family/c-common.c:12587
@@ -42780,7 +53002,34 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "conversion of scalar to vector involves truncation"
  msgid "conversion of scalar %qT to vector %qT involves truncation"
-@@ -28140,7 +26732,7 @@
+@@ -27681,7 +25572,7 @@
+ #: c-family/c-format.c:175 c-family/c-format.c:362
+ #, gcc-internal-format
+ msgid "format string has invalid operand number"
+-msgstr "la cadena de formato tiene un número de operadores inválido"
++msgstr "la cadena de formato tiene un número de operadores no válido"
+ 
+ #: c-family/c-format.c:191
+ #, gcc-internal-format
+@@ -27731,7 +25622,7 @@
+ #: c-family/c-format.c:368
+ #, gcc-internal-format
+ msgid "%<...%> has invalid operand number"
+-msgstr "%<...%> tiene un número de operandos inválido"
++msgstr "%<...%> tiene un número de operandos no válido"
+ 
+ #: c-family/c-format.c:375
+ #, gcc-internal-format
+@@ -28128,7 +26019,7 @@
+ #: c-family/c-omp.c:199
+ #, gcc-internal-format
+ msgid "invalid expression type for %<#pragma omp atomic%>"
+-msgstr "tipo de expresión inválido para %<#pragma omp atomic%>"
++msgstr "tipo de expresión no válido para %<#pragma omp atomic%>"
+ 
+ #: c-family/c-omp.c:276
+ #, gcc-internal-format
+@@ -28140,10 +26031,10 @@
  msgid "%<#pragma omp atomic capture%> uses two different variables for memory"
  msgstr "%<#pragma omp atomic capture%> usa dos variables diferentes para la memoria"
  
@@ -42788,8 +53037,12 @@ Index: gcc/po/es.po
 +#: c-family/c-omp.c:480 cp/semantics.c:8081
  #, gcc-internal-format
  msgid "invalid type for iteration variable %qE"
- msgstr "tipo inválido para la variable de iteración %qE"
-@@ -28150,22 +26742,22 @@
+-msgstr "tipo inválido para la variable de iteración %qE"
++msgstr "tipo no válido para la variable de iteración %qE"
+ 
+ #: c-family/c-omp.c:493
+ #, gcc-internal-format
+@@ -28150,37 +26041,37 @@
  msgid "%qE is not initialized"
  msgstr "%qE no está inicializado"
  
@@ -42803,7 +53056,8 @@ Index: gcc/po/es.po
 +#: c-family/c-omp.c:599 cp/semantics.c:7633
  #, gcc-internal-format
  msgid "invalid controlling predicate"
- msgstr "predicado controlador inválido"
+-msgstr "predicado controlador inválido"
++msgstr "predicado controlador no válido"
  
 -#: c-family/c-omp.c:606 cp/semantics.c:7971
 +#: c-family/c-omp.c:606 cp/semantics.c:7975
@@ -42815,8 +53069,26 @@ Index: gcc/po/es.po
 +#: c-family/c-omp.c:670 cp/semantics.c:7748
  #, gcc-internal-format
  msgid "invalid increment expression"
- msgstr "expresión de incremento inválida"
-@@ -28188,12 +26780,12 @@
+-msgstr "expresión de incremento inválida"
++msgstr "expresión de incremento no válida"
+ 
+ #: c-family/c-omp.c:733
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid type for iteration variable %qE"
+ msgid "initializer expression refers to iteration variable %qD"
+-msgstr "tipo inválido para la variable de iteración %qE"
++msgstr "tipo no válido para la variable de iteración %qE"
+ 
+ #: c-family/c-omp.c:737
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid type for iteration variable %qE"
+ msgid "condition expression refers to iteration variable %qD"
+-msgstr "tipo inválido para la variable de iteración %qE"
++msgstr "tipo no válido para la variable de iteración %qE"
+ 
+ #: c-family/c-omp.c:741
+ #, fuzzy, gcc-internal-format
+@@ -28188,12 +26079,12 @@
  msgid "increment expression refers to iteration variable %qD"
  msgstr "incremento de la variable de sólo lectura %qD"
  
@@ -42831,7 +53103,34 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "%qE is not a function name"
  msgid "%qD is not an function argument"
-@@ -28702,7 +27294,7 @@
+@@ -28370,7 +26261,7 @@
+ #: c-family/c-pch.c:430
+ #, gcc-internal-format, gfc-internal-format
+ msgid "%s: PCH file was invalid"
+-msgstr "%s: el fichero PCH era inválido"
++msgstr "%s: el fichero PCH era no válido"
+ 
+ #: c-family/c-pragma.c:92
+ #, gcc-internal-format
+@@ -28390,7 +26281,7 @@
+ #: c-family/c-pragma.c:146 c-family/c-pragma.c:178
+ #, gcc-internal-format
+ msgid "invalid constant in %<#pragma pack%> - ignored"
+-msgstr "constante inválida en %<#pragma pack%> - se descarta"
++msgstr "constante no válida en %<#pragma pack%> - se descarta"
+ 
+ #: c-family/c-pragma.c:150 c-family/c-pragma.c:192
+ #, gcc-internal-format
+@@ -28640,7 +26531,7 @@
+ #: c-family/c-pragma.c:1164
+ #, gcc-internal-format
+ msgid "invalid location for %<pragma %s%>, ignored"
+-msgstr "ubicación inválida en %<pragma %s%>, se descarta"
++msgstr "ubicación no válida en %<pragma %s%>, se descarta"
+ 
+ #: c-family/c-pragma.c:1171 c-family/c-pragma.c:1185
+ #, gcc-internal-format
+@@ -28702,7 +26593,7 @@
  msgid "<erroneous-expression>"
  msgstr "<expresión-errónea>"
  
@@ -42840,7 +53139,25 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "<return-value>"
  msgstr "<valor-devolución>"
-@@ -28777,7 +27369,7 @@
+@@ -28728,7 +26619,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid use of %<auto%>"
+ msgid "invalid use of %<_Cilk_spawn%>"
+-msgstr "uso inválido de %<auto%>"
++msgstr "uso no válido de %<auto%>"
+ 
+ #: c-family/cilk.c:392
+ #, fuzzy, gcc-internal-format
+@@ -28745,7 +26636,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid use of %qD in linkage specification"
+ msgid "invalid use of label %q+D in %<_Cilk_spawn%>"
+-msgstr "uso inválido de %qD en la especificación de enlace"
++msgstr "uso no válido de %qD en la especificación de enlace"
+ 
+ #: c-family/cilk.c:991
+ #, gcc-internal-format
+@@ -28777,7 +26668,7 @@
  #, fuzzy, gcc-internal-format
  #| msgid "multiple function type attributes specified"
  msgid "multiple -mcpu= options specified."
@@ -42849,7 +53166,16 @@ Index: gcc/po/es.po
  
  #: common/config/arc/arc-common.c:127
  #, fuzzy, gcc-internal-format
-@@ -28866,7 +27458,7 @@
+@@ -28798,7 +26689,7 @@
+ #: common/config/bfin/bfin-common.c:358
+ #, gcc-internal-format, gfc-internal-format
+ msgid "-mcpu=%s has invalid silicon revision"
+-msgstr "-mcpu=%s tiene una versión de silicio inválida"
++msgstr "-mcpu=%s tiene una versión de silicio no válida"
+ 
+ #: common/config/i386/i386-common.c:985
+ #, gcc-internal-format
+@@ -28866,7 +26757,7 @@
  msgid "for the option -mcache-block-size=X, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
  msgstr ""
  
@@ -42858,7 +53184,32 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "unknown -mdebug-%s switch"
  msgstr "interruptor -mdebug-%s desconocido"
-@@ -29182,7 +27774,7 @@
+@@ -28895,13 +26786,13 @@
+ #: common/config/rx/rx-common.c:61
+ #, gcc-internal-format
+ msgid "the RX200 cpu does not have FPU hardware"
+-msgstr "el cpu RX200 no tiene FPU de hardware"
++msgstr "la cpu RX200 no tiene FPU de hardware"
+ 
+ #: common/config/rx/rx-common.c:63
+ #, fuzzy, gcc-internal-format
+ #| msgid "the RX200 cpu does not have FPU hardware"
+ msgid "the RX100 cpu does not have FPU hardware"
+-msgstr "el cpu RX200 no tiene FPU de hardware"
++msgstr "la cpu RX200 no tiene FPU de hardware"
+ 
+ #: common/config/s390/s390-common.c:95
+ #, gcc-internal-format
+@@ -29120,7 +27011,7 @@
+ #: config/sol2-c.c:100
+ #, gcc-internal-format
+ msgid "invalid alignment for %<#pragma align%>, ignoring"
+-msgstr "alineación inválida para %<#pragma align%>, se descarta"
++msgstr "alineación no válida para %<#pragma align%>, se descarta"
+ 
+ #: config/sol2-c.c:115
+ #, gcc-internal-format
+@@ -29182,7 +27073,7 @@
  #. coalesced sections.  Weak aliases (or any other kind of aliases) are
  #. not supported.  Weak symbols that aren't visible outside the .s file
  #. are not supported.
@@ -42867,7 +53218,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "alias definitions not supported in Mach-O; ignored"
  msgstr "las definiciones de alias no se admiten en Mach-O; descartadas"
-@@ -29193,19 +27785,19 @@
+@@ -29193,19 +27084,19 @@
  msgid "profiler support for VxWorks"
  msgstr "soporte de análisis de perfil para VxWorks"
  
@@ -42890,7 +53241,61 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "the second argument must be a 4-bit immediate"
  msgid "%Ktotal size and element size must be a non-zero constant immediate"
-@@ -29395,12 +27987,12 @@
+@@ -29237,7 +27128,7 @@
+ #, fuzzy, gcc-internal-format, gfc-internal-format
+ #| msgid "Invalid range %s in option %s"
+ msgid "tuning string missing in option (%s)"
+-msgstr "Rango %s inválido en la opción %s"
++msgstr "Rango %s no válido en la opción %s"
+ 
+ #: config/aarch64/aarch64.c:7949
+ #, fuzzy, gcc-internal-format, gfc-internal-format
+@@ -29255,7 +27146,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid floating point option: -mfpu=%s"
+ msgid "invalid feature modifier in -mcpu=%qs"
+-msgstr "opción de coma flotante inválida: -mfpu-%s"
++msgstr "opción de coma flotante no válida: -mfpu-%s"
+ 
+ #: config/aarch64/aarch64.c:8194
+ #, fuzzy, gcc-internal-format
+@@ -29273,7 +27164,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid data model option -mdata-model=%s"
+ msgid "invalid feature modifier in -march=%qs"
+-msgstr "opción de modelo de datos -mdata-model=%s inválida"
++msgstr "opción de modelo de datos -mdata-model=%s no válida"
+ 
+ #: config/aarch64/aarch64.c:8226
+ #, fuzzy, gcc-internal-format
+@@ -29352,7 +27243,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid memory model argument %d of %qE"
+ msgid "invalid feature modifier in target %s %qs"
+-msgstr "argumento de modelo de memoria %d inválido de %qE"
++msgstr "argumento de modelo de memoria %d no válido de %qE"
+ 
+ #: config/aarch64/aarch64.c:8769
+ #, fuzzy, gcc-internal-format, gfc-internal-format
+@@ -29376,7 +27267,7 @@
+ #, fuzzy, gcc-internal-format, gfc-internal-format
+ #| msgid "%s\"%s\"%s is invalid"
+ msgid "target %s %s=%s is not valid"
+-msgstr "%s\"%s\"%s es inválido"
++msgstr "%s\"%s\"%s es no válido"
+ 
+ #: config/aarch64/aarch64.c:8947
+ #, fuzzy, gcc-internal-format, gfc-internal-format
+@@ -29388,7 +27279,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "%s\"%s\"%s is invalid"
+ msgid "target %s %qs is invalid"
+-msgstr "%s\"%s\"%s es inválido"
++msgstr "%s\"%s\"%s es no válido"
+ 
+ #: config/aarch64/aarch64.c:8973
+ #, gcc-internal-format
+@@ -29395,12 +27286,12 @@
  msgid "malformed target %s list %qs"
  msgstr ""
  
@@ -42905,7 +53310,16 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "line number out of range"
  msgid "lane %wd out of range %wd - %wd"
-@@ -30009,15 +28601,15 @@
+@@ -29582,7 +27473,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid argument to %<__builtin_frame_address%>"
+ msgid "invalid alignment value for __builtin_arc_aligned"
+-msgstr "argumento inválido para %<__builtin_frame_address%>"
++msgstr "argumento no válido para %<__builtin_frame_address%>"
+ 
+ #: config/arc/arc.c:5514
+ #, gcc-internal-format
+@@ -30009,15 +27900,15 @@
  msgid "Thumb-1 hard-float VFP ABI"
  msgstr "ABI de VFP de coma flotante dura de Thumb-1"
  
@@ -42927,7 +53341,7 @@ Index: gcc/po/es.po
  #: config/sh/sh.c:9798 config/sh/sh.c:9827 config/sh/sh.c:9909
  #: config/sh/sh.c:9932 config/spu/spu.c:3680 config/stormy16/stormy16.c:2211
  #: config/v850/v850.c:2082 config/visium/visium.c:699
-@@ -30037,51 +28629,51 @@
+@@ -30037,51 +27928,51 @@
  msgid "%s %wd out of range %wd - %wd"
  msgstr "El código STOP está fuera de rango en %C"
  
@@ -42974,7 +53388,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "invalid vector type for attribute %qs"
  msgid "invalid fpu for attribute(target(\"%s\"))"
- msgstr "tipo de vector inválido para el atributo %qs"
+-msgstr "tipo de vector inválido para el atributo %qs"
++msgstr "tipo de vector no válido para el atributo %qs"
  
 -#: config/arm/arm.c:30037 config/i386/i386.c:6107 config/i386/i386.c:6154
 -#: config/s390/s390.c:14585 config/s390/s390.c:14635 config/s390/s390.c:14652
@@ -42989,7 +53404,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "target CPU does not support unaligned accesses"
  msgid "target OS does not support unaligned accesses"
-@@ -30145,207 +28737,207 @@
+@@ -30145,207 +28036,207 @@
  #. happen as options are provided by device-specs.  It could be a
  #. typo in a device-specs or calling the compiler proper directly
  #. with -mmcu=<device>.
@@ -43235,7 +53650,43 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "rounding result will always be 0"
  msgstr ""
-@@ -30968,7 +29560,7 @@
+@@ -30461,7 +28352,7 @@
+ #: config/cr16/cr16.c:293
+ #, gcc-internal-format, gfc-internal-format
+ msgid "invalid data model option -mdata-model=%s"
+-msgstr "opción de modelo de datos -mdata-model=%s inválida"
++msgstr "opción de modelo de datos -mdata-model=%s no válida"
+ 
+ #: config/cr16/cr16.h:431
+ #, gcc-internal-format
+@@ -30480,7 +28371,7 @@
+ #: config/cris/cris.c:893
+ #, gcc-internal-format
+ msgid "invalid use of ':' modifier"
+-msgstr "uso inválido del modificador ':'"
++msgstr "uso no válido del modificador ':'"
+ 
+ #: config/cris/cris.c:1127 config/moxie/moxie.c:181
+ #, gcc-internal-format, gfc-internal-format
+@@ -30640,7 +28531,7 @@
+ #: config/frv/frv.c:8681
+ #, gcc-internal-format
+ msgid "invalid IACC argument"
+-msgstr "argumento IACC inválido"
++msgstr "argumento IACC no válido"
+ 
+ #: config/frv/frv.c:8704
+ #, gcc-internal-format
+@@ -30795,7 +28686,7 @@
+ #, fuzzy, gcc-internal-format, gfc-internal-format
+ #| msgid "Invalid range %s in option %s"
+ msgid "too many size ranges specified in option %s"
+-msgstr "Rango %s inválido en la opción %s"
++msgstr "Rango %s no válido en la opción %s"
+ 
+ #: config/i386/i386.c:4204
+ #, fuzzy, gcc-internal-format, gfc-internal-format
+@@ -30968,7 +28859,7 @@
  msgid "-mno-fentry isn%'t compatible with SEH"
  msgstr "-mno-fentry no es compatible con SEH"
  
@@ -43244,7 +53695,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "unknown option for -mrecip=%s"
  msgstr "opción desconocida para -mrecip=%s"
-@@ -30988,7 +29580,7 @@
+@@ -30988,7 +28879,7 @@
  msgid "regparam and thiscall attributes are not compatible"
  msgstr "los atributos regparam y thiscall no son compatibles"
  
@@ -43253,7 +53704,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%qE attribute requires an integer constant argument"
  msgstr "el atributo %qE requiere un argumento constante entero"
-@@ -31194,270 +29786,270 @@
+@@ -31194,270 +29085,270 @@
  msgid "non-integer operand used with operand code 'z'"
  msgstr "se usó un operando que no es entero con el código de operando '%c'"
  
@@ -43527,7 +53978,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid type for make function"
  msgid "invalid type for asm flag output"
- msgstr "tipo inválido para la función make"
+-msgstr "tipo inválido para la función make"
++msgstr "tipo no válido para la función make"
  
 -#: config/i386/i386.c:53731
 +#: config/i386/i386.c:53809
@@ -43573,7 +54025,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "Pointer Checker requires MPX support on this target. Use -mmpx options to enable MPX."
  msgstr ""
-@@ -31514,17 +30106,17 @@
+@@ -31514,17 +29405,17 @@
  #: config/i386/xm-djgpp.h:85
  #, gcc-internal-format
  msgid "environment variable DJGPP not defined"
@@ -43594,7 +54046,43 @@ Index: gcc/po/es.po
  
  #: config/ia64/ia64-c.c:48
  #, gcc-internal-format
-@@ -31695,7 +30287,7 @@
+@@ -31534,7 +29425,7 @@
+ #: config/ia64/ia64.c:722
+ #, gcc-internal-format
+ msgid "invalid argument of %qE attribute"
+-msgstr "argumento inválido del atributo %qE"
++msgstr "argumento no válido del atributo %qE"
+ 
+ #: config/ia64/ia64.c:735
+ #, gcc-internal-format
+@@ -31626,7 +29517,7 @@
+ #: config/m32c/m32c.c:412
+ #, gcc-internal-format, gfc-internal-format
+ msgid "invalid target memregs value '%d'"
+-msgstr "valor de memregs objetivo '%d' inválido"
++msgstr "valor de memregs objetivo '%d' no válido"
+ 
+ #: config/m32c/m32c.c:2924
+ #, gcc-internal-format
+@@ -31657,7 +29548,7 @@
+ #: config/m32r/m32r.c:389
+ #, gcc-internal-format
+ msgid "invalid argument of %qs attribute"
+-msgstr "argumento inválido del atributo %qs"
++msgstr "argumento no válido del atributo %qs"
+ 
+ #: config/m68k/m68k.c:493
+ #, gcc-internal-format, gfc-internal-format
+@@ -31667,7 +29558,7 @@
+ #: config/m68k/m68k.c:564
+ #, gcc-internal-format
+ msgid "-mpcrel -fPIC is not currently supported on selected cpu"
+-msgstr "-mpcrel -fPIC no se admite actualmente en el cpu seleccionado"
++msgstr "-mpcrel -fPIC no se admite actualmente en la cpu seleccionado"
+ 
+ #: config/m68k/m68k.c:626
+ #, gcc-internal-format, gfc-internal-format
+@@ -31695,7 +29586,7 @@
  msgid "interrupt_thread is available only on fido"
  msgstr "interrupt_thread sólo está disponible en fido"
  
@@ -43603,7 +54091,22 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "stack limit expression is not supported"
  msgstr "no se admite la expresión del límite de la pila"
-@@ -31938,7 +30530,7 @@
+@@ -31718,12 +29609,12 @@
+ #: config/mep/mep-pragma.c:121
+ #, gcc-internal-format
+ msgid "invalid coprocessor register range"
+-msgstr "rango de registro de coprocesador inválido"
++msgstr "rango de registro de coprocesador no válido"
+ 
+ #: config/mep/mep-pragma.c:141
+ #, gcc-internal-format
+ msgid "invalid coprocessor register %qE"
+-msgstr "registro de coprocesador %qE inválido"
++msgstr "registro de coprocesador %qE no válido"
+ 
+ #: config/mep/mep-pragma.c:164
+ #, gcc-internal-format
+@@ -31938,7 +29829,7 @@
  msgid "argument %d of %qE must be a multiple of %d"
  msgstr "el argumento %d de %qE debe ser un múltiplo de %d"
  
@@ -43612,7 +54115,25 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "incompatible type for argument %d of %qE"
  msgstr "tipo incompatible para el argumento %d de %qE"
-@@ -32403,7 +30995,7 @@
+@@ -31977,7 +29868,7 @@
+ #: config/microblaze/microblaze.c:1700
+ #, gcc-internal-format
+ msgid "%qs is an invalid argument to -mcpu="
+-msgstr "%qs es un argumento inválido para -mcpu="
++msgstr "%qs es un argumento no válido para -mcpu="
+ 
+ #: config/microblaze/microblaze.c:1749
+ #, gcc-internal-format
+@@ -32065,7 +29956,7 @@
+ #: config/nios2/nios2.c:3135
+ #, gcc-internal-format
+ msgid "invalid argument to built-in function"
+-msgstr "argumento inválido para la función interna"
++msgstr "argumento no válido para la función interna"
+ 
+ #: config/mips/mips.c:15296
+ #, gcc-internal-format
+@@ -32403,7 +30294,7 @@
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "unrecognized register name %qs"
  msgid "Unrecognised MCU name '%s'."
@@ -43621,7 +54142,46 @@ Index: gcc/po/es.po
  
  #: config/msp430/msp430.c:840
  #, gcc-internal-format
-@@ -32593,7 +31185,7 @@
+@@ -32424,7 +30315,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid argument of %qE attribute"
+ msgid "unrecognised interrupt vector argument of %qE attribute"
+-msgstr "argumento inválido del atributo %qE"
++msgstr "argumento no válido del atributo %qE"
+ 
+ #: config/msp430/msp430.c:1857
+ #, fuzzy, gcc-internal-format
+@@ -32505,25 +30396,25 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid type for iteration variable %qE"
+ msgid "invalid id value for interrupt/exception attribute"
+-msgstr "tipo inválido para la variable de iteración %qE"
++msgstr "tipo no válido para la variable de iteración %qE"
+ 
+ #: config/nds32/nds32.c:2609
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid argument of %qs attribute"
+ msgid "invalid id value for reset attribute"
+-msgstr "argumento inválido del atributo %qs"
++msgstr "argumento no válido del atributo %qs"
+ 
+ #: config/nds32/nds32.c:2625
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid argument of %qs attribute"
+ msgid "invalid nmi function for reset attribute"
+-msgstr "argumento inválido del atributo %qs"
++msgstr "argumento no válido del atributo %qs"
+ 
+ #: config/nds32/nds32.c:2638
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid argument of %qs attribute"
+ msgid "invalid warm function for reset attribute"
+-msgstr "argumento inválido del atributo %qs"
++msgstr "argumento no válido del atributo %qs"
+ 
+ #: config/nds32/nds32.c:2706
+ #, fuzzy, gcc-internal-format
+@@ -32593,7 +30484,7 @@
  #, fuzzy, gcc-internal-format
  #| msgid "instruction scheduling not supported on this target machine"
  msgid "CDX instructions are only supported with R2 architecture"
@@ -43630,7 +54190,16 @@ Index: gcc/po/es.po
  
  #: config/nios2/nios2.c:1383
  #, fuzzy, gcc-internal-format
-@@ -32702,7 +31294,7 @@
+@@ -32615,7 +30506,7 @@
+ #, fuzzy, gcc-internal-format, gfc-internal-format
+ #| msgid "invalid argument to built-in function"
+ msgid "invalid argument to built-in function %s"
+-msgstr "argumento inválido para la función interna"
++msgstr "argumento no válido para la función interna"
+ 
+ #: config/nios2/nios2.c:3432
+ #, gcc-internal-format, gfc-internal-format
+@@ -32702,7 +30593,7 @@
  #, fuzzy, gcc-internal-format
  #| msgid "COLLECT_LTO_WRAPPER must be set"
  msgid "COLLECT_GCC must be set."
@@ -43639,7 +54208,7 @@ Index: gcc/po/es.po
  
  #: config/nvptx/mkoffload.c:545
  #, fuzzy, gcc-internal-format
-@@ -32710,23 +31302,23 @@
+@@ -32710,23 +30601,23 @@
  msgid "cannot open intermediate ptx file"
  msgstr "%s:no se puede abrir el fichero de grafo\n"
  
@@ -43667,7 +54236,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "using num_workers (%d), ignoring %d"
  msgstr ""
-@@ -32751,7 +31343,7 @@
+@@ -32751,7 +30642,7 @@
  msgid "-g option disabled"
  msgstr "opción -g desactivada"
  
@@ -43676,7 +54245,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "alignment (%u) for %s exceeds maximum alignment for global common data.  Using %u"
  msgstr "la alineación (%u) para %s excede la alineación máxima para los datos comunes globales.  Se usará %u"
-@@ -32869,336 +31461,347 @@
+@@ -32869,336 +30760,347 @@
  msgid "junk at end of #pragma longcall"
  msgstr "basura al final de #pragma longcall"
  
@@ -43732,7 +54301,8 @@ Index: gcc/po/es.po
 +#: config/rs6000/rs6000-c.c:5119
  #, gcc-internal-format
  msgid "invalid parameter combination for AltiVec intrinsic"
- msgstr "combinación de parámetros inválida para el intrínseco AltiVec"
+-msgstr "combinación de parámetros inválida para el intrínseco AltiVec"
++msgstr "combinación de parámetros no válida para el intrínseco AltiVec"
  
 -#: config/rs6000/rs6000.c:3465
 +#: config/rs6000/rs6000.c:3512
@@ -44089,7 +54659,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "%s only accepts 1 argument"
  msgid "builtin %s only accepts a string argument"
-@@ -33205,7 +31808,7 @@
+@@ -33205,272 +31107,291 @@
  msgstr "%s sólo acepta 1 argumento"
  
  #. Invalid CPU argument.
@@ -44098,8 +54668,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "%qs is an invalid argument to -mcpu="
  msgid "cpu %s is an invalid argument to builtin %s"
-@@ -33212,262 +31815,281 @@
- msgstr "%qs es un argumento inválido para -mcpu="
+-msgstr "%qs es un argumento inválido para -mcpu="
++msgstr "%qs es un argumento no válido para -mcpu="
  
  #. Invalid HWCAP argument.
 -#: config/rs6000/rs6000.c:13545
@@ -44107,7 +54677,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "%qs is an invalid argument to -mcpu="
  msgid "hwcap %s is an invalid argument to builtin %s"
- msgstr "%qs es un argumento inválido para -mcpu="
+-msgstr "%qs es un argumento inválido para -mcpu="
++msgstr "%qs es un argumento no válido para -mcpu="
  
 -#: config/rs6000/rs6000.c:13618
 +#: config/rs6000/rs6000.c:14124
@@ -44360,31 +54931,36 @@ Index: gcc/po/es.po
 +#: config/rs6000/rs6000.c:32195
  #, gcc-internal-format
  msgid "use of %<long double%> in AltiVec types is invalid"
- msgstr "el uso de %<long double%> en tipos AltiVec es inválido"
+-msgstr "el uso de %<long double%> en tipos AltiVec es inválido"
++msgstr "el uso de %<long double%> en tipos AltiVec es no válido"
  
 -#: config/rs6000/rs6000.c:30835
 +#: config/rs6000/rs6000.c:32197
  #, gcc-internal-format
  msgid "use of boolean types in AltiVec types is invalid"
- msgstr "el uso de tipos booleanos en tipos AltiVec es inválido"
+-msgstr "el uso de tipos booleanos en tipos AltiVec es inválido"
++msgstr "el uso de tipos booleanos en tipos AltiVec es no válido"
  
 -#: config/rs6000/rs6000.c:30837
 +#: config/rs6000/rs6000.c:32199
  #, gcc-internal-format
  msgid "use of %<complex%> in AltiVec types is invalid"
- msgstr "el uso de %<complex%> en tipos AltiVec es inválido"
+-msgstr "el uso de %<complex%> en tipos AltiVec es inválido"
++msgstr "el uso de %<complex%> en tipos AltiVec es no válido"
  
 -#: config/rs6000/rs6000.c:30839
 +#: config/rs6000/rs6000.c:32201
  #, gcc-internal-format
  msgid "use of decimal floating point types in AltiVec types is invalid"
- msgstr "el uso de tipos de coma flotante decimal en tipos AltiVec es inválido"
+-msgstr "el uso de tipos de coma flotante decimal en tipos AltiVec es inválido"
++msgstr "el uso de tipos de coma flotante decimal en tipos AltiVec es no válido"
  
 -#: config/rs6000/rs6000.c:30845
 +#: config/rs6000/rs6000.c:32207
  #, gcc-internal-format
  msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without -mvsx"
- msgstr "el uso de %<long%> en tipos AltiVec es inválido para código de 64 bit sin -mvsx"
+-msgstr "el uso de %<long%> en tipos AltiVec es inválido para código de 64 bit sin -mvsx"
++msgstr "el uso de %<long%> en tipos AltiVec es no válido para código de 64 bit sin -mvsx"
  
 -#: config/rs6000/rs6000.c:30848
 +#: config/rs6000/rs6000.c:32210
@@ -44396,13 +54972,15 @@ Index: gcc/po/es.po
 +#: config/rs6000/rs6000.c:32215
  #, gcc-internal-format
  msgid "use of %<long long%> in AltiVec types is invalid without -mvsx"
- msgstr "el uso de %<long long%> en tipos AltiVec es inválido sin -mvsx"
+-msgstr "el uso de %<long long%> en tipos AltiVec es inválido sin -mvsx"
++msgstr "el uso de %<long long%> en tipos AltiVec es no válido sin -mvsx"
  
 -#: config/rs6000/rs6000.c:30856
 +#: config/rs6000/rs6000.c:32218
  #, gcc-internal-format
  msgid "use of %<double%> in AltiVec types is invalid without -mvsx"
- msgstr "el uso de %<double%> en tipos AltiVec es inválido sin -mvsx"
+-msgstr "el uso de %<double%> en tipos AltiVec es inválido sin -mvsx"
++msgstr "el uso de %<double%> en tipos AltiVec es no válido sin -mvsx"
  
 -#: config/rs6000/rs6000.c:34364
 +#: config/rs6000/rs6000.c:35741
@@ -44420,7 +54998,8 @@ Index: gcc/po/es.po
 +#: config/rs6000/rs6000.c:36050
  #, gcc-internal-format, gfc-internal-format
  msgid "invalid cpu \"%s\" for %s\"%s\"%s"
- msgstr "cpu \"%s\" inválido para %s\"%s\"%s"
+-msgstr "cpu \"%s\" inválido para %s\"%s\"%s"
++msgstr "cpu \"%s\" no válido para %s\"%s\"%s"
  
 -#: config/rs6000/rs6000.c:34671
 +#: config/rs6000/rs6000.c:36053
@@ -44432,8 +55011,21 @@ Index: gcc/po/es.po
 +#: config/rs6000/rs6000.c:36055
  #, gcc-internal-format, gfc-internal-format
  msgid "%s\"%s\"%s is invalid"
- msgstr "%s\"%s\"%s es inválido"
-@@ -33787,7 +32409,7 @@
+-msgstr "%s\"%s\"%s es inválido"
++msgstr "%s\"%s\"%s es no válido"
+ 
+ #. Definitions of target machine for GNU compiler,
+ #. for IBM RS/6000 POWER running AIX version 4.3.
+@@ -33769,7 +31690,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid parameter combination for AltiVec intrinsic"
+ msgid "invalid parameter combination for intrinsic %qs"
+-msgstr "combinación de parámetros inválida para el intrínseco AltiVec"
++msgstr "combinación de parámetros no válida para el intrínseco AltiVec"
+ 
+ #: config/s390/s390-c.c:913
+ #, fuzzy, gcc-internal-format
+@@ -33787,7 +31708,7 @@
  #, fuzzy, gcc-internal-format
  #| msgid "constant argument out of range for %qs"
  msgid "constant argument %d for builtin %qF is out of range (0.."
@@ -44442,7 +55034,7 @@ Index: gcc/po/es.po
  
  #: config/s390/s390.c:771
  #, fuzzy, gcc-internal-format
-@@ -33817,128 +32439,128 @@
+@@ -33817,128 +31738,128 @@
  msgid "bad builtin icode"
  msgstr "icode interno erróneo"
  
@@ -44457,7 +55049,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Invalid argument %qs for %<instanceof%>"
  msgid "Invalid argument %d for builtin %qF"
- msgstr "Argumento %qs inválido para %<instanceof%>"
+-msgstr "Argumento %qs inválido para %<instanceof%>"
++msgstr "Argumento %qs no válido para %<instanceof%>"
  
 -#: config/s390/s390.c:1069
 +#: config/s390/s390.c:1084
@@ -44595,7 +55188,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "argument to %qE attribute larger than %d"
  msgid "argument to %qs is too large (max. %d)"
-@@ -33945,7 +32567,7 @@
+@@ -33945,7 +31866,7 @@
  msgstr "el argumento para el atributo %qE es más grande que %d"
  
  #. Value is not allowed for the target attribute.
@@ -44604,7 +55197,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "%<__int128%> is not supported by this target"
  msgid "Value %qs is not supported by attribute %<target%>"
-@@ -34024,27 +32646,27 @@
+@@ -34024,27 +31945,27 @@
  msgid "-mrelax is only supported for RTP PIC"
  msgstr "-mrelax sólo se admite pare el PIC de RTP"
  
@@ -44637,7 +55230,16 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "-fcall-saved-REG is not supported for out registers"
  msgstr "no se admite -fcall-saved-REG para registros de salida"
-@@ -34383,55 +33005,55 @@
+@@ -34330,7 +32251,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid constant in %<#pragma pack%> - ignored"
+ msgid "invalid constant in %<#pragma %s%>"
+-msgstr "constante inválida en %<#pragma pack%> - se descarta"
++msgstr "constante no válida en %<#pragma pack%> - se descarta"
+ 
+ #: config/xtensa/xtensa.c:2179
+ #, gcc-internal-format
+@@ -34383,60 +32304,60 @@
  msgid "subprogram %q+F not marked Inline"
  msgstr ""
  
@@ -44658,7 +55260,8 @@ Index: gcc/po/es.po
 +#: ada/gcc-interface/utils.c:3763
  #, gcc-internal-format
  msgid "invalid element type for attribute %qs"
- msgstr "tipo de elemento inválido para el atributo %qs"
+-msgstr "tipo de elemento inválido para el atributo %qs"
++msgstr "tipo de elemento no válido para el atributo %qs"
  
 -#: ada/gcc-interface/utils.c:3781
 +#: ada/gcc-interface/utils.c:3787
@@ -44704,7 +55307,13 @@ Index: gcc/po/es.po
  #: cp/cp-array-notation.c:250
  #, fuzzy, gcc-internal-format
  #| msgid "invalid option argument %qs"
-@@ -34494,8 +33116,8 @@
+ msgid "Invalid builtin arguments"
+-msgstr "argumento de opción %qs inválido"
++msgstr "argumento de opción %qs no válido"
+ 
+ #: c/c-array-notation.c:253 cp/cp-array-notation.c:257
+ #, gcc-internal-format
+@@ -34494,8 +32415,8 @@
  #. an unprototyped function, it is compile-time undefined;
  #. making it a constraint in that case was rejected in
  #. DR#252.
@@ -44715,7 +55324,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "void value not ignored as it ought to be"
  msgstr "no se descarta el valor void como debería de ser"
-@@ -34555,7 +33177,7 @@
+@@ -34555,7 +32476,7 @@
  msgid "type of array %q+D completed incompatibly with implicit initialization"
  msgstr "el tipo de la matriz %q+D se completó de forma incompatible con la inicialización implícita"
  
@@ -44724,7 +55333,16 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "originally defined here"
  msgstr "se definió originalmente aquí"
-@@ -34823,7 +33445,7 @@
+@@ -34801,7 +32722,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid redeclaration of %q+D"
+ msgid "include %qs or provide a declaration of %qD"
+-msgstr "redeclaración inválida de %q+D"
++msgstr "redeclaración no válida de %q+D"
+ 
+ #: c/c-decl.c:3392
+ #, gcc-internal-format
+@@ -34823,7 +32744,7 @@
  msgid "each undeclared identifier is reported only once for each function it appears in"
  msgstr "cada identificador sin declarar se reporta sólo una vez para cada función en el que aparece"
  
@@ -44733,7 +55351,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "label %qE referenced outside of any function"
  msgstr "la etiqueta %qE es referenciada fuera de cualquier función"
-@@ -34843,8 +33465,8 @@
+@@ -34843,8 +32764,8 @@
  msgid "label %qD defined here"
  msgstr "la etiqueta %qD se define aquí"
  
@@ -44744,7 +55362,7 @@ Index: gcc/po/es.po
  #: cp/parser.c:3146 cp/parser.c:3227 cp/parser.c:3255 cp/parser.c:5994
  #, gcc-internal-format
  msgid "%qD declared here"
-@@ -34860,7 +33482,7 @@
+@@ -34860,7 +32781,7 @@
  msgid "duplicate label declaration %qE"
  msgstr "declaración duplicada de la etiqueta %qE"
  
@@ -44753,7 +55371,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "duplicate label %qD"
  msgstr "etiqueta %qD duplicada"
-@@ -34974,7 +33596,7 @@
+@@ -34974,7 +32895,7 @@
  #. C99 6.7.5.2p4
  #. A function definition isn't function prototype scope C99 6.2.1p4.
  #. C99 6.7.5.2p4
@@ -44762,7 +55380,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%<[*]%> not allowed in other than function prototype scope"
  msgstr "no se permite %<[*]%> en otro lugar que no sea el ámbido de prototipo de función"
-@@ -35009,7 +33631,7 @@
+@@ -35009,7 +32930,7 @@
  #. of VLAs themselves count as VLAs, it does not make
  #. sense to permit them to be initialized given that
  #. ordinary VLAs may not be initialized.
@@ -44771,7 +55389,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "variable-sized object may not be initialized"
  msgstr "un objeto de tamaño variable puede no ser inicializado"
-@@ -35022,7 +33644,7 @@
+@@ -35022,12 +32943,12 @@
  #: c/c-decl.c:4619
  #, gcc-internal-format
  msgid "inline function %q+D given attribute noinline"
@@ -44780,7 +55398,40 @@ Index: gcc/po/es.po
  
  #: c/c-decl.c:4669
  #, gcc-internal-format
-@@ -35231,7 +33853,7 @@
+ msgid "uninitialized const member in %qT is invalid in C++"
+-msgstr "el miembro const sin inicializar en %qT es inválido en C++"
++msgstr "el miembro const sin inicializar en %qT es no válido en C++"
+ 
+ #: c/c-decl.c:4671
+ #, gcc-internal-format
+@@ -35067,7 +32988,7 @@
+ #: c/c-decl.c:5001
+ #, gcc-internal-format
+ msgid "uninitialized const %qD is invalid in C++"
+-msgstr "const %qD sin inicializar es inválida en C++"
++msgstr "const %qD sin inicializar es no válida en C++"
+ 
+ #: c/c-decl.c:5058
+ #, gcc-internal-format
+@@ -35077,7 +32998,7 @@
+ #: c/c-decl.c:5155
+ #, gcc-internal-format
+ msgid "defining a type in a compound literal is invalid in C++"
+-msgstr "definir un tipo en una literal compuesta es inválido en C++"
++msgstr "definir un tipo en una literal compuesta es no válido en C++"
+ 
+ #: c/c-decl.c:5209 c/c-decl.c:5224
+ #, gcc-internal-format
+@@ -35102,7 +33023,7 @@
+ #: c/c-decl.c:5245
+ #, gcc-internal-format
+ msgid "bit-field %qs has invalid type"
+-msgstr "el campo de bits %qs tiene un tipo inválido"
++msgstr "el campo de bits %qs tiene un tipo no válido"
+ 
+ #: c/c-decl.c:5255
+ #, gcc-internal-format
+@@ -35231,7 +33152,7 @@
  msgid "storage class specified for unnamed parameter"
  msgstr "se especificó una clase de almacenamiento para un parámetro sin nombre"
  
@@ -44789,7 +55440,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "storage class specified for typename"
  msgstr "se especificó una clase de almacenamiento para el nombre de tipo"
-@@ -35295,7 +33917,7 @@
+@@ -35295,10 +33216,10 @@
  msgid "declaration of type name as array of functions"
  msgstr "declaración de nombre de tipo como una matriz de funciones"
  
@@ -44797,8 +55448,12 @@ Index: gcc/po/es.po
 +#: c/c-decl.c:5774 c/c-decl.c:7759
  #, gcc-internal-format
  msgid "invalid use of structure with flexible array member"
- msgstr "uso inválido de una estructura con un miembro de matriz flexible"
-@@ -35384,19 +34006,19 @@
+-msgstr "uso inválido de una estructura con un miembro de matriz flexible"
++msgstr "uso no válido de una estructura con un miembro de matriz flexible"
+ 
+ #: c/c-decl.c:5800
+ #, gcc-internal-format
+@@ -35384,19 +33305,19 @@
  msgid "function definition has qualified void return type"
  msgstr "la definición de la función tiene un tipo de devolución void calificado"
  
@@ -44821,7 +55476,23 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "ISO C forbids qualified function types"
  msgstr "ISO C prohíbe los tipos de función calificados"
-@@ -35514,7 +34136,7 @@
+@@ -35440,13 +33361,13 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "bit-field %qs has invalid type"
+ msgid "bit-field %qE has atomic type"
+-msgstr "el campo de bits %qs tiene un tipo inválido"
++msgstr "el campo de bits %qs tiene un tipo no válido"
+ 
+ #: c/c-decl.c:6303
+ #, fuzzy, gcc-internal-format
+ #| msgid "bit-field %qs has invalid type"
+ msgid "bit-field has atomic type"
+-msgstr "el campo de bits %qs tiene un tipo inválido"
++msgstr "el campo de bits %qs tiene un tipo no válido"
+ 
+ #: c/c-decl.c:6312
+ #, gcc-internal-format
+@@ -35514,7 +33435,7 @@
  msgid "a member of a structure or union cannot have a variably modified type"
  msgstr "un miembro de una estructura o union no puede tener un tipo modificado variablemente"
  
@@ -44830,7 +55501,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "variable or field %qE declared void"
  msgstr "se declaró la variable o campo %qE como void"
-@@ -35549,420 +34171,420 @@
+@@ -35549,420 +33470,420 @@
  msgid "unnamed field has incomplete type"
  msgstr "el campo sin nombre tiene tipo de dato incompleto"
  
@@ -44838,7 +55509,8 @@ Index: gcc/po/es.po
 +#: c/c-decl.c:6584 c/c-decl.c:6595 c/c-decl.c:6598
  #, gcc-internal-format
  msgid "invalid storage class for function %qE"
- msgstr "clase de almacenamiento inválida para la función %qE"
+-msgstr "clase de almacenamiento inválida para la función %qE"
++msgstr "clase de almacenamiento no válida para la función %qE"
  
 -#: c/c-decl.c:6653
 +#: c/c-decl.c:6655
@@ -45006,7 +55678,8 @@ Index: gcc/po/es.po
 +#: c/c-decl.c:7307 c/c-decl.c:8023
  #, gcc-internal-format
  msgid "defining type in %qs expression is invalid in C++"
- msgstr "la definición de tipo en %qs es inválida en C++"
+-msgstr "la definición de tipo en %qs es inválida en C++"
++msgstr "la definición de tipo en %qs es no válida en C++"
  
 -#: c/c-decl.c:7373 cp/decl.c:4608
 +#: c/c-decl.c:7375 cp/decl.c:4616
@@ -45335,7 +56008,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "parameter %qD set but not used"
  msgstr "se definió el parámetro %qD pero no se usa"
-@@ -35970,232 +34592,232 @@
+@@ -35970,232 +33891,232 @@
  #. If we get here, declarations have been used in a for loop without
  #. the C99 for loop scope.  This doesn't make much sense, so don't
  #. allow it.
@@ -45612,7 +56285,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "right shift count >= width of type"
  msgstr "cuenta de desplazamiento a la derecha >= anchura del tipo"
-@@ -36210,7 +34832,7 @@
+@@ -36210,7 +34131,7 @@
  msgid "version control conflict marker in file"
  msgstr ""
  
@@ -45621,7 +56294,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "expected end of line"
  msgstr "se esperaba fin de línea"
-@@ -36245,8 +34867,8 @@
+@@ -36245,8 +34166,8 @@
  msgid "use %<enum%> keyword to refer to the type"
  msgstr ""
  
@@ -45632,7 +56305,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "expected declaration specifiers"
  msgstr "se esperaban especificadores de declaración"
-@@ -36262,7 +34884,7 @@
+@@ -36262,7 +34183,7 @@
  msgid "expected %<;%>, identifier or %<(%>"
  msgstr "se esperaba %<;>, identificador o %<(%>"
  
@@ -45641,7 +56314,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "prefix attributes are ignored for methods"
  msgstr "se descartan los atributos de prefijo para los métodos"
-@@ -36314,7 +34936,7 @@
+@@ -36314,7 +34235,7 @@
  msgid "%<__auto_type%> may only be used with a single declarator"
  msgstr "%<auto%> sólo se puede especificar para variables o declaraciones de función"
  
@@ -45650,7 +56323,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "expected %<,%> or %<;%>"
  msgstr "se esperaba %<,%> o %<;%>"
-@@ -36342,7 +34964,7 @@
+@@ -36342,7 +34263,7 @@
  msgid "ISO C90 does not support %<_Static_assert%>"
  msgstr "ISO C90 no admite %<_Static_assert%>"
  
@@ -45659,7 +56332,16 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "expected string literal"
  msgstr "se esperaba una cadena literal"
-@@ -36408,15 +35030,15 @@
+@@ -36399,7 +34320,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "template argument %d is invalid"
+ msgid "empty enum is invalid"
+-msgstr "el argumento de plantilla %d es inválido"
++msgstr "el argumento de plantilla %d es no válido"
+ 
+ #: c/c-parser.c:2707 c/c-parser.c:3649 c/c-parser.c:4437 c/c-parser.c:4734
+ #: c/c-parser.c:6131 c/c-parser.c:6218 c/c-parser.c:6893 c/c-parser.c:7504
+@@ -36408,15 +34329,15 @@
  #: c/c-parser.c:8877 c/c-parser.c:8885 c/c-parser.c:8914 c/c-parser.c:8927
  #: c/c-parser.c:9232 c/c-parser.c:9356 c/c-parser.c:9796 c/c-parser.c:9831
  #: c/c-parser.c:9884 c/c-parser.c:9937 c/c-parser.c:9953 c/c-parser.c:9999
@@ -45680,7 +56362,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "comma at end of enumerator list"
  msgstr "coma al final de la lista de enumeradores"
-@@ -36552,7 +35174,7 @@
+@@ -36552,7 +34473,7 @@
  msgid "expected %<}%> before %<else%>"
  msgstr "se esperaba %<}%> antes de %<else%>"
  
@@ -45689,7 +56371,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%<else%> without a previous %<if%>"
  msgstr "%<else%> sin un %<if%> previo"
-@@ -36572,12 +35194,12 @@
+@@ -36572,12 +34493,12 @@
  msgid "a label can only be part of a statement and a declaration is not a statement"
  msgstr "una etiqueta sólo puede ser parte de una declaración y una declaración no es un enunciado"
  
@@ -45704,7 +56386,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "-fcilkplus must be enabled to use %<_Cilk_sync%>"
  msgstr ""
-@@ -36591,17 +35213,17 @@
+@@ -36591,17 +34512,17 @@
  #. c_parser_skip_until_found stops at a closing nesting
  #. delimiter without consuming it, but here we need to consume
  #. it to proceed further.
@@ -45725,7 +56407,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "suggest braces around empty body in an %<else%> statement"
  msgstr "se sugieren llaves alrededor del cuerpo vacío en una declaración %<else%>"
-@@ -36611,7 +35233,7 @@
+@@ -36611,7 +34532,7 @@
  msgid "if statement cannot contain %<Cilk_spawn%>"
  msgstr ""
  
@@ -45734,16 +56416,19 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "suggest explicit braces to avoid ambiguous %<else%>"
  msgstr "se sugieren llaves explícitas para evitar un %<else%> ambiguo"
-@@ -36631,7 +35253,7 @@
+@@ -36629,9 +34550,9 @@
+ #: c/c-parser.c:5831
+ #, gcc-internal-format
  msgid "invalid iterating variable in fast enumeration"
- msgstr "variable de iteración inválida en la enumeración rápida"
+-msgstr "variable de iteración inválida en la enumeración rápida"
++msgstr "variable de iteración no válida en la enumeración rápida"
  
 -#: c/c-parser.c:5852 cp/parser.c:11156
 +#: c/c-parser.c:5852 cp/parser.c:11158
  #, gcc-internal-format
  msgid "missing loop condition in loop with %<GCC ivdep%> pragma"
  msgstr ""
-@@ -36884,32 +35506,32 @@
+@@ -36884,32 +34805,32 @@
  msgid "no type or storage class may be specified here,"
  msgstr "ninguna clase de almacenamiento o tipo se puede especificar aquí,"
  
@@ -45782,7 +56467,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "the %<getter%> attribute may only be specified once"
  msgstr "el atributo %<getter%> sólo se puede especificar una vez"
-@@ -36920,50 +35542,50 @@
+@@ -36920,50 +34841,50 @@
  msgid "%<#pragma acc update%> may only be used in compound statements"
  msgstr "%<#pragma omp barrier%> sólo se puede usar en declaraciones compuestas"
  
@@ -45842,7 +56527,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%<#pragma GCC pch_preprocess%> must be first"
  msgstr "%<#pragma GCC pch_preprocess%> debe ser primero"
-@@ -36979,12 +35601,12 @@
+@@ -36979,12 +34900,12 @@
  msgid "%<#pragma grainsize%> must be inside a function"
  msgstr "no se permite #pragma GCC optimize dentro de funciones"
  
@@ -45857,7 +56542,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "expected integer expression"
  msgid "expected integer expression before ')'"
-@@ -36996,754 +35618,748 @@
+@@ -36996,754 +34917,748 @@
  msgid "expression must be integral"
  msgstr "la expresión num_threads debe ser integral"
  
@@ -46082,7 +56767,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "invalid schedule kind"
 -msgstr "género de calendarizador inválido"
-+msgstr "género de planificador inválido"
++msgstr "género de planificador no válido"
  
 -#: c/c-parser.c:12205
 +#: c/c-parser.c:12188
@@ -46146,14 +56831,15 @@ Index: gcc/po/es.po
  #| msgid "invalid schedule kind"
  msgid "invalid depend kind"
 -msgstr "género de calendarizador inválido"
-+msgstr "género de planificador inválido"
++msgstr "género de planificador no válido"
  
 -#: c/c-parser.c:12785 cp/parser.c:31858
 +#: c/c-parser.c:12768 cp/parser.c:31917
  #, fuzzy, gcc-internal-format
  #| msgid "invalid mask"
  msgid "invalid map kind"
- msgstr "máscara inválida"
+-msgstr "máscara inválida"
++msgstr "máscara no válida"
  
 -#: c/c-parser.c:12879 cp/parser.c:31955
 +#: c/c-parser.c:12862 cp/parser.c:32014
@@ -46161,7 +56847,7 @@ Index: gcc/po/es.po
  #| msgid "invalid schedule kind"
  msgid "invalid dist_schedule kind"
 -msgstr "género de calendarizador inválido"
-+msgstr "género de planificador inválido"
++msgstr "género de planificador no válido"
  
 -#: c/c-parser.c:12948
 +#: c/c-parser.c:12931
@@ -46169,7 +56855,7 @@ Index: gcc/po/es.po
  #| msgid "invalid schedule kind"
  msgid "invalid proc_bind kind"
 -msgstr "género de calendarizador inválido"
-+msgstr "género de planificador inválido"
++msgstr "género de planificador no válido"
  
 -#: c/c-parser.c:13161 cp/parser.c:32233
 +#: c/c-parser.c:13144 cp/parser.c:32292
@@ -46221,7 +56907,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid type in declaration"
  msgid "invalid OpenACC clause at file scope"
- msgstr "tipo inválido en la declaración"
+-msgstr "tipo inválido en la declaración"
++msgstr "tipo no válido en la declaración"
  
 -#: c/c-parser.c:13634 cp/parser.c:35237
 +#: c/c-parser.c:13617 cp/parser.c:35299
@@ -46235,7 +56922,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid use of %<--%> on bool variable %qD"
  msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
- msgstr "uso inválido de %<--%> en la variable booleana %qD"
+-msgstr "uso inválido de %<--%> en la variable booleana %qD"
++msgstr "uso no válido de %<--%> en la variable booleana %qD"
  
 -#: c/c-parser.c:13654 cp/parser.c:35257
 +#: c/c-parser.c:13637 cp/parser.c:35319
@@ -46256,7 +56944,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid #pragma %s"
  msgid "invalid pragma"
- msgstr "#pragma %s inválido"
+-msgstr "#pragma %s inválido"
++msgstr "#pragma %s no válido"
  
 -#: c/c-parser.c:13766 cp/parser.c:35367
 +#: c/c-parser.c:13749 cp/parser.c:35429
@@ -46313,13 +57002,15 @@ Index: gcc/po/es.po
 +#: c/c-parser.c:14470 cp/parser.c:32990 cp/parser.c:33016
  #, gcc-internal-format
  msgid "invalid form of %<#pragma omp atomic%>"
- msgstr "forma inválida de %<#pragma omp atomic%>"
+-msgstr "forma inválida de %<#pragma omp atomic%>"
++msgstr "forma no válida de %<#pragma omp atomic%>"
  
 -#: c/c-parser.c:14491 cp/parser.c:32988 cp/parser.c:33004
 +#: c/c-parser.c:14474 cp/parser.c:33047 cp/parser.c:33063
  #, gcc-internal-format
  msgid "invalid operator for %<#pragma omp atomic%>"
- msgstr "operador inválido para %<#pragma omp atomic%>"
+-msgstr "operador inválido para %<#pragma omp atomic%>"
++msgstr "operador no válido para %<#pragma omp atomic%>"
  
 -#: c/c-parser.c:14540 cp/semantics.c:8405 cp/semantics.c:8415
 +#: c/c-parser.c:14523 cp/semantics.c:8409 cp/semantics.c:8419
@@ -46756,7 +57447,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "expected boolean expression"
  msgid "expected array notation expression"
-@@ -37755,7 +36371,7 @@
+@@ -37755,26 +35670,26 @@
  msgid "%qD has an incomplete type %qT"
  msgstr "%qD tiene un tipo de dato incompleto"
  
@@ -46764,8 +57455,40 @@ Index: gcc/po/es.po
 +#: c/c-typeck.c:231 c/c-typeck.c:9508 c/c-typeck.c:9550 cp/call.c:3976
  #, gcc-internal-format
  msgid "invalid use of void expression"
- msgstr "uso inválido de la expresión void"
-@@ -38014,296 +36630,296 @@
+-msgstr "uso inválido de la expresión void"
++msgstr "uso no válido de la expresión void"
+ 
+ #: c/c-typeck.c:239
+ #, gcc-internal-format
+ msgid "invalid use of flexible array member"
+-msgstr "uso inválido de un miembro de matriz flexible"
++msgstr "uso no válido de un miembro de matriz flexible"
+ 
+ #: c/c-typeck.c:245 cp/typeck2.c:505
+ #, gcc-internal-format
+ msgid "invalid use of array with unspecified bounds"
+-msgstr "uso inválido de matrices con límites sin especificar"
++msgstr "uso no válido de matrices con límites sin especificar"
+ 
+ #: c/c-typeck.c:253
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid use of undefined type %<%s %E%>"
+ msgid "invalid use of undefined type %qT"
+-msgstr "uso inválido del tipo indefinido %<%s %E%>"
++msgstr "uso no válido del tipo indefinido %<%s %E%>"
+ 
+ #. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
+ #: c/c-typeck.c:256
+@@ -37781,7 +35696,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid use of incomplete typedef %qD"
+ msgid "invalid use of incomplete typedef %qT"
+-msgstr "uso inválido del typedef incompleto %qD"
++msgstr "uso no válido del typedef incompleto %qD"
+ 
+ #: c/c-typeck.c:329
+ #, gcc-internal-format
+@@ -38014,296 +35929,296 @@
  msgid "passing argument %d of %qE as signed due to prototype"
  msgstr "se pasa el argumento %d de %qE como signed debido al prototipo"
  
@@ -46828,13 +57551,15 @@ Index: gcc/po/es.po
 +#: c/c-typeck.c:4214
  #, gcc-internal-format
  msgid "increment of enumeration value is invalid in C++"
- msgstr "el incremento de un valor de enumeración es inválido en C++"
+-msgstr "el incremento de un valor de enumeración es inválido en C++"
++msgstr "el incremento de un valor de enumeración es no válido en C++"
  
 -#: c/c-typeck.c:4212
 +#: c/c-typeck.c:4217
  #, gcc-internal-format
  msgid "decrement of enumeration value is invalid in C++"
- msgstr "el decremento de un valor de enumeración es inválido en C++"
+-msgstr "el decremento de un valor de enumeración es inválido en C++"
++msgstr "el decremento de un valor de enumeración es no válido en C++"
  
 -#: c/c-typeck.c:4228
 +#: c/c-typeck.c:4233
@@ -47093,7 +57818,8 @@ Index: gcc/po/es.po
 +#: c/c-typeck.c:5513
  #, gcc-internal-format
  msgid "defining a type in a cast is invalid in C++"
- msgstr "definir un tipo en una conversión es inválido en C++"
+-msgstr "definir un tipo en una conversión es inválido en C++"
++msgstr "definir un tipo en una conversión es no válido en C++"
  
 -#: c/c-typeck.c:5550
 +#: c/c-typeck.c:5555
@@ -47106,7 +57832,8 @@ Index: gcc/po/es.po
 +#: c/c-typeck.c:5678 c/c-typeck.c:6118
  #, gcc-internal-format
  msgid "enum conversion in assignment is invalid in C++"
- msgstr "conversión de enum en una asignación es inválido en C++"
+-msgstr "conversión de enum en una asignación es inválido en C++"
++msgstr "conversión de enum en una asignación es no válido en C++"
  
 -#: c/c-typeck.c:5865 c/c-typeck.c:5883 c/c-typeck.c:5902
 +#: c/c-typeck.c:5870 c/c-typeck.c:5888 c/c-typeck.c:5907
@@ -47119,7 +57846,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "array initialized from parenthesized string constant"
  msgstr "matriz inicializada con una constante de cadena entre paréntesis"
-@@ -38319,169 +36935,169 @@
+@@ -38319,169 +36234,169 @@
  #. strings are complete sentences, visible to gettext and checked at
  #. compile time.  It is the same as PEDWARN_FOR_QUALIFIERS but uses
  #. warning_at instead of pedwarn.
@@ -47133,19 +57860,22 @@ Index: gcc/po/es.po
 +#: c/c-typeck.c:6116
  #, gcc-internal-format
  msgid "enum conversion when passing argument %d of %qE is invalid in C++"
- msgstr "la conversión de enum al pasar el argumento %d de %qE es inválido en C++"
+-msgstr "la conversión de enum al pasar el argumento %d de %qE es inválido en C++"
++msgstr "la conversión de enum al pasar el argumento %d de %qE es no válido en C++"
  
 -#: c/c-typeck.c:6115 c/c-typeck.c:8711
 +#: c/c-typeck.c:6120 c/c-typeck.c:8718
  #, gcc-internal-format
  msgid "enum conversion in initialization is invalid in C++"
- msgstr "la conversión de enum en la inicialización es inválida en C++"
+-msgstr "la conversión de enum en la inicialización es inválida en C++"
++msgstr "la conversión de enum en la inicialización es no válida en C++"
  
 -#: c/c-typeck.c:6117
 +#: c/c-typeck.c:6122
  #, gcc-internal-format
  msgid "enum conversion in return is invalid in C++"
- msgstr "conversión enum en devolución es inválida en C++"
+-msgstr "conversión enum en devolución es inválida en C++"
++msgstr "conversión enum en devolución es no válida en C++"
  
 -#: c/c-typeck.c:6148
 +#: c/c-typeck.c:6153
@@ -47324,7 +58054,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "return from incompatible pointer type"
  msgstr "devolución desde un tipo de puntero incompatible"
-@@ -38488,810 +37104,810 @@
+@@ -38488,810 +36403,810 @@
  
  #. ??? This should not be an error when inlining calls to
  #. unprototyped functions.
@@ -47332,7 +58062,8 @@ Index: gcc/po/es.po
 +#: c/c-typeck.c:6581 c/c-typeck.c:7075 cp/typeck.c:1992
  #, gcc-internal-format
  msgid "invalid use of non-lvalue array"
- msgstr "uso inválido de matriz no-lvaluada"
+-msgstr "uso inválido de matriz no-lvaluada"
++msgstr "uso no válido de matriz no-lvaluada"
  
 -#: c/c-typeck.c:6587
 +#: c/c-typeck.c:6592
@@ -47466,7 +58197,8 @@ Index: gcc/po/es.po
 +#: c/c-typeck.c:7195
  #, gcc-internal-format
  msgid "invalid initializer"
- msgstr "inicializador inválido"
+-msgstr "inicializador inválido"
++msgstr "inicializador no válido"
  
 -#: c/c-typeck.c:7465 cp/decl.c:6108
 +#: c/c-typeck.c:7470 cp/decl.c:6115
@@ -48032,7 +58764,8 @@ Index: gcc/po/es.po
 +#: c/c-typeck.c:12643
  #, gcc-internal-format
  msgid "%qE has invalid type for %<reduction(%s)%>"
- msgstr "%qE tiene tipo inválido para %<reduction(%s)%>"
+-msgstr "%qE tiene tipo inválido para %<reduction(%s)%>"
++msgstr "%qE tiene tipo no válido para %<reduction(%s)%>"
  
 -#: c/c-typeck.c:12645 cp/semantics.c:5704
 +#: c/c-typeck.c:12652 cp/semantics.c:5701
@@ -48301,7 +59034,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "  no known conversion for argument %d from %qT to %qT"
  msgid "  conversion of argument %d would be ill-formed:"
-@@ -39298,18 +37914,18 @@
+@@ -39298,18 +37213,18 @@
  msgstr "  no hay una conversión conocida para el argumento %d de %qT a %qT"
  
  #. Conversion of conversion function return value failed.
@@ -48323,7 +59056,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "  candidate expects %d argument, %d provided"
  msgid_plural "  candidate expects %d arguments, %d provided"
-@@ -39316,83 +37932,83 @@
+@@ -39316,83 +37231,83 @@
  msgstr[0] "  el candidato espera %d argumento, se proporcionaron %d"
  msgstr[1] "  el candidato espera %d argumentos, se proporcionaron %d"
  
@@ -48398,7 +59131,8 @@ Index: gcc/po/es.po
 +#: cp/call.c:3450
  #, gcc-internal-format
  msgid "  a constructor taking a single argument of its own class type is invalid"
- msgstr "  un constructor que toma un solo argumento de su propio tipo de clase es inválido"
+-msgstr "  un constructor que toma un solo argumento de su propio tipo de clase es inválido"
++msgstr "  un constructor que toma un solo argumento de su propio tipo de clase es no válido"
  
 -#: cp/call.c:3808
 +#: cp/call.c:3814
@@ -48423,7 +59157,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "call of overloaded %<%D(%A)%> is ambiguous"
  msgstr "la llamada del %<%D(%A)%> sobrecargado es ambigua"
-@@ -39399,498 +38015,498 @@
+@@ -39399,501 +37314,501 @@
  
  #. It's no good looking for an overloaded operator() on a
  #. pointer-to-member-function.
@@ -48464,14 +59198,16 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid operands to binary %s (have %qT and %qT)"
  msgid " (operand types are %qT, %qT, and %qT)"
- msgstr "operandos inválidos para el binario %s (se tiene %qT y %qT)"
+-msgstr "operandos inválidos para el binario %s (se tiene %qT y %qT)"
++msgstr "operandos no válidos para el binario %s (se tiene %qT y %qT)"
  
 -#: cp/call.c:4429
 +#: cp/call.c:4438
  #, fuzzy, gcc-internal-format
  #| msgid "invalid operands to binary %s (have %qT and %qT)"
  msgid " (operand types are %qT and %qT)"
- msgstr "operandos inválidos para el binario %s (se tiene %qT y %qT)"
+-msgstr "operandos inválidos para el binario %s (se tiene %qT y %qT)"
++msgstr "operandos no válidos para el binario %s (se tiene %qT y %qT)"
  
 -#: cp/call.c:4431
 +#: cp/call.c:4440
@@ -48731,7 +59467,8 @@ Index: gcc/po/es.po
 +#: cp/call.c:6312
  #, gcc-internal-format
  msgid "invalid user-defined conversion from %qT to %qT"
- msgstr "conversión definida por el usuario inválida de %qT a %qT"
+-msgstr "conversión definida por el usuario inválida de %qT a %qT"
++msgstr "conversión definida por el usuario no válida de %qT a %qT"
  
 -#: cp/call.c:6320 cp/call.c:6344 cp/call.c:6462 cp/call.c:6554 cp/call.c:6596
 -#: cp/call.c:6624
@@ -48745,7 +59482,8 @@ Index: gcc/po/es.po
 +#: cp/call.c:6349 cp/cvt.c:224
  #, gcc-internal-format
  msgid "invalid conversion from %qT to %qT"
- msgstr "conversión inválida de %qT a %qT"
+-msgstr "conversión inválida de %qT a %qT"
++msgstr "conversión no válida de %qT a %qT"
  
 -#: cp/call.c:6374 cp/call.c:6381
 +#: cp/call.c:6384 cp/call.c:6391
@@ -48770,7 +59508,8 @@ Index: gcc/po/es.po
 +#: cp/call.c:6624 cp/call.c:9956
  #, gcc-internal-format
  msgid "invalid initialization of non-const reference of type %qT from an rvalue of type %qT"
- msgstr "inicialización inválida de una referencia que no es constante de tipo %qT desde un r-valor de tipo %qT"
+-msgstr "inicialización inválida de una referencia que no es constante de tipo %qT desde un r-valor de tipo %qT"
++msgstr "inicialización no válida de una referencia que no es constante de tipo %qT desde un r-valor de tipo %qT"
  
 -#: cp/call.c:6617
 +#: cp/call.c:6627
@@ -49014,8 +59753,52 @@ Index: gcc/po/es.po
 +#: cp/call.c:9960
  #, gcc-internal-format
  msgid "invalid initialization of reference of type %qT from expression of type %qT"
- msgstr "inicialización inválida de la referencia de tipo %qT desde una expresión de tipo %qT"
-@@ -40222,82 +38838,82 @@
+-msgstr "inicialización inválida de la referencia de tipo %qT desde una expresión de tipo %qT"
++msgstr "inicialización no válida de la referencia de tipo %qT desde una expresión de tipo %qT"
+ 
+ #: cp/class.c:324
+ #, fuzzy, gcc-internal-format
+@@ -39964,7 +37879,7 @@
+ #: cp/class.c:1350 cp/class.c:1358
+ #, gcc-internal-format
+ msgid "%q+D invalid in %q#T"
+-msgstr "%q+D inválido en %q#T"
++msgstr "%q+D no válido en %q#T"
+ 
+ #: cp/class.c:1351
+ #, gcc-internal-format
+@@ -40062,13 +37977,13 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "%q+#D invalid; an anonymous union can only have non-static data members"
+ msgid "%q#D invalid; an anonymous union can only have non-static data members"
+-msgstr "%q+#D inválido; un union anónimo sólo puede tener miembros con datos no estáticos"
++msgstr "%q+#D no válido; un union anónimo sólo puede tener miembros con datos no estáticos"
+ 
+ #: cp/class.c:3099
+ #, fuzzy, gcc-internal-format
+ #| msgid "%q+#D invalid; an anonymous struct can only have non-static data members"
+ msgid "%q#D invalid; an anonymous struct can only have non-static data members"
+-msgstr "%q+#D inválido; un struct anónimo sólo puede tener miembros con datos no estáticos"
++msgstr "%q+#D no válido; un struct anónimo sólo puede tener miembros con datos no estáticos"
+ 
+ #: cp/class.c:3111 cp/decl2.c:1545
+ #, fuzzy, gcc-internal-format
+@@ -40171,12 +38086,12 @@
+ #: cp/class.c:3731
+ #, gcc-internal-format
+ msgid "field %q+D invalidly declared function type"
+-msgstr "el campo %q+D inválidamente se declara como un tipo de función"
++msgstr "el campo %q+D no válidamente se declara como un tipo de función"
+ 
+ #: cp/class.c:3737
+ #, gcc-internal-format
+ msgid "field %q+D invalidly declared method type"
+-msgstr "el campo %q+D inválidamente se declara como un tipo de método"
++msgstr "el campo %q+D no válidamente se declara como un tipo de método"
+ 
+ #: cp/class.c:3797
+ #, fuzzy, gcc-internal-format
+@@ -40222,82 +38137,82 @@
  msgid "  but does not override %<operator=(const %T&)%>"
  msgstr "  pero no se impone a %<operator=(const %T&)%>"
  
@@ -49113,7 +59896,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "non-static const member %q+#D in class without a constructor"
  msgid "non-static const member %q#D in class without a constructor"
-@@ -40305,147 +38921,147 @@
+@@ -40305,147 +38220,147 @@
  
  #. If the function is defaulted outside the class, we just
  #. give the synthesis error.
@@ -49288,7 +60071,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "cannot convert %qE from type %qT to type %qT"
  msgstr "no se puede convertir %qE desde el tipo %qT al tipo %qT"
-@@ -40455,12 +39071,12 @@
+@@ -40455,12 +38370,12 @@
  #. A name N used in a class S shall refer to the same declaration
  #. in its context and when re-evaluated in the completed scope of
  #. S.
@@ -49303,7 +60086,22 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "changes meaning of %qD from %q+#D"
  msgid "changes meaning of %qD from %q#D"
-@@ -40498,55 +39114,55 @@
+@@ -40486,12 +38401,12 @@
+ #: cp/constexpr.c:190
+ #, gcc-internal-format
+ msgid "invalid type for parameter %d of constexpr function %q+#D"
+-msgstr "tipo inválido del parámetro %d en la función constexpr %q+#D"
++msgstr "tipo no válido del parámetro %d en la función constexpr %q+#D"
+ 
+ #: cp/constexpr.c:205
+ #, gcc-internal-format
+ msgid "invalid return type %qT of constexpr function %q+D"
+-msgstr "tipo de devolución %qT inválido para la función constexpr %q+D"
++msgstr "tipo de devolución %qT no válido para la función constexpr %q+D"
+ 
+ #: cp/constexpr.c:227
+ #, gcc-internal-format
+@@ -40498,55 +38413,55 @@
  msgid "%q#T has virtual base classes"
  msgstr "%q#T tiene clases base virtuales"
  
@@ -49369,7 +60167,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "%qD called in a constant expression"
  msgid "%qD called in a constant expression before its definition is complete"
-@@ -40553,233 +39169,239 @@
+@@ -40553,233 +38468,239 @@
  msgstr "se llamó %qD en una expresión constante"
  
  #. The definition of fun was somehow unsuitable.
@@ -49556,7 +60354,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid reinterpret_cast from type `%T' to type `%T'"
  msgid "reinterpret_cast from integer to pointer"
- msgstr "reinterpret_cast inválido del tipo `%T' al tipo `%T'"
+-msgstr "reinterpret_cast inválido del tipo `%T' al tipo `%T'"
++msgstr "reinterpret_cast no válido del tipo `%T' al tipo `%T'"
  
 -#: cp/constexpr.c:3990 cp/constexpr.c:4830 cp/constexpr.c:5117
 +#: cp/constexpr.c:4041 cp/constexpr.c:4881 cp/constexpr.c:5170
@@ -49652,7 +60451,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "unexpected AST of kind %s"
  msgstr "AST inesperado de género %s"
-@@ -40854,17 +39476,17 @@
+@@ -40854,17 +38775,17 @@
  msgid "try statements are not allowed inside loops marked with #pragma simd"
  msgstr "No se permite una declaración %s dentro de BLOCK en %C"
  
@@ -49673,7 +60472,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "in C++11 this throw will terminate because destructors default to noexcept"
  msgstr ""
-@@ -40904,7 +39526,7 @@
+@@ -40904,7 +38825,7 @@
  msgid "conversion from %qT to %qT discards qualifiers"
  msgstr "la conversión de %qT a %qT descarta los calificadores"
  
@@ -49682,7 +60481,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "casting %qT to %qT does not dereference pointer"
  msgstr "la conversión de %qT a %qT no dereferencía a los punteros"
-@@ -41206,7 +39828,7 @@
+@@ -41206,7 +39127,7 @@
  msgid "  candidate conversions include %qD and %qD"
  msgstr "  las conversiones candidatas incluyen %qD y %qD"
  
@@ -49691,7 +60490,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "template-parameter-"
  msgstr "parámetro-de-plantilla-"
-@@ -41222,7 +39844,7 @@
+@@ -41222,7 +39143,7 @@
  msgid "%qD was declared %<extern%> and later %<static%>"
  msgstr "%qD se declaró %<extern%> y después %<static%>"
  
@@ -49700,7 +60499,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "previous declaration of %q+D"
  msgid "previous declaration of %qD"
-@@ -41467,12 +40089,12 @@
+@@ -41467,12 +39388,12 @@
  #. that specialization that would cause an implicit
  #. instantiation to take place, in every translation unit in
  #. which such a use occurs.
@@ -49715,7 +60514,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "'setter' attribute of property %qD conflicts with previous declaration"
  msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
-@@ -41479,435 +40101,435 @@
+@@ -41479,435 +39400,435 @@
  msgstr "el atributo 'setter' de la propiedad %qD genera un conflicto con la declaración previa"
  
  #. Reject two definitions.
@@ -49852,7 +60651,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:3301 cp/parser.c:11766 cp/parser.c:11793
  #, gcc-internal-format
  msgid "invalid exit from OpenMP structured block"
- msgstr "salida inválida de un bloque estructurado OpenMP"
+-msgstr "salida inválida de un bloque estructurado OpenMP"
++msgstr "salida no válida de un bloque estructurado OpenMP"
  
 -#: cp/decl.c:3325
 +#: cp/decl.c:3333
@@ -50123,7 +60923,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid member template declaration %qD"
  msgid "does not match member template declaration here"
- msgstr "declaración de la plantilla miembro %qD inválida"
+-msgstr "declaración de la plantilla miembro %qD inválida"
++msgstr "declaración de la plantilla miembro %qD no válida"
  
 -#: cp/decl.c:4944
 +#: cp/decl.c:4952
@@ -50235,7 +61036,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "zero-size array %qD"
  msgstr "matriz %qD de tamaño cero"
-@@ -41915,920 +40537,926 @@
+@@ -41915,920 +39836,926 @@
  #. An automatic variable with an incomplete type: that is an error.
  #. Don't talk about array types here, since we took care of that
  #. message in grokdeclarator.
@@ -50301,7 +61102,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:5592
  #, gcc-internal-format
  msgid "invalid type %qT as initializer for a vector of type %qT"
- msgstr "tipo %qT inválido como inicializador para un vector de tipo %qT"
+-msgstr "tipo %qT inválido como inicializador para un vector de tipo %qT"
++msgstr "tipo %qT no válido como inicializador para un vector de tipo %qT"
  
 -#: cp/decl.c:5628
 +#: cp/decl.c:5633
@@ -50326,7 +61128,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid initializer for array member %q#D"
  msgid "invalid initializer for %q#D"
- msgstr "inicializador inválido para la matriz miembro %q#D"
+-msgstr "inicializador inválido para la matriz miembro %q#D"
++msgstr "inicializador no válido para la matriz miembro %q#D"
  
 -#: cp/decl.c:5712
 +#: cp/decl.c:5717
@@ -50394,13 +61197,15 @@ Index: gcc/po/es.po
 +#: cp/decl.c:6234
  #, gcc-internal-format
  msgid "initializer invalid for static member with constructor"
- msgstr "inicializador inválido para el miembro static con constructor"
+-msgstr "inicializador inválido para el miembro static con constructor"
++msgstr "inicializador no válido para el miembro static con constructor"
  
 -#: cp/decl.c:6229
 +#: cp/decl.c:6236
  #, gcc-internal-format
  msgid "non-constant in-class initialization invalid for static member %qD"
- msgstr "inicialización en clase que no es constante inválida para el miembro static %qD"
+-msgstr "inicialización en clase que no es constante inválida para el miembro static %qD"
++msgstr "inicialización en clase que no es constante no válida para el miembro static %qD"
  
 -#: cp/decl.c:6234
 +#: cp/decl.c:6241
@@ -50426,7 +61231,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
 +#| msgid "invalid use of member function (did you forget the %<()%> ?)"
 +msgid "initializer for %<decltype(auto) %D%> has function type (did you forget the %<()%> ?)"
-+msgstr "uso inválido de la función miembro (¿Olvidó el %<&%>?)"
++msgstr "uso no válido de la función miembro (¿Olvidó el %<&%>?)"
 +
 +#: cp/decl.c:6746
 +#, fuzzy, gcc-internal-format
@@ -50523,7 +61328,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:7700
  #, gcc-internal-format
  msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
- msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de variable"
+-msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de variable"
++msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son no válidos en la declaración de variable"
  
 -#: cp/decl.c:7691
 +#: cp/decl.c:7705
@@ -50541,7 +61347,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:7709
  #, gcc-internal-format
  msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
- msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de parámetro"
+-msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de parámetro"
++msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son no válidos en la declaración de parámetro"
  
 -#: cp/decl.c:7700
 +#: cp/decl.c:7714
@@ -50559,7 +61366,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:7718
  #, gcc-internal-format
  msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
- msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de tipo"
+-msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de tipo"
++msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son no válidos en la declaración de tipo"
  
 -#: cp/decl.c:7709
 +#: cp/decl.c:7723
@@ -50577,7 +61385,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:7727
  #, gcc-internal-format
  msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
- msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de campo"
+-msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de campo"
++msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son no válidos en la declaración de campo"
  
 -#: cp/decl.c:7720
 +#: cp/decl.c:7734
@@ -50642,7 +61451,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:7980
  #, gcc-internal-format
  msgid "invalid use of template-id %qD in declaration of primary template"
- msgstr "uso inválido del id de plantilla %qD en la declaración de la plantilla primaria"
+-msgstr "uso inválido del id de plantilla %qD en la declaración de la plantilla primaria"
++msgstr "uso no válido del id de plantilla %qD en la declaración de la plantilla primaria"
  
 -#: cp/decl.c:7984
 +#: cp/decl.c:7998
@@ -50717,7 +61527,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:8152
  #, gcc-internal-format
  msgid "%qD has invalid argument list"
- msgstr "%qD tien una lista de argumentos inválida"
+-msgstr "%qD tien una lista de argumentos inválida"
++msgstr "%qD tien una lista de argumentos no válida"
  
 -#: cp/decl.c:8146
 +#: cp/decl.c:8160
@@ -50797,7 +61608,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:8632
  #, gcc-internal-format
  msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
- msgstr "se necesita %<constexpr%> para la inicialización en la clase inválida del miembro de datos static %q#D de tipo que no es integral"
+-msgstr "se necesita %<constexpr%> para la inicialización en la clase inválida del miembro de datos static %q#D de tipo que no es integral"
++msgstr "se necesita %<constexpr%> para la inicialización en la clase no válida del miembro de datos static %q#D de tipo que no es integral"
  
 -#: cp/decl.c:8621
 +#: cp/decl.c:8635
@@ -50809,7 +61621,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:8648
  #, gcc-internal-format
  msgid "invalid in-class initialization of static data member of non-integral type %qT"
- msgstr "inicialización en la clase inválida para el miembro de datos static de tipo %qT que no es integral"
+-msgstr "inicialización en la clase inválida para el miembro de datos static de tipo %qT que no es integral"
++msgstr "inicialización en la clase no válida para el miembro de datos static de tipo %qT que no es integral"
  
 -#: cp/decl.c:8640
 +#: cp/decl.c:8654
@@ -50972,7 +61785,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:9097
  #, gcc-internal-format
  msgid "return type specification for constructor invalid"
- msgstr "la especificación del tipo de devolución para el constructor es inválida"
+-msgstr "la especificación del tipo de devolución para el constructor es inválida"
++msgstr "la especificación del tipo de devolución para el constructor es no válida"
  
 -#: cp/decl.c:9086
 +#: cp/decl.c:9100
@@ -50985,7 +61799,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:9110
  #, gcc-internal-format
  msgid "return type specification for destructor invalid"
- msgstr "la especificación del tipo de devolución para el destructor es inválida"
+-msgstr "la especificación del tipo de devolución para el destructor es inválida"
++msgstr "la especificación del tipo de devolución para el destructor es no válida"
  
 -#: cp/decl.c:9099
 +#: cp/decl.c:9113
@@ -51022,19 +61837,22 @@ Index: gcc/po/es.po
 +#: cp/decl.c:9365
  #, gcc-internal-format
  msgid "invalid use of qualified-name %<::%D%>"
- msgstr "uso inválido del nombre calificado %<::%D%>"
+-msgstr "uso inválido del nombre calificado %<::%D%>"
++msgstr "uso no válido del nombre calificado %<::%D%>"
  
 -#: cp/decl.c:9354 cp/decl.c:9374
 +#: cp/decl.c:9368 cp/decl.c:9388
  #, gcc-internal-format
  msgid "invalid use of qualified-name %<%T::%D%>"
- msgstr "uso inválido del nombre calificado %<%T::%D%>"
+-msgstr "uso inválido del nombre calificado %<%T::%D%>"
++msgstr "uso no válido del nombre calificado %<%T::%D%>"
  
 -#: cp/decl.c:9357
 +#: cp/decl.c:9371
  #, gcc-internal-format
  msgid "invalid use of qualified-name %<%D::%D%>"
- msgstr "uso inválido del nombre calificado %<%D::%D%>"
+-msgstr "uso inválido del nombre calificado %<%D::%D%>"
++msgstr "uso no válido del nombre calificado %<%D::%D%>"
  
 -#: cp/decl.c:9366
 +#: cp/decl.c:9380
@@ -51136,7 +61954,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:9715 cp/decl.c:9735
  #, gcc-internal-format
  msgid "%<signed%> or %<unsigned%> invalid for %qs"
- msgstr "%<signed%> o %<unsigned%> inválido para %qs"
+-msgstr "%<signed%> o %<unsigned%> inválido para %qs"
++msgstr "%<signed%> o %<unsigned%> no válido para %qs"
  
 -#: cp/decl.c:9703
 +#: cp/decl.c:9717
@@ -51148,31 +61967,36 @@ Index: gcc/po/es.po
 +#: cp/decl.c:9719
  #, gcc-internal-format
  msgid "%<long long%> invalid for %qs"
- msgstr "%<long long%> inválido para %qs"
+-msgstr "%<long long%> inválido para %qs"
++msgstr "%<long long%> no válido para %qs"
  
 -#: cp/decl.c:9707
 +#: cp/decl.c:9721
  #, gcc-internal-format
  msgid "%<long%> invalid for %qs"
- msgstr "%<long%> inválido para %qs"
+-msgstr "%<long%> inválido para %qs"
++msgstr "%<long%> no válido para %qs"
  
 -#: cp/decl.c:9709
 +#: cp/decl.c:9723
  #, gcc-internal-format
  msgid "%<short%> invalid for %qs"
- msgstr "%<short%> inválido para %qs"
+-msgstr "%<short%> inválido para %qs"
++msgstr "%<short%> no válido para %qs"
  
 -#: cp/decl.c:9711
 +#: cp/decl.c:9725
  #, gcc-internal-format
  msgid "%<long%> or %<short%> invalid for %qs"
- msgstr "%<long%> o %<short%> inválidos para %qs"
+-msgstr "%<long%> o %<short%> inválidos para %qs"
++msgstr "%<long%> o %<short%> no válidos para %qs"
  
 -#: cp/decl.c:9713
 +#: cp/decl.c:9727
  #, gcc-internal-format
  msgid "%<long%>, %<int%>, %<short%>, or %<char%> invalid for %qs"
- msgstr "%<long%>, %<int%>, %<short%>, o %<char%> inválido para %qs"
+-msgstr "%<long%>, %<int%>, %<short%>, o %<char%> inválido para %qs"
++msgstr "%<long%>, %<int%>, %<short%>, o %<char%> no válido para %qs"
  
 -#: cp/decl.c:9715
 +#: cp/decl.c:9729
@@ -51190,19 +62014,22 @@ Index: gcc/po/es.po
 +#: cp/decl.c:9737
  #, gcc-internal-format
  msgid "%<short%> or %<long%> invalid for %qs"
- msgstr "%<short%> o %<long%> inválidos para %qs"
+-msgstr "%<short%> o %<long%> inválidos para %qs"
++msgstr "%<short%> o %<long%> no válidos para %qs"
  
 -#: cp/decl.c:9731
 +#: cp/decl.c:9745
  #, gcc-internal-format
  msgid "long, short, signed or unsigned used invalidly for %qs"
- msgstr "uso inválido de long, short, signed ó unsigned para %qs"
+-msgstr "uso inválido de long, short, signed ó unsigned para %qs"
++msgstr "uso no válido de long, short, signed ó unsigned para %qs"
  
 -#: cp/decl.c:9799
 +#: cp/decl.c:9813
  #, gcc-internal-format
  msgid "complex invalid for %qs"
- msgstr "complex inválido para %qs"
+-msgstr "complex inválido para %qs"
++msgstr "complex no válido para %qs"
  
 -#: cp/decl.c:9846
 +#: cp/decl.c:9860
@@ -51222,7 +62049,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:9876
  #, gcc-internal-format
  msgid "typedef declaration invalid in parameter declaration"
- msgstr "declaración typedef inválida en la declaración de parámetros"
+-msgstr "declaración typedef inválida en la declaración de parámetros"
++msgstr "declaración typedef no válida en la declaración de parámetros"
  
 -#: cp/decl.c:9867
 +#: cp/decl.c:9881
@@ -51234,7 +62062,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:9887
  #, gcc-internal-format
  msgid "storage class specifiers invalid in parameter declarations"
- msgstr "especificadores de clase de almacenamiento inválidos en las declaraciones de parámetros"
+-msgstr "especificadores de clase de almacenamiento inválidos en las declaraciones de parámetros"
++msgstr "especificadores de clase de almacenamiento no válidos en las declaraciones de parámetros"
  
 -#: cp/decl.c:9877
 +#: cp/decl.c:9891
@@ -51295,7 +62124,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:9987
  #, gcc-internal-format
  msgid "storage class specifiers invalid in friend function declarations"
- msgstr "especificadores de clase de almacenamiento inválidos en las declaraciones de funciones friend"
+-msgstr "especificadores de clase de almacenamiento inválidos en las declaraciones de funciones friend"
++msgstr "especificadores de clase de almacenamiento no válidos en las declaraciones de funciones friend"
  
 -#: cp/decl.c:10085
 +#: cp/decl.c:10099
@@ -51340,7 +62170,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
  msgstr "la función %qs con tipo de devolución trailing tiene %qT como su tipo en lugar de un simple %<auto%>"
-@@ -42835,43 +41463,43 @@
+@@ -42835,43 +40762,43 @@
  
  #. Not using maybe_warn_cpp0x because this should
  #. always be an error.
@@ -51392,7 +62222,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "constructors cannot be declared virtual"
  msgid "constructors cannot be declared %<virtual%>"
-@@ -42878,483 +41506,483 @@
+@@ -42878,483 +40805,483 @@
  msgstr "los constructores no se pueden declarar virtual"
  
  #. Cannot be both friend and virtual.
@@ -51632,7 +62462,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:10918
  #, gcc-internal-format
  msgid "invalid qualifiers on non-member function type"
- msgstr "calificadores inválidos en el tipo de función que no es miembro"
+-msgstr "calificadores inválidos en el tipo de función que no es miembro"
++msgstr "calificadores no válidos en el tipo de función que no es miembro"
  
 -#: cp/decl.c:10908
 +#: cp/decl.c:10922
@@ -51683,13 +62514,15 @@ Index: gcc/po/es.po
 +#: cp/decl.c:11051
  #, gcc-internal-format
  msgid "invalid use of %<::%>"
- msgstr "uso inválido de %<::%>"
+-msgstr "uso inválido de %<::%>"
++msgstr "uso no válido de %<::%>"
  
 -#: cp/decl.c:11059
 +#: cp/decl.c:11073
  #, gcc-internal-format
  msgid "declaration of function %qD in invalid context"
- msgstr "declaración de la función %qD en un contexto inválido"
+-msgstr "declaración de la función %qD en un contexto inválido"
++msgstr "declaración de la función %qD en un contexto no válido"
  
 -#: cp/decl.c:11068
 +#: cp/decl.c:11082
@@ -51813,26 +62646,30 @@ Index: gcc/po/es.po
 +#: cp/decl.c:11351
  #, gcc-internal-format
  msgid "storage class %<auto%> invalid for function %qs"
- msgstr "la clase de almacenamiento %<auto%> es inválida para la función %qs"
+-msgstr "la clase de almacenamiento %<auto%> es inválida para la función %qs"
++msgstr "la clase de almacenamiento %<auto%> es no válida para la función %qs"
  
 -#: cp/decl.c:11340
 +#: cp/decl.c:11353
  #, gcc-internal-format
  msgid "storage class %<register%> invalid for function %qs"
- msgstr "la clase de almacenamiento %<register%> es inválida para la función %qs"
+-msgstr "la clase de almacenamiento %<register%> es inválida para la función %qs"
++msgstr "la clase de almacenamiento %<register%> es no válida para la función %qs"
  
 -#: cp/decl.c:11344
 +#: cp/decl.c:11357
  #, gcc-internal-format
  msgid "storage class %<__thread%> invalid for function %qs"
- msgstr "la clase de almacenamiento %<__thread%> es inválida para la función %qs"
+-msgstr "la clase de almacenamiento %<__thread%> es inválida para la función %qs"
++msgstr "la clase de almacenamiento %<__thread%> es no válida para la función %qs"
  
 -#: cp/decl.c:11347
 +#: cp/decl.c:11360
  #, fuzzy, gcc-internal-format
  #| msgid "storage class %<__thread%> invalid for function %qs"
  msgid "storage class %<thread_local%> invalid for function %qs"
- msgstr "la clase de almacenamiento %<__thread%> es inválida para la función %qs"
+-msgstr "la clase de almacenamiento %<__thread%> es inválida para la función %qs"
++msgstr "la clase de almacenamiento %<__thread%> es no válida para la función %qs"
  
 -#: cp/decl.c:11352
 +#: cp/decl.c:11365
@@ -51844,13 +62681,15 @@ Index: gcc/po/es.po
 +#: cp/decl.c:11376
  #, gcc-internal-format
  msgid "%<static%> specified invalid for function %qs declared out of global scope"
- msgstr "el especificador %<static%> es inválido para la función %qs declarada fuera del ámbito global"
+-msgstr "el especificador %<static%> es inválido para la función %qs declarada fuera del ámbito global"
++msgstr "el especificador %<static%> es no válido para la función %qs declarada fuera del ámbito global"
  
 -#: cp/decl.c:11367
 +#: cp/decl.c:11380
  #, gcc-internal-format
  msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
- msgstr "el especificador %<inline%> es inválido para la función %qs declarada fuera del ámbito global"
+-msgstr "el especificador %<inline%> es inválido para la función %qs declarada fuera del ámbito global"
++msgstr "el especificador %<inline%> es no válido para la función %qs declarada fuera del ámbito global"
  
 -#: cp/decl.c:11375
 +#: cp/decl.c:11388
@@ -51936,14 +62775,16 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid use of %<virtual%> in template declaration of %q#D"
  msgid "invalid use of cv-qualified type %qT in parameter declaration"
- msgstr "uso inválido de %<virtual%> en la declaración de plantilla de %q#D"
+-msgstr "uso inválido de %<virtual%> en la declaración de plantilla de %q#D"
++msgstr "uso no válido de %<virtual%> en la declaración de plantilla de %q#D"
  
 -#: cp/decl.c:11733
 +#: cp/decl.c:11746
  #, fuzzy, gcc-internal-format
  #| msgid "invalid use of %<virtual%> in template declaration of %q#D"
  msgid "invalid use of type %<void%> in parameter declaration"
- msgstr "uso inválido de %<virtual%> en la declaración de plantilla de %q#D"
+-msgstr "uso inválido de %<virtual%> en la declaración de plantilla de %q#D"
++msgstr "uso no válido de %<virtual%> en la declaración de plantilla de %q#D"
  
 -#: cp/decl.c:11746
 +#: cp/decl.c:11759
@@ -51955,7 +62796,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:11787
  #, gcc-internal-format
  msgid "parameter %qD invalidly declared method type"
- msgstr "el parámetro %qD se declaró inválidamente como tipo de método"
+-msgstr "el parámetro %qD se declaró inválidamente como tipo de método"
++msgstr "el parámetro %qD se declaró no válidamente como tipo de método"
  
 -#: cp/decl.c:11799
 +#: cp/decl.c:11812
@@ -51968,7 +62810,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "parameter %qD includes reference to array of unknown bound %qT"
  msgstr "el parámetro %qD incluye una referencia a matriz %qT de límite desconocido"
-@@ -43374,93 +42002,93 @@
+@@ -43374,93 +41301,93 @@
  #. or implicitly defined), there's no need to worry about their
  #. existence.  Theoretically, they should never even be
  #. instantiated, but that's hard to forestall.
@@ -51976,7 +62818,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:12064
  #, gcc-internal-format
  msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
- msgstr "constructor inválido; tal vez quiso decir %<%T (const %T&)%>"
+-msgstr "constructor inválido; tal vez quiso decir %<%T (const %T&)%>"
++msgstr "constructor no válido; tal vez quiso decir %<%T (const %T&)%>"
  
 -#: cp/decl.c:12173
 +#: cp/decl.c:12186
@@ -52080,7 +62923,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%qD must take either one or two arguments"
  msgstr "%qD debe tomar uno o dos argumentos"
-@@ -43467,77 +42095,77 @@
+@@ -43467,77 +41394,77 @@
  
  #  En esta traducción se emplea 'devolver' por 'return'. Si embargo, aquí
  #  se cambió por cacofonía: no es agradable escuchar 'debe devolver'. cfuga
@@ -52173,7 +63016,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%qT referred to as enum"
  msgstr "se refirió a %qT como un enum"
-@@ -43549,75 +42177,75 @@
+@@ -43549,75 +41476,75 @@
  #. void f(class C);		// No template header here
  #.
  #. then the required template argument is missing.
@@ -52240,7 +63083,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:12977
  #, gcc-internal-format
  msgid "derived union %qT invalid"
- msgstr "union derivada %qT inválida"
+-msgstr "union derivada %qT inválida"
++msgstr "union derivada %qT no válida"
  
 -#: cp/decl.c:12973
 +#: cp/decl.c:12986
@@ -52265,7 +63109,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "type %qT is not a direct or virtual base of %qT"
  msgid "%qT defined with direct virtual base"
-@@ -43625,42 +42253,42 @@
+@@ -43625,42 +41552,42 @@
  
  #  No me gusta mucho esta traducción. Creo que es mejor
  #  "el tipo base %qT no es de tipo struct o clase". cfuga
@@ -52285,7 +63129,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:13058
  #, gcc-internal-format
  msgid "duplicate base type %qT invalid"
- msgstr "tipo base duplicado %qT inválido"
+-msgstr "tipo base duplicado %qT inválido"
++msgstr "tipo base duplicado %qT no válido"
  
 -#: cp/decl.c:13175
 +#: cp/decl.c:13188
@@ -52316,7 +63161,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "underlying type %<%T%> of %<%T%> must be an integral type"
  msgstr "el tipo subyacente %<%T%> de %<%T%> debe ser un tipo integral"
-@@ -43669,80 +42297,80 @@
+@@ -43669,80 +41596,80 @@
  #.
  #. IF no integral type can represent all the enumerator values, the
  #. enumeration is ill-formed.
@@ -52373,7 +63218,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:14284
  #, gcc-internal-format
  msgid "invalid function declaration"
- msgstr "declaración de función inválida"
+-msgstr "declaración de función inválida"
++msgstr "declaración de función no válida"
  
 -#: cp/decl.c:14340
 +#: cp/decl.c:14366
@@ -52399,7 +63245,8 @@ Index: gcc/po/es.po
 +#: cp/decl.c:14919
  #, gcc-internal-format
  msgid "invalid member function declaration"
- msgstr "declaración de la función miembro inválida"
+-msgstr "declaración de la función miembro inválida"
++msgstr "declaración de la función miembro no válida"
  
 -#: cp/decl.c:14907
 +#: cp/decl.c:14933
@@ -52412,7 +63259,16 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "type of %qD defaults to %<int%>"
  msgid "use of %qD before deduction of %<auto%>"
-@@ -43784,7 +42412,7 @@
+@@ -43761,7 +41688,7 @@
+ #: cp/decl2.c:417
+ #, gcc-internal-format
+ msgid "invalid types %<%T[%T]%> for array subscript"
+-msgstr "tipos inválidos %<%T[%T]%> para índice de matriz"
++msgstr "tipos no válidos %<%T[%T]%> para índice de matriz"
+ 
+ #: cp/decl2.c:466
+ #, fuzzy, gcc-internal-format
+@@ -43784,7 +41711,7 @@
  msgid "deleting %qT is undefined"
  msgstr "el borrado de %qT está indefinido"
  
@@ -52421,7 +63277,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "template declaration of %q#D"
  msgstr "declaración plantilla de %q#D"
-@@ -43807,7 +42435,7 @@
+@@ -43807,7 +41734,7 @@
  #. [temp.mem]
  #.
  #. A destructor shall not be a member template.
@@ -52430,7 +63286,16 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "destructor %qD declared as member template"
  msgstr "se declaró el destructor %qD como una plantilla miembro"
-@@ -44047,7 +42675,7 @@
+@@ -43852,7 +41779,7 @@
+ #: cp/decl2.c:979 cp/decl2.c:987
+ #, gcc-internal-format
+ msgid "invalid initializer for member function %qD"
+-msgstr "inicializador inválido para la función miembro %qD"
++msgstr "inicializador no válido para la función miembro %qD"
+ 
+ #: cp/decl2.c:994
+ #, fuzzy, gcc-internal-format
+@@ -44047,7 +41974,7 @@
  msgid "inline function %qD used but never defined"
  msgstr "se usa la función inline %q+D pero nunca se define"
  
@@ -52439,7 +63304,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "default argument missing for parameter %P of %q+#D"
  msgstr "falta el argumento por defecto para el parámetro %P de %q+#D"
-@@ -44054,121 +42682,121 @@
+@@ -44054,121 +41981,121 @@
  
  #. We mark a lambda conversion op as deleted if we can't
  #. generate it properly; see maybe_add_lambda_conv_op.
@@ -52585,7 +63450,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%<::%D%> has not been declared"
  msgstr "%<::%D%> no se ha declarado"
-@@ -44205,7 +42833,7 @@
+@@ -44205,7 +42132,7 @@
  msgid "throwing NULL, which has integral, not pointer type"
  msgstr "arrojando NULL, que tiene un tipo integral, que no es puntero"
  
@@ -52594,9 +63459,21 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%qD should never be overloaded"
  msgstr "%qD nunca se debe sobrecargar"
-@@ -44400,19 +43028,19 @@
+@@ -44267,7 +42194,7 @@
+ #: cp/friend.c:233
+ #, gcc-internal-format
+ msgid "invalid type %qT declared %<friend%>"
+-msgstr "el tipo inválido %qT se declaró %<friend%>"
++msgstr "el tipo no válido %qT se declaró %<friend%>"
+ 
+ #. [temp.friend]
+ #. Friend declarations shall not declare partial
+@@ -44398,21 +42325,21 @@
+ #: cp/init.c:742
+ #, gcc-internal-format
  msgid "invalid initializer for array member %q#D"
- msgstr "inicializador inválido para la matriz miembro %q#D"
+-msgstr "inicializador inválido para la matriz miembro %q#D"
++msgstr "inicializador no válido para la matriz miembro %q#D"
  
 -#: cp/init.c:756 cp/init.c:780 cp/init.c:2234 cp/method.c:1230
 +#: cp/init.c:756 cp/init.c:780 cp/init.c:2252 cp/method.c:1232
@@ -52618,7 +63495,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "uninitialized reference member in %q#T"
  msgstr "miembro referencia sin inicializar en %q#T"
-@@ -44509,220 +43137,220 @@
+@@ -44509,220 +42436,220 @@
  msgid "bad array initializer"
  msgstr "inicializador de matriz erróneo"
  
@@ -52638,19 +63515,22 @@ Index: gcc/po/es.po
 +#: cp/init.c:1947
  #, gcc-internal-format
  msgid "invalid pointer to bit-field %qD"
- msgstr "puntero inválido al campo de bits %qD"
+-msgstr "puntero inválido al campo de bits %qD"
++msgstr "puntero no válido al campo de bits %qD"
  
 -#: cp/init.c:2015 cp/typeck.c:1831
 +#: cp/init.c:2028 cp/typeck.c:1831
  #, gcc-internal-format
  msgid "invalid use of non-static member function %qD"
- msgstr "uso inválido de la función miembro no static %qD"
+-msgstr "uso inválido de la función miembro no static %qD"
++msgstr "uso no válido de la función miembro no static %qD"
  
 -#: cp/init.c:2022 cp/semantics.c:1762
 +#: cp/init.c:2035 cp/semantics.c:1755
  #, gcc-internal-format
  msgid "invalid use of non-static data member %qD"
- msgstr "uso inválido del dato miembro no static %qD"
+-msgstr "uso inválido del dato miembro no static %qD"
++msgstr "uso no válido del dato miembro no static %qD"
  
 -#: cp/init.c:2203
 +#: cp/init.c:2221
@@ -52735,7 +63615,8 @@ Index: gcc/po/es.po
 +#: cp/init.c:2729
  #, gcc-internal-format
  msgid "invalid type %<void%> for new"
- msgstr "tipo %<void%> inválido para new"
+-msgstr "tipo %<void%> inválido para new"
++msgstr "tipo %<void%> no válido para new"
  
 -#: cp/init.c:2753
 +#: cp/init.c:2772
@@ -52880,7 +63761,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "type to vector delete is neither pointer or array type"
  msgstr "el tipo de vector delete no es del tipo puntero ni matriz"
-@@ -44743,23 +43371,23 @@
+@@ -44743,23 +42670,23 @@
  msgid "because the array element type %qT has variable size"
  msgstr "la literal compuesta tiene tamaño variable"
  
@@ -52895,7 +63776,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid use of incomplete type %q#T"
  msgid "capture by copy of incomplete type %qT"
- msgstr "uso inválido del tipo incompleto %q#T"
+-msgstr "uso inválido del tipo incompleto %q#T"
++msgstr "uso no válido del tipo incompleto %q#T"
  
 -#: cp/lambda.c:524
 +#: cp/lambda.c:526
@@ -52908,7 +63790,16 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%<this%> was not captured for this lambda function"
  msgstr "no se capturó %<this%> para esta función lambda"
-@@ -44834,94 +43462,94 @@
+@@ -44772,7 +42699,7 @@
+ #: cp/lex.c:332
+ #, gcc-internal-format, gfc-internal-format
+ msgid "invalid #pragma %s"
+-msgstr "#pragma %s inválido"
++msgstr "#pragma %s no válido"
+ 
+ #: cp/lex.c:340
+ #, gcc-internal-format
+@@ -44834,94 +42761,94 @@
  msgid "mangling unknown fixed point type"
  msgstr "se decodifica el tipo de coma fija desconocido"
  
@@ -53006,7 +63897,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "initializer for %q+#D is invalid"
  msgid "initializer for %q#D is invalid"
- msgstr "el inicializador para %q+#D es inválido"
+-msgstr "el inicializador para %q+#D es inválido"
++msgstr "el inicializador para %q+#D es no válido"
  
 -#: cp/method.c:1261
 +#: cp/method.c:1263
@@ -53020,7 +63912,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "non-static data member %qD has Java class type"
  msgid "copying non-static data member %q#D of rvalue reference type"
-@@ -44928,74 +43556,74 @@
+@@ -44928,74 +42855,74 @@
  msgstr "el dato miembro que no es estático %qD tiene un tipo de clase Java"
  
  #. A trivial constructor doesn't have any NSDMI.
@@ -53109,7 +64001,16 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "defaulted function %q+D with default argument"
  msgstr "función definida por defecto %q+D con argumento por defecto"
-@@ -45321,13 +43949,13 @@
+@@ -45019,7 +42946,7 @@
+ #: cp/name-lookup.c:827
+ #, gcc-internal-format
+ msgid "invalid redeclaration of %q+D"
+-msgstr "redeclaración inválida de %q+D"
++msgstr "redeclaración no válida de %q+D"
+ 
+ #: cp/name-lookup.c:828
+ #, gcc-internal-format
+@@ -45321,13 +43248,13 @@
  msgid "LEXER_DEBUGGING_ENABLED_P is not set to true"
  msgstr ""
  
@@ -53126,7 +64027,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "the %<constexpr%> specifier cannot be used in a function declaration that is not a definition"
  msgid "%<#pragma acc routine%> not followed by a function declaration or definition"
-@@ -45353,7 +43981,7 @@
+@@ -45353,7 +43280,7 @@
  msgid "request for member %qE in non-class type %qT"
  msgstr "solicitud por el miembro %qE en el tipo %qT que no es clase"
  
@@ -53135,7 +64036,16 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%<%T::%E%> has not been declared"
  msgstr "%<%T::%E%> no se ha declarado"
-@@ -45434,7 +44062,7 @@
+@@ -45427,7 +43354,7 @@
+ #: cp/parser.c:2980
+ #, gcc-internal-format
+ msgid "invalid template-id"
+-msgstr "id-de-plantilla inválido"
++msgstr "id-de-plantilla no válido"
+ 
+ #: cp/parser.c:3013
+ #, gcc-internal-format
+@@ -45434,7 +43361,7 @@
  msgid "floating-point literal cannot appear in a constant-expression"
  msgstr "una literal de coma flotante no puede aparecer en una expresión constante"
  
@@ -53144,7 +64054,38 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "a cast to a type other than an integral or enumeration type cannot appear in a constant-expression"
  msgstr "una conversión a un tipo diferente de un tipo integral o de enumeración no puede aparecer en una expresión constante"
-@@ -45645,7 +44273,7 @@
+@@ -45507,18 +43434,18 @@
+ #: cp/parser.c:3144
+ #, gcc-internal-format
+ msgid "invalid use of template-name %qE without an argument list"
+-msgstr "uso inválido del nombre-de-plantilla %qE sin una lista de argumentos"
++msgstr "uso no válido del nombre-de-plantilla %qE sin una lista de argumentos"
+ 
+ #: cp/parser.c:3149
+ #, gcc-internal-format
+ msgid "invalid use of destructor %qD as a type"
+-msgstr "uso inválido del destructor %qD como un tipo"
++msgstr "uso no válido del destructor %qD como un tipo"
+ 
+ #. Something like 'unsigned A a;'
+ #: cp/parser.c:3152
+ #, gcc-internal-format
+ msgid "invalid combination of multiple type-specifiers"
+-msgstr "combinación inválida de especificadores de tipo múltiples"
++msgstr "combinación no válida de especificadores de tipo múltiples"
+ 
+ #. Issue an error message.
+ #: cp/parser.c:3156
+@@ -45605,7 +43532,7 @@
+ #: cp/parser.c:3966
+ #, gcc-internal-format
+ msgid "a wide string is invalid in this context"
+-msgstr "una cadena ancha es inválida en este contexto"
++msgstr "una cadena ancha es no válida en este contexto"
+ 
+ #: cp/parser.c:4081
+ #, gcc-internal-format
+@@ -45645,7 +43572,7 @@
  msgid "unable to find string literal operator %qD with %qT, %qT arguments"
  msgstr "no se puede encontrar un operador literal de cadena %qD con argumentos %qT, %qT"
  
@@ -53153,7 +64094,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "expected declaration"
  msgstr "se esperaba una declaración"
-@@ -45660,7 +44288,7 @@
+@@ -45660,7 +43587,7 @@
  #, fuzzy, gcc-internal-format
  #| msgid "expected %<...%>"
  msgid "expected ..."
@@ -53162,7 +64103,7 @@ Index: gcc/po/es.po
  
  #: cp/parser.c:4640
  #, fuzzy, gcc-internal-format
-@@ -45752,7 +44380,7 @@
+@@ -45752,7 +43679,7 @@
  msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
  msgstr "los sufijos de operador literal que no están precedidos por %<_%> están reservados para estandarización futura"
  
@@ -53171,7 +64112,16 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "expected unqualified-id"
  msgstr "se esperaba un id sin calificar"
-@@ -45917,144 +44545,144 @@
+@@ -45828,7 +43755,7 @@
+ #: cp/parser.c:7305 cp/typeck.c:2498
+ #, gcc-internal-format
+ msgid "invalid use of %qD"
+-msgstr "uso inválido de %qD"
++msgstr "uso no válido de %qD"
+ 
+ #: cp/parser.c:7314
+ #, gcc-internal-format
+@@ -45917,144 +43844,144 @@
  msgid "lambda-expression in template-argument"
  msgstr "expresión lambda en un contexto sin evaluar"
  
@@ -53343,7 +64293,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "compound-statement in constexpr function"
  msgid "%<goto%> in %<constexpr%> function"
-@@ -46061,49 +44689,55 @@
+@@ -46061,49 +43988,55 @@
  msgstr "declaración compuesta en una función constexpr"
  
  #. Issue a warning about this use of a GNU extension.
@@ -53408,7 +64358,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%<friend%> used outside of class"
  msgstr "se usó %<friend%> fuera de la clase"
-@@ -46110,483 +44744,483 @@
+@@ -46110,483 +44043,483 @@
  
  #. Complain about `auto' as a storage specifier, if
  #. we're complaining about C++0x compatibility.
@@ -53422,7 +64372,8 @@ Index: gcc/po/es.po
 +#: cp/parser.c:12752
  #, gcc-internal-format
  msgid "decl-specifier invalid in condition"
- msgstr "especificador-decl inválido en la condición"
+-msgstr "especificador-decl inválido en la condición"
++msgstr "especificador-decl no válido en la condición"
  
 -#: cp/parser.c:12826
 +#: cp/parser.c:12844
@@ -53440,7 +64391,8 @@ Index: gcc/po/es.po
 +#: cp/parser.c:12952
  #, gcc-internal-format
  msgid "invalid linkage-specification"
- msgstr "especificación de enlace inválida"
+-msgstr "especificación de enlace inválida"
++msgstr "especificación de enlace no válida"
  
 -#: cp/parser.c:13021
 +#: cp/parser.c:13039
@@ -53467,14 +64419,16 @@ Index: gcc/po/es.po
 +#: cp/parser.c:13403
  #, gcc-internal-format
  msgid "invalid use of %<auto%> in conversion operator"
- msgstr "uso inválido de %<auto%> en el operador de conversión"
+-msgstr "uso inválido de %<auto%> en el operador de conversión"
++msgstr "uso no válido de %<auto%> en el operador de conversión"
  
 -#: cp/parser.c:13389
 +#: cp/parser.c:13407
  #, fuzzy, gcc-internal-format
  #| msgid "invalid use of %<auto%> in conversion operator"
  msgid "use of %<auto%> in member template conversion operator can never be deduced"
- msgstr "uso inválido de %<auto%> en el operador de conversión"
+-msgstr "uso inválido de %<auto%> en el operador de conversión"
++msgstr "uso no válido de %<auto%> en el operador de conversión"
  
 -#: cp/parser.c:13478
 +#: cp/parser.c:13496
@@ -53536,7 +64490,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid operands in ternary operation"
  msgid "invalid encoding prefix in literal operator"
- msgstr "operandos inválidos en la operación terniaria"
+-msgstr "operandos inválidos en la operación terniaria"
++msgstr "operandos no válidos en la operación terniaria"
  
 -#: cp/parser.c:14049
 +#: cp/parser.c:14068
@@ -53556,14 +64511,16 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid template non-type parameter"
  msgid "invalid constrained type parameter"
- msgstr "parámetro que no es tipo plantilla inválido"
+-msgstr "parámetro que no es tipo plantilla inválido"
++msgstr "parámetro que no es tipo plantilla no válido"
  
 -#: cp/parser.c:14272
 +#: cp/parser.c:14291
  #, fuzzy, gcc-internal-format
  #| msgid "invalid catch parameter"
  msgid "cv-qualified type parameter"
- msgstr "parámetro de captura inválido"
+-msgstr "parámetro de captura inválido"
++msgstr "parámetro de captura no válido"
  
 -#: cp/parser.c:14357
 +#: cp/parser.c:14376
@@ -53576,7 +64533,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid use of '%E' as a non-type template-argument"
  msgid "invalid use of %<auto%> in default template argument"
- msgstr "uso inválido de '%E' como un argumento de plantilla que no es tipo"
+-msgstr "uso inválido de '%E' como un argumento de plantilla que no es tipo"
++msgstr "uso no válido de '%E' como un argumento de plantilla que no es tipo"
  
 -#: cp/parser.c:14656 cp/parser.c:14739 cp/parser.c:20599
 +#: cp/parser.c:14675 cp/parser.c:14761 cp/parser.c:20621
@@ -53663,7 +64621,8 @@ Index: gcc/po/es.po
 +#: cp/parser.c:15532
  #, gcc-internal-format
  msgid "invalid non-type template argument"
- msgstr "argumento de plantilla que no es tipo inválido"
+-msgstr "argumento de plantilla que no es tipo inválido"
++msgstr "argumento de plantilla que no es tipo no válido"
  
 -#: cp/parser.c:15637
 +#: cp/parser.c:15659
@@ -53978,14 +64937,15 @@ Index: gcc/po/es.po
 +#: cp/parser.c:19282
  #, gcc-internal-format
  msgid "invalid use of constructor as a template"
- msgstr "uso inválido del constructor como una plantilla"
+-msgstr "uso inválido del constructor como una plantilla"
++msgstr "uso no válido del constructor como una plantilla"
  
 -#: cp/parser.c:19262
 +#: cp/parser.c:19284
  #, gcc-internal-format
  msgid "use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified name"
  msgstr "use %<%T::%D%> en lugar de %<%T::%D%> para nombrar el constructor en un nombre calificado"
-@@ -46595,7 +45229,7 @@
+@@ -46595,339 +44528,339 @@
  #. here because we do not have enough
  #. information about its original syntactic
  #. form.
@@ -53993,8 +64953,8 @@ Index: gcc/po/es.po
 +#: cp/parser.c:19301
  #, gcc-internal-format
  msgid "invalid declarator"
- msgstr "declarador inválido"
-@@ -46602,332 +45236,332 @@
+-msgstr "declarador inválido"
++msgstr "declarador no válido"
  
  #. But declarations with qualified-ids can't appear in a
  #. function.
@@ -54003,7 +64963,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid type in declaration"
  msgid "qualified-id in declaration"
- msgstr "tipo inválido en la declaración"
+-msgstr "tipo inválido en la declaración"
++msgstr "tipo no válido en la declaración"
  
 -#: cp/parser.c:19374
 +#: cp/parser.c:19396
@@ -54058,7 +65019,8 @@ Index: gcc/po/es.po
 +#: cp/parser.c:19958 cp/typeck2.c:529 cp/typeck2.c:1953
  #, gcc-internal-format
  msgid "invalid use of %<auto%>"
- msgstr "uso inválido de %<auto%>"
+-msgstr "uso inválido de %<auto%>"
++msgstr "uso no válido de %<auto%>"
  
 -#: cp/parser.c:19957
 +#: cp/parser.c:19979
@@ -54071,7 +65033,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid use of '%E' as a non-type template-argument"
  msgid "invalid use of %<auto%> in template argument"
- msgstr "uso inválido de '%E' como un argumento de plantilla que no es tipo"
+-msgstr "uso inválido de '%E' como un argumento de plantilla que no es tipo"
++msgstr "uso no válido de '%E' como un argumento de plantilla que no es tipo"
  
 -#: cp/parser.c:20050
 +#: cp/parser.c:20072
@@ -54167,7 +65130,8 @@ Index: gcc/po/es.po
 +#: cp/parser.c:21824
  #, gcc-internal-format
  msgid "global qualification of class name is invalid"
- msgstr "la calificación global del nombre de clase es inválida"
+-msgstr "la calificación global del nombre de clase es inválida"
++msgstr "la calificación global del nombre de clase es no válida"
  
 -#: cp/parser.c:21809
 +#: cp/parser.c:21831
@@ -54179,7 +65143,8 @@ Index: gcc/po/es.po
 +#: cp/parser.c:21843
  #, gcc-internal-format
  msgid "invalid class name in declaration of %qD"
- msgstr "nombre de clase inválido en la declaración de %qD"
+-msgstr "nombre de clase inválido en la declaración de %qD"
++msgstr "nombre de clase no válido en la declaración de %qD"
  
 -#: cp/parser.c:21854
 +#: cp/parser.c:21876
@@ -54271,7 +65236,8 @@ Index: gcc/po/es.po
 +#: cp/parser.c:22747
  #, gcc-internal-format
  msgid "invalid pure specifier (only %<= 0%> is allowed)"
- msgstr "especificador pure inválido (sólo se permite %<= 0%>)"
+-msgstr "especificador pure inválido (sólo se permite %<= 0%>)"
++msgstr "especificador pure no válido (sólo se permite %<= 0%>)"
  
 -#: cp/parser.c:22760
 +#: cp/parser.c:22782
@@ -54320,7 +65286,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid use of %<auto%> in conversion operator"
  msgid "invalid use of %<auto%> in exception-specification"
- msgstr "uso inválido de %<auto%> en el operador de conversión"
+-msgstr "uso inválido de %<auto%> en el operador de conversión"
++msgstr "uso no válido de %<auto%> en el operador de conversión"
  
 -#: cp/parser.c:23192
 +#: cp/parser.c:23214
@@ -54384,14 +65351,15 @@ Index: gcc/po/es.po
 +#: cp/parser.c:25042
  #, gcc-internal-format
  msgid "invalid declaration of %<%T::%E%>"
- msgstr "declaración inválida de %<%T::%E%>"
+-msgstr "declaración inválida de %<%T::%E%>"
++msgstr "declaración no válida de %<%T::%E%>"
  
 -#: cp/parser.c:25010
 +#: cp/parser.c:25046
  #, gcc-internal-format
  msgid "too few template-parameter-lists"
  msgstr "faltan listas-de-parámetros-de-plantilla"
-@@ -46936,464 +45570,464 @@
+@@ -46936,464 +44869,464 @@
  #. something like:
  #.
  #. template <class T> template <class U> void S::f();
@@ -54412,13 +65380,15 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "literal operator template %qD has invalid parameter list.  Expected non-type template argument pack <char...>"
  msgid "literal operator template %qD has invalid parameter list.  Expected non-type template argument pack <char...> or <typename CharT, CharT...>"
- msgstr "la plantilla de operador literal %qD tiene una lista de parámetros inválida.  Se esperaba un paquete de argumentos de plantilla que no sean de tipo <char...>"
+-msgstr "la plantilla de operador literal %qD tiene una lista de parámetros inválida.  Se esperaba un paquete de argumentos de plantilla que no sean de tipo <char...>"
++msgstr "la plantilla de operador literal %qD tiene una lista de parámetros no válida.  Se esperaba un paquete de argumentos de plantilla que no sean de tipo <char...>"
  
 -#: cp/parser.c:25513
 +#: cp/parser.c:25549
  #, gcc-internal-format
  msgid "literal operator template %qD has invalid parameter list.  Expected non-type template argument pack <char...>"
- msgstr "la plantilla de operador literal %qD tiene una lista de parámetros inválida.  Se esperaba un paquete de argumentos de plantilla que no sean de tipo <char...>"
+-msgstr "la plantilla de operador literal %qD tiene una lista de parámetros inválida.  Se esperaba un paquete de argumentos de plantilla que no sean de tipo <char...>"
++msgstr "la plantilla de operador literal %qD tiene una lista de parámetros no válida.  Se esperaba un paquete de argumentos de plantilla que no sean de tipo <char...>"
  
 -#: cp/parser.c:25582
 +#: cp/parser.c:25618
@@ -54438,7 +65408,8 @@ Index: gcc/po/es.po
 +#: cp/parser.c:25664
  #, gcc-internal-format
  msgid "invalid declaration of member template in local class"
- msgstr "declaración inválida de plantilla miembro en la clase local"
+-msgstr "declaración inválida de plantilla miembro en la clase local"
++msgstr "declaración no válida de plantilla miembro en la clase local"
  
 -#: cp/parser.c:25637
 +#: cp/parser.c:25673
@@ -54450,7 +65421,8 @@ Index: gcc/po/es.po
 +#: cp/parser.c:25692
  #, gcc-internal-format
  msgid "invalid explicit specialization"
- msgstr "especialización explícita inválida"
+-msgstr "especialización explícita inválida"
++msgstr "especialización explícita no válida"
  
 -#: cp/parser.c:25757
 +#: cp/parser.c:25796
@@ -54493,7 +65465,8 @@ Index: gcc/po/es.po
 +#: cp/parser.c:26665
  #, gcc-internal-format
  msgid "invalid use of %qD in linkage specification"
- msgstr "uso inválido de %qD en la especificación de enlace"
+-msgstr "uso inválido de %qD en la especificación de enlace"
++msgstr "uso no válido de %qD en la especificación de enlace"
  
 -#: cp/parser.c:26605
 +#: cp/parser.c:26680
@@ -54749,7 +65722,8 @@ Index: gcc/po/es.po
 +#: cp/parser.c:28385
  #, gcc-internal-format
  msgid "invalid Objective-C++ selector name"
- msgstr "nombre de selector Objective-C++ inválido"
+-msgstr "nombre de selector Objective-C++ inválido"
++msgstr "nombre de selector Objective-C++ no válido"
  
 -#: cp/parser.c:28385 cp/parser.c:28403
 +#: cp/parser.c:28460 cp/parser.c:28478
@@ -54773,7 +65747,8 @@ Index: gcc/po/es.po
 +#: cp/parser.c:28786 cp/parser.c:28793 cp/parser.c:28800
  #, gcc-internal-format
  msgid "invalid type for instance variable"
- msgstr "tipo inválido para la variable de de instancia"
+-msgstr "tipo inválido para la variable de de instancia"
++msgstr "tipo no válido para la variable de de instancia"
  
 -#: cp/parser.c:28838
 +#: cp/parser.c:28913
@@ -54797,7 +65772,8 @@ Index: gcc/po/es.po
 +#: cp/parser.c:29364 cp/parser.c:29371 cp/parser.c:29378
  #, gcc-internal-format
  msgid "invalid type for property"
- msgstr "tipo inválido para la propiedad"
+-msgstr "tipo inválido para la propiedad"
++msgstr "tipo no válido para la propiedad"
  
 -#: cp/parser.c:30443
 +#: cp/parser.c:30502
@@ -54811,7 +65787,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid initializer"
  msgid "invalid reduction-identifier"
- msgstr "inicializador inválido"
+-msgstr "inicializador inválido"
++msgstr "inicializador no válido"
  
 -#: cp/parser.c:33335
 +#: cp/parser.c:33394
@@ -54875,7 +65852,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid initializer"
  msgid "invalid initializer clause"
- msgstr "inicializador inválido"
+-msgstr "inicializador inválido"
++msgstr "inicializador no válido"
  
 -#: cp/parser.c:35990
 +#: cp/parser.c:36052
@@ -54945,7 +65923,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "%<#pragma GCC option%> is not a string"
  msgid "%<#pragma acc routine%> does not refer to a function"
-@@ -47400,141 +46034,141 @@
+@@ -47400,141 +45333,141 @@
  msgstr "%<#pragma GCC option%> no es una cadena"
  
  #. cancel-and-throw is unimplemented.
@@ -54978,7 +65956,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid constraints for operand"
  msgid "invalid grainsize for _Cilk_for"
- msgstr "restricciones inválidas para el operando"
+-msgstr "restricciones inválidas para el operando"
++msgstr "restricciones no válidas para el operando"
  
 -#: cp/parser.c:37356
 +#: cp/parser.c:37418
@@ -55044,7 +66023,8 @@ Index: gcc/po/es.po
 +#: cp/pt.c:305
  #, gcc-internal-format
  msgid "invalid member template declaration %qD"
- msgstr "declaración de la plantilla miembro %qD inválida"
+-msgstr "declaración de la plantilla miembro %qD inválida"
++msgstr "declaración de la plantilla miembro %qD no válida"
  
 -#: cp/pt.c:686
 +#: cp/pt.c:684
@@ -55113,7 +66093,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "specializing %q#T in different namespace"
  msgstr "se especializó %q#T en un espacio de nombres diferente"
-@@ -47541,72 +46175,72 @@
+@@ -47541,72 +45474,72 @@
  
  #. But if we've had an implicit instantiation, that's a
  #. problem ([temp.expl.spec]/6).
@@ -55199,7 +66179,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "members of an explicitly specialized class are defined without a template header"
  msgstr ""
-@@ -47613,60 +46247,60 @@
+@@ -47613,60 +45546,60 @@
  
  #. This case handles bogus declarations like template <>
  #. template <class T> void f<int>();
@@ -55271,7 +66251,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%qD is not a template function"
  msgstr "%qD no es una función plantilla"
-@@ -47679,126 +46313,138 @@
+@@ -47679,126 +45612,138 @@
  #. program is ill-formed.
  #.
  #. Similar language is found in [temp.explicit].
@@ -55433,7 +66413,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "type %qT of template argument %qE depends on a template parameter"
  msgid_plural "type %qT of template argument %qE depends on template parameters"
-@@ -47805,19 +46451,19 @@
+@@ -47805,19 +45750,19 @@
  msgstr[0] "el tipo %qT del argumento de plantilla %qE depende de un parámetro de plantilla"
  msgstr[1] "el tipo %qT del argumento de plantilla %qE depende de parámetros de plantilla"
  
@@ -55456,7 +66436,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "no default argument for %qD"
  msgstr "no hay un argumento por defecto para %qD"
-@@ -47825,49 +46471,49 @@
+@@ -47825,49 +45770,49 @@
  #. A primary class template can only have one
  #. parameter pack, at the end of the template
  #. parameter list.
@@ -55515,7 +66495,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "non-member function %qD cannot have cv-qualifier"
  msgid "member template %qD may not have virt-specifiers"
-@@ -47878,57 +46524,57 @@
+@@ -47878,57 +45823,57 @@
  #. An allocation function can be a function
  #. template. ... Template allocation functions shall
  #. have two or more parameters.
@@ -55523,7 +66503,8 @@ Index: gcc/po/es.po
 +#: cp/pt.c:5173
  #, gcc-internal-format
  msgid "invalid template declaration of %qD"
- msgstr "declaración de la plantilla de %qD inválida"
+-msgstr "declaración de la plantilla de %qD inválida"
++msgstr "declaración de la plantilla de %qD no válida"
  
 -#: cp/pt.c:5288
 +#: cp/pt.c:5302
@@ -55584,7 +66565,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "redeclared with %d template parameter"
  msgid_plural "redeclared with %d template parameters"
-@@ -47935,7 +46581,7 @@
+@@ -47935,7 +45880,7 @@
  msgstr[0] "se redeclaró con %d parámetro de plantilla"
  msgstr[1] "se redeclaró con %d parámetros de plantilla"
  
@@ -55593,7 +66574,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "previous declaration %q+D used %d template parameter"
  #| msgid_plural "previous declaration %q+D used %d template parameters"
-@@ -47944,12 +46590,12 @@
+@@ -47944,12 +45889,12 @@
  msgstr[0] "la declaración previa de %q+#D usó %d parámetro de plantilla"
  msgstr[1] "la declaración previa de %q+#D usó %d parámetros de plantilla"
  
@@ -55608,7 +66589,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "redeclared here as %q#D"
  msgstr "redeclarado aquí como %q#D"
-@@ -47958,115 +46604,115 @@
+@@ -47958,115 +45903,115 @@
  #.
  #. A template-parameter may not be given default arguments
  #. by two different declarations in the same scope.
@@ -55746,7 +66727,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "  candidate expects %d argument, %d provided"
  #| msgid_plural "  candidate expects %d arguments, %d provided"
-@@ -48075,186 +46721,186 @@
+@@ -48075,186 +46020,186 @@
  msgstr[0] "  el candidato espera %d argumento, se proporcionaron %d"
  msgstr[1] "  el candidato espera %d argumentos, se proporcionaron %d"
  
@@ -55907,7 +66888,8 @@ Index: gcc/po/es.po
 +#: cp/pt.c:7102
  #, gcc-internal-format
  msgid "invalid use of destructor %qE as a type"
- msgstr "uso inválido del destructor %qE como un tipo"
+-msgstr "uso inválido del destructor %qE como un tipo"
++msgstr "uso no válido del destructor %qE como un tipo"
  
 -#: cp/pt.c:7093
 +#: cp/pt.c:7107
@@ -55969,7 +66951,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "  expected a type, got %qE"
  msgid "  expected %qD but got %qD"
-@@ -48262,109 +46908,109 @@
+@@ -48262,109 +46207,109 @@
  
  #. Not sure if this is reachable, but it doesn't hurt
  #. to be robust.
@@ -55989,7 +66971,8 @@ Index: gcc/po/es.po
 +#: cp/pt.c:7412 cp/pt.c:7717
  #, gcc-internal-format, gfc-internal-format
  msgid "template argument %d is invalid"
- msgstr "el argumento de plantilla %d es inválido"
+-msgstr "el argumento de plantilla %d es inválido"
++msgstr "el argumento de plantilla %d es no válido"
  
 -#: cp/pt.c:7412 cp/pt.c:7542 cp/pt.c:7727
 +#: cp/pt.c:7427 cp/pt.c:7557 cp/pt.c:7742
@@ -56102,7 +67085,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "redefinition of default argument for %q#D"
  msgid "  when instantiating default argument for call to %D"
-@@ -48383,273 +47029,273 @@
+@@ -48383,273 +46328,273 @@
  #.
  #. is an attempt to declare a variable with function
  #. type.
@@ -56116,7 +67099,8 @@ Index: gcc/po/es.po
 +#: cp/pt.c:12567
  #, gcc-internal-format
  msgid "invalid parameter type %qT"
- msgstr "tipo de parámetro %qT inválido"
+-msgstr "tipo de parámetro %qT inválido"
++msgstr "tipo de parámetro %qT no válido"
  
 -#: cp/pt.c:12510
 +#: cp/pt.c:12569
@@ -56244,13 +67228,15 @@ Index: gcc/po/es.po
 +#: cp/pt.c:14064
  #, gcc-internal-format
  msgid "using invalid field %qD"
- msgstr "se usa el campo inválido %qD"
+-msgstr "se usa el campo inválido %qD"
++msgstr "se usa el campo no válido %qD"
  
 -#: cp/pt.c:14444 cp/pt.c:15770
 +#: cp/pt.c:14519 cp/pt.c:15845
  #, gcc-internal-format
  msgid "invalid use of pack expansion expression"
- msgstr "uso inválido de la expresión de expansión de paquete"
+-msgstr "uso inválido de la expresión de expansión de paquete"
++msgstr "uso no válido de la expresión de expansión de paquete"
  
 -#: cp/pt.c:14448 cp/pt.c:15774
 +#: cp/pt.c:14523 cp/pt.c:15849
@@ -56429,7 +67415,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "duplicate explicit instantiation of %q#T"
  msgstr "instanciación explícita duplicada de %q#T"
-@@ -48661,75 +47307,75 @@
+@@ -48661,75 +46606,75 @@
  #. member function or static data member of a class template
  #. shall be present in every translation unit in which it is
  #. explicitly instantiated.
@@ -56449,7 +67435,8 @@ Index: gcc/po/es.po
 +#: cp/pt.c:22486
  #, gcc-internal-format
  msgid "invalid template non-type parameter"
- msgstr "parámetro que no es tipo plantilla inválido"
+-msgstr "parámetro que no es tipo plantilla inválido"
++msgstr "parámetro que no es tipo plantilla no válido"
  
 -#: cp/pt.c:22427
 +#: cp/pt.c:22488
@@ -56519,7 +67506,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "insn does not satisfy its constraints:"
  msgid "deduced expression type does not saatisy placeholder constraints"
-@@ -48796,86 +47442,86 @@
+@@ -48796,86 +46741,86 @@
  msgid "%qT is an inaccessible base of %qT"
  msgstr "%qT es una base inaccesible de %qT"
  
@@ -56528,7 +67515,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid covariant return type for %q+#D"
  msgid "invalid covariant return type for %q#D"
- msgstr "tipo de devolución covariante inválido para %q+#D"
+-msgstr "tipo de devolución covariante inválido para %q+#D"
++msgstr "tipo de devolución covariante no válido para %q+#D"
  
 -#: cp/search.c:2054
 +#: cp/search.c:2055
@@ -56541,7 +67529,8 @@ Index: gcc/po/es.po
 +#: cp/search.c:2068
  #, gcc-internal-format
  msgid "invalid covariant return type for %q+#D"
- msgstr "tipo de devolución covariante inválido para %q+#D"
+-msgstr "tipo de devolución covariante inválido para %q+#D"
++msgstr "tipo de devolución covariante no válido para %q+#D"
  
 -#: cp/search.c:2068 cp/search.c:2073 cp/search.c:2100
 +#: cp/search.c:2069 cp/search.c:2074 cp/search.c:2101
@@ -56622,7 +67611,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "overriding final function %q+D"
  msgstr "se anula la función final %q+D"
-@@ -48882,12 +47528,12 @@
+@@ -48882,12 +46827,12 @@
  
  #. A static member function cannot match an inherited
  #. virtual member function.
@@ -56637,7 +67626,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "  since %q+#D declared in base class"
  msgstr "  ya que se declaró %q+#D en la clase base"
-@@ -48907,466 +47553,466 @@
+@@ -48907,466 +46852,466 @@
  msgid "__label__ declarations are only allowed in function scopes"
  msgstr "las declaraciones __label__ sólo se permiten en ámbitos de función"
  
@@ -56646,7 +67635,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid use of member %q+D in static member function"
  msgid "invalid use of member %qD in static member function"
- msgstr "uso inválido del miembro %q+D en la función miembro static"
+-msgstr "uso inválido del miembro %q+D en la función miembro static"
++msgstr "uso no válido del miembro %q+D en la función miembro static"
  
 -#: cp/semantics.c:2467
 +#: cp/semantics.c:2460
@@ -56664,19 +67654,22 @@ Index: gcc/po/es.po
 +#: cp/semantics.c:2559
  #, gcc-internal-format
  msgid "invalid use of %<this%> in non-member function"
- msgstr "uso inválido de %<this%> en la función que no es miembro"
+-msgstr "uso inválido de %<this%> en la función que no es miembro"
++msgstr "uso no válido de %<this%> en la función que no es miembro"
  
 -#: cp/semantics.c:2568
 +#: cp/semantics.c:2561
  #, gcc-internal-format
  msgid "invalid use of %<this%> at top level"
- msgstr "uso inválido de %<this%> en el nivel principal"
+-msgstr "uso inválido de %<this%> en el nivel principal"
++msgstr "uso no válido de %<this%> en el nivel principal"
  
 -#: cp/semantics.c:2590
 +#: cp/semantics.c:2583
  #, gcc-internal-format
  msgid "invalid qualifying scope in pseudo-destructor name"
- msgstr "ámbito calificador inválido en el nombre del seudo-destructor"
+-msgstr "ámbito calificador inválido en el nombre del seudo-destructor"
++msgstr "ámbito calificador no válido en el nombre del seudo-destructor"
  
 -#: cp/semantics.c:2598 cp/typeck.c:2530
 +#: cp/semantics.c:2591 cp/typeck.c:2530
@@ -56706,13 +67699,15 @@ Index: gcc/po/es.po
 +#: cp/semantics.c:2851
  #, gcc-internal-format
  msgid "invalid use of type %qT as a default value for a template template-parameter"
- msgstr "uso inválido del tipo %qT como un valor por defecto para una plantilla de parámetro de plantilla"
+-msgstr "uso inválido del tipo %qT como un valor por defecto para una plantilla de parámetro de plantilla"
++msgstr "uso no válido del tipo %qT como un valor por defecto para una plantilla de parámetro de plantilla"
  
 -#: cp/semantics.c:2861
 +#: cp/semantics.c:2854
  #, gcc-internal-format
  msgid "invalid default argument for a template template parameter"
- msgstr "argumento por defecto inválido para una plantilla de parámetro de plantilla"
+-msgstr "argumento por defecto inválido para una plantilla de parámetro de plantilla"
++msgstr "argumento por defecto no válido para una plantilla de parámetro de plantilla"
  
 -#: cp/semantics.c:2878
 +#: cp/semantics.c:2871
@@ -56724,13 +67719,15 @@ Index: gcc/po/es.po
 +#: cp/semantics.c:2902
  #, gcc-internal-format
  msgid "invalid definition of qualified type %qT"
- msgstr "definición inválida del tipo calificado %qT"
+-msgstr "definición inválida del tipo calificado %qT"
++msgstr "definición no válida del tipo calificado %qT"
  
 -#: cp/semantics.c:3189
 +#: cp/semantics.c:3182
  #, gcc-internal-format
  msgid "invalid base-class specification"
- msgstr "especificación de clase base inválida"
+-msgstr "especificación de clase base inválida"
++msgstr "especificación de clase base no válida"
  
 -#: cp/semantics.c:3348
 +#: cp/semantics.c:3341
@@ -56872,7 +67869,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "%qE has invalid type for %<reduction%>"
  msgid "%qE has const type for %<reduction%>"
- msgstr "%qE tiene tipo inválido para %<reduction%>"
+-msgstr "%qE tiene tipo inválido para %<reduction%>"
++msgstr "%qE tiene tipo no válido para %<reduction%>"
  
 -#: cp/semantics.c:5656
 +#: cp/semantics.c:5653
@@ -57191,7 +68189,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "no unexpanded parameter packs in binary fold"
  msgstr ""
-@@ -49382,124 +48028,124 @@
+@@ -49382,124 +47327,124 @@
  msgid "lambda-expression in a constant expression"
  msgstr "la expresión %qE no es una expresión constante"
  
@@ -57338,7 +68336,113 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "lang_* check: failed in %s, at %s:%d"
  msgstr "revisión lang_*: falló en %s, en %s:%d"
-@@ -50008,269 +48654,269 @@
+@@ -49562,12 +47507,12 @@
+ #: cp/typeck.c:1562
+ #, gcc-internal-format
+ msgid "invalid application of %qs to a member function"
+-msgstr "aplicación inválida de %qs a una función miembro"
++msgstr "aplicación no válida de %qs a una función miembro"
+ 
+ #: cp/typeck.c:1650
+ #, gcc-internal-format
+ msgid "invalid application of %<sizeof%> to a bit-field"
+-msgstr "aplicación inválida de %<sizeof%> a un campo de bits"
++msgstr "aplicación no válida de %<sizeof%> a un campo de bits"
+ 
+ #: cp/typeck.c:1658
+ #, gcc-internal-format
+@@ -49577,7 +47522,7 @@
+ #: cp/typeck.c:1709
+ #, gcc-internal-format
+ msgid "invalid application of %<__alignof%> to a bit-field"
+-msgstr "aplicación inválida de %<__alignof%> a un campo de bits"
++msgstr "aplicación no válida de %<__alignof%> a un campo de bits"
+ 
+ #: cp/typeck.c:1720
+ #, gcc-internal-format
+@@ -49588,7 +47533,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid use of non-static member function %qD"
+ msgid "invalid use of non-static member function of type %qT"
+-msgstr "uso inválido de la función miembro no static %qD"
++msgstr "uso no válido de la función miembro no static %qD"
+ 
+ #: cp/typeck.c:2001
+ #, gcc-internal-format
+@@ -49619,13 +47564,13 @@
+ #: cp/typeck.c:2337
+ #, gcc-internal-format
+ msgid "invalid use of nonstatic data member %qE"
+-msgstr "uso inválido del dato miembro no static %qE"
++msgstr "uso no válido del dato miembro no static %qE"
+ 
+ #: cp/typeck.c:2396
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid access to non-static data member %qD  of NULL object"
+ msgid "invalid access to non-static data member %qD in virtual base of NULL object"
+-msgstr "acceso inválido a datos del miembro que no es static %qD  del objeto NULL"
++msgstr "acceso no válido a datos del miembro que no es static %qD  del objeto NULL"
+ 
+ #: cp/typeck.c:2545
+ #, gcc-internal-format
+@@ -49672,17 +47617,17 @@
+ #: cp/typeck.c:3040
+ #, gcc-internal-format
+ msgid "invalid use of array indexing on pointer to member"
+-msgstr "uso inválido del índice de matriz en puntero a miembro"
++msgstr "uso no válido del índice de matriz en puntero a miembro"
+ 
+ #: cp/typeck.c:3043
+ #, gcc-internal-format
+ msgid "invalid use of unary %<*%> on pointer to member"
+-msgstr "uso inválido del unario %<*%> en puntero a miembro"
++msgstr "uso no válido del unario %<*%> en puntero a miembro"
+ 
+ #: cp/typeck.c:3046
+ #, gcc-internal-format
+ msgid "invalid use of implicit conversion on pointer to member"
+-msgstr "uso inválido de la conversión implícita en puntero a miembro"
++msgstr "uso no válido de la conversión implícita en puntero a miembro"
+ 
+ #: cp/typeck.c:3049
+ #, gcc-internal-format
+@@ -49874,7 +47819,7 @@
+ #: cp/typeck.c:4949
+ #, gcc-internal-format
+ msgid "invalid operands of types %qT and %qT to binary %qO"
+-msgstr "operadores inválidos de tipos %qT y %qT para el binario %qO"
++msgstr "operadores no válidos de tipos %qT y %qT para el binario %qO"
+ 
+ #: cp/typeck.c:5249
+ #, gcc-internal-format
+@@ -49894,7 +47839,7 @@
+ #: cp/typeck.c:5284
+ #, gcc-internal-format
+ msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
+-msgstr "uso inválido de un puntero a un tipo incompleto en aritmética de punteros"
++msgstr "uso no válido de un puntero a un tipo incompleto en aritmética de punteros"
+ 
+ #: cp/typeck.c:5359
+ #, gcc-internal-format
+@@ -49909,7 +47854,7 @@
+ #: cp/typeck.c:5376
+ #, gcc-internal-format
+ msgid "invalid use of %qE to form a pointer-to-member-function"
+-msgstr "uso inválido de %qE para formar una función puntero a miembro"
++msgstr "uso no válido de %qE para formar una función puntero a miembro"
+ 
+ #: cp/typeck.c:5379
+ #, gcc-internal-format
+@@ -49991,7 +47936,7 @@
+ #: cp/typeck.c:6032
+ #, gcc-internal-format
+ msgid "invalid use of Boolean expression as operand to %<operator--%>"
+-msgstr "uso inválido de una expresión Booleana como operando para %<operator--%>"
++msgstr "uso no válido de una expresión Booleana como operando para %<operator--%>"
+ 
+ #: cp/typeck.c:6194
+ #, gcc-internal-format
+@@ -50008,269 +47953,269 @@
  msgid "address requested for %qD, which is declared %<register%>"
  msgstr "se solicitó la dirección de %qD, la cual se declaró como %<register%>"
  
@@ -57407,7 +68511,8 @@ Index: gcc/po/es.po
 +#: cp/typeck.c:6894
  #, gcc-internal-format
  msgid "invalid static_cast from type %qT to type %qT"
- msgstr "static_cast inválido del tipo %qT al tipo %qT"
+-msgstr "static_cast inválido del tipo %qT al tipo %qT"
++msgstr "static_cast no válido del tipo %qT al tipo %qT"
  
 -#: cp/typeck.c:6921
 +#: cp/typeck.c:6920
@@ -57419,7 +68524,8 @@ Index: gcc/po/es.po
 +#: cp/typeck.c:6972
  #, gcc-internal-format
  msgid "invalid cast of an rvalue expression of type %qT to type %qT"
- msgstr "conversión inválida de una expresión r-valuada de tipo %qT al tipo %qT"
+-msgstr "conversión inválida de una expresión r-valuada de tipo %qT al tipo %qT"
++msgstr "conversión no válida de una expresión r-valuada de tipo %qT al tipo %qT"
  
 -#: cp/typeck.c:7043
 +#: cp/typeck.c:7042
@@ -57444,31 +68550,36 @@ Index: gcc/po/es.po
 +#: cp/typeck.c:7114
  #, gcc-internal-format
  msgid "invalid cast from type %qT to type %qT"
- msgstr "conversión inválida del tipo %qT al tipo %qT"
+-msgstr "conversión inválida del tipo %qT al tipo %qT"
++msgstr "conversión no válida del tipo %qT al tipo %qT"
  
 -#: cp/typeck.c:7176
 +#: cp/typeck.c:7175
  #, gcc-internal-format
  msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
- msgstr "uso inválido de const_cast con tipo %qT, que no es puntero, referencia, ni un tipo puntero-a-datos-miembro"
+-msgstr "uso inválido de const_cast con tipo %qT, que no es puntero, referencia, ni un tipo puntero-a-datos-miembro"
++msgstr "uso no válido de const_cast con tipo %qT, que no es puntero, referencia, ni un tipo puntero-a-datos-miembro"
  
 -#: cp/typeck.c:7185
 +#: cp/typeck.c:7184
  #, gcc-internal-format
  msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
- msgstr "uso inválido de const_cast con tipo %qT, el cual es un puntero o referencia a un tipo de función"
+-msgstr "uso inválido de const_cast con tipo %qT, el cual es un puntero o referencia a un tipo de función"
++msgstr "uso no válido de const_cast con tipo %qT, el cual es un puntero o referencia a un tipo de función"
  
 -#: cp/typeck.c:7225
 +#: cp/typeck.c:7224
  #, gcc-internal-format
  msgid "invalid const_cast of an rvalue of type %qT to type %qT"
- msgstr "const_cast inválido de un valor-r de tipo %qT al tipo %qT"
+-msgstr "const_cast inválido de un valor-r de tipo %qT al tipo %qT"
++msgstr "const_cast no válido de un valor-r de tipo %qT al tipo %qT"
  
 -#: cp/typeck.c:7286
 +#: cp/typeck.c:7285
  #, gcc-internal-format
  msgid "invalid const_cast from type %qT to type %qT"
- msgstr "const_cast inválido del tipo %qT al tipo %qT"
+-msgstr "const_cast inválido del tipo %qT al tipo %qT"
++msgstr "const_cast no válido del tipo %qT al tipo %qT"
  
 -#: cp/typeck.c:7379 cp/typeck.c:7387
 +#: cp/typeck.c:7378 cp/typeck.c:7386
@@ -57480,7 +68591,8 @@ Index: gcc/po/es.po
 +#: cp/typeck.c:7395
  #, gcc-internal-format
  msgid "invalid cast to function type %qT"
- msgstr "conversión inválida al tipo de función %qT"
+-msgstr "conversión inválida al tipo de función %qT"
++msgstr "conversión no válida al tipo de función %qT"
  
 -#: cp/typeck.c:7677
 +#: cp/typeck.c:7676
@@ -57510,7 +68622,8 @@ Index: gcc/po/es.po
 +#: cp/typeck.c:7779
  #, gcc-internal-format
  msgid "invalid array assignment"
- msgstr "asignación de matriz inválida"
+-msgstr "asignación de matriz inválida"
++msgstr "asignación de matriz no válida"
  
 -#: cp/typeck.c:7910
 +#: cp/typeck.c:7909
@@ -57534,7 +68647,8 @@ Index: gcc/po/es.po
 +#: cp/typeck.c:8070
  #, gcc-internal-format
  msgid "invalid conversion to type %qT from type %qT"
- msgstr "conversión inválida del tipo %qT a partir del tipo %qT"
+-msgstr "conversión inválida del tipo %qT a partir del tipo %qT"
++msgstr "conversión no válida del tipo %qT a partir del tipo %qT"
  
 -#: cp/typeck.c:8347
 +#: cp/typeck.c:8346
@@ -57660,7 +68774,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "returning a value from a destructor"
  msgstr "se devuelve un valor de un destructor"
-@@ -50277,57 +48923,57 @@
+@@ -50277,57 +48222,57 @@
  
  #. If a return statement appears in a handler of the
  #. function-try-block of a constructor, the program is ill-formed.
@@ -57728,21 +68842,116 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "using xvalue (rvalue reference) as lvalue"
  msgstr "se usa xvalue (referencia a r-valor) como l-valor"
-@@ -50531,166 +49177,166 @@
+@@ -50401,23 +48346,23 @@
+ #: cp/typeck2.c:336
+ #, gcc-internal-format
+ msgid "invalid abstract return type for member function %q+#D"
+-msgstr "tipo abstracto de devolución inválido para la función miembro %q+#D"
++msgstr "tipo abstracto de devolución no válido para la función miembro %q+#D"
+ 
+ #: cp/typeck2.c:338
+ #, gcc-internal-format
+ msgid "invalid abstract return type for function %q+#D"
+-msgstr "tipo abstracto de devolución inválido para la función %q+#D"
++msgstr "tipo abstracto de devolución no válido para la función %q+#D"
+ 
+ #. Here we do not have location information.
+ #: cp/typeck2.c:341
+ #, gcc-internal-format
+ msgid "invalid abstract type %qT for %qE"
+-msgstr "tipo abstracto %qT inválido para %qE"
++msgstr "tipo abstracto %qT no válido para %qE"
+ 
+ #: cp/typeck2.c:343
+ #, gcc-internal-format
+ msgid "invalid abstract type for %q+D"
+-msgstr "tipo abstracto inválido para %q+D"
++msgstr "tipo abstracto no válido para %q+D"
+ 
+ #: cp/typeck2.c:348
+ #, gcc-internal-format
+@@ -50428,25 +48373,25 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid cast to function type %qT"
+ msgid "invalid cast to abstract class type %qT"
+-msgstr "conversión inválida al tipo de función %qT"
++msgstr "conversión no válida al tipo de función %qT"
+ 
+ #: cp/typeck2.c:354
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
+ msgid "invalid new-expression of abstract class type %qT"
+-msgstr "conversión inválida de una expresión r-valuada de tipo %qT al tipo %qT"
++msgstr "conversión no válida de una expresión r-valuada de tipo %qT al tipo %qT"
+ 
+ #: cp/typeck2.c:357
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid parameter type %qT"
+ msgid "invalid abstract return type %qT"
+-msgstr "tipo de parámetro %qT inválido"
++msgstr "tipo de parámetro %qT no válido"
+ 
+ #: cp/typeck2.c:360
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid parameter type %qT"
+ msgid "invalid abstract parameter type %qT"
+-msgstr "tipo de parámetro %qT inválido"
++msgstr "tipo de parámetro %qT no válido"
+ 
+ #: cp/typeck2.c:363
+ #, fuzzy, gcc-internal-format
+@@ -50502,195 +48447,195 @@
+ #: cp/typeck2.c:487
+ #, gcc-internal-format
+ msgid "invalid use of incomplete type %q#T"
+-msgstr "uso inválido del tipo incompleto %q#T"
++msgstr "uso no válido del tipo incompleto %q#T"
+ 
+ #: cp/typeck2.c:495
+ #, gcc-internal-format
+ msgid "invalid use of %qT"
+-msgstr "uso inválido de %qT"
++msgstr "uso no válido de %qT"
+ 
+ #: cp/typeck2.c:517
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid use of member function (did you forget the %<()%> ?)"
+ msgid "invalid use of member function %qD (did you forget the %<()%> ?)"
+-msgstr "uso inválido de la función miembro (¿Olvidó el %<&%>?)"
++msgstr "uso no válido de la función miembro (¿Olvidó el %<&%>?)"
+ 
+ #: cp/typeck2.c:521
+ #, fuzzy, gcc-internal-format
+ #| msgid "invalid use of member (did you forget the %<&%> ?)"
+ msgid "invalid use of member %qD (did you forget the %<&%> ?)"
+-msgstr "uso inválido del miembro (¿Olvidó el %<&%>?)"
++msgstr "uso no válido del miembro (¿Olvidó el %<&%>?)"
+ 
+ #: cp/typeck2.c:532
+ #, gcc-internal-format
+ msgid "invalid use of template type parameter %qT"
+-msgstr "uso inválido del parámetro de tipo plantilla %qT"
++msgstr "uso no válido del parámetro de tipo plantilla %qT"
+ 
+ #: cp/typeck2.c:537
+ #, gcc-internal-format
  msgid "invalid use of template template parameter %qT"
- msgstr "uso inválido del parámetro de plantilla plantilla %qT"
+-msgstr "uso inválido del parámetro de plantilla plantilla %qT"
++msgstr "uso no válido del parámetro de plantilla plantilla %qT"
  
 -#: cp/typeck2.c:543
 +#: cp/typeck2.c:544
  #, gcc-internal-format
  msgid "invalid use of dependent type %qT"
- msgstr "uso inválido del tipo dependiente %qT"
+-msgstr "uso inválido del tipo dependiente %qT"
++msgstr "uso no válido del tipo dependiente %qT"
  
 -#: cp/typeck2.c:550
 +#: cp/typeck2.c:551
  #, gcc-internal-format
  msgid "invalid use of brace-enclosed initializer list"
- msgstr "uso inválido  de la lista del inicializador dentro de llaves"
+-msgstr "uso inválido  de la lista del inicializador dentro de llaves"
++msgstr "uso no válido  de la lista del inicializador dentro de llaves"
  
 -#: cp/typeck2.c:558
 +#: cp/typeck2.c:559
@@ -57914,7 +69123,8 @@ Index: gcc/po/es.po
 +#: cp/typeck2.c:1967
  #, gcc-internal-format
  msgid "invalid value-initialization of reference type"
- msgstr "inicialización por valor inválida del tipo de referencia"
+-msgstr "inicialización por valor inválida del tipo de referencia"
++msgstr "inicialización por valor no válida del tipo de referencia"
  
 -#: cp/typeck2.c:2191
 +#: cp/typeck2.c:2194
@@ -57927,7 +69137,16 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "call to function which throws incomplete type %q#T"
  msgstr "llamada a una función la cual arroja el tipo incompleto %q#T"
-@@ -50910,8 +49556,8 @@
+@@ -50901,7 +48846,7 @@
+ #: fortran/array.c:193
+ #, gcc-internal-format, gfc-internal-format
+ msgid "Invalid form of array reference at %C"
+-msgstr "Forma inválida de referencia a matriz en %C"
++msgstr "Forma no válida de referencia a matriz en %C"
+ 
+ #: fortran/array.c:198 fortran/array.c:271
+ #, gcc-internal-format, gfc-internal-format
+@@ -50910,8 +48855,8 @@
  
  #: fortran/array.c:213 fortran/array.c:625 fortran/check.c:2642
  #: fortran/check.c:4950 fortran/check.c:4988 fortran/check.c:5030
@@ -57938,7 +69157,22 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Coarrays disabled at %C, use -fcoarray= to enable"
  msgid "Coarrays disabled at %C, use %<-fcoarray=%> to enable"
-@@ -51063,7 +49709,7 @@
+@@ -50941,12 +48886,12 @@
+ #: fortran/array.c:253
+ #, gcc-internal-format, gfc-internal-format
+ msgid "Invalid form of coarray reference at %C"
+-msgstr "Forma inválida de referencia a comatriz en %C"
++msgstr "Forma no válida de referencia a comatriz en %C"
+ 
+ #: fortran/array.c:265
+ #, gcc-internal-format, gfc-internal-format
+ msgid "Invalid codimension %d at %C, only %d codimensions exist"
+-msgstr "Codimensión %d inválida en %C, sólo existen %d codimensiones"
++msgstr "Codimensión %d no válida en %C, sólo existen %d codimensiones"
+ 
+ #: fortran/array.c:317
+ #, fuzzy, gcc-internal-format
+@@ -51063,7 +49008,7 @@
  msgid "Array constructor including type specification at %C"
  msgstr "Fortran 2003: Los constructores de matriz incluyen especificación de tipo en %C"
  
@@ -57947,7 +69181,34 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Type-spec at %L cannot contain a deferred type parameter"
  msgstr "La especificación de tipo en %L no puede tener un parámetro de tipo diferido"
-@@ -52218,7 +50864,7 @@
+@@ -51206,7 +49151,7 @@
+ #: fortran/check.c:176
+ #, gcc-internal-format, gfc-internal-format
+ msgid "Invalid kind for %s at %L"
+-msgstr "Género inválido para %s en %L"
++msgstr "Género no válido para %s en %L"
+ 
+ #: fortran/check.c:195
+ #, fuzzy, gcc-internal-format
+@@ -51589,7 +49534,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "'%s' argument of '%s' intrinsic at %L has invalid shape in dimension %d (%ld/%ld)"
+ msgid "%qs argument of %qs intrinsic at %L has invalid shape in dimension %d (%ld/%ld)"
+-msgstr "el argumento '%s' del intrínseco '%s' en %L tiene una forma inválida en la dimensión %d (%ld/%ld)"
++msgstr "el argumento '%s' del intrínseco '%s' en %L tiene una forma no válida en la dimensión %d (%ld/%ld)"
+ 
+ #: fortran/check.c:1854 fortran/check.c:2105 fortran/check.c:2133
+ #, fuzzy, gcc-internal-format
+@@ -51860,7 +49805,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "'%s' argument of '%s' intrinsic at %L has invalid permutation of dimensions (dimension '%d' duplicated)"
+ msgid "%qs argument of %qs intrinsic at %L has invalid permutation of dimensions (dimension %qd duplicated)"
+-msgstr "el argumento '%s' del intrínseco '%s' en %L tiene una permutación inválida de dimensiones (dimensión '%d' duplicada)"
++msgstr "el argumento '%s' del intrínseco '%s' en %L tiene una permutación no válida de dimensiones (dimensión '%d' duplicada)"
+ 
+ #: fortran/check.c:3900
+ #, gcc-internal-format, gfc-internal-format
+@@ -52218,7 +50163,7 @@
  msgid "Intrinsic function NULL at %L cannot be an actual argument to STORAGE_SIZE, because it returns a disassociated pointer"
  msgstr ""
  
@@ -57956,7 +69217,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Assumed size polymorphic objects or components, such as that at %C, have not yet been implemented"
  msgstr "Objetos o componentes polimórficos de tamaño asumido, tales como el que está en %C, aún no están implementados"
-@@ -52225,13 +50871,13 @@
+@@ -52225,13 +50170,13 @@
  
  #. Since the extension field is 8 bit wide, we can only have
  #. up to 255 extension levels.
@@ -57972,7 +69233,16 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "'%s' of '%s' is PRIVATE at %L"
  msgid "%qs of %qs is PRIVATE at %L"
-@@ -52336,242 +50982,295 @@
+@@ -52318,7 +50263,7 @@
+ #: fortran/decl.c:421
+ #, gcc-internal-format, gfc-internal-format
+ msgid "Invalid initializer %s in Data statement at %C"
+-msgstr "Inicializador %s inválido en la declaración Data en %C"
++msgstr "Inicializador %s no válido en la declaración Data en %C"
+ 
+ #: fortran/decl.c:523
+ #, gcc-internal-format, gfc-internal-format
+@@ -52336,242 +50281,295 @@
  msgid "DATA statement at %C is not allowed in a PURE procedure"
  msgstr "No se permite la declaración DATA en %C en un procedimiento PURE"
  
@@ -58311,7 +69581,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "%qs at %C is a redefinition of the declaration in the corresponding interface for MODULE PROCEDURE %qs"
  msgstr ""
-@@ -52581,359 +51280,381 @@
+@@ -52581,359 +50579,381 @@
  # como `apuntado'. cfuga
  # Referencia: http://gcc.gnu.org/onlinedocs/gfortran/Cray-pointers.html
  #
@@ -58339,7 +69609,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "invalid value-initialization of reference type"
  msgid "Invalid old style initialization for derived type component at %C"
- msgstr "inicialización por valor inválida del tipo de referencia"
+-msgstr "inicialización por valor inválida del tipo de referencia"
++msgstr "inicialización por valor no válida del tipo de referencia"
  
 -#: fortran/decl.c:2176 fortran/decl.c:5265
 +#: fortran/decl.c:2361
@@ -58760,7 +70031,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Return type of BIND(C) function '%s' at %L cannot be a character string"
  msgid "Return type of BIND(C) function %qs at %L cannot be a character string"
-@@ -52941,317 +51662,338 @@
+@@ -52941,317 +50961,338 @@
  
  #. Use gfc_warning_now because we won't say that the symbol fails
  #. just because of this.
@@ -59104,7 +70375,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Invalid C name in NAME= specifier at %C"
  msgid "Invalid C identifier in NAME= specifier at %C"
- msgstr "Nombre C inválido en el especificador NAME= en %C"
+-msgstr "Nombre C inválido en el especificador NAME= en %C"
++msgstr "Nombre C no válido en el especificador NAME= en %C"
  
 -#: fortran/decl.c:6211
 +#: fortran/decl.c:6534
@@ -59160,7 +70432,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Fortran 2008: END statement instead of %s statement at %L"
  msgid "END statement instead of %s statement at %L"
-@@ -53258,565 +52000,612 @@
+@@ -53258,565 +51299,612 @@
  msgstr "Fortran 2008: Declaración END en lugar de una declaración %s en %L"
  
  #. We would have required END [something].
@@ -59726,7 +70998,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "'=> target' is invalid for DEFERRED binding at %C"
  msgid "%<=> target%> is invalid for DEFERRED binding at %C"
- msgstr "'=> objetivo' es inválido para el enlace DEFERRED en %C"
+-msgstr "'=> objetivo' es inválido para el enlace DEFERRED en %C"
++msgstr "'=> objetivo' es no válido para el enlace DEFERRED en %C"
  
 -#: fortran/decl.c:8742
 +#: fortran/decl.c:9283
@@ -59780,7 +71053,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Invalid form of PROGRAM statement at %C"
  msgid "Malformed GENERIC statement at %C"
- msgstr "Forma inválida de la declaración PROGRAM en %C"
+-msgstr "Forma inválida de la declaración PROGRAM en %C"
++msgstr "Forma no válida de la declaración PROGRAM en %C"
  
 -#: fortran/decl.c:8892
 +#: fortran/decl.c:9433
@@ -59878,7 +71152,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Syntax error in !GCC$ ATTRIBUTES statement at %C"
  msgstr "Error sintáctico en la declaración !GCC$ ATTRIBUTES en %C"
-@@ -53836,44 +52625,44 @@
+@@ -53836,44 +51924,44 @@
  msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
  msgstr "El argumento actual INTENT(%s) en %L puede interferir con el argumento actual en %L."
  
@@ -59931,7 +71205,16 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "<During initialization>\n"
  msgstr "<Durante la inicialización>\n"
-@@ -53983,7 +52772,7 @@
+@@ -53963,7 +52051,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "Invalid initialization expression for ALLOCATABLE component '%s' in structure constructor at %L"
+ msgid "Invalid initialization expression for ALLOCATABLE component %qs in structure constructor at %L"
+-msgstr "Expresión de inicialización inválida para el componente ALLOCATABLE '%s' en el constructor de estructura en %L"
++msgstr "Expresión de inicialización no válida para el componente ALLOCATABLE '%s' en el constructor de estructura en %L"
+ 
+ #: fortran/expr.c:2329
+ #, fuzzy, gcc-internal-format
+@@ -53983,7 +52071,7 @@
  msgid "Evaluation of nonstandard initialization expression at %L"
  msgstr "Extensión: Evaluación de una expresión de inicialización no estándar en %L"
  
@@ -59940,7 +71223,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Function '%s' in initialization expression at %L must be an intrinsic function"
  msgid "Function %qs in initialization expression at %L must be an intrinsic function"
-@@ -54150,31 +52939,31 @@
+@@ -54150,31 +52238,31 @@
  msgid "BOZ literal at %L used to initialize non-integer variable %qs"
  msgstr "Extensión: se usa la literal BOZ en %L para inicializar la variable '%s' que no es entera"
  
@@ -59977,7 +71260,58 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check"
  msgid "Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled with the option %<-fno-range-check%>"
-@@ -54274,7 +53063,7 @@
+@@ -54231,43 +52319,43 @@
+ #: fortran/expr.c:3451
+ #, gcc-internal-format, gfc-internal-format
+ msgid "Invalid procedure pointer assignment at %L"
+-msgstr "Asignación de puntero de procedimiento inválida en %L"
++msgstr "Asignación de puntero de procedimiento no válida en %L"
+ 
+ #: fortran/expr.c:3475
+ #, fuzzy, gcc-internal-format
+ #| msgid "Statement function '%s' is invalid in procedure pointer assignment at %L"
+ msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
+-msgstr "La función de declaración '%s' es inválida en la asignación de puntero de procedimiento en %L"
++msgstr "La función de declaración '%s' es no válida en la asignación de puntero de procedimiento en %L"
+ 
+ #: fortran/expr.c:3484
+ #, fuzzy, gcc-internal-format
+ #| msgid "Abstract interface '%s' is invalid in procedure pointer assignment at %L"
+ msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
+-msgstr "La interfaz abstracta '%s' es inválida en la asignación de puntero de procedimiento en %L"
++msgstr "La interfaz abstracta '%s' es no válida en la asignación de puntero de procedimiento en %L"
+ 
+ #: fortran/expr.c:3494
+ #, fuzzy, gcc-internal-format
+ #| msgid "Statement function '%s' is invalid in procedure pointer assignment at %L"
+ msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
+-msgstr "La función de declaración '%s' es inválida en la asignación de puntero de procedimiento en %L"
++msgstr "La función de declaración '%s' es no válida en la asignación de puntero de procedimiento en %L"
+ 
+ #: fortran/expr.c:3500
+ #, fuzzy, gcc-internal-format
+ #| msgid "Internal procedure '%s' is invalid in procedure pointer assignment at %L"
+ msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
+-msgstr "El procedimiento interno '%s' es inválido en la asignación de puntero de procedimiento en %L"
++msgstr "El procedimiento interno '%s' es no válido en la asignación de puntero de procedimiento en %L"
+ 
+ #: fortran/expr.c:3507
+ #, fuzzy, gcc-internal-format
+ #| msgid "Internal procedure '%s' is invalid in procedure pointer assignment at %L"
+ msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
+-msgstr "El procedimiento interno '%s' es inválido en la asignación de puntero de procedimiento en %L"
++msgstr "El procedimiento interno '%s' es no válido en la asignación de puntero de procedimiento en %L"
+ 
+ #: fortran/expr.c:3515
+ #, fuzzy, gcc-internal-format
+ #| msgid "Nonintrinsic elemental procedure '%s' is invalid in procedure pointer assigment at %L"
+ msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
+-msgstr "El procedimiento elemental que no es intrínseco '%s' es inválido en la asignación de puntero de procedimiento en %L"
++msgstr "El procedimiento elemental que no es intrínseco '%s' es no válido en la asignación de puntero de procedimiento en %L"
+ 
+ #: fortran/expr.c:3538
+ #, gcc-internal-format, gfc-internal-format
+@@ -54274,7 +52362,7 @@
  msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
  msgstr "No hay coincidencia en la asignación de puntero a procedimiento en %L: no hay coincidencia en la convención a llamada"
  
@@ -59986,7 +71320,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "NOPASS or explicit interface required at %C"
  msgid "Explicit interface required for %qs at %L: %s"
-@@ -54374,7 +53163,7 @@
+@@ -54374,7 +52462,7 @@
  msgid "Pointer initialization target at %L must have the TARGET attribute"
  msgstr "El objetivo de inicialización de puntero en %C debe tener el atributo TARGET"
  
@@ -59995,7 +71329,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Pointer initialization target at %L must have the SAVE attribute"
  msgstr "El objetivo de inicialización de puntero en %L debe tener el atributo SAVE"
-@@ -54384,99 +53173,99 @@
+@@ -54384,99 +52472,99 @@
  msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
  msgstr "El objetivo de inicialización de puntero a procedimiento en %L tal vez no es un puntero a procedimiento"
  
@@ -60112,7 +71446,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "'%s' at %L associated to expression can not be used in a variable definition context (%s)"
  msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
-@@ -54487,60 +53276,60 @@
+@@ -54487,60 +52575,60 @@
  msgid "can't open input file: %s"
  msgstr "no se puede abrir el fichero de entrada: %s"
  
@@ -60143,7 +71477,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid operands in gimple comparison"
  msgid "illegal OP in optimize_comparison"
- msgstr "operandos inválidos en la comparación gimple"
+-msgstr "operandos inválidos en la comparación gimple"
++msgstr "operandos no válidos en la comparación gimple"
  
 -#: fortran/frontend-passes.c:1887
 +#: fortran/frontend-passes.c:1910
@@ -60184,7 +71519,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "Scalarization using DIMEN_RANGE unimplemented"
  msgstr ""
-@@ -54622,672 +53411,672 @@
+@@ -54622,672 +52710,672 @@
  msgid "Expecting %<END INTERFACE %s%> at %C"
  msgstr "Se esperaba 'END INTERFACE %s' en %C"
  
@@ -60358,7 +71693,8 @@ Index: gcc/po/es.po
 +#: fortran/interface.c:2087
  #, gcc-internal-format, gfc-internal-format
  msgid "Invalid procedure argument at %L"
- msgstr "Argumento de procedimiento inválido en %L"
+-msgstr "Argumento de procedimiento inválido en %L"
++msgstr "Argumento de procedimiento no válido en %L"
  
 -#: fortran/interface.c:1988 fortran/interface.c:2015
 +#: fortran/interface.c:2095 fortran/interface.c:2122
@@ -60462,7 +71798,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Passing coarray at %L to allocatable, noncoarray dummy argument '%s', which is invalid if the allocation status is modified"
  msgid "Passing coarray at %L to allocatable, noncoarray dummy argument %qs, which is invalid if the allocation status is modified"
- msgstr "Se pasa una comatriz en %L al argumento dummy '%s' que no es comatriz, el cual es inválido si se modifica el estado de alojamiento"
+-msgstr "Se pasa una comatriz en %L al argumento dummy '%s' que no es comatriz, el cual es inválido si se modifica el estado de alojamiento"
++msgstr "Se pasa una comatriz en %L al argumento dummy '%s' que no es comatriz, el cual es no válido si se modifica el estado de alojamiento"
  
 -#: fortran/interface.c:2274
 +#: fortran/interface.c:2381
@@ -60974,7 +72311,43 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Passed-object dummy argument of '%s' at %L must be at the same position as the passed-object dummy argument of the overridden procedure"
  msgid "Passed-object dummy argument of %qs at %L must be at the same position as the passed-object dummy argument of the overridden procedure"
-@@ -55801,7 +54590,7 @@
+@@ -55406,7 +53494,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "Invalid reference to intrinsic `%A' at %0"
+ msgid "Invalid standard code on intrinsic %qs (%d)"
+-msgstr "Referencia inválida al intrínseco `%A' en %0"
++msgstr "Referencia no válida al intrínseco `%A' en %0"
+ 
+ #: fortran/intrinsic.c:4372
+ #, fuzzy, gcc-internal-format
+@@ -55591,7 +53679,7 @@
+ #: fortran/io.c:1298 fortran/io.c:1329 fortran/io.c:1395
+ #, gcc-internal-format, gfc-internal-format
+ msgid "Invalid value for %s specification at %C"
+-msgstr "Valor inválido para la especificación %s en %C"
++msgstr "Valor no válido para la especificación %s en %C"
+ 
+ #: fortran/io.c:1304 fortran/io.c:1335
+ #, gcc-internal-format, gfc-internal-format
+@@ -55716,7 +53804,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "%s specifier in %s statement at %C has invalid value '%s'"
+ msgid "%s specifier in %s statement at %C has value %qs"
+-msgstr "El especificador %s en la declaración %s en %C tiene el valor inválido '%s'"
++msgstr "El especificador %s en la declaración %s en %C tiene el valor no válido '%s'"
+ 
+ #: fortran/io.c:1793
+ #, fuzzy, gcc-internal-format
+@@ -55728,7 +53816,7 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "%s specifier in %s statement at %C has invalid value '%s'"
+ msgid "%s specifier in %s statement at %C has invalid value %qs"
+-msgstr "El especificador %s en la declaración %s en %C tiene el valor inválido '%s'"
++msgstr "El especificador %s en la declaración %s en %C tiene el valor no válido '%s'"
+ 
+ #: fortran/io.c:1876
+ #, gcc-internal-format, gfc-internal-format
+@@ -55801,7 +53889,7 @@
  msgid "UNIT number in CLOSE statement at %L must be non-negative"
  msgstr "El número UNIT en la declaración CLOSE en %L debe ser no negativo"
  
@@ -60983,7 +72356,16 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "%s statement not allowed in PURE procedure at %C"
  msgstr "No se permite una declaración %s en el procedimiento PURE en %C"
-@@ -55933,7 +54722,7 @@
+@@ -55868,7 +53956,7 @@
+ #: fortran/io.c:2947
+ #, gcc-internal-format, gfc-internal-format
+ msgid "Invalid form of WRITE statement at %L, UNIT required"
+-msgstr "Forma inválida de la declaración WRITE en %L, se requiere UNIT"
++msgstr "Forma no válida de la declaración WRITE en %L, se requiere UNIT"
+ 
+ #: fortran/io.c:2958
+ #, gcc-internal-format, gfc-internal-format
+@@ -55933,7 +54021,7 @@
  msgstr "Se esperaba una expresión en la declaración %s en %C"
  
  #. A general purpose syntax error.
@@ -60992,7 +72374,16 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Syntax error in %s statement at %C"
  msgstr "Error sintáctico en la declaración %s en %C"
-@@ -56024,653 +54813,664 @@
+@@ -55984,7 +54072,7 @@
+ #: fortran/io.c:4111
+ #, gcc-internal-format, gfc-internal-format
+ msgid "IOLENGTH tag invalid in INQUIRE statement at %C"
+-msgstr "La etiqueta IOLENGHT es inválida en la declaración INQUIRE en %C"
++msgstr "La etiqueta IOLENGHT es no válida en la declaración INQUIRE en %C"
+ 
+ #: fortran/io.c:4121 fortran/trans-io.c:1303
+ #, gcc-internal-format, gfc-internal-format
+@@ -56024,653 +54112,664 @@
  msgid "gfc_op2string(): Bad code"
  msgstr "gfc_trans_code(): Código de declaración erróneo"
  
@@ -61057,7 +72448,8 @@ Index: gcc/po/es.po
 +#: fortran/match.c:662
  #, gcc-internal-format, gfc-internal-format
  msgid "Invalid character in name at %C"
- msgstr "Carácter inválido en el nombre en %C"
+-msgstr "Carácter inválido en el nombre en %C"
++msgstr "Carácter no válido en el nombre en %C"
  
 -#: fortran/match.c:553
 +#: fortran/match.c:675
@@ -61070,7 +72462,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Invalid character '$' at %C. Use -fdollar-ok to allow it as an extension"
  msgid "Invalid character %<$%> at %L. Use %<-fdollar-ok%> to allow it as an extension"
- msgstr "Carácter '$' inválido en %C. Use -fdollar-ok para permitirlo como una extensión"
+-msgstr "Carácter '$' inválido en %C. Use -fdollar-ok para permitirlo como una extensión"
++msgstr "Carácter '$' no válido en %C. Use -fdollar-ok para permitirlo como una extensión"
  
 -#: fortran/match.c:882
 +#: fortran/match.c:1004
@@ -61114,7 +72507,8 @@ Index: gcc/po/es.po
 +#: fortran/match.c:1304
  #, gcc-internal-format, gfc-internal-format
  msgid "Invalid form of PROGRAM statement at %C"
- msgstr "Forma inválida de la declaración PROGRAM en %C"
+-msgstr "Forma inválida de la declaración PROGRAM en %C"
++msgstr "Forma no válida de la declaración PROGRAM en %C"
  
 -#: fortran/match.c:1312 fortran/match.c:1392
 +#: fortran/match.c:1434 fortran/match.c:1514
@@ -61252,7 +72646,8 @@ Index: gcc/po/es.po
 +#: fortran/match.c:2059
  #, gcc-internal-format, gfc-internal-format
  msgid "Invalid type-spec at %C"
- msgstr "Especificación de tipo inválida en %C"
+-msgstr "Especificación de tipo inválida en %C"
++msgstr "Especificación de tipo no válida en %C"
  
 -#: fortran/match.c:2036
 +#: fortran/match.c:2158
@@ -61779,7 +73174,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Syntax error in common block name at %C"
  msgstr "Error sintáctico en el nombre de bloque común en %C"
-@@ -56678,172 +55478,172 @@
+@@ -56678,172 +54777,172 @@
  #. If we find an error, just print it and continue,
  #. cause it's just semantic, and we can see if there
  #. are more errors.
@@ -61983,7 +73378,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Label '%s' at %C doesn't match WHERE label '%s'"
  msgid "Label %qs at %C doesn't match WHERE label %qs"
-@@ -56882,17 +55682,17 @@
+@@ -56882,17 +54981,17 @@
  msgid "match_level_4(): Bad operator"
  msgstr ""
  
@@ -62004,7 +73399,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "gfc_trans_code(): Bad statement code"
  msgid "gfc_code2string(): Bad code"
-@@ -57002,61 +55802,61 @@
+@@ -57002,61 +55101,61 @@
  msgid "unquote_string(): got bad string"
  msgstr ""
  
@@ -62077,7 +73472,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Can't open module file '%s' for writing at %C: %s"
  msgid "Can't open module file %qs for writing at %C: %s"
-@@ -57063,148 +55863,148 @@
+@@ -57063,148 +55162,148 @@
  msgstr "No se puede abrir el fichero de módulo '%s' para escritura en %C: %s"
  
  # El mensaje de error seguramente está mal redactado. cfuga
@@ -62253,7 +73648,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "COMMON block /%s/ not found at %C"
  msgstr "No se encontró el bloque COMMON /%s/ en %C"
-@@ -57220,501 +56020,501 @@
+@@ -57220,501 +55319,501 @@
  msgid "Syntax error in OpenACC expression list at %C"
  msgstr "Error sintáctico en la expresión en %C"
  
@@ -62331,7 +73726,8 @@ Index: gcc/po/es.po
 -#, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Invalid third argument of IBITS at %L"
  msgid "Invalid argument to $!ACC WAIT at %L"
- msgstr "Tercer argumento de IBITS inválido en %L"
+-msgstr "Tercer argumento de IBITS inválido en %L"
++msgstr "Tercer argumento de IBITS no válido en %L"
  
 -#: fortran/openmp.c:1609
 +#: fortran/openmp.c:1660
@@ -62851,7 +74247,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Variable '%s' in %s clause is used in NAMELIST statement at %L"
  msgid "Variable %qs in %s clause is used in NAMELIST statement at %L"
-@@ -57721,725 +56521,688 @@
+@@ -57721,725 +55820,688 @@
  msgstr "Se usó la variable '%s' en la cláusula %s en la declaración NAMELIST en %L"
  
  #. case OMP_LIST_REDUCTION:
@@ -63700,7 +75096,7 @@ Index: gcc/po/es.po
  #: fortran/parse.c:2852
  #, gcc-internal-format, gfc-internal-format
  msgid "Component %s at %L of type LOCK_TYPE must have a codimension or be a subcomponent of a coarray, which is not possible as the component has the pointer attribute"
-@@ -58507,244 +57270,299 @@
+@@ -58507,244 +56569,299 @@
  msgstr "El componente %s que no es comatriz en %L de tipo LOCK_TYPE o con subcomponente de tipo LOCK_TYPE debe tener una codimensión o ser un subcomponente de una comatriz. (Las variables de tipo %s pueden no tener una codimiensión ya que %s en %L tiene una codimensión o un componente submatriz)"
  
  #: fortran/parse.c:2968
@@ -64044,7 +75440,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Unexpected %s statement in MODULE at %C"
  msgstr "Declaración %s inesperada en MODULE en %C"
-@@ -58752,7 +57570,7 @@
+@@ -58752,7 +56869,7 @@
  #. If we see a duplicate main program, shut down.  If the second
  #. instance is an implied main program, i.e. data decls or executable
  #. statements, we're in for lots of errors.
@@ -64053,7 +75449,61 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Two main PROGRAMs at %L and %C"
  msgstr "Dos PROGRAMas principales en %L y %C"
-@@ -58996,166 +57814,172 @@
+@@ -58786,17 +56903,17 @@
+ #: fortran/primary.c:281
+ #, gcc-internal-format, gfc-internal-format
+ msgid "Invalid Hollerith constant: %L must contain at least one character"
+-msgstr "Constante Hollerith inválida: %L debe contener por lo menos un carácter"
++msgstr "Constante Hollerith no válida: %L debe contener por lo menos un carácter"
+ 
+ #: fortran/primary.c:287
+ #, gcc-internal-format, gfc-internal-format
+ msgid "Invalid Hollerith constant: Integer kind at %L should be default"
+-msgstr "Constante Hollerith inválida: El género entero en %L debe ser por defecto"
++msgstr "Constante Hollerith no válida: El género entero en %L debe ser por defecto"
+ 
+ #: fortran/primary.c:307
+ #, gcc-internal-format, gfc-internal-format
+ msgid "Invalid Hollerith constant at %L contains a wide character"
+-msgstr "Una constante Hollerith inválida en %L contiene un carácter ancho"
++msgstr "Una constante Hollerith no válida en %L contiene un carácter ancho"
+ 
+ #: fortran/primary.c:393
+ #, fuzzy, gcc-internal-format, gfc-internal-format
+@@ -58835,7 +56952,7 @@
+ #, fuzzy, gcc-internal-format, gfc-internal-format
+ #| msgid "Invalid exponent-letter 'q' in real-literal-constant at %C"
+ msgid "exponent-letter 'q' in real-literal-constant at %C"
+-msgstr "Letra-exponente 'q' inválida en la constante-literal-real en %C"
++msgstr "Letra-exponente 'q' no válida en la constante-literal-real en %C"
+ 
+ #: fortran/primary.c:562
+ #, fuzzy, gcc-internal-format
+@@ -58864,12 +56981,12 @@
+ #, fuzzy, gcc-internal-format
+ #| msgid "Invalid exponent-letter 'q' in real-literal-constant at %C"
+ msgid "Invalid exponent-letter %<q%> in real-literal-constant at %C"
+-msgstr "Letra-exponente 'q' inválida en la constante-literal-real en %C"
++msgstr "Letra-exponente 'q' no válida en la constante-literal-real en %C"
+ 
+ #: fortran/primary.c:711
+ #, gcc-internal-format, gfc-internal-format
+ msgid "Invalid real kind %d at %C"
+-msgstr "Género real %d inválido en %C"
++msgstr "Género real %d no válido en %C"
+ 
+ #: fortran/primary.c:726
+ #, gcc-internal-format, gfc-internal-format
+@@ -58899,7 +57016,7 @@
+ #: fortran/primary.c:1087
+ #, gcc-internal-format, gfc-internal-format
+ msgid "Invalid kind %d for CHARACTER constant at %C"
+-msgstr "Género %d inválido para la constante CHARACTER en %C"
++msgstr "Género %d no válido para la constante CHARACTER en %C"
+ 
+ #: fortran/primary.c:1108
+ #, gcc-internal-format, gfc-internal-format
+@@ -58996,166 +57113,172 @@
  msgid "extend_ref(): Bad tail"
  msgstr ""
  
@@ -64256,7 +75706,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "'%s' at %C is not a variable"
  msgid "%qs at %C is not a variable"
-@@ -59456,245 +58280,245 @@
+@@ -59456,245 +57579,245 @@
  msgid "COMMON block %qs at %L that is also a global procedure"
  msgstr "Fortran 2003: El bloque COMMON '%s' en %L también es un procedimiento global"
  
@@ -64305,7 +75755,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Invalid expression in the structure constructor for pointer component '%s' at %L in PURE procedure"
  msgid "Invalid expression in the structure constructor for pointer component %qs at %L in PURE procedure"
- msgstr "Expresión inválida en el constructor de estructura para el componente puntero '%s' en %L en el procedimiento PURE"
+-msgstr "Expresión inválida en el constructor de estructura para el componente puntero '%s' en %L en el procedimiento PURE"
++msgstr "Expresión no válida en el constructor de estructura para el componente puntero '%s' en %L en el procedimiento PURE"
  
 -#: fortran/resolve.c:1477
 +#: fortran/resolve.c:1483
@@ -64544,7 +75995,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "ABSTRACT INTERFACE '%s' must not be referenced at %L"
  msgid "ABSTRACT INTERFACE %qs must not be referenced at %L"
-@@ -59701,301 +58525,301 @@
+@@ -59701,301 +57824,301 @@
  msgstr "La ABSTRACT INTERFACE '%s' no se debe referenciar en %L"
  
  #. Internal procedures are taken care of in resolve_contained_fntype.
@@ -64902,7 +76353,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Assumed shape array at %L must be a dummy argument"
  msgid "Assumed-type variable %s at %L may only be used as actual argument"
-@@ -60005,12 +58829,12 @@
+@@ -60005,12 +58128,12 @@
  #. for all inquiry functions in resolve_function; the reason is
  #. that the function-name resolution happens too late in that
  #. function.
@@ -64917,7 +76368,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Assumed shape array at %L must be a dummy argument"
  msgid "Assumed-rank variable %s at %L may only be used as actual argument"
-@@ -60020,274 +58844,274 @@
+@@ -60020,274 +58143,274 @@
  #. for all inquiry functions in resolve_function; the reason is
  #. that the function-name resolution happens too late in that
  #. function.
@@ -65243,7 +76694,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Allocate-object at %L is subobject of object at %L"
  msgstr "El objeto de alojamiento en %L es un subobjeto del objeto en %L"
-@@ -60296,123 +59120,123 @@
+@@ -60296,219 +58419,219 @@
  #. element in the list.  Either way, we must
  #. issue an error and get the next case from P.
  #. FIXME: Sort P and Q by line number.
@@ -65390,8 +76841,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Invalid context for NULL() pointer at %%L"
  msgid "Invalid context for NULL () intrinsic at %L"
-@@ -60419,96 +59243,96 @@
- msgstr "Contexto inválido para el puntero NULL() en %%L"
+-msgstr "Contexto inválido para el puntero NULL() en %%L"
++msgstr "Contexto no válido para el puntero NULL() en %%L"
  
  #. FIXME: Test for defined input/output.
 -#: fortran/resolve.c:8647
@@ -65505,7 +76956,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Branch at %L may result in an infinite loop"
  msgstr "La ramificación en %L puede resultar en un bucle infinito"
-@@ -60515,12 +59339,12 @@
+@@ -60515,12 +58638,12 @@
  
  #. Note: A label at END CRITICAL does not leave the CRITICAL
  #. construct as END CRITICAL is still part of it.
@@ -65520,7 +76971,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
  msgstr "La declaración GOTO en %L deja la construcción DO CONCURRENT por la etiqueta en %L"
-@@ -60528,114 +59352,114 @@
+@@ -60528,114 +58651,114 @@
  #. The label is not in an enclosing block, so illegal.  This was
  #. allowed in Fortran 66, so we allow it as extension.  No
  #. further checks are necessary in this case.
@@ -65656,7 +77107,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
  msgstr ""
-@@ -60642,35 +59466,35 @@
+@@ -60642,35 +58765,35 @@
  
  #. Even if standard does not support this feature, continue to build
  #. the two statements to avoid upsetting frontend_passes.c.
@@ -65665,7 +77116,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Invalid procedure pointer assignment at %L"
  msgid "Pointer procedure assignment at %L"
- msgstr "Asignación de puntero de procedimiento inválida en %L"
+-msgstr "Asignación de puntero de procedimiento inválida en %L"
++msgstr "Asignación de puntero de procedimiento no válida en %L"
  
 -#: fortran/resolve.c:10262
 +#: fortran/resolve.c:10268
@@ -65699,7 +77151,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
  msgstr "La declaración de ASSIGN en %L requiere una variable INTEGER escalar por defecto"
-@@ -60677,40 +59501,40 @@
+@@ -60677,40 +58800,40 @@
  
  # 'kind' es el tipo del tipo de dato en Fortran. Lo traduzco como 
  # 'género', para evitar confusión con 'type' = 'tipo'. cfuga
@@ -65708,7 +77160,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Invalid kind for %s at %L"
  msgid "Invalid NULL at %L"
- msgstr "Género inválido para %s en %L"
+-msgstr "Género inválido para %s en %L"
++msgstr "Género no válido para %s en %L"
  
 -#: fortran/resolve.c:10604
 +#: fortran/resolve.c:10610
@@ -65747,7 +77200,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Binding label '%s' at %L collides with the global entity '%s' at %L"
  msgid "Variable %s with binding label %s at %L uses the same global identifier as entity at %L"
-@@ -60718,7 +59542,7 @@
+@@ -60718,7 +58841,7 @@
  
  #. This can only happen if the variable is defined in a module - if it
  #. isn't the same module, reject it.
@@ -65756,7 +77209,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Variable %s from module %s with binding label %s at %L uses the same global identifier as entity at %L from module %s"
  msgstr ""
-@@ -60726,60 +59550,60 @@
+@@ -60726,60 +58849,60 @@
  #. Print an error if the procedure is defined multiple times; we have to
  #. exclude references to the same procedure via module association or
  #. multiple checks for the same procedure.
@@ -65827,7 +77280,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Fortran 2008: Implied SAVE for module variable '%s' at %L, needed due to the default initialization"
  msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
-@@ -60787,521 +59611,527 @@
+@@ -60787,521 +58910,527 @@
  
  #. The shape of a main program or module array needs to be
  #. constant.
@@ -66456,7 +77909,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Fortran 2003: NAMELIST object '%s' in namelist '%s' at %L with ALLOCATABLE or POINTER components"
  msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
-@@ -61309,466 +60139,466 @@
+@@ -61309,466 +59438,466 @@
  
  #. FIXME: Once UDDTIO is implemented, the following can be
  #. removed.
@@ -67005,7 +78458,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE"
  msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
-@@ -61824,35 +60654,35 @@
+@@ -61824,35 +59953,35 @@
  msgid "Missing %<&%> in continued character constant at %C"
  msgstr "Falta un '&' en la constante de carácter continuado en %C"
  
@@ -67047,7 +78500,16 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Can't open file '%s'"
  msgid "Can't open file %qs"
-@@ -62044,44 +60874,44 @@
+@@ -61886,7 +60015,7 @@
+ #: fortran/simplify.c:133
+ #, gcc-internal-format, gfc-internal-format
+ msgid "Invalid KIND parameter of %s at %L"
+-msgstr "El parámetro KIND de %s es inválido en %L"
++msgstr "El parámetro KIND de %s es no válido en %L"
+ 
+ #: fortran/simplify.c:691
+ #, gcc-internal-format
+@@ -62044,44 +60173,44 @@
  msgid "DIM argument at %L is out of bounds"
  msgstr "El argumento DIM en %L está fuera de los límites"
  
@@ -67100,7 +78562,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "gfc_trans_code(): Bad statement code"
  msgid "gfc_simplify_mod(): Bad arguments"
-@@ -62090,98 +60920,98 @@
+@@ -62090,98 +60219,98 @@
  #. Result is processor-dependent. This processor just opts
  #. to not handle it at all.
  #. Result is processor-dependent.
@@ -67192,7 +78654,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Invalid second argument of IBSET at %L"
  msgid "invalid argument of SQRT at %L"
- msgstr "Segundo argumento de IBSET inválido en %L"
+-msgstr "Segundo argumento de IBSET inválido en %L"
++msgstr "Segundo argumento de IBSET no válido en %L"
  
 -#: fortran/simplify.c:6520
 +#: fortran/simplify.c:6524
@@ -67211,14 +78674,15 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "gfc_conv_constant_to_tree(): invalid type: %s"
  msgid "gfc_convert_constant(): Unexpected type"
- msgstr "gfc_conv_constant_to_tree(): tipo inválido: %s"
+-msgstr "gfc_conv_constant_to_tree(): tipo inválido: %s"
++msgstr "gfc_conv_constant_to_tree(): tipo no válido: %s"
  
 -#: fortran/simplify.c:6964
 +#: fortran/simplify.c:6968
  #, fuzzy, gcc-internal-format
  #| msgid "Character '%s' in string at %L cannot be converted into character kind %d"
  msgid "Character %qs in string at %L cannot be converted into character kind %d"
-@@ -62193,45 +61023,45 @@
+@@ -62193,45 +60322,45 @@
  msgid "gfc_free_statement(): Bad statement"
  msgstr "gfc_trans_code(): Código de declaración erróneo"
  
@@ -67272,7 +78736,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Symbol '%s' at %L has no IMPLICIT type"
  msgid "Symbol %qs at %L has no IMPLICIT type"
-@@ -62238,7 +61068,7 @@
+@@ -62238,7 +60367,7 @@
  msgstr "El símbolo '%s' en %L no tiene tipo IMPLICIT"
  
  #. BIND(C) variables should not be implicitly declared.
@@ -67281,7 +78745,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Implicitly declared BIND(C) variable '%s' at %L may not be C interoperable"
  msgid "Implicitly declared BIND(C) variable %qs at %L may not be C interoperable"
-@@ -62246,146 +61076,146 @@
+@@ -62246,146 +60375,146 @@
  
  #. Dummy args to a BIND(C) routine may not be interoperable if
  #. they are implicitly typed.
@@ -67455,7 +78919,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid ""
  "%s procedure at %L is already declared as %s procedure. \n"
-@@ -62392,163 +61222,163 @@
+@@ -62392,163 +60521,163 @@
  "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
  msgstr ""
  
@@ -67648,7 +79112,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Name '%s' at %C is an ambiguous reference to '%s' from current program unit"
  msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
-@@ -62555,72 +61385,72 @@
+@@ -62555,72 +60684,72 @@
  msgstr "El nombre '%s' en %C es una referencia ambigua a '%s' de la unidad de programa actual"
  
  #. Symbol is from another namespace.
@@ -67733,16 +79197,16 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Symbol '%s' is used before it is typed at %L"
  msgid "Symbol %qs is used before it is typed at %L"
-@@ -62630,7 +61460,7 @@
+@@ -62630,7 +60759,7 @@
  #, fuzzy, gcc-internal-format
  #| msgid "invalid expression for min lvalue"
  msgid "Invalid expression in gfc_element_size."
 -msgstr "expresión inválida para el l-valor min"
-+msgstr "expresión inválida para el l-valor min."
++msgstr "expresión no válida para el l-valor min."
  
  #: fortran/target-memory.c:346
  #, gcc-internal-format
-@@ -62654,51 +61484,51 @@
+@@ -62654,51 +60783,51 @@
  
  #. Problems occur when we get something like
  #. integer :: a(lots) = (/(i, i=1, lots)/)
@@ -67803,7 +79267,7 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "Inconsistent equivalence rules involving '%s' at %L and '%s' at %L"
  msgid "Inconsistent equivalence rules involving %qs at %L and %qs at %L"
-@@ -62705,49 +61535,49 @@
+@@ -62705,49 +60834,49 @@
  msgstr "Reglas de equivalencia inconsistentes que involucran a '%s' en %L y a '%s' en %L"
  
  #. Aligning this field would misalign a previous field.
@@ -67826,7 +79290,8 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "The equivalence set for '%s' cause an invalid extension to COMMON '%s' at %L"
  msgid "The equivalence set for %qs cause an invalid extension to COMMON %qs at %L"
- msgstr "El conjunto de equivalencia para '%s' causa una extensión inválida al COMMON '%s' en %L"
+-msgstr "El conjunto de equivalencia para '%s' causa una extensión inválida al COMMON '%s' en %L"
++msgstr "El conjunto de equivalencia para '%s' causa una extensión no válida al COMMON '%s' en %L"
  
 -#: fortran/trans-common.c:1142
 +#: fortran/trans-common.c:1140
@@ -67861,7 +79326,16 @@ Index: gcc/po/es.po
  #, fuzzy, gcc-internal-format
  #| msgid "COMMON at %L requires %d bytes of padding; reorder elements or use -fno-align-commons"
  msgid "COMMON at %L requires %d bytes of padding; reorder elements or use %<-fno-align-commons%>"
-@@ -62768,83 +61598,83 @@
+@@ -62761,7 +60890,7 @@
+ #: fortran/trans-const.c:360
+ #, gcc-internal-format, gfc-internal-format
+ msgid "gfc_conv_constant_to_tree(): invalid type: %s"
+-msgstr "gfc_conv_constant_to_tree(): tipo inválido: %s"
++msgstr "gfc_conv_constant_to_tree(): tipo no válido: %s"
+ 
+ #: fortran/trans-const.c:391
+ #, gcc-internal-format, gfc-internal-format
+@@ -62768,83 +60897,83 @@
  msgid "non-constant initialization expression at %L"
  msgstr "expresión de inicialización que no es constante en %L"
  
@@ -67959,7 +79433,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Sorry, $!ACC DECLARE at %L is not allowed in BLOCK construct"
  msgstr ""
-@@ -62875,12 +61705,12 @@
+@@ -62875,12 +61004,12 @@
  msgid "Sorry, coindexed access at %L to a scalar component with an array partref is not yet supported"
  msgstr "Lo siento, aún no se admiten las comatrices escalares alojables en %L"
  
@@ -67974,7 +79448,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Unknown argument list function at %L"
  msgstr "Lista de argumentos de función desconocida en %L"
-@@ -62920,7 +61750,7 @@
+@@ -62920,7 +61049,7 @@
  msgid "Bad IO basetype (%d)"
  msgstr "Tipo base ES erróneo (%d)"
  
@@ -67983,7 +79457,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "gfc_trans_omp_workshare(): Bad statement code"
  msgstr "gfc_trans_omp_workshare(): Código de declaración erróneo"
-@@ -62945,7 +61775,7 @@
+@@ -62945,7 +61074,7 @@
  #, fuzzy, gcc-internal-format
  #| msgid "gfc_trans_code(): Bad statement code"
  msgid "gfc_trans_select(): Bad type for case expr."
@@ -67992,7 +79466,7 @@ Index: gcc/po/es.po
  
  #: fortran/trans-types.c:488
  #, fuzzy, gcc-internal-format
-@@ -63017,7 +61847,7 @@
+@@ -63017,7 +61146,7 @@
  msgid "gfc_validate_kind(): Got bad kind"
  msgstr ""
  
@@ -68001,7 +79475,7 @@ Index: gcc/po/es.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Array element size too big at %C"
  msgstr "El tamaño del elemento de la matriz es demasiado grande en %C"
-@@ -63057,22 +61887,22 @@
+@@ -63057,22 +61186,22 @@
  msgid "non-static method %q+D overrides static method"
  msgstr "el método %q+D que no es estático anula al método estático"
  
@@ -68028,7 +79502,88 @@ Index: gcc/po/es.po
  #, gcc-internal-format
  msgid "bad PC range for debug info for local %q+D"
  msgstr "rango de PC erróneo para la información de depuración para %q+D local"
-@@ -64576,9 +63406,6 @@
+@@ -63150,7 +61279,7 @@
+ #: java/expr.c:3135
+ #, gcc-internal-format
+ msgid "invalid PC in line number table"
+-msgstr "PC inválido en la tabla de números de línea"
++msgstr "PC no válido en la tabla de números de línea"
+ 
+ #: java/expr.c:3185
+ #, gcc-internal-format, gfc-internal-format
+@@ -63321,7 +61450,7 @@
+ #: java/mangle_name.c:322 java/mangle_name.c:399
+ #, gcc-internal-format
+ msgid "internal error - invalid Utf8 name"
+-msgstr "error interno - nombre Utf8 inválido"
++msgstr "error interno - nombre Utf8 no válido"
+ 
+ #: java/typeck.c:424
+ #, gcc-internal-format
+@@ -63494,12 +61623,12 @@
+ #: lto/lto.c:1910
+ #, gcc-internal-format
+ msgid "invalid line in the resolution file"
+-msgstr "línea inválida en el fichero de resolución"
++msgstr "línea no válida en el fichero de resolución"
+ 
+ #: lto/lto.c:1921
+ #, gcc-internal-format
+ msgid "invalid resolution in the resolution file"
+-msgstr "resolución inválida en el fichero de resolución"
++msgstr "resolución no válida en el fichero de resolución"
+ 
+ #: lto/lto.c:1927
+ #, fuzzy, gcc-internal-format
+@@ -63687,7 +61816,7 @@
+ #: objc/objc-act.c:902
+ #, gcc-internal-format
+ msgid "invalid property declaration"
+-msgstr "declaración inválida de propiedad"
++msgstr "declaración no válida de propiedad"
+ 
+ #: objc/objc-act.c:910
+ #, gcc-internal-format
+@@ -64101,7 +62230,7 @@
+ #: objc/objc-act.c:5570
+ #, gcc-internal-format
+ msgid "invalid receiver type %qs"
+-msgstr "tipo receptor %qs inválido"
++msgstr "tipo receptor %qs no válido"
+ 
+ #: objc/objc-act.c:5587
+ #, gcc-internal-format
+@@ -64308,7 +62437,7 @@
+ #: objc/objc-act.c:7381
+ #, gcc-internal-format
+ msgid "invalid setter, it must have one argument"
+-msgstr "setter inválido, debe tener un argumento"
++msgstr "setter no válido, debe tener un argumento"
+ 
+ #: objc/objc-act.c:7545 objc/objc-act.c:7760
+ #, gcc-internal-format
+@@ -64520,16 +62649,16 @@
+ #~ msgstr "%s:no es un fichero de grafo gcov\n"
+ 
+ #~ msgid "%s:%d:%d: Invalid state file; %s"
+-#~ msgstr "%s:%d:%d: Fichero de estado inválido; %s"
++#~ msgstr "%s:%d:%d: Fichero de estado no válido; %s"
+ 
+ #~ msgid "%s:%d: Invalid state file; %s"
+-#~ msgstr "%s:%d: Fichero de estado inválido; %s"
++#~ msgstr "%s:%d: Fichero de estado no válido; %s"
+ 
+ #~ msgid "%s:%d:%d: Invalid state file; "
+-#~ msgstr "%s:%d:%d: Fichero de estado inválido; "
++#~ msgstr "%s:%d:%d: Fichero de estado no válido; "
+ 
+ #~ msgid "%s:%d: Invalid state file; "
+-#~ msgstr "%s:%d: Fichero de estad inválido; "
++#~ msgstr "%s:%d: Fichero de estad no válido; "
+ 
+ #~ msgid "Option tag unknown"
+ #~ msgstr "Etiqueta de opción desconocida"
+@@ -64576,9 +62705,6 @@
  #~ msgid "%s terminated with signal %d [%s]"
  #~ msgstr "%s terminado con la señal %d [%s]"
  
@@ -68038,7 +79593,50 @@ Index: gcc/po/es.po
  #~ msgid "could not write to temporary file %s"
  #~ msgstr "no se puede escribir en el fichero temporal %s"
  
-@@ -64731,10 +63558,10 @@
+@@ -64637,16 +62763,16 @@
+ #~ msgstr "<consigno-sinnombre:"
+ 
+ #~ msgid "operand is neither a constant nor a condition code, invalid operand code 'C'"
+-#~ msgstr "el operando no es una constante ni un código de condición, código de operando 'C' inválido"
++#~ msgstr "el operando no es una constante ni un código de condición, código de operando 'C' no válido"
+ 
+ #~ msgid "operand is neither a constant nor a condition code, invalid operand code 'F'"
+-#~ msgstr "el operando no es una constante ni un código de condición, código de operando 'F' inválido"
++#~ msgstr "el operando no es una constante ni un código de condición, código de operando 'F' no válido"
+ 
+ #~ msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
+-#~ msgstr "el operando no es una constante ni un código de condición, código de operando 'c' inválido"
++#~ msgstr "el operando no es una constante ni un código de condición, código de operando 'c' no válido"
+ 
+ #~ msgid "operand is neither a constant nor a condition code, invalid operand code 'f'"
+-#~ msgstr "el operando no es una constante ni un código de condición, código de operando 'f' inválido"
++#~ msgstr "el operando no es una constante ni un código de condición, código de operando 'f' no válido"
+ 
+ #~ msgid "mips_debugger_offset called with non stack/frame/arg pointer"
+ #~ msgstr "se llamó a mips_debuger_offset con un puntero que no es stack/frame/arg"
+@@ -64664,10 +62790,10 @@
+ #~ msgstr "se usó -mvsx con código little endian"
+ 
+ #~ msgid "invalid %%c value"
+-#~ msgstr "valor %%c inválido"
++#~ msgstr "valor %%c no válido"
+ 
+ #~ msgid "invalid %%S value"
+-#~ msgstr "valor %%S inválido"
++#~ msgstr "valor %%S no válido"
+ 
+ #~ msgid "memory reference expected for 'O' output modifier"
+ #~ msgstr "se esperaba una referencia de memoria para el modificador de salida 'O'"
+@@ -64676,7 +62802,7 @@
+ #~ msgstr "se esperaba una referencia de memoria para el modificador de salida 'R'"
+ 
+ #~ msgid "invalid operand for code: '%c'"
+-#~ msgstr "operando inválido para code: '%c'"
++#~ msgstr "operando no válido para code: '%c'"
+ 
+ #~ msgid "long long constant not a valid immediate operand"
+ #~ msgstr "la constante long long no es un operando inmediato válido"
+@@ -64731,10 +62857,10 @@
  #~ msgstr "Especifica el rango de registros a convertir en fijos"
  
  #~ msgid "If set, data speculative instructions will be chosen for schedule only if there are no other choices at the moment "
@@ -68051,7 +79649,16 @@ Index: gcc/po/es.po
  
  #~ msgid "Ignored (obsolete)"
  #~ msgstr "Se descarta (obsoleto)"
-@@ -64795,7 +63622,7 @@
+@@ -64767,7 +62893,7 @@
+ #~ msgstr "Usa secuencias atómicas de software admitidas por el núcleo"
+ 
+ #~ msgid "Cirrus: Place NOPs to avoid invalid instruction combinations"
+-#~ msgstr "Cirrus: Coloca NOPs para evitar combinaciones inválidas de instrucciones"
++#~ msgstr "Cirrus: Coloca NOPs para evitar combinaciones no válidas de instrucciones"
+ 
+ #~ msgid "Assume big endian bytes, little endian words.  This option is deprecated."
+ #~ msgstr "Asume bytes big endian, words little endian.  Esta opción es obsoleta."
+@@ -64795,7 +62921,7 @@
  #~ msgstr "Soporte para el ABI Green Hills"
  
  #~ msgid "Specify CPU for scheduling purposes"
@@ -68060,7 +79667,7 @@ Index: gcc/po/es.po
  
  #~ msgid "Specify which type of AE to target. This option sets the mul-type and byte-access."
  #~ msgstr "Especifica a qué tipo de AE se apunta. Esta opción establece el tipo muly el acceso a byte."
-@@ -64884,9 +63711,6 @@
+@@ -64884,9 +63010,6 @@
  #~ msgid "Do the full register move optimization pass"
  #~ msgstr "Hace el paso completo de optimización de movimiento de registros"
  
@@ -68070,7 +79677,56 @@ Index: gcc/po/es.po
  #~ msgid "Replace SSA temporaries with better names in copies"
  #~ msgstr "Reemplaza temporales SSA con mejores nombres en las copias"
  
-@@ -65262,6 +64086,9 @@
+@@ -64900,7 +63023,7 @@
+ #~ msgstr "se esperaba un tipo entero o booleano"
+ 
+ #~ msgid "invalid operand for unary %<&%>"
+-#~ msgstr "operando inválido para el unario %<&%>"
++#~ msgstr "operando no válido para el unario %<&%>"
+ 
+ #~ msgid "bad size for make"
+ #~ msgstr "tamaño erróneo para make"
+@@ -64912,7 +63035,7 @@
+ #~ msgstr "asignación implícita de %s%s%s campo oculto %s%s%s"
+ 
+ #~ msgid "invalid argument to %<__builtin_return_address%>"
+-#~ msgstr "argumento inválido para %<__builtin_return_address%>"
++#~ msgstr "argumento no válido para %<__builtin_return_address%>"
+ 
+ #~ msgid "unsupported argument to %<__builtin_frame_address%>"
+ #~ msgstr "argumento no admitido para %<__builtin_frame_address%>"
+@@ -64921,7 +63044,7 @@
+ #~ msgstr "argumento no admitido para %<__builtin_return_address%>"
+ 
+ #~ msgid "invalid memory model for %<__atomic_exchange%>"
+-#~ msgstr "modelo de memoria inválido para %<__atomic_exchange%>"
++#~ msgstr "modelo de memoria no válido para %<__atomic_exchange%>"
+ 
+ #~ msgid "declaration of %q+D shadows a global declaration"
+ #~ msgstr "la declaración de %q+D oscurece a una declaración global"
+@@ -65176,7 +63299,7 @@
+ #~ msgstr "la variable estática %q+D se marcó como dllimport"
+ 
+ #~ msgid "that particular -g option is invalid with -maout and -melinux"
+-#~ msgstr "esa opción -g en particular es inválida con -maout y -melinux"
++#~ msgstr "esa opción -g en particular es no válida con -maout y -melinux"
+ 
+ #~ msgid "unwind tables currently require either a frame pointer or %saccumulate-outgoing-args%s for correctness"
+ #~ msgstr "actualmente las tablas de desenredo requieren un puntero de marco o %saccumulate-outgoing-args%s para ser correctas"
+@@ -65206,10 +63329,10 @@
+ #~ msgstr "se requiere la opción -munix=98 para las características C89 Enmienda 1.\n"
+ 
+ #~ msgid "invalid AE type specified (%s)"
+-#~ msgstr "se especificó un tipo AE inválido (%s)"
++#~ msgstr "se especificó un tipo AE no válido (%s)"
+ 
+ #~ msgid "invalid mul type specified (%s) - expected mac, mul or none"
+-#~ msgstr "se especificó un tipo mul inválido (%s) - se esperaba mac, mul o none"
++#~ msgstr "se especificó un tipo mul no válido (%s) - se esperaba mac, mul o none"
+ 
+ #~ msgid "unexpected mode %s encountered in picochip_emit_save_register"
+ #~ msgstr "se encontró el modo inesperado %s en picochip_emit_save_register"
+@@ -65262,6 +63385,9 @@
  #~ msgid "%s (disable warning using -mno-inefficient-warnings)"
  #~ msgstr "%s (desactive los avisos utilizando -mno-inefficient-warnings)"
  
@@ -68080,7 +79736,205 @@ Index: gcc/po/es.po
  #~ msgid "-maix64 and POWER architecture are incompatible"
  #~ msgstr "-maix64 y la arquitectura POWER son incompatibles"
  
-@@ -67086,7 +65913,7 @@
+@@ -65503,7 +63629,7 @@
+ #~ msgstr "tipo de devolución covariante obsoleto para %q+#D"
+ 
+ #~ msgid "invalid use of non-static data member %q+D"
+-#~ msgstr "uso inválido del dato miembro %q+D que no es static"
++#~ msgstr "uso no válido del dato miembro %q+D que no es static"
+ 
+ #~ msgid "use of parameter %qD outside function body"
+ #~ msgstr "se usó el parámetro %qD fuera del cuerpo de la función"
+@@ -65530,10 +63656,10 @@
+ #~ msgstr "la expresión de comparación de punteros no es una expresión constante"
+ 
+ #~ msgid "invalid use of non-static member function"
+-#~ msgstr "uso inválido de una función miembro que no es static"
++#~ msgstr "uso no válido de una función miembro que no es static"
+ 
+ #~ msgid "invalid access to non-static data member %qD of NULL object"
+-#~ msgstr "acceso inválido a datos del miembro que no es static %qD del objeto NULL"
++#~ msgstr "acceso no válido a datos del miembro que no es static %qD del objeto NULL"
+ 
+ #~ msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
+ #~ msgstr "(tal vez se utilizó incorrectamente la macro %<offsetof%>)"
+@@ -65851,7 +63977,7 @@
+ #~ msgstr "sub id de resolución"
+ 
+ #~ msgid "invalid unsafe.Pointer conversion"
+-#~ msgstr "conversión unsafe.Pointer inválida"
++#~ msgstr "conversión unsafe.Pointer no válida"
+ 
+ #~ msgid "both %<const%> and %<constexpr%> cannot be used here"
+ #~ msgstr "no se pueden usar aquí %<const%> ni %<constexpr%>"
+@@ -65908,13 +64034,13 @@
+ #~ msgstr " (frv)"
+ 
+ #~ msgid "invalid register in the move instruction"
+-#~ msgstr "registro inválido en la instrucción move"
++#~ msgstr "registro no válido en la instrucción move"
+ 
+ #~ msgid "invalid operand in the instruction"
+-#~ msgstr "operando inválido en la instrucción"
++#~ msgstr "operando no válido en la instrucción"
+ 
+ #~ msgid "invalid register in the instruction"
+-#~ msgstr "registro inválido en la instrucción"
++#~ msgstr "registro no válido en la instrucción"
+ 
+ #~ msgid "operand 1 must be a hard register"
+ #~ msgstr "el operando 1 debe ser un registro fijo"
+@@ -65926,7 +64052,7 @@
+ #~ msgstr "no se puede reemplazar el registro-z"
+ 
+ #~ msgid "invalid Z register replacement for insn"
+-#~ msgstr "reemplazo de registro Z inválido para la insn"
++#~ msgstr "reemplazo de registro Z no válido para la insn"
+ 
+ #~ msgid "%s:%d:%d:   recursively instantiated from %qs\n"
+ #~ msgstr "%s:%d:%d:   instanciado recursivamente desde %qs\n"
+@@ -65965,7 +64091,7 @@
+ #~ msgstr "-mabi=\tEspecifica la ABI a utilizar"
+ 
+ #~ msgid "Prepend the name of the cpu to all public symbol names"
+-#~ msgstr "Agrega el nombre del cpu al inicio de todos los nombres de símbolo públicos"
++#~ msgstr "Agrega el nombre dla cpu al inicio de todos los nombres de símbolo públicos"
+ 
+ #~ msgid "-mtext=SECTION\tPut functions in SECTION"
+ #~ msgstr "-mtext=SECCIÓN\tPone las funciones en la SECCIÓN"
+@@ -66062,7 +64188,7 @@
+ #~ msgstr "llamada a método sin objeto"
+ 
+ #~ msgid "invalid new of function type"
+-#~ msgstr "new inválido de tipo de función"
++#~ msgstr "new no válido de tipo de función"
+ 
+ #~ msgid "no object for method call"
+ #~ msgstr "no hay objeto para la llamada a método"
+@@ -66116,10 +64242,10 @@
+ #~ msgstr "los tipos de datos no coinciden en la expresión verdadera binaria"
+ 
+ #~ msgid "invalid COND_EXPR in gimple assignment"
+-#~ msgstr "COND_EXPR inválido en la asignación gimple"
++#~ msgstr "COND_EXPR no válido en la asignación gimple"
+ 
+ #~ msgid "invalid GIMPLE statement"
+-#~ msgstr "declaración GIMPLE inválida"
++#~ msgstr "declaración GIMPLE no válida"
+ 
+ #~ msgid "verify_stmts failed"
+ #~ msgstr "falló verify_stmts"
+@@ -66155,13 +64281,13 @@
+ #~ msgstr "valor erróneo (%s) para el interruptor %s"
+ 
+ #~ msgid "invalid ABI option: -mabi=%s"
+-#~ msgstr "opción de ABI inválida: -mabi=%s"
++#~ msgstr "opción de ABI no válida: -mabi=%s"
+ 
+ #~ msgid "invalid floating point emulation option: -mfpe=%s"
+-#~ msgstr "opción de emulación de coma flotante inválida: -mfpe-%s"
++#~ msgstr "opción de emulación de coma flotante no válida: -mfpe-%s"
+ 
+ #~ msgid "invalid floating point abi: -mfloat-abi=%s"
+-#~ msgstr "abi de coma flotante inválida: -mfloat-abi=%s"
++#~ msgstr "abi de coma flotante no válida: -mfloat-abi=%s"
+ 
+ #~ msgid "See --target-help for supported MCUs"
+ #~ msgstr "Vea --target-help para MCUs permitidos"
+@@ -66200,7 +64326,7 @@
+ #~ msgstr "el vector de permutación requiere un vector constante"
+ 
+ #~ msgid "invalid vector permutation constant"
+-#~ msgstr "constante de permutación de vector inválida"
++#~ msgstr "constante de permutación de vector no válida"
+ 
+ #~ msgid "vector permutation (%d %d)"
+ #~ msgstr "permutación de vector (%d %d)"
+@@ -66245,7 +64371,7 @@
+ #~ msgstr "se desconoce la opción -m%s= especificada: '%s'"
+ 
+ #~ msgid "invalid option for -mcmodel: '%s'"
+-#~ msgstr "opción inválida para -mcmodel: '%s'"
++#~ msgstr "opción no válida para -mcmodel: '%s'"
+ 
+ #~ msgid "unknown ABI specified: '%s'"
+ #~ msgstr "se especificó una ABI desconocida: '%s'"
+@@ -66260,7 +64386,7 @@
+ #~ msgstr "argumento de -mtraceback %qs desconocido; se esperaba %<full%>, %<partial%> o %<none%>"
+ 
+ #~ msgid "invalid option for -mfloat-gprs: '%s'"
+-#~ msgstr "opción inválida para -mfloat-gprs: '%s'"
++#~ msgstr "opción no válida para -mfloat-gprs: '%s'"
+ 
+ #~ msgid "unknown -malign-XXXXX option specified: '%s'"
+ #~ msgstr "opción -malign-XXXXX especificada desconocida: '%s'"
+@@ -66305,7 +64431,7 @@
+ #~ msgstr "no se pueden inicializar %qT desde %qT"
+ 
+ #~ msgid "%<__int128%> invalid for %qs"
+-#~ msgstr "%<__int128%> inválido para %qs"
++#~ msgstr "%<__int128%> no válido para %qs"
+ 
+ #~ msgid "ISO C++ forbids initialization of member %qD"
+ #~ msgstr "ISO C++ prohíbe la inicialización del miembro %qD"
+@@ -66398,28 +64524,28 @@
+ #~ msgstr "Los tipos no coinciden para el argumento dummy '%s' de '%s' %L con respecto al procedimiento sobreescrito"
+ 
+ #~ msgid "Invalid SHIFT argument of DSHIFTL at %L"
+-#~ msgstr "Argumento SHIFT inválido de DSHIFTL en %L"
++#~ msgstr "Argumento SHIFT no válido de DSHIFTL en %L"
+ 
+ #~ msgid "Invalid second argument of IBCLR at %L"
+-#~ msgstr "Segundo argumento de IBCLR inválido en %L"
++#~ msgstr "Segundo argumento de IBCLR no válido en %L"
+ 
+ #~ msgid "Second argument of IBCLR exceeds bit size at %L"
+ #~ msgstr "El segundo argumento de IBCLR excede el tamaño de bit en %L"
+ 
+ #~ msgid "Invalid second argument of IBITS at %L"
+-#~ msgstr "Segundo argumento de IBITS inválido en %L"
++#~ msgstr "Segundo argumento de IBITS no válido en %L"
+ 
+ #~ msgid "Second argument of IBSET exceeds bit size at %L"
+ #~ msgstr "El segundo argumento de IBSET excede el tamaño de bit en %L"
+ 
+ #~ msgid "Invalid second argument of %s at %L"
+-#~ msgstr "Segundo argumento de %s inválido en %L"
++#~ msgstr "Segundo argumento de %s no válido en %L"
+ 
+ #~ msgid "Invalid second argument of ISHFTC at %L"
+-#~ msgstr "Segundo argumento de ISHFTC inválido en %L"
++#~ msgstr "Segundo argumento de ISHFTC no válido en %L"
+ 
+ #~ msgid "Invalid third argument of ISHFTC at %L"
+-#~ msgstr "Tercer argumento de ISHFTC inválido en %L"
++#~ msgstr "Tercer argumento de ISHFTC no válido en %L"
+ 
+ #~ msgid "Magnitude of third argument of ISHFTC exceeds BIT_SIZE of first argument at %L"
+ #~ msgstr "La magnitud del tercer argumento de ISHFTC excede el BIT_SIZE del tercer argumento en %L"
+@@ -66452,7 +64578,7 @@
+ #~ msgstr "la clase que contiene a %q#D no es de tipo literal"
+ 
+ #~ msgid "invalid LTO mode"
+-#~ msgstr "modo LTO inválido"
++#~ msgstr "modo LTO no válido"
+ 
+ #~ msgid "Enforce table jump"
+ #~ msgstr "Refuerza el salto de tabla"
+@@ -66566,10 +64692,10 @@
+ #~ msgstr "#pragma pack(pop[, id], <n>) no se admite en este objetivo"
+ 
+ #~ msgid "invalid type argument of array indexing"
+-#~ msgstr "argumento de tipo inválido del índice de matriz"
++#~ msgstr "argumento de tipo no válido del índice de matriz"
+ 
+ #~ msgid "invalid type argument of unary %<*%>"
+-#~ msgstr "argumento de tipo inválido del unario %<*%>"
++#~ msgstr "argumento de tipo no válido del unario %<*%>"
+ 
+ #~ msgid "assignment (via 'asm' output) of data-member %qD in read-only structure"
+ #~ msgstr "asignación (a través de la salida 'asm') de miembro-dato %qD en estructura de sólo-lectura"
+@@ -67086,7 +65212,7 @@
  #~ msgstr "faltan argumentos para \"-%s\""
  
  #~ msgid "If scheduling post reload, do trace scheduling"
@@ -68089,7 +79943,61 @@ Index: gcc/po/es.po
  
  #~ msgid "(Each undeclared identifier is reported only once"
  #~ msgstr "(Cada identificador sin declarar solamente se reporta una vez"
-@@ -67937,10 +66764,10 @@
+@@ -67457,7 +65583,7 @@
+ #~ msgstr "El parámetro ORDER de RESHAPE en %L está fuera de rango"
+ 
+ #~ msgid "Invalid permutation in ORDER parameter at %L"
+-#~ msgstr "Permutación inválida en el parámetro ORDER en %L"
++#~ msgstr "Permutación no válida en el parámetro ORDER en %L"
+ 
+ #~ msgid "PAD parameter required for short SOURCE parameter at %L"
+ #~ msgstr "Se requiere el parámetro PAD para el parámetro SOURCE corto en %L"
+@@ -67505,7 +65631,7 @@
+ #~ msgstr "la variable o el campo %qs se declaró void"
+ 
+ #~ msgid "%Jinvalid use of structure with flexible array member"
+-#~ msgstr "%Juso inválido de una estructura con un miembro de matriz flexible"
++#~ msgstr "%Juso no válido de una estructura con un miembro de matriz flexible"
+ 
+ #~ msgid "%Hprototype declaration"
+ #~ msgstr "%Hdeclaración vacía"
+@@ -67682,7 +65808,7 @@
+ #~ msgstr "falta un %<(%> después de %<#pragma push_macro%> - descartado"
+ 
+ #~ msgid "invalid constant in %<#pragma push_macro%> - ignored"
+-#~ msgstr "constante inválida en %<#pragma push_macro%> - descartada"
++#~ msgstr "constante no válida en %<#pragma push_macro%> - descartada"
+ 
+ #~ msgid "missing %<)%> after %<#pragma push_macro%> - ignored"
+ #~ msgstr "falta un %<)%> después de %<#pragma push_macro%> - descartado"
+@@ -67694,7 +65820,7 @@
+ #~ msgstr "falta un %<(%> después de %<#pragma pop_macro%> - descartado"
+ 
+ #~ msgid "invalid constant in %<#pragma pop_macro%> - ignored"
+-#~ msgstr "constante inválida en %<#pragma pop_macro%> - descartada"
++#~ msgstr "constante no válida en %<#pragma pop_macro%> - descartada"
+ 
+ #~ msgid "missing %<)%> after %<#pragma pop_macro%> - ignored"
+ #~ msgstr "falta un %<)%> después de %<#pragma pop_macro%> - descartado"
+@@ -67901,7 +66027,7 @@
+ #~ msgstr "%Hla referencia a %qD es ambigua"
+ 
+ #~ msgid "%Hinvalid use of %qD"
+-#~ msgstr "%Huso inválido de %qD"
++#~ msgstr "%Huso no válido de %qD"
+ 
+ #~ msgid "%Hcase label not within a switch statement"
+ #~ msgstr "%Hla etiqueta case no se encuentra dentro de una declaración switch"
+@@ -67913,7 +66039,7 @@
+ #~ msgstr "%Hla declaración break no está dentro de un bucle o switch"
+ 
+ #~ msgid "%Hinvalid exit from OpenMP structured block"
+-#~ msgstr "%Hsalida inválida de un bloque estructurado OpenMP"
++#~ msgstr "%Hsalida no válida de un bloque estructurado OpenMP"
+ 
+ #~ msgid "%Hbreak statement used with OpenMP for loop"
+ #~ msgstr "%Hse usó la declaración break con un bucle for de OpenMP"
+@@ -67937,10 +66063,10 @@
  #~ msgstr "%Hdemasiadas cláusulas %qs"
  
  #~ msgid "%Hschedule %<runtime%> does not take a %<chunk_size%> parameter"
@@ -68102,7 +80010,32 @@ Index: gcc/po/es.po
  
  #~ msgid "%H%qs is not valid for %qs"
  #~ msgstr "%H%qs no es válido para %qs"
-@@ -68664,9 +67491,6 @@
+@@ -67973,7 +66099,7 @@
+ #~ msgstr "%H%qD no es un miembro de %qT"
+ 
+ #~ msgid "%Hinvalid controlling predicate"
+-#~ msgstr "%Hpredicado controlador inválido"
++#~ msgstr "%Hpredicado controlador no válido"
+ 
+ #~ msgid "%Hinvalid increment expression"
+ #~ msgstr "%Hfalta la expresión de decremento"
+@@ -68062,13 +66188,13 @@
+ #~ msgstr "El número máximo de ubicaciones de memoria grabadas por flow"
+ 
+ #~ msgid "mt_final_prescan_insn, invalid insn #1"
+-#~ msgstr "mt_final_prescan_insn, insn #1 inválida"
++#~ msgstr "mt_final_prescan_insn, insn #1 no válida"
+ 
+ #~ msgid "PRINT_OPERAND_ADDRESS, 2 regs"
+ #~ msgstr "PRINT_OPERAND_ADDRESS, 2 registros"
+ 
+ #~ msgid "PRINT_OPERAND_ADDRESS, invalid insn #1"
+-#~ msgstr "PRINT_OPERAND_ADDRESS, insn #1 inválida"
++#~ msgstr "PRINT_OPERAND_ADDRESS, insn #1 no válida"
+ 
+ #~ msgid "Arithmetic underflow converting %s to %s at %L"
+ #~ msgstr "Se convierte el desborde aritmético por debajo %s a %s en %L"
+@@ -68664,9 +66790,6 @@
  #~ msgid "CONTAINS\n"
  #~ msgstr "CONTIENE\n"
  
@@ -68112,7 +80045,76 @@ Index: gcc/po/es.po
  #~ msgid "Setting value of PROTECTED variable at %C"
  #~ msgstr "Se establece el valor de la variable PROTECTED en %C"
  
-@@ -69098,7 +67922,7 @@
+@@ -68785,25 +66908,25 @@
+ #~ msgstr "los tipos de datos no coinciden en la expresión unaria"
+ 
+ #~ msgid "invalid operand in conversion"
+-#~ msgstr "operando inválido en la conversión"
++#~ msgstr "operando no válido en la conversión"
+ 
+ #~ msgid "invalid operand in int to float conversion"
+-#~ msgstr "operando inválido en la conversión de int a float"
++#~ msgstr "operando no válido en la conversión de int a float"
+ 
+ #~ msgid "invalid operand in float to int conversion"
+-#~ msgstr "operando inválido en la conversión de float a int"
++#~ msgstr "operando no válido en la conversión de float a int"
+ 
+ #~ msgid "constructor not allowed for non-vector types"
+ #~ msgstr "no se permite un constructor para tipos que no sean vectores"
+ 
+ #~ msgid "invalid operands in shift expression"
+-#~ msgstr "operandos inválidos en la expresión shift"
++#~ msgstr "operandos no válidos en la expresión shift"
+ 
+ #~ msgid "invalid operands in pointer plus expression"
+-#~ msgstr "operandos inválidos en la expresión puntero más"
++#~ msgstr "operandos no válidos en la expresión puntero más"
+ 
+ #~ msgid "invalid operands in conditional expression"
+-#~ msgstr "operandos inválidos en la expresión condicional"
++#~ msgstr "operandos no válidos en la expresión condicional"
+ 
+ #~ msgid "unexpected non-tuple"
+ #~ msgstr "una no tupla inesperada"
+@@ -68893,7 +67016,7 @@
+ #~ msgstr "usando CONST_DOUBLE para las direcciones"
+ 
+ #~ msgid "c4x_address_cost: Invalid addressing mode"
+-#~ msgstr "c4x_address_cost: Modo de direccionamiento inválido"
++#~ msgstr "c4x_address_cost: Modo de direccionamiento no válido"
+ 
+ #~ msgid "c4x_print_operand: %%L inconsistency"
+ #~ msgstr "c4x_print_operand: Inconsistencia %%L"
+@@ -68920,22 +67043,22 @@
+ #~ msgstr "c4x_rptb_insert: No se puede encontrar la etiqueta de inicio"
+ 
+ #~ msgid "invalid indirect (S) memory address"
+-#~ msgstr "dirección (S) indirecta de memoria inválida"
++#~ msgstr "dirección (S) indirecta de memoria no válida"
+ 
+ #~ msgid "c4x_valid_operands: Internal error"
+ #~ msgstr "c4x_valid_operands: Error interno"
+ 
+ #~ msgid "c4x_operand_subword: invalid mode"
+-#~ msgstr "c4x_operand_subword: modo inválido"
++#~ msgstr "c4x_operand_subword: modo no válido"
+ 
+ #~ msgid "c4x_operand_subword: invalid operand"
+-#~ msgstr "c4x_operand_subword: operando inválido"
++#~ msgstr "c4x_operand_subword: operando no válido"
+ 
+ #~ msgid "c4x_operand_subword: invalid autoincrement"
+-#~ msgstr "c4x_operand_subword: autoincremento inválido"
++#~ msgstr "c4x_operand_subword: autoincremento no válido"
+ 
+ #~ msgid "c4x_operand_subword: invalid address"
+-#~ msgstr "c4x_operand_subword: dirección inválida"
++#~ msgstr "c4x_operand_subword: dirección no válida"
+ 
+ #~ msgid "c4x_operand_subword: address not offsettable"
+ #~ msgstr "c4x_operand_subword: dirección no desplazable"
+@@ -69098,25 +67221,25 @@
  #~ "\n"
  
  #~ msgid "Maximum number of loops to perform swing modulo scheduling on (mainly for debugging)"
@@ -68121,7 +80123,173 @@ Index: gcc/po/es.po
  
  #~ msgid "Given N calls and V call-clobbered vars in a function.  Use .GLOBAL_VAR if NxV is larger than this limit"
  #~ msgstr "Dadas N llamadas y V variables sobreescritas por llamada en una función.  Use .GLOBAL_VAR si NxV es mayor que este límite"
-@@ -70504,7 +69328,7 @@
+ 
+ #~ msgid "PRINT_OPERAND, invalid insn for %%F"
+-#~ msgstr "PRINT_OPERAND, insn inválida para %%F"
++#~ msgstr "PRINT_OPERAND, insn no válida para %%F"
+ 
+ #~ msgid "PRINT_OPERAND, invalid insn for %%W"
+-#~ msgstr "PRINT_OPERAND, insn inválida para %%W"
++#~ msgstr "PRINT_OPERAND, insn no válida para %%W"
+ 
+ #~ msgid "invalid %%Y value"
+-#~ msgstr "valor %%Y inválido"
++#~ msgstr "valor %%Y no válido"
+ 
+ #~ msgid "PRINT_OPERAND, invalid insn for %%q"
+-#~ msgstr "PRINT_OPERAND, insn inválida para %%q"
++#~ msgstr "PRINT_OPERAND, insn no válida para %%q"
+ 
+ #~ msgid "PRINT_OPERAND, invalid operand for relocation"
+-#~ msgstr "PRINT_OPERAND, operando inválido para la reubicación"
++#~ msgstr "PRINT_OPERAND, operando no válido para la reubicación"
+ 
+ #~ msgid "Arithmetic overflow converting %s to %s at %L"
+ #~ msgstr "Se convierte el desborde aritmético %s a %s en %L"
+@@ -69182,7 +67305,7 @@
+ #~ msgstr "no se permite '&' por sí solo con comentario en la línea %d"
+ 
+ #~ msgid "Invalid second argument of REPEAT at %L"
+-#~ msgstr "Segundo argumento de REPEAT inválido en %L"
++#~ msgstr "Segundo argumento de REPEAT no válido en %L"
+ 
+ #~ msgid "TRANSFER intrinsic not implemented for initialization at %L"
+ #~ msgstr "El intrínseco TRANSFER no está implementado para la inicialización en %L"
+@@ -69363,13 +67486,13 @@
+ #~ msgstr "']' desbalanceado"
+ 
+ #~ msgid "Invalid method declaration, method name required"
+-#~ msgstr "Declaración de método inválida, se requiere un nombre de método"
++#~ msgstr "Declaración de método no válida, se requiere un nombre de método"
+ 
+ #~ msgid "Identifier expected"
+ #~ msgstr "Se esperaba un identificador"
+ 
+ #~ msgid "Invalid method declaration, return type required"
+-#~ msgstr "Declaración de método inválida, se requiere un tipo de devolución"
++#~ msgstr "Declaración de método no válida, se requiere un tipo de devolución"
+ 
+ #~ msgid "Missing formal parameter term"
+ #~ msgstr "Falta el término de parámetro formal"
+@@ -69393,10 +67516,10 @@
+ #~ msgstr "Faltan término y ')' esperados"
+ 
+ #~ msgid "Invalid control expression"
+-#~ msgstr "Expresión de control inválida"
++#~ msgstr "Expresión de control no válida"
+ 
+ #~ msgid "Invalid update expression"
+-#~ msgstr "Expresión de actualización inválida"
++#~ msgstr "Expresión de actualización no válida"
+ 
+ #~ msgid "Missing term or ')' expected"
+ #~ msgstr "Faltan término o ')' esperados"
+@@ -69420,13 +67543,13 @@
+ #~ msgstr "Faltan término y ']' esperados"
+ 
+ #~ msgid "']' expected, invalid type expression"
+-#~ msgstr "Se esperaba ']', expresión de tipo inválida"
++#~ msgstr "Se esperaba ']', expresión de tipo no válida"
+ 
+ #~ msgid "Invalid type expression"
+-#~ msgstr "Expresión de tipo inválida"
++#~ msgstr "Expresión de tipo no válida"
+ 
+ #~ msgid "Invalid reference type"
+-#~ msgstr "Tipo de referencia inválido"
++#~ msgstr "Tipo de referencia no válido"
+ 
+ #~ msgid "Constructor invocation must be first thing in a constructor"
+ #~ msgstr "La invocación del constructor debe ser el primer elemento en un constructor"
+@@ -69878,7 +68001,7 @@
+ #~ msgstr "Los métodos no se pueden sobreescribir para hacerlos más privados. El método %qs no es %s en la clase %qs"
+ 
+ #~ msgid "Invalid checked exception class %qs in %<throws%> clause.  The exception must be a subclass of an exception thrown by %qs from class %qs"
+-#~ msgstr "Clase de excepción revisada %qs inválida en la cláusula %<throws%>.  La excepción debe ser una subclase de una excepción arrojada por %qs de la clase %qs"
++#~ msgstr "Clase de excepción revisada %qs no válida en la cláusula %<throws%>.  La excepción debe ser una subclase de una excepción arrojada por %qs de la clase %qs"
+ 
+ #~ msgid "Interface %qs inherits method %qs from interface %qs. This method is redefined with a different return type in interface %qs"
+ #~ msgstr "La interfaz %qs hereda el método %qs de la interfaz %qs. Este método se redefine con un tipo de devolución diferente en la interfaz %qs"
+@@ -70034,7 +68157,7 @@
+ #~ msgstr "No se puede usar %qs con una constante"
+ 
+ #~ msgid "Invalid cast from %qs to %qs"
+-#~ msgstr "Conversión inválida de %qs a %qs"
++#~ msgstr "Conversión no válida de %qs a %qs"
+ 
+ #~ msgid "%<[]%> can only be applied to arrays. It can't be applied to %qs"
+ #~ msgstr "%<[]%> sólo se puede aplicar a matrices. No se puede aplicar a %qs"
+@@ -70049,7 +68172,7 @@
+ #~ msgstr "Tipo incompatible para la dimensión en la expresión de creación de matriz. %s convierte %qs a %<int%>"
+ 
+ #~ msgid "Invalid array initializer for non-array type %qs"
+-#~ msgstr "Inicializador de matriz inválido para el tipo %qs que no es matriz"
++#~ msgstr "Inicializador de matriz no válido para el tipo %qs que no es matriz"
+ 
+ #~ msgid "%<return%> inside instance initializer"
+ #~ msgstr "%<return%> dentro de un inicializador de instancia"
+@@ -70206,16 +68329,16 @@
+ #~ msgstr "Marcar datos como compartidos en lugar de privados"
+ 
+ #~ msgid "invalid truth-value expression"
+-#~ msgstr "expresión de valor verdadero inválida"
++#~ msgstr "expresión de valor verdadero no válida"
+ 
+ #~ msgid "invalid lvalue in increment"
+-#~ msgstr "l-valor inválido en incremento"
++#~ msgstr "l-valor no válido en incremento"
+ 
+ #~ msgid "invalid lvalue in decrement"
+-#~ msgstr "l-valor inválido en decremento"
++#~ msgstr "l-valor no válido en decremento"
+ 
+ #~ msgid "invalid lvalue in unary %<&%>"
+-#~ msgstr "l-valor inválido en %<&%> unario"
++#~ msgstr "l-valor no válido en %<&%> unario"
+ 
+ #~ msgid "GCC does not yet properly implement %<[*]%> array declarators"
+ #~ msgstr "GCC aún no implementa adecuadamente los declaradores de matriz %<[*]%>"
+@@ -70278,7 +68401,7 @@
+ #~ msgstr "los operadores minimum/maximum son obsoletos"
+ 
+ #~ msgid "invalid use of %qD as a default value for a template template-parameter"
+-#~ msgstr "uso inválido de %qD como un valor por defecto para una plantilla de parámetro de plantilla"
++#~ msgstr "uso no válido de %qD como un valor por defecto para una plantilla de parámetro de plantilla"
+ 
+ #~ msgid "ISO C++ forbids assignment of arrays"
+ #~ msgstr "ISO C++ prohíbe la asignación de matrices"
+@@ -70426,7 +68549,7 @@
+ #~ msgstr "Emite código que cumpla con IEEE, con excepciones inexactas"
+ 
+ #~ msgid "Cirrus: Do not break up invalid instruction combinations with NOPs"
+-#~ msgstr "Cirrus: No rompe combinaciones inválidas de instrucciones con NOPs"
++#~ msgstr "Cirrus: No rompe combinaciones no válidas de instrucciones con NOPs"
+ 
+ #~ msgid "Assume int to be 8 bit integer"
+ #~ msgstr "Asume que int sea entero de 8 bit"
+@@ -70459,7 +68582,7 @@
+ #~ msgstr "No fuerza las constantes en los registros"
+ 
+ #~ msgid "Allow RTL generation to emit invalid 3 operand insns"
+-#~ msgstr "Permite que la generación de RTL emita 3 operandos insns inválidos"
++#~ msgstr "Permite que la generación de RTL emita 3 operandos insns no válidos"
+ 
+ #~ msgid "Disallow unsigned iteration counts for RPTB/DB"
+ #~ msgstr "No permite cuentas de iteración unsigned para RPTB/DB"
+@@ -70474,10 +68597,10 @@
+ #~ msgstr "Selecciona el CPU para el cual se genera código"
+ 
+ #~ msgid "invalid operand for 'v' modifier"
+-#~ msgstr "operando inválido para el modificador 'v'"
++#~ msgstr "operando no válido para el modificador 'v'"
+ 
+ #~ msgid "invalid operand for 'P' modifier"
+-#~ msgstr "operando inválido para el modificador 'P'"
++#~ msgstr "operando no válido para el modificador 'P'"
+ 
+ #~ msgid "unrecognized supposed constant in cris_global_pic_symbol"
+ #~ msgstr "supuesta constante no reconocida en cris_global_pic_symbol"
+@@ -70504,7 +68627,7 @@
  #~ msgstr "No establece las definiciones de Windows"
  
  #~ msgid "Align doubles on word boundary"
@@ -68130,7 +80298,7 @@ Index: gcc/po/es.po
  
  #~ msgid "Uninitialized locals in .data"
  #~ msgstr "Locales sin inicializar en .data"
-@@ -70519,7 +69343,7 @@
+@@ -70519,7 +68642,7 @@
  #~ msgstr "No genera sin, cos, sqrt para FPU"
  
  #~ msgid "Do not align destination of the string operations"
@@ -68139,7 +80307,20 @@ Index: gcc/po/es.po
  
  #~ msgid "Do not inline all known string operations"
  #~ msgstr "No convierte a inline todas las operaciones de cadenas conocidas"
-@@ -70786,7 +69610,7 @@
+@@ -70672,10 +68795,10 @@
+ #~ msgstr "Convención de llamada alternativa"
+ 
+ #~ msgid "Optimize for 32532 cpu"
+-#~ msgstr "Optimiza para el cpu 32532"
++#~ msgstr "Optimiza para la cpu 32532"
+ 
+ #~ msgid "Optimize for 32332 cpu"
+-#~ msgstr "Optimiza para el cpu 32332"
++#~ msgstr "Optimiza para la cpu 32332"
+ 
+ #~ msgid "Optimize for 32032"
+ #~ msgstr "Optimiza para 32032"
+@@ -70786,7 +68909,7 @@
  #~ msgstr "Especifica sí/no si se utiliza la coma flotante en los GPRs"
  
  #~ msgid "Don't align to the base type of the bit-field"
@@ -68148,7 +80329,327 @@ Index: gcc/po/es.po
  
  #~ msgid "Assume that unaligned accesses are handled by the system"
  #~ msgstr "Asume que los accesos sin alinear son manejados por el sistema"
-@@ -72741,9 +71565,6 @@
+@@ -70936,7 +69059,7 @@
+ #~ msgstr "el control puede alcanzar el final de la función %qD que no es void al ser inlined"
+ 
+ #~ msgid "invalid initializer for bit string"
+-#~ msgstr "inicializador inválido para la cadena de bits"
++#~ msgstr "inicializador no válido para la cadena de bits"
+ 
+ #~ msgid "volatile register variables don%'t work as you might wish"
+ #~ msgstr "las variables de registro volatile no funcionan como usted quisiera"
+@@ -70981,7 +69104,7 @@
+ #~ msgstr "valor erróneo (%s) para -flush-trap=n (0=<n<=15)"
+ 
+ #~ msgid "invalid option %<-mstack-increment=%s%>"
+-#~ msgstr "opción inválida %<-mstack-increment=%s%>"
++#~ msgstr "opción no válida %<-mstack-increment=%s%>"
+ 
+ #~ msgid "bad value (%s) for -mabi= switch"
+ #~ msgstr "valor erróneo (%s) para el interruptor -mabi="
+@@ -71024,13 +69147,13 @@
+ #~ msgstr "Se utilizó un cpu desconocido en -mcpu=%s."
+ 
+ #~ msgid "invalid value for -mwarn-framesize"
+-#~ msgstr "valor inválido para -mwarn-framesize"
++#~ msgstr "valor no válido para -mwarn-framesize"
+ 
+ #~ msgid "invalid value for -mstack-size"
+-#~ msgstr "valor inválido para -mwarn-framesize"
++#~ msgstr "valor no válido para -mwarn-framesize"
+ 
+ #~ msgid "invalid value for -mstack-guard"
+-#~ msgstr "valor inválido para -mstack-guard"
++#~ msgstr "valor no válido para -mstack-guard"
+ 
+ #~ msgid "%H function '%D' is defined after prior declaration as dllimport: attribute ignored"
+ #~ msgstr "%H la función '%D' se define después de una declaración previa como dllimport: se descarta el atributo"
+@@ -71057,7 +69180,7 @@
+ #~ msgstr "convirtiendo el valor negativo %qE a %qT"
+ 
+ #~ msgid "%qD invalid in %qT"
+-#~ msgstr "%qD inválido en %qT"
++#~ msgstr "%qD no válido en %qT"
+ 
+ #~ msgid "than previous declaration %qF"
+ #~ msgstr "que la declaración previa %qF"
+@@ -71209,7 +69332,7 @@
+ #~ msgstr "base %qT con sólo un constructor que no es por defecto en una clase sin un constructor"
+ 
+ #~ msgid "%Jinvalid type qualifier for non-member function type"
+-#~ msgstr "%Jcalificador de tipo inválido para el tipo de función no miembro"
++#~ msgstr "%Jcalificador de tipo no válido para el tipo de función no miembro"
+ 
+ #~ msgid "%s to %qT from %qT"
+ #~ msgstr "%s a %qT desde %qT"
+@@ -71284,10 +69407,10 @@
+ #~ msgstr "ISO C prohíbe el tipo calificado de devolución de una función void"
+ 
+ #~ msgid "invalid type modifier within pointer declarator"
+-#~ msgstr "modificador de tipo inválido dentro de la declaración del puntero"
++#~ msgstr "modificador de tipo no válido dentro de la declaración del puntero"
+ 
+ #~ msgid "invalid type modifier within array declarator"
+-#~ msgstr "modificador de tipo inválido dentro de un declarador de matriz"
++#~ msgstr "modificador de tipo no válido dentro de un declarador de matriz"
+ 
+ #~ msgid "parameter `%s' has incomplete type"
+ #~ msgstr "el parámetro `%s' tiene tipo de dato incompleto"
+@@ -71567,7 +69690,7 @@
+ #~ msgstr "C tradicional rechaza el sufijo \"%.*s\""
+ 
+ #~ msgid "invalid suffix \"%.*s\" on integer constant"
+-#~ msgstr "sufijo \"%.*s\" inválido en la constante entera"
++#~ msgstr "sufijo \"%.*s\" no válido en la constante entera"
+ 
+ #~ msgid "imaginary constants are a GCC extension"
+ #~ msgstr "las constantes imaginarias son una extensión GCC"
+@@ -71651,7 +69774,7 @@
+ #~ msgstr "directorio NULL en find_file"
+ 
+ #~ msgid "one or more PCH files were found, but they were invalid"
+-#~ msgstr "se encontró uno o más ficheros PCH, pero eran inválidos"
++#~ msgstr "se encontró uno o más ficheros PCH, pero eran no válidos"
+ 
+ #~ msgid "%s is a block device"
+ #~ msgstr "%s es un dispositivo de bloques"
+@@ -71741,7 +69864,7 @@
+ #~ msgstr "la directiva de estilo de línea es una extensión de GCC"
+ 
+ #~ msgid "invalid preprocessing directive #%s"
+-#~ msgstr "directiva de preprocesamiento #%s inválida"
++#~ msgstr "directiva de preprocesamiento #%s no válida"
+ 
+ #~ msgid "\"defined\" cannot be used as a macro name"
+ #~ msgstr "\"defined\" no se puede usar como un nombre de macro"
+@@ -71765,7 +69888,7 @@
+ #~ msgstr "#include_next en fichero primario de código fuente"
+ 
+ #~ msgid "invalid flag \"%s\" in line directive"
+-#~ msgstr "indicador \"%s\" inválido en la línea de la directiva"
++#~ msgstr "indicador \"%s\" no válido en la línea de la directiva"
+ 
+ #~ msgid "\"%s\" after #line is not a positive integer"
+ #~ msgstr "\"%s\" después de #line no es un entero positivo"
+@@ -71777,7 +69900,7 @@
+ #~ msgstr "\"%s\" después de # no es un entero positivo"
+ 
+ #~ msgid "invalid #ident directive"
+-#~ msgstr "directiva #ident inválida"
++#~ msgstr "directiva #ident no válida"
+ 
+ #~ msgid "registering \"%s\" as both a pragma and a pragma namespace"
+ #~ msgstr "registrando \"%s\" como un pragma y como un espacio de nombres de pragma"
+@@ -71789,7 +69912,7 @@
+ #~ msgstr "#pragma una vez en el fichero principal"
+ 
+ #~ msgid "invalid #pragma GCC poison directive"
+-#~ msgstr "directiva #pragma de GCC envenenada inválida"
++#~ msgstr "directiva #pragma de GCC envenenada no válida"
+ 
+ #~ msgid "poisoning existing macro \"%s\""
+ #~ msgstr "envenenando la macro existente \"%s\""
+@@ -71834,10 +69957,10 @@
+ #~ msgstr "\"%s\" reafirmado"
+ 
+ #~ msgid "invalid built-in macro \"%s\""
+-#~ msgstr "macro interna \"%s\" inválida"
++#~ msgstr "macro interna \"%s\" no válida"
+ 
+ #~ msgid "invalid string literal, ignoring final '\\'"
+-#~ msgstr "cadena literal inválida, se ignora el '\\' final"
++#~ msgstr "cadena literal no válida, se ignora el '\\' final"
+ 
+ #~ msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+ #~ msgstr "pegar \"%s\" y \"%s\" no da un elemento válido de preprocesamiento"
+@@ -71885,7 +70008,7 @@
+ #~ msgstr "el argumento de macro \"%s\" debería ser convertido a cadena en C tradicional"
+ 
+ #~ msgid "invalid hash type %d in cpp_macro_definition"
+-#~ msgstr "tipo de hash %d inválido en cpp_macro_definition"
++#~ msgstr "tipo de hash %d no válido en cpp_macro_definition"
+ 
+ #~ msgid "while writing precompiled header"
+ #~ msgstr "al escribir el encabezado precompilado"
+@@ -71915,7 +70038,7 @@
+ #~ msgstr "se regresó un valor en block_exit_expr"
+ 
+ #~ msgid "invalid specification!  Bug in cc"
+-#~ msgstr "¡Especificación inválida!  `Bug' en cc"
++#~ msgstr "¡Especificación no válida!  `Bug' en cc"
+ 
+ #~ msgid "Internal gcov abort.\n"
+ #~ msgstr "Aborto interno de gcov.\n"
+@@ -71979,7 +70102,7 @@
+ #~ msgstr "%s: aborto interno\n"
+ 
+ #~ msgid "jump to `%s' invalidly jumps into binding contour"
+-#~ msgstr "el salto a `%s' salta de forma inválida a un contorno de unión"
++#~ msgstr "el salto a `%s' salta de forma no válida a un contorno de unión"
+ 
+ #~ msgid "%Jlabel '%D' used before containing binding contour"
+ #~ msgstr "%Jse usó antes la etiqueta '%D' que contenía un contorno de unión"
+@@ -71994,7 +70117,7 @@
+ #~ msgstr "no se puede hacer timevar_pop '%s' cuando el tope de la pila timevars es '%s'"
+ 
+ #~ msgid "invalid option `%s'"
+-#~ msgstr "opción `%s' inválida"
++#~ msgstr "opción `%s' no válida"
+ 
+ #~ msgid "%Jfunction '%F' can never be inlined because it contains a nested function"
+ #~ msgstr "%Jla función '%F' nunca puede ser inlined porque contiene una función anidada"
+@@ -72012,7 +70135,7 @@
+ #~ msgstr "el trabajo interno fuerza el uso de APCS-32"
+ 
+ #~ msgid "-mfpe switch not supported by ep9312 target cpu - ignored."
+-#~ msgstr "la opción -mfpe no tiene soporte para el cpu objetivo ep9312 - descartada."
++#~ msgstr "la opción -mfpe no tiene soporte para la cpu objetivo ep9312 - descartada."
+ 
+ #~ msgid "Use the 32-bit version of the APCS"
+ #~ msgstr "Usar la versión 32-bit del APCS"
+@@ -72099,16 +70222,16 @@
+ #~ msgstr "código de extensión de registro erróneo"
+ 
+ #~ msgid "invalid offset in ybase addressing"
+-#~ msgstr "desplazamiento inválido en el direccionamiento de ybase"
++#~ msgstr "desplazamiento no válido en el direccionamiento de ybase"
+ 
+ #~ msgid "invalid register in ybase addressing"
+-#~ msgstr "registro inválido en el direccionamiento de ybase"
++#~ msgstr "registro no válido en el direccionamiento de ybase"
+ 
+ #~ msgid "invalid shift operator in emit_1600_core_shift"
+-#~ msgstr "operador de desplazamiento inválido en emit_1600_core_shift"
++#~ msgstr "operador de desplazamiento no válido en emit_1600_core_shift"
+ 
+ #~ msgid "invalid mode for integer comparison in gen_compare_reg"
+-#~ msgstr "modo inválido para la comparación entera en gen_compare_reg"
++#~ msgstr "modo no válido para la comparación entera en gen_compare_reg"
+ 
+ #~ msgid "Don't pass parameters in registers"
+ #~ msgstr "No pasar los parámetros en los registros"
+@@ -72288,10 +70411,10 @@
+ #~ msgstr "No usar PIC imbuído"
+ 
+ #~ msgid "invalid UNSPEC as operand (1)"
+-#~ msgstr "UNSPEC inválido como operando (1)"
++#~ msgstr "UNSPEC no válido como operando (1)"
+ 
+ #~ msgid "invalid UNSPEC as operand (2)"
+-#~ msgstr "UNSPEC inválido como operando (2)"
++#~ msgstr "UNSPEC no válido como operando (2)"
+ 
+ #~ msgid "UNKNOWN in s390_output_symbolic_const !?"
+ #~ msgstr "UNKNOWN en s390_output_symbolic_const !?"
+@@ -72348,13 +70471,13 @@
+ #~ msgstr "el especificador de tipo del valor devuelto para el constructor es descartado"
+ 
+ #~ msgid "storage class `static' invalid for function `%s' declared out of global scope"
+-#~ msgstr "la clase de almacenamiento `static' es inválida para la función `%s' declarada fuera del ámbito global"
++#~ msgstr "la clase de almacenamiento `static' es no válida para la función `%s' declarada fuera del ámbito global"
+ 
+ #~ msgid "invalid string constant `%E'"
+-#~ msgstr "constante de cadena inválida `%E'"
++#~ msgstr "constante de cadena no válida `%E'"
+ 
+ #~ msgid "invalid integer constant in parameter list, did you forget to give parameter name?"
+-#~ msgstr "constante entera inválida en la lista de parámetros, ¿olvidó proporcionar nombre(s) de parámetro(s)?"
++#~ msgstr "constante entera no válida en la lista de parámetros, ¿olvidó proporcionar nombre(s) de parámetro(s)?"
+ 
+ #~ msgid "return type for `main' changed to `int'"
+ #~ msgstr "el tipo de devolución para `main' cambió a `int'"
+@@ -72387,7 +70510,7 @@
+ #~ msgstr "`%#D' redeclarado como %C"
+ 
+ #~ msgid "invalid token"
+-#~ msgstr "elemento inválido"
++#~ msgstr "elemento no válido"
+ 
+ #~ msgid "`::%D' has not been declared"
+ #~ msgstr "`::%D' no puede ser declarado"
+@@ -72544,19 +70667,19 @@
+ #~ msgstr "directiva errónea -- falta una comilla que cierre"
+ 
+ #~ msgid "invalid #ident"
+-#~ msgstr "instrucción #ident inválida"
++#~ msgstr "instrucción #ident no válida"
+ 
+ #~ msgid "undefined or invalid # directive"
+-#~ msgstr "directiva # no definida o inválida"
++#~ msgstr "directiva # no definida o no válida"
+ 
+ #~ msgid "invalid #line"
+-#~ msgstr "instrucción #line inválida"
++#~ msgstr "instrucción #line no válida"
+ 
+ #~ msgid "use `#line ...' instead of `# ...' in first line"
+ #~ msgstr "use `#line ...' en lugar de `# ...' en la primera línea"
+ 
+ #~ msgid "invalid #-line"
+-#~ msgstr "instrucción #-line inválida"
++#~ msgstr "instrucción #-line no válida"
+ 
+ #~ msgid "Null character at %0 -- line ignored"
+ #~ msgstr "Carácter nulo en %0 -- línea descartada"
+@@ -72598,7 +70721,7 @@
+ #~ msgstr "Falta el primer operando binario para el operador binario en %0"
+ 
+ #~ msgid "Invalid token at %0 in expression or subexpression at %1"
+-#~ msgstr "Elemento inválido en %0 en la expresión o subexpresión en %1"
++#~ msgstr "Elemento no válido en %0 en la expresión o subexpresión en %1"
+ 
+ #~ msgid "Unrecognized character at %0 [info -f g77 M LEX]"
+ #~ msgstr "Carácter no reconocido en %0 [info -f g77 M LEX]"
+@@ -72607,7 +70730,7 @@
+ #~ msgstr "La definición de la etiqueta %A en %0 en una declaración vacía (para %1)"
+ 
+ #~ msgid "Invalid first character at %0 [info -f g77 M LEX]"
+-#~ msgstr "Primer carácter inválido en %0 [info -f g77 M LEX]"
++#~ msgstr "Primer carácter no válido en %0 [info -f g77 M LEX]"
+ 
+ #~ msgid "Line too long as of %0 [info -f g77 M LEX]"
+ #~ msgstr "Línea demasiado larga para %0 [info -f g77 M LEX]"
+@@ -72622,7 +70745,7 @@
+ #~ msgstr "El indicador de continuación en %0 debe aparecer en la columna 6 [info -f g77 M LEX]"
+ 
+ #~ msgid "Label at %0 invalid with continuation line indicator at %1 [info -f g77 M LEX]"
+-#~ msgstr "Etiqueta en %0 inválida con indicador de continuación de línea en %1 [info -f g77 M LEX]"
++#~ msgstr "Etiqueta en %0 no válida con indicador de continuación de línea en %1 [info -f g77 M LEX]"
+ 
+ #~ msgid "Hollerith constant at %0 specified %A more characters than are present as of %1"
+ #~ msgstr "La constante hollerith en %0 especifica %A más caracteres que los presentes en %1"
+@@ -72637,10 +70760,10 @@
+ #~ msgstr "Falta el punto que cierra entre `.%A' en %0 y %1"
+ 
+ #~ msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field"
+-#~ msgstr "Exponente inválido en %0 para la constante real en %1; `%A' que no es dígito en el campo del exponente"
++#~ msgstr "Exponente no válido en %0 para la constante real en %1; `%A' que no es dígito en el campo del exponente"
+ 
+ #~ msgid "Semicolon at %0 is an invalid token"
+-#~ msgstr "El punto y coma en %0 es un elemento inválido"
++#~ msgstr "El punto y coma en %0 es un elemento no válido"
+ 
+ #~ msgid "Unrecognized FORMAT specifier at %0"
+ #~ msgstr "Especificador FORMAT no reconocido en %0"
+@@ -72685,7 +70808,7 @@
+ #~ msgstr "La referencia de la declaración DO a la etiqueta en %0 y la definición de la etiqueta en %2 están separadas por un bloque sin terminar que empieza en %1"
+ 
+ #~ msgid "Label definition at %0 invalid on this kind of statement"
+-#~ msgstr "La definición de etiqueta en %0 es inválida en este tipo de declaración"
++#~ msgstr "La definición de etiqueta en %0 es no válida en este tipo de declaración"
+ 
+ #~ msgid "Statement at %0 must specify construct name specified at %1"
+ #~ msgstr "La declaración en %0 debe especificar el nombre de la construcción especificada en %1"
+@@ -72730,7 +70853,7 @@
+ #~ msgstr "Etiqueta indefinida, primero referenciada en %0"
+ 
+ #~ msgid "Access specifier or PRIVATE statement at %0 invalid for derived-type definition within other than the specification part of a module"
+-#~ msgstr "El especificador de acceso o la declaración PRIVATE en %0 es inválido para la definición de tipo derivado dentro de otro que la parte de especificación de un módulo"
++#~ msgstr "El especificador de acceso o la declaración PRIVATE en %0 es no válido para la definición de tipo derivado dentro de otro que la parte de especificación de un módulo"
+ 
+ #~ msgid "Access specifier at %0 must immediately follow derived-type statement at %1 with no intervening statements"
+ #~ msgstr "El especificador de acceso en %0 debe seguir inmediatamente a la declaración de tipo derivado en %1 sin declaraciones que intervengan"
+@@ -72741,9 +70864,6 @@
  #~ msgid "No components specified as of %0 for structure definition beginning at %1"
  #~ msgstr "No se especificaron componentes para %0 para la la definición de la estructura que comienza en %1"
  
@@ -68158,9 +80659,12 @@ Index: gcc/po/es.po
  #~ msgid "Field names at %0 for outer structure definition -- specify them in a subsequent RECORD statement instead"
  #~ msgstr "Nombres de campos en %0 para la definici{on de la estructura exterior -- especifíquelos en su lugar en una declaración RECORD subsecuente"
  
-@@ -72759,9 +71580,6 @@
+@@ -72757,11 +70877,8 @@
+ #~ msgstr "Se especificaron cero o un mapa en %0 para la unión que comienza en %1 -- se requieren por lo menos dos"
+ 
  #~ msgid "Items in I/O list starting at %0 invalid for namelist-directed I/O"
- #~ msgstr "Los elementos en la lista de E/S que comienza en %0 son inválidos para la E/S dirigida por una lista de nombres"
+-#~ msgstr "Los elementos en la lista de E/S que comienza en %0 son inválidos para la E/S dirigida por una lista de nombres"
++#~ msgstr "Los elementos en la lista de E/S que comienza en %0 son no válidos para la E/S dirigida por una lista de nombres"
  
 -#~ msgid "Conflicting I/O control specifications at %0 and %1"
 -#~ msgstr "Especificaciones de control de E/S en conflicto en %0 y %1"
@@ -68168,7 +80672,188 @@ Index: gcc/po/es.po
  #~ msgid "No UNIT= specifier in I/O control list at %0"
  #~ msgstr "No hay un especificador UNIT= en la lista de control de E/S en %0"
  
-@@ -74284,6 +73102,9 @@
+@@ -72781,19 +70898,19 @@
+ #~ msgstr "Desacuerdo de tipo y/o parámetro de tipo entre el valor CASE o el valor dentro del rango en %0 y SELECT CASE en %1"
+ 
+ #~ msgid "Range specification at %0 invalid for CASE statement within logical-type SELECT CASE statement"
+-#~ msgstr "Especificación de rango en %0 inválida para la declaración CASE dentro de la declaración SELECT CASE de tipo lógico"
++#~ msgstr "Especificación de rango en %0 no válida para la declaración CASE dentro de la declaración SELECT CASE de tipo lógico"
+ 
+ #~ msgid "Fortran 90 feature at %0 unsupported"
+ #~ msgstr "Característica Fortran 90 en %0 sin soporte"
+ 
+ #~ msgid "Invalid declaration of or reference to symbol `%A' at %0 [initially seen at %1]"
+-#~ msgstr "Declaración inválida de o referencia al símbolo `%A' en %0 [observado inicialmente en %1]"
++#~ msgstr "Declaración no válida de o referencia al símbolo `%A' en %0 [observado inicialmente en %1]"
+ 
+ #~ msgid "Missing colon as of %0 in substring reference for %1"
+ #~ msgstr "Faltan dos puntos en %0 en la referencia de subcadena para %1"
+ 
+ #~ msgid "Invalid use at %0 of substring operator on %1"
+-#~ msgstr "Uso inválido en %0 del operador de subcadenas en %1"
++#~ msgstr "Uso no válido en %0 del operador de subcadenas en %1"
+ 
+ #~ msgid "Expression at %0 has incorrect data type or rank for its context"
+ #~ msgstr "La expresión en %0 tiene el tipo de dato o rango incorrecto para su contexto"
+@@ -72820,7 +70937,7 @@
+ #~ msgstr "Paréntesis gratuitos alrededor de la construcción con DO implícito en %0"
+ 
+ #~ msgid "Zero-size specification invalid at %0"
+-#~ msgstr "Especificación de tamaño cero inválida en %0"
++#~ msgstr "Especificación de tamaño cero no válida en %0"
+ 
+ #~ msgid "Zero-size array at %0"
+ #~ msgstr "Matriz de tamaño cero en %0"
+@@ -73458,7 +71575,7 @@
+ #~ msgstr "enum anónimo declarado dentro de una lista de parámetros"
+ 
+ #~ msgid "bit-field `%s' type invalid in ISO C"
+-#~ msgstr "el tipo de campo de bit `%s' es inválido en ISO C"
++#~ msgstr "el tipo de campo de bit `%s' es no válido en ISO C"
+ 
+ #~ msgid "duplicate member `%s'"
+ #~ msgstr "miembro duplicado `%s'"
+@@ -73467,7 +71584,7 @@
+ #~ msgstr "se dieron los tipos de los parámetros en la lista de parámetros y por separado"
+ 
+ #~ msgid "ignoring invalid multibyte character"
+-#~ msgstr "ignorando los carácteres multibyte inválidos"
++#~ msgstr "ignorando los carácteres multibyte no válidos"
+ 
+ #~ msgid "options array incorrectly sorted: %s is before %s"
+ #~ msgstr "opciones de matriz ordenadas incorrectamente: %s está antes de %s"
+@@ -73702,7 +71819,7 @@
+ #~ msgstr "ISO C++ no permite \"%s\" en #if"
+ 
+ #~ msgid "invalid character '\\%03o' in #if"
+-#~ msgstr "Carácter inválido '\\%03o' en #if"
++#~ msgstr "Carácter no válido '\\%03o' en #if"
+ 
+ #~ msgid "absolute file name in remap_filename"
+ #~ msgstr "nombre de fichero absoluto en remap_filename"
+@@ -73808,43 +71925,43 @@
+ #~ msgstr "El nombre `%s' contiene comillas"
+ 
+ #~ msgid "invalid string `%s' in define_cpu_unit"
+-#~ msgstr "cadena `%s' inválida en define_cpu_unit"
++#~ msgstr "cadena `%s' no válida en define_cpu_unit"
+ 
+ #~ msgid "invalid string `%s' in define_query_cpu_unit"
+-#~ msgstr "cadena `%s' inválida en define_query_cpu_unit"
++#~ msgstr "cadena `%s' no válida en define_query_cpu_unit"
+ 
+ #~ msgid "invalid string `%s' in define_bypass"
+-#~ msgstr "cadena `%s' inválida en define_bypass"
++#~ msgstr "cadena `%s' no válida en define_bypass"
+ 
+ #~ msgid "invalid first string `%s' in exclusion_set"
+-#~ msgstr "primera cadena `%s' inválida en exclusion_set"
++#~ msgstr "primera cadena `%s' no válida en exclusion_set"
+ 
+ #~ msgid "invalid second string `%s' in exclusion_set"
+-#~ msgstr "segunda cadena `%s' inválida en exclusion_set"
++#~ msgstr "segunda cadena `%s' no válida en exclusion_set"
+ 
+ #~ msgid "invalid first string `%s' in presence_set"
+-#~ msgstr "primera cadena `%s' inválida en presence_set"
++#~ msgstr "primera cadena `%s' no válida en presence_set"
+ 
+ #~ msgid "invalid second string `%s' in presence_set"
+-#~ msgstr "segunda cadena `%s' inválida en presence_set"
++#~ msgstr "segunda cadena `%s' no válida en presence_set"
+ 
+ #~ msgid "invalid first string `%s' in absence_set"
+-#~ msgstr "primera cadena `%s' inválida en absence_set"
++#~ msgstr "primera cadena `%s' no válida en absence_set"
+ 
+ #~ msgid "invalid second string `%s' in absence_set"
+-#~ msgstr "segunda cadena `%s' inválida en absence_set"
++#~ msgstr "segunda cadena `%s' no válida en absence_set"
+ 
+ #~ msgid "invalid string `%s' in define_automaton"
+-#~ msgstr "cadena `%s' inválida en define_automaton"
++#~ msgstr "cadena `%s' no válida en define_automaton"
+ 
+ #~ msgid "invalid option `%s' in automata_option"
+-#~ msgstr "opción `%s' inválida en automata_option"
++#~ msgstr "opción `%s' no válida en automata_option"
+ 
+ #~ msgid "garbage after ) in reservation `%s'"
+ #~ msgstr "basura después de ) en la reservación `%s'"
+ 
+ #~ msgid "invalid `%s' in reservation `%s'"
+-#~ msgstr "`%s' inválido en la reservación `%s'"
++#~ msgstr "`%s' no válido en la reservación `%s'"
+ 
+ #~ msgid "repetition `%s' <= 1 in reservation `%s'"
+ #~ msgstr "repetición `%s' <= 1 en la reservación `%s'"
+@@ -74032,7 +72149,7 @@
+ #~ msgstr "use -dwarf-2    para DWARF v2"
+ 
+ #~ msgid "ignoring option `%s' due to invalid debug level specification"
+-#~ msgstr "ignorando la opción `%s' debido a la especificación de un nivel de depuración inválido"
++#~ msgstr "ignorando la opción `%s' debido a la especificación de un nivel de depuración no válido"
+ 
+ #~ msgid "`%s': unknown or unsupported -g option"
+ #~ msgstr "`%s': opción -g desconocida o sin soporte"
+@@ -74083,16 +72200,16 @@
+ #~ msgstr "%%R no es seguido por %%B/C/D/E"
+ 
+ #~ msgid "invalid %%Q value"
+-#~ msgstr "valor %%Q inválido"
++#~ msgstr "valor %%Q no válido"
+ 
+ #~ msgid "invalid %%o value"
+-#~ msgstr "valor %%o inválido"
++#~ msgstr "valor %%o no válido"
+ 
+ #~ msgid "invalid %%s/S value"
+-#~ msgstr "valor %%s/S inválido"
++#~ msgstr "valor %%s/S no válido"
+ 
+ #~ msgid "invalid %%B value"
+-#~ msgstr "valor %%B inválido"
++#~ msgstr "valor %%B no válido"
+ 
+ #~ msgid "`%%d' operand isn't a register"
+ #~ msgstr "el operando `%%d' no es un registro"
+@@ -74110,7 +72227,7 @@
+ #~ msgstr "valor erróneo (%s) para el interruptor -mips"
+ 
+ #~ msgid "invalid option `entry%s'"
+-#~ msgstr "opción inválida `entry%s'"
++#~ msgstr "opción no válida `entry%s'"
+ 
+ #~ msgid "-mentry is only meaningful with -mips-16"
+ #~ msgstr "-mentry sólo tiene significado con -mips-16"
+@@ -74132,7 +72249,7 @@
+ #~ msgstr "Usar pseudo ops mips16 de entry/exit"
+ 
+ #~ msgid "invalid %%z value"
+-#~ msgstr "valor %%z inválido"
++#~ msgstr "valor %%z no válido"
+ 
+ #~ msgid "can't have varargs with -mfp-arg-in-fp-regs"
+ #~ msgstr "no se puede tener varargs con -mfp-arg-in-fp-regs"
+@@ -74231,7 +72348,7 @@
+ #~ msgstr "  inicializando el temporal a partir del resultado de `%D'"
+ 
+ #~ msgid "field `%D' invalidly declared offset type"
+-#~ msgstr "el campo `%D' es declarado inválidamente como un tipo de desplazamiento"
++#~ msgstr "el campo `%D' es declarado no válidamente como un tipo de desplazamiento"
+ 
+ #~ msgid "lookup of `%D' finds `%#D'"
+ #~ msgstr "la búsqueda de `%D' encuentra a `%#D'"
+@@ -74246,7 +72363,7 @@
+ #~ msgstr "`%T' implícitamente es un nombre de tipo"
+ 
+ #~ msgid "parameter `%D' invalidly declared offset type"
+-#~ msgstr "el parámetro `%D' se declaró inválidamente como tipo de desplazamiento"
++#~ msgstr "el parámetro `%D' se declaró no válidamente como tipo de desplazamiento"
+ 
+ #~ msgid "`%s %T' declares a new type at namespace scope"
+ #~ msgstr "`%s %T' declara un tipo nuevo en el ámbito del nombre de espacio"
+@@ -74284,6 +72401,9 @@
  #~ msgid "`%T' is not a class or union type"
  #~ msgstr "`%T' no es una clase o tipo union"
  
@@ -68178,6 +80863,815 @@ Index: gcc/po/es.po
  #~ msgid "\\x%x"
  #~ msgstr "\\x%x"
  
+@@ -74291,7 +72411,7 @@
+ #~ msgstr "declaración friend previa de `%D'"
+ 
+ #~ msgid "invalid use of member `%D'"
+-#~ msgstr "uso inválido del miembro `%D'"
++#~ msgstr "uso no válido del miembro `%D'"
+ 
+ #~ msgid "object missing in use of pointer-to-member construct"
+ #~ msgstr "falta objeto en el uso de una consctrucción que apunta a miembros"
+@@ -74427,7 +72547,7 @@
+ #~ msgstr "dependencia circular en los argumentos por defecto de `%#D'"
+ 
+ #~ msgid "invalid type `%T' for default argument to `%T'"
+-#~ msgstr "tipo `%T' inválido para el argumento por defecto de `%T'"
++#~ msgstr "tipo `%T' no válido para el argumento por defecto de `%T'"
+ 
+ #~ msgid "%s before `%c'"
+ #~ msgstr "%s antes de `%c'"
+@@ -74442,7 +72562,7 @@
+ #~ msgstr "ISO C++ prohíbe la conversión de `%#T' a `(...)'"
+ 
+ #~ msgid "invalid application of `%s' to non-static member"
+-#~ msgstr "aplicación inválida de `%s' a un miembro que no es static"
++#~ msgstr "aplicación no válida de `%s' a un miembro que no es static"
+ 
+ #~ msgid "destructor specifier `%T::~%T' must have matching names"
+ #~ msgstr "el especificador del destructor `%T::~%T' debe tener nombres coincidentes"
+@@ -74631,7 +72751,7 @@
+ #~ msgstr "más de un sufijo `i' o una `j' en una constante entera"
+ 
+ #~ msgid "invalid suffix on integer constant"
+-#~ msgstr "sufijo inválido en una constante entera"
++#~ msgstr "sufijo no válido en una constante entera"
+ 
+ #~ msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
+ #~ msgstr "la constante entera es muy grande para esta configuración del compilador - truncando a %d bits"
+@@ -74877,7 +72997,7 @@
+ #~ msgstr "no se permiten números de coma flotante en expresiones #if"
+ 
+ #~ msgid "invalid character constant in #if"
+-#~ msgstr "constante de carácter inválida en #if"
++#~ msgstr "constante de carácter no válida en #if"
+ 
+ #~ msgid "octal character constant does not fit in a byte"
+ #~ msgstr "la constante de carácter octal no cabe en un byte"
+@@ -74925,7 +73045,7 @@
+ #~ msgstr "`defined' debe ser seguido por ident o (ident)"
+ 
+ #~ msgid "cccp error: invalid special hash type"
+-#~ msgstr "error de cccp: tipo de dispersión especial inválido"
++#~ msgstr "error de cccp: tipo de dispersión especial no válido"
+ 
+ #~ msgid "#include expects \"fname\" or <fname>"
+ #~ msgstr "#include espera \"fname\" ó <fname>"
+@@ -74934,10 +73054,10 @@
+ #~ msgstr "no hay ruta de inclusión en la cual se encuentre %.*s"
+ 
+ #~ msgid "invalid macro name"
+-#~ msgstr "nombre de macro inválido"
++#~ msgstr "nombre de macro no válido"
+ 
+ #~ msgid "invalid macro name `%s'"
+-#~ msgstr "nombre de macro `%s' inválido"
++#~ msgstr "nombre de macro `%s' no válido"
+ 
+ #~ msgid "parameter name starts with a digit in #define"
+ #~ msgstr "el nombre de un parámetro empieza con un dígito en un #define"
+@@ -74955,7 +73075,7 @@
+ #~ msgstr "el operador # debe continuar con un nombre de argumento de macro"
+ 
+ #~ msgid "invalid format #line command"
+-#~ msgstr "formato inválido de la orden #line"
++#~ msgstr "formato no válido de la orden #line"
+ 
+ #~ msgid "undefining `defined'"
+ #~ msgstr "borrando la definición de `defined'"
+@@ -75213,7 +73333,7 @@
+ #~ msgstr "`%D' como declarador"
+ 
+ #~ msgid "invalid type: `void &'"
+-#~ msgstr "tipo inválido: `void &'"
++#~ msgstr "tipo no válido: `void &'"
+ 
+ #~ msgid "typedef declaration includes an initializer"
+ #~ msgstr "la declaración typedef incluye un inicializador"
+@@ -75267,13 +73387,13 @@
+ #~ msgstr "petición por el miembro `%T::%D' en la expresión de tipo no agregado `%T'"
+ 
+ #~ msgid "invalid use of type decl `%#D' as expression"
+-#~ msgstr "uso inválido de la declaración de tipo `%#D' como una expresión"
++#~ msgstr "uso no válido de la declaración de tipo `%#D' como una expresión"
+ 
+ #~ msgid "invalid use of template `%#D' as expression"
+-#~ msgstr "uso inválido de la plantilla `%#D' como una expresión"
++#~ msgstr "uso no válido de la plantilla `%#D' como una expresión"
+ 
+ #~ msgid "invalid offsetof from non-POD type `%#T'; use pointer to member instead"
+-#~ msgstr "desplazamiento inválido desde un tipo `%#T' que no es POD; use en su lugar un apuntador a miembro"
++#~ msgstr "desplazamiento no válido desde un tipo `%#T' que no es POD; use en su lugar un apuntador a miembro"
+ 
+ #~ msgid "pointer to member function called, but not in class scope"
+ #~ msgstr "se llamó a apuntador a función miembro, pero no en el alcance de la clase"
+@@ -75282,16 +73402,16 @@
+ #~ msgstr "¿!¿se declaró la función `%D' sobrecargada, pero no aparece ninguna definición con la cual resolverlo?!?"
+ 
+ #~ msgid "invalid call to member function needing `this' in static member function scope"
+-#~ msgstr "llamada inválida a función miembro requiere `this' en el alcance de la función miembro static"
++#~ msgstr "llamada no válida a función miembro requiere `this' en el alcance de la función miembro static"
+ 
+ #~ msgid "initializer list construction invalid for derived class object `%D'"
+-#~ msgstr "construcción de la lista de inicializadores inválida para el objeto de la clase derivada `%D'"
++#~ msgstr "construcción de la lista de inicializadores no válida para el objeto de la clase derivada `%D'"
+ 
+ #~ msgid "initializer list construction invalid for polymorphic class object `%D'"
+-#~ msgstr "construcción de la lista de inicializadores inválida para el objeto de la clase polimórfica `%D'"
++#~ msgstr "construcción de la lista de inicializadores no válida para el objeto de la clase polimórfica `%D'"
+ 
+ #~ msgid "initializer list construction invalid for `%D'"
+-#~ msgstr "construcción de la lista de inicializadores inválida para `%D'"
++#~ msgstr "construcción de la lista de inicializadores no válida para `%D'"
+ 
+ #~ msgid "due to the presence of a constructor"
+ #~ msgstr "debido a la presencia de un constructor"
+@@ -75372,31 +73492,31 @@
+ #~ msgstr "output_operand: %s"
+ 
+ #~ msgid "invalid %H value"
+-#~ msgstr "valor %H inválido"
++#~ msgstr "valor %H no válido"
+ 
+ #~ msgid "invalid %h value"
+-#~ msgstr "valor %h inválido"
++#~ msgstr "valor %h no válido"
+ 
+ #~ msgid "invalid %Q value"
+-#~ msgstr "valor %Q inválido"
++#~ msgstr "valor %Q no válido"
+ 
+ #~ msgid "invalid %q value"
+-#~ msgstr "valor %q inválido"
++#~ msgstr "valor %q no válido"
+ 
+ #~ msgid "invalid %p value"
+-#~ msgstr "valor %p inválido"
++#~ msgstr "valor %p no válido"
+ 
+ #~ msgid "invalid %B value"
+-#~ msgstr "valor %B inválido"
++#~ msgstr "valor %B no válido"
+ 
+ #~ msgid "invalid %C value"
+-#~ msgstr "valor %C inválido"
++#~ msgstr "valor %C no válido"
+ 
+ #~ msgid "invalid %E value"
+-#~ msgstr "valor %E inválido"
++#~ msgstr "valor %E no válido"
+ 
+ #~ msgid "invalid %r value"
+-#~ msgstr "valor %r inválido"
++#~ msgstr "valor %r no válido"
+ 
+ #~ msgid "-march=%s does not support -mips%d"
+ #~ msgstr "-march=%s no tiene soporte para -mips%d"
+@@ -75561,7 +73681,7 @@
+ #~ msgstr "falta los campos variantes (por lo menos `%s')"
+ 
+ #~ msgid "bad initializer for field `%s'"
+-#~ msgstr "inicializador inválido para el campo `%s'"
++#~ msgstr "inicializador no válido para el campo `%s'"
+ 
+ #~ msgid "no initializer value for variant field `%s'"
+ #~ msgstr "no hay un valor inicializador para el campo variante `%s'"
+@@ -75585,7 +73705,7 @@
+ #~ msgstr "índice de inicio no constante para la tupla"
+ 
+ #~ msgid "invalid array tuple label"
+-#~ msgstr "etiqueta de tupla matriz inválida"
++#~ msgstr "etiqueta de tupla matriz no válida"
+ 
+ #~ msgid "incompatible array tuple element %s"
+ #~ msgstr "elemento %s de tupla matriz incompatible"
+@@ -75741,7 +73861,7 @@
+ #~ msgstr "no se puede dereferenciar el valor de PTR usando un `->' unario"
+ 
+ #~ msgid "invalid type argument of `->'"
+-#~ msgstr "argumento de tipo inválido de `->'"
++#~ msgstr "argumento de tipo no válido de `->'"
+ 
+ #~ msgid "operand of '.' is not a STRUCT"
+ #~ msgstr "el operando de '.' no es un STRUCT"
+@@ -75816,7 +73936,7 @@
+ #~ msgstr "no se puede llamar a un PROCESS, usted START un PROCESS"
+ 
+ #~ msgid "invalid %s"
+-#~ msgstr "%s inválido"
++#~ msgstr "%s no válido"
+ 
+ #~ msgid "%s parameter %d is READ-only"
+ #~ msgstr "%s del parámetro %d es READ-only"
+@@ -75843,7 +73963,7 @@
+ #~ msgstr "solamente se permite una expresión en el índice de la cadena"
+ 
+ #~ msgid "invalid: primval ( untyped_exprlist )"
+-#~ msgstr "inválido: primval ( listaexpr_sintipo )"
++#~ msgstr "no válido: primval ( listaexpr_sintipo )"
+ 
+ #~ msgid "operand is variable-size bitstring/power-set"
+ #~ msgstr "el operando es una cadena de bits/powerset de tamaño variable"
+@@ -75864,7 +73984,7 @@
+ #~ msgstr "no se puede usar el operador %s en la variable de modo PROC"
+ 
+ #~ msgid "invalid right operand of %s"
+-#~ msgstr "operando derecho de %s inválido"
++#~ msgstr "operando derecho de %s no válido"
+ 
+ #~ msgid "left argument to MOD/REM operator must be integral"
+ #~ msgstr "el argumento izquierdo del operador MOD/REM debe ser integral"
+@@ -75912,7 +74032,7 @@
+ #~ msgstr "operador %s aplicado a una variable boolean"
+ 
+ #~ msgid "decode_constant: invalid component_ref"
+-#~ msgstr "decode_constant: component_ref inválido"
++#~ msgstr "decode_constant: component_ref no válido"
+ 
+ #~ msgid "decode_constant: mode and value mismatch"
+ #~ msgstr "decode_constant: no coinciden el modo y el valor"
+@@ -76017,7 +74137,7 @@
+ #~ msgstr "faltan argumentos para esta cadena de formato"
+ 
+ #~ msgid "type of argument %d invalid for conversion code at offset %d"
+-#~ msgstr "el tipo del argumento %d es inválido para el código de conversión en el desplazamiento %d"
++#~ msgstr "el tipo del argumento %d es no válido para el código de conversión en el desplazamiento %d"
+ 
+ #~ msgid "unmatched open paren"
+ #~ msgstr "paréntesis abierto sin coincidencia"
+@@ -76080,7 +74200,7 @@
+ #~ msgstr " ignorar mayúsculas y minúsculas de la entrada no funcionará"
+ 
+ #~ msgid "invalid C'xx' "
+-#~ msgstr "C'xx' inválido "
++#~ msgstr "C'xx' no válido "
+ 
+ #~ msgid "malformed exponent part of floating-point literal"
+ #~ msgstr "parte del exponente malformada de una literal de coma flotante"
+@@ -76101,16 +74221,16 @@
+ #~ msgstr "secuencia de control sin terminar"
+ 
+ #~ msgid "invalid integer literal in control sequence"
+-#~ msgstr "entero literal inválido en la secuencia de control"
++#~ msgstr "entero literal no válido en la secuencia de control"
+ 
+ #~ msgid "control sequence overflow"
+ #~ msgstr "desbordamiento de la secuencia de control"
+ 
+ #~ msgid "invalid base in read control sequence"
+-#~ msgstr "base inválida en la secuencia de control de lectura"
++#~ msgstr "base no válida en la secuencia de control de lectura"
+ 
+ #~ msgid "invalid number format `%s'"
+-#~ msgstr "formato de número `%s' inválido"
++#~ msgstr "formato de número `%s' no válido"
+ 
+ #~ msgid "integer literal too big"
+ #~ msgstr "entero literal demasiado grande"
+@@ -76125,7 +74245,7 @@
+ #~ msgstr "falta un `=' en la directiva del compilador"
+ 
+ #~ msgid "invalid value follows `=' in compiler directive"
+-#~ msgstr "valor inválido a continuación de `=' la directiva"
++#~ msgstr "valor no válido a continuación de `=' la directiva"
+ 
+ #~ msgid "`%s' not integer constant synonym "
+ #~ msgstr "`%s' no es un sinónimo de la constante entera "
+@@ -76276,7 +74396,7 @@
+ #~ msgstr "lista de nombres de campos de tupla errónea"
+ 
+ #~ msgid "invalid syntax for label in tuple"
+-#~ msgstr "sintaxis inválida para la etiqueta en la tupla"
++#~ msgstr "sintaxis no válida para la etiqueta en la tupla"
+ 
+ #~ msgid "bad syntax in tuple"
+ #~ msgstr "sintaxis errónea en la tupla"
+@@ -76285,7 +74405,7 @@
+ #~ msgstr "nombre que no es modo antes de la tupla"
+ 
+ #~ msgid "invalid expression/location syntax"
+-#~ msgstr "sintaxis de expresión/ubicación inválida"
++#~ msgstr "sintaxis de expresión/ubicación no válida"
+ 
+ #~ msgid "RECEIVE expression"
+ #~ msgstr "expresión RECEIVE"
+@@ -76351,7 +74471,7 @@
+ #~ msgstr "modo sin propiedad que no es valor en la definición de la señal"
+ 
+ #~ msgid "RETURNS spec with invalid mode"
+-#~ msgstr "especificación de RETURNS con modo inválido"
++#~ msgstr "especificación de RETURNS con modo no válido"
+ 
+ #~ msgid "operand to REF is not a mode"
+ #~ msgstr "el operando para REF no es un modo"
+@@ -76366,7 +74486,7 @@
+ #~ msgstr "el modo de grabación no debe tener la propiedad que no es valor"
+ 
+ #~ msgid "invalid attribute for argument `%s' (only IN or LOC allowed)"
+-#~ msgstr "atributo inválido para el argumento `%s' (solamente se permiten IN o LOC)"
++#~ msgstr "atributo no válido para el argumento `%s' (solamente se permiten IN o LOC)"
+ 
+ #~ msgid "PROCESS may only be declared at module level"
+ #~ msgstr "solamente se puede declarar PROCESS en el nivel de módulos"
+@@ -76447,7 +74567,7 @@
+ #~ msgstr "SEND WITH debe tener un modo"
+ 
+ #~ msgid "internal error: RECEIVE CASE stack invalid"
+-#~ msgstr "error interno: pila RECEIVE CASE inválida"
++#~ msgstr "error interno: pila RECEIVE CASE no válida"
+ 
+ #~ msgid "SET requires INSTANCE location"
+ #~ msgstr "SET requiere de una ubicación INSTANCE"
+@@ -76561,10 +74681,10 @@
+ #~ msgstr "solamente se puede construir un powerset a partir de un modo discreto"
+ 
+ #~ msgid "non-constant bitstring size invalid"
+-#~ msgstr "tamaño inválido de cadena de bits no constante"
++#~ msgstr "tamaño no válido de cadena de bits no constante"
+ 
+ #~ msgid "non-constant powerset size invalid"
+-#~ msgstr "tamaño inválido de powerset no constante"
++#~ msgstr "tamaño no válido de powerset no constante"
+ 
+ #~ msgid "array or string index is a mode (instead of a value)"
+ #~ msgstr "el índice de una matriz o una cadena es un modo (en lugar de un valor)"
+@@ -76594,7 +74714,7 @@
+ #~ msgstr "el índice de matriz no es discreto"
+ 
+ #~ msgid "invalid compound index for bitstring mode"
+-#~ msgstr "índice compuesto inválido para el modo de cadena de bits"
++#~ msgstr "índice compuesto no válido para el modo de cadena de bits"
+ 
+ # FIXME: revisar que variable_size sea algo fijo en el código. cfuga
+ #~ msgid "conversions from variable_size value"
+@@ -76753,7 +74873,7 @@
+ #~ msgstr "si un campo tiene una disposición POS, entonces todos los campos deben tener una disposición POS"
+ 
+ #~ msgid "invalid parameterized type"
+-#~ msgstr "tipo parametrizado inválido"
++#~ msgstr "tipo parametrizado no válido"
+ 
+ #~ msgid "abstract virtual `%#D' called from constructor"
+ #~ msgstr "virtual abstracto `%#D' llamado desde un constructor"
+@@ -76792,10 +74912,10 @@
+ #~ msgstr "Definición de etiqueta extra %A en %0 a continuación de la definición de la etiqueta %B en %1"
+ 
+ #~ msgid "Continuation indicator at %0 invalid on first non-comment line of file or following END or INCLUDE [info -f g77 M LEX]"
+-#~ msgstr "Indicador de continuación en %0 inválido en la primera línea del fichero que no es comentario o a continuación de END o INCLUDE [info -f g77 M LEX]"
++#~ msgstr "Indicador de continuación en %0 no válido en la primera línea del fichero que no es comentario o a continuación de END o INCLUDE [info -f g77 M LEX]"
+ 
+ #~ msgid "Continuation indicator at %0 invalid here [info -f g77 M LEX]"
+-#~ msgstr "Indicador de continuación en %0 inválido aquí [info -f g77 M LEX]"
++#~ msgstr "Indicador de continuación en %0 no válido aquí [info -f g77 M LEX]"
+ 
+ #~ msgid "Integer at %0 too large except as negative number (preceded by unary minus sign)"
+ #~ msgstr "Entero en %0 demasiado grande excepto como número negativo (precedido por el signo de menos unario)"
+@@ -76832,16 +74952,16 @@
+ 
+ # No me gusta esta traducción (y las que siguen del estilo). cfuga
+ #~ msgid "Invalid binary digit(s) found in string of digits at %0"
+-#~ msgstr "Se encontró(aron) (un) dígito(s) binario(s) inválidos en la cadena de dígitos en %0"
++#~ msgstr "Se encontró(aron) (un) dígito(s) binario(s) no válidos en la cadena de dígitos en %0"
+ 
+ #~ msgid "Invalid hexadecimal digit(s) found in string of digits at %0"
+-#~ msgstr "Se encontró(aron) (un) dígito(s) hexadecimal(es) inválidos en la cadena de dígitos en %0"
++#~ msgstr "Se encontró(aron) (un) dígito(s) hexadecimal(es) no válidos en la cadena de dígitos en %0"
+ 
+ #~ msgid "Invalid octal digit(s) found in string of digits at %0"
+-#~ msgstr "Se encontró(aron) (un) dígito(s) octal(es) inválidos en la cadena de dígitos en %0"
++#~ msgstr "Se encontró(aron) (un) dígito(s) octal(es) no válidos en la cadena de dígitos en %0"
+ 
+ #~ msgid "Invalid radix specifier `%A' at %0 for typeless constant at %1"
+-#~ msgstr "Especificador de radical `%A' inválido en %0 para la constante sin tipo en %1"
++#~ msgstr "Especificador de radical `%A' no válido en %0 para la constante sin tipo en %1"
+ 
+ #~ msgid "%A part of complex constant at %0 must be a real or integer constant -- otherwise use CMPLX() or COMPLEX() in place of ()"
+ #~ msgstr "%A parte de la constante compleja en %0 debe ser una constante real o entera -- de otra forma use CMPLX() o COMPLEX() en lugar de ()"
+@@ -76850,19 +74970,19 @@
+ #~ msgstr "%A parte de la constante compleja en %0 no es una constante real o entera"
+ 
+ #~ msgid "Invalid keyword `%%%A' at %0 in this context"
+-#~ msgstr "Palabra clave `%%%A' inválida en %0 en este contexto"
++#~ msgstr "Palabra clave `%%%A' no válida en %0 en este contexto"
+ 
+ #~ msgid "Invalid keyword `%%%A' at %0"
+-#~ msgstr "Palabra clave `%%%A' inválida en %0"
++#~ msgstr "Palabra clave `%%%A' no válida en %0"
+ 
+ #~ msgid "Invalid null expression between %0 and %1"
+-#~ msgstr "Expresión nula inválida entre %0 y %1"
++#~ msgstr "Expresión nula no válida entre %0 y %1"
+ 
+ #~ msgid "Concatenation operator at %0 must operate on two subexpressions of character type, but neither subexpression at %1 or %2 is of character type"
+ #~ msgstr "El operador de concatenación %0 debe operar en dos subexpresiones de tipo carácter, pero ninguna subexpresión en %1 o %2 es de tipo carácter"
+ 
+ #~ msgid "Invalid operands at %1 and %2 for concatenation operator at %0"
+-#~ msgstr "Operandos inválidos en %1 y %2 para el operador de concatenación en %0"
++#~ msgstr "Operandos no válidos en %1 y %2 para el operador de concatenación en %0"
+ 
+ #~ msgid "Concatenation operator at %0 must operate on two subexpressions of character type, but the subexpression at %1 is not of character type"
+ #~ msgstr "El operando de concatenación en %0 debe operar en dos subexpresiones de tipo carácter, pero la subexpresión en %1 no es de tipo carácter"
+@@ -76871,25 +74991,25 @@
+ #~ msgstr "El operador de concatenación en %0 debe operar en dos subexpresiones escalares (no matrices), dos invocaciones de la función regresan caracteres escalares, o una combinación de ambos -- pero la subexpresión en %1 es %A"
+ 
+ #~ msgid "Invalid operand (is %A) at %1 for concatenation operator at %0"
+-#~ msgstr "Operando inválido (es %A) en %1 para el operador de concatenación en %0"
++#~ msgstr "Operando no válido (es %A) en %1 para el operador de concatenación en %0"
+ 
+ #~ msgid "Arithmetic operator at %0 must operate on two subexpressions of arithmetic type, but neither subexpression at %1 or %2 is of arithmetic type"
+ #~ msgstr "Operador aritmético en %0 debe operar en dos subexpresiones de tipo aritmético, pero ninguna subexpresión en %1 o %2 es de tipo aritmético"
+ 
+ #~ msgid "Invalid operands at %1 and %2 for arithmetic operator at %0"
+-#~ msgstr "Operandos inválidos en %1 y %2 para el operador aritmético en %0"
++#~ msgstr "Operandos no válidos en %1 y %2 para el operador aritmético en %0"
+ 
+ #~ msgid "Arithmetic operator at %0 must operate on two subexpressions of arithmetic type, but the subexpression at %1 is not of arithmetic type"
+ #~ msgstr "Operador aritmético en %0 debe operar en dos subexpresiones de tipo aritmético, pero la subexpresión en %1 no es de tipo aritmético"
+ 
+ #~ msgid "Invalid operand at %1 for arithmetic operator at %0"
+-#~ msgstr "Operando inválido en %1 para el operador aritmético en %0"
++#~ msgstr "Operando no válido en %1 para el operador aritmético en %0"
+ 
+ #~ msgid "Arithmetic operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning arithmetic scalars, or a combination of both -- but the subexpression at %1 is %A"
+ #~ msgstr "Operador aritmético en %0 debe operar en dos expresiones escalares (no matrices), dos invocaciones de la función regresan escalares aritméticos, o una combinación de ambos -- pero la subexpresión en %1 es %A"
+ 
+ #~ msgid "Invalid operand (is %A) at %1 for arithmetic operator at %0"
+-#~ msgstr "Operando inválido (es %A) en %1 para el operador aritmético en %0"
++#~ msgstr "Operando no válido (es %A) en %1 para el operador aritmético en %0"
+ 
+ #~ msgid "Character constant at %0 has no closing quote at %1 [info -f g77 M LEX]"
+ #~ msgstr "La constante de carácter en %0 no tiene comilla que cierra en %1 [info -f g77 M LEX]"
+@@ -76904,19 +75024,19 @@
+ #~ msgstr "La continuación de línea en %0 debe tener un `&' ya que continúa un elemento léxico dividido [info -f g77 M LEX]"
+ 
+ #~ msgid "Continuation line at %0 invalid because it consists only of a single `&' as the only nonblank character"
+-#~ msgstr "La continuación de línea en %0 es inválida porque sólo consiste de un `&' sencillo como el único carácter que no es blanco"
++#~ msgstr "La continuación de línea en %0 es no válida porque sólo consiste de un `&' sencillo como el único carácter que no es blanco"
+ 
+ #~ msgid "Statement at %0 begins with invalid token [info -f g77 M LEX]"
+-#~ msgstr "La declaración en %0 empieza con un elemento inválido [info -f g77 M LEX]"
++#~ msgstr "La declaración en %0 empieza con un elemento no válido [info -f g77 M LEX]"
+ 
+ #~ msgid "Invalid statement at %0 [info -f g77 M LEX]"
+-#~ msgstr "Declaración inválida en %0 [info -f g77 M LEX]"
++#~ msgstr "Declaración no válida en %0 [info -f g77 M LEX]"
+ 
+ #~ msgid "Unrecognized statement name at %0 and invalid form for assignment or statement-function definition at %1"
+-#~ msgstr "Nombre de declaración no reconocido en %0 y forma inválida para la asignación o la definición de la declaración de la función en %1"
++#~ msgstr "Nombre de declaración no reconocido en %0 y forma no válida para la asignación o la definición de la declaración de la función en %1"
+ 
+ #~ msgid "Invalid use of hollerith constant in statement at %0 -- enclose the constant in parentheses (for example, change BACKSPACE 2HAB to BACKSPACE (2HAB))"
+-#~ msgstr "Uso inválido de una constante hollerith en la declaración en %0 -- encierre la constante en paréntesis (por ejemplo, cambie BACKSPACE 2HAB a BACKSPACE (2HAB))"
++#~ msgstr "Uso no válido de una constante hollerith en la declaración en %0 -- encierre la constante en paréntesis (por ejemplo, cambie BACKSPACE 2HAB a BACKSPACE (2HAB))"
+ 
+ #~ msgid "Enclose hollerith constant in statement at %0 in parentheses"
+ #~ msgstr "Encierre la constante hollerith en paréntesis en la declaración en %0"
+@@ -76925,154 +75045,154 @@
+ #~ msgstr "El descriptor de edición de control nP no está seguido de una coma sin por un descriptor de edición en %0 diferente de D, E, EN, F o G"
+ 
+ #~ msgid "Invalid edit descriptor at %0 following nP control edit descriptor"
+-#~ msgstr "Descriptor de edición inválido en %0 a continuación del descriptor de edición de control nP"
++#~ msgstr "Descriptor de edición no válido en %0 a continuación del descriptor de edición de control nP"
+ 
+ #~ msgid "Invalid I specifier in FORMAT statement at %0 -- correct form: [r]Iw.[m]"
+-#~ msgstr "Especificador I inválido en la declaración FORMAT en %0 -- forma correcta: [r]Iw.[m]"
++#~ msgstr "Especificador I no válido en la declaración FORMAT en %0 -- forma correcta: [r]Iw.[m]"
+ 
+ #~ msgid "Invalid B specifier in FORMAT statement at %0 -- correct form: [r]Bw.[m]"
+-#~ msgstr "Especificador B inválido en la declaración FORMAT en %0 -- forma correcta: [r]Bw.[m]"
++#~ msgstr "Especificador B no válido en la declaración FORMAT en %0 -- forma correcta: [r]Bw.[m]"
+ 
+ #~ msgid "Invalid O specifier in FORMAT statement at %0 -- correct form: [r]Ow.[m]"
+-#~ msgstr "Especificador O inválido en la declaración FORMAT en %0 -- forma correcta: [r]Ow.[m]"
++#~ msgstr "Especificador O no válido en la declaración FORMAT en %0 -- forma correcta: [r]Ow.[m]"
+ 
+ #~ msgid "Invalid Z specifier in FORMAT statement at %0 -- correct form: [r]Zw.[m]"
+-#~ msgstr "Especificador Z inválido en la declaración FORMAT en %0 -- forma correcta: [r]Zw.[m]"
++#~ msgstr "Especificador Z no válido en la declaración FORMAT en %0 -- forma correcta: [r]Zw.[m]"
+ 
+ #~ msgid "Invalid Z specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador Z inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador Z no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid F specifier in FORMAT statement at %0 -- correct form: [r]Fw.d"
+-#~ msgstr "Especificador F inválido en la declaración FORMAT en %0 -- forma correcta: [r]Fw.d"
++#~ msgstr "Especificador F no válido en la declaración FORMAT en %0 -- forma correcta: [r]Fw.d"
+ 
+ #~ msgid "Invalid F specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador F inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador F no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid E specifier in FORMAT statement at %0 -- correct form: [r]Ew.d[Ee]"
+-#~ msgstr "Especificador E inválido en la declaración FORMAT en %0 -- forma correcta: [r]Ew.d[Ee]"
++#~ msgstr "Especificador E no válido en la declaración FORMAT en %0 -- forma correcta: [r]Ew.d[Ee]"
+ 
+ #~ msgid "Invalid E specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador E inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador E no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid EN specifier in FORMAT statement at %0 -- correct form: [r]ENw.d[Ee]"
+-#~ msgstr "Especificador EN inválido en la declaración FORMAT en %0 -- forma correcta: [r]ENw.d[Ee]"
++#~ msgstr "Especificador EN no válido en la declaración FORMAT en %0 -- forma correcta: [r]ENw.d[Ee]"
+ 
+ #~ msgid "Invalid EN specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador EN inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador EN no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid G specifier in FORMAT statement at %0 -- correct form: [r]Gw.d[Ee]"
+-#~ msgstr "Especificador G inválido en la declaración FORMAT en %0 -- forma correcta: [r]Gw.d[Ee]"
++#~ msgstr "Especificador G no válido en la declaración FORMAT en %0 -- forma correcta: [r]Gw.d[Ee]"
+ 
+ #~ msgid "Invalid G specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador G inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador G no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid L specifier in FORMAT statement at %0 -- correct form: [r]Lw"
+-#~ msgstr "Especificador L inválido en la declaración FORMAT en %0 -- forma correcta: [r]Lw"
++#~ msgstr "Especificador L no válido en la declaración FORMAT en %0 -- forma correcta: [r]Lw"
+ 
+ #~ msgid "Invalid L specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador L inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador L no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid A specifier in FORMAT statement at %0 -- correct form: [r]A[w]"
+-#~ msgstr "Especificador A inválido en la declaración FORMAT en %0 -- forma correcta: [r]A[w]"
++#~ msgstr "Especificador A no válido en la declaración FORMAT en %0 -- forma correcta: [r]A[w]"
+ 
+ #~ msgid "Invalid A specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador A inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador A no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid D specifier in FORMAT statement at %0 -- correct form: [r]Dw.d"
+-#~ msgstr "Especificador D inválido en la declaración FORMAT en %0 -- forma correcta: [r]Dw.d"
++#~ msgstr "Especificador D no válido en la declaración FORMAT en %0 -- forma correcta: [r]Dw.d"
+ 
+ #~ msgid "Invalid D specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador D inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador D no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid Q specifier in FORMAT statement at %0 -- correct form: Q"
+-#~ msgstr "Especificador Q inválido en la declaración FORMAT en %0 -- forma correcta: Q"
++#~ msgstr "Especificador Q no válido en la declaración FORMAT en %0 -- forma correcta: Q"
+ 
+ #~ msgid "Invalid Q specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador Q inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador Q no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid $ specifier in FORMAT statement at %0 -- correct form: $"
+-#~ msgstr "Especificador $ inválido en la declaración FORMAT en %0 -- forma correcta: $"
++#~ msgstr "Especificador $ no válido en la declaración FORMAT en %0 -- forma correcta: $"
+ 
+ #~ msgid "Invalid $ specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador $ inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador $ no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid P specifier in FORMAT statement at %0 -- correct form: kP"
+-#~ msgstr "Especificador P inválido en la declaración FORMAT en %0 -- forma correcta: kP"
++#~ msgstr "Especificador P no válido en la declaración FORMAT en %0 -- forma correcta: kP"
+ 
+ #~ msgid "Invalid P specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador P inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador P no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid T specifier in FORMAT statement at %0 -- correct form: Tn"
+-#~ msgstr "Especificador T inválido en la declaración FORMAT en %0 -- forma correcta: Tn"
++#~ msgstr "Especificador T no válido en la declaración FORMAT en %0 -- forma correcta: Tn"
+ 
+ #~ msgid "Invalid T specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador T inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador T no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid TL specifier in FORMAT statement at %0 -- correct form: TLn"
+-#~ msgstr "Especificador TL inválido en la declaración FORMAT en %0 -- forma correcta: TLn"
++#~ msgstr "Especificador TL no válido en la declaración FORMAT en %0 -- forma correcta: TLn"
+ 
+ #~ msgid "Invalid TL specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador TL inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador TL no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid TR specifier in FORMAT statement at %0 -- correct form: TRn"
+-#~ msgstr "Especificador TR inválido en la declaración FORMAT en %0 -- forma correcta: TRn"
++#~ msgstr "Especificador TR no válido en la declaración FORMAT en %0 -- forma correcta: TRn"
+ 
+ #~ msgid "Invalid TR specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador TR inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador TR no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid X specifier in FORMAT statement at %0 -- correct form: nX"
+-#~ msgstr "Especificador X inválido en la declaración FORMAT en %0 -- forma correcta: nX"
++#~ msgstr "Especificador X no válido en la declaración FORMAT en %0 -- forma correcta: nX"
+ 
+ #~ msgid "Invalid X specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador X inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador X no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid S specifier in FORMAT statement at %0 -- correct form: S"
+-#~ msgstr "Especificador S inválido en la declaración FORMAT en %0 -- forma correcta: S"
++#~ msgstr "Especificador S no válido en la declaración FORMAT en %0 -- forma correcta: S"
+ 
+ #~ msgid "Invalid S specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador S inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador S no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid SP specifier in FORMAT statement at %0 -- correct form: SP"
+-#~ msgstr "Especificador SP inválido en la declaración FORMAT en %0 -- forma correcta: SP"
++#~ msgstr "Especificador SP no válido en la declaración FORMAT en %0 -- forma correcta: SP"
+ 
+ #~ msgid "Invalid SP specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador SP inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador SP no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid SS specifier in FORMAT statement at %0 -- correct form: SS"
+-#~ msgstr "Especificador SS inválido en la declaración FORMAT en %0 -- forma correcta: SS"
++#~ msgstr "Especificador SS no válido en la declaración FORMAT en %0 -- forma correcta: SS"
+ 
+ #~ msgid "Invalid SS specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador SS inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador SS no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid BN specifier in FORMAT statement at %0 -- correct form: BN"
+-#~ msgstr "Especificador BN inválido en la declaración FORMAT en %0 -- forma correcta: BN"
++#~ msgstr "Especificador BN no válido en la declaración FORMAT en %0 -- forma correcta: BN"
+ 
+ #~ msgid "Invalid BN specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador BN inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador BN no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid BZ specifier in FORMAT statement at %0 -- correct form: BZ"
+-#~ msgstr "Especificador BZ inválido en la declaración FORMAT en %0 -- forma correcta: BZ"
++#~ msgstr "Especificador BZ no válido en la declaración FORMAT en %0 -- forma correcta: BZ"
+ 
+ #~ msgid "Invalid BZ specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador BZ inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador BZ no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid : specifier in FORMAT statement at %0 -- correct form: :"
+-#~ msgstr "Especificador : inválido en la declaración FORMAT en %0 -- forma correcta: :"
++#~ msgstr "Especificador : no válido en la declaración FORMAT en %0 -- forma correcta: :"
+ 
+ #~ msgid "Invalid : specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador : inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador : no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid H specifier in FORMAT statement at %0 -- correct form: nHcharacters  !where n is an unsigned decimal constant, and characters               !contains exactly n characters (including spaces)"
+-#~ msgstr "Especificador H inválido en la declaración FORMAT en %0 -- forma correcta: nHcaracteres !donde n es una constante decimal sin signo, y los caracteres              !contienen exactamente n caracteres (incluyendo espacios)"
++#~ msgstr "Especificador H no válido en la declaración FORMAT en %0 -- forma correcta: nHcaracteres !donde n es una constante decimal sin signo, y los caracteres              !contienen exactamente n caracteres (incluyendo espacios)"
+ 
+ #~ msgid "Invalid H specifier in FORMAT statement at %0"
+-#~ msgstr "Especificador H inválido en la declaración FORMAT en %0"
++#~ msgstr "Especificador H no válido en la declaración FORMAT en %0"
+ 
+ #~ msgid "Invalid token with FORMAT run-time expression at %0 -- use the traditional operators .LT., .LE., .GT., .GE., .EQ., and .NE. in place of the newer tokens <, <=, >, >=, ==, and !=, because > ends an expression within a FORMAT statement"
+-#~ msgstr "Elemento inválido con la expresión de tiempo de ejecución FORMAT en %0 -- use los operadores tradicionales .LT., .LE., .GT., .GE., .EQ. y .NE. en lugar de los elementos más nuevos <, <=, >, >=, == y !=, porque > termina una expresión dentro de una declaración FORMAT"
++#~ msgstr "Elemento no válido con la expresión de tiempo de ejecución FORMAT en %0 -- use los operadores tradicionales .LT., .LE., .GT., .GE., .EQ. y .NE. en lugar de los elementos más nuevos <, <=, >, >=, == y !=, porque > termina una expresión dentro de una declaración FORMAT"
+ 
+ #~ msgid "Invalid token with FORMAT run-time expression at %0"
+-#~ msgstr "Elemento inválido con la expresión de tiempo de ejecución FORMAT en %0"
++#~ msgstr "Elemento no válido con la expresión de tiempo de ejecución FORMAT en %0"
+ 
+ #~ msgid "Defined operator at %0 contains a nonletter -- must contain only letters A-Z (or a-z)"
+ #~ msgstr "El operador definido en %0 contiene un carácter que no es letra -- debe contener solamente letras A-Z (o a-z)"
+@@ -77081,7 +75201,7 @@
+ #~ msgstr "Un carácter que no es letra en el operador definido en %0"
+ 
+ #~ msgid "Invalid type-declaration attribute at %0 -- must be one of: DIMENSION(array-spec), EXTERNAL, INTRINSIC, PARAMETER, or SAVE"
+-#~ msgstr "Atributo de declaración de tipo inválido en %0 -- debe ser uno de: DIMENSION(espec-matriz), EXTERNAL, INTRINSIC, PARAMETER, o SAVE"
++#~ msgstr "Atributo de declaración de tipo no válido en %0 -- debe ser uno de: DIMENSION(espec-matriz), EXTERNAL, INTRINSIC, PARAMETER, o SAVE"
+ 
+ #~ msgid "Unrecognized value for character constant at %0 -- expecting %A"
+ #~ msgstr "Valor no reconocido para la constante de carácter en %0 -- se esperaba %A"
+@@ -77090,7 +75210,7 @@
+ #~ msgstr "Valor no reconocido para una constante de carácter en %0"
+ 
+ #~ msgid "Range specification at %0 invalid -- at least one expression must be specified, or use CASE DEFAULT"
+-#~ msgstr "Especificación de rango en %0 inválida -- por lo menos una expresión se debe especificar, o utilice CASE DEFAULT"
++#~ msgstr "Especificación de rango en %0 no válida -- por lo menos una expresión se debe especificar, o utilice CASE DEFAULT"
+ 
+ #~ msgid "Range specification at %0 useless; first expression greater than second expression in range, so range can never be matched by any selection expression"
+ #~ msgstr "Especificación de rango en %0 inútil; la primera expresión es más grande que la segunda expresión en el rango, así que el rango nunca coincidirá con cualquier expresión de rango"
+@@ -77099,7 +75219,7 @@
+ #~ msgstr "Rango inútil en %0"
+ 
+ #~ msgid "Invalid kind at %0 for type at %1 -- unsupported or not permitted"
+-#~ msgstr "Afinidad inválida en %0 por el tipo en %1 -- sin soporte o no está permitido"
++#~ msgstr "Afinidad no válida en %0 por el tipo en %1 -- sin soporte o no está permitido"
+ 
+ #~ msgid "Cannot establish implicit type for initial letter `%A' at %0 -- already explicitly established or used to set implicit type of some name, or backwards order of letters in letter range"
+ #~ msgstr "No se puede establecer el tipo implícito para la letra inicial `%A' en %0 -- ya se estableció explícitamente o se usó para establecer el tipo implícito de otro nombre, o en orden inverso de letras en el rango de letras"
+@@ -77108,7 +75228,7 @@
+ #~ msgstr "No se puede establecer el tipo implícito para la letra inicial `%A' en %0"
+ 
+ #~ msgid "Label definition %A (at %0) invalid -- must be in columns 1-5"
+-#~ msgstr "La definición de la etiqueta %A (en %0) inválida -- debe estar en las columnas 1-5"
++#~ msgstr "La definición de la etiqueta %A (en %0) no válida -- debe estar en las columnas 1-5"
+ 
+ #~ msgid "Run-time expression at %0 in FORMAT statement that does not follow the first executable statement in the program unit -- move the statement"
+ #~ msgstr "Hay una expresión en tiempo de ejecución en %0 en la declaración FORMAT que no sigue la primera declaración ejecutable en la unidad de programa -- mueva la declaración"
+@@ -77126,19 +75246,19 @@
+ #~ msgstr "El operador booleano/lógico en %0 debe operar en dos subexpresiones de tipo lógico, pero ninguna subexpresión en %1 o %2 es de tipo lógico"
+ 
+ #~ msgid "Invalid operands at %1 and %2 for boolean operator at %0"
+-#~ msgstr "Operandos inválidos en %1 y %2 para el operador booleano en %0"
++#~ msgstr "Operandos no válidos en %1 y %2 para el operador booleano en %0"
+ 
+ #~ msgid "Boolean/logical operator at %0 must operate on two subexpressions of logical type, but the subexpression at %1 is not of logical type"
+ #~ msgstr "El operador booleano/lógico en %0 debe operar en dos subexpresiones de tipo lógico, pero la subexpresión en %1 no es de tipo lógico"
+ 
+ #~ msgid "Invalid operand at %1 for boolean operator at %0"
+-#~ msgstr "Operando inválido en %1 para el operador booleano en %0"
++#~ msgstr "Operando no válido en %1 para el operador booleano en %0"
+ 
+ #~ msgid "Boolean/logical operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning logical scalars, or a combination of both -- but the subexpression at %1 is %A"
+ #~ msgstr "El operador booleano/lógico en %0 debe operar en dos subexpresiones escalares (no matrices), dos invocaciones de función que devuelvan escalares lógicos, o una combinación de ambos -- pero la subexpresión en %1 es %A"
+ 
+ #~ msgid "Invalid operand (is %A) at %1 for boolean operator at %0"
+-#~ msgstr "Operando inválido (es %A) en %1 para el operador booleano en %0"
++#~ msgstr "Operando no válido (es %A) en %1 para el operador booleano en %0"
+ 
+ #~ msgid ".NOT. operator at %0 must operate on subexpression of logical type, but the subexpression at %1 is not of logical type"
+ #~ msgstr "El operador .NOT. en %0 debe operar en una subexpresión de tipo lógico, pero la subexpresión en %1 no es de tipo lógico"
+@@ -77147,46 +75267,46 @@
+ #~ msgstr "El operador .NOT. en %0 debe operar en expresiones escalares -- pero la subexpresión en %1 es %A"
+ 
+ #~ msgid "Invalid operand (is %A) at %1 for .NOT. operator at %0"
+-#~ msgstr "Operando inválido (es %A) en %1 para el operador .NOT. en %0"
++#~ msgstr "Operando no válido (es %A) en %1 para el operador .NOT. en %0"
+ 
+ #~ msgid "Equality operator at %0 must operate on two subexpressions of arithmetic or character type, but neither subexpression at %1 or %2 is of arithmetic or character type"
+ #~ msgstr "El operador de igualdad en %0 debe operar en dos subexpresiones de tipo aritmético o carácter, pero ninguna subexpresión en %1 o %2 es de tipo aritmético o carácter"
+ 
+ #~ msgid "Invalid operands at %1 and %2 for equality operator at %0"
+-#~ msgstr "Operandos inválidos en %1 y %2 para el operador de igualdad en %0"
++#~ msgstr "Operandos no válidos en %1 y %2 para el operador de igualdad en %0"
+ 
+ #~ msgid "Equality operator at %0 must operate on two subexpressions of arithmetic or character type, but the subexpression at %1 is not of arithmetic or character type"
+ #~ msgstr "El operador de igualdad en %0 debe operar en dos subexpresiones de tipo aritmético o carácter, pero la subexpresión en %1 no es de tipo aritmético o carácter"
+ 
+ #~ msgid "Invalid operand at %1 for equality operator at %0"
+-#~ msgstr "Operando inválido en %1 para el operador de igualdad en %0"
++#~ msgstr "Operando no válido en %1 para el operador de igualdad en %0"
+ 
+ #~ msgid "Equality operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning arithmetic or character scalars, or a combination of both -- but the subexpression at %1 is %A"
+ #~ msgstr "El operador de igualdad en %0 debe operar en dos subexpresiones escalares (no matrices), dos invocaciones de función que devuelvan escalares aritméticos o carácter, o una combinación de ambos -- pero la subexpresión en %1 es %A"
+ 
+ #~ msgid "Invalid operand (is %A) at %1 for equality operator at %0"
+-#~ msgstr "Operando inválido (es %A) en %1 para el operador de igualdad en %0"
++#~ msgstr "Operando no válido (es %A) en %1 para el operador de igualdad en %0"
+ 
+ #~ msgid "Relational operator at %0 must operate on two subexpressions of integer, real, or character type, but neither subexpression at %1 or %2 is of integer, real, or character type"
+ #~ msgstr "El operador relacional en %0 debe operar en dos subexpresiones de tipo entero, real o carácter, pero ninguna subexpresión en %1 o %2 es de tipo entero, real, o carácter"
+ 
+ #~ msgid "Invalid operands at %1 and %2 for relational operator at %0"
+-#~ msgstr "Operandos inválidos en %1 y %2 para el operador relacional en %0"
++#~ msgstr "Operandos no válidos en %1 y %2 para el operador relacional en %0"
+ 
+ #~ msgid "Relational operator at %0 must operate on two subexpressions of integer, real, or character type, but the subexpression at %1 is not of integer, real, or character type"
+ #~ msgstr "El operador relacional en %0 debe operar en dos subexpresiones de tiop entero, real o carácter, pero la subexpresión en %1 no es de tipo entero, real o carácter"
+ 
+ #~ msgid "Invalid operand at %1 for relational operator at %0"
+-#~ msgstr "Operando inválido en %1 para el operador relacional en %0"
++#~ msgstr "Operando no válido en %1 para el operador relacional en %0"
+ 
+ #~ msgid "Relational operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning integer, real, or character scalars, or a combination of both -- but the subexpression at %1 is %A"
+ #~ msgstr "El operador relacional en %0 debe operar en dos subexpresiones escalares (no matrices), dos invocaciones de función que devuelvan escalares enteros, reales o de caracteres, o una combinación de ambos -- pero la subexpresión en %1 es %A"
+ 
+ #~ msgid "Invalid operand (is %A) at %1 for relational operator at %0"
+-#~ msgstr "Operando inválido (es %A) en %1 para el operador relacional en %0"
++#~ msgstr "Operando no válido (es %A) en %1 para el operador relacional en %0"
+ 
+ #~ msgid "Reference to intrinsic `%A' at %0 invalid -- one or more arguments have incorrect type"
+-#~ msgstr "La referencia al intrínseco `%A' en %0 es inválida -- uno o más argumentos tiene el tipo incorrecto"
++#~ msgstr "La referencia al intrínseco `%A' en %0 es no válida -- uno o más argumentos tiene el tipo incorrecto"
+ 
+ #~ msgid "Too few arguments passed to intrinsic `%A' at %0"
+ #~ msgstr "Se pasaron muy pocos argumentos al intrínseco `%A' en %0"
+@@ -77249,7 +75369,7 @@
+ #~ msgstr "Se requiere el relleno de %A %D antes de `%B' en el bloque común `%C' en %0 -- considere reordenar los miembros, primero los de tamaño de tipo más grande"
+ 
+ #~ msgid "Invalid length specification at %0 for IMPLICIT statement -- must be integer constant expression"
+-#~ msgstr "Especificación de longitud inválida en %0 para la declaración IMPLICIT -- debe ser una expresión constante entera"
++#~ msgstr "Especificación de longitud no válida en %0 para la declaración IMPLICIT -- debe ser una expresión constante entera"
+ 
+ #~ msgid "Type of ENTRY point at %0 to function conflicts with type(s) of previous entrypoint(s) -- must all be identical-length CHARACTER or none be CHARACTER type"
+ #~ msgstr "El tipo del punto ENTRY en %0 a la función tiene conflictos con el(los) tipo(s) de punto(s) de entrada previo(s) -- deben ser todos CHARACTER de longitud idéntica o ninguno debe ser de tipo CHARACTER"
+@@ -77288,7 +75408,7 @@
+ #~ msgstr "La variable DO `%A' es de tipo REAL o DOUBLE PRECISION en %0"
+ 
+ #~ msgid "Invalid actual argument at %0 -- replace hollerith constants with %%REF('string') and typeless constants with INTEGER constant equivalents, or use -fugly-args or -fugly"
+-#~ msgstr "Argumento actual inválido en %0 -- reemplace las constantes hollerith con %%REF('cadena') y las constantes sin tipo con constantes INTEGER equivalentes, o utilice -fugly-args o -fugly"
++#~ msgstr "Argumento actual no válido en %0 -- reemplace las constantes hollerith con %%REF('cadena') y las constantes sin tipo con constantes INTEGER equivalentes, o utilice -fugly-args o -fugly"
+ 
+ #~ msgid "Quadruple-precision floating-point unsupported -- treating constant at %0 as double-precision"
+ #~ msgstr "Coma flotante de precisión cuádruple sin soporte -- se tratan las constantes en %0 como de doble precisión"
+@@ -77303,7 +75423,7 @@
+ #~ msgstr "Establecer la ruta de clases y suprimir la ruta del sistema"
+ 
+ #~ msgid "invalid reference to NULL ptr, use ptr-to-member instead"
+-#~ msgstr "referencia inválida a NULL ptr, use en su lugar ptr-a-miembro"
++#~ msgstr "referencia no válida a NULL ptr, use en su lugar ptr-a-miembro"
+ 
+ #~ msgid "can't create cross-reference file `%s'"
+ #~ msgstr "no se puede crear el fichero de referencia cruzada `%s'"
 Index: gcc/po/fr.po
 ===================================================================
 --- a/src/gcc/po/fr.po	(.../tags/gcc_6_2_0_release)
@@ -68318,7 +81812,7 @@ Index: gcc/po/fr.po
 -"PO-Revision-Date: 2016-06-02 00:10+0200\n"
 -"Last-Translator: Stéphane Aulery <lkppo at free.fr>\n"
 +"POT-Creation-Date: 2016-08-19 21:03+0000\n"
-+"PO-Revision-Date: 2016-11-27 16:58+0100\n"
++"PO-Revision-Date: 2016-12-03 14:29+0100\n"
 +"Last-Translator: Frédéric Marchal <fmarchal at perso.be>\n"
  "Language-Team: French <traduc at traduc.org>\n"
  "Language: fr\n"
@@ -70344,7 +83838,7 @@ Index: gcc/po/fr.po
  
  #: params.def:757
  #, no-c-format
-@@ -2258,42 +2249,42 @@
+@@ -2258,371 +2249,362 @@
  #: params.def:768
  #, no-c-format
  msgid "Whether to use canonical types."
@@ -70391,11 +83885,455 @@ Index: gcc/po/fr.po
  #, no-c-format
  msgid "The max number of reload pseudos which are considered during spilling a non-reload pseudo."
 -msgstr ""
-+msgstr "Le nombre maximum de pseudos qui peuvent être rechargés qui doivent être considérés pendant le versage de pseudos qui ne peuvent pas être rechargés."
++msgstr "Le nombre maximum de pseudos rechargeables qui doivent être considérés pendant le versage de pseudos qui ne peuvent pas être rechargés."
  
  #: params.def:819
  #, no-c-format
-@@ -2897,8 +2888,8 @@
+ msgid "Minimal fall-through edge probability in percentage used to add BB to inheritance EBB in LRA."
+-msgstr ""
++msgstr "La probabilité minimale, en pourcents, qu'une arrête enchaîne immédiatement sur une autre pour décider d'ajouter un BB à un EBB d'héritage dans LRA."
+ 
+ #: params.def:827
+ #, no-c-format
+ msgid "The maximum ratio between array size and switch branches for a switch conversion to take place."
+-msgstr ""
++msgstr "La rapport maximum entre la taille du tableau et les branchements du switch pour qu'une conversion du switch ait lieu."
+ 
+ #: params.def:835
+ #, no-c-format
+ msgid "size of tiles for loop blocking."
+-msgstr ""
++msgstr "la taille des blocs pour le découpage de boucle en blocs (loop blocking)."
+ 
+ #: params.def:842
+ #, no-c-format
+ msgid "maximum number of parameters in a SCoP."
+-msgstr "Le nombre maximum de paramètres dans un scope."
++msgstr "le nombre maximum de paramètres dans un SCoP."
+ 
+ #: params.def:849
+ #, no-c-format
+ msgid "maximum number of basic blocks per function to be analyzed by Graphite."
+-msgstr ""
++msgstr "le nombre maximum de blocs de base par fonction à analyser par Graphite."
+ 
+ #: params.def:856
+ #, no-c-format
+ msgid "maximum number of arrays per scop."
+-msgstr "Le nombre maximum de tableaux par scope."
++msgstr "le nombre maximum de tableaux par scop."
+ 
+ #: params.def:863
+ #, no-c-format
+ msgid "minimal number of loops per function to be analyzed by Graphite."
+-msgstr ""
++msgstr "le nombre minimum de boucles par fonction à analyser par Graphite."
+ 
+ #: params.def:868
+ #, no-c-format
+ msgid "maximum number of isl operations, 0 means unlimited"
+-msgstr "Le nombre maximum d'opérations isl, 0 pour illimité"
++msgstr "le nombre maximum d'opérations isl, 0 pour illimité"
+ 
+ #: params.def:874
+ #, no-c-format
+ msgid "Maximum number of datarefs in loop for building loop data dependencies."
+-msgstr ""
++msgstr "Le nombre maximum de datarefs dans une boucle pour construire les dépendances de données de la boucle."
+ 
+ #: params.def:881
+ #, no-c-format
+ msgid "Max basic blocks number in loop for loop invariant motion."
+-msgstr ""
++msgstr "Le nombre max de blocs de base dans une boucle pour un déplacement de boucle invariant."
+ 
+ #: params.def:889
+-#, fuzzy, no-c-format
+-#| msgid "cannot find file for class %s"
++#, no-c-format
+ msgid "use internal function id in profile lookup."
+-msgstr "Ne peut repérer le fichier pour la classe %s."
++msgstr "utiliser un ID de fonction interne dans la recherche de profilage."
+ 
+ #: params.def:897
+ #, no-c-format
+ msgid "track topn target addresses in indirect-call profile."
+-msgstr ""
++msgstr "pister les N adresses cibles les plus fréquentes dans le profilage d'appels indirects."
+ 
+ #: params.def:903
+-#, fuzzy, no-c-format
+-#| msgid "The maximum number of instructions in a single function eligible for inlining"
++#, no-c-format
+ msgid "Maximum number of instructions in basic block to be considered for SLP vectorization."
+-msgstr "Le nombre maximum d'instructions dans une fonction simple éligible au type enligne"
++msgstr "Le nombre maximum d'instructions dans un bloc de base à considérer pour la vectorisation SLP."
+ 
+ #: params.def:908
+ #, no-c-format
+ msgid "Min. ratio of insns to prefetches to enable prefetching for a loop with an unknown trip count."
+-msgstr ""
++msgstr "Le rapport min entre les insns et les pré-extractions pour activer la pré-extraction dans une boucle avec un nombre inconnu d'itérations."
+ 
+ #: params.def:914
+ #, no-c-format
+ msgid "Min. ratio of insns to mem ops to enable prefetching in a loop."
+-msgstr ""
++msgstr "Le rapport min entre les insns et les opérandes mémoire pour activer la pré-extraction dans une boucle."
+ 
+ #: params.def:921
+ #, no-c-format
+ msgid "Max. size of var tracking hash tables."
+-msgstr ""
++msgstr "La taille max des tables de hachage pour le pistage des variables."
+ 
+ #: params.def:929
+ #, no-c-format
+ msgid "Max. recursion depth for expanding var tracking expressions."
+-msgstr ""
++msgstr "La profondeur de récursion max pour développer les expressions de pistage de variables."
+ 
+ #: params.def:937
+ #, no-c-format
+ msgid "Max. size of loc list for which reverse ops should be added."
+-msgstr ""
++msgstr "La taille max de la liste des emplacements pour laquelle des opérations inverses devraient être ajoutées."
+ 
+ #: params.def:944
+ #, no-c-format
+ msgid "The minimum UID to be used for a nondebug insn."
+-msgstr ""
++msgstr "Le UID minimum à utiliser pour une insn qui n'est pas pour le déboguage."
+ 
+ #: params.def:949
+ #, no-c-format
+ msgid "Maximum allowed growth of size of new parameters ipa-sra replaces a pointer to an aggregate with."
+-msgstr ""
++msgstr "La croissance maximale de la taille autorisée quand IPA-SRA remplace un pointeur vers un agrégat par de nouveaux paramètres."
+ 
+ #: params.def:955
+ #, no-c-format
+ msgid "Size in bytes after which thread-local aggregates should be instrumented with the logging functions instead of save/restore pairs."
+-msgstr ""
++msgstr "La taille en octets au delà de laquelle des agrégats locaux au thread doivent être manipulés par les fonctions de journalisation au lieu de paires de save/restore."
+ 
+ #: params.def:962
+ #, no-c-format
+ msgid "Maximum size, in storage units, of an aggregate which should be considered for scalarization when compiling for speed."
+-msgstr ""
++msgstr "La taille maximale, en unité de stockage, d'un agrégat qui devrait être considéré pour une conversion scalaire lors d'une compilation pour la vitesse."
+ 
+ #: params.def:968
+ #, no-c-format
+ msgid "Maximum size, in storage units, of an aggregate which should be considered for scalarization when compiling for size."
+-msgstr ""
++msgstr "La taille maximale, en unité de stockage, d'un agrégat qui devrait être considéré pour une conversion scalaire lors d'une compilation pour l'espace."
+ 
+ #: params.def:974
+ #, no-c-format
+ msgid "Maximum size of a list of values associated with each parameter for interprocedural constant propagation."
+-msgstr ""
++msgstr "La taille maximale d'une liste de valeurs associées à chaque paramètre pour la propagation de constantes interprocédurale."
+ 
+ #: params.def:980
+ #, no-c-format
+ msgid "Threshold ipa-cp opportunity evaluation that is still considered beneficial to clone.."
+-msgstr ""
++msgstr "Le seuil de l'évaluation de l'opportunité de IPA-CP qui est encore considérée comme bénéfique au clone."
+ 
+ #: params.def:986
+ #, no-c-format
+ msgid "Percentage penalty the recursive functions will receive when they are evaluated for cloning.."
+-msgstr ""
++msgstr "Le pourcentage de pénalité que des fonctions récursives recevront quand elles seront évaluées pour un clonage."
+ 
+ #: params.def:992
+ #, no-c-format
+ msgid "Percentage penalty functions containg a single call to another function will receive when they are evaluated for cloning.."
+-msgstr ""
++msgstr "Le pourcentage de pénalité que des fonctions contenant un unique appel à une autre fonction recevront quand elles seront évaluées pour un clonage."
+ 
+ #: params.def:998
+ #, no-c-format
+ msgid "Maximum number of aggregate content items for a parameter in jump functions and lattices."
+-msgstr ""
++msgstr "Le nombre maximum d'éléments contenus dans un agrégat d'un paramètre dans des fonctions de saut ou des maillages."
+ 
+ #: params.def:1004
+ #, no-c-format
+ msgid "Compile-time bonus IPA-CP assigns to candidates which make loop bounds or strides known.."
+-msgstr ""
++msgstr "Bonus à la compilation que IPA-CP assigne aux candidats qui rendent les limites ou les pas des boucles connus."
+ 
+ #: params.def:1010
+ #, no-c-format
+ msgid "Compile-time bonus IPA-CP assigns to candidates which make an array index known.."
+-msgstr ""
++msgstr "Bonus à la compilation que IPA-CP assigne aux candidats qui rendent connus l'index dans un tableau."
+ 
+ #: params.def:1016
+ #, no-c-format
+ msgid "Maximum number of statements that will be visited by IPA formal parameter analysis based on alias analysis in any given function."
+-msgstr ""
++msgstr "Le nombre maximum d'expressions qui seront visitées par l'analyse des paramètres formels de IPA basé sur l'analyse d'alias dans une fonction quelconque."
+ 
+ #: params.def:1024
+ #, no-c-format
+ msgid "Number of partitions the program should be split to."
+-msgstr ""
++msgstr "Le nombre de partitions dans lesquelles il faudrait scinder le programme."
+ 
+ #: params.def:1029
+ #, no-c-format
+ msgid "Minimal size of a partition for LTO (in estimated instructions)."
+-msgstr ""
++msgstr "La taille minimale d'une partition pour LTO (en instructions estimées)."
+ 
+ #: params.def:1036
+-#, fuzzy, no-c-format
+-#| msgid "The maximum number of instructions to consider to fill a delay slot"
++#, no-c-format
+ msgid "Maximum number of namespaces to search for alternatives when name lookup fails."
+-msgstr "Le nombre maximum d'instructions à considérer pour remplir une slot délai"
++msgstr "Le nombre maximum d'espaces de noms à parcourir pour chercher des alternatives quand la recherche de nom a échoué."
+ 
+ #: params.def:1043
+ #, no-c-format
+ msgid "Maximum number of conditional store pairs that can be sunk."
+-msgstr ""
++msgstr "Le nombre maximum de paires de stockage conditionnel qui peuvent être descendues."
+ 
+ #: params.def:1051
+ #, no-c-format
+ msgid "The smallest number of different values for which it is best to use a jump-table instead of a tree of conditional branches, if 0, use the default for the machine."
+-msgstr ""
++msgstr "Le plus petit nombre de valeurs différentes pour lequel il est préférable d'utiliser une table de sauts plutôt qu'un arbre de branchements conditionnels. Si 0, utilise le choix par défaut pour la machine."
+ 
+ #: params.def:1059
+ #, no-c-format
+ msgid "Allow new data races on stores to be introduced."
+-msgstr ""
++msgstr "Permet l'introduction de compétitions sur de nouvelles données durant un stockage."
+ 
+ #: params.def:1065
+ #, no-c-format
+ msgid "Set the maximum number of instructions executed in parallel in reassociated tree. If 0, use the target dependent heuristic.."
+-msgstr ""
++msgstr "Fixe le nombre maximum d'instructions exécutées en parallèle dans un arbre ré-associé. Si 0, utilise l'heuristique dépendant de la cible."
+ 
+ #: params.def:1071
+ #, no-c-format
+ msgid "Maximum amount of similar bbs to compare a bb with."
+-msgstr ""
++msgstr "La quantité maximale de bbs similaires à comparer avec un bb."
+ 
+ #: params.def:1076
+ #, no-c-format
+ msgid "Maximum amount of iterations of the pass over a function."
+-msgstr ""
++msgstr "Le nombre maximum d'itérations du passage sur une fonction."
+ 
+ #: params.def:1083
+ #, no-c-format
+ msgid "Maximum number of strings for which strlen optimization pass will track string lengths."
+-msgstr ""
++msgstr "Le nombre maximum de chaînes pour lesquelles l'optimisation de strlen conserve la longueur des chaînes."
+ 
+ #: params.def:1090
+ #, no-c-format
+ msgid "Which -fsched-pressure algorithm to apply."
+-msgstr ""
++msgstr "Quel algorithme de -fsched-pressure appliquer."
+ 
+ #: params.def:1096
+-#, fuzzy, no-c-format
+-#| msgid "Perform strength reduction optimizations"
++#, no-c-format
+ msgid "Maximum length of candidate scans for straight-line strength reduction."
+-msgstr "Exécuter un réduction en force des optimisations"
++msgstr "La longueur maximale de la recherche dans les candidats pour la simplification des instructions dupliquées lors de l'aplatissage d'une boucle (Straight-Line Strength Reduction)."
+ 
+ #: params.def:1102
+ #, no-c-format
+ msgid "Enable asan stack protection."
+-msgstr "Autoriser la protection de pile asan"
++msgstr "Autoriser ASan à protéger la pile."
+ 
+ #: params.def:1107
+ #, no-c-format
+ msgid "Enable asan globals protection."
+-msgstr "Autoriser la protection des constantes asan."
++msgstr "Autoriser ASan à protéger les globales."
+ 
+ #: params.def:1112
+-#, fuzzy, no-c-format
+-#| msgid "Enable parallel instructions"
++#, no-c-format
+ msgid "Enable asan store operations protection."
+-msgstr "Autoriser les instructions parallèles"
++msgstr "Autoriser ASan à protéger les opérations d'écriture."
+ 
+ #: params.def:1117
+-#, fuzzy, no-c-format
+-#| msgid "Enable parallel instructions"
++#, no-c-format
+ msgid "Enable asan load operations protection."
+-msgstr "Autoriser les instructions parallèles"
++msgstr "Autoriser ASan à protéger les opérations de chargement."
+ 
+ #: params.def:1122
+-#, fuzzy, no-c-format
+-#| msgid "Enable function profiling"
++#, no-c-format
+ msgid "Enable asan builtin functions protection."
+-msgstr "Autoriser le profilage de fonction"
++msgstr "Autoriser ASan à protéger les fonctions intégrées."
+ 
+ #: params.def:1127
+ #, no-c-format
+ msgid "Enable asan detection of use-after-return bugs."
+-msgstr ""
++msgstr "Autoriser la détection par ASan des bogues d'utilisation après retour."
+ 
+ #: params.def:1132
+ #, no-c-format
+ msgid "Use callbacks instead of inline code if number of accesses in function becomes greater or equal to this number."
+-msgstr ""
++msgstr "Utiliser une fonction de rappel au lieu de code en ligne si le nombre d'accès dans la fonction devient plus grand ou égal à ce nombre."
+ 
+ #: params.def:1138
+ #, no-c-format
+ msgid "Maximum number of nested calls to search for control dependencies during uninitialized variable analysis."
+-msgstr ""
++msgstr "Nombre maximum d'appels imbriqués pour rechercher une dépendance de contrôle pendant l'analyse d'une variable non initialisée."
+ 
+ #: params.def:1144
+ #, no-c-format
+ msgid "Maximum number of statements to be included into a single static constructor generated by Pointer Bounds Checker."
+-msgstr ""
++msgstr "Le nombre maximum d'expressions à inclure dans un seul constructeur statique généré par Pointer Bounds Checker."
+ 
+ #: params.def:1150
+ #, no-c-format
+ msgid "Scale factor to apply to the number of statements in a threading path when comparing to the number of (scaled) blocks."
+-msgstr ""
++msgstr "Facteur d'échelle à appliquer au nombre d'expressions dans un chemin de sauts enchaînés lors de la comparaison de blocs (mis à l'échelle)."
+ 
+ #: params.def:1155
+ #, no-c-format
+ msgid "Maximum number of arguments a PHI may have before the FSM threader will not try to thread through its block."
+-msgstr ""
++msgstr "Le nombre maximum d'arguments qu'un PHI peut avoir avant que le FSM qui est responsable de l'enchaînement arrête d'essayer d'enchaîner les sauts dans ses blocs."
+ 
+ #: params.def:1160
+ #, no-c-format
+ msgid "Scale factor to apply to the number of blocks in a threading path when comparing to the number of (scaled) statements."
+-msgstr ""
++msgstr "Facteur d'échelle à appliquer au nombre de blocs dans un chemin de sauts enchaînés lors de la comparaison avec le nombre d'expressions (mises à l'échelle)."
+ 
+ #: params.def:1165
+ #, no-c-format
+ msgid "Maximum number of instructions to copy when duplicating blocks on a finite state automaton jump thread path."
+-msgstr ""
++msgstr "Le nombre maximum d'instructions à copier en dupliquant des blocs le long du chemin de sauts enchaînés d'un automate à états finis."
+ 
+ #: params.def:1170
+ #, no-c-format
+ msgid "Maximum number of basic blocks on a finite state automaton jump thread path."
+-msgstr ""
++msgstr "Le nombre maximum de blocs de base sur le chemin de sauts enchaînés d'un automate à états finis."
+ 
+ #: params.def:1175
+-#, fuzzy, no-c-format
+-#| msgid "The maximum number of instructions to consider to fill a delay slot"
++#, no-c-format
+ msgid "Maximum number of new jump thread paths to create for a finite state automaton."
+-msgstr "Le nombre maximum d'instructions à considérer pour remplir une slot délai"
++msgstr "Le nombre maximum de nouveaux chemins pour enchaîner des sauts pour un automate à états finis."
+ 
+ #: params.def:1180
+ #, no-c-format
+ msgid "Chunk size of omp schedule for loops parallelized by parloops."
+-msgstr ""
++msgstr "Taille des fragments de l'ordonnanceur OMP pour des boucles parallélisées par parloops."
+ 
+ #: params.def:1185
+ #, no-c-format
+ msgid "Schedule type of omp schedule for loops parallelized by parloops (static, dynamic, guided, auto, runtime)."
+-msgstr ""
++msgstr "Type d'ordonnancement de l'ordonnanceur OMP pour des boucles parallélisées par parloops (static, dynamic, guided, auto, runtime)."
+ 
+ #: params.def:1192
+ #, no-c-format
+ msgid "Maximum recursion depth allowed when querying a property of an SSA name."
+-msgstr ""
++msgstr "La profondeur de récursion maximum permise en interrogeant une propriété d'un nom SSA."
+ 
+ #: params.def:1198
+-#, fuzzy, no-c-format
+-#| msgid "The maximum number of instructions in a single function eligible for inlining"
++#, no-c-format
+ msgid "Maximum number of insns in a basic block to consider for RTL if-conversion."
+-msgstr "Le nombre maximum d'instructions dans une fonction simple éligible au type enligne"
++msgstr "Le nombre maximum d'insns dans un bloc de base pour considérer une conversion du if par RTL."
+ 
+ #: params.def:1204
+ #, no-c-format
+ msgid "Level of hsa debug stores verbosity"
+-msgstr ""
++msgstr "Le niveau de verbosité des stockages de déboguage de hsa"
+ 
+ #: params.def:1209
+ #, no-c-format
+ msgid "Maximum number of may-defs visited when devirtualizing speculatively"
+-msgstr ""
++msgstr "Le nombre maximum de may-defs visités lors d'une dévirtualisation spéculative"
+ 
+ #: c-family/c-format.c:417
+ msgid "format"
+@@ -2738,7 +2720,7 @@
+ 
+ #: c-family/c-format.c:593
+ msgid "the 'q' diagnostic flag"
+-msgstr "le fanion « d » de diagnostique"
++msgstr "le fanion « q » de diagnostique"
+ 
+ #: c-family/c-format.c:606 config/i386/msformat-c.c:63
+ msgid "assignment suppression"
+@@ -2746,7 +2728,7 @@
+ 
+ #: c-family/c-format.c:606 config/i386/msformat-c.c:63
+ msgid "the assignment suppression scanf feature"
+-msgstr "options de scanf pour la suppression d'affectation"
++msgstr "la fonctionnalité de suppression d'affectation de scanf"
+ 
+ #: c-family/c-format.c:607 config/i386/msformat-c.c:64
+ msgid "'a' flag"
+@@ -2874,19 +2856,19 @@
+ 
+ #: c-family/c-format.c:660
+ msgid "left precision"
+-msgstr "précision de gauche"
++msgstr "précision à gauche"
+ 
+ #: c-family/c-format.c:660
+ msgid "left precision in strfmon format"
+-msgstr "précision de gauche dans le format de strfmon"
++msgstr "précision à gauche dans le format de strfmon"
+ 
+ #: c-family/c-format.c:661
+ msgid "right precision"
+-msgstr "précision de droite"
++msgstr "précision à droite"
+ 
+ #: c-family/c-format.c:661
+ msgid "right precision in strfmon format"
+-msgstr "précision de droite dans le format de strfmon"
++msgstr "précision à droite dans le format de strfmon"
+ 
+ #: c-family/c-format.c:662
+ msgid "length modifier in strfmon format"
+@@ -2897,11 +2879,11 @@
  msgid "<command-line>"
  msgstr "<ligne-de-commande>"
  
@@ -70405,26 +84343,52 @@ Index: gcc/po/fr.po
 +#: config/arm/arm.c:21997 config/nios2/nios2.c:2642
  #, c-format
  msgid "Unsupported operand for code '%c'"
- msgstr "opérande non supportée pour le code « %c »"
-@@ -2917,7 +2908,7 @@
+-msgstr "opérande non supportée pour le code « %c »"
++msgstr "Opérande non supporté pour le code « %c »"
+ 
+ #: config/aarch64/aarch64.c:4463 config/aarch64/aarch64.c:4479
+ #: config/aarch64/aarch64.c:4492 config/aarch64/aarch64.c:4504
+@@ -2909,18 +2891,18 @@
+ #: config/aarch64/aarch64.c:4591 config/aarch64/aarch64.c:4794
+ #, c-format
+ msgid "invalid operand for '%%%c'"
+-msgstr "opérande invalide pour « %%%c »"
++msgstr "opérande invalide pour « %%%c »"
+ 
+ #: config/aarch64/aarch64.c:4558 config/aarch64/aarch64.c:4571
+ #: config/aarch64/aarch64.c:4581
+ #, c-format
  msgid "incompatible floating point / vector register operand for '%%%c'"
- msgstr ""
+-msgstr ""
++msgstr "opérande en virgule flottante ou registre vecteur incompatible pour « %%%c »"
  
 -#: config/aarch64/aarch64.c:4627 config/arm/arm.c:22499
 +#: config/aarch64/aarch64.c:4627 config/arm/arm.c:22504
  #, c-format
  msgid "missing operand"
- msgstr "opérande manquante"
-@@ -2938,7 +2929,7 @@
- msgstr "préfixe d'opérande invalide « %%%c »"
+-msgstr "opérande manquante"
++msgstr "opérande manquant"
+ 
+ #: config/aarch64/aarch64.c:4689
+ #, c-format
+@@ -2935,13 +2917,13 @@
+ #: config/aarch64/aarch64.c:4805
+ #, c-format
+ msgid "invalid operand prefix '%%%c'"
+-msgstr "préfixe d'opérande invalide « %%%c »"
++msgstr "préfixe d'opérande invalide « %%%c »"
  
  #: config/alpha/alpha.c:5102 config/i386/i386.c:17140
 -#: config/rs6000/rs6000.c:20285 config/sparc/sparc.c:8649
 +#: config/rs6000/rs6000.c:21150 config/sparc/sparc.c:8749
  #, c-format
  msgid "'%%&' used without any local dynamic TLS references"
- msgstr ""
-@@ -2954,18 +2945,18 @@
+-msgstr ""
++msgstr "« %%& » utilisé sans référence à un TLS dynamique local"
+ 
+ #: config/alpha/alpha.c:5160 config/bfin/bfin.c:1423
+ #, c-format
+@@ -2954,18 +2936,18 @@
  msgstr "valeur %%r invalide"
  
  #: config/alpha/alpha.c:5200 config/ia64/ia64.c:5436
@@ -70446,7 +84410,7 @@ Index: gcc/po/fr.po
  #, c-format
  msgid "invalid %%P value"
  msgstr "valeur %%P invalide"
-@@ -2996,7 +2987,7 @@
+@@ -2996,7 +2978,7 @@
  msgstr "valeur %%U invalide"
  
  #: config/alpha/alpha.c:5300 config/alpha/alpha.c:5311
@@ -70455,7 +84419,7 @@ Index: gcc/po/fr.po
  #, c-format
  msgid "invalid %%s value"
  msgstr "valeur %%s invalide"
-@@ -3006,7 +2997,7 @@
+@@ -3006,7 +2988,7 @@
  msgid "invalid %%C value"
  msgstr "valeur %%C invalide"
  
@@ -70464,7 +84428,7 @@ Index: gcc/po/fr.po
  #, c-format
  msgid "invalid %%E value"
  msgstr "valeur %%E invalide"
-@@ -3017,7 +3008,7 @@
+@@ -3017,7 +2999,7 @@
  msgstr "relocalisation unspec inconnue"
  
  #: config/alpha/alpha.c:5393 config/cr16/cr16.c:1531
@@ -70473,7 +84437,7 @@ Index: gcc/po/fr.po
  #, c-format
  msgid "invalid %%xn code"
  msgstr "valeur %%xn invalide"
-@@ -3070,7 +3061,7 @@
+@@ -3070,7 +3052,7 @@
  #. Unknown flag.
  #. Undocumented flag.
  #: config/arc/arc.c:3312 config/epiphany/epiphany.c:1286
@@ -70482,7 +84446,7 @@ Index: gcc/po/fr.po
  #, c-format
  msgid "invalid operand output code"
  msgstr "opérande invalide pour le code de sortie"
-@@ -3080,31 +3071,31 @@
+@@ -3080,31 +3062,29 @@
  msgid "invalid UNSPEC as operand: %d"
  msgstr "UNSPEC invalide comme opérande : %d"
  
@@ -70495,18 +84459,22 @@ Index: gcc/po/fr.po
  msgstr "opérande shift invalide"
  
 -#: config/arm/arm.c:21830 config/arm/arm.c:21848
+-#, fuzzy, c-format
+-#| msgid "Generate char instructions"
 +#: config/arm/arm.c:21835 config/arm/arm.c:21853
- #, fuzzy, c-format
- #| msgid "Generate char instructions"
++#, c-format
  msgid "predicated Thumb instruction"
- msgstr "Générer des instructions « char »"
+-msgstr "Générer des instructions « char »"
++msgstr "instruction Thumb établie"
  
 -#: config/arm/arm.c:21836
+-#, fuzzy, c-format
+-#| msgid "ret instruction not implemented"
 +#: config/arm/arm.c:21841
- #, fuzzy, c-format
- #| msgid "ret instruction not implemented"
++#, c-format
  msgid "predicated instruction in conditional sequence"
- msgstr "instruction ret n'est pas implantée"
+-msgstr "instruction ret n'est pas implantée"
++msgstr "instruction établie dans la séquence conditionnelle"
  
 -#: config/arm/arm.c:22069 config/arm/arm.c:22091 config/arm/arm.c:22101
 -#: config/arm/arm.c:22111 config/arm/arm.c:22121 config/arm/arm.c:22160
@@ -70525,7 +84493,7 @@ Index: gcc/po/fr.po
  #: config/bfin/bfin.c:1443 config/bfin/bfin.c:1450 config/bfin/bfin.c:1457
  #: config/bfin/bfin.c:1466 config/bfin/bfin.c:1473 config/bfin/bfin.c:1480
  #: config/bfin/bfin.c:1487
-@@ -3113,102 +3104,102 @@
+@@ -3113,114 +3093,100 @@
  msgstr "opérande invalide pour « %c »"
  
  # FIXME: c'est de l'assembleur ?
@@ -70540,77 +84508,90 @@ Index: gcc/po/fr.po
 +#: config/arm/arm.c:22199
  #, c-format
  msgid "obsolete Maverick format code '%c'"
- msgstr ""
+-msgstr ""
++msgstr "code de format Maverick « %c » obsolète"
  
 -#: config/arm/arm.c:23613
+-#, fuzzy
+-#| msgid "function returns an aggregate"
 +#: config/arm/arm.c:23618
- #, fuzzy
- #| msgid "function returns an aggregate"
  msgid "function parameters cannot have __fp16 type"
- msgstr "fonction retourne un agrégat"
+-msgstr "fonction retourne un agrégat"
++msgstr "les paramètres de fonction ne peuvent pas avoir le type __fp16"
  
 -#: config/arm/arm.c:23623
+-#, fuzzy
+-#| msgid "function does not return string type"
 +#: config/arm/arm.c:23628
- #, fuzzy
- #| msgid "function does not return string type"
  msgid "functions cannot return __fp16 type"
- msgstr "fonction ne retourne pas un type « string »"
+-msgstr "fonction ne retourne pas un type « string »"
++msgstr "les fonctions ne peuvent pas retourner le type __fp16"
  
 -#: config/avr/avr.c:2127
+-#, fuzzy, c-format
+-#| msgid "read-write constraint does not allow a register"
 +#: config/avr/avr.c:2124
- #, fuzzy, c-format
- #| msgid "read-write constraint does not allow a register"
++#, c-format
  msgid "address operand requires constraint for X, Y, or Z register"
- msgstr "contrainte de lecture-écriture ne permet pas de registre"
+-msgstr "contrainte de lecture-écriture ne permet pas de registre"
++msgstr "l'opérande d'adresse requiert une contrainte sur le registre X, Y ou Z"
  
 -#: config/avr/avr.c:2285
+-#, fuzzy
+-#| msgid "output operand %d must use `&' constraint"
 +#: config/avr/avr.c:2282
- #, fuzzy
- #| msgid "output operand %d must use `&' constraint"
  msgid "operands to %T/%t must be reg + const_int:"
- msgstr "opérande de sortie %d doit utiliser la contrainte « & »"
+-msgstr "opérande de sortie %d doit utiliser la contrainte « & »"
++msgstr "les opérandes de %T/%t doivent être reg + const_int:"
  
 -#: config/avr/avr.c:2335 config/avr/avr.c:2402
+-#, fuzzy
+-#| msgid "bad address, not (reg+disp):"
 +#: config/avr/avr.c:2332 config/avr/avr.c:2399
- #, fuzzy
- #| msgid "bad address, not (reg+disp):"
  msgid "bad address, not an I/O address:"
- msgstr "adresse erronée, pas (reg+disp):"
+-msgstr "adresse erronée, pas (reg+disp):"
++msgstr "mauvaise adresse, pas une adresse E/S:"
  
 -#: config/avr/avr.c:2344
+-#, fuzzy
+-#| msgid "address offset not a constant"
 +#: config/avr/avr.c:2341
- #, fuzzy
- #| msgid "address offset not a constant"
  msgid "bad address, not a constant:"
- msgstr "décalage d'adresse n'est pas une constante"
+-msgstr "décalage d'adresse n'est pas une constante"
++msgstr "mauvaise adresse, pas une constante:"
  
 -#: config/avr/avr.c:2362 config/avr/avr.c:2369
 +#: config/avr/avr.c:2359 config/avr/avr.c:2366
  msgid "bad address, not (reg+disp):"
- msgstr "adresse erronée, pas (reg+disp):"
+-msgstr "adresse erronée, pas (reg+disp):"
++msgstr "mauvaise adresse, pas (reg+disp):"
  
 -#: config/avr/avr.c:2376
+-#, fuzzy
+-#| msgid "bad address, not (reg+disp):"
 +#: config/avr/avr.c:2373
- #, fuzzy
- #| msgid "bad address, not (reg+disp):"
  msgid "bad address, not post_inc or pre_dec:"
- msgstr "adresse erronée, pas (reg+disp):"
+-msgstr "adresse erronée, pas (reg+disp):"
++msgstr "mauvaise adresse, pas post_inc ou pre_dec:"
  
 -#: config/avr/avr.c:2388
 +#: config/avr/avr.c:2385
  msgid "internal compiler error.  Bad address:"
- msgstr "erreur internal du compilateur. Adresse erronée:"
+-msgstr "erreur internal du compilateur. Adresse erronée:"
++msgstr "erreur interne du compilateur. Mauvaise adresse:"
  
 -#: config/avr/avr.c:2421
 +#: config/avr/avr.c:2418
  #, c-format
  msgid "Unsupported code '%c' for fixed-point:"
- msgstr ""
+-msgstr ""
++msgstr "Code « %c » non supporté en virgule fixe:"
  
 -#: config/avr/avr.c:2429
 +#: config/avr/avr.c:2426
  msgid "internal compiler error.  Unknown mode:"
- msgstr "erreur internal du compilateur. Mode inconnu:"
+-msgstr "erreur internal du compilateur. Mode inconnu:"
++msgstr "erreur interne du compilateur. Mode inconnu:"
  
 -#: config/avr/avr.c:3422 config/avr/avr.c:4352 config/avr/avr.c:4801
 +#: config/avr/avr.c:3419 config/avr/avr.c:4349 config/avr/avr.c:4798
@@ -70626,7 +84607,8 @@ Index: gcc/po/fr.po
 +#: config/avr/avr.c:4201 config/avr/avr.c:4485 config/avr/avr.c:4691
 +#: config/avr/avr.c:4855 config/avr/avr.c:4949 config/avr/avr.c:5145
  msgid "incorrect insn:"
- msgstr "insn incorrect :"
+-msgstr "insn incorrect :"
++msgstr "insn incorrecte :"
  
 -#: config/avr/avr.c:3720 config/avr/avr.c:3995 config/avr/avr.c:4275
 -#: config/avr/avr.c:4560 config/avr/avr.c:4740 config/avr/avr.c:5008
@@ -70635,24 +84617,54 @@ Index: gcc/po/fr.po
 +#: config/avr/avr.c:4557 config/avr/avr.c:4737 config/avr/avr.c:5005
 +#: config/avr/avr.c:5203
  msgid "unknown move insn:"
- msgstr "insn de déplacement inconnu :"
+-msgstr "insn de déplacement inconnu :"
++msgstr "insn de déplacement inconnue :"
  
 -#: config/avr/avr.c:5637
 +#: config/avr/avr.c:5634
  msgid "bad shift insn:"
- msgstr "décalage insn erroné :"
+-msgstr "décalage insn erroné :"
++msgstr "insn de décalage erronée :"
  
 -#: config/avr/avr.c:5745 config/avr/avr.c:6226 config/avr/avr.c:6641
 +#: config/avr/avr.c:5742 config/avr/avr.c:6223 config/avr/avr.c:6638
  msgid "internal compiler error.  Incorrect shift:"
- msgstr "erreur internal du compilateur. Décalage incorrect:"
+-msgstr "erreur internal du compilateur. Décalage incorrect:"
++msgstr "erreur interne du compilateur. Décalage incorrect:"
  
 -#: config/avr/avr.c:7978
+-#, fuzzy
+-#| msgid "unsupported version"
 +#: config/avr/avr.c:7975
- #, fuzzy
- #| msgid "unsupported version"
  msgid "unsupported fixed-point conversion"
-@@ -3241,8 +3232,8 @@
+-msgstr "version non reconnue"
++msgstr "conversion en virgule fixe non supportée"
+ 
+ #: config/avr/driver-avr.c:71
+-#, fuzzy, c-format
+-#| msgid "unknown spec function `%s'"
++#, c-format
+ msgid ""
+ "Running spec function '%s' with %d args\n"
+ "\n"
+-msgstr "spécification de fonction inconnue « %s »:"
++msgstr ""
++"Exécution de la fonction spec « %s » avec %d args\n"
++"\n"
+ 
+ #: config/avr/driver-avr.c:118
+ #, c-format
+@@ -3229,6 +3195,9 @@
+ "'%s': specfile='%s'\n"
+ "\n"
+ msgstr ""
++"« %s »: mmcu=« %s »\n"
++"« %s »: specfile=« %s »\n"
++"\n"
+ 
+ #: config/bfin/bfin.c:1385
+ #, c-format
+@@ -3241,8 +3210,8 @@
  msgstr "opérande const_double invalide"
  
  #: config/cris/cris.c:612 config/ft32/ft32.c:104 config/moxie/moxie.c:103
@@ -70663,7 +84675,261 @@ Index: gcc/po/fr.po
  #: tree-ssa-loop-niter.c:2328 tree-vrp.c:7480 cp/typeck.c:6065 java/expr.c:382
  #: lto/lto-object.c:184 lto/lto-object.c:281 lto/lto-object.c:338
  #: lto/lto-object.c:362
-@@ -3558,7 +3549,7 @@
+@@ -3263,16 +3232,12 @@
+ msgstr "opérande invalide pour le modificateur « b »"
+ 
+ #: config/cris/cris.c:761
+-#, fuzzy
+-#| msgid "invalid operand for 'b' modifier"
+ msgid "invalid operand for 'o' modifier"
+-msgstr "opérande invalide pour le modificateur « b »"
++msgstr "opérande invalide pour le modificateur « o »"
+ 
+ #: config/cris/cris.c:780
+-#, fuzzy
+-#| msgid "invalid operand for 'b' modifier"
+ msgid "invalid operand for 'O' modifier"
+-msgstr "opérande invalide pour le modificateur « b »"
++msgstr "opérande invalide pour le modificateur « O »"
+ 
+ #: config/cris/cris.c:813
+ msgid "invalid operand for 'p' modifier"
+@@ -3288,7 +3253,7 @@
+ 
+ #: config/cris/cris.c:926
+ msgid "bad register"
+-msgstr "registre erroné"
++msgstr "mauvais registre"
+ 
+ #: config/cris/cris.c:970
+ msgid "invalid operand for 'e' modifier"
+@@ -3312,15 +3277,15 @@
+ 
+ #: config/cris/cris.c:1116 config/ft32/ft32.c:230 config/moxie/moxie.c:173
+ msgid "invalid operand modifier letter"
+-msgstr "opérande invalide pour le modificateur de lettre"
++msgstr "lettre de modificateur d'opérande invalide"
+ 
+ #: config/cris/cris.c:1170
+ msgid "unexpected multiplicative operand"
+-msgstr "opérande multiplicative inattendue"
++msgstr "opérande multiplicatif inattendu"
+ 
+ #: config/cris/cris.c:1190 config/ft32/ft32.c:253 config/moxie/moxie.c:198
+ msgid "unexpected operand"
+-msgstr "opérande inattendue"
++msgstr "opérande inattendu"
+ 
+ #: config/cris/cris.c:1229 config/cris/cris.c:1239
+ msgid "unrecognized address"
+@@ -3328,21 +3293,21 @@
+ 
+ #: config/cris/cris.c:2559
+ msgid "unrecognized supposed constant"
+-msgstr "supposée constante non reconnue"
++msgstr "constante supposée non reconnue"
+ 
+ #: config/cris/cris.c:2958 config/cris/cris.c:3016
+ msgid "unexpected side-effects in address"
+-msgstr "effets de bord inattendue dans l'adresse"
++msgstr "effets de bord inattendus dans l'adresse"
+ 
+ #. Can't possibly get anything else for a function-call, right?
+ #: config/cris/cris.c:3844
+ msgid "unidentifiable call op"
+-msgstr ""
++msgstr "opérande d'appel non identifiable"
+ 
+ #: config/cris/cris.c:3906
+ #, c-format
+ msgid "PIC register isn't set up"
+-msgstr "le registre n'est pas initialisé"
++msgstr "le registre PIC n'est pas initialisé"
+ 
+ #: config/fr30/fr30.c:496
+ #, c-format
+@@ -3352,12 +3317,12 @@
+ #: config/fr30/fr30.c:520
+ #, c-format
+ msgid "fr30_print_operand: unrecognized %%p code"
+-msgstr "fr30_print_operand: code %%p non reconnue"
++msgstr "fr30_print_operand: code %%p non reconnu"
+ 
+ #: config/fr30/fr30.c:540
+ #, c-format
+ msgid "fr30_print_operand: unrecognized %%b code"
+-msgstr "fr30_print_operand: code %%b non reconnue"
++msgstr "fr30_print_operand: code %%b non reconnu"
+ 
+ #: config/fr30/fr30.c:561
+ #, c-format
+@@ -3367,7 +3332,7 @@
+ #: config/fr30/fr30.c:569
+ #, c-format
+ msgid "fr30_print_operand: invalid operand to %%A code"
+-msgstr "fr30_print_operand: opérande invalide pour code %%A"
++msgstr "fr30_print_operand: opérande invalide pour le code %%A"
+ 
+ #: config/fr30/fr30.c:586
+ #, c-format
+@@ -3391,23 +3356,17 @@
+ msgstr "fr30_print_operand: MEM non traité"
+ 
+ #: config/frv/frv.c:2507
+-#, fuzzy
+-#| msgid "Bad insn to frv_print_operand_address:"
+ msgid "bad insn to frv_print_operand_address:"
+-msgstr "insn erroné pour frv_print_operand_addresse:"
++msgstr "mauvaise insn pour frv_print_operand_addresse:"
+ 
+ #: config/frv/frv.c:2518
+-#, fuzzy
+-#| msgid "Bad register to frv_print_operand_memory_reference_reg:"
+ msgid "bad register to frv_print_operand_memory_reference_reg:"
+-msgstr "registre erroné pour frv_print_operand_memory_reference_reg:"
++msgstr "mauvais registre pour frv_print_operand_memory_reference_reg:"
+ 
+ #: config/frv/frv.c:2557 config/frv/frv.c:2567 config/frv/frv.c:2576
+ #: config/frv/frv.c:2597 config/frv/frv.c:2602
+-#, fuzzy
+-#| msgid "Bad insn to frv_print_operand_memory_reference:"
+ msgid "bad insn to frv_print_operand_memory_reference:"
+-msgstr "insn erroné pour frv_print_operand_memory_reference:"
++msgstr "mauvaise insn pour frv_print_operand_memory_reference:"
+ 
+ #: config/frv/frv.c:2688
+ #, c-format
+@@ -3415,70 +3374,48 @@
+ msgstr "mauvais code de condition"
+ 
+ #: config/frv/frv.c:2762
+-#, fuzzy
+-#| msgid "Bad insn in frv_print_operand, bad const_double"
+ msgid "bad insn in frv_print_operand, bad const_double"
+-msgstr "insn erroné dans frv_print_operand, bad const_double"
++msgstr "mauvaise insn dans frv_print_operand, mauvais const_double"
+ 
+ #: config/frv/frv.c:2823
+-#, fuzzy
+-#| msgid "Bad insn to frv_print_operand, 'e' modifier:"
+ msgid "bad insn to frv_print_operand, 'e' modifier:"
+-msgstr "insn erroné pour frv_print_operand, modificateur « e »:"
++msgstr "mauvaise insn pour frv_print_operand, modificateur « e »:"
+ 
+ #: config/frv/frv.c:2831
+-#, fuzzy
+-#| msgid "Bad insn to frv_print_operand, 'F' modifier:"
+ msgid "bad insn to frv_print_operand, 'F' modifier:"
+-msgstr "insn erroné pour frv_print_operand, modificateur « F »:"
++msgstr "mauvaise insn pour frv_print_operand, modificateur « F »:"
+ 
+ #: config/frv/frv.c:2847
+-#, fuzzy
+-#| msgid "Bad insn to frv_print_operand, 'f' modifier:"
+ msgid "bad insn to frv_print_operand, 'f' modifier:"
+-msgstr "insn erroné pour frv_print_operand, modificateur « f »:"
++msgstr "mauvaise insn pour frv_print_operand, modificateur « f »:"
+ 
+ #: config/frv/frv.c:2861
+-#, fuzzy
+-#| msgid "Bad insn to frv_print_operand, 'C' modifier:"
+ msgid "bad insn to frv_print_operand, 'g' modifier:"
+-msgstr "insn erroné pour frv_print_operand, modificateur « C »:"
++msgstr "mauvaise insn pour frv_print_operand, modificateur « g »:"
+ 
+ #: config/frv/frv.c:2909
+-#, fuzzy
+-#| msgid "Bad insn to frv_print_operand, 'L' modifier:"
+ msgid "bad insn to frv_print_operand, 'L' modifier:"
+-msgstr "insn erroné pour frv_print_operand, modificateur « L »:"
++msgstr "mauvaise insn pour frv_print_operand, modificateur « L »:"
+ 
+ #: config/frv/frv.c:2922
+-#, fuzzy
+-#| msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+ msgid "bad insn to frv_print_operand, 'M/N' modifier:"
+-msgstr "insn erroné pour frv_print_operand, modificateur « M/N »:"
++msgstr "mauvaise insn pour frv_print_operand, modificateur « M/N »:"
+ 
+ #: config/frv/frv.c:2943
+-#, fuzzy
+-#| msgid "Bad insn to frv_print_operand, 'O' modifier:"
+ msgid "bad insn to frv_print_operand, 'O' modifier:"
+-msgstr "insn erroné pour frv_print_operand, modificateur « O »:"
++msgstr "mauvaise insn pour frv_print_operand, modificateur « O »:"
+ 
+ #: config/frv/frv.c:2961
+-#, fuzzy
+-#| msgid "Bad insn to frv_print_operand, P modifier:"
+ msgid "bad insn to frv_print_operand, P modifier:"
+-msgstr "insn erroné pour frv_print_operand, modificateur « P »:"
++msgstr "mauvaise insn pour frv_print_operand, modificateur « P »:"
+ 
+ #: config/frv/frv.c:2981
+-#, fuzzy
+-#| msgid "Bad insn in frv_print_operand, z case"
+ msgid "bad insn in frv_print_operand, z case"
+-msgstr "insn erroné dans frv_print_operand, case z"
++msgstr "mauvaise insn dans frv_print_operand, case z"
+ 
+ #: config/frv/frv.c:3012
+-#, fuzzy
+-#| msgid "Bad insn in frv_print_operand, 0 case"
+ msgid "bad insn in frv_print_operand, 0 case"
+-msgstr "insn erroné dans frv_print_operand, case 0"
++msgstr "mauvaise insn dans frv_print_operand, case 0"
+ 
+ #: config/frv/frv.c:3017
+ msgid "frv_print_operand: unknown code"
+@@ -3485,22 +3422,16 @@
+ msgstr "frv_print_operand: code inconnu"
+ 
+ #: config/frv/frv.c:4421
+-#, fuzzy
+-#| msgid "Bad output_move_single operand"
+ msgid "bad output_move_single operand"
+-msgstr "opérande output_move_single erronée"
++msgstr "mauvais opérande output_move_single"
+ 
+ #: config/frv/frv.c:4548
+-#, fuzzy
+-#| msgid "Bad output_move_double operand"
+ msgid "bad output_move_double operand"
+-msgstr "opérande output_move_double erronée"
++msgstr "mauvais opérande output_move_double"
+ 
+ #: config/frv/frv.c:4690
+-#, fuzzy
+-#| msgid "Bad output_condmove_single operand"
+ msgid "bad output_condmove_single operand"
+-msgstr "opérande output_condmove_single erronée"
++msgstr "mauvais opérande output_condmove_single"
+ 
+ #: config/i386/i386.c:16060
+ #, c-format
+@@ -3525,7 +3456,7 @@
+ #: config/i386/i386.c:16874
+ #, c-format
+ msgid "invalid operand size for operand code 'Z'"
+-msgstr "taille opérande invalide pour le code d'opérande « Z »"
++msgstr "taille d'opérande invalide pour le code d'opérande « Z »"
+ 
+ #: config/i386/i386.c:16950
+ #, c-format
+@@ -3543,10 +3474,9 @@
+ msgstr "l'opérande n'est pas du code de condition, code d'opérande invalide « %c »"
+ 
+ #: config/i386/i386.c:17053
+-#, fuzzy, c-format
+-#| msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
++#, c-format
+ msgid "operand is not an offsettable memory reference, invalid operand code 'H'"
+-msgstr "l'opérande n'est ni une constante ni du code de condition, code d'opérande invalide « c »"
++msgstr "l'opérande n'est pas une référence mémoire avec décalage, code d'opérande invalide « H »"
+ 
+ #: config/i386/i386.c:17218
+ #, c-format
+@@ -3558,15 +3488,14 @@
  msgid "invalid constraints for operand"
  msgstr "contrainte invalide pour l'opérande"
  
@@ -70672,7 +84938,17 @@ Index: gcc/po/fr.po
  msgid "unknown insn mode"
  msgstr "mode insn inconnu"
  
-@@ -3604,7 +3595,7 @@
+ #: config/i386/djgpp.h:146
+-#, fuzzy, c-format
+-#| msgid "-f%s not supported: ignored"
++#, c-format
+ msgid "-f%s ignored (not supported for DJGPP)\n"
+-msgstr "-f%s n'est pas supporté: ignoré"
++msgstr "-f%s ignoré (pas supporté par DJGPP)\n"
+ 
+ #: config/i386/i386-interix.h:77
+ msgid "Use native (MS) bitfield layout"
+@@ -3604,7 +3533,7 @@
  msgid "invalid %%P operand"
  msgstr "opérande %%P invalide"
  
@@ -70681,23 +84957,157 @@ Index: gcc/po/fr.po
  #, c-format
  msgid "invalid %%p value"
  msgstr "valeur %%p invalide"
-@@ -3668,7 +3659,7 @@
- msgstr "post-incrément d'adresse n'est pas un registre"
+@@ -3617,15 +3546,15 @@
+ #: config/lm32/lm32.c:507
+ #, c-format
+ msgid "only 0.0 can be loaded as an immediate"
+-msgstr ""
++msgstr "seul 0.0 peut être chargé comme valeur immédiate"
+ 
+ #: config/lm32/lm32.c:577
+ msgid "bad operand"
+-msgstr "opérande erronée"
++msgstr "mauvais opérande"
+ 
+ #: config/lm32/lm32.c:589
+ msgid "can't use non gp relative absolute address"
+-msgstr ""
++msgstr "impossible d'utiliser une adresse absolue pas relative à gp"
+ 
+ #: config/lm32/lm32.c:593
+ msgid "invalid addressing mode"
+@@ -3643,7 +3572,7 @@
+ 
+ #: config/m32r/m32r.c:2137
+ msgid "bad insn for 'A'"
+-msgstr "insn erroné pour « A »"
++msgstr "mauvaise insn pour « A »"
+ 
+ #: config/m32r/m32r.c:2184
+ #, c-format
+@@ -3657,20 +3586,20 @@
+ 
+ #: config/m32r/m32r.c:2240
+ msgid "pre-increment address is not a register"
+-msgstr "pré-incrément d'adresse n'est pas un registre"
++msgstr "le pré-incrément d'adresse n'est pas un registre"
+ 
+ #: config/m32r/m32r.c:2247
+ msgid "pre-decrement address is not a register"
+-msgstr "pré-décrément d'adresse n'est pas un registre"
++msgstr "le pré-décrément d'adresse n'est pas un registre"
+ 
+ #: config/m32r/m32r.c:2254
+ msgid "post-increment address is not a register"
+-msgstr "post-incrément d'adresse n'est pas un registre"
++msgstr "le post-incrément d'adresse n'est pas un registre"
  
  #: config/m32r/m32r.c:2328 config/m32r/m32r.c:2343
 -#: config/rs6000/rs6000.c:31278
 +#: config/rs6000/rs6000.c:32640
  msgid "bad address"
- msgstr "adresse erronée"
+-msgstr "adresse erronée"
++msgstr "mauvaise adresse"
+ 
+ #: config/m32r/m32r.c:2348
+ msgid "lo_sum not of register"
+@@ -3694,12 +3623,12 @@
+ #: config/microblaze/microblaze.c:2234
+ #, c-format
+ msgid "PRINT_OPERAND, invalid insn for %%C"
+-msgstr "PRINT_OPERAND insn invalide pour %%C"
++msgstr "PRINT_OPERAND, insn invalide pour %%C"
+ 
+ #: config/microblaze/microblaze.c:2263
+ #, c-format
+ msgid "PRINT_OPERAND, invalid insn for %%N"
+-msgstr "PRINT_OPERAND insn invalide pour %%N"
++msgstr "PRINT_OPERAND, insn invalide pour %%N"
+ 
+ #: config/microblaze/microblaze.c:2283 config/microblaze/microblaze.c:2458
+ msgid "insn contains an invalid address !"
+@@ -3729,44 +3658,44 @@
+ 
+ #: config/mmix/mmix.c:1547 config/mmix/mmix.c:1677
+ msgid "MMIX Internal: Expected a CONST_INT, not this"
+-msgstr "MMIX interne: attendait CONST_INT, pas ceci"
++msgstr "MMIX interne: Attendait CONST_INT, pas ceci"
+ 
+ #: config/mmix/mmix.c:1626
+ msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
+-msgstr "MMIX interne: valeur erronée pour « m », pas un CONST_INT"
++msgstr "MMIX interne: Valeur erronée pour « m », pas un CONST_INT"
+ 
+ #: config/mmix/mmix.c:1645
+ msgid "MMIX Internal: Expected a register, not this"
+-msgstr "MMIX interne: attendait un registre, pas ceci"
++msgstr "MMIX interne: Attendait un registre, pas ceci"
+ 
+ #: config/mmix/mmix.c:1655
+ msgid "MMIX Internal: Expected a constant, not this"
+-msgstr "MMIX interne: attendait une constante, pas ceci"
++msgstr "MMIX interne: Attendait une constante, pas ceci"
+ 
+ #. We need the original here.
+ #: config/mmix/mmix.c:1739
+ msgid "MMIX Internal: Cannot decode this operand"
+-msgstr "MMIX interne: ne peut décoder cette opérande"
++msgstr "MMIX interne: Ne peut décoder cet opérande"
+ 
+ #: config/mmix/mmix.c:1795
+ msgid "MMIX Internal: This is not a recognized address"
+-msgstr "MMIX interne: ce n'est pas une adresse reconnue"
++msgstr "MMIX interne: Ce n'est pas une adresse reconnue"
+ 
+ #: config/mmix/mmix.c:2671
+ msgid "MMIX Internal: Trying to output invalidly reversed condition:"
+-msgstr "MMIX interne: tentative de produire incorrectement une condition renversée:"
++msgstr "MMIX interne: Tentative de produire une condition incorrectement inversée:"
+ 
+ #: config/mmix/mmix.c:2678
+ msgid "MMIX Internal: What's the CC of this?"
+-msgstr "MMIX interne: quel sorte de CC est-ce?"
++msgstr "MMIX interne: Quel est le CC de ceci ?"
+ 
+ #: config/mmix/mmix.c:2682
+ msgid "MMIX Internal: What is the CC of this?"
+-msgstr "MMIX interne: quel sorte de CC est-ce?"
++msgstr "MMIX interne: Quel est le CC de ceci ?"
+ 
+ #: config/mmix/mmix.c:2724
+ msgid "MMIX Internal: This is not a constant:"
+-msgstr "interne MMIX: ce n'est pas une constante:"
++msgstr "MMIX interne: Ce n'est pas une constante:"
+ 
+ #: config/msp430/msp430.c:3609
+ #, c-format
+@@ -3776,12 +3705,12 @@
+ #: config/msp430/msp430.c:3643
+ #, c-format
+ msgid "invalid zero extract"
+-msgstr ""
++msgstr "« zero extract » invalide"
  
-@@ -3793,293 +3784,293 @@
+ #: config/rl78/rl78.c:1797 config/rl78/rl78.c:1883
+ #, c-format
+ msgid "q/Q modifiers invalid for symbol references"
+-msgstr ""
++msgstr "modificateurs q/Q invalides pour des références de symboles"
+ 
+ #: config/rs6000/host-darwin.c:94
+ #, c-format
+@@ -3791,297 +3720,281 @@
+ #: config/rs6000/host-darwin.c:115
+ #, c-format
  msgid "Try running '%s' in the shell to raise its limit.\n"
- msgstr "Essayer d'exécuter « %s » dans le shell pour augmenter la limite.\n"
+-msgstr "Essayer d'exécuter « %s » dans le shell pour augmenter la limite.\n"
++msgstr "Essayez d'exécuter « %s » dans le shell pour augmenter sa limite.\n"
  
 -#: config/rs6000/rs6000.c:3922
 +#: config/rs6000/rs6000.c:3959
  msgid "-maltivec=le not allowed for big-endian targets"
- msgstr ""
+-msgstr ""
++msgstr "-maltivec=le pas permis pour des cibles gros-boutistes"
  
 -#: config/rs6000/rs6000.c:3934
 +#: config/rs6000/rs6000.c:3971
@@ -70707,7 +85117,8 @@ Index: gcc/po/fr.po
 -#: config/rs6000/rs6000.c:3942
 +#: config/rs6000/rs6000.c:3979
  msgid "-mvsx and -mpaired are incompatible"
- msgstr "-mvsx et -mpaired -msystem-v sont incompatibles"
+-msgstr "-mvsx et -mpaired -msystem-v sont incompatibles"
++msgstr "-mvsx et -mpaired sont incompatibles"
  
 -#: config/rs6000/rs6000.c:3944
 +#: config/rs6000/rs6000.c:3981
@@ -70732,34 +85143,40 @@ Index: gcc/po/fr.po
 -#: config/rs6000/rs6000.c:4094
 +#: config/rs6000/rs6000.c:4132
  msgid "-mquad-memory-atomic requires 64-bit mode"
- msgstr ""
+-msgstr ""
++msgstr "-mquad-memory-atomic requiert le mode 64 bits"
  
 -#: config/rs6000/rs6000.c:4106
 +#: config/rs6000/rs6000.c:4144
  msgid "-mquad-memory is not available in little endian mode"
- msgstr ""
+-msgstr ""
++msgstr "-mquad-memory n'est pas disponible en mode petit-boutiste"
  
 -#: config/rs6000/rs6000.c:4174
+-#, fuzzy
+-#| msgid "-mquad-memory requires 64-bit mode"
 +#: config/rs6000/rs6000.c:4212
- #, fuzzy
- #| msgid "-mquad-memory requires 64-bit mode"
  msgid "-mtoc-fusion requires 64-bit"
- msgstr "-mquad-memory requiert le mode 64 bits"
+-msgstr "-mquad-memory requiert le mode 64 bits"
++msgstr "-mtoc-fusion requiert le mode 64 bits"
  
 -#: config/rs6000/rs6000.c:4181
 +#: config/rs6000/rs6000.c:4219
  msgid "-mtoc-fusion requires medium/large code model"
- msgstr ""
+-msgstr ""
++msgstr "-mtoc-fusion requiert le modèle de code moyen/large"
  
 -#: config/rs6000/rs6000.c:9505
 +#: config/rs6000/rs6000.c:9919
  msgid "bad move"
- msgstr "mauvais mouvement"
+-msgstr "mauvais mouvement"
++msgstr "mauvais déplacement"
  
 -#: config/rs6000/rs6000.c:19546
 +#: config/rs6000/rs6000.c:20411
  msgid "Bad 128-bit move"
- msgstr ""
+-msgstr ""
++msgstr "Mauvais déplacement sur 128 bits"
  
 -#: config/rs6000/rs6000.c:19737
 +#: config/rs6000/rs6000.c:20602
@@ -70846,94 +85263,111 @@ Index: gcc/po/fr.po
  msgstr "valeur %%x invalide"
  
 -#: config/rs6000/rs6000.c:20234
+-#, fuzzy, c-format
+-#| msgid "invalid punctuation `%c' in constraint"
 +#: config/rs6000/rs6000.c:21099
- #, fuzzy, c-format
- #| msgid "invalid punctuation `%c' in constraint"
++#, c-format
  msgid "invalid %%y value, try using the 'Z' constraint"
- msgstr "ponctuation invalide « %c » dans la contrainte"
+-msgstr "ponctuation invalide « %c » dans la contrainte"
++msgstr "valeur %%y invalide, essayez d'utiliser la contrainte « Z »"
  
 -#: config/rs6000/rs6000.c:20912
 +#: config/rs6000/rs6000.c:21814
  msgid "__float128 and __ibm128 cannot be used in the same expression"
- msgstr ""
+-msgstr ""
++msgstr "__float128 et __ibm128 ne peuvent pas être utilisés dans la même expression"
  
 -#: config/rs6000/rs6000.c:20918
 +#: config/rs6000/rs6000.c:21820
  msgid "__ibm128 and long double cannot be used in the same expression"
- msgstr ""
+-msgstr ""
++msgstr "__ibm128 et long double ne peuvent pas être utilisés dans la même expression"
  
 -#: config/rs6000/rs6000.c:20924
 +#: config/rs6000/rs6000.c:21826
  msgid "__float128 and long double cannot be used in the same expression"
- msgstr ""
+-msgstr ""
++msgstr "__float128 et long double ne peuvent pas être utilisés dans la même expression"
  
 -#: config/rs6000/rs6000.c:34329
+-#, fuzzy
+-#| msgid "too few arguments to function"
 +#: config/rs6000/rs6000.c:35706
- #, fuzzy
- #| msgid "too few arguments to function"
  msgid "AltiVec argument passed to unprototyped function"
- msgstr "trop peu d'arguments pour la fonction"
+-msgstr "trop peu d'arguments pour la fonction"
++msgstr "Argument AltiVec passé à une fonction sans prototype"
  
 -#: config/rs6000/rs6000.c:36027
+-#, fuzzy
+-#| msgid "Do not generate code for a Sun FPA"
 +#: config/rs6000/rs6000.c:37429
- #, fuzzy
- #| msgid "Do not generate code for a Sun FPA"
  msgid "Could not generate addis value for fusion"
- msgstr "Ne pas générer le code pour un Sun FPA"
+-msgstr "Ne pas générer le code pour un Sun FPA"
++msgstr "N'a pu générer de valeur addis pour la fusion"
  
 -#: config/rs6000/rs6000.c:36099
+-#, fuzzy
+-#| msgid "unable to generate reloads for:"
 +#: config/rs6000/rs6000.c:37501
- #, fuzzy
- #| msgid "unable to generate reloads for:"
  msgid "Unable to generate load/store offset for fusion"
- msgstr "incapable de générer des recharges pour:"
+-msgstr "incapable de générer des recharges pour:"
++msgstr "Impossible de générer un offset load/store pour la fusion"
  
 -#: config/rs6000/rs6000.c:36203
 +#: config/rs6000/rs6000.c:37605
  msgid "Bad GPR fusion"
- msgstr ""
+-msgstr ""
++msgstr "Mauvaise fusion GPR"
  
 -#: config/rs6000/rs6000.c:36421
 +#: config/rs6000/rs6000.c:37823
  msgid "emit_fusion_p9_load, bad reg #1"
- msgstr ""
+-msgstr ""
++msgstr "emit_fusion_p9_load, mauvais reg #1"
  
 -#: config/rs6000/rs6000.c:36458
 +#: config/rs6000/rs6000.c:37860
  msgid "emit_fusion_p9_load, bad reg #2"
- msgstr ""
+-msgstr ""
++msgstr "emit_fusion_p9_load, mauvais reg #2"
  
 -#: config/rs6000/rs6000.c:36461
 +#: config/rs6000/rs6000.c:37863
  msgid "emit_fusion_p9_load not MEM"
- msgstr ""
+-msgstr ""
++msgstr "emit_fusion_p9_load pas MEM"
  
 -#: config/rs6000/rs6000.c:36499
 +#: config/rs6000/rs6000.c:37901
  msgid "emit_fusion_p9_store, bad reg #1"
- msgstr ""
+-msgstr ""
++msgstr "emit_fusion_p9_store, mauvais reg #1"
  
 -#: config/rs6000/rs6000.c:36536
 +#: config/rs6000/rs6000.c:37938
  msgid "emit_fusion_p9_store, bad reg #2"
- msgstr ""
+-msgstr ""
++msgstr "emit_fusion_p9_store, mauvais reg #2"
  
 -#: config/rs6000/rs6000.c:36539
 +#: config/rs6000/rs6000.c:37941
  msgid "emit_fusion_p9_store not MEM"
- msgstr ""
+-msgstr ""
++msgstr "emit_fusion_p9_store pas MEM"
  
 -#: config/s390/s390.c:7147
 +#: config/s390/s390.c:7168
  #, c-format
  msgid "symbolic memory references are only supported on z10 or later"
- msgstr ""
+-msgstr ""
++msgstr "les références mémoire symboliques sont uniquement supportées sur z10 ou ultérieur"
  
 -#: config/s390/s390.c:7158
 +#: config/s390/s390.c:7179
  #, c-format
  msgid "cannot decompose address"
- msgstr "Adresse indécomposable"
+-msgstr "Adresse indécomposable"
++msgstr "adresse indécomposable"
  
 -#: config/s390/s390.c:7227
 +#: config/s390/s390.c:7248
@@ -70963,7 +85397,8 @@ Index: gcc/po/fr.po
 +#: config/s390/s390.c:7329
  #, c-format
  msgid "memory reference expected for 'S' output modifier"
- msgstr ""
+-msgstr ""
++msgstr "référence mémoire attendue pour le modificateur de sortie « S »"
  
 -#: config/s390/s390.c:7318
 +#: config/s390/s390.c:7339
@@ -70975,13 +85410,15 @@ Index: gcc/po/fr.po
 +#: config/s390/s390.c:7360
  #, c-format
  msgid "register or memory expression expected for 'N' output modifier"
- msgstr ""
+-msgstr ""
++msgstr "registre ou expression mémoire attendue pour le modificateur de sortie « N »"
  
 -#: config/s390/s390.c:7350
 +#: config/s390/s390.c:7371
  #, c-format
  msgid "register or memory expression expected for 'M' output modifier"
- msgstr ""
+-msgstr ""
++msgstr "registre ou expression mémoire attendue pour le modificateur de sortie « M »"
  
 -#: config/s390/s390.c:7435 config/s390/s390.c:7456
 +#: config/s390/s390.c:7456 config/s390/s390.c:7477
@@ -70993,14 +85430,17 @@ Index: gcc/po/fr.po
 +#: config/s390/s390.c:7474
  #, c-format
  msgid "invalid constant - try using an output modifier"
- msgstr "opérande invalide - essayez un modificateur de sortie"
+-msgstr "opérande invalide - essayez un modificateur de sortie"
++msgstr "constante invalide - essayez un modificateur de sortie"
  
 -#: config/s390/s390.c:7494
+-#, fuzzy, c-format
+-#| msgid "invalid constant for output modifier '%c'"
 +#: config/s390/s390.c:7515
- #, fuzzy, c-format
- #| msgid "invalid constant for output modifier '%c'"
++#, c-format
  msgid "invalid constant vector for output modifier '%c'"
- msgstr "constante invalide pour le modificateur de sortie « %c »"
+-msgstr "constante invalide pour le modificateur de sortie « %c »"
++msgstr "vecteur constant invalide pour le modificateur de sortie « %c »"
  
 -#: config/s390/s390.c:7501
 +#: config/s390/s390.c:7522
@@ -71015,37 +85455,44 @@ Index: gcc/po/fr.po
  msgstr "expression invalide pour le modificateur de sortie « %c »"
  
 -#: config/s390/s390.c:11356
+-#, fuzzy
+-#| msgid "too few arguments to function"
 +#: config/s390/s390.c:11377
- #, fuzzy
- #| msgid "too few arguments to function"
  msgid "Vector argument passed to unprototyped function"
- msgstr "trop peu d'arguments pour la fonction"
+-msgstr "trop peu d'arguments pour la fonction"
++msgstr "Vecteur passé en argument à une fonction sans prototype"
  
 -#: config/s390/s390.c:15023
+-#, fuzzy
+-#| msgid "pointer targets in %s differ in signedness"
 +#: config/s390/s390.c:15036
- #, fuzzy
- #| msgid "pointer targets in %s differ in signedness"
  msgid "types differ in signess"
- msgstr "les cibles des pointeurs dans %s n'ont pas toutes de signe"
+-msgstr "les cibles des pointeurs dans %s n'ont pas toutes de signe"
++msgstr "les types diffèrent sur le type signé/non-signé"
  
 -#: config/s390/s390.c:15033
 +#: config/s390/s390.c:15046
  msgid "binary operator does not support two vector bool operands"
- msgstr ""
+-msgstr ""
++msgstr "l'opérateur binaire ne supporte pas deux opérandes booléens vectoriels"
  
 -#: config/s390/s390.c:15036
+-#, fuzzy
+-#| msgid "target format does not support infinity"
 +#: config/s390/s390.c:15049
- #, fuzzy
- #| msgid "target format does not support infinity"
  msgid "binary operator does not support vector bool operand"
- msgstr "le format cible ne supporte pas l'infini"
+-msgstr "le format cible ne supporte pas l'infini"
++msgstr "l'opérateur binaire ne supporte pas l'opérande booléen vectoriel"
  
 -#: config/s390/s390.c:15044
 +#: config/s390/s390.c:15057
  msgid "binary operator does not support mixing vector bool with floating point vector operands"
- msgstr ""
+-msgstr ""
++msgstr "l'opérateur binaire ne supporte pas le mélange d'un booléen vectoriel avec un vecteur en virgule flottante"
  
-@@ -4105,43 +4096,43 @@
+ #: config/sh/sh.c:1313
+ #, c-format
+@@ -4105,62 +4018,61 @@
  msgid "created and used with different endianness"
  msgstr "créé et utilisé avec des boutismes différents"
  
@@ -71065,7 +85512,8 @@ Index: gcc/po/fr.po
 +#: config/sparc/sparc.c:8844
  #, c-format
  msgid "invalid %%B operand"
- msgstr "Opérande %%B invalide"
+-msgstr "Opérande %%B invalide"
++msgstr "opérande %%B invalide"
  
 -#: config/sparc/sparc.c:8773 config/tilegx/tilegx.c:5095
 +#: config/sparc/sparc.c:8873 config/tilegx/tilegx.c:5095
@@ -71093,18 +85541,91 @@ Index: gcc/po/fr.po
  msgstr "opérande %%s invalide"
  
 -#: config/sparc/sparc.c:8863
+-#, fuzzy, c-format
+-#| msgid "floating point constant not a valid immediate operand"
 +#: config/sparc/sparc.c:8963
- #, fuzzy, c-format
- #| msgid "floating point constant not a valid immediate operand"
++#, c-format
  msgid "floating-point constant not a valid immediate operand"
-@@ -4281,23 +4272,23 @@
+-msgstr "constante en virgule flottante n'est pas une opérande immédiate valide"
++msgstr "la constante en virgule flottante n'est pas un opérande immédiat valide"
+ 
+ #: config/stormy16/stormy16.c:1733 config/stormy16/stormy16.c:1804
+ #, c-format
+ msgid "'B' operand is not constant"
+-msgstr "opérande « B » n'est pas une constante"
++msgstr "l'opérande « B » n'est pas une constante"
+ 
+ #: config/stormy16/stormy16.c:1760
+ #, c-format
+ msgid "'B' operand has multiple bits set"
+-msgstr "l'opérande « B » a de multiples jeux de bits"
++msgstr "l'opérande « B » a plusieurs bits activés"
+ 
+ #: config/stormy16/stormy16.c:1786
+ #, c-format
+ msgid "'o' operand is not constant"
+-msgstr "opérande « o » n'est pas une constante"
++msgstr "l'opérande « o » n'est pas une constante"
+ 
+ #: config/stormy16/stormy16.c:1818
+ #, c-format
+@@ -4215,12 +4127,12 @@
+ #: config/tilegx/tilegx.c:5385
+ #, c-format
+ msgid "invalid operand for 'r' specifier"
+-msgstr "opérande invalide pour le modificateur « r »"
++msgstr "opérande invalide pour le spécificateur « r »"
+ 
+ #: config/tilegx/tilegx.c:5409 config/tilepro/tilepro.c:4816
+ #, c-format
+ msgid "unable to print out operand yet; code == %d (%c)"
+-msgstr ""
++msgstr "impossible d'imprimer l'opérande pour l'instant; code == %d (%c)"
+ 
+ #: config/tilepro/tilepro.c:4560
+ #, c-format
+@@ -4254,7 +4166,7 @@
+ 
+ #: config/v850/v850.c:293
+ msgid "const_double_split got a bad insn:"
+-msgstr "const_double_split a reçu un insn erroné :"
++msgstr "const_double_split a reçu une mauvaise insn :"
+ 
+ #: config/v850/v850.c:899
+ msgid "output_move_single:"
+@@ -4263,41 +4175,39 @@
+ #: config/vax/vax.c:453
+ #, c-format
+ msgid "symbol used with both base and indexed registers"
+-msgstr ""
++msgstr "symbole utilisé conjointement avec des registres de base et d'index"
+ 
+ #: config/vax/vax.c:462
+-#, fuzzy, c-format
+-#| msgid "code model %s not supported in PIC mode"
++#, c-format
+ msgid "symbol with offset used in PIC mode"
+-msgstr "model de code %s n'est pas supporté en mode PIC"
++msgstr "symbole avec offset utilisé en mode PIC"
+ 
+ #: config/vax/vax.c:550
+-#, fuzzy, c-format
+-#| msgid "long long constant not a valid immediate operand"
++#, c-format
+ msgid "symbol used as immediate operand"
+-msgstr "constante long long n'est pas une opérande immédiate valide"
++msgstr "symbole utilisé comme opérande immédiat"
+ 
+ #: config/vax/vax.c:1577
  msgid "illegal operand detected"
- msgstr "opérande illégale détectée"
+-msgstr "opérande illégale détectée"
++msgstr "opérande illégal détecté"
  
 -#: config/visium/visium.c:3195
 +#: config/visium/visium.c:3255
  msgid "illegal operand "
- msgstr "opérande illégale "
+-msgstr "opérande illégale "
++msgstr "opérande illégal "
  
 -#: config/visium/visium.c:3246
 +#: config/visium/visium.c:3306
@@ -71126,9 +85647,21 @@ Index: gcc/po/fr.po
  msgid "illegal operand address (4)"
  msgstr "adresse d'opérande illégale (4)"
  
-@@ -4333,11 +4324,11 @@
+@@ -4304,7 +4214,7 @@
+ #: config/xtensa/xtensa.c:768 config/xtensa/xtensa.c:800
+ #: config/xtensa/xtensa.c:809
+ msgid "bad test"
+-msgstr "test erroné"
++msgstr "mauvais test"
+ 
+ #: config/xtensa/xtensa.c:2301
+ #, c-format
+@@ -4331,13 +4241,13 @@
+ 
+ #: config/xtensa/xtensa.c:2487
  msgid "address offset not a constant"
- msgstr "décalage d'adresse n'est pas une constante"
+-msgstr "décalage d'adresse n'est pas une constante"
++msgstr "le décalage d'adresse n'est pas une constante"
  
 -#: c/c-objc-common.c:162
 +#: c/c-objc-common.c:160
@@ -71140,7 +85673,7 @@ Index: gcc/po/fr.po
  msgid "({anonymous})"
  msgstr "({anonyme})"
  
-@@ -4345,9 +4336,9 @@
+@@ -4345,9 +4255,9 @@
  #: c/c-parser.c:5286 c/c-parser.c:5670 c/c-parser.c:5839 c/c-parser.c:5870
  #: c/c-parser.c:6085 c/c-parser.c:8825 c/c-parser.c:8860 c/c-parser.c:8891
  #: c/c-parser.c:8938 c/c-parser.c:9119 c/c-parser.c:9899 c/c-parser.c:9969
@@ -71153,7 +85686,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "expected %<;%>"
  msgstr "%<;%> attendu"
-@@ -4358,22 +4349,22 @@
+@@ -4358,22 +4268,22 @@
  #: c/c-parser.c:5545 c/c-parser.c:5755 c/c-parser.c:6021 c/c-parser.c:6144
  #: c/c-parser.c:7203 c/c-parser.c:7628 c/c-parser.c:7669 c/c-parser.c:7802
  #: c/c-parser.c:7996 c/c-parser.c:8013 c/c-parser.c:8039 c/c-parser.c:9410
@@ -71187,7 +85720,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "expected %<,%>"
  msgstr "%<,%> attendu"
-@@ -4388,27 +4379,27 @@
+@@ -4388,27 +4298,27 @@
  #: c/c-parser.c:7828 c/c-parser.c:8005 c/c-parser.c:8030 c/c-parser.c:8054
  #: c/c-parser.c:8277 c/c-parser.c:8668 c/c-parser.c:9204 c/c-parser.c:9225
  #: c/c-parser.c:9433 c/c-parser.c:9488 c/c-parser.c:9871 c/c-parser.c:10552
@@ -71231,9 +85764,12 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "expected %<]%>"
  msgstr "%<]%> attendu"
-@@ -4417,13 +4408,13 @@
+@@ -4415,15 +4325,15 @@
+ 
+ #: c/c-parser.c:3759
  msgid "expected %<;%>, %<,%> or %<)%>"
- msgstr "%<;%>, %<,%> or %<)%> attendu"
+-msgstr "%<;%>, %<,%> or %<)%> attendu"
++msgstr "%<;%>, %<,%> ou %<)%> attendu"
  
 -#: c/c-parser.c:4372 c/c-parser.c:14534 cp/parser.c:26892 cp/parser.c:28814
 +#: c/c-parser.c:4372 c/c-parser.c:14517 cp/parser.c:26967 cp/parser.c:28889
@@ -71248,7 +85784,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "expected %<{%>"
  msgstr "%<{%> attendu"
-@@ -4430,9 +4421,9 @@
+@@ -4430,9 +4340,9 @@
  
  #: c/c-parser.c:4917 c/c-parser.c:4926 c/c-parser.c:6043 c/c-parser.c:6385
  #: c/c-parser.c:7278 c/c-parser.c:9218 c/c-parser.c:9601 c/c-parser.c:9662
@@ -71261,16 +85797,46 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "expected %<:%>"
  msgstr "%<:%> attendu"
-@@ -4453,7 +4444,7 @@
+@@ -4439,21 +4349,21 @@
+ 
+ #: c/c-parser.c:5185 cp/semantics.c:613
+ msgid "Cilk array notation cannot be used as a computed goto expression"
+-msgstr ""
++msgstr "La notation Cilk d'un tableau ne peut pas être utilisée comme expression d'un goto calculé"
+ 
+ #: c/c-parser.c:5244
+ msgid "Cilk array notation cannot be used for a throw expression"
+-msgstr ""
++msgstr "La notation Cilk d'un tableau ne peut pas être utilisée comme expression pour déclencher une exception"
+ 
+ #: c/c-parser.c:5556 cp/semantics.c:1136
+ msgid "Cilk array notation cannot be used as a condition for switch statement"
+-msgstr ""
++msgstr "La notation Cilk d'un tableau ne peut pas être utilisée comme condition d'un switch"
+ 
+ #: c/c-parser.c:5605 cp/semantics.c:791
  msgid "Cilk array notation cannot be used as a condition for while statement"
- msgstr ""
+-msgstr ""
++msgstr "La notation Cilk d'un tableau ne peut pas être utilisée comme condition d'un while"
  
 -#: c/c-parser.c:5656 cp/parser.c:26822
 +#: c/c-parser.c:5656 cp/parser.c:26897
  #, gcc-internal-format
  msgid "expected %<while%>"
  msgstr "%<while%> attendu"
-@@ -4470,47 +4461,47 @@
+@@ -4460,145 +4370,145 @@
+ 
+ #: c/c-parser.c:5663 cp/semantics.c:850
+ msgid "Cilk array notation cannot be used as a condition for a do-while statement"
+-msgstr ""
++msgstr "La notation Cilk d'un tableau ne peut pas être utilisée comme condition d'un do-while"
+ 
+ #: c/c-parser.c:5866 cp/semantics.c:969
+ msgid "Cilk array notation cannot be used in a condition for a for-loop"
+-msgstr ""
++msgstr "La notation Cilk d'un tableau ne peut pas être utilisée comme condition d'une boucle for"
+ 
+ #: c/c-parser.c:7497
  msgid "expected %<.%>"
  msgstr "%<.%> attendu"
  
@@ -71292,7 +85858,8 @@ Index: gcc/po/fr.po
 +#: c/c-parser.c:12116 c/c-parser.c:12880 cp/parser.c:27012
  #, gcc-internal-format
  msgid "expected %<,%> or %<)%>"
- msgstr "%<,%> or %<)%> attendu"
+-msgstr "%<,%> or %<)%> attendu"
++msgstr "%<,%> ou %<)%> attendu"
  
 -#: c/c-parser.c:14246 c/c-parser.c:14290 c/c-parser.c:14518 c/c-parser.c:14753
 -#: c/c-parser.c:16906 c/c-parser.c:17528 c/c-parser.c:4573 cp/parser.c:26916
@@ -71306,7 +85873,8 @@ Index: gcc/po/fr.po
 +#: c/c-parser.c:15280 c/c-parser.c:15270 cp/parser.c:34132
  #, gcc-internal-format
  msgid "expected %<#pragma omp section%> or %<}%>"
- msgstr "%<#pragma omp section%> or %<}%> attendu"
+-msgstr "%<#pragma omp section%> or %<}%> attendu"
++msgstr "%<#pragma omp section%> ou %<}%> attendu"
  
 -#: c/c-parser.c:17690 c/c-parser.c:10600 cp/parser.c:26901 cp/parser.c:29954
 +#: c/c-parser.c:17675 c/c-parser.c:10602 cp/parser.c:26976 cp/parser.c:30031
@@ -71329,24 +85897,33 @@ Index: gcc/po/fr.po
  msgid "candidate 2:"
  msgstr "candidat 2 :"
  
-@@ -4522,83 +4513,83 @@
+ #: cp/decl2.c:778
+ msgid "candidates are: %+#D"
+-msgstr "candidats sont : %+#D"
++msgstr "les candidats sont : %+#D"
+ 
+ #: cp/decl2.c:780
  msgid "candidate is: %+#D"
- msgstr "candidat est : %+#D"
+-msgstr "candidat est : %+#D"
++msgstr "le candidat est : %+#D"
  
 -#: cp/error.c:319
 +#: cp/error.c:317
  msgid "<missing>"
- msgstr "<champ manquant>"
+-msgstr "<champ manquant>"
++msgstr "<manquant>"
  
 -#: cp/error.c:419
 +#: cp/error.c:417
  msgid "<brace-enclosed initializer list>"
- msgstr ""
+-msgstr ""
++msgstr "<initialisation de liste entre accolades>"
  
 -#: cp/error.c:421
 +#: cp/error.c:419
  msgid "<unresolved overloaded function type>"
- msgstr ""
+-msgstr ""
++msgstr "<type de fonction surchargée non résolu>"
  
 -#: cp/error.c:583
 +#: cp/error.c:581
@@ -71357,7 +85934,8 @@ Index: gcc/po/fr.po
 +#: cp/error.c:684
  #, c-format
  msgid "<anonymous %s>"
- msgstr "<anonymous %s>"
+-msgstr "<anonymous %s>"
++msgstr "<%s anonyme>"
  
  #. A lambda's "type" is essentially its signature.
 -#: cp/error.c:691
@@ -71368,34 +85946,40 @@ Index: gcc/po/fr.po
 -#: cp/error.c:821
 +#: cp/error.c:819
  msgid "<typeprefixerror>"
- msgstr "<typeprefixerror>"
+-msgstr "<typeprefixerror>"
++msgstr "<erreurprefixtype>"
  
 -#: cp/error.c:950
 +#: cp/error.c:948
  #, c-format
  msgid "(static initializers for %s)"
- msgstr "(initialiseur static pour « %s »)"
+-msgstr "(initialiseur static pour « %s »)"
++msgstr "(initialiseurs statiques pour %s)"
  
 -#: cp/error.c:952
 +#: cp/error.c:950
  #, c-format
  msgid "(static destructors for %s)"
- msgstr "(destructeur static pour %s)"
+-msgstr "(destructeur static pour %s)"
++msgstr "(destructeurs statiques pour %s)"
  
 -#: cp/error.c:1060
 +#: cp/error.c:1063
  msgid "vtable for "
- msgstr ""
+-msgstr ""
++msgstr "vtable pour "
  
 -#: cp/error.c:1084
 +#: cp/error.c:1087
  msgid "<return value> "
- msgstr ""
+-msgstr ""
++msgstr "<valeur de retour> "
  
 -#: cp/error.c:1099
 +#: cp/error.c:1102
  msgid "{anonymous}"
- msgstr "{anonymous}"
+-msgstr "{anonymous}"
++msgstr "{anonyme}"
  
 -#: cp/error.c:1101
 +#: cp/error.c:1104
@@ -71405,7 +85989,8 @@ Index: gcc/po/fr.po
 -#: cp/error.c:1217
 +#: cp/error.c:1220
  msgid "<template arguments error>"
- msgstr "<erreur argument du patron>"
+-msgstr "<erreur argument du patron>"
++msgstr "<erreur dans les arguments du patron>"
  
 -#: cp/error.c:1239
 +#: cp/error.c:1242
@@ -71420,7 +86005,8 @@ Index: gcc/po/fr.po
 -#: cp/error.c:1808 cp/error.c:1828
 +#: cp/error.c:1819 cp/error.c:1839
  msgid "<template parameter error>"
- msgstr "<erreur de patron de paramètre>"
+-msgstr "<erreur de patron de paramètre>"
++msgstr "<erreur de paramètre du patron>"
  
 -#: cp/error.c:1958
 +#: cp/error.c:1969
@@ -71432,19 +86018,21 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "<unknown>"
  msgstr "<inconnu>"
-@@ -4605,132 +4596,132 @@
+@@ -4605,212 +4515,196 @@
  
  #. While waiting for caret diagnostics, avoid printing
  #. __cxa_allocate_exception, __cxa_throw, and the like.
 -#: cp/error.c:2003
 +#: cp/error.c:2014
  msgid "<throw-expression>"
- msgstr "<levé d'exception>"
+-msgstr "<levé d'exception>"
++msgstr "<levée d'exception>"
  
 -#: cp/error.c:2104
 +#: cp/error.c:2115
  msgid "<ubsan routine call>"
- msgstr ""
+-msgstr ""
++msgstr "<appel de routine UBSan>"
  
 -#: cp/error.c:2561
 +#: cp/error.c:2572
@@ -71479,7 +86067,8 @@ Index: gcc/po/fr.po
 -#: cp/error.c:3183
 +#: cp/error.c:3199
  msgid "At global scope:"
- msgstr ""
+-msgstr ""
++msgstr "Au niveau global:"
  
 -#: cp/error.c:3289
 +#: cp/error.c:3305
@@ -71514,12 +86103,14 @@ Index: gcc/po/fr.po
 +#: cp/error.c:3333
  #, c-format
  msgid "%s: In substitution of %qS:\n"
- msgstr "%s : dans la substitution de %qS :\n"
+-msgstr "%s : dans la substitution de %qS :\n"
++msgstr "%s: Dans la substitution de %qS :\n"
  
 -#: cp/error.c:3318
 +#: cp/error.c:3334
  msgid "%s: In instantiation of %q#D:\n"
- msgstr "%s : dans l'instantiation de %q#D :\n"
+-msgstr "%s : dans l'instantiation de %q#D :\n"
++msgstr "%s: Dans l'instanciation de %q#D :\n"
  
 -#: cp/error.c:3343
 +#: cp/error.c:3359
@@ -71535,69 +86126,144 @@ Index: gcc/po/fr.po
 +#: cp/error.c:3370
  #, c-format
  msgid "recursively required by substitution of %qS\n"
- msgstr ""
+-msgstr ""
++msgstr "requis récursivement par la substitution de %qS\n"
  
 -#: cp/error.c:3355
 +#: cp/error.c:3371
  #, c-format
  msgid "required by substitution of %qS\n"
- msgstr ""
+-msgstr ""
++msgstr "requis par la substitution de %qS\n"
  
 -#: cp/error.c:3360
 +#: cp/error.c:3376
  msgid "recursively required from %q#D\n"
- msgstr ""
+-msgstr ""
++msgstr "requis récursivement par %q#D\n"
  
 -#: cp/error.c:3361
 +#: cp/error.c:3377
  msgid "required from %q#D\n"
- msgstr ""
+-msgstr ""
++msgstr "requis par %q#D\n"
  
 -#: cp/error.c:3368
 +#: cp/error.c:3384
  msgid "recursively required from here\n"
- msgstr ""
+-msgstr ""
++msgstr "requis récursivement depuis ici\n"
  
 -#: cp/error.c:3369
+-#, fuzzy
+-#| msgid "called from here"
 +#: cp/error.c:3385
- #, fuzzy
- #| msgid "called from here"
  msgid "required from here\n"
- msgstr "appelé d'ici"
+-msgstr "appelé d'ici"
++msgstr "requis depuis ici\n"
  
 -#: cp/error.c:3421
 +#: cp/error.c:3437
  msgid "%r%s:%d:%d:%R   [ skipping %d instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]\n"
- msgstr ""
+-msgstr ""
++msgstr "%r%s:%d:%d:%R   [ passe outre %d contextes d'instanciation, utilisez -ftemplate-backtrace-limit=0 pour désactiver ]\n"
  
 -#: cp/error.c:3427
 +#: cp/error.c:3443
  msgid "%r%s:%d:%R   [ skipping %d instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]\n"
- msgstr ""
+-msgstr ""
++msgstr "%r%s:%d:%R   [ passe outre %d contextes d'instanciation, utilisez -ftemplate-backtrace-limit=0 pour désactiver ]\n"
  
 -#: cp/error.c:3481
 +#: cp/error.c:3497
  msgid "%r%s:%d:%d:%R   in constexpr expansion of %qs"
- msgstr ""
+-msgstr ""
++msgstr "%r%s:%d:%d:%R   dans l'expansion de constexpr de %qs"
  
 -#: cp/error.c:3485
 +#: cp/error.c:3501
  msgid "%r%s:%d:%R   in constexpr expansion of %qs"
- msgstr ""
+-msgstr ""
++msgstr "%r%s:%d:%R   dans l'expansion de constexpr de %qs"
  
 -#: cp/pt.c:1947 cp/semantics.c:5220
 +#: cp/pt.c:1945 cp/semantics.c:5217
  msgid "candidates are:"
- msgstr "candidats sont :"
+-msgstr "candidats sont :"
++msgstr "les candidats sont :"
  
 -#: cp/pt.c:21038
 +#: cp/pt.c:21086
  msgid "candidate is:"
  msgid_plural "candidates are:"
- msgstr[0] "candidat est :"
-@@ -4790,27 +4781,27 @@
+-msgstr[0] "candidat est :"
+-msgstr[1] "candidats sont :"
++msgstr[0] "le candidat est :"
++msgstr[1] "les candidats sont :"
+ 
+ #: cp/rtti.c:545
+-#, fuzzy
+-#| msgid "  overriding `%#D' (must be pointer or reference to class)"
+ msgid "target is not pointer or reference to class"
+-msgstr "doit être un pointeur ou une référence vers un classe"
++msgstr "la cible n'est pas un pointeur ni une référence à une classe"
+ 
+ #: cp/rtti.c:550
+-#, fuzzy
+-#| msgid "arithmetic on pointer to an incomplete type"
+ msgid "target is not pointer or reference to complete type"
+-msgstr "arithmétique sur un pointeur vers un type incomplet"
++msgstr "la cible n'est pas un pointeur ni une référence à un type complet"
+ 
+ #: cp/rtti.c:556
+-#, fuzzy
+-#| msgid "cannot declare pointers to references"
+ msgid "target is not pointer or reference"
+-msgstr "ne peut déclarer des pointeurs vers des références"
++msgstr "la cible n'est pas un pointeur ni une référence"
+ 
+ #: cp/rtti.c:572
+-#, fuzzy
+-#| msgid "base operand of `->' is not a pointer"
+ msgid "source is not a pointer"
+-msgstr "l'opérande de base de «->» n'est pas un pointeur"
++msgstr "la source n'est pas un pointeur"
+ 
+ #: cp/rtti.c:577
+-#, fuzzy
+-#| msgid "Assume that pointers not aliased"
+ msgid "source is not a pointer to class"
+-msgstr "Présumer que les pointeurs ne peuvent pas être aliasés"
++msgstr "la source n'est pas un pointeur vers une classe"
+ 
+ #: cp/rtti.c:582
+-#, fuzzy
+-#| msgid "cannot %s a pointer to incomplete type `%T'"
+ msgid "source is a pointer to incomplete type"
+-msgstr "ne peut utiliser %s comme pointeur sur un type incomplet « %T »"
++msgstr "la source est un pointeur vers un type incomplet"
+ 
+ #: cp/rtti.c:597
+ msgid "source is not of class type"
+-msgstr "la source n'est pas de type classe"
++msgstr "la source n'est pas de type « class »"
+ 
+ #: cp/rtti.c:602
+-#, fuzzy
+-#| msgid "return type is an incomplete type"
+ msgid "source is of incomplete class type"
+-msgstr "le type du retour est incomplet"
++msgstr "la source est d'un type « class » incomplet"
+ 
+ #: cp/rtti.c:611
+ msgid "conversion casts away constness"
+-msgstr ""
++msgstr "la conversion supprime l'attribut « const »"
+ 
+ #: cp/rtti.c:767
  msgid "source type is not polymorphic"
- msgstr ""
+-msgstr ""
++msgstr "le type source n'est pas polymorphique"
  
 -#: cp/typeck.c:5820 c/c-typeck.c:4093
 +#: cp/typeck.c:5820 c/c-typeck.c:4098
@@ -71615,7 +86281,8 @@ Index: gcc/po/fr.po
 +#: cp/typeck.c:5848 c/c-typeck.c:4124
  #, gcc-internal-format
  msgid "wrong type argument to bit-complement"
- msgstr "type d'argument erroné pour un complément de bit"
+-msgstr "type d'argument erroné pour un complément de bit"
++msgstr "type d'argument erroné pour le complément de bit"
  
 -#: cp/typeck.c:5855 c/c-typeck.c:4127
 +#: cp/typeck.c:5855 c/c-typeck.c:4132
@@ -71628,9 +86295,86 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "wrong type argument to conjugation"
  msgstr "type d'argument erroné pour la conjugaison"
-@@ -4887,23 +4878,23 @@
+@@ -4817,23 +4711,23 @@
+ 
+ #: cp/typeck.c:5885
+ msgid "in argument to unary !"
+-msgstr ""
++msgstr "dans l'argument d'un unaire !"
+ 
+ #: cp/typeck.c:5931
+ msgid "no pre-increment operator for type"
+-msgstr ""
++msgstr "pas d'opérateur de pré-incrémentation pour le type"
+ 
+ #: cp/typeck.c:5933
+ msgid "no post-increment operator for type"
+-msgstr ""
++msgstr "pas d'opérateur de post-incrémentation pour le type"
+ 
+ #: cp/typeck.c:5935
+ msgid "no pre-decrement operator for type"
+-msgstr ""
++msgstr "pas d'opérateur de pré-décrémentation pour le type"
+ 
+ #: cp/typeck.c:5937
+ msgid "no post-decrement operator for type"
+-msgstr ""
++msgstr "pas d'opérateur de post-décrémentation pour le type"
+ 
+ #: fortran/arith.c:95
+ msgid "Arithmetic OK at %L"
+@@ -4845,7 +4739,7 @@
+ 
+ #: fortran/arith.c:101
+ msgid "Arithmetic underflow at %L"
+-msgstr ""
++msgstr "Dépassement de capacité arithmétique par le bas à %L"
+ 
+ #: fortran/arith.c:104
+ msgid "Arithmetic NaN at %L"
+@@ -4857,73 +4751,65 @@
+ 
+ #: fortran/arith.c:110
+ msgid "Array operands are incommensurate at %L"
+-msgstr ""
++msgstr "Les opérandes de tableau ne sont pas comparables à %L"
+ 
+ #: fortran/arith.c:114
+ msgid "Integer outside symmetric range implied by Standard Fortran at %L"
+-msgstr ""
++msgstr "L'entier est hors de la plage symétrique impliquée par le standard Fortran à %L"
+ 
+ #: fortran/arith.c:1370
+-#, fuzzy
+-#| msgid "missing binary operator"
+ msgid "elemental binary operation"
+-msgstr "opérateur binaire manquant"
++msgstr "opération binaire élémentaire"
+ 
+ #: fortran/check.c:2124 fortran/check.c:3115 fortran/check.c:3169
+-#, fuzzy, c-format
+-#| msgid "Too few arguments for intrinsic `%A' at %0"
++#, c-format
+ msgid "arguments '%s' and '%s' for intrinsic %s"
+-msgstr "trop peu d'arguments passés à l'intrinsèque «%A» à %0"
++msgstr "arguments « %s » et « %s » pour l'intrinsèque %s"
+ 
+ #: fortran/check.c:2921
+-#, fuzzy, c-format
+-#| msgid "Too few arguments for intrinsic `%A' at %0"
++#, c-format
+ msgid "arguments 'a%d' and 'a%d' for intrinsic '%s'"
+-msgstr "trop peu d'arguments passés à l'intrinsèque «%A» à %0"
++msgstr "arguments « a%d » et « a%d » pour l'intrinsèque « %s »"
+ 
+ #: fortran/check.c:3444 fortran/intrinsic.c:4290
+-#, fuzzy, c-format
+-#| msgid "Too few arguments for intrinsic `%A' at %0"
++#, c-format
  msgid "arguments '%s' and '%s' for intrinsic '%s'"
- msgstr "trop peu d'arguments passés à l'intrinsèque «%A» à %0"
+-msgstr "trop peu d'arguments passés à l'intrinsèque «%A» à %0"
++msgstr "arguments « %s » et « %s » pour l'intrinsèque « %s »"
  
 -#: fortran/error.c:873
 +#: fortran/error.c:871
@@ -71657,16 +86401,179 @@ Index: gcc/po/fr.po
  msgid "Deleted feature:"
  msgstr "Fonctionnalité supprimée :"
  
-@@ -4934,7 +4925,7 @@
+ #: fortran/expr.c:622
+-#, fuzzy, c-format
+-#| msgid "non-constant expression for BIN"
++#, c-format
+ msgid "Constant expression required at %C"
+-msgstr "expression n'est pas un constante pour BIN"
++msgstr "Expression constante requise à %C"
+ 
+ #: fortran/expr.c:625
+-#, fuzzy, c-format
+-#| msgid "untyped expression as argument %d"
++#, c-format
+ msgid "Integer expression required at %C"
+-msgstr "expression sans type comme argument %d"
++msgstr "Expression entière requise à %C"
+ 
+ #: fortran/expr.c:630
+-#, fuzzy, c-format
+-#| msgid "integer overflow in expression"
++#, c-format
+ msgid "Integer value too large in expression at %C"
+-msgstr "débordement d'entier dans l'expression"
++msgstr "Valeur entière trop grande dans l'expression à %C"
+ 
+ #: fortran/expr.c:3242
+ msgid "array assignment"
+@@ -4932,97 +4818,77 @@
+ #: fortran/gfortranspec.c:425
+ #, c-format
  msgid "Driving:"
- msgstr ""
+-msgstr ""
++msgstr "Pilotage:"
  
 -#: fortran/interface.c:2941 fortran/intrinsic.c:3994
 +#: fortran/interface.c:3048 fortran/intrinsic.c:3994
  msgid "actual argument to INTENT = OUT/INOUT"
- msgstr ""
+-msgstr ""
++msgstr "argument actuel de INTENT = OUT/INOUT"
+ 
+ #: fortran/io.c:550
+-#, fuzzy
+-#| msgid "  but %d required"
+ msgid "Positive width required"
+-msgstr "mais %d son requis"
++msgstr "Largeur positive requise"
+ 
+ #: fortran/io.c:551
+-#, fuzzy
+-#| msgid "negative width in bit-field `%s'"
+ msgid "Nonnegative width required"
+-msgstr "largeur négative du champ de bits"
++msgstr "Largeur non négative requise"
+ 
+ #: fortran/io.c:552
+-#, fuzzy
+-#| msgid "unterminated format string"
+ msgid "Unexpected element %qc in format string at %L"
+-msgstr "chaîne de format non terminée"
++msgstr "Élément %qc inattendu dans la chaîne de format à %L"
+ 
+ #: fortran/io.c:554
+-#, fuzzy
+-#| msgid "unterminated format string"
+ msgid "Unexpected end of format string"
+-msgstr "chaîne de format non terminée"
++msgstr "Fin inattendue de la chaîne de format"
+ 
+ #: fortran/io.c:555
+-#, fuzzy
+-#| msgid "zero width in %s format"
+ msgid "Zero width in format descriptor"
+-msgstr "largeur zéro dans le format %s"
++msgstr "Largeur zéro dans le descripteur de format"
+ 
+ #: fortran/io.c:575
+-#, fuzzy
+-#| msgid "missing open paren"
+ msgid "Missing leading left parenthesis"
+-msgstr "parenthèse ouvrante manquante"
++msgstr "Parenthèse gauche d'ouverture manquante"
  
-@@ -5068,7 +5059,7 @@
+ #: fortran/io.c:604
+-#, fuzzy
+-#| msgid "template argument required for `%s %T'"
+ msgid "Left parenthesis required after %<*%>"
+-msgstr "argument du patron est requis pour « %s %T »"
++msgstr "Parenthèse gauche requise après %<*%>"
+ 
+ #: fortran/io.c:635
+ msgid "Expected P edit descriptor"
+-msgstr ""
++msgstr "Descripteur d'édition P attendu"
+ 
+ #. P requires a prior number.
+ #: fortran/io.c:643
+ msgid "P descriptor requires leading scale factor"
+-msgstr ""
++msgstr "Le descripteur P doit être annoncé par un facteur d'échelle"
+ 
+ #: fortran/io.c:736 fortran/io.c:750
+ msgid "Comma required after P descriptor"
+-msgstr ""
++msgstr "Virgule requise après le descripteur P"
+ 
+ #: fortran/io.c:764
+ msgid "Positive width required with T descriptor"
+-msgstr ""
++msgstr "Largeur positive requise avec le descripteur T"
+ 
+ #: fortran/io.c:843
+-#, fuzzy
+-#| msgid "type specifier `%s' not allowed after struct or class"
+ msgid "E specifier not allowed with g0 descriptor"
+-msgstr "spécificateur de type « %s » n'est pas permis après struct ou class"
++msgstr "Spécificateur E pas permis avec le descripteur g0"
+ 
+ #: fortran/io.c:913
+-#, fuzzy
+-#| msgid "no exponent width (offset %d)"
+ msgid "Positive exponent width required"
+-msgstr "pas de largeur d'exposant (décalage %d)"
++msgstr "Largeur d'exposant positive requise"
+ 
+ #: fortran/io.c:943
+-#, fuzzy
+-#| msgid "unrecognized format specifier"
+ msgid "Period required in format specifier"
+-msgstr "spécificateur de format non reconnu"
++msgstr "Point requis dans le spécificateur de format"
+ 
+ #: fortran/io.c:1570
+ #, c-format
+ msgid "%s tag"
+-msgstr "tag %s"
++msgstr "étiquette %s"
+ 
+ #: fortran/io.c:2966
+ msgid "internal unit in WRITE"
+-msgstr ""
++msgstr "unité interne dans WRITE"
+ 
+ #. For INQUIRE, all tags except FILE, ID and UNIT are variable definition
+ #. contexts.  Thus, use an extended RESOLVE_TAG macro for that.
+@@ -5029,16 +4895,16 @@
+ #: fortran/io.c:4185
+ #, c-format
+ msgid "%s tag with INQUIRE"
+-msgstr ""
++msgstr "étiquette %s avec INQUIRE"
+ 
+ #: fortran/matchexp.c:28
+ #, c-format
+ msgid "Syntax error in expression at %C"
+-msgstr "erreur de syntaxe dans l'exception à %C"
++msgstr "Erreur de syntaxe dans l'exception à %C"
+ 
+ #: fortran/module.c:1204
+ msgid "Unexpected EOF"
+-msgstr "fin de fichier inattendue"
++msgstr "Fin de fichier inattendue"
+ 
+ #: fortran/module.c:1288
+ msgid "Integer overflow"
+@@ -5058,7 +4924,7 @@
+ 
+ #: fortran/module.c:1550
+ msgid "Expected left parenthesis"
+-msgstr "Parenthèse droite attendu"
++msgstr "Parenthèse gauche attendue"
+ 
+ #: fortran/module.c:1553
+ msgid "Expected right parenthesis"
+@@ -5068,314 +4934,273 @@
  msgid "Expected integer"
  msgstr "Entier attendu"
  
@@ -71675,43 +86582,57 @@ Index: gcc/po/fr.po
  msgid "Expected string"
  msgstr "Chaîne attendue"
  
-@@ -5082,71 +5073,71 @@
+ #: fortran/module.c:1584
+ msgid "find_enum(): Enum not found"
+-msgstr "find_enum() : Énumération introuvable"
++msgstr "find_enum(): Énumération introuvable"
+ 
+ #: fortran/module.c:2265
+-#, fuzzy
+-#| msgid "packed attribute is unnecessary"
  msgid "Expected attribute bit name"
- msgstr "attribut empaqueté n'est pas nécessaire"
+-msgstr "attribut empaqueté n'est pas nécessaire"
++msgstr "Nom de bit d'attribut attendu"
  
 -#: fortran/module.c:3150
 +#: fortran/module.c:3151
  msgid "Expected integer string"
- msgstr "Chaîne d'entiers attendue"
+-msgstr "Chaîne d'entiers attendue"
++msgstr "Chaîne contenant un entier attendue"
  
 -#: fortran/module.c:3154
 +#: fortran/module.c:3155
  msgid "Error converting integer"
- msgstr "Erreur de conversion d'entier"
+-msgstr "Erreur de conversion d'entier"
++msgstr "Erreur de conversion de l'entier"
  
 -#: fortran/module.c:3176
 +#: fortran/module.c:3177
  msgid "Expected real string"
- msgstr "Chaîne de réels attendue"
+-msgstr "Chaîne de réels attendue"
++msgstr "Chaîne contenant un réel attendue"
  
 -#: fortran/module.c:3400
+-#, fuzzy
+-#| msgid "unexpected address expression"
 +#: fortran/module.c:3401
- #, fuzzy
- #| msgid "unexpected address expression"
  msgid "Expected expression type"
- msgstr "expression d'adresse inattendue"
+-msgstr "expression d'adresse inattendue"
++msgstr "Type d'expression attendue"
  
 -#: fortran/module.c:3480
 +#: fortran/module.c:3481
  msgid "Bad operator"
- msgstr "Mauvais opérande"
+-msgstr "Mauvais opérande"
++msgstr "Mauvais opérateur"
  
 -#: fortran/module.c:3595
+-#, fuzzy
+-#| msgid "overflow in constant expression"
 +#: fortran/module.c:3596
- #, fuzzy
- #| msgid "overflow in constant expression"
  msgid "Bad type in constant expression"
- msgstr "débordement dans l'expression de la constante"
+-msgstr "débordement dans l'expression de la constante"
++msgstr "Mauvais type dans l'expression constante"
  
 -#: fortran/module.c:6939
 +#: fortran/module.c:6946
@@ -71726,7 +86647,8 @@ Index: gcc/po/fr.po
 -#: fortran/parse.c:1601
 +#: fortran/parse.c:1680
  msgid "attribute declaration"
- msgstr "Déclaration d'attribut"
+-msgstr "Déclaration d'attribut"
++msgstr "déclaration d'attribut"
  
 -#: fortran/parse.c:1637
 +#: fortran/parse.c:1716
@@ -71736,7 +86658,8 @@ Index: gcc/po/fr.po
 -#: fortran/parse.c:1646
 +#: fortran/parse.c:1734
  msgid "derived type declaration"
- msgstr "déclaration vide"
+-msgstr "déclaration vide"
++msgstr "déclaration de type dérivé"
  
 -#: fortran/parse.c:1749
 +#: fortran/parse.c:1846
@@ -71746,7 +86669,8 @@ Index: gcc/po/fr.po
 -#: fortran/parse.c:1758
 +#: fortran/parse.c:1855
  msgid "implied END DO"
- msgstr "implique END DO"
+-msgstr "implique END DO"
++msgstr "END DO implicite"
  
 -#: fortran/parse.c:1852 fortran/resolve.c:10531
 +#: fortran/parse.c:1949 fortran/resolve.c:10537
@@ -71763,44 +86687,54 @@ Index: gcc/po/fr.po
  msgid "simple IF"
  msgstr "IF simple"
  
-@@ -5158,224 +5149,224 @@
+ #: fortran/resolve.c:606
+ msgid "module procedure"
+-msgstr ""
++msgstr "procédure de module"
+ 
+ #: fortran/resolve.c:607
  msgid "internal function"
  msgstr "fonction interne"
  
 -#: fortran/resolve.c:2151 fortran/resolve.c:2345
+-#, fuzzy
+-#| msgid "too few arguments to procedure"
 +#: fortran/resolve.c:2157 fortran/resolve.c:2351
- #, fuzzy
- #| msgid "too few arguments to procedure"
  msgid "elemental procedure"
- msgstr "trop peu d'arguments pour la procédure"
+-msgstr "trop peu d'arguments pour la procédure"
++msgstr "procédure élémentaire"
  
 -#: fortran/resolve.c:2248
+-#, fuzzy
+-#| msgid "invalid type argument"
 +#: fortran/resolve.c:2254
- #, fuzzy
- #| msgid "invalid type argument"
  msgid "allocatable argument"
- msgstr "type d'argument invalide"
+-msgstr "type d'argument invalide"
++msgstr "argument qui peut être alloué"
  
 -#: fortran/resolve.c:2253
+-#, fuzzy
+-#| msgid "no arguments"
 +#: fortran/resolve.c:2259
- #, fuzzy
- #| msgid "no arguments"
  msgid "asynchronous argument"
- msgstr "pas d'argument"
+-msgstr "pas d'argument"
++msgstr "argument asynchrone"
  
 -#: fortran/resolve.c:2258
+-#, fuzzy
+-#| msgid "no arguments"
 +#: fortran/resolve.c:2264
- #, fuzzy
- #| msgid "no arguments"
  msgid "optional argument"
- msgstr "pas d'argument"
+-msgstr "pas d'argument"
++msgstr "argument optionnel"
  
 -#: fortran/resolve.c:2263
+-#, fuzzy
+-#| msgid "no arguments"
 +#: fortran/resolve.c:2269
- #, fuzzy
- #| msgid "no arguments"
  msgid "pointer argument"
- msgstr "pas d'argument"
+-msgstr "pas d'argument"
++msgstr "argument pointeur"
  
 -#: fortran/resolve.c:2268
 +#: fortran/resolve.c:2274
@@ -71818,18 +86752,20 @@ Index: gcc/po/fr.po
  msgstr "argument volatile"
  
 -#: fortran/resolve.c:2283
+-#, fuzzy
+-#| msgid "invalid type argument"
 +#: fortran/resolve.c:2289
- #, fuzzy
- #| msgid "invalid type argument"
  msgid "assumed-shape argument"
- msgstr "type d'argument invalide"
+-msgstr "type d'argument invalide"
++msgstr "argument de forme tacite (assumed-shape)"
  
 -#: fortran/resolve.c:2288
+-#, fuzzy
+-#| msgid "no arguments"
 +#: fortran/resolve.c:2294
- #, fuzzy
- #| msgid "no arguments"
  msgid "assumed-rank argument"
- msgstr "pas d'argument"
+-msgstr "pas d'argument"
++msgstr "argument de rang tacite (assumed-rank)"
  
 -#: fortran/resolve.c:2293
 +#: fortran/resolve.c:2299
@@ -71837,11 +86773,12 @@ Index: gcc/po/fr.po
  msgstr "argument co-tableau"
  
 -#: fortran/resolve.c:2298
+-#, fuzzy
+-#| msgid "parameterized structures not implemented"
 +#: fortran/resolve.c:2304
- #, fuzzy
- #| msgid "parameterized structures not implemented"
  msgid "parametrized derived type argument"
- msgstr "structure paramétrisée ne sont pas implantées"
+-msgstr "structure paramétrisée ne sont pas implantées"
++msgstr "argument de type dérivé paramétrisé"
  
 -#: fortran/resolve.c:2303
 +#: fortran/resolve.c:2309
@@ -71851,124 +86788,152 @@ Index: gcc/po/fr.po
 -#: fortran/resolve.c:2308
 +#: fortran/resolve.c:2314
  msgid "NO_ARG_CHECK attribute"
- msgstr ""
+-msgstr ""
++msgstr "attribut NO_ARG_CHECK "
  
  #. As assumed-type is unlimited polymorphic (cf. above).
  #. See also TS 29113, Note 6.1.
 -#: fortran/resolve.c:2315
 +#: fortran/resolve.c:2321
  msgid "assumed-type argument"
- msgstr "argument assumed-type"
+-msgstr "argument assumed-type"
++msgstr "argument de type tacite (assumed-type)"
  
 -#: fortran/resolve.c:2326
 +#: fortran/resolve.c:2332
  msgid "array result"
- msgstr ""
+-msgstr ""
++msgstr "résultat tableau"
  
 -#: fortran/resolve.c:2331
 +#: fortran/resolve.c:2337
  msgid "pointer or allocatable result"
- msgstr ""
+-msgstr ""
++msgstr "résultat pointeur ou allouable"
  
 -#: fortran/resolve.c:2338
+-#, fuzzy
+-#| msgid "bit array slice with non-constant length"
 +#: fortran/resolve.c:2344
- #, fuzzy
- #| msgid "bit array slice with non-constant length"
  msgid "result with non-constant character length"
- msgstr "découpage de tableau de bits avec une longueur non constante"
+-msgstr "découpage de tableau de bits avec une longueur non constante"
++msgstr "résultat avec une longueur de caractères non constante"
  
 -#: fortran/resolve.c:2350
 +#: fortran/resolve.c:2356
  msgid "bind(c) procedure"
- msgstr ""
+-msgstr ""
++msgstr "procédure bind(c)"
  
 -#: fortran/resolve.c:3552
+-#, fuzzy, c-format
+-#| msgid "Invalid continuation line at %0"
 +#: fortran/resolve.c:3558
- #, fuzzy, c-format
- #| msgid "Invalid continuation line at %0"
++#, c-format
  msgid "Invalid context for NULL() pointer at %%L"
- msgstr "ligne de continuation invalide à %0"
+-msgstr "ligne de continuation invalide à %0"
++msgstr "Contexte invalide pour un pointeur NULL() à %%L"
  
 -#: fortran/resolve.c:3568
+-#, fuzzy, c-format
+-#| msgid "Invalid operand at %1 for concatenation operator at %0"
 +#: fortran/resolve.c:3574
- #, fuzzy, c-format
- #| msgid "Invalid operand at %1 for concatenation operator at %0"
++#, c-format
  msgid "Operand of unary numeric operator %%<%s%%> at %%L is %s"
- msgstr "Opérande invalide à %1 pour l'opérateur de concaténation à %0"
+-msgstr "Opérande invalide à %1 pour l'opérateur de concaténation à %0"
++msgstr "L'opérande de l'opérateur numérique unaire %%<%s%%> à %%L est %s"
  
 -#: fortran/resolve.c:3584
+-#, fuzzy, c-format
+-#| msgid "Invalid operand at %1 for concatenation operator at %0"
 +#: fortran/resolve.c:3590
- #, fuzzy, c-format
- #| msgid "Invalid operand at %1 for concatenation operator at %0"
++#, c-format
  msgid "Operands of binary numeric operator %%<%s%%> at %%L are %s/%s"
- msgstr "Opérande invalide à %1 pour l'opérateur de concaténation à %0"
+-msgstr "Opérande invalide à %1 pour l'opérateur de concaténation à %0"
++msgstr "Les opérandes de l'opérateur numérique binaire %%<%s%%> à %%L sont %s/%s"
  
 -#: fortran/resolve.c:3599
+-#, fuzzy, c-format
+-#| msgid "Invalid operand at %1 for concatenation operator at %0"
 +#: fortran/resolve.c:3605
- #, fuzzy, c-format
- #| msgid "Invalid operand at %1 for concatenation operator at %0"
++#, c-format
  msgid "Operands of string concatenation operator at %%L are %s/%s"
- msgstr "Opérande invalide à %1 pour l'opérateur de concaténation à %0"
+-msgstr "Opérande invalide à %1 pour l'opérateur de concaténation à %0"
++msgstr "Les opérandes de l'opérateur de concaténation de chaînes à %%L sont %s/%s"
  
 -#: fortran/resolve.c:3618
+-#, fuzzy, c-format
+-#| msgid "Invalid operand at %1 for concatenation operator at %0"
 +#: fortran/resolve.c:3624
- #, fuzzy, c-format
- #| msgid "Invalid operand at %1 for concatenation operator at %0"
++#, c-format
  msgid "Operands of logical operator %%<%s%%> at %%L are %s/%s"
- msgstr "Opérande invalide à %1 pour l'opérateur de concaténation à %0"
+-msgstr "Opérande invalide à %1 pour l'opérateur de concaténation à %0"
++msgstr "Les opérandes de l'opérateur logique %%<%s%%> à %%L sont %s/%s"
  
 -#: fortran/resolve.c:3632
 +#: fortran/resolve.c:3638
  #, c-format
  msgid "Operand of .not. operator at %%L is %s"
- msgstr ""
+-msgstr ""
++msgstr "L'opérande de l'opérateur .not. à %%L est %s"
  
 -#: fortran/resolve.c:3646
+-#, fuzzy
+-#| msgid "`%V' qualifiers cannot be applied to `%T'"
 +#: fortran/resolve.c:3652
- #, fuzzy
- #| msgid "`%V' qualifiers cannot be applied to `%T'"
  msgid "COMPLEX quantities cannot be compared at %L"
- msgstr "qualificateur « %V » ne peut pas être appliqué à « %T »"
+-msgstr "qualificateur « %V » ne peut pas être appliqué à « %T »"
++msgstr "Les quantités COMPLEX ne peuvent pas être comparées à %L"
  
 -#: fortran/resolve.c:3697
 +#: fortran/resolve.c:3703
  #, c-format
  msgid "Logicals at %%L must be compared with %s instead of %s"
- msgstr ""
+-msgstr ""
++msgstr "Les valeurs logiques à %%L doivent être comparées avec %s au lieu de %s"
  
 -#: fortran/resolve.c:3703
+-#, fuzzy, c-format
+-#| msgid "Invalid operand at %1 for concatenation operator at %0"
 +#: fortran/resolve.c:3709
- #, fuzzy, c-format
- #| msgid "Invalid operand at %1 for concatenation operator at %0"
++#, c-format
  msgid "Operands of comparison operator %%<%s%%> at %%L are %s/%s"
- msgstr "Opérande invalide à %1 pour l'opérateur de concaténation à %0"
+-msgstr "Opérande invalide à %1 pour l'opérateur de concaténation à %0"
++msgstr "Les opérandes de l'opérateur de comparaison %%<%s%%> à %%L sont %s/%s"
  
 -#: fortran/resolve.c:3711
+-#, fuzzy, c-format
+-#| msgid "Unknown operator '%s' at %%L"
 +#: fortran/resolve.c:3717
- #, fuzzy, c-format
- #| msgid "Unknown operator '%s' at %%L"
++#, c-format
  msgid "Unknown operator %%<%s%%> at %%L"
- msgstr "Opérateur inconnu « %s » à %%L"
+-msgstr "Opérateur inconnu « %s » à %%L"
++msgstr "Opérateur %%<%s%%> inconnu à %%L"
  
 -#: fortran/resolve.c:3714
+-#, fuzzy, c-format
+-#| msgid "Invalid operand at %1 for concatenation operator at %0"
 +#: fortran/resolve.c:3720
- #, fuzzy, c-format
- #| msgid "Invalid operand at %1 for concatenation operator at %0"
++#, c-format
  msgid "Operand of user operator %%<%s%%> at %%L is %s"
- msgstr "Opérande invalide à %1 pour l'opérateur de concaténation à %0"
+-msgstr "Opérande invalide à %1 pour l'opérateur de concaténation à %0"
++msgstr "L'opérande de l'opérateur utilisateur %%<%s%%> à %%L est %s"
  
 -#: fortran/resolve.c:3718
+-#, fuzzy, c-format
+-#| msgid "Invalid operand at %1 for concatenation operator at %0"
 +#: fortran/resolve.c:3724
- #, fuzzy, c-format
- #| msgid "Invalid operand at %1 for concatenation operator at %0"
++#, c-format
  msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
- msgstr "Opérande invalide à %1 pour l'opérateur de concaténation à %0"
+-msgstr "Opérande invalide à %1 pour l'opérateur de concaténation à %0"
++msgstr "Les opérandes de l'opérateur utilisateur %%<%s%%> à %%L sont %s/%s"
  
 -#: fortran/resolve.c:3806
 +#: fortran/resolve.c:3812
  #, c-format
  msgid "Inconsistent ranks for operator at %%L and %%L"
- msgstr ""
+-msgstr ""
++msgstr "Rangs inconsistant pour l'opérateur à %%L et %%L"
  
 -#: fortran/resolve.c:6470
 +#: fortran/resolve.c:6476
@@ -71978,28 +86943,32 @@ Index: gcc/po/fr.po
 -#: fortran/resolve.c:6474
 +#: fortran/resolve.c:6480
  msgid "iterator variable"
- msgstr "Variable d'itérateur"
+-msgstr "Variable d'itérateur"
++msgstr "variable d'itérateur"
  
 -#: fortran/resolve.c:6478
+-#, fuzzy
+-#| msgid "SET expression not a location"
 +#: fortran/resolve.c:6484
- #, fuzzy
- #| msgid "SET expression not a location"
  msgid "Start expression in DO loop"
- msgstr "expression de l'ENSEMBLE n'est pas une localisation"
+-msgstr "expression de l'ENSEMBLE n'est pas une localisation"
++msgstr "Expression de départ dans la boucle DO"
  
 -#: fortran/resolve.c:6482
+-#, fuzzy
+-#| msgid "SET expression not a location"
 +#: fortran/resolve.c:6488
- #, fuzzy
- #| msgid "SET expression not a location"
  msgid "End expression in DO loop"
- msgstr "expression de l'ENSEMBLE n'est pas une localisation"
+-msgstr "expression de l'ENSEMBLE n'est pas une localisation"
++msgstr "Expression de fin dans la boucle DO"
  
 -#: fortran/resolve.c:6486
+-#, fuzzy
+-#| msgid "SET expression not a location"
 +#: fortran/resolve.c:6492
- #, fuzzy
- #| msgid "SET expression not a location"
  msgid "Step expression in DO loop"
- msgstr "expression de l'ENSEMBLE n'est pas une localisation"
+-msgstr "expression de l'ENSEMBLE n'est pas une localisation"
++msgstr "Expression de pas dans la boucle DO"
  
 -#: fortran/resolve.c:6743 fortran/resolve.c:6746
 +#: fortran/resolve.c:6749 fortran/resolve.c:6752
@@ -72009,12 +86978,14 @@ Index: gcc/po/fr.po
 -#: fortran/resolve.c:7113 fortran/resolve.c:7116
 +#: fortran/resolve.c:7119 fortran/resolve.c:7122
  msgid "ALLOCATE object"
- msgstr "object ALLOCATE"
+-msgstr "object ALLOCATE"
++msgstr "objet ALLOCATE"
  
 -#: fortran/resolve.c:7345 fortran/resolve.c:8792
 +#: fortran/resolve.c:7351 fortran/resolve.c:8798
  msgid "STAT variable"
- msgstr "object STAT"
+-msgstr "object STAT"
++msgstr "variable STAT"
  
 -#: fortran/resolve.c:7389 fortran/resolve.c:8804
 +#: fortran/resolve.c:7395 fortran/resolve.c:8810
@@ -72031,50 +87002,361 @@ Index: gcc/po/fr.po
  msgid "ACQUIRED_LOCK variable"
  msgstr "variable ACQUIRED_LOCK"
  
-@@ -5384,26 +5375,26 @@
+@@ -5382,109 +5207,99 @@
+ #: fortran/trans-array.c:1428
+ #, c-format
  msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
- msgstr ""
+-msgstr ""
++msgstr "Longueurs de CHARACTER différentes (%ld/%ld) dans le constructeur de tableau"
  
 -#: fortran/trans-array.c:5484
 +#: fortran/trans-array.c:5491
  msgid "Integer overflow when calculating the amount of memory to allocate"
- msgstr ""
+-msgstr ""
++msgstr "Débordement d'entier en calculant la quantité de mémoire à allouer"
  
 -#: fortran/trans-decl.c:5490
 +#: fortran/trans-decl.c:5503
  #, c-format
  msgid "Actual string length does not match the declared one for dummy argument '%s' (%ld/%ld)"
- msgstr ""
+-msgstr ""
++msgstr "La longueur réelle de la chaîne ne correspond pas à celle déclarée pour l'argument fictif « %s » (%ld/%ld)"
  
 -#: fortran/trans-decl.c:5498
 +#: fortran/trans-decl.c:5511
  #, c-format
  msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
- msgstr ""
+-msgstr ""
++msgstr "La longueur réelle de la chaîne est plus courte que celle déclarée pour l'argument fictif « %s » (%ld/%ld)"
  
 -#: fortran/trans-expr.c:8140
 +#: fortran/trans-expr.c:8170
  #, c-format
  msgid "Target of rank remapping is too small (%ld < %ld)"
- msgstr ""
+-msgstr ""
++msgstr "La cible du remappage de rang est trop petite (%ld < %ld)"
  
 -#: fortran/trans-expr.c:9345
 +#: fortran/trans-expr.c:9375
  msgid "Assignment of scalar to unallocated array"
+-msgstr ""
++msgstr "Assignation d'un scalaire à un tableau non alloué"
+ 
+ #: fortran/trans-intrinsic.c:897
+ #, c-format
+ msgid "Unequal character lengths (%ld/%ld) in %s"
+-msgstr ""
++msgstr "Longueurs de caractères inégales (%ld/%ld) dans %s"
+ 
+ #: fortran/trans-intrinsic.c:7002
+ #, c-format
+ msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
+-msgstr ""
++msgstr "L'argument NCOPIES de l'intrinsèque REPEAT est négatif (sa valeur est %ld)"
+ 
+ #: fortran/trans-intrinsic.c:7034
+ msgid "Argument NCOPIES of REPEAT intrinsic is too large"
+-msgstr ""
++msgstr "L'argument NCOPIES de l'intrinsèque REPEAT est trop grand"
+ 
+ #: fortran/trans-io.c:560
+-#, fuzzy
+-#| msgid "Spurious number in FORMAT statement at %0"
+ msgid "Unit number in I/O statement too small"
+-msgstr "faux nombre dans la déclaration de FORMAT à %0"
++msgstr "Le numéro d'unité dans l'expression E/S est trop petit"
+ 
+ #: fortran/trans-io.c:569
+-#, fuzzy
+-#| msgid "Spurious number in FORMAT statement at %0"
+ msgid "Unit number in I/O statement too large"
+-msgstr "faux nombre dans la déclaration de FORMAT à %0"
++msgstr "Le numéro d'unité dans l'expression E/S est trop grand"
+ 
+ #: fortran/trans-stmt.c:156
+-#, fuzzy
+-#| msgid "mode in label is not discrete"
+ msgid "Assigned label is not a target label"
+-msgstr "mode dans l'étiquette n'est pas discret"
++msgstr "L'étiquette assignée n'est pas une étiquette cible"
+ 
+ #: fortran/trans-stmt.c:1101
+ #, c-format
+ msgid "Invalid image number %d in SYNC IMAGES"
+-msgstr ""
++msgstr "Numéro d'image %d invalide dans SYNC IMAGES"
+ 
+ #: fortran/trans-stmt.c:1898 fortran/trans-stmt.c:2183
+ msgid "Loop variable has been modified"
+-msgstr ""
++msgstr "La variable de boucle a été modifiée"
+ 
+ #: fortran/trans-stmt.c:2038
+ msgid "DO step value is zero"
+-msgstr ""
++msgstr "La valeur de pas de DO est zéro"
+ 
+ #: fortran/trans.c:47
+-#, fuzzy
+-#| msgid "forming reference to void"
+ msgid "Array reference out of bounds"
+-msgstr "formation d'une référence en void"
++msgstr "Référence de tableau hors limites"
+ 
+ #: fortran/trans.c:48
+-#, fuzzy
+-#| msgid "`noreturn' function returns non-void value"
+ msgid "Incorrect function return value"
+-msgstr "fonction marquée « noreturn » retourne une valeur n'étant pas de type « void »"
++msgstr "Valeur de retour de fonction invalide"
+ 
+ #: fortran/trans.c:607
+ msgid "Memory allocation failed"
+-msgstr ""
++msgstr "L'allocation de mémoire a échoué"
+ 
+ #: fortran/trans.c:688 fortran/trans.c:1527
+ msgid "Allocation would exceed memory limit"
+-msgstr ""
++msgstr "L'allocation dépasserait la limite de la mémoire"
+ 
+ #: fortran/trans.c:858
+ #, c-format
+ msgid "Attempting to allocate already allocated variable '%s'"
+-msgstr ""
++msgstr "Tentative d'allouer la variable « %s » qui est déjà allouée"
+ 
+ #: fortran/trans.c:864
+ msgid "Attempting to allocate already allocated variable"
+-msgstr ""
++msgstr "Tentative d'allouer une variable déjà allouée"
+ 
+ #: fortran/trans.c:1274 fortran/trans.c:1428
+ #, c-format
+ msgid "Attempt to DEALLOCATE unallocated '%s'"
+-msgstr ""
++msgstr "Tentative d'utiliser DEALLOCATE sur « %s » qui n'est pas alloué"
+ 
+ #. The remainder are real diagnostic types.
+ #: fortran/gfc-diagnostic.def:33
+@@ -5494,10 +5309,8 @@
+ #. This is like DK_ICE, but backtrace is not printed.  Used in the driver
+ #. when reporting fatal signal in the compiler.
+ #: fortran/gfc-diagnostic.def:34 fortran/gfc-diagnostic.def:50
+-#, fuzzy
+-#| msgid "internal compiler error: "
+ msgid "internal compiler error"
+-msgstr "erreur interne du compilateur: "
++msgstr "erreur interne du compilateur"
+ 
+ #: fortran/gfc-diagnostic.def:35
+ msgid "Error"
+@@ -5513,7 +5326,7 @@
+ 
+ #: fortran/gfc-diagnostic.def:38
+ msgid "anachronism"
+-msgstr "Anachronisme"
++msgstr "anachronisme"
+ 
+ #: fortran/gfc-diagnostic.def:39
+ msgid "note"
+@@ -5541,29 +5354,29 @@
+ 
+ #: go/go-backend.c:171
+ msgid "lseek failed while reading export data"
+-msgstr ""
++msgstr "lseek a échoué en lisant les données d'export"
+ 
+ #: go/go-backend.c:178
+ msgid "memory allocation failed while reading export data"
+-msgstr ""
++msgstr "l'allocation de mémoire a échoué en lisant les données d'export"
+ 
+ #: go/go-backend.c:186
+ msgid "read failed while reading export data"
+-msgstr ""
++msgstr "la lecture a échoué en lisant les données d'export"
+ 
+ #: go/go-backend.c:192
+ msgid "short read while reading export data"
+-msgstr ""
++msgstr "trop peu de données lues en lisant les données d'export"
+ 
+ #: java/jcf-dump.c:1127
+ #, c-format
+ msgid "Not a valid Java .class file.\n"
+-msgstr "n'est pas un fichier Java .class valide.\n"
++msgstr "N'est pas un fichier Java .class valide.\n"
+ 
+ #: java/jcf-dump.c:1133
+ #, c-format
+ msgid "error while parsing constant pool\n"
+-msgstr "error lors de l'analyse syntaxique du lots de constantes\n"
++msgstr "erreur lors de l'analyse syntaxique du lots de constantes\n"
+ 
+ #: java/jcf-dump.c:1139 java/jcf-parse.c:1429
+ #, gcc-internal-format, gfc-internal-format
+@@ -5583,7 +5396,7 @@
+ #: java/jcf-dump.c:1161
+ #, c-format
+ msgid "error while parsing final attributes\n"
+-msgstr "erreur lors de l'analyse syntaxique des attributs\n"
++msgstr "erreur lors de l'analyse syntaxique des attributs finaux\n"
+ 
+ #: java/jcf-dump.c:1198
+ #, c-format
+@@ -5605,63 +5418,58 @@
+ "Display contents of a class file in readable form.\n"
+ "\n"
+ msgstr ""
++"Afficher le contenu d'un fichier de classe dans une forme lisible.\n"
++"\n"
+ 
+ #: java/jcf-dump.c:1207
+-#, fuzzy, c-format
+-#| msgid "  -W                      Enable extra warnings\n"
++#, c-format
+ msgid "  -c                      Disassemble method bodies\n"
+-msgstr "  -c                      autoriser les avertissements additionnels\n"
++msgstr "  -c                      Désassembler les corps des méthodes\n"
+ 
+ #: java/jcf-dump.c:1208
+-#, fuzzy, c-format
+-#| msgid "  --help                   Display this information\n"
++#, c-format
+ msgid "  --javap                 Generate output in 'javap' format\n"
+-msgstr "  --javap                 afficher l'aide mémoire\n"
++msgstr "  --javap                 Générer la sortie au format « javap »\n"
+ 
+ #: java/jcf-dump.c:1210
+ #, c-format
+ msgid "  --classpath PATH        Set path to find .class files\n"
+-msgstr ""
++msgstr "  --classpath CHEMIN      Fixer le chemin pour trouver les fichiers .class\n"
+ 
+ #: java/jcf-dump.c:1211
+-#, fuzzy, c-format
+-#| msgid "  -B <directory>           Add <directory> to the compiler's search paths\n"
++#, c-format
+ msgid "  -IDIR                   Append directory to class path\n"
+-msgstr "  -B <répertoire>          ajouter le <répertoire> aux chemins de recherche du compilateur\n"
++msgstr "  -IDIR                   Ajouter le répertoire au chemin des classes\n"
+ 
+ #: java/jcf-dump.c:1212
+ #, c-format
+ msgid "  --bootclasspath PATH    Override built-in class path\n"
+-msgstr ""
++msgstr "  --bootclasspath CHEMIN  Écraser le chemin de classe intégré\n"
+ 
+ #: java/jcf-dump.c:1213
+ #, c-format
+ msgid "  --extdirs PATH          Set extensions directory path\n"
+-msgstr ""
++msgstr "  --extdirs CHEMIN        Fixer le chemin du répertoire des extensions\n"
+ 
+ #: java/jcf-dump.c:1214
+-#, fuzzy, c-format
+-#| msgid "  -o <file>                Place the output into <file>\n"
++#, c-format
+ msgid "  -o FILE                 Set output file name\n"
+-msgstr "  -o FICHIER             placer la sortie dans le <fichier>\n"
++msgstr "  -o FICHIER              Choisi le nom du fichier de sortie\n"
+ 
+ #: java/jcf-dump.c:1216
+-#, fuzzy, c-format
+-#| msgid "  -h, --help                      Print this help, then exit\n"
++#, c-format
+ msgid "  --help                  Print this help, then exit\n"
+-msgstr "  -h, --help               afficher l'aide mémoire\n"
++msgstr "  --help                  Afficher cette aide puis quitter\n"
+ 
+ #: java/jcf-dump.c:1217
+-#, fuzzy, c-format
+-#| msgid "  -v, --version                   Print version number, then exit\n"
++#, c-format
+ msgid "  --version               Print version number, then exit\n"
+-msgstr "  -v, --version            exécuter le numéro de <version> de gcc, si installée\n"
++msgstr "  --version               Afficher le numéro de version puis quitter\n"
+ 
+ #: java/jcf-dump.c:1218
+-#, fuzzy, c-format
+-#| msgid "  -v, --version                   Print version number, then exit\n"
++#, c-format
+ msgid "  -v, --verbose           Print extra information while running\n"
+-msgstr "  -v, --version            exécuter le numéro de <version> de gcc, si installée\n"
++msgstr "  -v, --verbose           Afficher des informations supplémentaires pendant l'exécution\n"
+ 
+ #: java/jcf-dump.c:1220
+ #, c-format
+@@ -5669,13 +5477,13 @@
+ "For bug reporting instructions, please see:\n"
+ "%s.\n"
  msgstr ""
+-"Pour les instructions de rapport des anomales, veuillez consulter :\n"
++"Pour les instructions de rapport des anomalies, veuillez consulter :\n"
+ "%s.\n"
+ 
+ #: java/jcf-dump.c:1258 java/jcf-dump.c:1326
+ #, c-format
+ msgid "jcf-dump: no classes specified\n"
+-msgstr "jcf-dump : pas de classes spécifiées\n"
++msgstr "jcf-dump: pas de classes spécifiées\n"
+ 
+ #: java/jcf-dump.c:1346
+ #, c-format
+@@ -5685,7 +5493,7 @@
+ #: java/jcf-dump.c:1391
+ #, c-format
+ msgid "bad format of .zip/.jar archive\n"
+-msgstr "format d'archive .zip/.jar incorrect\n"
++msgstr "mauvais format d'archive .zip/.jar\n"
+ 
+ #: java/jcf-dump.c:1509
+ #, c-format
+@@ -5695,19 +5503,19 @@
+ #: java/jvgenmain.c:44
+ #, c-format
+ msgid "Usage: %s [OPTIONS]... CLASSNAMEmain [OUTFILE]\n"
+-msgstr "Usage : %s [OPTION]… NOMCLASSprincipale [FICHIERSORTIE]\n"
++msgstr "Usage : %s [OPTIONS]… NOMCLASSprincipale [FICHIERSORTIE]\n"
  
-@@ -5707,7 +5698,7 @@
+ #: java/jvgenmain.c:117
+ #, c-format
+ msgid "%s: Cannot open output file: %s\n"
+-msgstr "%s : impossible d'ouvrir le fichier : %s\n"
++msgstr "%s: Impossible d'ouvrir le fichier de sortie : %s\n"
+ 
+ #: java/jvgenmain.c:167
+ #, c-format
  msgid "%s: Failed to close output file %s\n"
- msgstr "%s : Impossible de fermer le fichier de sortie %s\n"
+-msgstr "%s : Impossible de fermer le fichier de sortie %s\n"
++msgstr "%s: Impossible de fermer le fichier de sortie %s\n"
  
 -#: objc/objc-act.c:6179 cp/cxx-pretty-print.c:156
 +#: objc/objc-act.c:6179 cp/cxx-pretty-print.c:159
  #, gcc-internal-format
  msgid "<unnamed>"
  msgstr "<sans nom>"
-@@ -5744,91 +5735,121 @@
+@@ -5726,11 +5534,11 @@
+ 
+ #: gcc.c:976
+ msgid "cannot specify -static with -fsanitize=address"
+-msgstr "Impossible de spécifier -static avec -fsanitize=adresse"
++msgstr "impossible de spécifier -static avec -fsanitize=adresse"
+ 
+ #: gcc.c:978
+ msgid "cannot specify -static with -fsanitize=thread"
+-msgstr ""
++msgstr "impossible de spécifier -static avec -fsanitize=thread"
+ 
+ #: gcc.c:1122 ada/gcc-interface/lang-specs.h:33 java/jvspec.c:79
+ msgid "-pg and -fomit-frame-pointer are incompatible"
+@@ -5742,111 +5550,123 @@
+ 
+ #: gcc.c:1307
  msgid "-E or -x required when input is from standard input"
- msgstr "-E ou -x est requis lorsque l'entrée est faite à partir de l'entrée standard"
+-msgstr "-E ou -x est requis lorsque l'entrée est faite à partir de l'entrée standard"
++msgstr "-E ou -x est requis lorsque l'entrée vient de l'entrée standard"
  
 -#: config/nios2/elf.h:44
 -msgid "You need a C startup file for -msys-crt0="
@@ -72104,7 +87386,8 @@ Index: gcc/po/fr.po
 -#: config/darwin.h:253
 +#: config/darwin.h:254
  msgid "-install_name only allowed with -dynamiclib"
- msgstr "-install_name permis seulement avec with -dynamiclib"
+-msgstr "-install_name permis seulement avec with -dynamiclib"
++msgstr "-install_name permis seulement avec -dynamiclib"
  
 -#: config/darwin.h:258
 +#: config/darwin.h:259
@@ -72141,53 +87424,34 @@ Index: gcc/po/fr.po
 -#: config/sparc/sol2.h:219 config/sparc/sol2.h:225
 -msgid "may not use both -m32 and -m64"
 -msgstr "ne peut utiliser ensemble -m32 et -m64"
--
--#: config/s390/tpf.h:110
--msgid "static is not supported on TPF-OS"
--msgstr "static n'est pas supporté sur TPF-OS"
--
--#: config/i386/mingw-w64.h:87 config/i386/mingw32.h:117
--#: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:130
--msgid "shared and mdll are not compatible"
--msgstr "shared et mdll ne sont pas compatibles"
--
--#: config/alpha/freebsd.h:33 config/rs6000/sysv4.h:731 config/dragonfly.h:76
--#: config/ia64/freebsd.h:26 config/i386/freebsd.h:82
--#: config/i386/freebsd64.h:35 config/sparc/freebsd.h:45
 +#: config/dragonfly.h:76 config/alpha/freebsd.h:33 config/i386/freebsd.h:82
 +#: config/i386/freebsd64.h:35 config/ia64/freebsd.h:26
 +#: config/rs6000/sysv4.h:731 config/sparc/freebsd.h:45
- msgid "consider using '-pg' instead of '-p' with gprof(1)"
- msgstr ""
++msgid "consider using '-pg' instead of '-p' with gprof(1)"
++msgstr "envisagez d'utiliser « -pg » au lieu de « -p » avec gprof(1)"
  
--#: objc/lang-specs.h:30 objc/lang-specs.h:41
--msgid "GNU Objective C no longer supports traditional compilation"
+-#: config/s390/tpf.h:110
+-msgid "static is not supported on TPF-OS"
+-msgstr "static n'est pas supporté sur TPF-OS"
 +#: config/lynx.h:69
 +msgid "cannot use mthreads and mlegacy-threads together"
- msgstr ""
++msgstr "impossible d'utiliser simultanément mthreads et mlegacy-threads"
  
--#: objc/lang-specs.h:55
--msgid "objc-cpp-output is deprecated; please use objective-c-cpp-output instead"
 +#: config/lynx.h:94
 +msgid "cannot use mshared and static together"
- msgstr ""
- 
--#: config/tilegx/tilegx.h:546 config/tilegx/tilegx.h:551 config/arm/arm.h:102
++msgstr "impossible d'utiliser simultanément mshared et static"
++
 +#: config/sol2.h:181
-+#, fuzzy
-+#| msgid "-m%s not supported in this configuration"
 +msgid "-fvtable-verify is not supported in this configuration"
-+msgstr "-m%s n'est pas supporté par cette configuration"
++msgstr "-fvtable-verify n'est pas supporté par cette configuration"
 +
 +#: config/sol2.h:268 config/sol2.h:273
 +msgid "does not support multilib"
 +msgstr "ne supporte pas multilib"
 +
 +#: config/sol2.h:365
-+#, fuzzy
-+#| msgid "-gz is not supported in this configuration"
 +msgid "-pie is not supported in this configuration"
-+msgstr "-gz n'est pas supporté par cette configuration"
++msgstr "-pie n'est pas supporté par cette configuration"
 +
 +#: config/vxworks.h:70
 +msgid "-Xbind-now and -Xbind-lazy are incompatible"
@@ -72195,66 +87459,78 @@ Index: gcc/po/fr.po
 +
 +#: config/arc/arc.h:142 config/mips/mips.h:1358
 +msgid "may not use both -EB and -EL"
-+msgstr "ne peut utiliser ensemble -EB et -EL"
++msgstr "ne peut utiliser -EB et -EL ensemble"
 +
 +#: config/arm/arm.h:100
 +msgid "-mfloat-abi=soft and -mfloat-abi=hard may not be used together"
-+msgstr "-mfloat-abi=soft et -mfloat-abi=hard ne peuvent être utilisées ensembles"
++msgstr "-mfloat-abi=soft et -mfloat-abi=hard ne peuvent pas être utilisés ensemble"
 +
 +#: config/arm/arm.h:102 config/tilegx/tilegx.h:546 config/tilegx/tilegx.h:551
- msgid "-mbig-endian and -mlittle-endian may not be used together"
- msgstr "-mbig-endian et -mlittle-endian ne peuvent être utilisés ensemble"
- 
++msgid "-mbig-endian and -mlittle-endian may not be used together"
++msgstr "-mbig-endian et -mlittle-endian ne peuvent être utilisés ensemble"
++
 +#: config/arm/freebsd.h:49
 +msgid "consider using `-pg' instead of `-p' with gprof (1) "
-+msgstr ""
++msgstr "envisagez d'utiliser « -pg » au lieu de « -p » avec gprof (1)"
 +
 +#: config/avr/specs.h:68
 +msgid "shared is not supported"
 +msgstr "shared n'est pas supporté"
 +
 +#: config/bfin/elf.h:55
-+#, fuzzy
-+#| msgid "spec file has no spec for linking"
 +msgid "no processor type specified for linking"
-+msgstr "fichier de specs n'a pas de spécification pour l'édition de liens"
++msgstr "pas de type de processeur spécifié pour l'édition de liens"
 +
 +#: config/cris/cris.h:184
 +msgid "do not specify both -march=... and -mcpu=..."
-+msgstr "ne peut spécifier à la fois -march=… et -mcpu=…"
++msgstr "ne spécifiez pas à la fois -march=… et -mcpu=…"
 +
 +#: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:130
-+#: config/i386/mingw-w64.h:87 config/i386/mingw32.h:117
-+msgid "shared and mdll are not compatible"
-+msgstr "shared et mdll ne sont pas compatibles"
-+
+ #: config/i386/mingw-w64.h:87 config/i386/mingw32.h:117
+-#: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:130
+ msgid "shared and mdll are not compatible"
+ msgstr "shared et mdll ne sont pas compatibles"
+ 
+-#: config/alpha/freebsd.h:33 config/rs6000/sysv4.h:731 config/dragonfly.h:76
+-#: config/ia64/freebsd.h:26 config/i386/freebsd.h:82
+-#: config/i386/freebsd64.h:35 config/sparc/freebsd.h:45
+-msgid "consider using '-pg' instead of '-p' with gprof(1)"
+-msgstr ""
 +#: config/mcore/mcore.h:53
 +msgid "the m210 does not have little endian support"
-+msgstr "Le m210 ne supporte pas le code pour système à octets de poids faible"
-+
++msgstr "le m210 ne supporte pas les systèmes à octets de poids faible"
+ 
+-#: objc/lang-specs.h:30 objc/lang-specs.h:41
+-msgid "GNU Objective C no longer supports traditional compilation"
+-msgstr ""
 +#: config/mips/r3900.h:37
 +msgid "-mhard-float not supported"
 +msgstr "-mhard-float n'est pas supporté"
-+
+ 
+-#: objc/lang-specs.h:55
+-msgid "objc-cpp-output is deprecated; please use objective-c-cpp-output instead"
+-msgstr ""
 +#: config/mips/r3900.h:39
-+#, fuzzy
-+#| msgid "-msingle-float and -msoft-float can not both be specified"
 +msgid "-msingle-float and -msoft-float cannot both be specified"
-+msgstr "-msingle-float et -msoft-float ne peuvent être spécifiés ensembles"
-+
++msgstr "-msingle-float et -msoft-float ne peuvent être spécifiés ensemble"
+ 
+-#: config/tilegx/tilegx.h:546 config/tilegx/tilegx.h:551 config/arm/arm.h:102
+-msgid "-mbig-endian and -mlittle-endian may not be used together"
+-msgstr "-mbig-endian et -mlittle-endian ne peuvent être utilisés ensemble"
+-
  #: config/moxie/moxiebox.h:43
- #, fuzzy
- #| msgid "Generate code for little endian"
-@@ -5835,18 +5856,10 @@
+-#, fuzzy
+-#| msgid "Generate code for little endian"
  msgid "this target is little-endian"
- msgstr "Générer du code pour un système à octets de poids faible"
+-msgstr "Générer du code pour un système à octets de poids faible"
++msgstr "cette cible est petit-boutien"
  
 -#: ada/gcc-interface/lang-specs.h:34
 -msgid "-c or -S required for Ada"
 -msgstr "-c ou -S requis pour Ada"
 +#: config/nios2/elf.h:44
 +msgid "You need a C startup file for -msys-crt0="
-+msgstr ""
++msgstr "Vous avez besoin d'un fichier de démarrage C pour -msys-crt0="
  
 -#: ada/gcc-interface/lang-specs.h:52
 -msgid "-c required for gnat2why"
@@ -72267,23 +87543,35 @@ Index: gcc/po/fr.po
  #: config/pa/pa-hpux10.h:102 config/pa/pa-hpux10.h:105
  #: config/pa/pa-hpux10.h:113 config/pa/pa-hpux10.h:116
  #: config/pa/pa-hpux11.h:134 config/pa/pa-hpux11.h:137
-@@ -5863,29 +5876,29 @@
+@@ -5853,7 +5673,7 @@
+ #: config/pa/pa64-hpux.h:29 config/pa/pa64-hpux.h:32 config/pa/pa64-hpux.h:41
+ #: config/pa/pa64-hpux.h:44
+ msgid "warning: consider linking with '-static' as system libraries with"
+-msgstr ""
++msgstr "attention: envisagez de lier avec « -static » car les bibliothèques système avec"
+ 
+ #: config/pa/pa-hpux10.h:103 config/pa/pa-hpux10.h:106
+ #: config/pa/pa-hpux10.h:114 config/pa/pa-hpux10.h:117
+@@ -5861,100 +5681,66 @@
+ #: config/pa/pa64-hpux.h:30 config/pa/pa64-hpux.h:33 config/pa/pa64-hpux.h:42
+ #: config/pa/pa64-hpux.h:45
  msgid "  profiling support are only provided in archive format"
- msgstr ""
+-msgstr ""
++msgstr " support pour le profilage sont uniquement fournies dans ce format d'archive"
  
 -#: config/vxworks.h:70
 -msgid "-Xbind-now and -Xbind-lazy are incompatible"
 -msgstr "-Xbind-now et -Xbind-lazy sont incompatibles"
 +#: config/rs6000/darwin.h:95
 +msgid " conflicting code gen style switches are used"
-+msgstr " code de génération de style de switches utilisées est en conflit"
++msgstr " les sélecteurs de style de génération de code utilisés sont en conflit"
  
 -#: config/cris/cris.h:184
 -msgid "do not specify both -march=... and -mcpu=..."
 -msgstr "ne peut spécifier à la fois -march=… et -mcpu=…"
 +#: config/rs6000/freebsd64.h:171
 +msgid "consider using `-pg' instead of `-p' with gprof(1)"
-+msgstr ""
++msgstr "envisagez d'utiliser « -pg » au lieu de « -p » avec gprof(1)"
  
 -#: config/arc/arc.h:142 config/mips/mips.h:1358
 -msgid "may not use both -EB and -EL"
@@ -72297,14 +87585,14 @@ Index: gcc/po/fr.po
 -msgstr ""
 +#: config/rx/rx.h:81
 +msgid "rx100 cpu does not have FPU hardware"
-+msgstr "le processeur rx100 n'a pas de d'unité matérielle FPU"
++msgstr "le processeur rx100 n'a pas de d'unité FPU matérielle"
  
 -#: config/rs6000/darwin.h:95
 -msgid " conflicting code gen style switches are used"
 -msgstr " code de génération de style de switches utilisées est en conflit"
 +#: config/rx/rx.h:82
 +msgid "rx200 cpu does not have FPU hardware"
-+msgstr "le processeur rx200 n'a pas de d'unité matérielle FPU"
++msgstr "le processeur rx200 n'a pas de d'unité FPU matérielle"
  
 -#: fortran/lang-specs.h:54 fortran/lang-specs.h:68
 -msgid "gfortran does not support -E without -cpp"
@@ -72314,10 +87602,11 @@ Index: gcc/po/fr.po
 +msgstr "static n'est pas supporté sur TPF-OS"
  
  #: config/sh/sh.h:375 config/sh/sh.h:378
- #, fuzzy
-@@ -5893,14 +5906,12 @@
+-#, fuzzy
+-#| msgid "does not support multilib"
  msgid "SH2a does not support little-endian"
- msgstr "ne supporte pas multilib"
+-msgstr "ne supporte pas multilib"
++msgstr "SH2a ne supporte pas les petits-boutistes"
  
 -#: config/avr/specs.h:68
 -msgid "shared is not supported"
@@ -72326,18 +87615,18 @@ Index: gcc/po/fr.po
 +#: config/sparc/netbsd-elf.h:108 config/sparc/netbsd-elf.h:117
 +#: config/sparc/sol2.h:228 config/sparc/sol2.h:234
 +msgid "may not use both -m32 and -m64"
-+msgstr "ne peut utiliser ensemble -m32 et -m64"
++msgstr "ne peut utiliser -m32 et -m64 ensemble"
  
 -#: config/arm/arm.h:100
 -msgid "-mfloat-abi=soft and -mfloat-abi=hard may not be used together"
 -msgstr "-mfloat-abi=soft et -mfloat-abi=hard ne peuvent être utilisées ensembles"
 -
  #: config/vax/netbsd-elf.h:51
- #, fuzzy
- #| msgid "The -shared option is not currently supported for VAX ELF."
-@@ -5907,54 +5918,26 @@
+-#, fuzzy
+-#| msgid "The -shared option is not currently supported for VAX ELF."
  msgid "the -shared option is not currently supported for VAX ELF"
- msgstr "L'option -shared n'est pas couramment supportée pour VAS ELF."
+-msgstr "L'option -shared n'est pas couramment supportée pour VAS ELF."
++msgstr "l'option -shared n'est actuellement pas supportée pour un ELF VAX."
  
 -#: config/mips/r3900.h:37
 -msgid "-mhard-float not supported"
@@ -72351,7 +87640,8 @@ Index: gcc/po/fr.po
 -
  #: config/vax/vax.h:46 config/vax/vax.h:47
  msgid "profiling not supported with -mg"
- msgstr "profilage n'est pas supporté avec -mg"
+-msgstr "profilage n'est pas supporté avec -mg"
++msgstr "le profilage n'est pas supporté avec -mg"
  
 -#: config/rs6000/freebsd64.h:171
 -msgid "consider using `-pg' instead of `-p' with gprof(1)"
@@ -72402,29 +87692,36 @@ Index: gcc/po/fr.po
  #: java/lang-specs.h:32
  msgid "-fjni and -femit-class-files are incompatible"
  msgstr "-fjni et -femit-class-files sont incompatibles"
-@@ -5967,10 +5950,18 @@
+@@ -5965,15 +5751,23 @@
+ 
+ #: java/lang-specs.h:34 java/lang-specs.h:35
  msgid "-femit-class-file should used along with -fsyntax-only"
- msgstr "-femit-class-file dervait être utilisé avec -fsyntax-only"
+-msgstr "-femit-class-file dervait être utilisé avec -fsyntax-only"
++msgstr "-femit-class-file devrait être utilisé avec -fsyntax-only"
  
 -#: config/mcore/mcore.h:53
 -msgid "the m210 does not have little endian support"
 -msgstr "Le m210 ne supporte pas le code pour système à octets de poids faible"
 +#: objc/lang-specs.h:30 objc/lang-specs.h:41
 +msgid "GNU Objective C no longer supports traditional compilation"
-+msgstr ""
++msgstr "GNU Objective C ne supporte plus la compilation traditionnelle"
  
 +#: objc/lang-specs.h:55
 +msgid "objc-cpp-output is deprecated; please use objective-c-cpp-output instead"
-+msgstr ""
++msgstr "objc-cpp-output est déprécié; utilisez plutôt objective-c-cpp-output"
 +
 +#: objcp/lang-specs.h:58
 +msgid "objc++-cpp-output is deprecated; please use objective-c++-cpp-output instead"
-+msgstr ""
++msgstr "objc++-cpp-output est déprécié; utilisez plutôt objective-c++-cpp-output"
 +
  #: fortran/lang.opt:146
  msgid "-J<directory>\tPut MODULE files in 'directory'."
- msgstr ""
-@@ -6181,22 +6172,34 @@
+-msgstr ""
++msgstr "-J<répertoire>\tPlace les fichiers de MODULE dans « répertoire »."
+ 
+ #: fortran/lang.opt:198
+ #, fuzzy
+@@ -6181,22 +5975,34 @@
  msgstr ""
  
  #: fortran/lang.opt:421
@@ -72463,7 +87760,7 @@ Index: gcc/po/fr.po
  #: common.opt:920 common.opt:924 common.opt:928 common.opt:932 common.opt:1421
  #: common.opt:1570 common.opt:1574 common.opt:1800 common.opt:1946
  #: common.opt:2598
-@@ -6203,233 +6206,233 @@
+@@ -6203,233 +6009,233 @@
  msgid "Does nothing. Preserved for backward compatibility."
  msgstr ""
  
@@ -72748,7 +88045,7 @@ Index: gcc/po/fr.po
  #: c-family/c.opt:1409 config/pa/pa.opt:42 config/pa/pa.opt:66
  #: config/sh/sh.opt:213 common.opt:1074 common.opt:1301 common.opt:1653
  #: common.opt:1999 common.opt:2035 common.opt:2124 common.opt:2128
-@@ -6438,41 +6441,41 @@
+@@ -6438,41 +6244,41 @@
  msgid "Does nothing.  Preserved for backward compatibility."
  msgstr ""
  
@@ -72797,7 +88094,7 @@ Index: gcc/po/fr.po
  #, fuzzy
  #| msgid "Accept extensions to support legacy code"
  msgid "Accept extensions to support legacy code."
-@@ -9361,7 +9364,7 @@
+@@ -9361,7 +9167,7 @@
  msgstr "Spécifier la taille de bit des décalages immédiats TLS"
  
  #: config/ia64/ia64.opt:122 config/spu/spu.opt:84 config/i386/i386.opt:504
@@ -72806,7 +88103,7 @@ Index: gcc/po/fr.po
  #: config/visium/visium.opt:49
  #, fuzzy
  #| msgid "Schedule code for given CPU"
-@@ -9640,8 +9643,7 @@
+@@ -9640,8 +9446,7 @@
  msgid "target the software simulator."
  msgstr ""
  
@@ -72816,7 +88113,7 @@ Index: gcc/po/fr.po
  #, fuzzy
  #| msgid "Use ROM instead of RAM"
  msgid "Use LRA instead of reload."
-@@ -11757,98 +11759,104 @@
+@@ -11757,98 +11562,104 @@
  #: config/sparc/sparc.opt:78
  #, fuzzy
  #| msgid "Use hardware floating point instructions"
@@ -72938,7 +88235,7 @@ Index: gcc/po/fr.po
  msgid "Specify the memory model in effect for the program."
  msgstr ""
  
-@@ -12282,6 +12290,12 @@
+@@ -12282,6 +12093,12 @@
  msgid "-mlong-double-<n>\tSpecify size of long double (64 or 128 bits)."
  msgstr "-mlong-double-<n>\tSpécifier la taille des long double (64 ou 128 bits)"
  
@@ -72951,7 +88248,7 @@ Index: gcc/po/fr.po
  #: config/rs6000/rs6000.opt:478
  #, fuzzy
  #| msgid "Determine which dependences between insns are considered costly"
-@@ -12410,35 +12424,55 @@
+@@ -12410,35 +12227,55 @@
  msgid "Fuse certain operations together for better performance on power9."
  msgstr ""
  
@@ -73015,7 +88312,7 @@ Index: gcc/po/fr.po
  msgid "Enable/disable default conversions between __float128 & long double."
  msgstr ""
  
-@@ -18416,8 +18450,8 @@
+@@ -18416,8 +18253,8 @@
  msgid "expected boolean type"
  msgstr "un nom de type attendu"
  
@@ -73026,7 +88323,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "Expected integer"
  msgid "expected integer"
-@@ -18982,44 +19016,44 @@
+@@ -18982,44 +18819,44 @@
  msgid "type attributes ignored after type is already defined"
  msgstr "type d'attributs sont honorés seulement lors de la définitions de type"
  
@@ -73079,7 +88376,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "%s: cannot get working directory: %s\n"
  msgid "Cannot read working set from %s."
-@@ -19256,12 +19290,12 @@
+@@ -19256,12 +19093,12 @@
  msgid "%Kattempt to free a non-heap object"
  msgstr ""
  
@@ -73094,7 +88391,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "Pass all arguments on stack"
  msgid "passing too large argument on stack"
-@@ -19376,33 +19410,33 @@
+@@ -19376,33 +19213,33 @@
  #: cfghooks.c:160
  #, gcc-internal-format, gfc-internal-format
  msgid "verify_flow_info: Duplicate edge %i->%i"
@@ -73134,7 +88431,7 @@ Index: gcc/po/fr.po
  
  # FIXME
  #: cfghooks.c:218
-@@ -19414,7 +19448,7 @@
+@@ -19414,7 +19251,7 @@
  #: cfghooks.c:247
  #, gcc-internal-format, gfc-internal-format
  msgid "basic block %i edge lists are corrupted"
@@ -73143,7 +88440,7 @@ Index: gcc/po/fr.po
  
  #: cfghooks.c:260
  #, gcc-internal-format
-@@ -19703,184 +19737,184 @@
+@@ -19703,184 +19540,184 @@
  msgid "%d exits recorded for loop %d (having %d exits)"
  msgstr ""
  
@@ -73366,7 +88663,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "basic blocks not laid down consecutively"
  msgstr "les blocs de base ne se suivent pas consécutivement"
-@@ -19887,257 +19921,257 @@
+@@ -19887,257 +19724,257 @@
  
  # FIXME
  # bb est une abréviation courante dans cette partie du fichier pour « basic block »
@@ -73673,7 +88970,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "verify_flow_info failed"
  msgid "verify_cgraph_node failed"
-@@ -20144,7 +20178,7 @@
+@@ -20144,7 +19981,7 @@
  msgstr "verify_flow_info a échoué"
  
  # FIXME
@@ -73682,7 +88979,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "string section missing"
  msgid "%s: section %s is missing"
-@@ -20178,13 +20212,13 @@
+@@ -20178,13 +20015,13 @@
  msgstr ""
  
  #. include_self=
@@ -73698,7 +88995,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%J'%F' declared `static' but never defined"
  msgid "%q+F declared %<static%> but never defined"
-@@ -20291,13 +20325,13 @@
+@@ -20291,13 +20128,13 @@
  msgid "cannot find '%s'"
  msgstr "« %s » introuvable"
  
@@ -73714,7 +89011,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%s: %s"
  msgid "%s: %m"
-@@ -20308,7 +20342,7 @@
+@@ -20308,7 +20145,7 @@
  msgid "COLLECT_LTO_WRAPPER must be set"
  msgstr ""
  
@@ -73723,7 +89020,7 @@ Index: gcc/po/fr.po
  #: config/i386/intelmic-mkoffload.c:554 config/nvptx/mkoffload.c:403
  #, gcc-internal-format
  msgid "atexit failed"
-@@ -20584,7 +20618,7 @@
+@@ -20584,7 +20421,7 @@
  msgid "global constructors not supported on this target"
  msgstr "les limites de la pile ne sont pas supportées sur cette cible"
  
@@ -73732,7 +89029,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "in %s, at %s:%d"
  msgstr "dans %s, à %s:%d"
-@@ -20630,12 +20664,12 @@
+@@ -20630,12 +20467,12 @@
  msgid "multiple EH personalities are supported only with assemblers supporting .cfi_personality directive"
  msgstr ""
  
@@ -73747,7 +89044,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "-feliminate-dwarf2-dups is broken for C++, ignoring"
  msgstr ""
-@@ -20779,7 +20813,7 @@
+@@ -20779,7 +20616,7 @@
  msgid "the frame size of %wd bytes is larger than %wd bytes"
  msgstr "taille de « %D » est plus grande que %d octets"
  
@@ -73756,7 +89053,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "could not open dump file `%s'"
  msgid "could not open final insn dump file %qs: %m"
-@@ -20797,49 +20831,49 @@
+@@ -20797,49 +20634,49 @@
  msgid "large fixed-point constant implicitly truncated to fixed-point type"
  msgstr "grand entier implicitement tronqué pour un type non signé"
  
@@ -73815,7 +89112,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "fold check: original tree changed by fold"
  msgstr "vérification fold: arbre originale modifié par fold"
-@@ -20856,19 +20890,19 @@
+@@ -20856,19 +20693,19 @@
  msgid "impossible constraint in %<asm%>"
  msgstr "contrainte impossible dans « asm »"
  
@@ -73838,7 +89135,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "function returns an aggregate"
  msgstr "fonction retourne un agrégat"
-@@ -20936,7 +20970,7 @@
+@@ -20936,7 +20773,7 @@
  msgid "%s (program %s)"
  msgstr "programmes: %s\n"
  
@@ -73847,7 +89144,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "unrecognized command line option \"%s\""
  msgid "unrecognized command line option %qs"
-@@ -20952,7 +20986,7 @@
+@@ -20952,7 +20789,7 @@
  msgid "%qs is an unknown -save-temps option"
  msgstr ""
  
@@ -73856,7 +89153,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "input file is list of file names to compile"
  msgid "input file %qs is the same as output file"
-@@ -21013,12 +21047,12 @@
+@@ -21013,12 +20850,12 @@
  msgid "spec %qs has invalid %<%%0%c%>"
  msgstr ""
  
@@ -73871,7 +89168,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "spec %qs has invalid %<%%x%c%>"
  msgstr ""
-@@ -21026,135 +21060,135 @@
+@@ -21026,135 +20863,135 @@
  #. Catch the case where a spec string contains something like
  #. '%{foo:%*}'.  i.e. there is no * in the pattern on the left
  #. hand side of the :.
@@ -74031,7 +89328,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "comparison is always %d"
  msgid "comparing final insns dumps"
-@@ -21161,108 +21195,108 @@
+@@ -21161,108 +20998,108 @@
  msgstr "comparaison est toujours %d"
  
  # I18N
@@ -74159,7 +89456,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "too few arguments to function"
  msgid "too few arguments to %%:replace-extension"
-@@ -21404,9 +21438,9 @@
+@@ -21404,9 +21241,9 @@
  msgstr "ne peut écrire dans le fichier PCH"
  
  #: gimple-ssa-isolate-paths.c:290 gimple-ssa-isolate-paths.c:447 tree.c:12589
@@ -74172,7 +89469,7 @@ Index: gcc/po/fr.po
  #: cp/typeck.c:1833 cp/typeck.c:3660
  #, fuzzy, gcc-internal-format
  #| msgid "  `%#D' declared here"
-@@ -21464,216 +21498,216 @@
+@@ -21464,216 +21301,216 @@
  msgid "memory input %d is not directly addressable"
  msgstr "nombre de sortie %d n’est pas directement addressable"
  
@@ -74428,7 +89725,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "if this code is reached, the program will abort"
  msgstr "si ce code est atteint, le programme s'arrêtera"
-@@ -21690,7 +21724,7 @@
+@@ -21690,7 +21527,7 @@
  msgid "could not open Go dump file %qs: %m"
  msgstr "ne peut ouvrir le fichier de vidange « %s »"
  
@@ -74437,7 +89734,7 @@ Index: gcc/po/fr.po
  #: objc/objc-act.c:461
  #, fuzzy, gcc-internal-format
  #| msgid "can't open %s: %m"
-@@ -21707,28 +21741,28 @@
+@@ -21707,28 +21544,28 @@
  msgid "Support for HSA does not implement immediate 16 bit FPU operands"
  msgstr ""
  
@@ -74471,7 +89768,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "verification failed: %s"
  msgid "HSA instruction verification failed"
-@@ -21759,7 +21793,7 @@
+@@ -21759,7 +21596,7 @@
  msgid "token %u has y-location == %u"
  msgstr ""
  
@@ -74480,7 +89777,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "function cannot be inline"
  msgid "function cannot be instrumented"
-@@ -22115,7 +22149,7 @@
+@@ -22115,7 +21952,7 @@
  msgid "could not emit HSAIL for function %s: function cannot be cloned"
  msgstr "« %s » n'est ni une fonction ni une fonction membre ; ne peut être déclaré ami"
  
@@ -74489,7 +89786,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "ipa inline summary is missing in input file"
  msgstr ""
-@@ -22408,219 +22442,213 @@
+@@ -22408,219 +22245,213 @@
  msgid "attribute(target_clones(\"default\")) is not valid for current target"
  msgstr ""
  
@@ -74750,7 +90047,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "invalid argument of `%s' attribute"
  msgid "invalid entry to %s structured block"
-@@ -22627,43 +22655,43 @@
+@@ -22627,43 +22458,43 @@
  msgstr "type d'argument invalide pour l'attribut « %s »"
  
  #. Otherwise, be vague and lazy, but efficient.
@@ -74802,7 +90099,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "insufficient partitioning available to parallelize loop"
  msgstr ""
-@@ -22684,31 +22712,31 @@
+@@ -22684,31 +22515,31 @@
  msgid "indirect jumps are not available on this target"
  msgstr ""
  
@@ -74839,7 +90136,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid argument of `%s' attribute"
  msgid "valid arguments to %qs are: %s"
-@@ -23274,7 +23302,7 @@
+@@ -23274,7 +23105,7 @@
  msgid "register of %qD used for multiple global register variables"
  msgstr "registre utilisé pour deux variables registres globales"
  
@@ -74848,7 +90145,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "  conflict with `%D'"
  msgid "conflicts with %qD"
-@@ -23452,69 +23480,69 @@
+@@ -23452,69 +23283,69 @@
  msgid "undefined named operand %qs"
  msgstr "opérande nommée « %s » indéfinie"
  
@@ -74930,7 +90227,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%Jalignment of '%D' is greater than maximum object file alignment.  Using %d"
  msgid "alignment of array elements is greater than element size"
-@@ -23742,173 +23770,173 @@
+@@ -23742,173 +23573,173 @@
  msgid "ld returned %d exit status"
  msgstr "ld a retourné %d code d'état d'exécution"
  
@@ -75135,7 +90432,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "error closing %s: %m"
  msgstr "erreur de fermeture %s: %m"
-@@ -24438,7 +24466,7 @@
+@@ -24438,7 +24269,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 ""
  
@@ -75144,7 +90441,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "type mismatch in conditional expression"
  msgstr "non concordance de type dans une expression conditionnelle"
-@@ -24820,43 +24848,43 @@
+@@ -24820,43 +24651,43 @@
  msgid "memory access check always fail"
  msgstr ""
  
@@ -75196,7 +90493,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "chkp_walk_pointer_assignments: unexpected RHS type: %s"
  msgstr ""
-@@ -24909,7 +24937,7 @@
+@@ -24909,7 +24740,7 @@
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "wrong insn in the fallthru edge"
  msgid "BB %i too many fallthru edges"
@@ -75205,7 +90502,7 @@ Index: gcc/po/fr.po
  
  #: tree-eh.c:4762
  #, gcc-internal-format, gfc-internal-format
-@@ -24920,7 +24948,7 @@
+@@ -24920,7 +24751,7 @@
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "wrong insn in the fallthru edge"
  msgid "BB %i has incorrect fallthru edge"
@@ -75214,7 +90511,7 @@ Index: gcc/po/fr.po
  
  #: tree-inline.c:3528
  #, fuzzy, gcc-internal-format
-@@ -25081,31 +25109,31 @@
+@@ -25081,31 +24912,31 @@
  msgid "stmt volatile flag not up-to-date"
  msgstr ""
  
@@ -75251,7 +90548,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%J'%D' might be used uninitialized in this function"
  msgid "%qE may be used uninitialized in this function"
-@@ -25274,7 +25302,7 @@
+@@ -25274,7 +25105,7 @@
  msgid "vector shuffling operation will be expanded piecewise"
  msgstr ""
  
@@ -75260,7 +90557,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "vectorization did not happen for a simd loop"
  msgstr ""
-@@ -25387,10 +25415,11 @@
+@@ -25387,10 +25218,11 @@
  #: c-family/c-common.c:9280 c-family/c-common.c:9303 c-family/c-common.c:9342
  #: c-family/c-common.c:9424 c-family/c-common.c:9467 c-family/c-common.c:9604
  #: config/darwin.c:2021 config/arm/arm.c:6488 config/arm/arm.c:6516
@@ -75276,7 +90573,7 @@ Index: gcc/po/fr.po
  #: lto/lto-lang.c:243
  #, fuzzy, gcc-internal-format
  #| msgid "`%s' attribute ignored"
-@@ -26107,8 +26136,8 @@
+@@ -26107,8 +25939,8 @@
  msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support"
  msgstr "longueur de la chaîne « %d » plus grande que la longueur « %d » que les compilateurs ISO C%d doivent supporter"
  
@@ -75287,7 +90584,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "overflow in constant expression"
  msgstr "débordement dans l'expression de la constante"
-@@ -26501,12 +26530,12 @@
+@@ -26501,12 +26333,12 @@
  msgid "the compiler can assume that the address of %qD will always evaluate to %<true%>"
  msgstr "l'adresse de « %D » sera toujours évaluée comme étant « true »"
  
@@ -75302,7 +90599,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid use of `restrict'"
  msgid "invalid use of %<restrict%>"
-@@ -26649,6 +26678,7 @@
+@@ -26649,6 +26481,7 @@
  msgstr "attribut « %s » ignoré pour « %s »"
  
  #: c-family/c-common.c:6684 c-family/c-common.c:6712 c-family/c-common.c:6808
@@ -75310,7 +90607,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "%qE attribute ignored due to conflict with attribute %qs"
  msgstr ""
-@@ -26991,7 +27021,7 @@
+@@ -26991,7 +26824,7 @@
  msgid "assume_aligned parameter not integer constant"
  msgstr "l'attribut « %s » de l'argument n'est pas une constante entière"
  
@@ -75319,7 +90616,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "%<__simd__%> attribute cannot be used in the same function marked as a Cilk Plus SIMD-enabled function"
  msgstr ""
-@@ -27024,7 +27054,7 @@
+@@ -27024,7 +26857,7 @@
  msgid "type was previously declared %qE"
  msgstr "« %s » précédemment déclaré ici"
  
@@ -75328,7 +90625,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%D' can only be specified for functions"
  msgid "%<transaction_safe_dynamic%> may only be specified for a virtual function"
-@@ -27066,12 +27096,12 @@
+@@ -27066,12 +26899,12 @@
  msgid "invalid vector type for attribute %qE"
  msgstr "type de vecteur invalide pour l'attribut « %s »"
  
@@ -75343,7 +90640,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "zero vector size"
  msgstr ""
-@@ -27081,24 +27111,24 @@
+@@ -27081,24 +26914,24 @@
  msgid "number of components of the vector not a power of two"
  msgstr ""
  
@@ -75372,7 +90669,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
  msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
-@@ -27146,13 +27176,13 @@
+@@ -27146,13 +26979,13 @@
  msgid "%qE attribute only applies to variadic functions"
  msgstr "attribut « %s » s'applique seulement aux fonctions"
  
@@ -75388,7 +90685,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "requested position is less than zero"
  msgstr ""
-@@ -27394,19 +27424,19 @@
+@@ -27394,19 +27227,19 @@
  msgid "function %qD used as %<asm%> output"
  msgstr ""
  
@@ -75411,7 +90708,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%s of read-only location"
  msgid "decrement of read-only location %qE"
-@@ -27481,7 +27511,7 @@
+@@ -27481,7 +27314,7 @@
  msgid "invalid type argument of implicit conversion (have %qT)"
  msgstr "type d'argument invalide pour « %s »"
  
@@ -75420,7 +90717,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "size of array `%s' is too large"
  msgid "size of array is too large"
-@@ -27670,7 +27700,7 @@
+@@ -27670,7 +27503,7 @@
  msgid "division by zero"
  msgstr "division par zéro"
  
@@ -75429,7 +90726,7 @@ Index: gcc/po/fr.po
  #: cp/typeck.c:4820
  #, fuzzy, gcc-internal-format
  #| msgid "comparison between types `%#T' and `%#T'"
-@@ -27733,7 +27763,7 @@
+@@ -27733,7 +27566,7 @@
  msgstr "numéro de l'accumulateur est hors limite"
  
  #: c-family/c-common.c:12539 c-family/c-common.c:12587
@@ -75438,7 +90735,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "conversion of scalar %qT to vector %qT involves truncation"
  msgstr ""
-@@ -28268,7 +28298,7 @@
+@@ -28268,7 +28101,7 @@
  msgid "%<#pragma omp atomic capture%> uses two different variables for memory"
  msgstr ""
  
@@ -75447,7 +90744,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "Invalid type-declaration attribute at %0"
  msgid "invalid type for iteration variable %qE"
-@@ -28280,25 +28310,25 @@
+@@ -28280,25 +28113,25 @@
  msgid "%qE is not initialized"
  msgstr "initialisation manquante"
  
@@ -75477,7 +90774,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "Invalid control expression"
  msgid "invalid increment expression"
-@@ -28322,12 +28352,12 @@
+@@ -28322,12 +28155,12 @@
  msgid "increment expression refers to iteration variable %qD"
  msgstr "%s d'une variable en lecture seule « %s »"
  
@@ -75492,7 +90789,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%D' is not a function template"
  msgid "%qD is not an function argument"
-@@ -28884,7 +28914,7 @@
+@@ -28884,7 +28717,7 @@
  msgid "<erroneous-expression>"
  msgstr "expression n'est pas une constante"
  
@@ -75501,7 +90798,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "return"
  msgid "<return-value>"
-@@ -29054,7 +29084,7 @@
+@@ -29054,7 +28887,7 @@
  msgid "for the option -mcache-block-size=X, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
  msgstr ""
  
@@ -75510,7 +90807,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "unknown -mdebug-%s switch"
  msgstr "option -mdebug-%s inconnue"
-@@ -29389,7 +29419,7 @@
+@@ -29389,7 +29222,7 @@
  #. coalesced sections.  Weak aliases (or any other kind of aliases) are
  #. not supported.  Weak symbols that aren't visible outside the .s file
  #. are not supported.
@@ -75519,7 +90816,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "alias definitions not supported in this configuration; ignored"
  msgid "alias definitions not supported in Mach-O; ignored"
-@@ -29402,19 +29432,19 @@
+@@ -29402,19 +29235,19 @@
  msgid "profiler support for VxWorks"
  msgstr "support du profileur pour WindISS"
  
@@ -75542,7 +90839,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "mask must be an immediate"
  msgid "%Ktotal size and element size must be a non-zero constant immediate"
-@@ -29607,13 +29637,13 @@
+@@ -29607,13 +29440,13 @@
  msgid "malformed target %s list %qs"
  msgstr ""
  
@@ -75558,7 +90855,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "line number out of range"
  msgid "lane %wd out of range %wd - %wd"
-@@ -30243,15 +30273,15 @@
+@@ -30243,15 +30076,15 @@
  msgid "Thumb-1 hard-float VFP ABI"
  msgstr ""
  
@@ -75580,7 +90877,7 @@ Index: gcc/po/fr.po
  #: config/sh/sh.c:9798 config/sh/sh.c:9827 config/sh/sh.c:9909
  #: config/sh/sh.c:9932 config/spu/spu.c:3680 config/stormy16/stormy16.c:2211
  #: config/v850/v850.c:2082 config/visium/visium.c:699
-@@ -30272,50 +30302,50 @@
+@@ -30272,50 +30105,50 @@
  msgid "%s %wd out of range %wd - %wd"
  msgstr "numéro de ligne hors limite"
  
@@ -75641,7 +90938,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "target CPU does not support interworking"
  msgid "target OS does not support unaligned accesses"
-@@ -30377,96 +30407,96 @@
+@@ -30377,96 +30210,96 @@
  #. happen as options are provided by device-specs.  It could be a
  #. typo in a device-specs or calling the compiler proper directly
  #. with -mmcu=<device>.
@@ -75755,7 +91052,7 @@ Index: gcc/po/fr.po
  #: config/mep/mep.c:3788 config/mep/mep.c:3926
  #, fuzzy, gcc-internal-format
  #| msgid "`%s' attribute only applies to variables"
-@@ -30473,114 +30503,114 @@
+@@ -30473,114 +30306,114 @@
  msgid "%qE attribute only applies to variables"
  msgstr "attribut « %s » s'applique seulement aux variables"
  
@@ -75891,7 +91188,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "rounding result will always be 0"
  msgstr ""
-@@ -31233,7 +31263,7 @@
+@@ -31233,7 +31066,7 @@
  msgid "-mno-fentry isn%'t compatible with SEH"
  msgstr "mode de SYN incompatible avec la valeur"
  
@@ -75900,7 +91197,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Unknown cpu: -mcpu=%s"
  msgid "unknown option for -mrecip=%s"
-@@ -31255,7 +31285,7 @@
+@@ -31255,7 +31088,7 @@
  msgid "regparam and thiscall attributes are not compatible"
  msgstr "les attributs fastcall et stdcall ne sont pas compatibles"
  
@@ -75909,7 +91206,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%s' attribute requires an integer constant argument"
  msgid "%qE attribute requires an integer constant argument"
-@@ -31471,283 +31501,283 @@
+@@ -31471,283 +31304,283 @@
  msgid "non-integer operand used with operand code 'z'"
  msgstr ""
  
@@ -76242,7 +91539,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Pointer Checker requires MPX support on this target. Use -mmpx options to enable MPX."
  msgstr ""
-@@ -32010,7 +32040,7 @@
+@@ -32010,7 +31843,7 @@
  msgid "interrupt_thread is available only on fido"
  msgstr ""
  
@@ -76251,7 +91548,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "stack limit expression is not supported"
  msgstr "expression limitant la pile n'est pas supportée"
-@@ -32273,7 +32303,7 @@
+@@ -32273,7 +32106,7 @@
  msgid "argument %d of %qE must be a multiple of %d"
  msgstr "argument %d de %s doit être une localisation"
  
@@ -76260,7 +91557,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "incompatible type for argument %d of `%s'"
  msgid "incompatible type for argument %d of %qE"
-@@ -33060,23 +33090,23 @@
+@@ -33060,23 +32893,23 @@
  msgid "cannot open intermediate ptx file"
  msgstr "%s: ne peut ouvrir le fichier de données\n"
  
@@ -76288,7 +91585,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "using num_workers (%d), ignoring %d"
  msgstr ""
-@@ -33103,7 +33133,7 @@
+@@ -33103,7 +32936,7 @@
  msgid "-g option disabled"
  msgstr "option -g désactivée"
  
@@ -76297,7 +91594,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "alignment (%u) for %s exceeds maximum alignment for global common data.  Using %u"
  msgstr ""
-@@ -33221,351 +33251,363 @@
+@@ -33221,351 +33054,363 @@
  msgid "junk at end of #pragma longcall"
  msgstr "rebut à la fin de #pragma longcall"
  
@@ -76726,7 +92023,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "-split has no argument."
  msgid "builtin %s only accepts a string argument"
-@@ -33572,7 +33614,7 @@
+@@ -33572,7 +33417,7 @@
  msgstr "-split n'a pas d'argument."
  
  #. Invalid CPU argument.
@@ -76735,7 +92032,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "invalid type argument of `->'"
  msgid "cpu %s is an invalid argument to builtin %s"
-@@ -33579,280 +33621,298 @@
+@@ -33579,280 +33424,298 @@
  msgstr "type d'argument invalide de «->»"
  
  #. Invalid HWCAP argument.
@@ -77088,7 +92385,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "%s\"%s\"%s is invalid"
  msgstr ""
-@@ -34206,135 +34266,135 @@
+@@ -34206,135 +34069,135 @@
  msgid "bad builtin icode"
  msgstr "construit interne erroné de fcode"
  
@@ -77248,7 +92545,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "argument to `%s' attribute larger than %d"
  msgid "argument to %qs is too large (max. %d)"
-@@ -34341,7 +34401,7 @@
+@@ -34341,7 +34204,7 @@
  msgstr "l'argument pour l'attribut « %s » est plus grand que %d"
  
  #. Value is not allowed for the target attribute.
@@ -77257,7 +92554,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "__builtin_trap not supported by this target"
  msgid "Value %qs is not supported by attribute %<target%>"
-@@ -34427,27 +34487,27 @@
+@@ -34427,27 +34290,27 @@
  msgid "-mrelax is only supported for RTP PIC"
  msgstr "L'option -g est seulement supportée lorsque GNU est utilisé tel,"
  
@@ -77290,7 +92587,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "-fdata-sections not supported for this target"
  msgid "-fcall-saved-REG is not supported for out registers"
-@@ -34814,57 +34874,57 @@
+@@ -34814,57 +34677,57 @@
  msgid "subprogram %q+F not marked Inline"
  msgstr ""
  
@@ -77359,7 +92656,7 @@ Index: gcc/po/fr.po
  #: cp/cp-array-notation.c:250
  #, fuzzy, gcc-internal-format
  #| msgid "invalid option argument `%s'"
-@@ -34925,8 +34985,8 @@
+@@ -34925,8 +34788,8 @@
  #. an unprototyped function, it is compile-time undefined;
  #. making it a constraint in that case was rejected in
  #. DR#252.
@@ -77370,7 +92667,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "void value not ignored as it ought to be"
  msgstr "valeur void n'a pas été ignorée comme elle aurait dû l'être"
-@@ -34992,7 +35052,7 @@
+@@ -34992,7 +34855,7 @@
  msgid "type of array %q+D completed incompatibly with implicit initialization"
  msgstr ""
  
@@ -77379,7 +92676,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%J  original definition appeared here"
  msgid "originally defined here"
-@@ -35306,7 +35366,7 @@
+@@ -35306,7 +35169,7 @@
  msgid "each undeclared identifier is reported only once for each function it appears in"
  msgstr "(Chaque identificateur non déclaré est rapporté seulement une seule fois pour la fonction dans laquelle il apparaît.)"
  
@@ -77388,7 +92685,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "label %s referenced outside of any function"
  msgid "label %qE referenced outside of any function"
-@@ -35330,8 +35390,8 @@
+@@ -35330,8 +35193,8 @@
  msgid "label %qD defined here"
  msgstr "étiquette « %D » définie mais non utilisée"
  
@@ -77399,7 +92696,7 @@ Index: gcc/po/fr.po
  #: cp/parser.c:3146 cp/parser.c:3227 cp/parser.c:3255 cp/parser.c:5994
  #, fuzzy, gcc-internal-format
  #| msgid "  `%#D' declared here"
-@@ -35350,7 +35410,7 @@
+@@ -35350,7 +35213,7 @@
  msgid "duplicate label declaration %qE"
  msgstr "déclaration de l'étiquette « %s » en double"
  
@@ -77408,7 +92705,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "duplicate label `%D'"
  msgid "duplicate label %qD"
-@@ -35482,7 +35542,7 @@
+@@ -35482,7 +35345,7 @@
  #. C99 6.7.5.2p4
  #. A function definition isn't function prototype scope C99 6.2.1p4.
  #. C99 6.7.5.2p4
@@ -77417,7 +92714,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "%<[*]%> not allowed in other than function prototype scope"
  msgstr ""
-@@ -35521,7 +35581,7 @@
+@@ -35521,7 +35384,7 @@
  #. of VLAs themselves count as VLAs, it does not make
  #. sense to permit them to be initialized given that
  #. ordinary VLAs may not be initialized.
@@ -77426,7 +92723,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "variable-sized object may not be initialized"
  msgstr "un objet de taille variable peut ne pas être initialisé"
-@@ -35780,7 +35840,7 @@
+@@ -35780,7 +35643,7 @@
  msgid "storage class specified for unnamed parameter"
  msgstr "classe de stockage spécifiée pour le paramètre « %s »"
  
@@ -77435,7 +92732,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "storage class specified for typename"
  msgstr "classe de stockage spécifié pour un typename"
-@@ -35853,7 +35913,7 @@
+@@ -35853,7 +35716,7 @@
  msgid "declaration of type name as array of functions"
  msgstr "déclaration de « %s » comme un tableau de fonctions"
  
@@ -77444,7 +92741,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "invalid use of structure with flexible array member"
  msgstr "utilisation invalide d'une structure ayant un membre flexible"
-@@ -35954,19 +36014,19 @@
+@@ -35954,19 +35817,19 @@
  msgid "function definition has qualified void return type"
  msgstr "définition invalide d'un type qualifié « %T »"
  
@@ -77467,7 +92764,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "ISO C forbids qualified function types"
  msgstr "ISO C interdit les types de fonction qualifiés"
-@@ -36098,7 +36158,7 @@
+@@ -36098,7 +35961,7 @@
  msgid "a member of a structure or union cannot have a variably modified type"
  msgstr "membre de données peut ne pas avoir de type « %T » modifié de manière variable"
  
@@ -77476,7 +92773,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "variable or field `%E' declared void"
  msgid "variable or field %qE declared void"
-@@ -36139,261 +36199,261 @@
+@@ -36139,261 +36002,261 @@
  msgid "unnamed field has incomplete type"
  msgstr "nom « %T » a un type incomplet"
  
@@ -77783,7 +93080,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "nested redefinition of `%s'"
  msgid "nested redefinition of %<enum %E%>"
-@@ -36400,221 +36460,221 @@
+@@ -36400,221 +36263,221 @@
  msgstr "redéfinition imbriquée de « %s »"
  
  #. This enum is a named one that has been declared already.
@@ -78043,7 +93340,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "label `%D' defined but not used"
  msgid "parameter %qD set but not used"
-@@ -36623,251 +36683,251 @@
+@@ -36623,251 +36486,251 @@
  #. If we get here, declarations have been used in a for loop without
  #. the C99 for loop scope.  This doesn't make much sense, so don't
  #. allow it.
@@ -78339,7 +93636,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "right shift count >= width of type"
  msgstr "compteur de décalage vers la droite >= à la largeur du type"
-@@ -36883,7 +36943,7 @@
+@@ -36883,7 +36746,7 @@
  msgid "version control conflict marker in file"
  msgstr ""
  
@@ -78348,7 +93645,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "expected end of line"
  msgstr "fin de ligne attendue"
-@@ -36921,8 +36981,8 @@
+@@ -36921,8 +36784,8 @@
  msgid "use %<enum%> keyword to refer to the type"
  msgstr ""
  
@@ -78359,7 +93656,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "repeated declaration of unit `%s'"
  msgid "expected declaration specifiers"
-@@ -36939,7 +36999,7 @@
+@@ -36939,7 +36802,7 @@
  msgid "expected %<;%>, identifier or %<(%>"
  msgstr ""
  
@@ -78368,7 +93665,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%s' attribute ignored for `%s'"
  msgid "prefix attributes are ignored for methods"
-@@ -36991,7 +37051,7 @@
+@@ -36991,7 +36854,7 @@
  msgid "%<__auto_type%> may only be used with a single declarator"
  msgstr ""
  
@@ -78377,7 +93674,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "expected %<,%> or %<;%>"
  msgstr ""
-@@ -37021,7 +37081,7 @@
+@@ -37021,7 +36884,7 @@
  msgid "ISO C90 does not support %<_Static_assert%>"
  msgstr "ISO C90 ne permet pas les types « complex »"
  
@@ -78386,7 +93683,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "unterminated string literal"
  msgid "expected string literal"
-@@ -37091,16 +37151,16 @@
+@@ -37091,16 +36954,16 @@
  #: c/c-parser.c:8877 c/c-parser.c:8885 c/c-parser.c:8914 c/c-parser.c:8927
  #: c/c-parser.c:9232 c/c-parser.c:9356 c/c-parser.c:9796 c/c-parser.c:9831
  #: c/c-parser.c:9884 c/c-parser.c:9937 c/c-parser.c:9953 c/c-parser.c:9999
@@ -78408,7 +93705,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "comma at end of enumerator list"
  msgstr "virgule à la fin de liste d'énumerateurs"
-@@ -37247,7 +37307,7 @@
+@@ -37247,7 +37110,7 @@
  msgid "expected %<}%> before %<else%>"
  msgstr ""
  
@@ -78417,7 +93714,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "%<else%> without a previous %<if%>"
  msgstr ""
-@@ -37267,12 +37327,12 @@
+@@ -37267,12 +37130,12 @@
  msgid "a label can only be part of a statement and a declaration is not a statement"
  msgstr ""
  
@@ -78432,7 +93729,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "-fcilkplus must be enabled to use %<_Cilk_sync%>"
  msgstr ""
-@@ -37286,19 +37346,19 @@
+@@ -37286,19 +37149,19 @@
  #. c_parser_skip_until_found stops at a closing nesting
  #. delimiter without consuming it, but here we need to consume
  #. it to proceed further.
@@ -78455,7 +93752,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "empty body in an else-statement"
  msgid "suggest braces around empty body in an %<else%> statement"
-@@ -37309,7 +37369,7 @@
+@@ -37309,7 +37172,7 @@
  msgid "if statement cannot contain %<Cilk_spawn%>"
  msgstr ""
  
@@ -78464,7 +93761,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%Hsuggest explicit braces to avoid ambiguous `else'"
  msgid "suggest explicit braces to avoid ambiguous %<else%>"
-@@ -37332,7 +37392,7 @@
+@@ -37332,7 +37195,7 @@
  msgid "invalid iterating variable in fast enumeration"
  msgstr "registre invalide dans l'instruction"
  
@@ -78473,7 +93770,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "missing loop condition in loop with %<GCC ivdep%> pragma"
  msgstr ""
-@@ -37596,33 +37656,33 @@
+@@ -37596,33 +37459,33 @@
  msgid "no type or storage class may be specified here,"
  msgstr "classe de stockage spécifié pour un typename"
  
@@ -78513,7 +93810,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%Jaddress area attribute cannot be specified for functions"
  msgid "the %<getter%> attribute may only be specified once"
-@@ -37633,47 +37693,47 @@
+@@ -37633,47 +37496,47 @@
  msgid "%<#pragma acc update%> may only be used in compound statements"
  msgstr ""
  
@@ -78570,7 +93867,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "%<#pragma GCC pch_preprocess%> must be first"
  msgstr ""
-@@ -37689,13 +37749,13 @@
+@@ -37689,13 +37552,13 @@
  msgid "%<#pragma grainsize%> must be inside a function"
  msgstr "échec sur l'étendue (n'est pas à l'intérieur de la fonction)"
  
@@ -78586,7 +93883,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "']' expected, invalid type expression"
  msgid "expected integer expression before ')'"
-@@ -37707,740 +37767,734 @@
+@@ -37707,740 +37570,734 @@
  msgid "expression must be integral"
  msgstr "expression %s doit être référable"
  
@@ -79465,7 +94762,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "unexpected address expression"
  msgid "expected array notation expression"
-@@ -38452,7 +38506,7 @@
+@@ -38452,7 +38309,7 @@
  msgid "%qD has an incomplete type %qT"
  msgstr "« %s » a un type incomplet"
  
@@ -79474,7 +94771,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "invalid use of void expression"
  msgstr "utilisation invalide d'expression void"
-@@ -38730,314 +38784,314 @@
+@@ -38730,314 +38587,314 @@
  msgid "passing argument %d of %qE as signed due to prototype"
  msgstr "%s est signé en raison du prototype"
  
@@ -79846,7 +95143,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "char-array initialized from wide string"
  msgid "array initialized from parenthesized string constant"
-@@ -39054,203 +39108,203 @@
+@@ -39054,203 +38911,203 @@
  #. strings are complete sentences, visible to gettext and checked at
  #. compile time.  It is the same as PEDWARN_FOR_QUALIFIERS but uses
  #. warning_at instead of pedwarn.
@@ -80085,7 +95382,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%s from incompatible pointer type"
  msgid "return from incompatible pointer type"
-@@ -39258,857 +39312,857 @@
+@@ -39258,857 +39115,857 @@
  
  #. ??? This should not be an error when inlining calls to
  #. unprototyped functions.
@@ -81112,7 +96409,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "  candidate expects %d argument, %d provided"
  msgid_plural "  candidate expects %d arguments, %d provided"
-@@ -40115,92 +40169,92 @@
+@@ -40115,92 +39972,92 @@
  msgstr[0] ""
  msgstr[1] ""
  
@@ -81221,7 +96518,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "call of overloaded `%D(%A)' is ambiguous"
  msgid "call of overloaded %<%D(%A)%> is ambiguous"
-@@ -40208,526 +40262,526 @@
+@@ -40208,526 +40065,526 @@
  
  #. It's no good looking for an overloaded operator() on a
  #. pointer-to-member-function.
@@ -81841,7 +97138,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "invalid initialization of reference of type '%T' from expression of type '%T'"
  msgid "invalid initialization of reference of type %qT from expression of type %qT"
-@@ -41082,85 +41136,85 @@
+@@ -41082,85 +40939,85 @@
  msgid "  but does not override %<operator=(const %T&)%>"
  msgstr "  mais n'écrase pas « operator=(const %T&) »"
  
@@ -81942,7 +97239,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "non-static const member `%#D' in class without a constructor"
  msgid "non-static const member %q#D in class without a constructor"
-@@ -41168,157 +41222,157 @@
+@@ -41168,157 +41025,157 @@
  
  #. If the function is defaulted outside the class, we just
  #. give the synthesis error.
@@ -82127,7 +97424,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "cannot convert `%E' from type `%T' to type `%T'"
  msgid "cannot convert %qE from type %qT to type %qT"
-@@ -41329,13 +41383,13 @@
+@@ -41329,13 +41186,13 @@
  #. A name N used in a class S shall refer to the same declaration
  #. in its context and when re-evaluated in the completed scope of
  #. S.
@@ -82143,7 +97440,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "changes meaning of `%D' from `%+#D'"
  msgid "changes meaning of %qD from %q#D"
-@@ -41374,57 +41428,57 @@
+@@ -41374,57 +41231,57 @@
  msgid "%q#T has virtual base classes"
  msgstr ""
  
@@ -82211,7 +97508,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%D' cannot appear in a constant-expression"
  msgid "%qD called in a constant expression before its definition is complete"
-@@ -41431,250 +41485,256 @@
+@@ -41431,250 +41288,256 @@
  msgstr "« %D » ne peut apparaître dans une expression de constante"
  
  #. The definition of fun was somehow unsuitable.
@@ -82511,7 +97808,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "unexpected type for `id' (%s)"
  msgid "unexpected AST of kind %s"
-@@ -41749,17 +41809,17 @@
+@@ -41749,17 +41612,17 @@
  msgid "try statements are not allowed inside loops marked with #pragma simd"
  msgstr ""
  
@@ -82532,7 +97829,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "in C++11 this throw will terminate because destructors default to noexcept"
  msgstr ""
-@@ -41806,7 +41866,7 @@
+@@ -41806,7 +41669,7 @@
  msgid "conversion from %qT to %qT discards qualifiers"
  msgstr "conversion de « %T » à « %T » écarte les qualificateurs"
  
@@ -82541,7 +97838,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "casting `%T' to `%T' does not dereference pointer"
  msgid "casting %qT to %qT does not dereference pointer"
-@@ -42143,7 +42203,7 @@
+@@ -42143,7 +42006,7 @@
  msgid "  candidate conversions include %qD and %qD"
  msgstr "  conversions de candidat inclut « %D » et « %D »"
  
@@ -82550,7 +97847,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "template parameter `%#D'"
  msgid "template-parameter-"
-@@ -42161,7 +42221,7 @@
+@@ -42161,7 +42024,7 @@
  msgid "%qD was declared %<extern%> and later %<static%>"
  msgstr "« %s » a été déclaré « extern » et plus loin « static »"
  
@@ -82559,7 +97856,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "previous declaration of `%D'"
  msgid "previous declaration of %qD"
-@@ -42414,13 +42474,13 @@
+@@ -42414,13 +42277,13 @@
  #. that specialization that would cause an implicit
  #. instantiation to take place, in every translation unit in
  #. which such a use occurs.
@@ -82575,7 +97872,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%J'%D': visibility attribute ignored because it"
  msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
-@@ -42427,30 +42487,30 @@
+@@ -42427,30 +42290,30 @@
  msgstr "« %D »: attribut de visibilité ignoré en cause de lui"
  
  #. Reject two definitions.
@@ -82611,7 +97908,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
  msgstr ""
-@@ -42458,24 +42518,24 @@
+@@ -42458,24 +42321,24 @@
  #. is_primary=
  #. is_partial=
  #. is_friend_decl=
@@ -82640,7 +97937,7 @@ Index: gcc/po/fr.po
  #: cp/name-lookup.c:1189
  #, fuzzy, gcc-internal-format
  #| msgid "declaration of `%#D'"
-@@ -42482,275 +42542,275 @@
+@@ -42482,275 +42345,275 @@
  msgid "redeclaration of %q#D"
  msgstr "déclaration de « %#D »"
  
@@ -82964,7 +98261,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%s' attribute can only be applied to class definitions"
  msgid "ignoring attributes applied to class type %qT outside of definition"
-@@ -42757,148 +42817,148 @@
+@@ -42757,148 +42620,148 @@
  msgstr "attribut « %s » peut seulement être appliqué aux définitions de classes"
  
  #. A template type parameter or other dependent type.
@@ -83138,7 +98435,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "zero-size array `%D'"
  msgid "zero-size array %qD"
-@@ -42907,114 +42967,114 @@
+@@ -42907,114 +42770,114 @@
  #. An automatic variable with an incomplete type: that is an error.
  #. Don't talk about array types here, since we took care of that
  #. message in grokdeclarator.
@@ -83273,7 +98570,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "elements of array `%#D' have incomplete type"
  msgid "elements of array %q#T have incomplete type"
-@@ -43021,257 +43081,263 @@
+@@ -43021,257 +42884,263 @@
  msgstr "éléments du tableau « %#D » ont un type incomplet"
  
  # FIXME
@@ -83581,7 +98878,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "defining explicit specialization `%D' in friend declaration"
  msgid "defining explicit specialization %qD in friend declaration"
-@@ -43278,665 +43344,665 @@
+@@ -43278,665 +43147,665 @@
  msgstr "définition explicite de spécialisation « %D » dans lka déclaration ami"
  
  #. Something like `template <class T> friend void f<T>()'.
@@ -84361,7 +99658,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
  msgstr ""
-@@ -43943,45 +44009,45 @@
+@@ -43943,45 +43812,45 @@
  
  #. Not using maybe_warn_cpp0x because this should
  #. always be an error.
@@ -84415,7 +99712,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "constructors cannot be declared virtual"
  msgid "constructors cannot be declared %<virtual%>"
-@@ -43988,268 +44054,268 @@
+@@ -43988,268 +43857,268 @@
  msgstr "constructeurs ne peut être déclarés virtuels"
  
  #. Cannot be both friend and virtual.
@@ -84730,7 +100027,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%T' has no non-static data member named `%D'"
  msgid "non-static data member declared %<auto%>"
-@@ -44256,186 +44322,186 @@
+@@ -44256,186 +44125,186 @@
  msgstr "« %T » n'a pas de membre de données non statique nommé « %D »"
  
  #. Something like struct S { int N::j; };
@@ -84948,7 +100245,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "cannot declare member function `%D' to have static linkage"
  msgid "cannot declare member function %qD to have static linkage"
-@@ -44442,90 +44508,90 @@
+@@ -44442,90 +44311,90 @@
  msgstr "ne peut déclarer la fonction membre « %D » comme ayant un lien statique"
  
  #. FIXME need arm citation
@@ -85054,7 +100351,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "parameter `%D' includes %s to array of unknown bound `%T'"
  msgid "parameter %qD includes reference to array of unknown bound %qT"
-@@ -44546,73 +44612,73 @@
+@@ -44546,73 +44415,73 @@
  #. or implicitly defined), there's no need to worry about their
  #. existence.  Theoretically, they should never even be
  #. instantiated, but that's hard to forestall.
@@ -85140,7 +100437,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "conversion to %s%s will never use a type conversion operator"
  msgid "conversion to a base class will never use a type conversion operator"
-@@ -44619,126 +44685,126 @@
+@@ -44619,126 +44488,126 @@
  msgstr "conversion de %s%s ne sera jamais utilisé dans un type d'opérateur de conversion"
  
  #. 13.4.0.3
@@ -85288,7 +100585,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%T' referred to as enum"
  msgid "%qT referred to as enum"
-@@ -44751,131 +44817,131 @@
+@@ -44751,131 +44620,131 @@
  #. void f(class C);		// No template header here
  #.
  #. then the required template argument is missing.
@@ -85444,7 +100741,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "argument %d to ABSTIME must be of integer type"
  msgid "underlying type %<%T%> of %<%T%> must be an integral type"
-@@ -44885,86 +44951,86 @@
+@@ -44885,86 +44754,86 @@
  #.
  #. IF no integral type can represent all the enumerator values, the
  #. enumeration is ill-formed.
@@ -85546,7 +100843,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "use of %qD before deduction of %<auto%>"
  msgstr ""
-@@ -45009,7 +45075,7 @@
+@@ -45009,7 +44878,7 @@
  msgid "deleting %qT is undefined"
  msgstr "destruction de « %T » est indéfinie"
  
@@ -85555,7 +100852,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "template declaration of `%#D'"
  msgid "template declaration of %q#D"
-@@ -45036,7 +45102,7 @@
+@@ -45036,7 +44905,7 @@
  #. [temp.mem]
  #.
  #. A destructor shall not be a member template.
@@ -85564,7 +100861,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "destructor `%D' declared as member template"
  msgid "destructor %qD declared as member template"
-@@ -45290,7 +45356,7 @@
+@@ -45290,7 +45159,7 @@
  msgid "inline function %qD used but never defined"
  msgstr "fonction enligne « %D » utilisé mais n'a jamais été défini"
  
@@ -85573,7 +100870,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "default argument missing for parameter %P of `%+#D'"
  msgid "default argument missing for parameter %P of %q+#D"
-@@ -45298,122 +45364,122 @@
+@@ -45298,122 +45167,122 @@
  
  #. We mark a lambda conversion op as deleted if we can't
  #. generate it properly; see maybe_add_lambda_conv_op.
@@ -85719,7 +101016,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%D::%D' has not been declared"
  msgid "%<::%D%> has not been declared"
-@@ -45454,7 +45520,7 @@
+@@ -45454,7 +45323,7 @@
  msgid "throwing NULL, which has integral, not pointer type"
  msgstr "retournant NULL (par throw), lequel est entier, pas de type pointeur"
  
@@ -85728,7 +101025,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%D' should never be overloaded"
  msgid "%qD should never be overloaded"
-@@ -45675,20 +45741,20 @@
+@@ -45675,20 +45544,20 @@
  msgid "invalid initializer for array member %q#D"
  msgstr "initialisation invalide pour la méthode virtuelle « %D »"
  
@@ -85753,7 +101050,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "uninitialized reference member `%D'"
  msgid "uninitialized reference member in %q#T"
-@@ -45799,230 +45865,230 @@
+@@ -45799,230 +45668,230 @@
  msgid "bad array initializer"
  msgstr "mauvaise initialisation de tableau"
  
@@ -86025,7 +101322,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "type to vector delete is neither pointer or array type"
  msgstr "type du vecteur delete n'est ni un pointeur ou un type tableau"
-@@ -46042,24 +46108,24 @@
+@@ -46042,24 +45911,24 @@
  msgid "because the array element type %qT has variable size"
  msgstr ""
  
@@ -86054,7 +101351,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "%<this%> was not captured for this lambda function"
  msgstr ""
-@@ -46139,93 +46205,93 @@
+@@ -46139,93 +46008,93 @@
  msgid "mangling unknown fixed point type"
  msgstr ""
  
@@ -86165,7 +101462,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "creating pointer to member reference type `%T'"
  msgid "copying non-static data member %q#D of rvalue reference type"
-@@ -46232,75 +46298,75 @@
+@@ -46232,75 +46101,75 @@
  msgstr "création d'un pointeur vers le membre de référence du type « %T »"
  
  #. A trivial constructor doesn't have any NSDMI.
@@ -86255,7 +101552,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "file ends in default argument"
  msgid "defaulted function %q+D with default argument"
-@@ -46658,13 +46724,13 @@
+@@ -46658,13 +46527,13 @@
  msgid "LEXER_DEBUGGING_ENABLED_P is not set to true"
  msgstr ""
  
@@ -86272,7 +101569,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "attributes are not allowed on a function-definition"
  msgid "%<#pragma acc routine%> not followed by a function declaration or definition"
-@@ -46694,7 +46760,7 @@
+@@ -46694,7 +46563,7 @@
  msgid "request for member %qE in non-class type %qT"
  msgstr "requête du membre « %D » dans « %E », lequel n'est pas de type classe « %T »"
  
@@ -86281,7 +101578,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%D::%D' has not been declared"
  msgid "%<%T::%E%> has not been declared"
-@@ -46788,7 +46854,7 @@
+@@ -46788,7 +46657,7 @@
  msgid "floating-point literal cannot appear in a constant-expression"
  msgstr "%s ne peut apparaître dans une expression de constante"
  
@@ -86290,7 +101587,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "a cast to a type other than an integral or enumeration type cannot appear in a constant-expression"
  msgstr ""
-@@ -47017,7 +47083,7 @@
+@@ -47017,7 +46886,7 @@
  msgid "unable to find string literal operator %qD with %qT, %qT arguments"
  msgstr ""
  
@@ -86299,7 +101596,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "empty declaration"
  msgid "expected declaration"
-@@ -47132,7 +47198,7 @@
+@@ -47132,7 +47001,7 @@
  msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
  msgstr ""
  
@@ -86308,7 +101605,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "expected unqualified-id"
  msgstr ""
-@@ -47313,198 +47379,204 @@
+@@ -47313,198 +47182,204 @@
  msgid "lambda-expression in template-argument"
  msgstr "Déclaration d'expression invalide"
  
@@ -86549,7 +101846,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "%<friend%> used outside of class"
  msgstr ""
-@@ -47511,117 +47583,117 @@
+@@ -47511,117 +47386,117 @@
  
  #. Complain about `auto' as a storage specifier, if
  #. we're complaining about C++0x compatibility.
@@ -86688,7 +101985,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "unexpected operand"
  msgid "expected operator"
-@@ -47628,78 +47700,78 @@
+@@ -47628,78 +47503,78 @@
  msgstr "opérande inattendue"
  
  #. Warn that we do not support `export'.
@@ -86780,7 +102077,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`<::' cannot begin a template-argument list"
  msgid "parse error in template argument list"
-@@ -47706,7 +47778,7 @@
+@@ -47706,7 +47581,7 @@
  msgstr "« <:: » ne peut pas être au début d'une liste d'un patron d'arguments"
  
  #. The name does not name a template.
@@ -86789,7 +102086,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "expected type-name"
  msgid "expected template-name"
-@@ -47713,160 +47785,160 @@
+@@ -47713,160 +47588,160 @@
  msgstr "un nom de type attendu"
  
  #. Explain what went wrong.
@@ -86978,7 +102275,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "multiple definition of `%#T'"
  msgid "multiple definition of %q#T"
-@@ -47873,160 +47945,160 @@
+@@ -47873,160 +47748,160 @@
  msgstr "définition multiple de « %#T »"
  
  # FIXME: I18N
@@ -87167,7 +102464,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified name"
  msgstr ""
-@@ -48035,7 +48107,7 @@
+@@ -48035,7 +47910,7 @@
  #. here because we do not have enough
  #. information about its original syntactic
  #. form.
@@ -87176,7 +102473,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "invalid declarator"
  msgstr "déclarateur invalide"
-@@ -48042,358 +48114,358 @@
+@@ -48042,358 +47917,358 @@
  
  #. But declarations with qualified-ids can't appear in a
  #. function.
@@ -87599,7 +102896,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "too few template-parameter-lists"
  msgstr "trop peu de patron de listes de paramètres"
-@@ -48402,490 +48474,490 @@
+@@ -48402,490 +48277,490 @@
  #. something like:
  #.
  #. template <class T> template <class U> void S::f();
@@ -88179,7 +103476,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "range failure (not inside function)"
  msgid "%<#pragma acc routine%> does not refer to a function"
-@@ -48892,149 +48964,149 @@
+@@ -48892,149 +48767,149 @@
  msgstr "échec sur l'étendue (n'est pas à l'intérieur de la fonction)"
  
  #. cancel-and-throw is unimplemented.
@@ -88355,7 +103652,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "specializing `%#T' in different namespace"
  msgid "specializing %q#T in different namespace"
-@@ -49042,77 +49114,77 @@
+@@ -49042,77 +48917,77 @@
  
  #. But if we've had an implicit instantiation, that's a
  #. problem ([temp.expl.spec]/6).
@@ -88446,7 +103743,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "members of an explicitly specialized class are defined without a template header"
  msgstr ""
-@@ -49119,63 +49191,63 @@
+@@ -49119,63 +48994,63 @@
  
  #. This case handles bogus declarations like template <>
  #. template <class T> void f<int>();
@@ -88521,7 +103818,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%D' is not a member template function"
  msgid "%qD is not a template function"
-@@ -49189,130 +49261,142 @@
+@@ -49189,130 +49064,142 @@
  #. program is ill-formed.
  #.
  #. Similar language is found in [temp.explicit].
@@ -88687,7 +103984,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "type `%T' of template argument `%E' depends on template parameter(s)"
  msgid "type %qT of template argument %qE depends on a template parameter"
-@@ -49320,19 +49404,19 @@
+@@ -49320,19 +49207,19 @@
  msgstr[0] "type « %T » du patron d'argument « %E » dépend des paramètres du patron"
  msgstr[1] "type « %T » du patron d'argument « %E » dépend des paramètres du patron"
  
@@ -88710,7 +104007,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "no default argument for `%D'"
  msgid "no default argument for %qD"
-@@ -49341,52 +49425,52 @@
+@@ -49341,52 +49228,52 @@
  #. A primary class template can only have one
  #. parameter pack, at the end of the template
  #. parameter list.
@@ -88772,7 +104069,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "member template %qD may not have virt-specifiers"
  msgstr ""
-@@ -49396,66 +49480,66 @@
+@@ -49396,66 +49283,66 @@
  #. An allocation function can be a function
  #. template. ... Template allocation functions shall
  #. have two or more parameters.
@@ -88850,7 +104147,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "`%D' used without template parameters"
  msgid "redeclared with %d template parameter"
-@@ -49463,7 +49547,7 @@
+@@ -49463,7 +49350,7 @@
  msgstr[0] "« %D » utilisé sans patron de paramètres"
  msgstr[1] "« %D » utilisé sans patron de paramètres"
  
@@ -88859,7 +104156,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "previous declaration `%#D' here"
  msgid "previous declaration %qD used %d template parameter"
-@@ -49471,13 +49555,13 @@
+@@ -49471,13 +49358,13 @@
  msgstr[0] "déclaration précédente de « %#D » ici"
  msgstr[1] "déclaration précédente de « %#D » ici"
  
@@ -88875,7 +104172,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "redeclared here as `%#D'"
  msgid "redeclared here as %q#D"
-@@ -49487,126 +49571,126 @@
+@@ -49487,126 +49374,126 @@
  #.
  #. A template-parameter may not be given default arguments
  #. by two different declarations in the same scope.
@@ -89024,7 +104321,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "  candidate expects at least %d argument, %d provided"
  msgid_plural "  candidate expects at least %d arguments, %d provided"
-@@ -49613,212 +49697,212 @@
+@@ -49613,212 +49500,212 @@
  msgstr[0] ""
  msgstr[1] ""
  
@@ -89273,7 +104570,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "  expected a type, got `%E'"
  msgid "  expected %qD but got %qD"
-@@ -49826,114 +49910,114 @@
+@@ -49826,114 +49713,114 @@
  
  #. Not sure if this is reachable, but it doesn't hurt
  #. to be robust.
@@ -89411,7 +104708,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "redefinition of default argument for `%#D'"
  msgid "  when instantiating default argument for call to %D"
-@@ -49952,312 +50036,312 @@
+@@ -49952,312 +49839,312 @@
  #.
  #. is an attempt to declare a variable with function
  #. type.
@@ -89777,7 +105074,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "duplicate explicit instantiation of `%#T'"
  msgid "duplicate explicit instantiation of %q#T"
-@@ -50270,81 +50354,81 @@
+@@ -50270,81 +50157,81 @@
  #. member function or static data member of a class template
  #. shall be present in every translation unit in which it is
  #. explicitly instantiated.
@@ -89873,7 +105170,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "insn does not satisfy its constraints:"
  msgid "deduced expression type does not saatisy placeholder constraints"
-@@ -50418,95 +50502,95 @@
+@@ -50418,95 +50305,95 @@
  msgid "%qT is an inaccessible base of %qT"
  msgstr "« %T » est une base inaccessible de « %T »"
  
@@ -89985,7 +105282,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "overriding final function %q+D"
  msgstr ""
-@@ -50513,13 +50597,13 @@
+@@ -50513,13 +50400,13 @@
  
  #. A static member function cannot match an inherited
  #. virtual member function.
@@ -90001,7 +105298,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "  since `%#D' declared in base class"
  msgid "  since %q+#D declared in base class"
-@@ -50543,138 +50627,138 @@
+@@ -50543,138 +50430,138 @@
  msgid "__label__ declarations are only allowed in function scopes"
  msgstr "déclarations Objective-C peut seulement apparaître dans l'étendue globale"
  
@@ -90164,7 +105461,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "use of class template `%T' as expression"
  msgid "use of class template %qT as expression"
-@@ -50681,25 +50765,25 @@
+@@ -50681,25 +50568,25 @@
  msgstr "utilisation du patron de classe « %T » comme expression"
  
  #. Ambiguous reference to base members.
@@ -90194,7 +105491,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`%T' is not a template type"
  msgid "%qT is not an enumeration type"
-@@ -50706,324 +50790,324 @@
+@@ -50706,324 +50593,324 @@
  msgstr "« %T » n'est pas un type patron"
  
  #. Parameter packs can only be used in templates
@@ -90578,7 +105875,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "no unexpanded parameter packs in binary fold"
  msgstr ""
-@@ -51040,129 +51124,129 @@
+@@ -51040,129 +50927,129 @@
  msgid "lambda-expression in a constant expression"
  msgstr "débordement dans l'expression de la constante"
  
@@ -90695,14 +105992,16 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "storage class `%D' applied to template instantiation"
  msgid "ignoring %qE attribute applied to template instantiation %qT"
- msgstr "classe de stockage « %D » appliqué à l'instantiation du patron"
+-msgstr "classe de stockage « %D » appliqué à l'instantiation du patron"
++msgstr "classe de stockage « %D » appliqué à l'instanciation du patron"
  
 -#: cp/tree.c:3810
 +#: cp/tree.c:3815
  #, fuzzy, gcc-internal-format
  #| msgid "storage class `%D' applied to template instantiation"
  msgid "ignoring %qE attribute applied to template specialization %qT"
- msgstr "classe de stockage « %D » appliqué à l'instantiation du patron"
+-msgstr "classe de stockage « %D » appliqué à l'instantiation du patron"
++msgstr "classe de stockage « %D » appliqué à l'instanciation du patron"
  
 -#: cp/tree.c:3832
 +#: cp/tree.c:3837
@@ -90730,7 +106029,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "lang_* check: failed in %s, at %s:%d"
  msgstr "vérification lang_* : échec dans %s, à %s:%d"
-@@ -51740,306 +51824,306 @@
+@@ -51740,306 +51627,306 @@
  msgid "address requested for %qD, which is declared %<register%>"
  msgstr "adresse requise pour « %D», lequel est déclaré «register »"
  
@@ -91089,7 +106388,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "returning a value from a destructor"
  msgstr "retourné une valeur du destructeur"
-@@ -52046,47 +52130,47 @@
+@@ -52046,47 +51933,47 @@
  
  #. If a return statement appears in a handler of the
  #. function-try-block of a constructor, the program is ill-formed.
@@ -91145,7 +106444,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
  msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
-@@ -52093,12 +52177,12 @@
+@@ -52093,12 +51980,12 @@
  msgstr "« operator new» ne doit pas retourner NULL à moins qu'il ne soit déclaré «throw() » (ou -fcheck-new est utilisée)"
  
  #. Make this a permerror because we used to accept it.
@@ -91160,7 +106459,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "using xvalue (rvalue reference) as lvalue"
  msgstr ""
-@@ -52320,183 +52404,183 @@
+@@ -52320,183 +52207,183 @@
  msgid "invalid use of template template parameter %qT"
  msgstr "utilisation invalide d'argument pour un patron de paramètres de patron"
  
@@ -91376,7 +106675,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "call to function which throws incomplete type `%#T'"
  msgid "call to function which throws incomplete type %q#T"
-@@ -52714,8 +52798,8 @@
+@@ -52714,8 +52601,8 @@
  
  #: fortran/array.c:213 fortran/array.c:625 fortran/check.c:2642
  #: fortran/check.c:4950 fortran/check.c:4988 fortran/check.c:5030
@@ -91387,7 +106686,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Coarrays disabled at %C, use %<-fcoarray=%> to enable"
  msgstr ""
-@@ -52866,7 +52950,7 @@
+@@ -52866,7 +52753,7 @@
  msgid "Array constructor including type specification at %C"
  msgstr ""
  
@@ -91396,7 +106695,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Type-spec at %L cannot contain a deferred type parameter"
  msgstr ""
-@@ -53922,7 +54006,7 @@
+@@ -53922,7 +53809,7 @@
  msgid "Intrinsic function NULL at %L cannot be an actual argument to STORAGE_SIZE, because it returns a disassociated pointer"
  msgstr ""
  
@@ -91405,7 +106704,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Assumed size polymorphic objects or components, such as that at %C, have not yet been implemented"
  msgstr ""
-@@ -53929,12 +54013,12 @@
+@@ -53929,12 +53816,12 @@
  
  #. Since the extension field is 8 bit wide, we can only have
  #. up to 255 extension levels.
@@ -91420,7 +106719,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "%qs of %qs is PRIVATE at %L"
  msgstr ""
-@@ -54036,579 +54120,656 @@
+@@ -54036,579 +53923,656 @@
  msgid "DATA statement at %C is not allowed in a PURE procedure"
  msgstr ""
  
@@ -92187,7 +107486,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Return type of BIND(C) function %qs at %L cannot be a character string"
  msgstr ""
-@@ -54615,318 +54776,339 @@
+@@ -54615,318 +54579,339 @@
  
  #. Use gfc_warning_now because we won't say that the symbol fails
  #. just because of this.
@@ -92588,7 +107887,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "No label definition for FORMAT statement at %0"
  msgid "END statement instead of %s statement at %L"
-@@ -54933,557 +55115,603 @@
+@@ -54933,557 +54918,603 @@
  msgstr "pas de définition d'étiquette pour la déclaration de FORMAT à %0"
  
  #. We would have required END [something].
@@ -93297,7 +108596,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Syntax error in !GCC$ ATTRIBUTES statement at %C"
  msgstr ""
-@@ -55503,44 +55731,44 @@
+@@ -55503,44 +55534,44 @@
  msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
  msgstr ""
  
@@ -93350,7 +108649,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "initialization"
  msgid "<During initialization>\n"
-@@ -55648,7 +55876,7 @@
+@@ -55648,7 +55679,7 @@
  msgid "Evaluation of nonstandard initialization expression at %L"
  msgstr ""
  
@@ -93359,7 +108658,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Function %qs in initialization expression at %L must be an intrinsic function"
  msgstr ""
-@@ -55800,27 +56028,27 @@
+@@ -55800,27 +55831,27 @@
  msgid "BOZ literal at %L used to initialize non-integer variable %qs"
  msgstr ""
  
@@ -93392,7 +108691,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled with the option %<-fno-range-check%>"
  msgstr ""
-@@ -55913,7 +56141,7 @@
+@@ -55913,7 +55944,7 @@
  msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
  msgstr ""
  
@@ -93401,7 +108700,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Explicit interface required for %qs at %L: %s"
  msgstr ""
-@@ -56008,7 +56236,7 @@
+@@ -56008,7 +56039,7 @@
  msgid "Pointer initialization target at %L must have the TARGET attribute"
  msgstr ""
  
@@ -93410,7 +108709,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Pointer initialization target at %L must have the SAVE attribute"
  msgstr ""
-@@ -56018,90 +56246,90 @@
+@@ -56018,90 +56049,90 @@
  msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
  msgstr ""
  
@@ -93518,7 +108817,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
  msgstr ""
-@@ -56112,13 +56340,13 @@
+@@ -56112,13 +56143,13 @@
  msgid "can't open input file: %s"
  msgstr "ne peut ouvrir le fichier de sortie « %s »"
  
@@ -93535,7 +108834,7 @@ Index: gcc/po/fr.po
  #: fortran/trans-intrinsic.c:6278
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "creating array of `%T'"
-@@ -56125,43 +56353,43 @@
+@@ -56125,43 +56156,43 @@
  msgid "Creating array temporary at %L"
  msgstr "création du tableau « %T »"
  
@@ -93587,7 +108886,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Scalarization using DIMEN_RANGE unimplemented"
  msgstr ""
-@@ -56240,602 +56468,602 @@
+@@ -56240,602 +56271,602 @@
  msgid "Expecting %<END INTERFACE %s%> at %C"
  msgstr ""
  
@@ -94307,7 +109606,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Passed-object dummy argument of %qs at %L must be at the same position as the passed-object dummy argument of the overridden procedure"
  msgstr ""
-@@ -57332,7 +57560,7 @@
+@@ -57332,7 +57363,7 @@
  msgid "UNIT number in CLOSE statement at %L must be non-negative"
  msgstr ""
  
@@ -94316,7 +109615,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "%s statement not allowed in PURE procedure at %C"
  msgstr ""
-@@ -57472,7 +57700,7 @@
+@@ -57472,7 +57503,7 @@
  msgstr "expression sans type comme argument %d"
  
  #. A general purpose syntax error.
@@ -94325,7 +109624,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Invalid form for %A statement at %0"
  msgid "Syntax error in %s statement at %C"
-@@ -57561,640 +57789,651 @@
+@@ -57561,640 +57592,651 @@
  msgid "gfc_op2string(): Bad code"
  msgstr ""
  
@@ -95099,7 +110398,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "syntax error in macro parameter list"
  msgid "Syntax error in common block name at %C"
-@@ -58203,169 +58442,169 @@
+@@ -58203,169 +58245,169 @@
  #. If we find an error, just print it and continue,
  #. cause it's just semantic, and we can see if there
  #. are more errors.
@@ -95300,7 +110599,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "start label '%s' does not match end label '%s'"
  msgid "Label %qs at %C doesn't match WHERE label %qs"
-@@ -58406,17 +58645,17 @@
+@@ -58406,17 +58448,17 @@
  msgid "match_level_4(): Bad operator"
  msgstr ""
  
@@ -95321,7 +110620,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "gfc_code2string(): Bad code"
  msgstr ""
-@@ -58523,191 +58762,191 @@
+@@ -58523,191 +58565,191 @@
  msgid "unquote_string(): got bad string"
  msgstr "l'argument de la chaîne de format n'est pas de type « string »"
  
@@ -95551,7 +110850,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "COMMON block /%s/ not found at %C"
  msgstr ""
-@@ -58724,1128 +58963,1093 @@
+@@ -58724,1128 +58766,1093 @@
  msgid "Syntax error in OpenACC expression list at %C"
  msgstr "erreur de syntaxe dans la liste d'exception"
  
@@ -96899,7 +112198,7 @@ Index: gcc/po/fr.po
  #: fortran/parse.c:2852
  #, gcc-internal-format, gfc-internal-format
  msgid "Component %s at %L of type LOCK_TYPE must have a codimension or be a subcomponent of a coarray, which is not possible as the component has the pointer attribute"
-@@ -59908,236 +60112,289 @@
+@@ -59908,236 +59915,289 @@
  
  #: fortran/parse.c:2968
  #, gcc-internal-format, gfc-internal-format
@@ -97233,7 +112532,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Unsupported VXT statement at %0"
  msgid "Unexpected %s statement in MODULE at %C"
-@@ -60146,7 +60403,7 @@
+@@ -60146,7 +60206,7 @@
  #. If we see a duplicate main program, shut down.  If the second
  #. instance is an implied main program, i.e. data decls or executable
  #. statements, we're in for lots of errors.
@@ -97242,7 +112541,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Two main PROGRAMs at %L and %C"
  msgstr ""
-@@ -60393,153 +60650,159 @@
+@@ -60393,153 +60453,159 @@
  msgid "extend_ref(): Bad tail"
  msgstr ""
  
@@ -97432,7 +112731,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "%s is not addressable"
  msgid "%qs at %C is not a variable"
-@@ -60807,513 +61070,513 @@
+@@ -60807,513 +60873,513 @@
  msgid "COMMON block %qs at %L that is also a global procedure"
  msgstr ""
  
@@ -98044,7 +113343,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Assumed-type variable %s at %L may only be used as actual argument"
  msgstr ""
-@@ -61322,12 +61585,12 @@
+@@ -61322,12 +61388,12 @@
  #. for all inquiry functions in resolve_function; the reason is
  #. that the function-name resolution happens too late in that
  #. function.
@@ -98059,7 +113358,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Assumed-rank variable %s at %L may only be used as actual argument"
  msgstr ""
-@@ -61336,267 +61599,267 @@
+@@ -61336,267 +61402,267 @@
  #. for all inquiry functions in resolve_function; the reason is
  #. that the function-name resolution happens too late in that
  #. function.
@@ -98378,7 +113677,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Allocate-object at %L is subobject of object at %L"
  msgstr ""
-@@ -61605,120 +61868,120 @@
+@@ -61605,120 +61671,120 @@
  #. element in the list.  Either way, we must
  #. issue an error and get the next case from P.
  #. FIXME: Sort P and Q by line number.
@@ -98522,7 +113821,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "Invalid reference to intrinsic `%A' at %0"
  msgid "Invalid context for NULL () intrinsic at %L"
-@@ -61725,98 +61988,98 @@
+@@ -61725,98 +61791,98 @@
  msgstr "référence invalide vers l'intrinsèque «%A» à %0"
  
  #. FIXME: Test for defined input/output.
@@ -98639,7 +113938,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Branch at %L may result in an infinite loop"
  msgstr ""
-@@ -61823,12 +62086,12 @@
+@@ -61823,12 +61889,12 @@
  
  #. Note: A label at END CRITICAL does not leave the CRITICAL
  #. construct as END CRITICAL is still part of it.
@@ -98654,7 +113953,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
  msgstr ""
-@@ -61836,110 +62099,110 @@
+@@ -61836,110 +61902,110 @@
  #. The label is not in an enclosing block, so illegal.  This was
  #. allowed in Fortran 66, so we allow it as extension.  No
  #. further checks are necessary in this case.
@@ -98786,7 +114085,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
  msgstr ""
-@@ -61946,69 +62209,69 @@
+@@ -61946,69 +62012,69 @@
  
  #. Even if standard does not support this feature, continue to build
  #. the two statements to avoid upsetting frontend_passes.c.
@@ -98869,7 +114168,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Variable %s with binding label %s at %L uses the same global identifier as entity at %L"
  msgstr ""
-@@ -62015,7 +62278,7 @@
+@@ -62015,7 +62081,7 @@
  
  #. This can only happen if the variable is defined in a module - if it
  #. isn't the same module, reject it.
@@ -98878,7 +114177,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Variable %s from module %s with binding label %s at %L uses the same global identifier as entity at %L from module %s"
  msgstr ""
-@@ -62023,53 +62286,53 @@
+@@ -62023,53 +62089,53 @@
  #. Print an error if the procedure is defined multiple times; we have to
  #. exclude references to the same procedure via module association or
  #. multiple checks for the same procedure.
@@ -98942,7 +114241,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
  msgstr ""
-@@ -62076,458 +62339,464 @@
+@@ -62076,458 +62142,464 @@
  
  #. The shape of a main program or module array needs to be
  #. constant.
@@ -99506,7 +114805,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
  msgstr ""
-@@ -62534,415 +62803,415 @@
+@@ -62534,415 +62606,415 @@
  
  #. FIXME: Once UDDTIO is implemented, the following can be
  #. removed.
@@ -100004,7 +115303,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
  msgstr ""
-@@ -62995,35 +63264,35 @@
+@@ -62995,35 +63067,35 @@
  msgid "Missing %<&%> in continued character constant at %C"
  msgstr "valeur non reconnue pour la constante caractère à %0"
  
@@ -100046,7 +115345,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format
  #| msgid "can't open output file `%s'"
  msgid "Can't open file %qs"
-@@ -63223,44 +63492,44 @@
+@@ -63223,44 +63295,44 @@
  msgid "DIM argument at %L is out of bounds"
  msgstr "numéro de l'accumulateur est hors limite"
  
@@ -100099,7 +115398,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "gfc_simplify_mod(): Bad arguments"
  msgstr ""
-@@ -63268,95 +63537,95 @@
+@@ -63268,95 +63340,95 @@
  #. Result is processor-dependent. This processor just opts
  #. to not handle it at all.
  #. Result is processor-dependent.
@@ -100213,7 +115512,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Character %qs in string at %L cannot be converted into character kind %d"
  msgstr ""
-@@ -63366,49 +63635,49 @@
+@@ -63366,49 +63438,49 @@
  msgid "gfc_free_statement(): Bad statement"
  msgstr ""
  
@@ -100272,7 +115571,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Implicitly declared BIND(C) variable %qs at %L may not be C interoperable"
  msgstr ""
-@@ -63415,146 +63684,146 @@
+@@ -63415,146 +63487,146 @@
  
  #. Dummy args to a BIND(C) routine may not be interoperable if
  #. they are implicitly typed.
@@ -100446,7 +115745,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid ""
  "%s procedure at %L is already declared as %s procedure. \n"
-@@ -63561,210 +63830,210 @@
+@@ -63561,210 +63633,210 @@
  "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
  msgstr ""
  
@@ -100698,7 +115997,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "Symbol %qs is used before it is typed at %L"
  msgstr ""
-@@ -63799,89 +64068,89 @@
+@@ -63799,89 +63871,89 @@
  
  #. Problems occur when we get something like
  #. integer :: a(lots) = (/(i, i=1, lots)/)
@@ -100805,7 +116104,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "COMMON at %L requires %d bytes of padding; reorder elements or use %<-fno-align-commons%>"
  msgstr ""
-@@ -63902,76 +64171,76 @@
+@@ -63902,76 +63974,76 @@
  msgid "non-constant initialization expression at %L"
  msgstr "expression n'est pas une constante"
  
@@ -100896,7 +116195,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Sorry, $!ACC DECLARE at %L is not allowed in BLOCK construct"
  msgstr ""
-@@ -64001,12 +64270,12 @@
+@@ -64001,12 +64073,12 @@
  msgid "Sorry, coindexed access at %L to a scalar component with an array partref is not yet supported"
  msgstr ""
  
@@ -100911,7 +116210,7 @@ Index: gcc/po/fr.po
  #, fuzzy, gcc-internal-format, gfc-internal-format
  #| msgid "too few arguments to function `%s'"
  msgid "Unknown argument list function at %L"
-@@ -64044,7 +64313,7 @@
+@@ -64044,7 +64116,7 @@
  msgid "Bad IO basetype (%d)"
  msgstr ""
  
@@ -100920,7 +116219,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "gfc_trans_omp_workshare(): Bad statement code"
  msgstr ""
-@@ -64130,7 +64399,7 @@
+@@ -64130,7 +64202,7 @@
  msgid "gfc_validate_kind(): Got bad kind"
  msgstr ""
  
@@ -100929,7 +116228,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format, gfc-internal-format
  msgid "Array element size too big at %C"
  msgstr ""
-@@ -64170,22 +64439,22 @@
+@@ -64170,22 +64242,22 @@
  msgid "non-static method %q+D overrides static method"
  msgstr "méthode non statique %q+D écrase la méthode statique"
  
@@ -100956,7 +116255,7 @@ Index: gcc/po/fr.po
  #, gcc-internal-format
  msgid "bad PC range for debug info for local %q+D"
  msgstr "PC erroné pour les infos de débogage pour la var. locale %q+D"
-@@ -65682,6 +65951,26 @@
+@@ -65682,6 +65754,26 @@
  msgstr "création du sélection pour une méthode inexistante %qE"
  
  #, fuzzy
@@ -158695,7 +173994,19 @@ Index: gcc/po/ChangeLog
 ===================================================================
 --- a/src/gcc/po/ChangeLog	(.../tags/gcc_6_2_0_release)
 +++ b/src/gcc/po/ChangeLog	(.../branches/gcc-6-branch)
-@@ -1,3 +1,53 @@
+@@ -1,3 +1,65 @@
++2016-12-08  Joseph Myers  <joseph at codesourcery.com>
++
++	* es.po: Update.
++
++2016-12-08  Joseph Myers  <joseph at codesourcery.com>
++
++	* es.po: Update.
++
++2016-12-05  Joseph Myers  <joseph at codesourcery.com>
++
++	* es.po, fr.po: Update.
++
 +2016-12-01  Joseph Myers  <joseph at codesourcery.com>
 +
 +	* es.po: Update.
@@ -605071,6 +620382,142 @@ Index: gcc/tree-ssa-ter.c
  
        /* Free any unused dependency lists.  */
        bitmap_clear (tab->new_replaceable_dependencies);
+Index: gcc/tree-nested.c
+===================================================================
+--- a/src/gcc/tree-nested.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/tree-nested.c	(.../branches/gcc-6-branch)
+@@ -1978,6 +1978,8 @@
+   struct nesting_info *info = (struct nesting_info *) wi->info;
+   tree save_local_var_chain;
+   bitmap save_suppress;
++  char save_static_chain_added;
++  bool frame_decl_added;
+   gimple *stmt = gsi_stmt (*gsi);
+ 
+   switch (gimple_code (stmt))
+@@ -1985,29 +1987,44 @@
+     case GIMPLE_OMP_PARALLEL:
+     case GIMPLE_OMP_TASK:
+       save_suppress = info->suppress_expansion;
++      frame_decl_added = false;
+       if (convert_local_omp_clauses (gimple_omp_taskreg_clauses_ptr (stmt),
+ 	                             wi))
+ 	{
+-	  tree c;
++	  tree c = build_omp_clause (gimple_location (stmt),
++				     OMP_CLAUSE_SHARED);
+ 	  (void) get_frame_type (info);
+-	  c = build_omp_clause (gimple_location (stmt),
+-				OMP_CLAUSE_SHARED);
+ 	  OMP_CLAUSE_DECL (c) = info->frame_decl;
+ 	  OMP_CLAUSE_CHAIN (c) = gimple_omp_taskreg_clauses (stmt);
+ 	  gimple_omp_taskreg_set_clauses (stmt, c);
++	  info->static_chain_added |= 4;
++	  frame_decl_added = true;
+ 	}
+ 
+       save_local_var_chain = info->new_local_var_chain;
++      save_static_chain_added = info->static_chain_added;
+       info->new_local_var_chain = NULL;
++      info->static_chain_added = 0;
+ 
+       walk_body (convert_local_reference_stmt, convert_local_reference_op, info,
+ 	         gimple_omp_body_ptr (stmt));
+ 
++      if ((info->static_chain_added & 4) != 0 && !frame_decl_added)
++	{
++	  tree c = build_omp_clause (gimple_location (stmt),
++				     OMP_CLAUSE_SHARED);
++	  (void) get_frame_type (info);
++	  OMP_CLAUSE_DECL (c) = info->frame_decl;
++	  OMP_CLAUSE_CHAIN (c) = gimple_omp_taskreg_clauses (stmt);
++	  info->static_chain_added |= 4;
++	  gimple_omp_taskreg_set_clauses (stmt, c);
++	}
+       if (info->new_local_var_chain)
+ 	declare_vars (info->new_local_var_chain,
+ 		      gimple_seq_first_stmt (gimple_omp_body (stmt)), false);
+       info->new_local_var_chain = save_local_var_chain;
+       info->suppress_expansion = save_suppress;
++      info->static_chain_added |= save_static_chain_added;
+       break;
+ 
+     case GIMPLE_OMP_FOR:
+@@ -2048,29 +2065,46 @@
+ 	  break;
+ 	}
+       save_suppress = info->suppress_expansion;
++      frame_decl_added = false;
+       if (convert_local_omp_clauses (gimple_omp_target_clauses_ptr (stmt), wi))
+ 	{
+-	  tree c;
++	  tree c = build_omp_clause (gimple_location (stmt), OMP_CLAUSE_MAP);
+ 	  (void) get_frame_type (info);
+-	  c = build_omp_clause (gimple_location (stmt), OMP_CLAUSE_MAP);
+ 	  OMP_CLAUSE_DECL (c) = info->frame_decl;
+ 	  OMP_CLAUSE_SET_MAP_KIND (c, GOMP_MAP_TOFROM);
+ 	  OMP_CLAUSE_SIZE (c) = DECL_SIZE_UNIT (info->frame_decl);
+ 	  OMP_CLAUSE_CHAIN (c) = gimple_omp_target_clauses (stmt);
+ 	  gimple_omp_target_set_clauses (as_a <gomp_target *> (stmt), c);
++	  info->static_chain_added |= 4;
++	  frame_decl_added = true;
+ 	}
+ 
+       save_local_var_chain = info->new_local_var_chain;
++      save_static_chain_added = info->static_chain_added;
+       info->new_local_var_chain = NULL;
++      info->static_chain_added = 0;
+ 
+       walk_body (convert_local_reference_stmt, convert_local_reference_op, info,
+ 		 gimple_omp_body_ptr (stmt));
+ 
++      if ((info->static_chain_added & 4) != 0 && !frame_decl_added)
++	{
++	  tree c = build_omp_clause (gimple_location (stmt), OMP_CLAUSE_MAP);
++	  (void) get_frame_type (info);
++	  OMP_CLAUSE_DECL (c) = info->frame_decl;
++	  OMP_CLAUSE_SET_MAP_KIND (c, GOMP_MAP_TOFROM);
++	  OMP_CLAUSE_SIZE (c) = DECL_SIZE_UNIT (info->frame_decl);
++	  OMP_CLAUSE_CHAIN (c) = gimple_omp_target_clauses (stmt);
++	  gimple_omp_target_set_clauses (as_a <gomp_target *> (stmt), c);
++	  info->static_chain_added |= 4;
++	}
++
+       if (info->new_local_var_chain)
+ 	declare_vars (info->new_local_var_chain,
+ 		      gimple_seq_first_stmt (gimple_omp_body (stmt)), false);
+       info->new_local_var_chain = save_local_var_chain;
+       info->suppress_expansion = save_suppress;
++      info->static_chain_added |= save_static_chain_added;
+       break;
+ 
+     case GIMPLE_OMP_TEAMS:
+Index: gcc/ipa-comdats.c
+===================================================================
+--- a/src/gcc/ipa-comdats.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/ipa-comdats.c	(.../branches/gcc-6-branch)
+@@ -416,7 +416,7 @@
+ bool
+ pass_ipa_comdats::gate (function *)
+ {
+-  return optimize;
++  return HAVE_COMDAT_GROUP && optimize;
+ }
+ 
+ } // anon namespace
+Index: gcc/rtl.h
+===================================================================
+--- a/src/gcc/rtl.h	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/rtl.h	(.../branches/gcc-6-branch)
+@@ -2997,7 +2997,7 @@
+ extern void add_int_reg_note (rtx, enum reg_note, int);
+ extern void add_shallow_copy_of_reg_note (rtx_insn *, rtx);
+ extern void remove_note (rtx, const_rtx);
+-extern void remove_reg_equal_equiv_notes (rtx_insn *);
++extern bool remove_reg_equal_equiv_notes (rtx_insn *);
+ extern void remove_reg_equal_equiv_notes_for_regno (unsigned int);
+ extern int side_effects_p (const_rtx);
+ extern int volatile_refs_p (const_rtx);
 Index: gcc/tree-vect-stmts.c
 ===================================================================
 --- a/src/gcc/tree-vect-stmts.c	(.../tags/gcc_6_2_0_release)
@@ -605348,6 +620795,391 @@ Index: gcc/tree-vect-stmts.c
  		  break;
  		default:
  		  gcc_unreachable ();
+Index: gcc/tree-inline.c
+===================================================================
+--- a/src/gcc/tree-inline.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/tree-inline.c	(.../branches/gcc-6-branch)
+@@ -1623,11 +1623,19 @@
+ 	    gimple_call_set_tail (call_stmt, false);
+ 	  if (gimple_call_from_thunk_p (call_stmt))
+ 	    gimple_call_set_from_thunk (call_stmt, false);
+-	  if (gimple_call_internal_p (call_stmt)
+-	      && IN_RANGE (gimple_call_internal_fn (call_stmt),
+-			   IFN_GOMP_SIMD_ORDERED_START,
+-			   IFN_GOMP_SIMD_ORDERED_END))
+-	    DECL_STRUCT_FUNCTION (id->dst_fn)->has_simduid_loops = true;
++	  if (gimple_call_internal_p (call_stmt))
++	    switch (gimple_call_internal_fn (call_stmt))
++	      {
++	      case IFN_GOMP_SIMD_LANE:
++	      case IFN_GOMP_SIMD_VF:
++	      case IFN_GOMP_SIMD_LAST_LANE:
++	      case IFN_GOMP_SIMD_ORDERED_START:
++	      case IFN_GOMP_SIMD_ORDERED_END:
++		DECL_STRUCT_FUNCTION (id->dst_fn)->has_simduid_loops = true;
++	        break;
++	      default:
++		break;
++	      }
+ 	}
+ 
+       /* Remap the region numbers for __builtin_eh_{pointer,filter},
+Index: gcc/omp-simd-clone.c
+===================================================================
+--- a/src/gcc/omp-simd-clone.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/omp-simd-clone.c	(.../branches/gcc-6-branch)
+@@ -600,8 +600,9 @@
+ 
+ 	  if (node->definition)
+ 	    sc->args[i].simd_array
+-	      = create_tmp_simd_array (IDENTIFIER_POINTER (DECL_NAME (parm)),
+-				       parm_type, sc->simdlen);
++	      = create_tmp_simd_array (DECL_NAME (parm)
++				       ? IDENTIFIER_POINTER (DECL_NAME (parm))
++				       : NULL, parm_type, sc->simdlen);
+ 	}
+       adjustments.safe_push (adj);
+     }
+@@ -1077,7 +1078,7 @@
+      return values accordingly.  */
+   tree iter = create_tmp_var (unsigned_type_node, "iter");
+   tree iter1 = make_ssa_name (iter);
+-  tree iter2 = make_ssa_name (iter);
++  tree iter2 = NULL_TREE;
+   ipa_simd_modify_function_body (node, adjustments, retval, iter1);
+ 
+   /* Initialize the iteration variable.  */
+@@ -1090,39 +1091,57 @@
+ 
+   pop_gimplify_context (NULL);
+ 
++  gimple *g;
++  basic_block incr_bb = NULL;
++  struct loop *loop = NULL;
++
+   /* Create a new BB right before the original exit BB, to hold the
+      iteration increment and the condition/branch.  */
+-  basic_block orig_exit = EDGE_PRED (EXIT_BLOCK_PTR_FOR_FN (cfun), 0)->src;
+-  basic_block incr_bb = create_empty_bb (orig_exit);
+-  add_bb_to_loop (incr_bb, body_bb->loop_father);
+-  /* The succ of orig_exit was EXIT_BLOCK_PTR_FOR_FN (cfun), with an empty
+-     flag.  Set it now to be a FALLTHRU_EDGE.  */
+-  gcc_assert (EDGE_COUNT (orig_exit->succs) == 1);
+-  EDGE_SUCC (orig_exit, 0)->flags |= EDGE_FALLTHRU;
+-  for (unsigned i = 0;
+-       i < EDGE_COUNT (EXIT_BLOCK_PTR_FOR_FN (cfun)->preds); ++i)
++  if (EDGE_COUNT (EXIT_BLOCK_PTR_FOR_FN (cfun)->preds))
+     {
+-      edge e = EDGE_PRED (EXIT_BLOCK_PTR_FOR_FN (cfun), i);
+-      redirect_edge_succ (e, incr_bb);
++      basic_block orig_exit = EDGE_PRED (EXIT_BLOCK_PTR_FOR_FN (cfun), 0)->src;
++      incr_bb = create_empty_bb (orig_exit);
++      add_bb_to_loop (incr_bb, body_bb->loop_father);
++      /* The succ of orig_exit was EXIT_BLOCK_PTR_FOR_FN (cfun), with an empty
++	 flag.  Set it now to be a FALLTHRU_EDGE.  */
++      gcc_assert (EDGE_COUNT (orig_exit->succs) == 1);
++      EDGE_SUCC (orig_exit, 0)->flags |= EDGE_FALLTHRU;
++      for (unsigned i = 0;
++	   i < EDGE_COUNT (EXIT_BLOCK_PTR_FOR_FN (cfun)->preds); ++i)
++	{
++	  edge e = EDGE_PRED (EXIT_BLOCK_PTR_FOR_FN (cfun), i);
++	  redirect_edge_succ (e, incr_bb);
++	}
+     }
+-  edge e = make_edge (incr_bb, EXIT_BLOCK_PTR_FOR_FN (cfun), 0);
+-  e->probability = REG_BR_PROB_BASE;
+-  gsi = gsi_last_bb (incr_bb);
+-  gimple *g = gimple_build_assign (iter2, PLUS_EXPR, iter1,
+-				   build_int_cst (unsigned_type_node, 1));
+-  gsi_insert_after (&gsi, g, GSI_CONTINUE_LINKING);
++  else if (node->simdclone->inbranch)
++    {
++      incr_bb = create_empty_bb (entry_bb);
++      add_bb_to_loop (incr_bb, body_bb->loop_father);
++    }
+ 
+-  /* Mostly annotate the loop for the vectorizer (the rest is done below).  */
+-  struct loop *loop = alloc_loop ();
+-  cfun->has_force_vectorize_loops = true;
+-  loop->safelen = node->simdclone->simdlen;
+-  loop->force_vectorize = true;
+-  loop->header = body_bb;
++  if (incr_bb)
++    {
++      edge e = make_edge (incr_bb, EXIT_BLOCK_PTR_FOR_FN (cfun), 0);
++      e->probability = REG_BR_PROB_BASE;
++      gsi = gsi_last_bb (incr_bb);
++      iter2 = make_ssa_name (iter);
++      g = gimple_build_assign (iter2, PLUS_EXPR, iter1,
++			       build_int_cst (unsigned_type_node, 1));
++      gsi_insert_after (&gsi, g, GSI_CONTINUE_LINKING);
+ 
++      /* Mostly annotate the loop for the vectorizer (the rest is done
++	 below).  */
++      loop = alloc_loop ();
++      cfun->has_force_vectorize_loops = true;
++      loop->safelen = node->simdclone->simdlen;
++      loop->force_vectorize = true;
++      loop->header = body_bb;
++    }
++
+   /* Branch around the body if the mask applies.  */
+   if (node->simdclone->inbranch)
+     {
+-      gimple_stmt_iterator gsi = gsi_last_bb (loop->header);
++      gsi = gsi_last_bb (loop->header);
+       tree mask_array
+ 	= node->simdclone->args[node->simdclone->nargs - 1].simd_array;
+       tree mask;
+@@ -1196,50 +1215,59 @@
+       FALLTHRU_EDGE (loop->header)->flags = EDGE_FALSE_VALUE;
+     }
+ 
++  basic_block latch_bb = NULL;
++  basic_block new_exit_bb = NULL;
++
+   /* Generate the condition.  */
+-  g = gimple_build_cond (LT_EXPR,
+-			 iter2,
+-			 build_int_cst (unsigned_type_node,
+-					node->simdclone->simdlen),
+-			 NULL, NULL);
+-  gsi_insert_after (&gsi, g, GSI_CONTINUE_LINKING);
+-  e = split_block (incr_bb, gsi_stmt (gsi));
+-  basic_block latch_bb = e->dest;
+-  basic_block new_exit_bb;
+-  new_exit_bb = split_block_after_labels (latch_bb)->dest;
+-  loop->latch = latch_bb;
++  if (incr_bb)
++    {
++      gsi = gsi_last_bb (incr_bb);
++      g = gimple_build_cond (LT_EXPR, iter2,
++			     build_int_cst (unsigned_type_node,
++					    node->simdclone->simdlen),
++			     NULL, NULL);
++      gsi_insert_after (&gsi, g, GSI_CONTINUE_LINKING);
++      edge e = split_block (incr_bb, gsi_stmt (gsi));
++      latch_bb = e->dest;
++      new_exit_bb = split_block_after_labels (latch_bb)->dest;
++      loop->latch = latch_bb;
+ 
+-  redirect_edge_succ (FALLTHRU_EDGE (latch_bb), body_bb);
++      redirect_edge_succ (FALLTHRU_EDGE (latch_bb), body_bb);
+ 
+-  make_edge (incr_bb, new_exit_bb, EDGE_FALSE_VALUE);
+-  /* The successor of incr_bb is already pointing to latch_bb; just
+-     change the flags.
+-     make_edge (incr_bb, latch_bb, EDGE_TRUE_VALUE);  */
+-  FALLTHRU_EDGE (incr_bb)->flags = EDGE_TRUE_VALUE;
++      make_edge (incr_bb, new_exit_bb, EDGE_FALSE_VALUE);
++      /* The successor of incr_bb is already pointing to latch_bb; just
++	 change the flags.
++	 make_edge (incr_bb, latch_bb, EDGE_TRUE_VALUE);  */
++      FALLTHRU_EDGE (incr_bb)->flags = EDGE_TRUE_VALUE;
++    }
+ 
+   gphi *phi = create_phi_node (iter1, body_bb);
+   edge preheader_edge = find_edge (entry_bb, body_bb);
+-  edge latch_edge = single_succ_edge (latch_bb);
++  edge latch_edge = NULL;
+   add_phi_arg (phi, build_zero_cst (unsigned_type_node), preheader_edge,
+ 	       UNKNOWN_LOCATION);
+-  add_phi_arg (phi, iter2, latch_edge, UNKNOWN_LOCATION);
++  if (incr_bb)
++    {
++      latch_edge = single_succ_edge (latch_bb);
++      add_phi_arg (phi, iter2, latch_edge, UNKNOWN_LOCATION);
+ 
+-  /* Generate the new return.  */
+-  gsi = gsi_last_bb (new_exit_bb);
+-  if (retval
+-      && TREE_CODE (retval) == VIEW_CONVERT_EXPR
+-      && TREE_CODE (TREE_OPERAND (retval, 0)) == RESULT_DECL)
+-    retval = TREE_OPERAND (retval, 0);
+-  else if (retval)
+-    {
+-      retval = build1 (VIEW_CONVERT_EXPR,
+-		       TREE_TYPE (TREE_TYPE (node->decl)),
+-		       retval);
+-      retval = force_gimple_operand_gsi (&gsi, retval, true, NULL,
+-					 false, GSI_CONTINUE_LINKING);
++      /* Generate the new return.  */
++      gsi = gsi_last_bb (new_exit_bb);
++      if (retval
++	  && TREE_CODE (retval) == VIEW_CONVERT_EXPR
++	  && TREE_CODE (TREE_OPERAND (retval, 0)) == RESULT_DECL)
++	retval = TREE_OPERAND (retval, 0);
++      else if (retval)
++	{
++	  retval = build1 (VIEW_CONVERT_EXPR,
++			   TREE_TYPE (TREE_TYPE (node->decl)),
++			   retval);
++	  retval = force_gimple_operand_gsi (&gsi, retval, true, NULL,
++					     false, GSI_CONTINUE_LINKING);
++	}
++      g = gimple_build_return (retval);
++      gsi_insert_after (&gsi, g, GSI_CONTINUE_LINKING);
+     }
+-  g = gimple_build_return (retval);
+-  gsi_insert_after (&gsi, g, GSI_CONTINUE_LINKING);
+ 
+   /* Handle aligned clauses by replacing default defs of the aligned
+      uniform args with __builtin_assume_aligned (arg_N(D), alignment)
+@@ -1355,7 +1383,8 @@
+ 	  {
+ 	    def = make_ssa_name (TREE_TYPE (orig_arg));
+ 	    iter1 = make_ssa_name (TREE_TYPE (orig_arg));
+-	    iter2 = make_ssa_name (TREE_TYPE (orig_arg));
++	    if (incr_bb)
++	      iter2 = make_ssa_name (TREE_TYPE (orig_arg));
+ 	    gsi = gsi_after_labels (entry_bb);
+ 	    g = gimple_build_assign (def, orig_arg);
+ 	    gsi_insert_before (&gsi, g, GSI_NEW_STMT);
+@@ -1368,7 +1397,8 @@
+ 	    else
+ 	      {
+ 		iter1 = make_ssa_name (orig_arg);
+-		iter2 = make_ssa_name (orig_arg);
++		if (incr_bb)
++		  iter2 = make_ssa_name (orig_arg);
+ 	      }
+ 	  }
+ 	if (def)
+@@ -1375,16 +1405,19 @@
+ 	  {
+ 	    phi = create_phi_node (iter1, body_bb);
+ 	    add_phi_arg (phi, def, preheader_edge, UNKNOWN_LOCATION);
+-	    add_phi_arg (phi, iter2, latch_edge, UNKNOWN_LOCATION);
+-	    enum tree_code code = INTEGRAL_TYPE_P (TREE_TYPE (orig_arg))
+-				  ? PLUS_EXPR : POINTER_PLUS_EXPR;
+-	    tree addtype = INTEGRAL_TYPE_P (TREE_TYPE (orig_arg))
+-			   ? TREE_TYPE (orig_arg) : sizetype;
+-	    tree addcst = simd_clone_linear_addend (node, i, addtype,
+-						    entry_bb);
+-	    gsi = gsi_last_bb (incr_bb);
+-	    g = gimple_build_assign (iter2, code, iter1, addcst);
+-	    gsi_insert_before (&gsi, g, GSI_SAME_STMT);
++	    if (incr_bb)
++	      {
++		add_phi_arg (phi, iter2, latch_edge, UNKNOWN_LOCATION);
++		enum tree_code code = INTEGRAL_TYPE_P (TREE_TYPE (orig_arg))
++				      ? PLUS_EXPR : POINTER_PLUS_EXPR;
++		tree addtype = INTEGRAL_TYPE_P (TREE_TYPE (orig_arg))
++			       ? TREE_TYPE (orig_arg) : sizetype;
++		tree addcst = simd_clone_linear_addend (node, i, addtype,
++							entry_bb);
++		gsi = gsi_last_bb (incr_bb);
++		g = gimple_build_assign (iter2, code, iter1, addcst);
++		gsi_insert_before (&gsi, g, GSI_SAME_STMT);
++	      }
+ 
+ 	    imm_use_iterator iter;
+ 	    use_operand_p use_p;
+@@ -1417,10 +1450,11 @@
+ 	  {
+ 	    tree rtype = TREE_TYPE (TREE_TYPE (orig_arg));
+ 	    iter1 = make_ssa_name (orig_arg);
+-	    iter2 = make_ssa_name (orig_arg);
++	    if (incr_bb)
++	      iter2 = make_ssa_name (orig_arg);
+ 	    tree iter3 = make_ssa_name (rtype);
+ 	    tree iter4 = make_ssa_name (rtype);
+-	    tree iter5 = make_ssa_name (rtype);
++	    tree iter5 = incr_bb ? make_ssa_name (rtype) : NULL_TREE;
+ 	    gsi = gsi_after_labels (entry_bb);
+ 	    gimple *load
+ 	      = gimple_build_assign (iter3, build_simple_mem_ref (def));
+@@ -1431,24 +1465,30 @@
+ 	    tree ptr = build_fold_addr_expr (array);
+ 	    phi = create_phi_node (iter1, body_bb);
+ 	    add_phi_arg (phi, ptr, preheader_edge, UNKNOWN_LOCATION);
+-	    add_phi_arg (phi, iter2, latch_edge, UNKNOWN_LOCATION);
+-	    g = gimple_build_assign (iter2, POINTER_PLUS_EXPR, iter1,
+-				     TYPE_SIZE_UNIT (TREE_TYPE (iter3)));
+-	    gsi = gsi_last_bb (incr_bb);
+-	    gsi_insert_before (&gsi, g, GSI_SAME_STMT);
++	    if (incr_bb)
++	      {
++		add_phi_arg (phi, iter2, latch_edge, UNKNOWN_LOCATION);
++		g = gimple_build_assign (iter2, POINTER_PLUS_EXPR, iter1,
++					 TYPE_SIZE_UNIT (TREE_TYPE (iter3)));
++		gsi = gsi_last_bb (incr_bb);
++		gsi_insert_before (&gsi, g, GSI_SAME_STMT);
++	      }
+ 
+ 	    phi = create_phi_node (iter4, body_bb);
+ 	    add_phi_arg (phi, iter3, preheader_edge, UNKNOWN_LOCATION);
+-	    add_phi_arg (phi, iter5, latch_edge, UNKNOWN_LOCATION);
+-	    enum tree_code code = INTEGRAL_TYPE_P (TREE_TYPE (iter3))
+-				  ? PLUS_EXPR : POINTER_PLUS_EXPR;
+-	    tree addtype = INTEGRAL_TYPE_P (TREE_TYPE (iter3))
+-			   ? TREE_TYPE (iter3) : sizetype;
+-	    tree addcst = simd_clone_linear_addend (node, i, addtype,
+-						    entry_bb);
+-	    g = gimple_build_assign (iter5, code, iter4, addcst);
+-	    gsi = gsi_last_bb (incr_bb);
+-	    gsi_insert_before (&gsi, g, GSI_SAME_STMT);
++	    if (incr_bb)
++	      {
++		add_phi_arg (phi, iter5, latch_edge, UNKNOWN_LOCATION);
++		enum tree_code code = INTEGRAL_TYPE_P (TREE_TYPE (iter3))
++				      ? PLUS_EXPR : POINTER_PLUS_EXPR;
++		tree addtype = INTEGRAL_TYPE_P (TREE_TYPE (iter3))
++			       ? TREE_TYPE (iter3) : sizetype;
++		tree addcst = simd_clone_linear_addend (node, i, addtype,
++							entry_bb);
++		g = gimple_build_assign (iter5, code, iter4, addcst);
++		gsi = gsi_last_bb (incr_bb);
++		gsi_insert_before (&gsi, g, GSI_SAME_STMT);
++	      }
+ 
+ 	    g = gimple_build_assign (build_simple_mem_ref (iter1), iter4);
+ 	    gsi = gsi_after_labels (body_bb);
+@@ -1464,7 +1504,7 @@
+ 		FOR_EACH_IMM_USE_ON_STMT (use_p, iter)
+ 		  SET_USE (use_p, iter1);
+ 
+-	    if (!TYPE_READONLY (rtype))
++	    if (!TYPE_READONLY (rtype) && incr_bb)
+ 	      {
+ 		tree v = make_ssa_name (rtype);
+ 		tree aref = build4 (ARRAY_REF, rtype, array,
+@@ -1480,7 +1520,8 @@
+       }
+ 
+   calculate_dominance_info (CDI_DOMINATORS);
+-  add_loop (loop, loop->header->loop_father);
++  if (loop)
++    add_loop (loop, loop->header->loop_father);
+   update_ssa (TODO_update_ssa);
+ 
+   pop_cfun ();
+Index: gcc/combine.c
+===================================================================
+--- a/src/gcc/combine.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/combine.c	(.../branches/gcc-6-branch)
+@@ -7369,6 +7369,7 @@
+   if (tmode != BLKmode
+       && ((pos_rtx == 0 && (pos % BITS_PER_WORD) == 0
+ 	   && !MEM_P (inner)
++	   && (pos == 0 || REG_P (inner))
+ 	   && (inner_mode == tmode
+ 	       || !REG_P (inner)
+ 	       || TRULY_NOOP_TRUNCATION_MODES_P (tmode, inner_mode)
+@@ -7445,10 +7446,9 @@
+ 	}
+       else
+ 	new_rtx = force_to_mode (inner, tmode,
+-			     len >= HOST_BITS_PER_WIDE_INT
+-			     ? ~(unsigned HOST_WIDE_INT) 0
+-			     : ((unsigned HOST_WIDE_INT) 1 << len) - 1,
+-			     0);
++				 len >= HOST_BITS_PER_WIDE_INT
++				 ? ~(unsigned HOST_WIDE_INT) 0
++				 : ((unsigned HOST_WIDE_INT) 1 << len) - 1, 0);
+ 
+       /* If this extraction is going into the destination of a SET,
+ 	 make a STRICT_LOW_PART unless we made a MEM.  */
 Index: gcc/config.gcc
 ===================================================================
 --- a/src/gcc/config.gcc	(.../tags/gcc_6_2_0_release)
@@ -606727,6 +622559,32 @@ Index: gcc/config/sparc/sparc.c
  	n_var++;
  
        if (i > 0 && !rtx_equal_p (x, XVECEXP (vals, 0, 0)))
+Index: gcc/config/darwin.opt
+===================================================================
+--- a/src/gcc/config/darwin.opt	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/config/darwin.opt	(.../branches/gcc-6-branch)
+@@ -37,6 +37,9 @@
+ arch_errors_fatal
+ Driver Alias(Zarch_errors_fatal)
+ 
++asm_macosx_version_min=
++Driver RejectNegative Joined
++
+ bind_at_load
+ Driver Alias(Zbind_at_load)
+ 
+@@ -391,5 +394,11 @@
+ sub_umbrella
+ Driver Separate
+ 
++; Certain aspects of code-gen may be improved / adjusted if the version of ld64
++; is sufficiently modern.
++mtarget-linker
++Target RejectNegative Joined Separate Report Var(darwin_target_linker) Init(LD64_VERSION)
++The version of ld64 in use for this toolchain.
++
+ undefined
+ Driver Separate
 Index: gcc/config/i386/pcommitintrin.h
 ===================================================================
 --- a/src/gcc/config/i386/pcommitintrin.h	(.../tags/gcc_6_2_0_release)
@@ -607646,6 +623504,22 @@ Index: gcc/config/i386/i386-builtin-types.def
  DEF_FUNCTION_TYPE (V16QI, PCCHAR)
  DEF_FUNCTION_TYPE (V16QI, V16QI)
  DEF_FUNCTION_TYPE (V2DF, PCDOUBLE)
+Index: gcc/config/i386/darwin.h
+===================================================================
+--- a/src/gcc/config/i386/darwin.h	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/config/i386/darwin.h	(.../branches/gcc-6-branch)
+@@ -112,8 +112,9 @@
+   DARWIN_CC1_SPEC
+ 
+ #undef ASM_SPEC
+-#define ASM_SPEC "-arch %(darwin_arch) -force_cpusubtype_ALL \
+-  %{static}"
++#define ASM_SPEC "-arch %(darwin_arch) \
++  " ASM_OPTIONS " -force_cpusubtype_ALL \
++  %{static}" ASM_MMACOSX_VERSION_MIN_SPEC
+ 
+ #define DARWIN_ARCH_SPEC "%{m64:x86_64;:i386}"
+ #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC
 Index: gcc/config/i386/t-i386
 ===================================================================
 --- a/src/gcc/config/i386/t-i386	(.../tags/gcc_6_2_0_release)
@@ -607959,7 +623833,123 @@ Index: gcc/config/i386/i386.c
      }
    else
      {
-@@ -15494,7 +15509,9 @@
+@@ -11035,7 +11050,7 @@
+ #if TARGET_MACHO
+       if (TARGET_MACHO)
+ 	{
+-	  switch_to_section (darwin_sections[text_coal_section]);
++	  switch_to_section (darwin_sections[picbase_thunk_section]);
+ 	  fputs ("\t.weak_definition\t", asm_out_file);
+ 	  assemble_name (asm_out_file, name);
+ 	  fputs ("\n\t.private_extern\t", asm_out_file);
+@@ -11069,6 +11084,9 @@
+       current_function_decl = decl;
+       allocate_struct_function (decl, false);
+       init_function_start (decl);
++      /* We're about to hide the function body from callees of final_* by
++	 emitting it directly; tell them we're a thunk, if they care.  */
++      cfun->is_thunk = true;
+       first_function_block_is_cold = false;
+       /* Make sure unwind info is emitted for the thunk if needed.  */
+       final_start_function (emit_barrier (), asm_out_file, 1);
+@@ -13694,36 +13712,68 @@
+   if (pic_offset_table_rtx
+       && !ix86_use_pseudo_pic_reg ())
+     SET_REGNO (pic_offset_table_rtx, REAL_PIC_OFFSET_TABLE_REGNUM);
+-#if TARGET_MACHO
+-  /* Mach-O doesn't support labels at the end of objects, so if
+-     it looks like we might want one, insert a NOP.  */
+-  {
+-    rtx_insn *insn = get_last_insn ();
+-    rtx_insn *deleted_debug_label = NULL;
+-    while (insn
+-	   && NOTE_P (insn)
+-	   && NOTE_KIND (insn) != NOTE_INSN_DELETED_LABEL)
+-      {
+-	/* Don't insert a nop for NOTE_INSN_DELETED_DEBUG_LABEL
+-	   notes only, instead set their CODE_LABEL_NUMBER to -1,
+-	   otherwise there would be code generation differences
+-	   in between -g and -g0.  */
+-	if (NOTE_P (insn) && NOTE_KIND (insn) == NOTE_INSN_DELETED_DEBUG_LABEL)
+-	  deleted_debug_label = insn;
++
++  if (TARGET_MACHO)
++    {
++      rtx_insn *insn = get_last_insn ();
++      rtx_insn *deleted_debug_label = NULL;
++
++      /* Mach-O doesn't support labels at the end of objects, so if
++         it looks like we might want one, take special action.
++        First, collect any sequence of deleted debug labels.  */
++      while (insn
++	     && NOTE_P (insn)
++	     && NOTE_KIND (insn) != NOTE_INSN_DELETED_LABEL)
++	{
++	  /* Don't insert a nop for NOTE_INSN_DELETED_DEBUG_LABEL
++	     notes only, instead set their CODE_LABEL_NUMBER to -1,
++	     otherwise there would be code generation differences
++	     in between -g and -g0.  */
++	  if (NOTE_P (insn) && NOTE_KIND (insn)
++	      == NOTE_INSN_DELETED_DEBUG_LABEL)
++	    deleted_debug_label = insn;
++	  insn = PREV_INSN (insn);
++	}
++
++      /* If we have:
++	 label:
++	    barrier
++	  then this needs to be detected, so skip past the barrier.  */
++
++      if (insn && BARRIER_P (insn))
+ 	insn = PREV_INSN (insn);
+-      }
+-    if (insn
+-	&& (LABEL_P (insn)
+-	    || (NOTE_P (insn)
+-		&& NOTE_KIND (insn) == NOTE_INSN_DELETED_LABEL)))
+-      fputs ("\tnop\n", file);
+-    else if (deleted_debug_label)
+-      for (insn = deleted_debug_label; insn; insn = NEXT_INSN (insn))
+-	if (NOTE_KIND (insn) == NOTE_INSN_DELETED_DEBUG_LABEL)
+-	  CODE_LABEL_NUMBER (insn) = -1;
+-  }
+-#endif
+ 
++      /* Up to now we've only seen notes or barriers.  */
++      if (insn)
++	{
++	  if (LABEL_P (insn)
++	      || (NOTE_P (insn)
++		  && NOTE_KIND (insn) == NOTE_INSN_DELETED_LABEL))
++	    /* Trailing label.  */
++	    fputs ("\tnop\n", file);
++	  else if (cfun && ! cfun->is_thunk)
++	    {
++	      /* See if we have a completely empty function body, skipping
++	         the special case of the picbase thunk emitted as asm.  */
++	      while (insn && ! INSN_P (insn))
++		insn = PREV_INSN (insn);
++	      /* If we don't find any insns, we've got an empty function body;
++		 I.e. completely empty - without a return or branch.  This is
++		 taken as the case where a function body has been removed
++		 because it contains an inline __builtin_unreachable().  GCC
++		 declares that reaching __builtin_unreachable() means UB so
++		 we're not obliged to do anything special; however, we want
++		 non-zero-sized function bodies.  To meet this, and help the
++		 user out, let's trap the case.  */
++	      if (insn == NULL)
++		fputs ("\tud2\n", file);
++	    }
++	}
++      else if (deleted_debug_label)
++	for (insn = deleted_debug_label; insn; insn = NEXT_INSN (insn))
++	  if (NOTE_KIND (insn) == NOTE_INSN_DELETED_DEBUG_LABEL)
++	    CODE_LABEL_NUMBER (insn) = -1;
++    }
+ }
+ 
+ /* Return a scratch register to use in the split stack prologue.  The
+@@ -15494,7 +15544,9 @@
  	  base = get_thread_pointer (tp_mode,
  				     for_mov || !TARGET_TLS_DIRECT_SEG_REFS);
  	  off = force_reg (tp_mode, off);
@@ -607970,7 +623960,7 @@ Index: gcc/config/i386/i386.c
  	}
        else
  	{
-@@ -22671,7 +22688,7 @@
+@@ -22671,7 +22723,7 @@
  
    /* We want to check HONOR_NANS and HONOR_SIGNED_ZEROS here,
       but MODE may be a vector mode and thus not appropriate.  */
@@ -607979,7 +623969,15 @@ Index: gcc/config/i386/i386.c
      {
        int u = is_min ? UNSPEC_IEEE_MIN : UNSPEC_IEEE_MAX;
        rtvec v;
-@@ -32141,9 +32158,6 @@
+@@ -22722,6 +22774,7 @@
+     cmp_op1 = force_reg (cmp_ops_mode, cmp_op1);
+ 
+   if (optimize
++      || (maskcmp && cmp_mode != mode)
+       || (op_true && reg_overlap_mentioned_p (dest, op_true))
+       || (op_false && reg_overlap_mentioned_p (dest, op_false)))
+     dest = gen_reg_rtx (maskcmp ? cmp_mode : mode);
+@@ -32141,9 +32194,6 @@
    /* CLWB instructions.  */
    IX86_BUILTIN_CLWB,
  
@@ -607989,7 +623987,7 @@ Index: gcc/config/i386/i386.c
    /* CLFLUSHOPT instructions.  */
    IX86_BUILTIN_CLFLUSHOPT,
  
-@@ -32344,7 +32358,10 @@
+@@ -32344,7 +32394,10 @@
    IX86_BUILTIN_LWPINS32,
    IX86_BUILTIN_LWPINS64,
  
@@ -608001,7 +623999,7 @@ Index: gcc/config/i386/i386.c
  
    /* RTM */
    IX86_BUILTIN_XBEGIN,
-@@ -32368,7 +32385,9 @@
+@@ -32368,7 +32421,9 @@
    /* BMI instructions.  */
    IX86_BUILTIN_BEXTR32,
    IX86_BUILTIN_BEXTR64,
@@ -608012,7 +624010,7 @@ Index: gcc/config/i386/i386.c
  
    /* TBM instructions.  */
    IX86_BUILTIN_BEXTRI32,
-@@ -32947,9 +32966,6 @@
+@@ -32947,9 +33002,6 @@
    { OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx512vl_us_truncatev8siv8hi2_mask_store, "__builtin_ia32_pmovusdw256mem_mask", IX86_BUILTIN_PMOVUSDW256_MEM, UNKNOWN, (int) VOID_FTYPE_PV8HI_V8SI_UQI },
    { OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx512vl_us_truncatev4siv4hi2_mask_store, "__builtin_ia32_pmovusdw128mem_mask", IX86_BUILTIN_PMOVUSDW128_MEM, UNKNOWN, (int) VOID_FTYPE_PV8HI_V4SI_UQI },
  
@@ -608022,7 +624020,7 @@ Index: gcc/config/i386/i386.c
    /* RDPKRU and WRPKRU.  */
    { OPTION_MASK_ISA_PKU, CODE_FOR_rdpkru,  "__builtin_ia32_rdpkru", IX86_BUILTIN_RDPKRU, UNKNOWN, (int) UNSIGNED_FTYPE_VOID },
    { OPTION_MASK_ISA_PKU, CODE_FOR_wrpkru,  "__builtin_ia32_wrpkru", IX86_BUILTIN_WRPKRU, UNKNOWN, (int) VOID_FTYPE_UNSIGNED }
-@@ -33759,13 +33775,19 @@
+@@ -33759,13 +33811,19 @@
    { OPTION_MASK_ISA_AVX2, CODE_FOR_avx2_lshrvv8si, "__builtin_ia32_psrlv8si", IX86_BUILTIN_PSRLVV8SI, UNKNOWN, (int) V8SI_FTYPE_V8SI_V8SI },
    { OPTION_MASK_ISA_AVX2, CODE_FOR_avx2_lshrvv4si, "__builtin_ia32_psrlv4si", IX86_BUILTIN_PSRLVV4SI, UNKNOWN, (int) V4SI_FTYPE_V4SI_V4SI },
  
@@ -608044,7 +624042,7 @@ Index: gcc/config/i386/i386.c
    /* TBM */
    { OPTION_MASK_ISA_TBM, CODE_FOR_tbm_bextri_si, "__builtin_ia32_bextri_u32", IX86_BUILTIN_BEXTRI32, UNKNOWN, (int) UINT_FTYPE_UINT_UINT },
    { OPTION_MASK_ISA_TBM | OPTION_MASK_ISA_64BIT, CODE_FOR_tbm_bextri_di, "__builtin_ia32_bextri_u64", IX86_BUILTIN_BEXTRI64, UNKNOWN, (int) UINT64_FTYPE_UINT64_UINT64 },
-@@ -37537,11 +37559,49 @@
+@@ -37537,11 +37595,49 @@
      {
        enum ix86_builtins fn_code = (enum ix86_builtins)
  				   DECL_FUNCTION_CODE (fndecl);
@@ -608096,7 +624094,7 @@ Index: gcc/config/i386/i386.c
  	}
      }
  
-@@ -37552,6 +37612,70 @@
+@@ -37552,6 +37648,70 @@
    return NULL_TREE;
  }
  
@@ -608167,7 +624165,7 @@ Index: gcc/config/i386/i386.c
  /* Make builtins to detect cpu type and features supported.  NAME is
     the builtin name, CODE is the builtin code, and FTYPE is the function
     type of the builtin.  */
-@@ -38513,8 +38637,10 @@
+@@ -38513,8 +38673,10 @@
      case FLOAT128_FTYPE_FLOAT128:
      case FLOAT_FTYPE_FLOAT:
      case INT_FTYPE_INT:
@@ -608179,7 +624177,7 @@ Index: gcc/config/i386/i386.c
      case INT64_FTYPE_INT64:
      case INT64_FTYPE_V4SF:
      case INT64_FTYPE_V2DF:
-@@ -40361,7 +40487,7 @@
+@@ -40361,7 +40523,7 @@
  	  error ("%qE needs isa option %s", fndecl, opts);
  	  free (opts);
  	}
@@ -608188,7 +624186,7 @@ Index: gcc/config/i386/i386.c
      }
  
    switch (fcode)
-@@ -48848,6 +48974,8 @@
+@@ -48848,6 +49010,8 @@
    /* ms_abi and sysv_abi calling convention function attributes.  */
    { "ms_abi", 0, 0, false, true, true, ix86_handle_abi_attribute, true },
    { "sysv_abi", 0, 0, false, true, true, ix86_handle_abi_attribute, true },
@@ -608197,7 +624195,7 @@ Index: gcc/config/i386/i386.c
    { "ms_hook_prologue", 0, 0, true, false, false, ix86_handle_fndecl_attribute,
      false },
    { "callee_pop_aggregate_return", 1, 1, false, true, true,
-@@ -52690,8 +52818,6 @@
+@@ -52690,8 +52854,6 @@
  static tree
  ix86_canonical_va_list_type (tree type)
  {
@@ -608206,7 +624204,7 @@ Index: gcc/config/i386/i386.c
    /* Resolve references and pointers to va_list type.  */
    if (TREE_CODE (type) == MEM_REF)
      type = TREE_TYPE (type);
-@@ -52700,64 +52826,25 @@
+@@ -52700,64 +52862,25 @@
    else if (POINTER_TYPE_P (type) && TREE_CODE (TREE_TYPE (type)) == ARRAY_TYPE)
      type = TREE_TYPE (type);
  
@@ -608285,7 +624283,7 @@ Index: gcc/config/i386/i386.c
    return std_canonical_va_list_type (type);
  }
  
-@@ -53662,9 +53749,7 @@
+@@ -53662,9 +53785,7 @@
  	return V4SFmode;
  
      case DFmode:
@@ -608296,7 +624294,7 @@ Index: gcc/config/i386/i386.c
  	return V8DFmode;
        else if (TARGET_AVX && !TARGET_PREFER_AVX128)
  	return V4DFmode;
-@@ -53749,9 +53834,14 @@
+@@ -53749,9 +53870,14 @@
    tree vectype = stmt_info ? stmt_vectype (stmt_info) : NULL_TREE;
    int stmt_cost = ix86_builtin_vectorization_cost (kind, vectype, misalign);
  
@@ -608312,7 +624310,7 @@ Index: gcc/config/i386/i386.c
    if (where == vect_body && stmt_info && stmt_in_inner_loop_p (stmt_info))
      count *= 50;  /* FIXME.  */
  
-@@ -54615,6 +54705,9 @@
+@@ -54615,6 +54741,9 @@
  #undef TARGET_FOLD_BUILTIN
  #define TARGET_FOLD_BUILTIN ix86_fold_builtin
  
@@ -608481,6 +624479,28 @@ Index: gcc/config/sh/sh-mem.cc
  
    if (! CONST_INT_P (operands[1]))
      return;
+Index: gcc/config/darwin12.h
+===================================================================
+--- a/src/gcc/config/darwin12.h	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/config/darwin12.h	(.../branches/gcc-6-branch)
+@@ -21,7 +21,7 @@
+ #undef  LINK_GCC_C_SEQUENCE_SPEC
+ #define LINK_GCC_C_SEQUENCE_SPEC \
+ "%:version-compare(>= 10.6 mmacosx-version-min= -no_compact_unwind) \
+-   %{rdynamic:-export_dynamic} %{!static:%{!static-libgcc: \
++   %{!static:%{!static-libgcc: \
+       %:version-compare(>= 10.6 mmacosx-version-min= -lSystem) } } \
+    %{fno-pic|fno-PIC|fno-pie|fno-PIE|fapple-kext|mkernel|static|mdynamic-no-pic: \
+       %:version-compare(>= 10.7 mmacosx-version-min= -no_pie) } %G %L"
+@@ -28,3 +28,8 @@
+ 
+ #undef DEF_MIN_OSX_VERSION
+ #define DEF_MIN_OSX_VERSION "10.8"
++
++#ifndef LD64_VERSION
++#undef DEF_LD64
++#define DEF_LD64 "236.4"
++#endif
 Index: gcc/config/avr/gen-avr-mmcu-texi.c
 ===================================================================
 --- a/src/gcc/config/avr/gen-avr-mmcu-texi.c	(.../tags/gcc_6_2_0_release)
@@ -608765,7 +624785,194 @@ Index: gcc/config/rs6000/rs6000.c
  	}
      }
  
-@@ -29217,7 +29225,10 @@
+@@ -7827,7 +7835,7 @@
+ 	 pointer, so it works with both GPRs and VSX registers.  */
+       /* Make sure both operands are registers.  */
+       else if (GET_CODE (x) == PLUS
+-	       && (mode != TImode || !TARGET_QUAD_MEMORY))
++	       && (mode != TImode || !TARGET_VSX_TIMODE))
+ 	return gen_rtx_PLUS (Pmode,
+ 			     force_reg (Pmode, XEXP (x, 0)),
+ 			     force_reg (Pmode, XEXP (x, 1)));
+@@ -8836,12 +8844,16 @@
+ 	return 1;
+     }
+ 
+-  /* For TImode, if we have load/store quad and TImode in VSX registers, only
+-     allow register indirect addresses.  This will allow the values to go in
+-     either GPRs or VSX registers without reloading.  The vector types would
+-     tend to go into VSX registers, so we allow REG+REG, while TImode seems
++  /* For TImode, if we have TImode in VSX registers, only allow register
++     indirect addresses.  This will allow the values to go in either GPRs
++     or VSX registers without reloading.  The vector types would tend to
++     go into VSX registers, so we allow REG+REG, while TImode seems
+      somewhat split, in that some uses are GPR based, and some VSX based.  */
+-  if (mode == TImode && TARGET_QUAD_MEMORY && TARGET_VSX_TIMODE)
++  /* FIXME: We could loosen this by changing the following to
++       if (mode == TImode && TARGET_QUAD_MEMORY && TARGET_VSX_TIMODE)
++     but currently we cannot allow REG+REG addressing for TImode.  See
++     PR72827 for complete details on how this ends up hoodwinking DSE.  */
++  if (mode == TImode && TARGET_VSX_TIMODE)
+     return 0;
+   /* If not REG_OK_STRICT (before reload) let pass any stack offset.  */
+   if (! reg_ok_strict
+@@ -28434,11 +28446,15 @@
+ {
+ #if TARGET_MACHO
+   macho_branch_islands ();
+-  /* Mach-O doesn't support labels at the end of objects, so if
+-     it looks like we might want one, insert a NOP.  */
++
+   {
+     rtx_insn *insn = get_last_insn ();
+     rtx_insn *deleted_debug_label = NULL;
++
++    /* Mach-O doesn't support labels at the end of objects, so if
++       it looks like we might want one, take special action.
++
++       First, collect any sequence of deleted debug labels.  */
+     while (insn
+ 	   && NOTE_P (insn)
+ 	   && NOTE_KIND (insn) != NOTE_INSN_DELETED_LABEL)
+@@ -28451,11 +28467,40 @@
+ 	  deleted_debug_label = insn;
+ 	insn = PREV_INSN (insn);
+       }
+-    if (insn
+-	&& (LABEL_P (insn)
++
++    /* Second, if we have:
++       label:
++	 barrier
++       then this needs to be detected, so skip past the barrier.  */
++
++    if (insn && BARRIER_P (insn))
++      insn = PREV_INSN (insn);
++
++    /* Up to now we've only seen notes or barriers.  */
++    if (insn)
++      {
++	if (LABEL_P (insn)
+ 	    || (NOTE_P (insn)
+-		&& NOTE_KIND (insn) == NOTE_INSN_DELETED_LABEL)))
+-      fputs ("\tnop\n", file);
++		&& NOTE_KIND (insn) == NOTE_INSN_DELETED_LABEL))
++	  /* Trailing label: <barrier>.  */
++	  fputs ("\tnop\n", file);
++	else
++	  {
++	    /* Lastly, see if we have a completely empty function body.  */
++	    while (insn && ! INSN_P (insn))
++	      insn = PREV_INSN (insn);
++	    /* If we don't find any insns, we've got an empty function body;
++	       I.e. completely empty - without a return or branch.  This is
++	       taken as the case where a function body has been removed
++	       because it contains an inline __builtin_unreachable().  GCC
++	       states that reaching __builtin_unreachable() means UB so we're
++	       not obliged to do anything special; however, we want
++	       non-zero-sized function bodies.  To meet this, and help the
++	       user out, let's trap the case.  */
++	    if (insn == NULL)
++	      fputs ("\ttrap\n", file);
++	  }
++      }
+     else if (deleted_debug_label)
+       for (insn = deleted_debug_label; insn; insn = NEXT_INSN (insn))
+ 	if (NOTE_KIND (insn) == NOTE_INSN_DELETED_DEBUG_LABEL)
+@@ -28653,53 +28698,54 @@
+ 	 seems to set the bit when not optimizing.  */
+       fprintf (file, "%d\n", ((float_parms << 1) | (! optimize)));
+ 
+-      if (! optional_tbtab)
+-	return;
++      if (optional_tbtab)
++	{
++	  /* Optional fields follow.  Some are variable length.  */
+ 
+-      /* Optional fields follow.  Some are variable length.  */
++	  /* Parameter types, left adjusted bit fields: 0 fixed, 10 single
++	     float, 11 double float.  */
++	  /* There is an entry for each parameter in a register, in the order
++	     that they occur in the parameter list.  Any intervening arguments
++	     on the stack are ignored.  If the list overflows a long (max
++	     possible length 34 bits) then completely leave off all elements
++	     that don't fit.  */
++	  /* Only emit this long if there was at least one parameter.  */
++	  if (fixed_parms || float_parms)
++	    fprintf (file, "\t.long %d\n", parm_info);
+ 
+-      /* Parameter types, left adjusted bit fields: 0 fixed, 10 single float,
+-	 11 double float.  */
+-      /* There is an entry for each parameter in a register, in the order that
+-	 they occur in the parameter list.  Any intervening arguments on the
+-	 stack are ignored.  If the list overflows a long (max possible length
+-	 34 bits) then completely leave off all elements that don't fit.  */
+-      /* Only emit this long if there was at least one parameter.  */
+-      if (fixed_parms || float_parms)
+-	fprintf (file, "\t.long %d\n", parm_info);
++	  /* Offset from start of code to tb table.  */
++	  fputs ("\t.long ", file);
++	  ASM_OUTPUT_INTERNAL_LABEL_PREFIX (file, "LT");
++	  RS6000_OUTPUT_BASENAME (file, fname);
++	  putc ('-', file);
++	  rs6000_output_function_entry (file, fname);
++	  putc ('\n', file);
+ 
+-      /* Offset from start of code to tb table.  */
+-      fputs ("\t.long ", file);
+-      ASM_OUTPUT_INTERNAL_LABEL_PREFIX (file, "LT");
+-      RS6000_OUTPUT_BASENAME (file, fname);
+-      putc ('-', file);
+-      rs6000_output_function_entry (file, fname);
+-      putc ('\n', file);
++	  /* Interrupt handler mask.  */
++	  /* Omit this long, since we never set the interrupt handler bit
++	     above.  */
+ 
+-      /* Interrupt handler mask.  */
+-      /* Omit this long, since we never set the interrupt handler bit
+-	 above.  */
++	  /* Number of CTL (controlled storage) anchors.  */
++	  /* Omit this long, since the has_ctl bit is never set above.  */
+ 
+-      /* Number of CTL (controlled storage) anchors.  */
+-      /* Omit this long, since the has_ctl bit is never set above.  */
++	  /* Displacement into stack of each CTL anchor.  */
++	  /* Omit this list of longs, because there are no CTL anchors.  */
+ 
+-      /* Displacement into stack of each CTL anchor.  */
+-      /* Omit this list of longs, because there are no CTL anchors.  */
++	  /* Length of function name.  */
++	  if (*fname == '*')
++	    ++fname;
++	  fprintf (file, "\t.short %d\n", (int) strlen (fname));
+ 
+-      /* Length of function name.  */
+-      if (*fname == '*')
+-	++fname;
+-      fprintf (file, "\t.short %d\n", (int) strlen (fname));
++	  /* Function name.  */
++	  assemble_string (fname, strlen (fname));
+ 
+-      /* Function name.  */
+-      assemble_string (fname, strlen (fname));
++	  /* Register for alloca automatic storage; this is always reg 31.
++	     Only emit this if the alloca bit was set above.  */
++	  if (frame_pointer_needed)
++	    fputs ("\t.byte 31\n", file);
+ 
+-      /* Register for alloca automatic storage; this is always reg 31.
+-	 Only emit this if the alloca bit was set above.  */
+-      if (frame_pointer_needed)
+-	fputs ("\t.byte 31\n", file);
+-
+-      fputs ("\t.align 2\n", file);
++	  fputs ("\t.align 2\n", file);
++	}
+     }
+ 
+   /* Arrange to define .LCTOC1 label, if not already done.  */
+@@ -29217,7 +29263,10 @@
  		     (TREE_CODE (decl) == FUNCTION_DECL
  		      ? "[DS]" : "[UA]"),
  		     NULL);
@@ -608777,7 +624984,7 @@ Index: gcc/config/rs6000/rs6000.c
      }
  
    if (VTABLE_NAME_P (name))
-@@ -37832,6 +37843,15 @@
+@@ -37832,6 +37881,15 @@
        else
  	gcc_unreachable ();
      }
@@ -608793,7 +625000,7 @@ Index: gcc/config/rs6000/rs6000.c
    else if (INT_REGNO_P (r))
      {
        switch (mode)
-@@ -37910,6 +37930,15 @@
+@@ -37910,6 +37968,15 @@
        else
  	gcc_unreachable ();
      }
@@ -608809,7 +625016,7 @@ Index: gcc/config/rs6000/rs6000.c
    else if (INT_REGNO_P (r))
      {
        switch (mode)
-@@ -38589,7 +38618,7 @@
+@@ -38589,7 +38656,7 @@
  	    if (GET_CODE (use_body) != SET
  		|| GET_CODE (SET_SRC (use_body)) != UNSPEC
  		|| XINT (SET_SRC (use_body), 1) != UNSPEC_VSX_XXSPLTW
@@ -608952,6 +625159,419 @@ Index: gcc/config/rs6000/rs6000.md
  	 UNSPEC_FUSION_P9))
     (clobber (match_operand:P 2 "base_reg_operand" "=b"))]
    "TARGET_P9_FUSION"
+Index: gcc/config/darwin.c
+===================================================================
+--- a/src/gcc/config/darwin.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/config/darwin.c	(.../branches/gcc-6-branch)
+@@ -96,6 +96,10 @@
+ /* Some code-gen now depends on OS major version numbers (at least).  */
+ int generating_for_darwin_version ;
+ 
++/* For older linkers we need to emit special sections (marked 'coalesced') for
++   for weak or single-definition items.  */
++static bool ld_uses_coal_sects = false;
++
+ /* Section names.  */
+ section * darwin_sections[NUM_DARWIN_SECTIONS];
+ 
+@@ -219,6 +223,11 @@
+   readonly_data_section = darwin_sections[const_section];
+   exception_section = darwin_sections[darwin_exception_section];
+   eh_frame_section = darwin_sections[darwin_eh_frame_section];
++
++  /* If our linker is new enough to coalesce weak symbols, then we
++     can just put picbase_thunks into the text section.  */
++  if (! ld_uses_coal_sects )
++    darwin_sections[picbase_thunk_section] = text_section;
+ }
+ 
+ int
+@@ -473,8 +482,32 @@
+ }
+ 
+ /* Return the name of the non-lazy pointer (if STUB_P is false) or
+-   stub (if STUB_B is true) corresponding to the given name.  */
++   stub (if STUB_B is true) corresponding to the given name.
+ 
++  If we have a situation like:
++
++global_weak_symbol:
++  ....
++Lnon_weak_local:
++  ....
++
++  ld64 will be unable to split this into two atoms (because the "L" makes
++  the second symbol 'invisible').  This means that legitimate direct accesses
++  to the second symbol will appear to be non-allowed direct accesses to an
++  atom of type weak, global which are not allowed.
++
++  To avoid this, we make the indirections have a leading 'l' (lower-case L)
++  which has a special meaning: linker can see this and use it to determine
++  atoms, but it is not placed into the final symbol table.
++
++  The implementation here is somewhat heavy-handed in that it will also mark
++  indirections to the __IMPORT,__pointers section the same way which is
++  really unnecessary, since ld64 _can_ split those into atoms as they are
++  fixed size.  FIXME: determine if this is a penalty worth extra code to
++  fix.
++
++*/
++
+ const char *
+ machopic_indirection_name (rtx sym_ref, bool stub_p)
+ {
+@@ -484,6 +517,7 @@
+   machopic_indirection *p;
+   bool needs_quotes;
+   const char *suffix;
++  char L_or_l = 'L';
+   const char *prefix = user_label_prefix;
+   const char *quote = "";
+   tree id;
+@@ -518,9 +552,13 @@
+   if (stub_p)
+     suffix = STUB_SUFFIX;
+   else
+-    suffix = NON_LAZY_POINTER_SUFFIX;
++    {
++      suffix = NON_LAZY_POINTER_SUFFIX;
++      /* Let the linker see this.  */
++      L_or_l = 'l';
++    }
+ 
+-  buffer = XALLOCAVEC (char, strlen ("&L")
++  buffer = XALLOCAVEC (char, 2  /* strlen ("&L") or ("&l") */
+ 		   + strlen (prefix)
+ 		   + namelen
+ 		   + strlen (suffix)
+@@ -528,7 +566,7 @@
+ 		   + 1 /* '\0' */);
+ 
+   /* Construct the name of the non-lazy pointer or stub.  */
+-  sprintf (buffer, "&%sL%s%s%s%s", quote, prefix, name, suffix, quote);
++  sprintf (buffer, "&%s%c%s%s%s%s", quote, L_or_l, prefix, name, suffix, quote);
+ 
+   if (!machopic_indirections)
+     machopic_indirections = hash_table<indirection_hasher>::create_ggc (37);
+@@ -1217,9 +1255,9 @@
+ }
+ 
+ static section *
+-darwin_rodata_section (int weak, bool zsize)
++darwin_rodata_section (int use_coal, bool zsize)
+ {
+-  return (weak
++  return (use_coal
+ 	  ? darwin_sections[const_coal_section]
+ 	  : (zsize ? darwin_sections[zobj_const_section]
+ 		   : darwin_sections[const_section]));
+@@ -1388,7 +1426,8 @@
+     return darwin_sections[objc2_image_info_section];
+ 
+   else if (!strncmp (p, "V2_EHTY", 7))
+-    return darwin_sections[data_coal_section];
++    return ld_uses_coal_sects ? darwin_sections[data_coal_section]
++                              : data_section;
+ 
+   else if (!strncmp (p, "V2_CSTR", 7))
+     return darwin_sections[objc2_constant_string_object_section];
+@@ -1487,7 +1526,7 @@
+ 			 int reloc,
+ 			 unsigned HOST_WIDE_INT align)
+ {
+-  bool zsize, one, weak, ro;
++  bool zsize, one, weak, use_coal, ro;
+   section *base_section = NULL;
+ 
+   weak = (DECL_P (decl)
+@@ -1494,14 +1533,16 @@
+ 	  && DECL_WEAK (decl)
+ 	  && !lookup_attribute ("weak_import", DECL_ATTRIBUTES (decl)));
+ 
+-  zsize = (DECL_P (decl) 
++  zsize = (DECL_P (decl)
+ 	   && (TREE_CODE (decl) == VAR_DECL || TREE_CODE (decl) == CONST_DECL) 
+ 	   && tree_to_uhwi (DECL_SIZE_UNIT (decl)) == 0);
+ 
+-  one = DECL_P (decl) 
++  one = DECL_P (decl)
+ 	&& TREE_CODE (decl) == VAR_DECL 
+ 	&& DECL_COMDAT_GROUP (decl);
+ 
++  use_coal = (weak || one) && ld_uses_coal_sects;
++
+   ro = TREE_READONLY (decl) || TREE_CONSTANT (decl) ;
+ 
+   switch (categorize_decl_for_section (decl, reloc))
+@@ -1512,7 +1553,7 @@
+ 
+     case SECCAT_RODATA:
+     case SECCAT_SRODATA:
+-      base_section = darwin_rodata_section (weak, zsize);
++      base_section = darwin_rodata_section (use_coal, zsize);
+       break;
+ 
+     case SECCAT_RODATA_MERGE_STR:
+@@ -1534,7 +1575,7 @@
+     case SECCAT_DATA_REL_RO_LOCAL:
+     case SECCAT_SDATA:
+     case SECCAT_TDATA:
+-      if (weak || one)
++      if (use_coal)
+ 	{
+ 	  if (ro)
+ 	    base_section = darwin_sections[const_data_coal_section];
+@@ -1563,7 +1604,7 @@
+     case SECCAT_BSS:
+     case SECCAT_SBSS:
+     case SECCAT_TBSS:
+-      if (weak || one) 
++      if (use_coal)
+ 	base_section = darwin_sections[data_coal_section];
+       else
+ 	{
+@@ -2259,14 +2300,18 @@
+ static void
+ darwin_emit_weak_or_comdat (FILE *fp, tree decl, const char *name,
+ 				  unsigned HOST_WIDE_INT size, 
++				  bool use_coal,
+ 				  unsigned int align)
+ {
+-  /* Since the sections used here are coalesed, they will not be eligible
+-     for section anchors, and therefore we don't need to break that out.  */
++  /* Since the sections used here are coalesced, they will not be eligible
++     for section anchors, and therefore we don't need to break that out.
++     CHECKME: for modern linker on PowerPC.  */
+  if (TREE_READONLY (decl) || TREE_CONSTANT (decl))
+-    switch_to_section (darwin_sections[const_data_coal_section]);
++    switch_to_section (use_coal ? darwin_sections[const_data_coal_section]
++				: darwin_sections[const_data_section]);
+   else
+-    switch_to_section (darwin_sections[data_coal_section]);
++    switch_to_section (use_coal ? darwin_sections[data_coal_section]
++				: data_section);
+ 
+   /* To be consistent, we'll allow darwin_asm_declare_object_name to assemble
+      the align info for zero-sized items... but do it here otherwise.  */
+@@ -2485,7 +2530,7 @@
+     {
+       /* Weak or COMDAT objects are put in mergeable sections.  */
+       darwin_emit_weak_or_comdat (fp, decl, name, size, 
+-					DECL_ALIGN (decl));
++				  ld_uses_coal_sects, DECL_ALIGN (decl));
+       return;
+     } 
+ 
+@@ -2599,7 +2644,7 @@
+     {
+       /* Weak or COMDAT objects are put in mergable sections.  */
+       darwin_emit_weak_or_comdat (fp, decl, name, size, 
+-					DECL_ALIGN (decl));
++				  ld_uses_coal_sects, DECL_ALIGN (decl));
+       return;
+     } 
+ 
+@@ -2669,7 +2714,7 @@
+     {
+       /* Weak or COMDAT objects are put in mergable sections.  */
+       darwin_emit_weak_or_comdat (fp, decl, name, size, 
+-					DECL_ALIGN (decl));
++				  ld_uses_coal_sects, DECL_ALIGN (decl));
+       return;
+     } 
+ 
+@@ -3051,6 +3096,12 @@
+       /* Earlier versions are not specifically accounted, until required.  */
+     }
+ 
++  /* Older Darwin ld could not coalesce weak entities without them being
++     placed in special sections.  */
++  if (darwin_target_linker
++      && (strverscmp (darwin_target_linker, MIN_LD64_NO_COAL_SECTS) < 0))
++    ld_uses_coal_sects = true;
++
+   /* In principle, this should be c-family only.  However, we really need to
+      set sensible defaults for LTO as well, since the section selection stuff
+      should check for correctness re. the ABI.  TODO: check and provide the
+@@ -3576,12 +3627,13 @@
+ 			  bool startup, bool exit)
+ {
+   /* Decide if we need to put this in a coalescable section.  */
+-  bool weak = (decl 
++  bool weak = (decl
+ 	       && DECL_WEAK (decl)
+ 	       && (!DECL_ATTRIBUTES (decl)
+ 		   || !lookup_attribute ("weak_import", 
+ 					  DECL_ATTRIBUTES (decl))));
+ 
++  bool use_coal = weak && ld_uses_coal_sects;
+   /* If there is a specified section name, we should not be trying to
+      override.  */
+   if (decl && DECL_SECTION_NAME (decl) != NULL)
+@@ -3589,8 +3641,8 @@
+ 
+   /* We always put unlikely executed stuff in the cold section.  */
+   if (freq == NODE_FREQUENCY_UNLIKELY_EXECUTED)
+-    return (weak) ? darwin_sections[text_cold_coal_section]
+-		  : darwin_sections[text_cold_section];
++    return (use_coal) ? darwin_sections[text_cold_coal_section]
++		      : darwin_sections[text_cold_section];
+ 
+   /* If we have LTO *and* feedback information, then let LTO handle
+      the function ordering, it makes a better job (for normal, hot,
+@@ -3600,23 +3652,23 @@
+ 
+   /* Non-cold startup code should go to startup subsection.  */
+   if (startup)
+-    return (weak) ? darwin_sections[text_startup_coal_section]
+-		  : darwin_sections[text_startup_section];
++    return (use_coal) ? darwin_sections[text_startup_coal_section]
++		      : darwin_sections[text_startup_section];
+ 
+   /* Similarly for exit.  */
+   if (exit)
+-    return (weak) ? darwin_sections[text_exit_coal_section]
+-		  : darwin_sections[text_exit_section];
++    return (use_coal) ? darwin_sections[text_exit_coal_section]
++		      : darwin_sections[text_exit_section];
+ 
+   /* Place hot code.  */
+   if (freq == NODE_FREQUENCY_HOT)
+-    return (weak) ? darwin_sections[text_hot_coal_section]
+-		  : darwin_sections[text_hot_section];
++    return (use_coal) ? darwin_sections[text_hot_coal_section]
++		      : darwin_sections[text_hot_section];
+ 
+   /* Otherwise, default to the 'normal' non-reordered sections.  */
+ default_function_sections:
+-  return (weak) ? darwin_sections[text_coal_section]
+-		: text_section;
++  return (use_coal) ? darwin_sections[text_coal_section]
++		    : text_section;
+ }
+ 
+ /* When a function is partitioned between sections, we need to insert a label
+Index: gcc/config/darwin-sections.def
+===================================================================
+--- a/src/gcc/config/darwin-sections.def	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/config/darwin-sections.def	(.../branches/gcc-6-branch)
+@@ -31,6 +31,11 @@
+ DEF_SECTION (text_coal_section, SECTION_CODE|SECTION_NO_ANCHOR,
+ 	     ".section __TEXT,__textcoal_nt,coalesced,pure_instructions", 0)
+ 
++/* We define a picbase thunks section separately, so that we can override the
++   def to be '.text' for versions of ld64 that handle coalescing.  */
++DEF_SECTION (picbase_thunk_section, SECTION_CODE|SECTION_NO_ANCHOR,
++	     ".section __TEXT,__textcoal_nt,coalesced,pure_instructions", 0)
++
+ DEF_SECTION (text_hot_section, SECTION_CODE,
+ 	     ".section __TEXT,__text_hot,regular,pure_instructions", 0)
+ DEF_SECTION (text_cold_section, SECTION_CODE,
+Index: gcc/config/darwin.h
+===================================================================
+--- a/src/gcc/config/darwin.h	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/config/darwin.h	(.../branches/gcc-6-branch)
+@@ -165,6 +165,12 @@
+    specifying the handling of options understood by generic Unix
+    linkers, and for positional arguments like libraries.  */
+ 
++#if LD64_HAS_EXPORT_DYNAMIC
++#define DARWIN_EXPORT_DYNAMIC " %{rdynamic:-export_dynamic}"
++#else
++#define DARWIN_EXPORT_DYNAMIC " %{rdynamic: %nrdynamic is not supported}"
++#endif
++
+ #define LINK_COMMAND_SPEC_A \
+    "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
+     %(linker)" \
+@@ -185,7 +191,9 @@
+     %{!nostdlib:%{!nodefaultlibs:\
+       %{%:sanitize(address): -lasan } \
+       %{%:sanitize(undefined): -lubsan } \
+-      %(link_ssp) %(link_gcc_c_sequence)\
++      %(link_ssp) \
++      " DARWIN_EXPORT_DYNAMIC " %<rdynamic \
++      %(link_gcc_c_sequence) \
+     }}\
+     %{!nostdlib:%{!nostartfiles:%E}} %{T*} %{F*} }}}}}}}"
+ 
+@@ -391,10 +399,27 @@
+    %:version-compare(>< 10.6 10.8 mmacosx-version-min= -lcrt1.10.6.o)	\
+    %{fgnu-tm: -lcrttms.o}"
+ 
+-/* Default Darwin ASM_SPEC, very simple.  */
++#ifdef HAVE_AS_MMACOSX_VERSION_MIN_OPTION
++/* Emit macosx version (but only major).  */
++#define ASM_MMACOSX_VERSION_MIN_SPEC \
++  " %{asm_macosx_version_min=*: -mmacosx-version-min=%*} %<asm_macosx_version_min=*"
++#else
++#define ASM_MMACOSX_VERSION_MIN_SPEC " %<asm_macosx_version_min=*"
++#endif
++
++/* When we detect that we're cctools or llvm as, we need to insert the right
++   additional options.  */
++#if HAVE_GNU_AS
++#define ASM_OPTIONS ""
++#else
++#define ASM_OPTIONS "%{v} %{w:-W} %{I*}"
++#endif
++
++/* Default Darwin ASM_SPEC, very simple. */
+ #define ASM_SPEC "-arch %(darwin_arch) \
++  " ASM_OPTIONS " \
+   %{Zforce_cpusubtype_ALL:-force_cpusubtype_ALL} \
+-  %{static}"
++  %{static}" ASM_MMACOSX_VERSION_MIN_SPEC
+ 
+ /* Default ASM_DEBUG_SPEC.  Darwin's as cannot currently produce dwarf
+    debugging data.  */
+@@ -718,9 +743,16 @@
+   { "weak_import", 0, 0, true, false, false,				     \
+     darwin_handle_weak_import_attribute, false }
+ 
++/* Make local constant labels linker-visible, so that if one follows a
++   weak_global constant, ld64 will be able to separate the atoms.  */
+ #undef ASM_GENERATE_INTERNAL_LABEL
+ #define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM)	\
+-  sprintf (LABEL, "*%s%ld", PREFIX, (long)(NUM))
++  do {							\
++    if (strcmp ("LC", PREFIX) == 0)			\
++      sprintf (LABEL, "*%s%ld", "lC", (long)(NUM));	\
++    else						\
++      sprintf (LABEL, "*%s%ld", PREFIX, (long)(NUM));	\
++  } while (0)
+ 
+ #undef TARGET_ASM_MARK_DECL_PRESERVED
+ #define TARGET_ASM_MARK_DECL_PRESERVED darwin_mark_decl_preserved
+@@ -930,4 +962,15 @@
+    fall-back default.  */
+ #define DEF_MIN_OSX_VERSION "10.5"
+ 
++/* Later versions of ld64 support coalescing weak code/data without requiring
++   that they be placed in specially identified sections.  This is the earliest
++   _tested_ version known to support this so far.  */
++#define MIN_LD64_NO_COAL_SECTS "236.4"
++
++#ifndef LD64_VERSION
++#define LD64_VERSION "85.2"
++#else
++#define DEF_LD64 LD64_VERSION
++#endif
++
+ #endif /* CONFIG_DARWIN_H */
+Index: gcc/config/darwin10.h
+===================================================================
+--- a/src/gcc/config/darwin10.h	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/config/darwin10.h	(.../branches/gcc-6-branch)
+@@ -32,3 +32,8 @@
+ 
+ #undef DEF_MIN_OSX_VERSION
+ #define DEF_MIN_OSX_VERSION "10.6"
++
++#ifndef LD64_VERSION
++#undef DEF_LD64
++#define DEF_LD64 "97.7"
++#endif
 Index: gcc/config/tilepro/tilepro.md
 ===================================================================
 --- a/src/gcc/config/tilepro/tilepro.md	(.../tags/gcc_6_2_0_release)
@@ -609001,6 +625621,105 @@ Index: gcc/config/arm/arm.c
        if (modconst)
          *modconst = CONST_VECTOR_ELT (op, 0);
  
+@@ -24715,6 +24710,7 @@
+   unsigned long live_regs_mask;
+   unsigned long l_mask;
+   unsigned high_regs_pushed = 0;
++  bool lr_needs_saving;
+ 
+   func_type = arm_current_func_type ();
+ 
+@@ -24737,6 +24733,7 @@
+ 
+   offsets = arm_get_frame_offsets ();
+   live_regs_mask = offsets->saved_regs_mask;
++  lr_needs_saving = live_regs_mask & (1 << LR_REGNUM);
+ 
+   /* Extract a mask of the ones we can give to the Thumb's push instruction.  */
+   l_mask = live_regs_mask & 0x40ff;
+@@ -24803,6 +24800,7 @@
+ 	{
+ 	  insn = thumb1_emit_multi_reg_push (l_mask, l_mask);
+ 	  RTX_FRAME_RELATED_P (insn) = 1;
++	  lr_needs_saving = false;
+ 
+ 	  offset = bit_count (l_mask) * UNITS_PER_WORD;
+ 	}
+@@ -24867,12 +24865,13 @@
+      be a push of LR and we can combine it with the push of the first high
+      register.  */
+   else if ((l_mask & 0xff) != 0
+-	   || (high_regs_pushed == 0 && l_mask))
++	   || (high_regs_pushed == 0 && lr_needs_saving))
+     {
+       unsigned long mask = l_mask;
+       mask |= (1 << thumb1_extra_regs_pushed (offsets, true)) - 1;
+       insn = thumb1_emit_multi_reg_push (mask, mask);
+       RTX_FRAME_RELATED_P (insn) = 1;
++      lr_needs_saving = false;
+     }
+ 
+   if (high_regs_pushed)
+@@ -24890,7 +24889,9 @@
+       /* Here we need to mask out registers used for passing arguments
+ 	 even if they can be pushed.  This is to avoid using them to stash the high
+ 	 registers.  Such kind of stash may clobber the use of arguments.  */
+-      pushable_regs = l_mask & (~arg_regs_mask) & 0xff;
++      pushable_regs = l_mask & (~arg_regs_mask);
++      if (lr_needs_saving)
++	pushable_regs &= ~(1 << LR_REGNUM);
+ 
+       if (pushable_regs == 0)
+ 	pushable_regs = 1 << thumb_find_work_register (live_regs_mask);
+@@ -24898,8 +24899,9 @@
+       while (high_regs_pushed > 0)
+ 	{
+ 	  unsigned long real_regs_mask = 0;
++	  unsigned long push_mask = 0;
+ 
+-	  for (regno = LAST_LO_REGNUM; regno >= 0; regno --)
++	  for (regno = LR_REGNUM; regno >= 0; regno --)
+ 	    {
+ 	      if (pushable_regs & (1 << regno))
+ 		{
+@@ -24908,6 +24910,7 @@
+ 
+ 		  high_regs_pushed --;
+ 		  real_regs_mask |= (1 << next_hi_reg);
++		  push_mask |= (1 << regno);
+ 
+ 		  if (high_regs_pushed)
+ 		    {
+@@ -24917,23 +24920,20 @@
+ 			  break;
+ 		    }
+ 		  else
+-		    {
+-		      pushable_regs &= ~((1 << regno) - 1);
+-		      break;
+-		    }
++		    break;
+ 		}
+ 	    }
+ 
+ 	  /* If we had to find a work register and we have not yet
+ 	     saved the LR then add it to the list of regs to push.  */
+-	  if (l_mask == (1 << LR_REGNUM))
++	  if (lr_needs_saving)
+ 	    {
+-	      pushable_regs |= l_mask;
+-	      real_regs_mask |= l_mask;
+-	      l_mask = 0;
++	      push_mask |= 1 << LR_REGNUM;
++	      real_regs_mask |= 1 << LR_REGNUM;
++	      lr_needs_saving = false;
+ 	    }
+ 
+-	  insn = thumb1_emit_multi_reg_push (pushable_regs, real_regs_mask);
++	  insn = thumb1_emit_multi_reg_push (push_mask, real_regs_mask);
+ 	  RTX_FRAME_RELATED_P (insn) = 1;
+ 	}
+     }
 Index: gcc/config/arm/t-rtems
 ===================================================================
 --- a/src/gcc/config/arm/t-rtems	(.../tags/gcc_6_2_0_release)
@@ -609023,6 +625742,45 @@ Index: gcc/config/arm/t-rtems
  MULTILIB_REQUIRED += mthumb/march=armv6-m
  MULTILIB_REQUIRED += mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard
  MULTILIB_REQUIRED += mthumb/march=armv7-a
+Index: gcc/config/arm/arm.md
+===================================================================
+--- a/src/gcc/config/arm/arm.md	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/config/arm/arm.md	(.../branches/gcc-6-branch)
+@@ -575,9 +575,9 @@
+ ;;  (plus (reg rN) (reg sp)) into (reg rN).  In this case reload will
+ ;; put the duplicated register first, and not try the commutative version.
+ (define_insn_and_split "*arm_addsi3"
+-  [(set (match_operand:SI          0 "s_register_operand" "=rk,l,l ,l ,r ,k ,r,r ,k ,r ,k,k,r ,k ,r")
+-        (plus:SI (match_operand:SI 1 "s_register_operand" "%0 ,l,0 ,l ,rk,k ,r,rk,k ,rk,k,r,rk,k ,rk")
+-                 (match_operand:SI 2 "reg_or_int_operand" "rk ,l,Py,Pd,rI,rI,k,Pj,Pj,L ,L,L,PJ,PJ,?n")))]
++  [(set (match_operand:SI          0 "s_register_operand" "=rk,l,l ,l ,r ,k ,r,k ,r ,k ,r ,k,k,r ,k ,r")
++	(plus:SI (match_operand:SI 1 "s_register_operand" "%0 ,l,0 ,l ,rk,k ,r,r ,rk,k ,rk,k,r,rk,k ,rk")
++		 (match_operand:SI 2 "reg_or_int_operand" "rk ,l,Py,Pd,rI,rI,k,rI,Pj,Pj,L ,L,L,PJ,PJ,?n")))]
+   "TARGET_32BIT"
+   "@
+    add%?\\t%0, %0, %2
+@@ -587,6 +587,7 @@
+    add%?\\t%0, %1, %2
+    add%?\\t%0, %1, %2
+    add%?\\t%0, %2, %1
++   add%?\\t%0, %1, %2
+    addw%?\\t%0, %1, %2
+    addw%?\\t%0, %1, %2
+    sub%?\\t%0, %1, #%n2
+@@ -606,10 +607,10 @@
+ 		      operands[1], 0);
+   DONE;
+   "
+-  [(set_attr "length" "2,4,4,4,4,4,4,4,4,4,4,4,4,4,16")
++  [(set_attr "length" "2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16")
+    (set_attr "predicable" "yes")
+-   (set_attr "predicable_short_it" "yes,yes,yes,yes,no,no,no,no,no,no,no,no,no,no,no")
+-   (set_attr "arch" "t2,t2,t2,t2,*,*,*,t2,t2,*,*,a,t2,t2,*")
++   (set_attr "predicable_short_it" "yes,yes,yes,yes,no,no,no,no,no,no,no,no,no,no,no,no")
++   (set_attr "arch" "t2,t2,t2,t2,*,*,*,a,t2,t2,*,*,a,t2,t2,*")
+    (set (attr "type") (if_then_else (match_operand 2 "const_int_operand" "")
+ 		      (const_string "alu_imm")
+ 		      (const_string "alu_sreg")))
 Index: gcc/config/arm/t-phoenix
 ===================================================================
 --- a/src/gcc/config/arm/t-phoenix	(.../tags/gcc_6_2_0_release)
@@ -609057,6 +625815,50 @@ Index: gcc/config/arm/t-phoenix
 +
 +MULTILIB_OPTIONS     += mno-thumb-interwork/mthumb-interwork
 +MULTILIB_DIRNAMES    += normal interwork
+Index: gcc/config/darwin-driver.c
+===================================================================
+--- a/src/gcc/config/darwin-driver.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/config/darwin-driver.c	(.../branches/gcc-6-branch)
+@@ -73,7 +73,8 @@
+      component.  */
+   if (major_vers - 4 <= 4)
+     /* On 10.4 and earlier, the old linker is used which does not
+-       support three-component system versions.  */
++       support three-component system versions.
++       FIXME: we should not assume this - a newer linker could be used.  */
+     asprintf (&new_flag, "10.%d", major_vers - 4);
+   else
+     asprintf (&new_flag, "10.%d.%s", major_vers - 4, minor_vers);
+@@ -294,4 +295,29 @@
+ 			  &(*decoded_options)[*decoded_options_count - 1]);
+ 	}
+     }
++  /* Create and push the major version for assemblers that need it.  */
++  if (vers_string != NULL)
++    {
++      char *asm_major = NULL;
++      char *first_period = strchr(vers_string, '.');
++      if (first_period != NULL)
++	{
++	  char *second_period = strchr(first_period+1, '.');
++	  if (second_period  != NULL)
++	    asm_major = xstrndup (vers_string, second_period-vers_string);
++	  else
++	    asm_major = xstrdup (vers_string);
++        }
++      /* Else we appear to have a weird macosx version with no major number.
++         Punt on this for now.  */
++      if (asm_major != NULL)
++        {
++	  ++*decoded_options_count;
++	  *decoded_options = XRESIZEVEC (struct cl_decoded_option,
++					 *decoded_options,
++					 *decoded_options_count);
++	  generate_option (OPT_asm_macosx_version_min_, asm_major, 1, CL_DRIVER,
++			  &(*decoded_options)[*decoded_options_count - 1]);
++        }
++    }
+ }
 Index: gcc/config/pa/pa.md
 ===================================================================
 --- a/src/gcc/config/pa/pa.md	(.../tags/gcc_6_2_0_release)
@@ -609358,6 +626160,26 @@ Index: gcc/ipa-icf.h
  
    inline virtual void init_wpa (void) {}
  
+Index: gcc/convert.c
+===================================================================
+--- a/src/gcc/convert.c	(.../tags/gcc_6_2_0_release)
++++ b/src/gcc/convert.c	(.../branches/gcc-6-branch)
+@@ -644,10 +644,11 @@
+ 	 to TYPE.  */
+       else if (TREE_CODE (type) == ENUMERAL_TYPE
+ 	       || outprec != GET_MODE_PRECISION (TYPE_MODE (type)))
+-	return build1 (NOP_EXPR, type,
+-		       convert (lang_hooks.types.type_for_mode
+-				(TYPE_MODE (type), TYPE_UNSIGNED (type)),
+-				expr));
++	{
++	  expr = convert (lang_hooks.types.type_for_mode
++			  (TYPE_MODE (type), TYPE_UNSIGNED (type)), expr);
++	  return maybe_fold_build1_loc (dofold, loc, NOP_EXPR, type, expr);
++	}
+ 
+       /* Here detect when we can distribute the truncation down past some
+ 	 arithmetic.  For example, if adding two longs and converting to an
 Index: gcc
 ===================================================================
 --- a/src/gcc	(.../tags/gcc_6_2_0_release)

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