Submitted By: Jim Gifford (jim at cross-lfs dot org)
Date: 04-29-2009
Initial Package Version: 4.4.0
Origin: Upstream
Upstream Status: Applied
Description: This is a branch update for gcc-4.4.0, and should be
             rechecked periodically.

diff -Naur gcc-4.4.0.orig/configure gcc-4.4.0/configure
--- gcc-4.4.0.orig/configure	2009-04-21 02:08:08.000000000 -0700
+++ gcc-4.4.0/configure	2009-04-24 21:10:29.000000000 -0700
@@ -272,7 +272,7 @@
 PACKAGE_BUGREPORT=
 
 ac_unique_file="move-if-change"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS TOPLEVEL_CONFIGURE_ARGUMENTS build build_cpu build_vendor build_os build_noncanonical host_noncanonical target_noncanonical host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN LN_S build_libsubdir build_subdir host_subdir target_subdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE do_compare gmplibs gmpinc ppllibs pplinc clooglibs clooginc stage1_languages SYSROOT_CFLAGS_FOR_TARGET DEBUG_PREFIX_CFLAGS_FOR_TARGET CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET RPATH_ENVVAR GCC_SHLIB_SUBDIR tooldir build_tooldir CONFIGURE_GDB_TK GDB_TK INSTALL_GDB_TK build_configargs build_configdirs host_configargs configdirs target_configargs AR_FOR_BUILD AS_FOR_BUILD CC_FOR_BUILD CFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD CXX_FOR_BUILD DLLTOOL_FOR_BUILD GCJ_FOR_BUILD GFORTRAN_FOR_BUILD LDFLAGS_FOR_BUILD LD_FOR_BUILD NM_FOR_BUILD RANLIB_FOR_BUILD WINDMC_FOR_BUILD WINDRES_FOR_BUILD config_shell YACC BISON M4 LEX FLEX MAKEINFO EXPECT RUNTEST AR AS DLLTOOL LD LIPO NM RANLIB STRIP WINDRES WINDMC OBJCOPY OBJDUMP CC_FOR_TARGET CXX_FOR_TARGET GCC_FOR_TARGET GCJ_FOR_TARGET GFORTRAN_FOR_TARGET AR_FOR_TARGET AS_FOR_TARGET DLLTOOL_FOR_TARGET LD_FOR_TARGET LIPO_FOR_TARGET NM_FOR_TARGET OBJDUMP_FOR_TARGET RANLIB_FOR_TARGET STRIP_FOR_TARGET WINDRES_FOR_TARGET WINDMC_FOR_TARGET RAW_CXX_FOR_TARGET FLAGS_FOR_TARGET COMPILER_AS_FOR_TARGET COMPILER_LD_FOR_TARGET COMPILER_NM_FOR_TARGET MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT stage1_cflags stage1_checking stage2_werror_flag datarootdir docdir pdfdir htmldir LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS TOPLEVEL_CONFIGURE_ARGUMENTS build build_cpu build_vendor build_os build_noncanonical host_noncanonical target_noncanonical host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN LN_S build_libsubdir build_subdir host_subdir target_subdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE do_compare gmplibs gmpinc extra_mpfr_configure_flags ppllibs pplinc clooglibs clooginc stage1_languages SYSROOT_CFLAGS_FOR_TARGET DEBUG_PREFIX_CFLAGS_FOR_TARGET CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET RPATH_ENVVAR GCC_SHLIB_SUBDIR tooldir build_tooldir CONFIGURE_GDB_TK GDB_TK INSTALL_GDB_TK build_configargs build_configdirs host_configargs configdirs target_configargs AR_FOR_BUILD AS_FOR_BUILD CC_FOR_BUILD CFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD CXX_FOR_BUILD DLLTOOL_FOR_BUILD GCJ_FOR_BUILD GFORTRAN_FOR_BUILD LDFLAGS_FOR_BUILD LD_FOR_BUILD NM_FOR_BUILD RANLIB_FOR_BUILD WINDMC_FOR_BUILD WINDRES_FOR_BUILD config_shell YACC BISON M4 LEX FLEX MAKEINFO EXPECT RUNTEST AR AS DLLTOOL LD LIPO NM RANLIB STRIP WINDRES WINDMC OBJCOPY OBJDUMP CC_FOR_TARGET CXX_FOR_TARGET GCC_FOR_TARGET GCJ_FOR_TARGET GFORTRAN_FOR_TARGET AR_FOR_TARGET AS_FOR_TARGET DLLTOOL_FOR_TARGET LD_FOR_TARGET LIPO_FOR_TARGET NM_FOR_TARGET OBJDUMP_FOR_TARGET RANLIB_FOR_TARGET STRIP_FOR_TARGET WINDRES_FOR_TARGET WINDMC_FOR_TARGET RAW_CXX_FOR_TARGET FLAGS_FOR_TARGET COMPILER_AS_FOR_TARGET COMPILER_LD_FOR_TARGET COMPILER_NM_FOR_TARGET MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT stage1_cflags stage1_checking stage2_werror_flag datarootdir docdir pdfdir htmldir LIBOBJS LTLIBOBJS'
 ac_subst_files='serialization_dependencies host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag'
 ac_pwd=`pwd`
 
@@ -4596,6 +4596,7 @@
 if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
   gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/.libs -L$$r/$(HOST_SUBDIR)/gmp/_libs '"$gmplibs"
   gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
+  extra_mpfr_configure_flags='--with-gmp-build=$$r/$(HOST_SUBDIR)/gmp'
   # Do not test the gmp version.  Assume that it is sufficient, since
   # it is in the source tree, and the library has not been built yet
   # but it would be included on the link line in the version check below
@@ -4810,6 +4811,7 @@
 
 
 
+
 # Allow host libstdc++ to be specified for static linking with PPL.
 
 # Check whether --with-host-libstdcxx or --without-host-libstdcxx was given.
@@ -13251,6 +13253,7 @@
 s,@do_compare@,$do_compare,;t t
 s,@gmplibs@,$gmplibs,;t t
 s,@gmpinc@,$gmpinc,;t t
+s,@extra_mpfr_configure_flags@,$extra_mpfr_configure_flags,;t t
 s,@ppllibs@,$ppllibs,;t t
 s,@pplinc@,$pplinc,;t t
 s,@clooglibs@,$clooglibs,;t t
diff -Naur gcc-4.4.0.orig/configure.ac gcc-4.4.0/configure.ac
--- gcc-4.4.0.orig/configure.ac	2009-04-14 01:57:33.000000000 -0700
+++ gcc-4.4.0/configure.ac	2009-04-24 21:10:29.000000000 -0700
@@ -1250,6 +1250,7 @@
 if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
   gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/.libs -L$$r/$(HOST_SUBDIR)/gmp/_libs '"$gmplibs"
   gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
+  extra_mpfr_configure_flags='--with-gmp-build=$$r/$(HOST_SUBDIR)/gmp'
   # Do not test the gmp version.  Assume that it is sufficient, since
   # it is in the source tree, and the library has not been built yet
   # but it would be included on the link line in the version check below
@@ -1314,6 +1315,7 @@
 # Flags needed for both GMP and/or MPFR
 AC_SUBST(gmplibs)
 AC_SUBST(gmpinc)
+AC_SUBST(extra_mpfr_configure_flags)
 
 # Allow host libstdc++ to be specified for static linking with PPL.
 AC_ARG_WITH(host-libstdcxx, [  --with-host-libstdcxx=L Use linker arguments L to link with libstdc++
diff -Naur gcc-4.4.0.orig/contrib/ChangeLog gcc-4.4.0/contrib/ChangeLog
--- gcc-4.4.0.orig/contrib/ChangeLog	2009-04-21 01:47:54.000000000 -0700
+++ gcc-4.4.0/contrib/ChangeLog	2009-04-27 12:13:16.000000000 -0700
@@ -1,3 +1,12 @@
+2009-04-27  Jakub Jelinek  <jakub@redhat.com>
+
+	PR testsuite/39807
+	* dg-extract-results.sh: Close open files and use >> instead of >
+	to decrease number of concurrently open files from awk.  Avoid
+	= at the beginning of a regexp and redirect to a file determined
+	by curfile variable rather than concatenated strings to workaround
+	Solaris nawk bug.
+
 2009-04-21  Release Manager
 
 	* GCC 4.4.0 released.
diff -Naur gcc-4.4.0.orig/contrib/dg-extract-results.sh gcc-4.4.0/contrib/dg-extract-results.sh
--- gcc-4.4.0.orig/contrib/dg-extract-results.sh	2008-10-24 02:00:54.000000000 -0700
+++ gcc-4.4.0/contrib/dg-extract-results.sh	2009-04-27 12:13:16.000000000 -0700
@@ -6,7 +6,7 @@
 # The resulting file can be used with test result comparison scripts for
 # results from tests that were run in parallel.  See usage() below.
 
-# Copyright (C) 2008 Free Software Foundation
+# Copyright (C) 2008, 2009 Free Software Foundation
 # Contributed by Janis Johnson <janis187@us.ibm.com>
 #
 # This file is part of GCC.
@@ -148,26 +148,28 @@
   ACATS_AWK=${TMP}/acats.awk
   cat <<EOF > $ACATS_AWK
 BEGIN {
-  print_prologue=1; chapter=""; insummary=0
+  print_prologue=1; curfile=""; insummary=0
   passcnt=0; failcnt=0; unsupcnt=0; failures=""
 }
-/=== acats configuration ===/ {
+/^[ \t]*=== acats configuration ===/ {
   insummary=0
   if (print_prologue) print
   next
 }
-/=== acats tests ===/ {
+/^[ \t]*=== acats tests ===/ {
   if (print_prologue) print
   print_prologue=0
   next
 }
 /^Running chapter / {
-  chapter=\$3
-  print > "${TMP}/chapter-"chapter
+  if (curfile) close (curfile)
+  curfile="${TMP}/chapter-"\$3
+  print >> curfile
   next
 }
-/=== acats Summary ===/ {
-  chapter=""
+/^[ \t]*=== acats Summary ===/ {
+  if (curfile) close (curfile)
+  curfile=""
   insummary=1
   next
 }
@@ -182,7 +184,7 @@
 }
 {
   if (print_prologue) { print; next }
-  if (chapter) print > "${TMP}/chapter-"chapter
+  if (curfile) print >> curfile
 }
 END {
   system ("cat ${TMP}/chapter-*")
@@ -194,6 +196,7 @@
 }
 EOF
 
+  rm -f ${TMP}/chapter-*
   $AWK -f $ACATS_AWK $SUM_FILES
   exit 0
 fi
@@ -270,6 +273,7 @@
   expfileno=1
   cnt=0
   print_using=0
+  need_close=0
 }
 /^EXPFILE: / {
   expfiles[expfileno] = \$2
@@ -287,8 +291,10 @@
 /^Running / {
   print_using=0
   if (variant == curvar) {
+    if (need_close) close(curfile)
     curfile="${TMP}/list"expfilesr[\$2]
     expfileseen[\$2]=expfileseen[\$2] + 1
+    need_close=0
     testname="00"
     next
   }
@@ -303,11 +309,12 @@
 /^$/ { if ("$MODE" == "sum") next }
 { if (variant == curvar && curfile) {
     if ("$MODE" == "sum") {
-      printf "%s %08d|", testname, cnt > curfile
+      printf "%s %08d|", testname, cnt >> curfile
       cnt = cnt + 1
     }
     filewritten[curfile]=1
-    print > curfile
+    need_close=1
+    print >> curfile
   } else
     next
 }
diff -Naur gcc-4.4.0.orig/gcc/ada/gcc-interface/utils2.c gcc-4.4.0/gcc/ada/gcc-interface/utils2.c
--- gcc-4.4.0.orig/gcc/ada/gcc-interface/utils2.c	2008-11-09 01:50:02.000000000 -0800
+++ gcc-4.4.0/gcc/ada/gcc-interface/utils2.c	2009-04-22 15:33:59.000000000 -0700
@@ -6,7 +6,7 @@
  *                                                                          *
  *                          C Implementation File                           *
  *                                                                          *
- *          Copyright (C) 1992-2008, Free Software Foundation, Inc.         *
+ *          Copyright (C) 1992-2009, Free Software Foundation, Inc.         *
  *                                                                          *
  * GNAT is free software;  you can  redistribute it  and/or modify it under *
  * terms of the  GNU General Public License as published  by the Free Soft- *
@@ -1010,11 +1010,15 @@
 
     case PLUS_EXPR:
     case MINUS_EXPR:
-      /* Avoid doing arithmetics in BOOLEAN_TYPE like the other compilers.
-	 Contrary to C, Ada doesn't allow arithmetics in Standard.Boolean
-	 but we can generate addition or subtraction for 'Succ and 'Pred.  */
-      if (operation_type && TREE_CODE (operation_type) == BOOLEAN_TYPE)
-	operation_type = left_base_type = right_base_type = integer_type_node;
+      /* Avoid doing arithmetics in ENUMERAL_TYPE or BOOLEAN_TYPE like the
+	 other compilers.  Contrary to C, Ada doesn't allow arithmetics in
+	 these types but can generate addition/subtraction for Succ/Pred.  */
+      if (operation_type
+	  && (TREE_CODE (operation_type) == ENUMERAL_TYPE
+	      || TREE_CODE (operation_type) == BOOLEAN_TYPE))
+	operation_type = left_base_type = right_base_type
+	  = gnat_type_for_mode (TYPE_MODE (operation_type),
+				TYPE_UNSIGNED (operation_type));
 
       /* ... fall through ... */
 
@@ -2199,7 +2203,7 @@
 	  add_stmt (build3 (COND_EXPR, void_type_node,
 			    build_binary_op (GE_EXPR, long_integer_type_node,
 					     convert (long_integer_type_node,
-						      addr64expr), 
+						      addr64expr),
 					     malloc64low),
 			    build_call_raise (CE_Range_Check_Failed, gnat_actual,
 					      N_Raise_Constraint_Error),
diff -Naur gcc-4.4.0.orig/gcc/ada/gcc-interface/utils.c gcc-4.4.0/gcc/ada/gcc-interface/utils.c
--- gcc-4.4.0.orig/gcc/ada/gcc-interface/utils.c	2008-12-09 02:35:15.000000000 -0800
+++ gcc-4.4.0/gcc/ada/gcc-interface/utils.c	2009-04-22 15:02:39.000000000 -0700
@@ -1570,6 +1570,15 @@
   TREE_STATIC (var_decl)
     = !extern_flag && (public_flag || static_flag || global_bindings_p ());
 
+  /* For an external constant whose initializer is not absolute, do not emit
+     debug info.  In DWARF this would mean a global relocation in a read-only
+     section which runs afoul of the PE-COFF runtime relocation mechanism.  */
+  if (extern_flag
+      && constant_p
+      && initializer_constant_valid_p (var_init, TREE_TYPE (var_init))
+	   != null_pointer_node)
+    DECL_IGNORED_P (var_decl) = 1;
+
   if (asm_name && VAR_OR_FUNCTION_DECL_P (var_decl))
     SET_DECL_ASSEMBLER_NAME (var_decl, asm_name);
 
diff -Naur gcc-4.4.0.orig/gcc/alias.c gcc-4.4.0/gcc/alias.c
--- gcc-4.4.0.orig/gcc/alias.c	2009-02-20 07:20:38.000000000 -0800
+++ gcc-4.4.0/gcc/alias.c	2009-04-27 04:55:13.000000000 -0700
@@ -1438,15 +1438,16 @@
 	  return x;
       return 0;
 
+    case LO_SUM:
+      /* The standard form is (lo_sum reg sym) so look only at the
+         second operand.  */
+      return find_base_term (XEXP (x, 1));
+
     case CONST:
       x = XEXP (x, 0);
       if (GET_CODE (x) != PLUS && GET_CODE (x) != MINUS)
 	return 0;
       /* Fall through.  */
-    case LO_SUM:
-      /* The standard form is (lo_sum reg sym) so look only at the
-         second operand.  */
-      return find_base_term (XEXP (x, 1));
     case PLUS:
     case MINUS:
       {
@@ -2250,14 +2251,13 @@
    Variant of true_dependence which assumes MEM has already been
    canonicalized (hence we no longer do that here).
    The mem_addr argument has been added, since true_dependence computed
-   this value prior to canonicalizing.  */
+   this value prior to canonicalizing.
+   If x_addr is non-NULL, it is used in preference of XEXP (x, 0).  */
 
 int
 canon_true_dependence (const_rtx mem, enum machine_mode mem_mode, rtx mem_addr,
-		       const_rtx x, bool (*varies) (const_rtx, bool))
+		       const_rtx x, rtx x_addr, bool (*varies) (const_rtx, bool))
 {
-  rtx x_addr;
-
   if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem))
     return 1;
 
@@ -2283,7 +2283,8 @@
   if (nonoverlapping_memrefs_p (x, mem))
     return 0;
 
-  x_addr = get_addr (XEXP (x, 0));
+  if (! x_addr)
+    x_addr = get_addr (XEXP (x, 0));
 
   if (! base_alias_check (x_addr, mem_addr, GET_MODE (x), mem_mode))
     return 0;
diff -Naur gcc-4.4.0.orig/gcc/ChangeLog gcc-4.4.0/gcc/ChangeLog
--- gcc-4.4.0.orig/gcc/ChangeLog	2009-04-21 01:44:59.000000000 -0700
+++ gcc-4.4.0/gcc/ChangeLog	2009-04-28 21:57:17.000000000 -0700
@@ -1,3 +1,143 @@
+2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* toplev.c (print_version): Update GMP version string calculation.
+
+2009-04-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+	Backport from mainline:
+	2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR target/39903
+	* config/i386/i386.c (construct_container): Don't call
+	gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
+	X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
+
+2009-04-27  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/39794
+	* alias.c (canon_true_dependence): Add x_addr argument.
+	* rtl.h (canon_true_dependence): Adjust prototype.
+	* cse.c (check_dependence): Adjust canon_true_dependence callers.
+	* cselib.c (cselib_invalidate_mem): Likewise.
+	* gcse.c (compute_transp): Likewise.
+	* dse.c (scan_reads_nospill): Likewise.
+	(record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
+	addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
+	canon_base_addr of the group, plus optional offset.
+	(struct group_info): Rename canon_base_mem to
+	canon_base_addr.
+	(get_group_info): Set canon_base_addr to canon_rtx of base, not
+	canon_rtx of base_mem.
+
+2009-04-26  Jakub Jelinek  <jakub@redhat.com>
+
+	PR inline-asm/39543
+	* fwprop.c (forward_propagate_asm): New function.
+	(forward_propagate_and_simplify): Propagate also into __asm, if it
+	doesn't increase the number of referenced registers.
+
+	PR c/39889
+	* stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
+
+2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* config/s390/constraints.md ('I', 'J'): Fix condition.
+
+2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
+
+	PR middle-end/39867
+	* fold-const.c (fold_cond_expr_with_comparison): When folding
+	> and >= to MAX, make sure the MAX uses the same type as the
+	comparison's operands.
+
+2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	* config/spu/spu-builtins.h: Delete file.
+
+	* config/spu/spu.h (enum spu_builtin_type): Move here from
+	spu-builtins.h.
+	(struct spu_builtin_description): Likewise.  Add GTY marker.
+	Do not use enum spu_function_code or enum insn_code.
+	(spu_builtins): Add extern declaration.
+
+	* config/spu/spu.c: Do not include "spu-builtins.h".
+	(enum spu_function_code, enum spu_builtin_type_index,
+	V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
+	V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
+	unsigned_V8HI_type_node, unsigned_V4SI_type_node,
+	unsigned_V2DI_type_node): Move here from spu-builtins.h.
+	(spu_builtin_types): Make static.  Add GTY marker.
+	(spu_builtins): Add extern declaration with GTY marker.
+	Include "gt-spu.h".
+
+	* config/spu/spu-c.c: Do not include "spu-builtins.h".
+	(spu_resolve_overloaded_builtin): Do not use spu_function_code.
+	Check programmatically whether all parameters are scalar.
+
+	* config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
+
+2009-04-22  Jing Yu  <jingyu@google.com>
+
+	PR testsuite/39781
+	* config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
+
+2009-04-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+	Backport from mainline:
+	2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
+	* dbxout.c (dbxout_block): Reinstate test on TREE_USED.
+	* tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
+
+2009-04-22  Jakub Jelinek  <jakub@redhat.com>
+
+	* alias.c (find_base_term): Move around LO_SUM case, so that
+	CONST falls through into PLUS/MINUS handling.
+
+	PR c/39855
+	* fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
+	into 0, use omit_one_operand.
+
+2009-04-22  Vladimir Makarov  <vmakarov@redhat.com>
+
+	PR rtl-optimization/39762
+	* ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
+	ira_may_move_out_cost): Add comments about way of their usage.
+	(ira_get_register_move_cost, ira_get_may_move_cost): New functions.
+
+	* ira-conflicts.c (process_regs_for_copy): Use function
+	ira_get_register_move_cost instead of global
+	ira_register_move_cost.
+
+	* ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
+	color_pass, move_spill_restore, update_curr_costs): Ditto.
+
+	* ira-lives.c (process_single_reg_class_operands): Ditto.
+
+	* ira-emit.c (emit_move_list): Ditto.
+
+	* ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
+	(record_reg_classes): Ditto.  Use functions
+	ira_get_register_move_cost and ira_get_may_move_cost instead of
+	global vars ira_register_move_cost, ira_may_move_out_cost and
+	ira_may_move_in_cost.
+	(record_address_regs): Don't call ira_init_register_move_cost.
+	Use function ira_get_may_move_cost instead of global
+	ira_may_move_in_cost.
+	(process_bb_node_for_hard_reg_moves): Use function
+	ira_get_register_move_cost instead of global ira_register_move_cost.
+	(ira_costs): Don't call ira_init_register_move_cost.
+
+2009-04-22  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/39824
+	* tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
+	make sure the types are compatible.
+
+2009-04-21  Jakub Jelinek  <jakub@redhat.com>
+
+	* BASE-VER: Set to 4.4.1.
+	* DEV-PHASE: Set to prerelease.
+
 2009-04-21  Release Manager
 
 	* GCC 4.4.0 released.
diff -Naur gcc-4.4.0.orig/gcc/config/arm/arm.h gcc-4.4.0/gcc/config/arm/arm.h
--- gcc-4.4.0.orig/gcc/config/arm/arm.h	2009-03-17 13:18:21.000000000 -0700
+++ gcc-4.4.0/gcc/config/arm/arm.h	2009-04-22 17:31:13.000000000 -0700
@@ -2244,7 +2244,9 @@
 #define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL)	\
   if (TARGET_32BIT)					\
     ARM_GO_IF_MODE_DEPENDENT_ADDRESS (ADDR, LABEL)
-
+
+/* Define this for compatibility reasons. */
+#define HANDLE_PRAGMA_PACK_PUSH_POP
 
 /* Specify the machine mode that this machine uses
    for the index in the tablejump instruction.  */
diff -Naur gcc-4.4.0.orig/gcc/config/i386/i386.c gcc-4.4.0/gcc/config/i386/i386.c
--- gcc-4.4.0.orig/gcc/config/i386/i386.c	2009-04-14 13:27:30.000000000 -0700
+++ gcc-4.4.0/gcc/config/i386/i386.c	2009-04-28 07:35:12.000000000 -0700
@@ -5357,7 +5357,10 @@
       case X86_64_SSE_CLASS:
       case X86_64_SSESF_CLASS:
       case X86_64_SSEDF_CLASS:
-	return gen_reg_or_parallel (mode, orig_mode, SSE_REGNO (sse_regno));
+	if (mode != BLKmode)
+	  return gen_reg_or_parallel (mode, orig_mode, 
+				      SSE_REGNO (sse_regno));
+	break;
       case X86_64_X87_CLASS:
       case X86_64_COMPLEX_X87_CLASS:
 	return gen_rtx_REG (mode, FIRST_STACK_REG);
diff -Naur gcc-4.4.0.orig/gcc/config/s390/constraints.md gcc-4.4.0/gcc/config/s390/constraints.md
--- gcc-4.4.0.orig/gcc/config/s390/constraints.md	2008-05-28 07:11:19.000000000 -0700
+++ gcc-4.4.0/gcc/config/s390/constraints.md	2009-04-24 07:51:17.000000000 -0700
@@ -129,13 +129,13 @@
 (define_constraint "I"
   "An 8-bit constant (0..255)"
   (and (match_code "const_int")
-       (match_test "(unsigned int) ival <= 255")))
+       (match_test "(unsigned HOST_WIDE_INT) ival <= 255")))
 
 
 (define_constraint "J"
   "A 12-bit constant (0..4095)"
   (and (match_code "const_int")
-       (match_test "(unsigned int) ival <= 4095")))
+       (match_test "(unsigned HOST_WIDE_INT) ival <= 4095")))
 
 
 (define_constraint "K"
diff -Naur gcc-4.4.0.orig/gcc/config/spu/spu-builtins.h gcc-4.4.0/gcc/config/spu/spu-builtins.h
--- gcc-4.4.0.orig/gcc/config/spu/spu-builtins.h	2007-08-02 03:49:31.000000000 -0700
+++ gcc-4.4.0/gcc/config/spu/spu-builtins.h	1969-12-31 16:00:00.000000000 -0800
@@ -1,119 +0,0 @@
-/* Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-
-   This file 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 of the License, or (at your option) 
-   any later version.
-
-   This file is distributed in the hope that it will be useful, but WITHOUT
-   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-   for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with GCC; see the file COPYING3.  If not see
-   <http://www.gnu.org/licenses/>.  */
-
-/* built-ins */
-
-enum spu_builtin_type_index
-{
-  SPU_BTI_END_OF_PARAMS,
-
-  /* We create new type nodes for these. */
-  SPU_BTI_V16QI,
-  SPU_BTI_V8HI,
-  SPU_BTI_V4SI,
-  SPU_BTI_V2DI,
-  SPU_BTI_V4SF,
-  SPU_BTI_V2DF,
-  SPU_BTI_UV16QI,
-  SPU_BTI_UV8HI,
-  SPU_BTI_UV4SI,
-  SPU_BTI_UV2DI,
-
-  /* A 16-byte type. (Implemented with V16QI_type_node) */
-  SPU_BTI_QUADWORD,
-
-  /* These all correspond to intSI_type_node */
-  SPU_BTI_7,
-  SPU_BTI_S7,
-  SPU_BTI_U7,
-  SPU_BTI_S10,
-  SPU_BTI_S10_4,
-  SPU_BTI_U14,
-  SPU_BTI_16,
-  SPU_BTI_S16,
-  SPU_BTI_S16_2,
-  SPU_BTI_U16,
-  SPU_BTI_U16_2,
-  SPU_BTI_U18,
-
-  /* These correspond to the standard types */
-  SPU_BTI_INTQI, 
-  SPU_BTI_INTHI, 
-  SPU_BTI_INTSI, 
-  SPU_BTI_INTDI, 
-
-  SPU_BTI_UINTQI,
-  SPU_BTI_UINTHI,
-  SPU_BTI_UINTSI,
-  SPU_BTI_UINTDI,
-
-  SPU_BTI_FLOAT, 
-  SPU_BTI_DOUBLE,
-
-  SPU_BTI_VOID,   
-  SPU_BTI_PTR,   
-
-  SPU_BTI_MAX
-};
-
-#define V16QI_type_node               (spu_builtin_types[SPU_BTI_V16QI])
-#define V8HI_type_node                (spu_builtin_types[SPU_BTI_V8HI])
-#define V4SI_type_node                (spu_builtin_types[SPU_BTI_V4SI])
-#define V2DI_type_node                (spu_builtin_types[SPU_BTI_V2DI])
-#define V4SF_type_node                (spu_builtin_types[SPU_BTI_V4SF])
-#define V2DF_type_node                (spu_builtin_types[SPU_BTI_V2DF])
-#define unsigned_V16QI_type_node      (spu_builtin_types[SPU_BTI_UV16QI])
-#define unsigned_V8HI_type_node       (spu_builtin_types[SPU_BTI_UV8HI])
-#define unsigned_V4SI_type_node       (spu_builtin_types[SPU_BTI_UV4SI])
-#define unsigned_V2DI_type_node       (spu_builtin_types[SPU_BTI_UV2DI])
-
-extern GTY(()) tree spu_builtin_types[SPU_BTI_MAX];
-
-/* Some builtins require special handling.  This enum differentiates. */
-enum spu_builtin_type {
-    B_INSN,
-    B_JUMP,
-    B_BISLED,
-    B_CALL,
-    B_HINT,
-    B_OVERLOAD, 
-    B_INTERNAL
-};
-
-typedef enum {
-#define DEF_BUILTIN(fcode, icode, name, type, params) fcode,
-#include "spu-builtins.def"
-#undef DEF_BUILTIN
-   NUM_SPU_BUILTINS
-} spu_function_code;
-
-struct spu_builtin_description {
-    spu_function_code fcode;
-    enum insn_code icode;
-    const char *name;
-    enum spu_builtin_type type;
-
-    /* The first element of parm is always the return type.  The rest
-     * are a zero terminated list of parameters. */
-    int parm[5];
-
-    tree fndecl;
-};
-
-extern GTY(()) struct spu_builtin_description spu_builtins[];
-
-
-
diff -Naur gcc-4.4.0.orig/gcc/config/spu/spu.c gcc-4.4.0/gcc/config/spu/spu.c
--- gcc-4.4.0.orig/gcc/config/spu/spu.c	2009-03-12 07:00:21.000000000 -0700
+++ gcc-4.4.0/gcc/config/spu/spu.c	2009-04-23 15:50:16.000000000 -0700
@@ -52,13 +52,79 @@
 #include "machmode.h"
 #include "gimple.h"
 #include "tm-constrs.h"
-#include "spu-builtins.h"
 #include "ddg.h"
 #include "sbitmap.h"
 #include "timevar.h"
 #include "df.h"
 
 /* Builtin types, data and prototypes. */
+
+enum spu_builtin_type_index
+{
+  SPU_BTI_END_OF_PARAMS,
+
+  /* We create new type nodes for these. */
+  SPU_BTI_V16QI,
+  SPU_BTI_V8HI,
+  SPU_BTI_V4SI,
+  SPU_BTI_V2DI,
+  SPU_BTI_V4SF,
+  SPU_BTI_V2DF,
+  SPU_BTI_UV16QI,
+  SPU_BTI_UV8HI,
+  SPU_BTI_UV4SI,
+  SPU_BTI_UV2DI,
+
+  /* A 16-byte type. (Implemented with V16QI_type_node) */
+  SPU_BTI_QUADWORD,
+
+  /* These all correspond to intSI_type_node */
+  SPU_BTI_7,
+  SPU_BTI_S7,
+  SPU_BTI_U7,
+  SPU_BTI_S10,
+  SPU_BTI_S10_4,
+  SPU_BTI_U14,
+  SPU_BTI_16,
+  SPU_BTI_S16,
+  SPU_BTI_S16_2,
+  SPU_BTI_U16,
+  SPU_BTI_U16_2,
+  SPU_BTI_U18,
+
+  /* These correspond to the standard types */
+  SPU_BTI_INTQI, 
+  SPU_BTI_INTHI, 
+  SPU_BTI_INTSI, 
+  SPU_BTI_INTDI, 
+
+  SPU_BTI_UINTQI,
+  SPU_BTI_UINTHI,
+  SPU_BTI_UINTSI,
+  SPU_BTI_UINTDI,
+
+  SPU_BTI_FLOAT, 
+  SPU_BTI_DOUBLE,
+
+  SPU_BTI_VOID,   
+  SPU_BTI_PTR,   
+
+  SPU_BTI_MAX
+};
+
+#define V16QI_type_node               (spu_builtin_types[SPU_BTI_V16QI])
+#define V8HI_type_node                (spu_builtin_types[SPU_BTI_V8HI])
+#define V4SI_type_node                (spu_builtin_types[SPU_BTI_V4SI])
+#define V2DI_type_node                (spu_builtin_types[SPU_BTI_V2DI])
+#define V4SF_type_node                (spu_builtin_types[SPU_BTI_V4SF])
+#define V2DF_type_node                (spu_builtin_types[SPU_BTI_V2DF])
+#define unsigned_V16QI_type_node      (spu_builtin_types[SPU_BTI_UV16QI])
+#define unsigned_V8HI_type_node       (spu_builtin_types[SPU_BTI_UV8HI])
+#define unsigned_V4SI_type_node       (spu_builtin_types[SPU_BTI_UV4SI])
+#define unsigned_V2DI_type_node       (spu_builtin_types[SPU_BTI_UV2DI])
+
+static GTY(()) tree spu_builtin_types[SPU_BTI_MAX];
+
 struct spu_builtin_range
 {
   int low, high;
@@ -202,8 +268,6 @@
 static enum machine_mode
 spu_libgcc_shift_count_mode (void);
 
-/* Built in types.  */
-tree spu_builtin_types[SPU_BTI_MAX];
 
 /*  TARGET overrides.  */
 
@@ -5067,6 +5131,16 @@
 
 /* Create the built-in types and functions */
 
+enum spu_function_code
+{
+#define DEF_BUILTIN(fcode, icode, name, type, params) fcode,
+#include "spu-builtins.def"
+#undef DEF_BUILTIN
+   NUM_SPU_BUILTINS
+};
+
+extern GTY(()) struct spu_builtin_description spu_builtins[NUM_SPU_BUILTINS];
+
 struct spu_builtin_description spu_builtins[] = {
 #define DEF_BUILTIN(fcode, icode, name, type, params) \
   {fcode, icode, name, type, params, NULL_TREE},
@@ -6298,3 +6372,5 @@
   return default_section_type_flags (decl, name, reloc);
 }
 
+#include "gt-spu.h"
+
diff -Naur gcc-4.4.0.orig/gcc/config/spu/spu-c.c gcc-4.4.0/gcc/config/spu/spu-c.c
--- gcc-4.4.0.orig/gcc/config/spu/spu-c.c	2009-02-20 07:20:38.000000000 -0800
+++ gcc-4.4.0/gcc/config/spu/spu-c.c	2009-04-23 15:50:16.000000000 -0700
@@ -32,7 +32,6 @@
 #include "insn-codes.h"
 #include "recog.h"
 #include "optabs.h"
-#include "spu-builtins.h"
 
 
 /* Keep the vector keywords handy for fast comparisons.  */
@@ -101,8 +100,7 @@
 #define SCALAR_TYPE_P(t) (INTEGRAL_TYPE_P (t) \
 			  || SCALAR_FLOAT_TYPE_P (t) \
 			  || POINTER_TYPE_P (t))
-  spu_function_code new_fcode, fcode =
-    DECL_FUNCTION_CODE (fndecl) - END_BUILTINS;
+  int new_fcode, fcode = DECL_FUNCTION_CODE (fndecl) - END_BUILTINS;
   struct spu_builtin_description *desc;
   tree match = NULL_TREE;
 
@@ -122,8 +120,15 @@
       tree decl = spu_builtins[new_fcode].fndecl;
       tree params = TYPE_ARG_TYPES (TREE_TYPE (decl));
       tree arg, param;
+      bool all_scalar;
       int p;
 
+      /* Check whether all parameters are scalar.  */
+      all_scalar = true;
+      for (param = params; param != void_list_node; param = TREE_CHAIN (param))
+	if (!SCALAR_TYPE_P (TREE_VALUE (param)))
+	  all_scalar = false;
+
       for (param = params, arg = fnargs, p = 0;
 	   param != void_list_node;
 	   param = TREE_CHAIN (param), arg = TREE_CHAIN (arg), p++)
@@ -155,10 +160,7 @@
 	     parameter. */
 	  if ((!SCALAR_TYPE_P (param_type)
 	       || !SCALAR_TYPE_P (arg_type)
-	       || ((fcode == SPU_SPLATS || fcode == SPU_PROMOTE
-		    || fcode == SPU_HCMPEQ || fcode == SPU_HCMPGT
-		    || fcode == SPU_MASKB || fcode == SPU_MASKH
-		    || fcode == SPU_MASKW) && p == 0))
+	       || (all_scalar && p == 0))
 	      && !comptypes (TYPE_MAIN_VARIANT (param_type),
 			     TYPE_MAIN_VARIANT (arg_type)))
 	    break;
diff -Naur gcc-4.4.0.orig/gcc/config/spu/spu.h gcc-4.4.0/gcc/config/spu/spu.h
--- gcc-4.4.0.orig/gcc/config/spu/spu.h	2009-02-20 07:20:38.000000000 -0800
+++ gcc-4.4.0/gcc/config/spu/spu.h	2009-04-23 15:50:16.000000000 -0700
@@ -622,3 +622,33 @@
 extern GTY(()) rtx spu_compare_op0;
 extern GTY(()) rtx spu_compare_op1;
 
+
+/* Builtins.  */
+
+enum spu_builtin_type
+{
+  B_INSN,
+  B_JUMP,
+  B_BISLED,
+  B_CALL,
+  B_HINT,
+  B_OVERLOAD,
+  B_INTERNAL
+};
+
+struct spu_builtin_description GTY(())
+{
+  int fcode;
+  int icode;
+  const char *name;
+  enum spu_builtin_type type;
+
+  /* The first element of parm is always the return type.  The rest
+     are a zero terminated list of parameters.  */
+  int parm[5];
+
+  tree fndecl;
+};
+
+extern struct spu_builtin_description spu_builtins[];
+
diff -Naur gcc-4.4.0.orig/gcc/config/spu/t-spu-elf gcc-4.4.0/gcc/config/spu/t-spu-elf
--- gcc-4.4.0.orig/gcc/config/spu/t-spu-elf	2009-03-26 07:36:27.000000000 -0700
+++ gcc-4.4.0/gcc/config/spu/t-spu-elf	2009-04-23 15:50:16.000000000 -0700
@@ -85,13 +85,10 @@
   output.h $(BASIC_BLOCK_H) $(INTEGRATE_H) toplev.h $(GGC_H) $(HASHTAB_H) \
   $(TM_P_H) $(TARGET_H) $(TARGET_DEF_H) langhooks.h reload.h cfglayout.h \
   $(srcdir)/config/spu/spu-protos.h \
-  $(srcdir)/config/spu/spu-builtins.h \
   $(srcdir)/config/spu/spu-builtins.def 
 
 spu-c.o: $(srcdir)/config/spu/spu-c.c \
     $(srcdir)/config/spu/spu-protos.h \
-    $(srcdir)/config/spu/spu-builtins.h \
-    $(srcdir)/config/spu/spu-builtins.def \
     $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(CPPLIB_H) \
     $(TM_P_H) c-pragma.h errors.h coretypes.h $(TM_H) insn-codes.h
 	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/spu/spu-c.c
diff -Naur gcc-4.4.0.orig/gcc/cp/call.c gcc-4.4.0/gcc/cp/call.c
--- gcc-4.4.0.orig/gcc/cp/call.c	2009-04-13 13:56:45.000000000 -0700
+++ gcc-4.4.0/gcc/cp/call.c	2009-04-23 04:13:57.000000000 -0700
@@ -4069,8 +4069,20 @@
 	default:
 	  if ((flags & LOOKUP_COMPLAIN) && (complain & tf_error))
 	    {
-	      op_error (code, code2, arg1, arg2, arg3, "no match");
-	      print_z_candidates (candidates);
+		/* If one of the arguments of the operator represents
+		   an invalid use of member function pointer, try to report
+		   a meaningful error ...  */
+		if (invalid_nonstatic_memfn_p (arg1, tf_error)
+		    || invalid_nonstatic_memfn_p (arg2, tf_error)
+		    || invalid_nonstatic_memfn_p (arg3, tf_error))
+		  /* We displayed the error message.  */;
+		else
+		  {
+		    /* ... Otherwise, report the more generic
+		       "no matching operator found" error */
+		    op_error (code, code2, arg1, arg2, arg3, "no match");
+		    print_z_candidates (candidates);
+		  }
 	    }
 	  result = error_mark_node;
 	  break;
diff -Naur gcc-4.4.0.orig/gcc/cp/ChangeLog gcc-4.4.0/gcc/cp/ChangeLog
--- gcc-4.4.0.orig/gcc/cp/ChangeLog	2009-04-21 01:44:51.000000000 -0700
+++ gcc-4.4.0/gcc/cp/ChangeLog	2009-04-23 04:13:57.000000000 -0700
@@ -1,3 +1,22 @@
+2009-04-23  Dodji Seketeli  <dodji@redhat.com>
+
+	PR c++/38228
+	* pt.c (unify): Do not allow the result of a template argument
+	deduction to be a METHOD_TYPE.
+	* cvt.c (cp_convert): Report a meaningful error for non-valid use
+	of pointer to member functions during conversions.
+	* call.c (build_new_op): Report a meaningful error for non-valid
+	use of pointer to member functions in binary expressions.
+	* typeck.c (invalid_nonstatic_memfn_p): Do not crash when EXPR is
+	NULL;
+
+2009-04-22  Dodji Seketeli  <dodji@redhat.com>
+
+	PR c++/39639
+	* parser.c (cp_parser_template_argument_list): Display an error
+	when an ellipsis is not preceded by a parameter pack. Also, warn
+	about variadic templates usage without -std=c++0x.
+
 2009-04-21  Release Manager
 
 	* GCC 4.4.0 released.
diff -Naur gcc-4.4.0.orig/gcc/cp/cvt.c gcc-4.4.0/gcc/cp/cvt.c
--- gcc-4.4.0.orig/gcc/cp/cvt.c	2008-08-18 04:17:52.000000000 -0700
+++ gcc-4.4.0/gcc/cp/cvt.c	2009-04-23 04:13:57.000000000 -0700
@@ -760,8 +760,15 @@
     }
 
   if (flags & LOOKUP_COMPLAIN)
-    error ("conversion from %qT to non-scalar type %qT requested",
-	   TREE_TYPE (expr), type);
+    {
+      /* If the conversion failed and expr was an invalid use of pointer to
+	 member function, try to report a meaningful error.  */
+      if (invalid_nonstatic_memfn_p (expr, tf_warning_or_error))
+	/* We displayed the error message.  */;
+      else
+	error ("conversion from %qT to non-scalar type %qT requested",
+	       TREE_TYPE (expr), type);
+    }
   return error_mark_node;
 }
 
diff -Naur gcc-4.4.0.orig/gcc/cp/parser.c gcc-4.4.0/gcc/cp/parser.c
--- gcc-4.4.0.orig/gcc/cp/parser.c	2009-04-10 12:01:16.000000000 -0700
+++ gcc-4.4.0/gcc/cp/parser.c	2009-04-22 12:16:13.000000000 -0700
@@ -10477,6 +10477,12 @@
          argument pack. */
       if (cp_lexer_next_token_is (parser->lexer, CPP_ELLIPSIS))
         {
+	  if (argument == error_mark_node)
+	    {
+	      cp_token *token = cp_lexer_peek_token (parser->lexer);
+	      error ("%Hexpected parameter pack before %<...%>",
+		     &token->location);
+	    }
           /* Consume the `...' token. */
           cp_lexer_consume_token (parser->lexer);
 
diff -Naur gcc-4.4.0.orig/gcc/cp/pt.c gcc-4.4.0/gcc/cp/pt.c
--- gcc-4.4.0.orig/gcc/cp/pt.c	2009-04-13 12:27:20.000000000 -0700
+++ gcc-4.4.0/gcc/cp/pt.c	2009-04-23 04:13:57.000000000 -0700
@@ -13532,6 +13532,13 @@
 	  && !template_parameter_pack_p (parm))
 	return 1;
 
+      /* If the argument deduction results is a METHOD_TYPE,
+         then there is a problem.
+         METHOD_TYPE doesn't map to any real C++ type the result of
+	 the deduction can not be of that type.  */
+      if (TREE_CODE (arg) == METHOD_TYPE)
+	return 1;
+
       TREE_VEC_ELT (INNERMOST_TEMPLATE_ARGS (targs), idx) = arg;
       return 0;
 
diff -Naur gcc-4.4.0.orig/gcc/cp/typeck.c gcc-4.4.0/gcc/cp/typeck.c
--- gcc-4.4.0.orig/gcc/cp/typeck.c	2009-04-06 21:38:10.000000000 -0700
+++ gcc-4.4.0/gcc/cp/typeck.c	2009-04-23 04:13:57.000000000 -0700
@@ -1508,7 +1508,7 @@
 bool
 invalid_nonstatic_memfn_p (const_tree expr, tsubst_flags_t complain)
 {
-  if (DECL_NONSTATIC_MEMBER_FUNCTION_P (expr))
+  if (expr && DECL_NONSTATIC_MEMBER_FUNCTION_P (expr))
     {
       if (complain & tf_error)
         error ("invalid use of non-static member function");
diff -Naur gcc-4.4.0.orig/gcc/cse.c gcc-4.4.0/gcc/cse.c
--- gcc-4.4.0.orig/gcc/cse.c	2009-03-14 01:10:55.000000000 -0700
+++ gcc-4.4.0/gcc/cse.c	2009-04-27 04:55:13.000000000 -0700
@@ -1,6 +1,6 @@
 /* Common subexpression elimination for GNU compiler.
    Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998
-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -1658,7 +1658,7 @@
 {
   struct check_dependence_data *d = (struct check_dependence_data *) data;
   if (*x && MEM_P (*x))
-    return canon_true_dependence (d->exp, d->mode, d->addr, *x,
+    return canon_true_dependence (d->exp, d->mode, d->addr, *x, NULL_RTX,
 		    		  cse_rtx_varies_p);
   else
     return 0;
diff -Naur gcc-4.4.0.orig/gcc/cselib.c gcc-4.4.0/gcc/cselib.c
--- gcc-4.4.0.orig/gcc/cselib.c	2008-12-22 15:41:17.000000000 -0800
+++ gcc-4.4.0/gcc/cselib.c	2009-04-27 04:55:13.000000000 -0700
@@ -1,6 +1,6 @@
 /* Common subexpression elimination library for GNU compiler.
    Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008
+   1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -1483,7 +1483,7 @@
 	    }
 	  if (num_mems < PARAM_VALUE (PARAM_MAX_CSELIB_MEMORY_LOCATIONS)
 	      && ! canon_true_dependence (mem_rtx, GET_MODE (mem_rtx), mem_addr,
-		      			  x, cselib_rtx_varies_p))
+		      			  x, NULL_RTX, cselib_rtx_varies_p))
 	    {
 	      has_mem = true;
 	      num_mems++;
diff -Naur gcc-4.4.0.orig/gcc/DATESTAMP gcc-4.4.0/gcc/DATESTAMP
--- gcc-4.4.0.orig/gcc/DATESTAMP	2009-04-20 17:16:42.000000000 -0700
+++ gcc-4.4.0/gcc/DATESTAMP	2009-04-28 17:16:54.000000000 -0700
@@ -1 +1 @@
-20090421
+20090429
diff -Naur gcc-4.4.0.orig/gcc/dbxout.c gcc-4.4.0/gcc/dbxout.c
--- gcc-4.4.0.orig/gcc/dbxout.c	2009-02-27 11:49:42.000000000 -0800
+++ gcc-4.4.0/gcc/dbxout.c	2009-04-22 15:24:45.000000000 -0700
@@ -3593,7 +3593,7 @@
   while (block)
     {
       /* Ignore blocks never expanded or otherwise marked as real.  */
-      if (TREE_ASM_WRITTEN (block))
+      if (TREE_USED (block) && TREE_ASM_WRITTEN (block))
 	{
 	  int did_output;
 	  int blocknum = BLOCK_NUMBER (block);
diff -Naur gcc-4.4.0.orig/gcc/dse.c gcc-4.4.0/gcc/dse.c
--- gcc-4.4.0.orig/gcc/dse.c	2009-03-18 10:04:26.000000000 -0700
+++ gcc-4.4.0/gcc/dse.c	2009-04-27 04:55:13.000000000 -0700
@@ -223,7 +223,7 @@
   /* This canonized mem.  */
   rtx mem;
 
-  /* The result of get_addr on mem.  */
+  /* Canonized MEM address for use by canon_true_dependence.  */
   rtx mem_addr;
 
   /* If this is non-zero, it is the alias set of a spill location.  */
@@ -476,8 +476,8 @@
      do read dependency.  */
   rtx base_mem;
   
-  /* Canonized version of base_mem, most likely the same thing.  */
-  rtx canon_base_mem;
+  /* Canonized version of base_mem's address.  */
+  rtx canon_base_addr;
 
   /* These two sets of two bitmaps are used to keep track of how many
      stores are actually referencing that position from this base.  We
@@ -705,7 +705,7 @@
       gi->rtx_base = base;
       gi->id = rtx_group_next_id++;
       gi->base_mem = gen_rtx_MEM (QImode, base);
-      gi->canon_base_mem = canon_rtx (gi->base_mem);
+      gi->canon_base_addr = canon_rtx (base);
       gi->store1_n = BITMAP_ALLOC (NULL);
       gi->store1_p = BITMAP_ALLOC (NULL);
       gi->store2_n = BITMAP_ALLOC (NULL);
@@ -1286,7 +1286,7 @@
 static int
 record_store (rtx body, bb_info_t bb_info)
 {
-  rtx mem, rhs, const_rhs;
+  rtx mem, rhs, const_rhs, mem_addr;
   HOST_WIDE_INT offset = 0;
   HOST_WIDE_INT width = 0;
   alias_set_type spill_alias_set;
@@ -1456,6 +1456,23 @@
   ptr = active_local_stores;
   last = NULL;
   redundant_reason = NULL;
+  mem = canon_rtx (mem);
+  /* For alias_set != 0 canon_true_dependence should be never called.  */
+  if (spill_alias_set)
+    mem_addr = NULL_RTX;
+  else
+    {
+      if (group_id < 0)
+	mem_addr = base->val_rtx;
+      else
+	{
+	  group_info_t group
+	    = VEC_index (group_info_t, rtx_group_vec, group_id);
+	  mem_addr = group->canon_base_addr;
+	}
+      if (offset)
+	mem_addr = plus_constant (mem_addr, offset);
+    }
 
   while (ptr)
     {
@@ -1547,13 +1564,13 @@
 	  if (canon_true_dependence (s_info->mem, 
 				     GET_MODE (s_info->mem),
 				     s_info->mem_addr,
-				     mem, rtx_varies_p))
+				     mem, mem_addr, rtx_varies_p))
 	    {
 	      s_info->rhs = NULL;
 	      s_info->const_rhs = NULL;
 	    }
 	}
-      
+
       /* An insn can be deleted if every position of every one of
 	 its s_infos is zero.  */
       if (any_positions_needed_p (s_info)
@@ -1580,9 +1597,9 @@
   /* Finish filling in the store_info.  */
   store_info->next = insn_info->store_rec;
   insn_info->store_rec = store_info;
-  store_info->mem = canon_rtx (mem);
+  store_info->mem = mem;
   store_info->alias_set = spill_alias_set;
-  store_info->mem_addr = get_addr (XEXP (mem, 0));
+  store_info->mem_addr = mem_addr;
   store_info->cse_base = base;
   if (width > HOST_BITS_PER_WIDE_INT)
     {
@@ -2006,7 +2023,7 @@
 static int
 check_mem_read_rtx (rtx *loc, void *data)
 {
-  rtx mem = *loc;
+  rtx mem = *loc, mem_addr;
   bb_info_t bb_info;
   insn_info_t insn_info;
   HOST_WIDE_INT offset = 0;
@@ -2058,6 +2075,22 @@
   read_info->end = offset + width;
   read_info->next = insn_info->read_rec;
   insn_info->read_rec = read_info;
+  /* For alias_set != 0 canon_true_dependence should be never called.  */
+  if (spill_alias_set)
+    mem_addr = NULL_RTX;
+  else
+    {
+      if (group_id < 0)
+	mem_addr = base->val_rtx;
+      else
+	{
+	  group_info_t group
+	    = VEC_index (group_info_t, rtx_group_vec, group_id);
+	  mem_addr = group->canon_base_addr;
+	}
+      if (offset)
+	mem_addr = plus_constant (mem_addr, offset);
+    }
 
   /* We ignore the clobbers in store_info.  The is mildly aggressive,
      but there really should not be a clobber followed by a read.  */
@@ -2128,7 +2161,7 @@
 	      = canon_true_dependence (store_info->mem, 
 				       GET_MODE (store_info->mem),
 				       store_info->mem_addr,
-				       mem, rtx_varies_p);
+				       mem, mem_addr, rtx_varies_p);
 	  
 	  else if (group_id == store_info->group_id)
 	    {
@@ -2139,7 +2172,7 @@
 		  = canon_true_dependence (store_info->mem, 
 					   GET_MODE (store_info->mem),
 					   store_info->mem_addr,
-					   mem, rtx_varies_p);
+					   mem, mem_addr, rtx_varies_p);
 	      
 	      /* If this read is just reading back something that we just
 		 stored, rewrite the read.  */
@@ -2224,7 +2257,7 @@
 	    remove = canon_true_dependence (store_info->mem, 
 					    GET_MODE (store_info->mem),
 					    store_info->mem_addr,
-					    mem, rtx_varies_p);
+					    mem, mem_addr, rtx_varies_p);
 	  
 	  if (remove)
 	    {
@@ -3066,8 +3099,9 @@
 		  if ((read_info->group_id < 0)
 		      && canon_true_dependence (group->base_mem, 
 						QImode,
-						group->canon_base_mem,
-						read_info->mem, rtx_varies_p))
+						group->canon_base_addr,
+						read_info->mem, NULL_RTX,
+						rtx_varies_p))
 		    {
 		      if (kill)
 			bitmap_ior_into (kill, group->group_kill);
diff -Naur gcc-4.4.0.orig/gcc/fold-const.c gcc-4.4.0/gcc/fold-const.c
--- gcc-4.4.0.orig/gcc/fold-const.c	2009-03-11 08:24:00.000000000 -0700
+++ gcc-4.4.0/gcc/fold-const.c	2009-04-24 04:34:59.000000000 -0700
@@ -5293,31 +5293,34 @@
 	break;
 
       case GT_EXPR:
-	/* If C1 is C2 - 1, this is max(A, C2).  */
+	/* If C1 is C2 - 1, this is max(A, C2), but use ARG00's type for
+	   MAX_EXPR, to preserve the signedness of the comparison.  */
 	if (! operand_equal_p (arg2, TYPE_MIN_VALUE (type),
 			       OEP_ONLY_CONST)
 	    && operand_equal_p (arg01,
 				const_binop (MINUS_EXPR, arg2,
 					     build_int_cst (type, 1), 0),
 				OEP_ONLY_CONST))
-	  return pedantic_non_lvalue (fold_build2 (MAX_EXPR,
-						   type,
-						   fold_convert (type, arg1),
-						   arg2));
+	  return pedantic_non_lvalue (fold_convert (type,
+				      fold_build2 (MAX_EXPR, TREE_TYPE (arg00),
+						   arg00,
+						   fold_convert (TREE_TYPE (arg00),
+							         arg2))));
 	break;
 
       case GE_EXPR:
-	/* If C1 is C2 + 1, this is max(A, C2).  */
+	/* If C1 is C2 + 1, this is max(A, C2), with the same care as above.  */
 	if (! operand_equal_p (arg2, TYPE_MAX_VALUE (type),
 			       OEP_ONLY_CONST)
 	    && operand_equal_p (arg01,
 				const_binop (PLUS_EXPR, arg2,
 					     build_int_cst (type, 1), 0),
 				OEP_ONLY_CONST))
-	  return pedantic_non_lvalue (fold_build2 (MAX_EXPR,
-						   type,
-						   fold_convert (type, arg1),
-						   arg2));
+	  return pedantic_non_lvalue (fold_convert (type,
+				      fold_build2 (MAX_EXPR, TREE_TYPE (arg00),
+						   arg00,
+						   fold_convert (TREE_TYPE (arg00),
+							         arg2))));
 	break;
       case NE_EXPR:
 	break;
@@ -11861,7 +11864,8 @@
 	      if (code == LROTATE_EXPR || code == RROTATE_EXPR)
 	        low = low % TYPE_PRECISION (type);
 	      else if (TYPE_UNSIGNED (type) || code == LSHIFT_EXPR)
-	        return build_int_cst (type, 0);
+		return omit_one_operand (type, build_int_cst (type, 0),
+					 TREE_OPERAND (arg0, 0));
 	      else
 		low = TYPE_PRECISION (type) - 1;
 	    }
diff -Naur gcc-4.4.0.orig/gcc/fortran/ChangeLog gcc-4.4.0/gcc/fortran/ChangeLog
--- gcc-4.4.0.orig/gcc/fortran/ChangeLog	2009-04-21 01:44:29.000000000 -0700
+++ gcc-4.4.0/gcc/fortran/ChangeLog	2009-04-22 04:37:04.000000000 -0700
@@ -1,3 +1,13 @@
+2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	Backport from mainline:
+	2009-03-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	* f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_HUGE_VAL
+	family of intrinsics instead of BUILT_IN_INF family.
+	* trans-intrinsics.c (gfc_conv_intrinsic_nearest): Use
+	BUILT_IN_HUGE_VAL instead of BUILT_IN_INF.
+
 2009-04-21  Release Manager
 
 	* GCC 4.4.0 released.
diff -Naur gcc-4.4.0.orig/gcc/fortran/f95-lang.c gcc-4.4.0/gcc/fortran/f95-lang.c
--- gcc-4.4.0.orig/gcc/fortran/f95-lang.c	2008-10-07 11:15:32.000000000 -0700
+++ gcc-4.4.0/gcc/fortran/f95-lang.c	2009-04-22 04:37:04.000000000 -0700
@@ -917,12 +917,12 @@
   gfc_define_builtin ("__builtin_fmodf", mfunc_float[1], 
 		      BUILT_IN_FMODF, "fmodf", true);
 
-  gfc_define_builtin ("__builtin_infl", mfunc_longdouble[3], 
-		      BUILT_IN_INFL, "__builtin_infl", true);
-  gfc_define_builtin ("__builtin_inf", mfunc_double[3], 
-		      BUILT_IN_INF, "__builtin_inf", true);
-  gfc_define_builtin ("__builtin_inff", mfunc_float[3], 
-		      BUILT_IN_INFF, "__builtin_inff", true);
+  gfc_define_builtin ("__builtin_huge_vall", mfunc_longdouble[3], 
+		      BUILT_IN_HUGE_VALL, "__builtin_huge_vall", true);
+  gfc_define_builtin ("__builtin_huge_val", mfunc_double[3], 
+		      BUILT_IN_HUGE_VAL, "__builtin_huge_val", true);
+  gfc_define_builtin ("__builtin_huge_valf", mfunc_float[3], 
+		      BUILT_IN_HUGE_VALF, "__builtin_huge_valf", true);
 
   /* lround{f,,l} and llround{f,,l} */
   type = tree_cons (NULL_TREE, float_type_node, void_list_node);
diff -Naur gcc-4.4.0.orig/gcc/fortran/trans-intrinsic.c gcc-4.4.0/gcc/fortran/trans-intrinsic.c
--- gcc-4.4.0.orig/gcc/fortran/trans-intrinsic.c	2009-02-20 07:20:38.000000000 -0800
+++ gcc-4.4.0/gcc/fortran/trans-intrinsic.c	2009-04-22 04:37:04.000000000 -0700
@@ -3129,32 +3129,32 @@
 
 
 /* NEAREST (s, dir) is translated into
-     tmp = copysign (INF, dir);
+     tmp = copysign (HUGE_VAL, dir);
      return nextafter (s, tmp);
  */
 static void
 gfc_conv_intrinsic_nearest (gfc_se * se, gfc_expr * expr)
 {
   tree args[2], type, tmp;
-  int nextafter, copysign, inf;
+  int nextafter, copysign, huge_val;
 
   switch (expr->ts.kind)
     {
       case 4:
 	nextafter = BUILT_IN_NEXTAFTERF;
 	copysign = BUILT_IN_COPYSIGNF;
-	inf = BUILT_IN_INFF;
+	huge_val = BUILT_IN_HUGE_VALF;
 	break;
       case 8:
 	nextafter = BUILT_IN_NEXTAFTER;
 	copysign = BUILT_IN_COPYSIGN;
-	inf = BUILT_IN_INF;
+	huge_val = BUILT_IN_HUGE_VAL;
 	break;
       case 10:
       case 16:
 	nextafter = BUILT_IN_NEXTAFTERL;
 	copysign = BUILT_IN_COPYSIGNL;
-	inf = BUILT_IN_INFL;
+	huge_val = BUILT_IN_HUGE_VALL;
 	break;
       default:
 	gcc_unreachable ();
@@ -3163,7 +3163,7 @@
   type = gfc_typenode_for_spec (&expr->ts);
   gfc_conv_intrinsic_function_args (se, expr, args, 2);
   tmp = build_call_expr (built_in_decls[copysign], 2,
-			 build_call_expr (built_in_decls[inf], 0),
+			 build_call_expr (built_in_decls[huge_val], 0),
 			 fold_convert (type, args[1]));
   se->expr = build_call_expr (built_in_decls[nextafter], 2,
 			      fold_convert (type, args[0]), tmp);
diff -Naur gcc-4.4.0.orig/gcc/fwprop.c gcc-4.4.0/gcc/fwprop.c
--- gcc-4.4.0.orig/gcc/fwprop.c	2009-02-20 07:20:38.000000000 -0800
+++ gcc-4.4.0/gcc/fwprop.c	2009-04-26 11:58:04.000000000 -0700
@@ -1,5 +1,5 @@
 /* RTL-based forward propagation pass for GNU compiler.
-   Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
    Contributed by Paolo Bonzini and Steven Bosscher.
 
 This file is part of GCC.
@@ -852,6 +852,80 @@
     return false;
 }
 
+/* Try to replace USE with SRC (defined in DEF_INSN) in __asm.  */
+
+static bool
+forward_propagate_asm (df_ref use, rtx def_insn, rtx def_set, rtx reg)
+{
+  rtx use_insn = DF_REF_INSN (use), src, use_pat, asm_operands, new_rtx, *loc;
+  int speed_p, i;
+  df_ref *use_vec;
+
+  gcc_assert ((DF_REF_FLAGS (use) & DF_REF_IN_NOTE) == 0);
+
+  src = SET_SRC (def_set);
+  use_pat = PATTERN (use_insn);
+
+  /* In __asm don't replace if src might need more registers than
+     reg, as that could increase register pressure on the __asm.  */
+  use_vec = DF_INSN_USES (def_insn);
+  if (use_vec[0] && use_vec[1])
+    return false;
+
+  speed_p = optimize_bb_for_speed_p (BLOCK_FOR_INSN (use_insn));
+  asm_operands = NULL_RTX;
+  switch (GET_CODE (use_pat))
+    {
+    case ASM_OPERANDS:
+      asm_operands = use_pat;
+      break;
+    case SET:
+      if (MEM_P (SET_DEST (use_pat)))
+	{
+	  loc = &SET_DEST (use_pat);
+	  new_rtx = propagate_rtx (*loc, GET_MODE (*loc), reg, src, speed_p);
+	  if (new_rtx)
+	    validate_unshare_change (use_insn, loc, new_rtx, true);
+	}
+      asm_operands = SET_SRC (use_pat);
+      break;
+    case PARALLEL:
+      for (i = 0; i < XVECLEN (use_pat, 0); i++)
+	if (GET_CODE (XVECEXP (use_pat, 0, i)) == SET)
+	  {
+	    if (MEM_P (SET_DEST (XVECEXP (use_pat, 0, i))))
+	      {
+		loc = &SET_DEST (XVECEXP (use_pat, 0, i));
+		new_rtx = propagate_rtx (*loc, GET_MODE (*loc), reg,
+					 src, speed_p);
+		if (new_rtx)
+		  validate_unshare_change (use_insn, loc, new_rtx, true);
+	      }
+	    asm_operands = SET_SRC (XVECEXP (use_pat, 0, i));
+	  }
+	else if (GET_CODE (XVECEXP (use_pat, 0, i)) == ASM_OPERANDS)
+	  asm_operands = XVECEXP (use_pat, 0, i);
+      break;
+    default:
+      gcc_unreachable ();
+    }
+
+  gcc_assert (asm_operands && GET_CODE (asm_operands) == ASM_OPERANDS);
+  for (i = 0; i < ASM_OPERANDS_INPUT_LENGTH (asm_operands); i++)
+    {
+      loc = &ASM_OPERANDS_INPUT (asm_operands, i);
+      new_rtx = propagate_rtx (*loc, GET_MODE (*loc), reg, src, speed_p);
+      if (new_rtx)
+	validate_unshare_change (use_insn, loc, new_rtx, true);
+    }
+
+  if (num_changes_pending () == 0 || !apply_change_group ())
+    return false;
+
+  num_changes++;
+  return true;
+}
+
 /* Try to replace USE with SRC (defined in DEF_INSN) and simplify the
    result.  */
 
@@ -863,12 +937,16 @@
   rtx src, reg, new_rtx, *loc;
   bool set_reg_equal;
   enum machine_mode mode;
+  int asm_use = -1;
+
+  if (INSN_CODE (use_insn) < 0)
+    asm_use = asm_noperands (PATTERN (use_insn));
 
-  if (!use_set)
+  if (!use_set && asm_use < 0)
     return false;
 
   /* Do not propagate into PC, CC0, etc.  */
-  if (GET_MODE (SET_DEST (use_set)) == VOIDmode)
+  if (use_set && GET_MODE (SET_DEST (use_set)) == VOIDmode)
     return false;
 
   /* If def and use are subreg, check if they match.  */
@@ -900,7 +978,7 @@
   if (MEM_P (src) && MEM_READONLY_P (src))
     {
       rtx x = avoid_constant_pool_reference (src);
-      if (x != src)
+      if (x != src && use_set)
 	{
           rtx note = find_reg_note (use_insn, REG_EQUAL, NULL_RTX);
 	  rtx old_rtx = note ? XEXP (note, 0) : SET_SRC (use_set);
@@ -911,6 +989,9 @@
       return false;
     }
 
+  if (asm_use >= 0)
+    return forward_propagate_asm (use, def_insn, def_set, reg);
+
   /* Else try simplifying.  */
 
   if (DF_REF_TYPE (use) == DF_REF_REG_MEM_STORE)
diff -Naur gcc-4.4.0.orig/gcc/gcse.c gcc-4.4.0/gcc/gcse.c
--- gcc-4.4.0.orig/gcc/gcse.c	2008-08-29 03:35:57.000000000 -0700
+++ gcc-4.4.0/gcc/gcse.c	2009-04-27 04:55:13.000000000 -0700
@@ -1,7 +1,7 @@
 /* Global common subexpression elimination/Partial redundancy elimination
    and global constant/copy propagation for GNU compiler.
    Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-   2006, 2007, 2008 Free Software Foundation, Inc.
+   2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -2516,7 +2516,7 @@
 		    dest_addr = XEXP (list_entry, 0);
 
 		    if (canon_true_dependence (dest, GET_MODE (dest), dest_addr,
-					       x, rtx_addr_varies_p))
+					       x, NULL_RTX, rtx_addr_varies_p))
 		      {
 			if (set_p)
 			  SET_BIT (bmap[bb_index], indx);
diff -Naur gcc-4.4.0.orig/gcc/ira-color.c gcc-4.4.0/gcc/ira-color.c
--- gcc-4.4.0.orig/gcc/ira-color.c	2009-02-20 07:20:38.000000000 -0800
+++ gcc-4.4.0/gcc/ira-color.c	2009-04-22 13:16:13.000000000 -0700
@@ -285,8 +285,8 @@
 	    continue;
 
 	  cost = (cp->second == allocno
-		  ? ira_register_move_cost[mode][rclass][cover_class]
-		  : ira_register_move_cost[mode][cover_class][rclass]);
+		  ? ira_get_register_move_cost (mode, rclass, cover_class)
+		  : ira_get_register_move_cost (mode, cover_class, rclass));
 	  if (decr_p)
 	    cost = -cost;
 
@@ -1069,7 +1069,7 @@
 	      * ira_loop_edge_freq (loop_node, regno, true)
 	      + ira_memory_move_cost[mode][rclass][0]
 	      * ira_loop_edge_freq (loop_node, regno, false))
-	     - (ira_register_move_cost[mode][rclass][rclass]
+	     - (ira_get_register_move_cost (mode, rclass, rclass)
 		* (ira_loop_edge_freq (loop_node, regno, false)
 		   + ira_loop_edge_freq (loop_node, regno, true))));
   return cost;
@@ -2037,7 +2037,7 @@
 	  else
 	    {
 	      cover_class = ALLOCNO_COVER_CLASS (subloop_allocno);
-	      cost = (ira_register_move_cost[mode][rclass][rclass] 
+	      cost = (ira_get_register_move_cost (mode, rclass, rclass)
 		      * (exit_freq + enter_freq));
 	      ira_allocate_and_set_or_copy_costs
 		(&ALLOCNO_UPDATED_HARD_REG_COSTS (subloop_allocno), cover_class,
@@ -2162,7 +2162,7 @@
 		    += (ira_memory_move_cost[mode][rclass][0] * exit_freq
 			+ ira_memory_move_cost[mode][rclass][1] * enter_freq);
 		  if (hard_regno2 != hard_regno)
-		    cost -= (ira_register_move_cost[mode][rclass][rclass]
+		    cost -= (ira_get_register_move_cost (mode, rclass, rclass)
 			     * (exit_freq + enter_freq));
 		}
 	    }
@@ -2181,7 +2181,7 @@
 		    += (ira_memory_move_cost[mode][rclass][1] * exit_freq
 			+ ira_memory_move_cost[mode][rclass][0] * enter_freq);
 		  if (hard_regno2 != hard_regno)
-		    cost -= (ira_register_move_cost[mode][rclass][rclass]
+		    cost -= (ira_get_register_move_cost (mode, rclass, rclass)
 			     * (exit_freq + enter_freq));
 		}
 	    }
@@ -2247,8 +2247,8 @@
       if (i < 0)
 	continue;
       cost = (cp->first == a
-	      ? ira_register_move_cost[mode][rclass][cover_class]
-	      : ira_register_move_cost[mode][cover_class][rclass]);
+	      ? ira_get_register_move_cost (mode, rclass, cover_class)
+	      : ira_get_register_move_cost (mode, cover_class, rclass));
       ira_allocate_and_set_or_copy_costs
 	(&ALLOCNO_UPDATED_HARD_REG_COSTS (a),
 	 cover_class, ALLOCNO_COVER_CLASS_COST (a),
diff -Naur gcc-4.4.0.orig/gcc/ira-conflicts.c gcc-4.4.0/gcc/ira-conflicts.c
--- gcc-4.4.0.orig/gcc/ira-conflicts.c	2009-03-12 07:39:55.000000000 -0700
+++ gcc-4.4.0/gcc/ira-conflicts.c	2009-04-22 13:16:13.000000000 -0700
@@ -411,9 +411,9 @@
     /* Can not be tied.  It is not in the cover class.  */
     return false;
   if (HARD_REGISTER_P (reg1))
-    cost = ira_register_move_cost[mode][cover_class][rclass] * freq;
+    cost = ira_get_register_move_cost (mode, cover_class, rclass) * freq;
   else
-    cost = ira_register_move_cost[mode][rclass][cover_class] * freq;
+    cost = ira_get_register_move_cost (mode, rclass, cover_class) * freq;
   for (;;)
     {
       ira_allocate_and_set_costs
diff -Naur gcc-4.4.0.orig/gcc/ira-costs.c gcc-4.4.0/gcc/ira-costs.c
--- gcc-4.4.0.orig/gcc/ira-costs.c	2008-12-18 05:49:47.000000000 -0800
+++ gcc-4.4.0/gcc/ira-costs.c	2009-04-22 13:16:13.000000000 -0700
@@ -138,9 +138,6 @@
   sri.extra_cost = 0;
   secondary_class = targetm.secondary_reload (to_p, x, rclass, mode, &sri);
 
-  if (ira_register_move_cost[mode] == NULL)
-    ira_init_register_move_cost (mode);
-
   if (secondary_class != NO_REGS)
     {
       if (!move_cost[mode])
@@ -294,19 +291,17 @@
 		     needs to do a copy, which is one insn.  */
 		  struct costs *pp = this_op_costs[i];
 
-		  if (ira_register_move_cost[mode] == NULL)
-		    ira_init_register_move_cost (mode);
-
 		  for (k = 0; k < cost_classes_num; k++)
 		    {
 		      rclass = cost_classes[k];
 		      pp->cost[k]
-			= ((recog_data.operand_type[i] != OP_OUT
-			    ? ira_may_move_in_cost[mode][rclass]
-			      [classes[i]] * frequency : 0)
-			   + (recog_data.operand_type[i] != OP_IN
-			      ? ira_may_move_out_cost[mode][classes[i]]
-			        [rclass] * frequency : 0));
+			= (((recog_data.operand_type[i] != OP_OUT
+			     ? ira_get_may_move_cost (mode, rclass,
+						      classes[i], true) : 0)
+			    + (recog_data.operand_type[i] != OP_IN
+			       ? ira_get_may_move_cost (mode, classes[i],
+							rclass, false) : 0))
+			   * frequency);
 		    }
 
 		  /* If the alternative actually allows memory, make
@@ -342,8 +337,9 @@
 				 : 0));
 		      else if (ira_reg_class_intersect
 			       [pref_class][classes[i]] == NO_REGS)
-			alt_cost += (ira_register_move_cost
-				     [mode][pref_class][classes[i]]);
+			alt_cost += ira_get_register_move_cost (mode,
+								pref_class,
+								classes[i]);
 		    }
 		  if (REGNO (ops[i]) != REGNO (ops[j])
 		      && ! find_reg_note (insn, REG_DEAD, op))
@@ -540,19 +536,17 @@
 		{
 		  struct costs *pp = this_op_costs[i];
 
-		  if (ira_register_move_cost[mode] == NULL)
-		    ira_init_register_move_cost (mode);
-
 		  for (k = 0; k < cost_classes_num; k++)
 		    {
 		      rclass = cost_classes[k];
 		      pp->cost[k]
-			= ((recog_data.operand_type[i] != OP_OUT
-			    ? ira_may_move_in_cost[mode][rclass]
-			      [classes[i]] * frequency : 0)
-			   + (recog_data.operand_type[i] != OP_IN
-			      ? ira_may_move_out_cost[mode][classes[i]]
-			        [rclass] * frequency : 0));
+			= (((recog_data.operand_type[i] != OP_OUT
+			     ? ira_get_may_move_cost (mode, rclass,
+						      classes[i], true) : 0)
+			    + (recog_data.operand_type[i] != OP_IN
+			       ? ira_get_may_move_cost (mode, classes[i],
+							rclass, false) : 0))
+			   * frequency);
 		    }
 
 		  /* If the alternative actually allows memory, make
@@ -587,8 +581,9 @@
 				 : 0));
 		      else if (ira_reg_class_intersect[pref_class][classes[i]]
 			       == NO_REGS)
-			alt_cost += (ira_register_move_cost
-				     [mode][pref_class][classes[i]]);
+			alt_cost += ira_get_register_move_cost (mode,
+								pref_class,
+								classes[i]);
 		    }
 		}
 	    }
@@ -901,13 +896,11 @@
 			       ALLOCNO_NUM (ira_curr_regno_allocno_map
 					    [REGNO (x)]));
 	pp->mem_cost += (ira_memory_move_cost[Pmode][rclass][1] * scale) / 2;
-	if (ira_register_move_cost[Pmode] == NULL)
-	  ira_init_register_move_cost (Pmode);
 	for (k = 0; k < cost_classes_num; k++)
 	  {
 	    i = cost_classes[k];
 	    pp->cost[k]
-	      += (ira_may_move_in_cost[Pmode][i][rclass] * scale) / 2;
+	      += (ira_get_may_move_cost (Pmode, i, rclass, true) * scale) / 2;
 	  }
       }
       break;
@@ -1425,8 +1418,9 @@
 	continue;
       mode = ALLOCNO_MODE (a);
       hard_reg_class = REGNO_REG_CLASS (hard_regno);
-      cost = (to_p ? ira_register_move_cost[mode][hard_reg_class][rclass]
-	      : ira_register_move_cost[mode][rclass][hard_reg_class]) * freq;
+      cost
+	= (to_p ? ira_get_register_move_cost (mode, hard_reg_class, rclass)
+	   : ira_get_register_move_cost (mode, rclass, hard_reg_class)) * freq;
       ira_allocate_and_set_costs (&ALLOCNO_HARD_REG_COSTS (a), rclass,
 				  ALLOCNO_COVER_CLASS_COST (a));
       ira_allocate_and_set_costs (&ALLOCNO_CONFLICT_HARD_REG_COSTS (a),
@@ -1579,9 +1573,6 @@
 void
 ira_costs (void)
 {
-  ira_allocno_t a;
-  ira_allocno_iterator ai;
-
   allocno_costs = (struct costs *) ira_allocate (max_struct_costs_size
 					       * ira_allocnos_num);
   total_costs = (struct costs *) ira_allocate (max_struct_costs_size
@@ -1594,12 +1585,6 @@
 				       * max_reg_num ());
   find_allocno_class_costs ();
   setup_allocno_cover_class_and_costs ();
-  /* Because we could process operands only as subregs, check mode of
-     the registers themselves too.  */
-  FOR_EACH_ALLOCNO (a, ai)
-    if (ira_register_move_cost[ALLOCNO_MODE (a)] == NULL
-	&& have_regs_of_mode[ALLOCNO_MODE (a)])
-      ira_init_register_move_cost (ALLOCNO_MODE (a));
   ira_free (common_classes);
   ira_free (allocno_pref_buffer);
   ira_free (total_costs);
diff -Naur gcc-4.4.0.orig/gcc/ira-emit.c gcc-4.4.0/gcc/ira-emit.c
--- gcc-4.4.0.orig/gcc/ira-emit.c	2009-02-20 07:20:38.000000000 -0800
+++ gcc-4.4.0/gcc/ira-emit.c	2009-04-22 13:16:13.000000000 -0700
@@ -812,7 +812,8 @@
 	}
       else
 	{
-	  cost = ira_register_move_cost[mode][cover_class][cover_class] * freq;
+	  cost = (ira_get_register_move_cost (mode, cover_class, cover_class)
+		  * freq);
 	  ira_shuffle_cost += cost;
 	}
       ira_overall_cost += cost;
diff -Naur gcc-4.4.0.orig/gcc/ira-int.h gcc-4.4.0/gcc/ira-int.h
--- gcc-4.4.0.orig/gcc/ira-int.h	2009-03-18 10:04:26.000000000 -0700
+++ gcc-4.4.0/gcc/ira-int.h	2009-04-22 13:16:13.000000000 -0700
@@ -730,21 +730,24 @@
 extern HARD_REG_SET ira_reg_mode_hard_regset
                     [FIRST_PSEUDO_REGISTER][NUM_MACHINE_MODES];
 
-/* Arrays analogous to macros MEMORY_MOVE_COST and
-   REGISTER_MOVE_COST.  */
+/* Arrays analogous to macros MEMORY_MOVE_COST and REGISTER_MOVE_COST.
+   Don't use ira_register_move_cost directly.  Use function of
+   ira_get_may_move_cost instead.  */
 extern short ira_memory_move_cost[MAX_MACHINE_MODE][N_REG_CLASSES][2];
 extern move_table *ira_register_move_cost[MAX_MACHINE_MODE];
 
 /* Similar to may_move_in_cost but it is calculated in IRA instead of
    regclass.  Another difference we take only available hard registers
    into account to figure out that one register class is a subset of
-   the another one.  */
+   the another one.  Don't use it directly.  Use function of
+   ira_get_may_move_cost instead.  */
 extern move_table *ira_may_move_in_cost[MAX_MACHINE_MODE];
 
 /* Similar to may_move_out_cost but it is calculated in IRA instead of
    regclass.  Another difference we take only available hard registers
    into account to figure out that one register class is a subset of
-   the another one.  */
+   the another one.  Don't use it directly.  Use function of
+   ira_get_may_move_cost instead.  */
 extern move_table *ira_may_move_out_cost[MAX_MACHINE_MODE];
 
 /* Register class subset relation: TRUE if the first class is a subset
@@ -941,6 +944,34 @@
 
 
 
+/* Return cost of moving value of MODE from register of class FROM to
+   register of class TO.  */
+static inline int
+ira_get_register_move_cost (enum machine_mode mode,
+			    enum reg_class from, enum reg_class to)
+{
+  if (ira_register_move_cost[mode] == NULL)
+    ira_init_register_move_cost (mode);
+  return ira_register_move_cost[mode][from][to];
+}
+
+/* Return cost of moving value of MODE from register of class FROM to
+   register of class TO.  Return zero if IN_P is true and FROM is
+   subset of TO or if IN_P is false and FROM is superset of TO.  */
+static inline int
+ira_get_may_move_cost (enum machine_mode mode,
+		       enum reg_class from, enum reg_class to,
+		       bool in_p)
+{
+  if (ira_register_move_cost[mode] == NULL)
+    ira_init_register_move_cost (mode);
+  return (in_p
+	  ? ira_may_move_in_cost[mode][from][to]
+	  : ira_may_move_out_cost[mode][from][to]);
+}
+
+
+
 /* The iterator for all allocnos.  */
 typedef struct {
   /* The number of the current element in IRA_ALLOCNOS.  */
diff -Naur gcc-4.4.0.orig/gcc/ira-lives.c gcc-4.4.0/gcc/ira-lives.c
--- gcc-4.4.0.orig/gcc/ira-lives.c	2009-02-20 07:20:38.000000000 -0800
+++ gcc-4.4.0/gcc/ira-lives.c	2009-04-22 13:16:13.000000000 -0700
@@ -782,10 +782,11 @@
 		  [ira_class_hard_regs[cl][0]]) >= 0
 	      && reg_class_size[cl] <= (unsigned) CLASS_MAX_NREGS (cl, mode))
 	    {
-	      /* ??? FREQ */
-	      cost = freq * (in_p
-			     ? ira_register_move_cost[mode][cover_class][cl]
-			     : ira_register_move_cost[mode][cl][cover_class]);
+	      cost
+		= (freq
+		   * (in_p
+		      ? ira_get_register_move_cost (mode, cover_class, cl)
+		      : ira_get_register_move_cost (mode, cl, cover_class)));
 	      ira_allocate_and_set_costs
 		(&ALLOCNO_CONFLICT_HARD_REG_COSTS (operand_a), cover_class, 0);
 	      ALLOCNO_CONFLICT_HARD_REG_COSTS (operand_a)
diff -Naur gcc-4.4.0.orig/gcc/po/ChangeLog gcc-4.4.0/gcc/po/ChangeLog
--- gcc-4.4.0.orig/gcc/po/ChangeLog	2009-04-21 01:44:44.000000000 -0700
+++ gcc-4.4.0/gcc/po/ChangeLog	2009-04-22 09:34:22.000000000 -0700
@@ -1,3 +1,12 @@
+2009-04-22  Joseph Myers  <joseph@codesourcery.com>
+
+	* gcc.pot: Regenerate.
+
+2009-04-22  Joseph Myers  <joseph@codesourcery.com>
+
+	* exgettext: Also look for */*/config-lang.in to find language
+	subdirectories.
+
 2009-04-21  Release Manager
 
 	* GCC 4.4.0 released.
diff -Naur gcc-4.4.0.orig/gcc/po/exgettext gcc-4.4.0/gcc/po/exgettext
--- gcc-4.4.0.orig/gcc/po/exgettext	2009-04-09 16:23:07.000000000 -0700
+++ gcc-4.4.0/gcc/po/exgettext	2009-04-22 09:30:26.000000000 -0700
@@ -83,7 +83,7 @@
 echo "scanning for keywords and %e strings..." >&2
 
 ( cd $srcdir
-  lang_subdirs=`echo */config-lang.in | sed -e 's|config-lang\.in||g'`
+  lang_subdirs=`echo */config-lang.in */*/config-lang.in | sed -e 's|config-lang\.in||g'`
   { for dir in "" config/ config/*/ $lang_subdirs
     do  for glob in '*.c' '*.h' '*.def'
         do  eval echo $dir$glob
diff -Naur gcc-4.4.0.orig/gcc/po/gcc.pot gcc-4.4.0/gcc/po/gcc.pot
--- gcc-4.4.0.orig/gcc/po/gcc.pot	2009-03-28 00:27:17.000000000 -0700
+++ gcc-4.4.0/gcc/po/gcc.pot	2009-04-22 09:34:22.000000000 -0700
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2009-03-28 07:24+0000\n"
+"POT-Creation-Date: 2009-04-22 16:32+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -286,49 +286,49 @@
 msgid "<command-line>"
 msgstr ""
 
-#: c-typeck.c:2491 c-typeck.c:4961 c-typeck.c:4964 c-typeck.c:4972
-#: c-typeck.c:5002 c-typeck.c:6388
+#: c-typeck.c:2491 c-typeck.c:4965 c-typeck.c:4968 c-typeck.c:4976
+#: c-typeck.c:5006 c-typeck.c:6392
 msgid "initializer element is not constant"
 msgstr ""
 
-#: c-typeck.c:4751
+#: c-typeck.c:4755
 msgid "array initialized from parenthesized string constant"
 msgstr ""
 
-#: c-typeck.c:4813 cp/typeck2.c:757
+#: c-typeck.c:4817 cp/typeck2.c:757
 #, gcc-internal-format
 msgid "char-array initialized from wide string"
 msgstr ""
 
-#: c-typeck.c:4821
+#: c-typeck.c:4825
 msgid "wide character array initialized from non-wide string"
 msgstr ""
 
-#: c-typeck.c:4827
+#: c-typeck.c:4831
 msgid "wide character array initialized from incompatible wide string"
 msgstr ""
 
-#: c-typeck.c:4845 cp/typeck2.c:785
+#: c-typeck.c:4849 cp/typeck2.c:785
 #, gcc-internal-format
 msgid "initializer-string for array of chars is too long"
 msgstr ""
 
-#: c-typeck.c:4851
+#: c-typeck.c:4855
 msgid "array of inappropriate type initialized from string constant"
 msgstr ""
 
 #. ??? This should not be an error when inlining calls to
 #. unprototyped functions.
-#: c-typeck.c:4918 c-typeck.c:4421 cp/typeck.c:1645
+#: c-typeck.c:4922 c-typeck.c:4425 cp/typeck.c:1645
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr ""
 
-#: c-typeck.c:4944
+#: c-typeck.c:4948
 msgid "array initialized from non-constant array expression"
 msgstr ""
 
-#: c-typeck.c:5009 c-typeck.c:6393
+#: c-typeck.c:5013 c-typeck.c:6397
 #, gcc-internal-format
 msgid "initializer element is not computable at load time"
 msgstr ""
@@ -337,108 +337,108 @@
 #. 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.
-#: c-typeck.c:5020 c-decl.c:3224 c-decl.c:3239
+#: c-typeck.c:5024 c-decl.c:3224 c-decl.c:3239
 #, gcc-internal-format
 msgid "variable-sized object may not be initialized"
 msgstr ""
 
-#: c-typeck.c:5024
+#: c-typeck.c:5028
 msgid "invalid initializer"
 msgstr ""
 
-#: c-typeck.c:5498
+#: c-typeck.c:5502
 msgid "extra brace group at end of initializer"
 msgstr ""
 
-#: c-typeck.c:5518
+#: c-typeck.c:5522
 msgid "missing braces around initializer"
 msgstr ""
 
-#: c-typeck.c:5579
+#: c-typeck.c:5583
 msgid "braces around scalar initializer"
 msgstr ""
 
-#: c-typeck.c:5636
+#: c-typeck.c:5640
 msgid "initialization of flexible array member in a nested context"
 msgstr ""
 
-#: c-typeck.c:5639
+#: c-typeck.c:5643
 msgid "initialization of a flexible array member"
 msgstr ""
 
-#: c-typeck.c:5667
+#: c-typeck.c:5671
 msgid "missing initializer"
 msgstr ""
 
-#: c-typeck.c:5689
+#: c-typeck.c:5693
 msgid "empty scalar initializer"
 msgstr ""
 
-#: c-typeck.c:5694
+#: c-typeck.c:5698
 msgid "extra elements in scalar initializer"
 msgstr ""
 
-#: c-typeck.c:5791 c-typeck.c:5851
+#: c-typeck.c:5795 c-typeck.c:5855
 msgid "array index in non-array initializer"
 msgstr ""
 
-#: c-typeck.c:5796 c-typeck.c:5904
+#: c-typeck.c:5800 c-typeck.c:5908
 msgid "field name not in record or union initializer"
 msgstr ""
 
-#: c-typeck.c:5842
+#: c-typeck.c:5846
 msgid "array index in initializer not of integer type"
 msgstr ""
 
-#: c-typeck.c:5847 c-typeck.c:5849
+#: c-typeck.c:5851 c-typeck.c:5853
 msgid "nonconstant array index in initializer"
 msgstr ""
 
-#: c-typeck.c:5853 c-typeck.c:5856
+#: c-typeck.c:5857 c-typeck.c:5860
 msgid "array index in initializer exceeds array bounds"
 msgstr ""
 
-#: c-typeck.c:5867
+#: c-typeck.c:5871
 msgid "empty index range in initializer"
 msgstr ""
 
-#: c-typeck.c:5876
+#: c-typeck.c:5880
 msgid "array index range in initializer exceeds array bounds"
 msgstr ""
 
-#: c-typeck.c:5958 c-typeck.c:5984 c-typeck.c:6460
+#: c-typeck.c:5962 c-typeck.c:5988 c-typeck.c:6464
 msgid "initialized field with side-effects overwritten"
 msgstr ""
 
-#: c-typeck.c:5960 c-typeck.c:5986 c-typeck.c:6462
+#: c-typeck.c:5964 c-typeck.c:5990 c-typeck.c:6466
 msgid "initialized field overwritten"
 msgstr ""
 
-#: c-typeck.c:6676
+#: c-typeck.c:6680
 msgid "excess elements in char array initializer"
 msgstr ""
 
-#: c-typeck.c:6683 c-typeck.c:6730
+#: c-typeck.c:6687 c-typeck.c:6734
 msgid "excess elements in struct initializer"
 msgstr ""
 
-#: c-typeck.c:6745
+#: c-typeck.c:6749
 msgid "non-static initialization of a flexible array member"
 msgstr ""
 
-#: c-typeck.c:6814
+#: c-typeck.c:6818
 msgid "excess elements in union initializer"
 msgstr ""
 
-#: c-typeck.c:6902
+#: c-typeck.c:6906
 msgid "excess elements in array initializer"
 msgstr ""
 
-#: c-typeck.c:6933
+#: c-typeck.c:6937
 msgid "excess elements in vector initializer"
 msgstr ""
 
-#: c-typeck.c:6958
+#: c-typeck.c:6962
 msgid "excess elements in scalar initializer"
 msgstr ""
 
@@ -708,13 +708,13 @@
 #. handle them.
 #. We can't handle floating point constants;
 #. PRINT_OPERAND must handle them.
-#: final.c:3493 vmsdbgout.c:487 config/i386/i386.c:10138
+#: final.c:3493 vmsdbgout.c:487 config/i386/i386.c:10175
 #: config/pdp11/pdp11.c:1710
 #, c-format
 msgid "floating constant misused"
 msgstr ""
 
-#: final.c:3555 vmsdbgout.c:544 config/i386/i386.c:10225
+#: final.c:3555 vmsdbgout.c:544 config/i386/i386.c:10262
 #: config/pdp11/pdp11.c:1757
 #, c-format
 msgid "invalid expression as operand"
@@ -1811,82 +1811,82 @@
 msgid "This switch lacks documentation"
 msgstr ""
 
-#: opts.c:1306
+#: opts.c:1268
 msgid "[enabled]"
 msgstr ""
 
-#: opts.c:1306
+#: opts.c:1268
 msgid "[disabled]"
 msgstr ""
 
-#: opts.c:1321
+#: opts.c:1283
 #, c-format
 msgid " No options with the desired characteristics were found\n"
 msgstr ""
 
-#: opts.c:1330
+#: opts.c:1292
 #, c-format
 msgid ""
 " None found.  Use --help=%s to show *all* the options supported by the %s "
 "front-end\n"
 msgstr ""
 
-#: opts.c:1336
+#: opts.c:1298
 #, c-format
 msgid ""
 " All options with the desired characteristics have already been displayed\n"
 msgstr ""
 
-#: opts.c:1390
+#: opts.c:1352
 msgid "The following options are target specific"
 msgstr ""
 
-#: opts.c:1393
+#: opts.c:1355
 msgid "The following options control compiler warning messages"
 msgstr ""
 
-#: opts.c:1396
+#: opts.c:1358
 msgid "The following options control optimizations"
 msgstr ""
 
-#: opts.c:1399 opts.c:1438
+#: opts.c:1361 opts.c:1400
 msgid "The following options are language-independent"
 msgstr ""
 
-#: opts.c:1402
+#: opts.c:1364
 msgid "The --param option recognizes the following as parameters"
 msgstr ""
 
-#: opts.c:1408
+#: opts.c:1370
 msgid "The following options are specific to just the language "
 msgstr ""
 
-#: opts.c:1410
+#: opts.c:1372
 msgid "The following options are supported by the language "
 msgstr ""
 
-#: opts.c:1421
+#: opts.c:1383
 msgid "The following options are not documented"
 msgstr ""
 
-#: opts.c:1423
+#: opts.c:1385
 msgid "The following options take separate arguments"
 msgstr ""
 
-#: opts.c:1425
+#: opts.c:1387
 msgid "The following options take joined arguments"
 msgstr ""
 
-#: opts.c:1436
+#: opts.c:1398
 msgid "The following options are language-related"
 msgstr ""
 
-#: opts.c:1596
+#: opts.c:1558
 #, c-format
 msgid "warning: --help argument %.*s is ambiguous, please be more specific\n"
 msgstr ""
 
-#: opts.c:1604
+#: opts.c:1566
 #, c-format
 msgid "warning: unrecognized argument to --help= option: %.*s\n"
 msgstr ""
@@ -3078,47 +3078,47 @@
 msgid "missing operand"
 msgstr ""
 
-#: config/avr/avr.c:1196
+#: config/avr/avr.c:1209
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr ""
 
-#: config/avr/avr.c:1308
+#: config/avr/avr.c:1321
 msgid "bad address, not (reg+disp):"
 msgstr ""
 
-#: config/avr/avr.c:1315
+#: config/avr/avr.c:1328
 msgid "bad address, not post_inc or pre_dec:"
 msgstr ""
 
-#: config/avr/avr.c:1326
+#: config/avr/avr.c:1339
 msgid "internal compiler error.  Bad address:"
 msgstr ""
 
-#: config/avr/avr.c:1339
+#: config/avr/avr.c:1352
 msgid "internal compiler error.  Unknown mode:"
 msgstr ""
 
-#: config/avr/avr.c:1934 config/avr/avr.c:2622
+#: config/avr/avr.c:1947 config/avr/avr.c:2635
 msgid "invalid insn:"
 msgstr ""
 
-#: config/avr/avr.c:1973 config/avr/avr.c:2059 config/avr/avr.c:2108
-#: config/avr/avr.c:2136 config/avr/avr.c:2231 config/avr/avr.c:2400
-#: config/avr/avr.c:2661 config/avr/avr.c:2773
+#: config/avr/avr.c:1986 config/avr/avr.c:2072 config/avr/avr.c:2121
+#: config/avr/avr.c:2149 config/avr/avr.c:2244 config/avr/avr.c:2413
+#: config/avr/avr.c:2674 config/avr/avr.c:2786
 msgid "incorrect insn:"
 msgstr ""
 
-#: config/avr/avr.c:2155 config/avr/avr.c:2316 config/avr/avr.c:2471
-#: config/avr/avr.c:2839
+#: config/avr/avr.c:2168 config/avr/avr.c:2329 config/avr/avr.c:2484
+#: config/avr/avr.c:2852
 msgid "unknown move insn:"
 msgstr ""
 
-#: config/avr/avr.c:3069
+#: config/avr/avr.c:3082
 msgid "bad shift insn:"
 msgstr ""
 
-#: config/avr/avr.c:3185 config/avr/avr.c:3605 config/avr/avr.c:3963
+#: config/avr/avr.c:3198 config/avr/avr.c:3618 config/avr/avr.c:3976
 msgid "internal compiler error.  Incorrect shift:"
 msgstr ""
 
@@ -3132,7 +3132,7 @@
 msgid "invalid const_double operand"
 msgstr ""
 
-#: config/cris/cris.c:504 c-typeck.c:4700 c-typeck.c:4716 c-typeck.c:4733
+#: config/cris/cris.c:504 c-typeck.c:4704 c-typeck.c:4720 c-typeck.c:4737
 #: final.c:3000 final.c:3002 gcc.c:4828 loop-iv.c:2825 loop-iv.c:2834
 #: rtl-error.c:105 toplev.c:601 tree-ssa-loop-niter.c:1882 cp/typeck.c:4720
 #: java/expr.c:411
@@ -3369,51 +3369,51 @@
 msgid " (frv)"
 msgstr ""
 
-#: config/i386/i386.c:10219
+#: config/i386/i386.c:10256
 #, c-format
 msgid "invalid UNSPEC as operand"
 msgstr ""
 
-#: config/i386/i386.c:10944 config/i386/i386.c:10983 config/i386/i386.c:11157
+#: config/i386/i386.c:10981 config/i386/i386.c:11020 config/i386/i386.c:11194
 #, c-format
 msgid "operand is not a condition code, invalid operand code 'D'"
 msgstr ""
 
-#: config/i386/i386.c:11008
+#: config/i386/i386.c:11045
 #, c-format
 msgid ""
 "operand is neither a constant nor a condition code, invalid operand code 'C'"
 msgstr ""
 
-#: config/i386/i386.c:11018
+#: config/i386/i386.c:11055
 #, c-format
 msgid ""
 "operand is neither a constant nor a condition code, invalid operand code 'F'"
 msgstr ""
 
-#: config/i386/i386.c:11036
+#: config/i386/i386.c:11073
 #, c-format
 msgid ""
 "operand is neither a constant nor a condition code, invalid operand code 'c'"
 msgstr ""
 
-#: config/i386/i386.c:11046
+#: config/i386/i386.c:11083
 #, c-format
 msgid ""
 "operand is neither a constant nor a condition code, invalid operand code 'f'"
 msgstr ""
 
-#: config/i386/i386.c:11171
+#: config/i386/i386.c:11208
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr ""
 
-#: config/i386/i386.c:11220
+#: config/i386/i386.c:11257
 #, c-format
 msgid "invalid constraints for operand"
 msgstr ""
 
-#: config/i386/i386.c:18908
+#: config/i386/i386.c:18945
 msgid "unknown insn mode"
 msgstr ""
 
@@ -3439,15 +3439,15 @@
 msgid "ia64_print_operand: unknown code"
 msgstr ""
 
-#: config/ia64/ia64.c:10473
+#: config/ia64/ia64.c:10485
 msgid "invalid conversion from %<__fpreg%>"
 msgstr ""
 
-#: config/ia64/ia64.c:10476
+#: config/ia64/ia64.c:10488
 msgid "invalid conversion to %<__fpreg%>"
 msgstr ""
 
-#: config/ia64/ia64.c:10489 config/ia64/ia64.c:10500
+#: config/ia64/ia64.c:10501 config/ia64/ia64.c:10512
 msgid "invalid operation on %<__fpreg%>"
 msgstr ""
 
@@ -3860,11 +3860,11 @@
 msgid "candidates are:"
 msgstr ""
 
-#: cp/call.c:6824
+#: cp/call.c:6885
 msgid "candidate 1:"
 msgstr ""
 
-#: cp/call.c:6825
+#: cp/call.c:6886
 msgid "candidate 2:"
 msgstr ""
 
@@ -5935,33 +5935,33 @@
 "Extension: BOZ literal at %L used to initialize non-integer variable '%s'"
 msgstr ""
 
-#: fortran/expr.c:2956 fortran/resolve.c:6536
+#: fortran/expr.c:2956 fortran/resolve.c:6539
 #, no-c-format
 msgid ""
 "Extension: BOZ literal at %L outside a DATA statement and outside INT/REAL/"
 "DBLE/CMPLX"
 msgstr ""
 
-#: fortran/expr.c:2966 fortran/resolve.c:6546
+#: fortran/expr.c:2966 fortran/resolve.c:6549
 #, no-c-format
 msgid "BOZ literal at %L is bitwise transferred non-integer symbol '%s'"
 msgstr ""
 
-#: fortran/expr.c:2974 fortran/resolve.c:6555
+#: fortran/expr.c:2974 fortran/resolve.c:6558
 #, no-c-format
 msgid ""
 "Arithmetic underflow of bit-wise transferred BOZ at %L. This check can be "
 "disabled with the option -fno-range-check"
 msgstr ""
 
-#: fortran/expr.c:2978 fortran/resolve.c:6559
+#: fortran/expr.c:2978 fortran/resolve.c:6562
 #, no-c-format
 msgid ""
 "Arithmetic overflow of bit-wise transferred BOZ at %L. This check can be "
 "disabled with the option -fno-range-check"
 msgstr ""
 
-#: fortran/expr.c:2982 fortran/resolve.c:6563
+#: fortran/expr.c:2982 fortran/resolve.c:6566
 #, no-c-format
 msgid ""
 "Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled "
@@ -6192,12 +6192,12 @@
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.c:662 fortran/resolve.c:10327
+#: fortran/interface.c:662 fortran/resolve.c:10330
 #, no-c-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.c:666 fortran/resolve.c:10339
+#: fortran/interface.c:666 fortran/resolve.c:10342
 #, no-c-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
@@ -7106,7 +7106,7 @@
 msgid "Block label is not appropriate for IF statement at %C"
 msgstr ""
 
-#: fortran/match.c:1570 fortran/primary.c:2881
+#: fortran/match.c:1570 fortran/primary.c:2888
 #, no-c-format
 msgid "Cannot assign to a named constant at %C"
 msgstr ""
@@ -7713,7 +7713,7 @@
 msgid "Syntax error in !$OMP THREADPRIVATE list at %C"
 msgstr ""
 
-#: fortran/openmp.c:759 fortran/resolve.c:6445 fortran/resolve.c:6798
+#: fortran/openmp.c:759 fortran/resolve.c:6448 fortran/resolve.c:6801
 #, no-c-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr ""
@@ -8226,166 +8226,166 @@
 msgid "Fortran 2003:  CONTAINS block in derived type definition at %C"
 msgstr ""
 
-#: fortran/parse.c:2046
+#: fortran/parse.c:2037
 #, no-c-format
 msgid "ENUM declaration at %C has no ENUMERATORS"
 msgstr ""
 
-#: fortran/parse.c:2140
+#: fortran/parse.c:2131
 #, no-c-format
 msgid "Unexpected %s statement in INTERFACE block at %C"
 msgstr ""
 
-#: fortran/parse.c:2166
+#: fortran/parse.c:2157
 #, no-c-format
 msgid "SUBROUTINE at %C does not belong in a generic function interface"
 msgstr ""
 
-#: fortran/parse.c:2170
+#: fortran/parse.c:2161
 #, no-c-format
 msgid "FUNCTION at %C does not belong in a generic subroutine interface"
 msgstr ""
 
-#: fortran/parse.c:2180
+#: fortran/parse.c:2171
 #, no-c-format
 msgid ""
 "Name '%s' of ABSTRACT INTERFACE at %C cannot be the same as an intrinsic type"
 msgstr ""
 
-#: fortran/parse.c:2211
+#: fortran/parse.c:2202
 #, no-c-format
 msgid "Unexpected %s statement at %C in INTERFACE body"
 msgstr ""
 
-#: fortran/parse.c:2225
+#: fortran/parse.c:2216
 #, no-c-format
 msgid ""
 "INTERFACE procedure '%s' at %L has the same name as the enclosing procedure"
 msgstr ""
 
-#: fortran/parse.c:2411
+#: fortran/parse.c:2402
 #, no-c-format
 msgid "%s statement must appear in a MODULE"
 msgstr ""
 
-#: fortran/parse.c:2418
+#: fortran/parse.c:2409
 #, no-c-format
 msgid "%s statement at %C follows another accessibility specification"
 msgstr ""
 
-#: fortran/parse.c:2468
+#: fortran/parse.c:2459
 #, no-c-format
 msgid "Bad kind expression for function '%s' at %L"
 msgstr ""
 
-#: fortran/parse.c:2472
+#: fortran/parse.c:2463
 #, no-c-format
 msgid "The type for function '%s' at %L is not accessible"
 msgstr ""
 
-#: fortran/parse.c:2530
+#: fortran/parse.c:2521
 #, no-c-format
 msgid "ELSEWHERE statement at %C follows previous unmasked ELSEWHERE"
 msgstr ""
 
-#: fortran/parse.c:2551
+#: fortran/parse.c:2542
 #, no-c-format
 msgid "Unexpected %s statement in WHERE block at %C"
 msgstr ""
 
-#: fortran/parse.c:2610
+#: fortran/parse.c:2601
 #, no-c-format
 msgid "Unexpected %s statement in FORALL block at %C"
 msgstr ""
 
-#: fortran/parse.c:2661
+#: fortran/parse.c:2652
 #, no-c-format
 msgid "ELSE IF statement at %C cannot follow ELSE statement at %L"
 msgstr ""
 
-#: fortran/parse.c:2679
+#: fortran/parse.c:2670
 #, no-c-format
 msgid "Duplicate ELSE statements at %L and %C"
 msgstr ""
 
-#: fortran/parse.c:2740
+#: fortran/parse.c:2731
 #, no-c-format
 msgid "Expected a CASE or END SELECT statement following SELECT CASE at %C"
 msgstr ""
 
-#: fortran/parse.c:2798
+#: fortran/parse.c:2789
 #, no-c-format
 msgid "Variable '%s' at %C cannot be redefined inside loop beginning at %L"
 msgstr ""
 
-#: fortran/parse.c:2832
+#: fortran/parse.c:2823
 #, no-c-format
 msgid "End of nonblock DO statement at %C is within another block"
 msgstr ""
 
-#: fortran/parse.c:2841
+#: fortran/parse.c:2832
 #, no-c-format
 msgid "End of nonblock DO statement at %C is interwoven with another DO loop"
 msgstr ""
 
-#: fortran/parse.c:2890
+#: fortran/parse.c:2881
 #, no-c-format
 msgid "Statement label in ENDDO at %C doesn't match DO label"
 msgstr ""
 
-#: fortran/parse.c:2906
+#: fortran/parse.c:2897
 #, no-c-format
 msgid "named block DO at %L requires matching ENDDO name"
 msgstr ""
 
-#: fortran/parse.c:3165
+#: fortran/parse.c:3156
 #, no-c-format
 msgid "Name after !$omp critical and !$omp end critical does not match at %C"
 msgstr ""
 
-#: fortran/parse.c:3221
+#: fortran/parse.c:3212
 #, no-c-format
 msgid "%s statement at %C cannot terminate a non-block DO loop"
 msgstr ""
 
-#: fortran/parse.c:3408
+#: fortran/parse.c:3399
 #, no-c-format
 msgid "Contained procedure '%s' at %C is already ambiguous"
 msgstr ""
 
-#: fortran/parse.c:3458
+#: fortran/parse.c:3449
 #, no-c-format
 msgid "Unexpected %s statement in CONTAINS section at %C"
 msgstr ""
 
-#: fortran/parse.c:3482
+#: fortran/parse.c:3473
 #, no-c-format
 msgid ""
 "Fortran 2008: CONTAINS statement without FUNCTION or SUBROUTINE statement at "
 "%C"
 msgstr ""
 
-#: fortran/parse.c:3553
+#: fortran/parse.c:3544
 #, no-c-format
 msgid "CONTAINS statement at %C is already in a contained program unit"
 msgstr ""
 
-#: fortran/parse.c:3602
+#: fortran/parse.c:3593
 #, no-c-format
 msgid "Global name '%s' at %L is already being used as a %s at %L"
 msgstr ""
 
-#: fortran/parse.c:3623
+#: fortran/parse.c:3614
 #, no-c-format
 msgid "Blank BLOCK DATA at %C conflicts with prior BLOCK DATA at %L"
 msgstr ""
 
-#: fortran/parse.c:3649
+#: fortran/parse.c:3640
 #, no-c-format
 msgid "Unexpected %s statement in BLOCK DATA at %C"
 msgstr ""
 
-#: fortran/parse.c:3692
+#: fortran/parse.c:3683
 #, no-c-format
 msgid "Unexpected %s statement in MODULE at %C"
 msgstr ""
@@ -8393,7 +8393,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.
-#: fortran/parse.c:3875
+#: fortran/parse.c:3866
 #, no-c-format
 msgid "Two main PROGRAMs at %L and %C"
 msgstr ""
@@ -8546,138 +8546,138 @@
 msgid "Syntax error in COMPLEX constant at %C"
 msgstr ""
 
-#: fortran/primary.c:1476
+#: fortran/primary.c:1483
 #, no-c-format
 msgid "Keyword '%s' at %C has already appeared in the current argument list"
 msgstr ""
 
-#: fortran/primary.c:1540
+#: fortran/primary.c:1547
 #, no-c-format
 msgid "Extension: argument list function at %C"
 msgstr ""
 
-#: fortran/primary.c:1607
+#: fortran/primary.c:1614
 #, no-c-format
 msgid "Expected alternate return label at %C"
 msgstr ""
 
-#: fortran/primary.c:1625
+#: fortran/primary.c:1632
 #, no-c-format
 msgid "Missing keyword name in actual argument list at %C"
 msgstr ""
 
-#: fortran/primary.c:1670
+#: fortran/primary.c:1677
 #, no-c-format
 msgid "Syntax error in argument list at %C"
 msgstr ""
 
-#: fortran/primary.c:1765
+#: fortran/primary.c:1772
 #, no-c-format
 msgid "Expected structure component name at %C"
 msgstr ""
 
-#: fortran/primary.c:1802
+#: fortran/primary.c:1809
 #, no-c-format
 msgid "Expected argument list at %C"
 msgstr ""
 
-#: fortran/primary.c:2096
+#: fortran/primary.c:2103
 #, no-c-format
 msgid ""
 "Fortran 2003: Structure constructor with missing optional arguments at %C"
 msgstr ""
 
-#: fortran/primary.c:2104
+#: fortran/primary.c:2111
 #, no-c-format
 msgid ""
 "No initializer for component '%s' given in the structure constructor at %C!"
 msgstr ""
 
-#: fortran/primary.c:2160
+#: fortran/primary.c:2167
 #, no-c-format
 msgid "Can't construct ABSTRACT type '%s' at %C"
 msgstr ""
 
-#: fortran/primary.c:2188
+#: fortran/primary.c:2195
 #, no-c-format
 msgid "Fortran 2003: Structure constructor with named arguments at %C"
 msgstr ""
 
-#: fortran/primary.c:2203
+#: fortran/primary.c:2210
 #, no-c-format
 msgid "Component initializer without name after component named %s at %C!"
 msgstr ""
 
-#: fortran/primary.c:2206
+#: fortran/primary.c:2213
 #, no-c-format
 msgid "Too many components in structure constructor at %C!"
 msgstr ""
 
-#: fortran/primary.c:2239
+#: fortran/primary.c:2246
 #, no-c-format
 msgid "Component '%s' is initialized twice in the structure constructor at %C!"
 msgstr ""
 
-#: fortran/primary.c:2295
+#: fortran/primary.c:2302
 #, no-c-format
 msgid ""
 "component '%s' at %L has already been set by a parent derived type "
 "constructor"
 msgstr ""
 
-#: fortran/primary.c:2318
+#: fortran/primary.c:2325
 #, no-c-format
 msgid "Syntax error in structure constructor at %C"
 msgstr ""
 
-#: fortran/primary.c:2408
+#: fortran/primary.c:2415
 #, no-c-format
 msgid ""
 "'%s' at %C is the name of a recursive function and so refers to the result "
 "variable. Use an explicit RESULT variable for direct recursion (12.5.2.1)"
 msgstr ""
 
-#: fortran/primary.c:2529
+#: fortran/primary.c:2536
 #, no-c-format
 msgid "Unexpected use of subroutine name '%s' at %C"
 msgstr ""
 
-#: fortran/primary.c:2560
+#: fortran/primary.c:2567
 #, no-c-format
 msgid "Statement function '%s' requires argument list at %C"
 msgstr ""
 
-#: fortran/primary.c:2563
+#: fortran/primary.c:2570
 #, no-c-format
 msgid "Function '%s' requires an argument list at %C"
 msgstr ""
 
-#: fortran/primary.c:2608
+#: fortran/primary.c:2615
 #, no-c-format
 msgid "Missing argument to '%s' at %C"
 msgstr ""
 
-#: fortran/primary.c:2749
+#: fortran/primary.c:2756
 #, no-c-format
 msgid "Missing argument list in function '%s' at %C"
 msgstr ""
 
-#: fortran/primary.c:2777
+#: fortran/primary.c:2784
 #, no-c-format
 msgid "Symbol at %C is not appropriate for an expression"
 msgstr ""
 
-#: fortran/primary.c:2845
+#: fortran/primary.c:2852
 #, no-c-format
 msgid "Assigning to PROTECTED variable at %C"
 msgstr ""
 
-#: fortran/primary.c:2879
+#: fortran/primary.c:2886
 #, no-c-format
 msgid "Named constant at %C in an EQUIVALENCE"
 msgstr ""
 
-#: fortran/primary.c:2914
+#: fortran/primary.c:2921
 #, no-c-format
 msgid "'%s' at %C is not a variable"
 msgstr ""
@@ -8713,7 +8713,7 @@
 msgid "Dummy procedure at %L not allowed in ELEMENTAL procedure"
 msgstr ""
 
-#: fortran/resolve.c:188 fortran/resolve.c:1277
+#: fortran/resolve.c:188 fortran/resolve.c:1280
 #, no-c-format
 msgid ""
 "Unable to find a specific INTRINSIC procedure for the reference '%s' at %L"
@@ -8850,136 +8850,136 @@
 "Derived type variable '%s' in COMMON at %L may not have default initializer"
 msgstr ""
 
-#: fortran/resolve.c:745
+#: fortran/resolve.c:748
 #, no-c-format
 msgid "COMMON block '%s' at %L is used as PARAMETER at %L"
 msgstr ""
 
-#: fortran/resolve.c:749
+#: fortran/resolve.c:752
 #, no-c-format
 msgid "COMMON block '%s' at %L is also an intrinsic procedure"
 msgstr ""
 
-#: fortran/resolve.c:753
+#: fortran/resolve.c:756
 #, no-c-format
 msgid "Fortran 2003: COMMON block '%s' at %L that is also a function result"
 msgstr ""
 
-#: fortran/resolve.c:758
+#: fortran/resolve.c:761
 #, no-c-format
 msgid "Fortran 2003: COMMON block '%s' at %L that is also a global procedure"
 msgstr ""
 
-#: fortran/resolve.c:820
+#: fortran/resolve.c:823
 #, no-c-format
 msgid "Components of structure constructor '%s' at %L are PRIVATE"
 msgstr ""
 
-#: fortran/resolve.c:842
+#: fortran/resolve.c:845
 #, no-c-format
 msgid ""
 "The rank of the element in the derived type constructor at %L does not match "
 "that of the component (%d/%d)"
 msgstr ""
 
-#: fortran/resolve.c:855
+#: fortran/resolve.c:858
 #, no-c-format
 msgid ""
 "The element in the derived type constructor at %L, for pointer component '%"
 "s', is %s but should be %s"
 msgstr ""
 
-#: fortran/resolve.c:868
+#: fortran/resolve.c:871
 #, no-c-format
 msgid ""
 "The NULL in the derived type constructor at %L is being applied to component "
 "'%s', which is neither a POINTER nor ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.c:882
+#: fortran/resolve.c:885
 #, no-c-format
 msgid ""
 "The element in the derived type constructor at %L, for pointer component '%"
 "s' should be a POINTER or a TARGET"
 msgstr ""
 
-#: fortran/resolve.c:1003
+#: fortran/resolve.c:1006
 #, no-c-format
 msgid ""
 "The upper bound in the last dimension must appear in the reference to the "
 "assumed size array '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:1065
+#: fortran/resolve.c:1068
 #, no-c-format
 msgid "'%s' at %L is ambiguous"
 msgstr ""
 
-#: fortran/resolve.c:1069
+#: fortran/resolve.c:1072
 #, no-c-format
 msgid "GENERIC procedure '%s' is not allowed as an actual argument at %L"
 msgstr ""
 
-#: fortran/resolve.c:1148
+#: fortran/resolve.c:1151
 #, no-c-format
 msgid ""
 "Non-RECURSIVE procedure '%s' at %L is possibly calling itself recursively.  "
 "Declare it RECURSIVE or use -frecursive"
 msgstr ""
 
-#: fortran/resolve.c:1181 fortran/resolve.c:6008 fortran/resolve.c:6763
+#: fortran/resolve.c:1184 fortran/resolve.c:6011 fortran/resolve.c:6766
 #, no-c-format
 msgid "Label %d referenced at %L is never defined"
 msgstr ""
 
-#: fortran/resolve.c:1226
+#: fortran/resolve.c:1229
 #, no-c-format
 msgid "Statement function '%s' at %L is not allowed as an actual argument"
 msgstr ""
 
-#: fortran/resolve.c:1234
+#: fortran/resolve.c:1237
 #, no-c-format
 msgid "Intrinsic '%s' at %L is not allowed as an actual argument"
 msgstr ""
 
-#: fortran/resolve.c:1241
+#: fortran/resolve.c:1244
 #, no-c-format
 msgid "Internal procedure '%s' is not allowed as an actual argument at %L"
 msgstr ""
 
-#: fortran/resolve.c:1247
+#: fortran/resolve.c:1250
 #, no-c-format
 msgid ""
 "ELEMENTAL non-INTRINSIC procedure '%s' is not allowed as an actual argument "
 "at %L"
 msgstr ""
 
-#: fortran/resolve.c:1299
+#: fortran/resolve.c:1302
 #, no-c-format
 msgid "Symbol '%s' at %L is ambiguous"
 msgstr ""
 
-#: fortran/resolve.c:1350
+#: fortran/resolve.c:1353
 #, no-c-format
 msgid "By-value argument at %L is not of numeric type"
 msgstr ""
 
-#: fortran/resolve.c:1357
+#: fortran/resolve.c:1360
 #, no-c-format
 msgid "By-value argument at %L cannot be an array or an array section"
 msgstr ""
 
-#: fortran/resolve.c:1371
+#: fortran/resolve.c:1374
 #, no-c-format
 msgid "By-value argument at %L is not allowed in this context"
 msgstr ""
 
-#: fortran/resolve.c:1383
+#: fortran/resolve.c:1386
 #, no-c-format
 msgid "Passing internal procedure at %L by location not allowed"
 msgstr ""
 
-#: fortran/resolve.c:1508
+#: fortran/resolve.c:1511
 #, no-c-format
 msgid ""
 "'%s' at %L is an array and OPTIONAL; IF IT IS MISSING, it cannot be the "
@@ -8987,572 +8987,572 @@
 "argument with the same rank (12.4.1.5)"
 msgstr ""
 
-#: fortran/resolve.c:1530
+#: fortran/resolve.c:1533
 msgid "elemental procedure"
 msgstr ""
 
-#: fortran/resolve.c:1547
+#: fortran/resolve.c:1550
 #, no-c-format
 msgid ""
 "Actual argument at %L for INTENT(%s) dummy '%s' of ELEMENTAL subroutine '%s' "
 "is a scalar, but another actual argument is an array"
 msgstr ""
 
-#: fortran/resolve.c:1684
+#: fortran/resolve.c:1687
 #, no-c-format
 msgid "There is no specific function for the generic '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:1693
+#: fortran/resolve.c:1696
 #, no-c-format
 msgid ""
 "Generic function '%s' at %L is not consistent with a specific intrinsic "
 "interface"
 msgstr ""
 
-#: fortran/resolve.c:1748
+#: fortran/resolve.c:1751
 #, no-c-format
 msgid ""
 "Function '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
 msgstr ""
 
-#: fortran/resolve.c:1794
+#: fortran/resolve.c:1797
 #, no-c-format
 msgid "Unable to resolve the specific function '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:1850 fortran/resolve.c:10258
+#: fortran/resolve.c:1853 fortran/resolve.c:10261
 #, no-c-format
 msgid "Function '%s' at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.c:2059
+#: fortran/resolve.c:2062
 #, no-c-format
 msgid "Argument to '%s' at %L is not a variable"
 msgstr ""
 
-#: fortran/resolve.c:2107
+#: fortran/resolve.c:2110
 #, no-c-format
 msgid "More actual than formal arguments in '%s' call at %L"
 msgstr ""
 
-#: fortran/resolve.c:2116
+#: fortran/resolve.c:2119
 #, no-c-format
 msgid ""
 "Parameter '%s' to '%s' at %L must be either a TARGET or an associated pointer"
 msgstr ""
 
-#: fortran/resolve.c:2139
+#: fortran/resolve.c:2142
 #, no-c-format
 msgid ""
 "Allocatable variable '%s' used as a parameter to '%s' at %L must not be an "
 "array of zero size"
 msgstr ""
 
-#: fortran/resolve.c:2156
+#: fortran/resolve.c:2159
 #, no-c-format
 msgid ""
 "Assumed-shape array '%s' at %L cannot be an argument to the procedure '%s' "
 "because it is not C interoperable"
 msgstr ""
 
-#: fortran/resolve.c:2166
+#: fortran/resolve.c:2169
 #, no-c-format
 msgid ""
 "Deferred-shape array '%s' at %L cannot be an argument to the procedure '%s' "
 "because it is not C interoperable"
 msgstr ""
 
-#: fortran/resolve.c:2189 fortran/resolve.c:2226
+#: fortran/resolve.c:2192 fortran/resolve.c:2229
 #, no-c-format
 msgid "CHARACTER argument '%s' to '%s' at %L must have a length of 1"
 msgstr ""
 
 #. Case 1c, section 15.1.2.5, J3/04-007: an associated
 #. scalar pointer.
-#: fortran/resolve.c:2202
+#: fortran/resolve.c:2205
 #, no-c-format
 msgid "Argument '%s' to '%s' at %L must be an associated scalar POINTER"
 msgstr ""
 
-#: fortran/resolve.c:2218
+#: fortran/resolve.c:2221
 #, no-c-format
 msgid "Parameter '%s' to '%s' at %L must be a scalar"
 msgstr ""
 
 #. TODO: Update this error message to allow for procedure
 #. pointers once they are implemented.
-#: fortran/resolve.c:2240
+#: fortran/resolve.c:2243
 #, no-c-format
 msgid "Parameter '%s' to '%s' at %L must be a procedure"
 msgstr ""
 
-#: fortran/resolve.c:2248
+#: fortran/resolve.c:2251
 #, no-c-format
 msgid "Parameter '%s' to '%s' at %L must be BIND(C)"
 msgstr ""
 
-#: fortran/resolve.c:2294
+#: fortran/resolve.c:2297
 #, no-c-format
 msgid "Intrinsic subroutine '%s' used as a function at %L"
 msgstr ""
 
-#: fortran/resolve.c:2301
+#: fortran/resolve.c:2304
 #, no-c-format
 msgid "'%s' at %L is not a function"
 msgstr ""
 
-#: fortran/resolve.c:2307
+#: fortran/resolve.c:2310
 #, no-c-format
 msgid "ABSTRACT INTERFACE '%s' must not be referenced at %L"
 msgstr ""
 
 #. Internal procedures are taken care of in resolve_contained_fntype.
-#: fortran/resolve.c:2352
+#: fortran/resolve.c:2355
 #, no-c-format
 msgid ""
 "Function '%s' is declared CHARACTER(*) and cannot be used at %L since it is "
 "not a dummy argument"
 msgstr ""
 
-#: fortran/resolve.c:2405
+#: fortran/resolve.c:2408
 #, no-c-format
 msgid ""
 "User defined non-ELEMENTAL function '%s' at %L not allowed in WORKSHARE "
 "construct"
 msgstr ""
 
-#: fortran/resolve.c:2455
+#: fortran/resolve.c:2458
 #, no-c-format
 msgid "reference to non-PURE function '%s' at %L inside a FORALL %s"
 msgstr ""
 
-#: fortran/resolve.c:2462
+#: fortran/resolve.c:2465
 #, no-c-format
 msgid ""
 "Function reference to '%s' at %L is to a non-PURE procedure within a PURE "
 "procedure"
 msgstr ""
 
-#: fortran/resolve.c:2478
+#: fortran/resolve.c:2481
 #, no-c-format
 msgid ""
 "ENTRY '%s' at %L cannot be called recursively, as function '%s' is not "
 "RECURSIVE"
 msgstr ""
 
-#: fortran/resolve.c:2482
+#: fortran/resolve.c:2485
 #, no-c-format
 msgid ""
 "Function '%s' at %L cannot be called recursively, as it is not RECURSIVE"
 msgstr ""
 
-#: fortran/resolve.c:2529
+#: fortran/resolve.c:2532
 #, no-c-format
 msgid "Subroutine call to '%s' in FORALL block at %L is not PURE"
 msgstr ""
 
-#: fortran/resolve.c:2532
+#: fortran/resolve.c:2535
 #, no-c-format
 msgid "Subroutine call to '%s' at %L is not PURE"
 msgstr ""
 
-#: fortran/resolve.c:2595
+#: fortran/resolve.c:2598
 #, no-c-format
 msgid "There is no specific subroutine for the generic '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:2604
+#: fortran/resolve.c:2607
 #, no-c-format
 msgid ""
 "Generic subroutine '%s' at %L is not consistent with an intrinsic subroutine "
 "interface"
 msgstr ""
 
-#: fortran/resolve.c:2712
+#: fortran/resolve.c:2715
 #, no-c-format
 msgid "Missing SHAPE parameter for call to %s at %L"
 msgstr ""
 
-#: fortran/resolve.c:2720
+#: fortran/resolve.c:2723
 #, no-c-format
 msgid "SHAPE parameter for call to %s at %L must be a rank 1 INTEGER array"
 msgstr ""
 
-#: fortran/resolve.c:2805
+#: fortran/resolve.c:2808
 #, no-c-format
 msgid ""
 "Subroutine '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
 msgstr ""
 
-#: fortran/resolve.c:2849
+#: fortran/resolve.c:2852
 #, no-c-format
 msgid "Unable to resolve the specific subroutine '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:2909
+#: fortran/resolve.c:2912
 #, no-c-format
 msgid "'%s' at %L has a type, which is not consistent with the CALL at %L"
 msgstr ""
 
-#: fortran/resolve.c:2942
+#: fortran/resolve.c:2945
 #, no-c-format
 msgid ""
 "ENTRY '%s' at %L cannot be called recursively, as subroutine '%s' is not "
 "RECURSIVE"
 msgstr ""
 
-#: fortran/resolve.c:2946
+#: fortran/resolve.c:2949
 #, no-c-format
 msgid ""
 "SUBROUTINE '%s' at %L cannot be called recursively, as it is not RECURSIVE"
 msgstr ""
 
-#: fortran/resolve.c:3020
+#: fortran/resolve.c:3023
 #, no-c-format
 msgid "Shapes for operands at %L and %L are not conformable"
 msgstr ""
 
-#: fortran/resolve.c:3071
+#: fortran/resolve.c:3074
 #, c-format
 msgid "Invalid context for NULL() pointer at %%L"
 msgstr ""
 
-#: fortran/resolve.c:3087
+#: fortran/resolve.c:3090
 #, c-format
 msgid "Operand of unary numeric operator '%s' at %%L is %s"
 msgstr ""
 
-#: fortran/resolve.c:3103
+#: fortran/resolve.c:3106
 #, c-format
 msgid "Operands of binary numeric operator '%s' at %%L are %s/%s"
 msgstr ""
 
-#: fortran/resolve.c:3118
+#: fortran/resolve.c:3121
 #, c-format
 msgid "Operands of string concatenation operator at %%L are %s/%s"
 msgstr ""
 
-#: fortran/resolve.c:3137
+#: fortran/resolve.c:3140
 #, c-format
 msgid "Operands of logical operator '%s' at %%L are %s/%s"
 msgstr ""
 
-#: fortran/resolve.c:3151
+#: fortran/resolve.c:3154
 #, c-format
 msgid "Operand of .not. operator at %%L is %s"
 msgstr ""
 
-#: fortran/resolve.c:3165
+#: fortran/resolve.c:3168
 msgid "COMPLEX quantities cannot be compared at %L"
 msgstr ""
 
-#: fortran/resolve.c:3194
+#: fortran/resolve.c:3197
 #, c-format
 msgid "Logicals at %%L must be compared with %s instead of %s"
 msgstr ""
 
-#: fortran/resolve.c:3200
+#: fortran/resolve.c:3203
 #, c-format
 msgid "Operands of comparison operator '%s' at %%L are %s/%s"
 msgstr ""
 
-#: fortran/resolve.c:3208
+#: fortran/resolve.c:3211
 #, c-format
 msgid "Unknown operator '%s' at %%L"
 msgstr ""
 
-#: fortran/resolve.c:3210
+#: fortran/resolve.c:3213
 #, c-format
 msgid "Operand of user operator '%s' at %%L is %s"
 msgstr ""
 
-#: fortran/resolve.c:3213
+#: fortran/resolve.c:3216
 #, c-format
 msgid "Operands of user operator '%s' at %%L are %s/%s"
 msgstr ""
 
-#: fortran/resolve.c:3299
+#: fortran/resolve.c:3302
 #, c-format
 msgid "Inconsistent ranks for operator at %%L and %%L"
 msgstr ""
 
-#: fortran/resolve.c:3496
+#: fortran/resolve.c:3499
 #, no-c-format
 msgid "Array reference at %L is out of bounds (%ld < %ld) in dimension %d"
 msgstr ""
 
-#: fortran/resolve.c:3504
+#: fortran/resolve.c:3507
 #, no-c-format
 msgid "Array reference at %L is out of bounds (%ld > %ld) in dimension %d"
 msgstr ""
 
-#: fortran/resolve.c:3523
+#: fortran/resolve.c:3526
 #, no-c-format
 msgid "Illegal stride of zero at %L"
 msgstr ""
 
-#: fortran/resolve.c:3540
+#: fortran/resolve.c:3543
 #, no-c-format
 msgid ""
 "Lower array reference at %L is out of bounds (%ld < %ld) in dimension %d"
 msgstr ""
 
-#: fortran/resolve.c:3548
+#: fortran/resolve.c:3551
 #, no-c-format
 msgid ""
 "Lower array reference at %L is out of bounds (%ld > %ld) in dimension %d"
 msgstr ""
 
-#: fortran/resolve.c:3564
+#: fortran/resolve.c:3567
 #, no-c-format
 msgid ""
 "Upper array reference at %L is out of bounds (%ld < %ld) in dimension %d"
 msgstr ""
 
-#: fortran/resolve.c:3573
+#: fortran/resolve.c:3576
 #, no-c-format
 msgid ""
 "Upper array reference at %L is out of bounds (%ld > %ld) in dimension %d"
 msgstr ""
 
-#: fortran/resolve.c:3612
+#: fortran/resolve.c:3615
 #, no-c-format
 msgid "Rightmost upper bound of assumed size array section not specified at %L"
 msgstr ""
 
-#: fortran/resolve.c:3622
+#: fortran/resolve.c:3625
 #, no-c-format
 msgid "Rank mismatch in array reference at %L (%d/%d)"
 msgstr ""
 
-#: fortran/resolve.c:3650
+#: fortran/resolve.c:3653
 #, no-c-format
 msgid "Array index at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.c:3656
+#: fortran/resolve.c:3659
 #, no-c-format
 msgid "Array index at %L must be of INTEGER type, found %s"
 msgstr ""
 
-#: fortran/resolve.c:3662
+#: fortran/resolve.c:3665
 #, no-c-format
 msgid "Extension: REAL array index at %L"
 msgstr ""
 
-#: fortran/resolve.c:3692
+#: fortran/resolve.c:3695
 #, no-c-format
 msgid "Argument dim at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.c:3699
+#: fortran/resolve.c:3702
 #, no-c-format
 msgid "Argument dim at %L must be of INTEGER type"
 msgstr ""
 
-#: fortran/resolve.c:3820
+#: fortran/resolve.c:3823
 #, no-c-format
 msgid "Array index at %L is an array of rank %d"
 msgstr ""
 
-#: fortran/resolve.c:3857
+#: fortran/resolve.c:3860
 #, no-c-format
 msgid "Substring start index at %L must be of type INTEGER"
 msgstr ""
 
-#: fortran/resolve.c:3864
+#: fortran/resolve.c:3867
 #, no-c-format
 msgid "Substring start index at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.c:3873
+#: fortran/resolve.c:3876
 #, no-c-format
 msgid "Substring start index at %L is less than one"
 msgstr ""
 
-#: fortran/resolve.c:3886
+#: fortran/resolve.c:3889
 #, no-c-format
 msgid "Substring end index at %L must be of type INTEGER"
 msgstr ""
 
-#: fortran/resolve.c:3893
+#: fortran/resolve.c:3896
 #, no-c-format
 msgid "Substring end index at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.c:3903
+#: fortran/resolve.c:3906
 #, no-c-format
 msgid "Substring end index at %L exceeds the string length"
 msgstr ""
 
-#: fortran/resolve.c:4041
+#: fortran/resolve.c:4044
 #, no-c-format
 msgid ""
 "Component to the right of a part reference with nonzero rank must not have "
 "the POINTER attribute at %L"
 msgstr ""
 
-#: fortran/resolve.c:4048
+#: fortran/resolve.c:4051
 #, no-c-format
 msgid ""
 "Component to the right of a part reference with nonzero rank must not have "
 "the ALLOCATABLE attribute at %L"
 msgstr ""
 
-#: fortran/resolve.c:4067
+#: fortran/resolve.c:4070
 #, no-c-format
 msgid ""
 "Two or more part references with nonzero rank must not be specified at %L"
 msgstr ""
 
-#: fortran/resolve.c:4246
+#: fortran/resolve.c:4249
 #, no-c-format
 msgid ""
 "Variable '%s', used in a specification expression, is referenced at %L "
 "before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.c:4251
+#: fortran/resolve.c:4254
 #, no-c-format
 msgid ""
 "Variable '%s' is used at %L before the ENTRY statement in which it is a "
 "parameter"
 msgstr ""
 
-#: fortran/resolve.c:4535
+#: fortran/resolve.c:4538
 #, no-c-format
 msgid "Passed-object at %L must be scalar"
 msgstr ""
 
 #. Nothing matching found!
-#: fortran/resolve.c:4645
+#: fortran/resolve.c:4648
 #, no-c-format
 msgid ""
 "Found no matching specific binding for the call to the GENERIC '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:4665
+#: fortran/resolve.c:4668
 #, no-c-format
 msgid "'%s' at %L should be a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.c:4701
+#: fortran/resolve.c:4704
 #, no-c-format
 msgid "'%s' at %L should be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.c:4837
+#: fortran/resolve.c:4840
 #, no-c-format
 msgid "%s at %L must be a scalar"
 msgstr ""
 
-#: fortran/resolve.c:4847
+#: fortran/resolve.c:4850
 #, no-c-format
 msgid "Deleted feature: %s at %L must be integer"
 msgstr ""
 
-#: fortran/resolve.c:4851 fortran/resolve.c:4858
+#: fortran/resolve.c:4854 fortran/resolve.c:4861
 #, no-c-format
 msgid "%s at %L must be INTEGER"
 msgstr ""
 
-#: fortran/resolve.c:4878
+#: fortran/resolve.c:4881
 #, no-c-format
 msgid "Cannot assign to loop variable in PURE procedure at %L"
 msgstr ""
 
-#: fortran/resolve.c:4902
+#: fortran/resolve.c:4905
 #, no-c-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.c:4978
+#: fortran/resolve.c:4981
 #, no-c-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.c:4983
+#: fortran/resolve.c:4986
 #, no-c-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.c:4990
+#: fortran/resolve.c:4993
 #, no-c-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.c:4998
+#: fortran/resolve.c:5001
 #, no-c-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr ""
 
-#: fortran/resolve.c:5003
+#: fortran/resolve.c:5006
 #, no-c-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.c:5019
+#: fortran/resolve.c:5022
 #, no-c-format
 msgid "FORALL index '%s' may not appear in triplet specification at %L"
 msgstr ""
 
-#: fortran/resolve.c:5099
+#: fortran/resolve.c:5102
 #, no-c-format
 msgid ""
 "Expression in DEALLOCATE statement at %L must be ALLOCATABLE or a POINTER"
 msgstr ""
 
-#: fortran/resolve.c:5106
+#: fortran/resolve.c:5109
 #, no-c-format
 msgid "Cannot deallocate INTENT(IN) variable '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:5210
+#: fortran/resolve.c:5213
 #, no-c-format
 msgid ""
 "The STAT variable '%s' in an ALLOCATE statement must not be allocated in the "
 "same statement at %L"
 msgstr ""
 
-#: fortran/resolve.c:5246
+#: fortran/resolve.c:5249
 #, no-c-format
 msgid "Expression in ALLOCATE statement at %L must be ALLOCATABLE or a POINTER"
 msgstr ""
 
-#: fortran/resolve.c:5254
+#: fortran/resolve.c:5257
 #, no-c-format
 msgid "Cannot allocate INTENT(IN) variable '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:5278
+#: fortran/resolve.c:5281
 #, no-c-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.c:5308
+#: fortran/resolve.c:5311
 #, no-c-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.c:5328
+#: fortran/resolve.c:5331
 #, no-c-format
 msgid ""
 "'%s' must not appear in the array specification at %L in the same ALLOCATE "
 "statement where it is itself allocated"
 msgstr ""
 
-#: fortran/resolve.c:5351
+#: fortran/resolve.c:5354
 #, no-c-format
 msgid "STAT variable '%s' of %s statement at %C cannot be INTENT(IN)"
 msgstr ""
 
-#: fortran/resolve.c:5355
+#: fortran/resolve.c:5358
 #, no-c-format
 msgid "Illegal STAT variable in %s statement at %C for a PURE procedure"
 msgstr ""
 
-#: fortran/resolve.c:5360
+#: fortran/resolve.c:5363
 #, no-c-format
 msgid "STAT tag in %s statement at %L must be of type INTEGER"
 msgstr ""
@@ -9561,99 +9561,99 @@
 #. 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.
-#: fortran/resolve.c:5523
+#: fortran/resolve.c:5526
 #, no-c-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr ""
 
-#: fortran/resolve.c:5574
+#: fortran/resolve.c:5577
 #, no-c-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr ""
 
-#: fortran/resolve.c:5585
+#: fortran/resolve.c:5588
 #, no-c-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr ""
 
-#: fortran/resolve.c:5597
+#: fortran/resolve.c:5600
 #, no-c-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.c:5643
+#: fortran/resolve.c:5646
 #, no-c-format
 msgid ""
 "Selection expression in computed GOTO statement at %L must be a scalar "
 "integer expression"
 msgstr ""
 
-#: fortran/resolve.c:5661
+#: fortran/resolve.c:5664
 #, no-c-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr ""
 
-#: fortran/resolve.c:5670
+#: fortran/resolve.c:5673
 #, no-c-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr ""
 
-#: fortran/resolve.c:5735
+#: fortran/resolve.c:5738
 #, no-c-format
 msgid ""
 "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr ""
 
-#: fortran/resolve.c:5761
+#: fortran/resolve.c:5764
 #, no-c-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr ""
 
-#: fortran/resolve.c:5773
+#: fortran/resolve.c:5776
 #, no-c-format
 msgid "constant logical value in CASE statement is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.c:5787
+#: fortran/resolve.c:5790
 #, no-c-format
 msgid "Range specification at %L can never be matched"
 msgstr ""
 
-#: fortran/resolve.c:5890
+#: fortran/resolve.c:5893
 #, no-c-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr ""
 
-#: fortran/resolve.c:5928
+#: fortran/resolve.c:5931
 #, no-c-format
 msgid "Data transfer element at %L cannot have POINTER components"
 msgstr ""
 
-#: fortran/resolve.c:5935
+#: fortran/resolve.c:5938
 #, no-c-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components"
 msgstr ""
 
-#: fortran/resolve.c:5942
+#: fortran/resolve.c:5945
 #, no-c-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr ""
 
-#: fortran/resolve.c:5951
+#: fortran/resolve.c:5954
 #, no-c-format
 msgid ""
 "Data transfer element at %L cannot be a full reference to an assumed-size "
 "array"
 msgstr ""
 
-#: fortran/resolve.c:6015
+#: fortran/resolve.c:6018
 #, no-c-format
 msgid ""
 "Statement at %L is not a valid branch target statement for the branch "
 "statement at %L"
 msgstr ""
 
-#: fortran/resolve.c:6024
+#: fortran/resolve.c:6027
 #, no-c-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr ""
@@ -9661,118 +9661,118 @@
 #. 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.
-#: fortran/resolve.c:6037
+#: fortran/resolve.c:6040
 #, no-c-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr ""
 
-#: fortran/resolve.c:6052 fortran/resolve.c:6066
+#: fortran/resolve.c:6055 fortran/resolve.c:6069
 #, no-c-format
 msgid "Deleted feature: GOTO at %L jumps to END of construct at %L"
 msgstr ""
 
-#: fortran/resolve.c:6143
+#: fortran/resolve.c:6146
 #, no-c-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.c:6159
+#: fortran/resolve.c:6162
 #, no-c-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.c:6167 fortran/resolve.c:6254
+#: fortran/resolve.c:6170 fortran/resolve.c:6257
 #, no-c-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.c:6177 fortran/resolve.c:6264
+#: fortran/resolve.c:6180 fortran/resolve.c:6267
 #, no-c-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.c:6208
+#: fortran/resolve.c:6211
 #, no-c-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr ""
 
-#: fortran/resolve.c:6217
+#: fortran/resolve.c:6220
 #, no-c-format
 msgid ""
 "The FORALL with index '%s' is not used on the left side of the assignment at "
 "%L and so might cause multiple assignment to this object"
 msgstr ""
 
-#: fortran/resolve.c:6386
+#: fortran/resolve.c:6389
 #, no-c-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr ""
 
-#: fortran/resolve.c:6453
+#: fortran/resolve.c:6456
 #, no-c-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr ""
 
-#: fortran/resolve.c:6515
+#: fortran/resolve.c:6518
 #, no-c-format
 msgid "Subroutine '%s' called instead of assignment at %L must be PURE"
 msgstr ""
 
-#: fortran/resolve.c:6588
+#: fortran/resolve.c:6591
 #, no-c-format
 msgid "CHARACTER expression will be truncated in assignment (%d/%d) at %L"
 msgstr ""
 
-#: fortran/resolve.c:6613
+#: fortran/resolve.c:6616
 #, no-c-format
 msgid "Cannot assign to variable '%s' in PURE procedure at %L"
 msgstr ""
 
-#: fortran/resolve.c:6625
+#: fortran/resolve.c:6628
 #, no-c-format
 msgid ""
 "The impure variable at %L is assigned to a derived type variable with a "
 "POINTER component in a PURE procedure (12.6)"
 msgstr ""
 
-#: fortran/resolve.c:6731
+#: fortran/resolve.c:6734
 #, no-c-format
 msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.c:6734
+#: fortran/resolve.c:6737
 #, no-c-format
 msgid "Variable '%s' has not been assigned a target label at %L"
 msgstr ""
 
-#: fortran/resolve.c:6745
+#: fortran/resolve.c:6748
 #, no-c-format
 msgid ""
 "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr ""
 
-#: fortran/resolve.c:6771
+#: fortran/resolve.c:6774
 #, no-c-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.c:6786
+#: fortran/resolve.c:6789
 #, no-c-format
 msgid "Arithmetic IF statement at %L requires a numeric expression"
 msgstr ""
 
-#: fortran/resolve.c:6832
+#: fortran/resolve.c:6835
 #, no-c-format
 msgid ""
 "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.c:6914
+#: fortran/resolve.c:6917
 #, no-c-format
 msgid "FORALL mask clause at %L requires a LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.c:6986 fortran/resolve.c:7042
+#: fortran/resolve.c:6989 fortran/resolve.c:7045
 #, no-c-format
 msgid ""
 "Binding label '%s' for common block '%s' at %L collides with the global "
@@ -9780,14 +9780,14 @@
 msgstr ""
 
 #. Common block names match but binding labels do not.
-#: fortran/resolve.c:7007
+#: fortran/resolve.c:7010
 #, no-c-format
 msgid ""
 "Binding label '%s' for common block '%s' at %L does not match the binding "
 "label '%s' for common block '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:7054
+#: fortran/resolve.c:7057
 #, no-c-format
 msgid ""
 "Binding label '%s' for common block '%s' at %L collides with global entity '%"
@@ -9795,57 +9795,57 @@
 msgstr ""
 
 #. Make sure global procedures don't collide with anything.
-#: fortran/resolve.c:7106
+#: fortran/resolve.c:7109
 #, no-c-format
 msgid "Binding label '%s' at %L collides with the global entity '%s' at %L"
 msgstr ""
 
 #. Make sure procedures in interface bodies don't collide.
-#: fortran/resolve.c:7119
+#: fortran/resolve.c:7122
 #, no-c-format
 msgid ""
 "Binding label '%s' in interface body at %L collides with the global entity '%"
 "s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:7132
+#: fortran/resolve.c:7135
 #, no-c-format
 msgid "Binding label '%s' at %L collides with global entity '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:7209
+#: fortran/resolve.c:7212
 #, no-c-format
 msgid "CHARACTER variable has zero length at %L"
 msgstr ""
 
-#: fortran/resolve.c:7496
+#: fortran/resolve.c:7499
 #, no-c-format
 msgid "Allocatable array '%s' at %L must have a deferred shape"
 msgstr ""
 
-#: fortran/resolve.c:7499
+#: fortran/resolve.c:7502
 #, no-c-format
 msgid "Scalar object '%s' at %L may not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.c:7506
+#: fortran/resolve.c:7509
 #, no-c-format
 msgid "Array pointer '%s' at %L must have a deferred shape"
 msgstr ""
 
-#: fortran/resolve.c:7517
+#: fortran/resolve.c:7520
 #, no-c-format
 msgid "Array '%s' at %L cannot have a deferred shape"
 msgstr ""
 
-#: fortran/resolve.c:7545
+#: fortran/resolve.c:7548
 #, no-c-format
 msgid ""
 "The type '%s' cannot be host associated at %L because it is blocked by an "
 "incompatible object of the same name declared at %L"
 msgstr ""
 
-#: fortran/resolve.c:7568
+#: fortran/resolve.c:7571
 #, no-c-format
 msgid ""
 "Object '%s' at %L must have the SAVE attribute for default initialization of "
@@ -9854,181 +9854,181 @@
 
 #. The shape of a main program or module array needs to be
 #. constant.
-#: fortran/resolve.c:7615
+#: fortran/resolve.c:7618
 #, no-c-format
 msgid "The module or main program array '%s' at %L must have constant shape"
 msgstr ""
 
-#: fortran/resolve.c:7628
+#: fortran/resolve.c:7631
 #, no-c-format
 msgid ""
 "Entity with assumed character length at %L must be a dummy argument or a "
 "PARAMETER"
 msgstr ""
 
-#: fortran/resolve.c:7647
+#: fortran/resolve.c:7650
 #, no-c-format
 msgid "'%s' at %L must have constant character length in this context"
 msgstr ""
 
-#: fortran/resolve.c:7683
+#: fortran/resolve.c:7686
 #, no-c-format
 msgid "Allocatable '%s' at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.c:7686
+#: fortran/resolve.c:7689
 #, no-c-format
 msgid "External '%s' at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.c:7690
+#: fortran/resolve.c:7693
 #, no-c-format
 msgid "Dummy '%s' at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.c:7693
+#: fortran/resolve.c:7696
 #, no-c-format
 msgid "Intrinsic '%s' at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.c:7696
+#: fortran/resolve.c:7699
 #, no-c-format
 msgid "Function result '%s' at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.c:7699
+#: fortran/resolve.c:7702
 #, no-c-format
 msgid "Automatic array '%s' at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.c:7722
+#: fortran/resolve.c:7725
 #, no-c-format
 msgid "Although not referenced, '%s' at %L has ambiguous interfaces"
 msgstr ""
 
-#: fortran/resolve.c:7741
+#: fortran/resolve.c:7744
 #, no-c-format
 msgid ""
 "Character-valued statement function '%s' at %L must have constant length"
 msgstr ""
 
-#: fortran/resolve.c:7749
+#: fortran/resolve.c:7752
 #, no-c-format
 msgid ""
 "Automatic character length function '%s' at %L must have an explicit "
 "interface"
 msgstr ""
 
-#: fortran/resolve.c:7774
+#: fortran/resolve.c:7777
 #, no-c-format
 msgid ""
 "Fortran 2003: '%s' is of a PRIVATE type and cannot be a dummy argument of '%"
 "s', which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.c:7797 fortran/resolve.c:7822
+#: fortran/resolve.c:7800 fortran/resolve.c:7825
 #, no-c-format
 msgid ""
 "Fortran 2003: Procedure '%s' in PUBLIC interface '%s' at %L takes dummy "
 "arguments of '%s' which is PRIVATE"
 msgstr ""
 
-#: fortran/resolve.c:7840
+#: fortran/resolve.c:7843
 #, no-c-format
 msgid "Function '%s' at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.c:7849
+#: fortran/resolve.c:7852
 #, no-c-format
 msgid "External object '%s' at %L may not have an initializer"
 msgstr ""
 
-#: fortran/resolve.c:7857
+#: fortran/resolve.c:7860
 #, no-c-format
 msgid "ELEMENTAL function '%s' at %L must have a scalar result"
 msgstr ""
 
-#: fortran/resolve.c:7878
+#: fortran/resolve.c:7881
 #, no-c-format
 msgid "CHARACTER(*) function '%s' at %L cannot be array-valued"
 msgstr ""
 
-#: fortran/resolve.c:7882
+#: fortran/resolve.c:7885
 #, no-c-format
 msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued"
 msgstr ""
 
-#: fortran/resolve.c:7886
+#: fortran/resolve.c:7889
 #, no-c-format
 msgid "CHARACTER(*) function '%s' at %L cannot be pure"
 msgstr ""
 
-#: fortran/resolve.c:7890
+#: fortran/resolve.c:7893
 #, no-c-format
 msgid "CHARACTER(*) function '%s' at %L cannot be recursive"
 msgstr ""
 
-#: fortran/resolve.c:7899
+#: fortran/resolve.c:7902
 #, no-c-format
 msgid "CHARACTER(*) function '%s' at %L is obsolescent in fortran 95"
 msgstr ""
 
-#: fortran/resolve.c:7952
+#: fortran/resolve.c:7955
 #, no-c-format
 msgid "PROCEDURE attribute conflicts with SAVE attribute in '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:7959
+#: fortran/resolve.c:7962
 #, no-c-format
 msgid "PROCEDURE attribute conflicts with INTENT attribute in '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:8003
+#: fortran/resolve.c:8006
 #, no-c-format
 msgid "FINAL procedure '%s' at %L is not a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.c:8011
+#: fortran/resolve.c:8014
 #, no-c-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr ""
 
-#: fortran/resolve.c:8020
+#: fortran/resolve.c:8023
 #, no-c-format
 msgid "Argument of FINAL procedure at %L must be of type '%s'"
 msgstr ""
 
-#: fortran/resolve.c:8028
+#: fortran/resolve.c:8031
 #, no-c-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr ""
 
-#: fortran/resolve.c:8034
+#: fortran/resolve.c:8037
 #, no-c-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.c:8040
+#: fortran/resolve.c:8043
 #, no-c-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr ""
 
-#: fortran/resolve.c:8048
+#: fortran/resolve.c:8051
 #, no-c-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.c:8056
+#: fortran/resolve.c:8059
 #, no-c-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr ""
 
-#: fortran/resolve.c:8075
+#: fortran/resolve.c:8078
 #, no-c-format
 msgid "FINAL procedure '%s' declared at %L has the same rank (%d) as '%s'"
 msgstr ""
 
-#: fortran/resolve.c:8108
+#: fortran/resolve.c:8111
 #, no-c-format
 msgid ""
 "Only array FINAL procedures declared for derived type '%s' defined at %L, "
@@ -10036,302 +10036,302 @@
 msgstr ""
 
 #. TODO:  Remove this error when finalization is finished.
-#: fortran/resolve.c:8113
+#: fortran/resolve.c:8116
 #, no-c-format
 msgid "Finalization at %L is not yet implemented"
 msgstr ""
 
-#: fortran/resolve.c:8139
+#: fortran/resolve.c:8142
 #, no-c-format
 msgid "Can't overwrite GENERIC '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:8151
+#: fortran/resolve.c:8154
 #, no-c-format
 msgid "'%s' at %L overrides a procedure binding declared NON_OVERRIDABLE"
 msgstr ""
 
-#: fortran/resolve.c:8159
+#: fortran/resolve.c:8162
 #, no-c-format
 msgid "'%s' at %L overrides a PURE procedure and must also be PURE"
 msgstr ""
 
-#: fortran/resolve.c:8168
+#: fortran/resolve.c:8171
 #, no-c-format
 msgid "'%s' at %L overrides an ELEMENTAL procedure and must also be ELEMENTAL"
 msgstr ""
 
-#: fortran/resolve.c:8174
+#: fortran/resolve.c:8177
 #, no-c-format
 msgid ""
 "'%s' at %L overrides a non-ELEMENTAL procedure and must not be ELEMENTAL, "
 "either"
 msgstr ""
 
-#: fortran/resolve.c:8183
+#: fortran/resolve.c:8186
 #, no-c-format
 msgid "'%s' at %L overrides a SUBROUTINE and must also be a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.c:8194
+#: fortran/resolve.c:8197
 #, no-c-format
 msgid "'%s' at %L overrides a FUNCTION and must also be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.c:8205
+#: fortran/resolve.c:8208
 #, no-c-format
 msgid ""
 "'%s' at %L and the overridden FUNCTION should have matching result types"
 msgstr ""
 
-#: fortran/resolve.c:8216
+#: fortran/resolve.c:8219
 #, no-c-format
 msgid "'%s' at %L overrides a PUBLIC procedure and must not be PRIVATE"
 msgstr ""
 
-#: fortran/resolve.c:8245
+#: fortran/resolve.c:8248
 #, no-c-format
 msgid ""
 "Dummy argument '%s' of '%s' at %L should be named '%s' as to match the "
 "corresponding argument of the overridden procedure"
 msgstr ""
 
-#: fortran/resolve.c:8258
+#: fortran/resolve.c:8261
 #, no-c-format
 msgid ""
 "Types mismatch for dummy argument '%s' of '%s' %L in in respect to the "
 "overridden procedure"
 msgstr ""
 
-#: fortran/resolve.c:8268
+#: fortran/resolve.c:8271
 #, no-c-format
 msgid ""
 "'%s' at %L must have the same number of formal arguments as the overridden "
 "procedure"
 msgstr ""
 
-#: fortran/resolve.c:8277
+#: fortran/resolve.c:8280
 #, no-c-format
 msgid "'%s' at %L overrides a NOPASS binding and must also be NOPASS"
 msgstr ""
 
-#: fortran/resolve.c:8288
+#: fortran/resolve.c:8291
 #, no-c-format
 msgid "'%s' at %L overrides a binding with PASS and must also be PASS"
 msgstr ""
 
-#: fortran/resolve.c:8295
+#: fortran/resolve.c:8298
 #, no-c-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"
 msgstr ""
 
-#: fortran/resolve.c:8326
+#: fortran/resolve.c:8329
 #, no-c-format
 msgid "'%s' and '%s' can't be mixed FUNCTION/SUBROUTINE for GENERIC '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:8335
+#: fortran/resolve.c:8338
 #, no-c-format
 msgid "'%s' and '%s' for GENERIC '%s' at %L are ambiguous"
 msgstr ""
 
-#: fortran/resolve.c:8404
+#: fortran/resolve.c:8407
 #, no-c-format
 msgid "Undefined specific binding '%s' as target of GENERIC '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:8416
+#: fortran/resolve.c:8419
 #, no-c-format
 msgid "GENERIC '%s' at %L must target a specific binding, '%s' is GENERIC, too"
 msgstr ""
 
-#: fortran/resolve.c:8446
+#: fortran/resolve.c:8449
 #, no-c-format
 msgid "GENERIC '%s' at %L can't overwrite specific binding with the same name"
 msgstr ""
 
-#: fortran/resolve.c:8504
+#: fortran/resolve.c:8507
 #, no-c-format
 msgid ""
 "'%s' must be a module procedure or an external procedure with an explicit "
 "interface at %L"
 msgstr ""
 
-#: fortran/resolve.c:8541
+#: fortran/resolve.c:8544
 #, no-c-format
 msgid "Procedure '%s' with PASS(%s) at %L has no argument '%s'"
 msgstr ""
 
-#: fortran/resolve.c:8555
+#: fortran/resolve.c:8558
 #, no-c-format
 msgid "Procedure '%s' with PASS at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.c:8567
+#: fortran/resolve.c:8570
 #, no-c-format
 msgid ""
 "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived-type '%s'"
 msgstr ""
 
-#: fortran/resolve.c:8573
+#: fortran/resolve.c:8576
 #, no-c-format
 msgid ""
 "Polymorphic entities are not yet implemented, non-polymorphic passed-object "
 "dummy argument of '%s' at %L accepted"
 msgstr ""
 
-#: fortran/resolve.c:8598
+#: fortran/resolve.c:8601
 #, no-c-format
 msgid "Procedure '%s' at %L has the same name as a component of '%s'"
 msgstr ""
 
-#: fortran/resolve.c:8607
+#: fortran/resolve.c:8610
 #, no-c-format
 msgid ""
 "Procedure '%s' at %L has the same name as an inherited component of '%s'"
 msgstr ""
 
-#: fortran/resolve.c:8675
+#: fortran/resolve.c:8678
 #, no-c-format
 msgid "Non-extensible derived-type '%s' at %L must not be ABSTRACT"
 msgstr ""
 
-#: fortran/resolve.c:8692
+#: fortran/resolve.c:8695
 #, no-c-format
 msgid ""
 "Component '%s' of '%s' at %L has the same name as an inherited type-bound "
 "procedure"
 msgstr ""
 
-#: fortran/resolve.c:8704
+#: fortran/resolve.c:8707
 #, no-c-format
 msgid ""
 "Character length of component '%s' needs to be a constant specification "
 "expression at %L"
 msgstr ""
 
-#: fortran/resolve.c:8719
+#: fortran/resolve.c:8722
 #, no-c-format
 msgid ""
 "The component '%s' is a PRIVATE type and cannot be a component of '%s', "
 "which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.c:8729
+#: fortran/resolve.c:8732
 #, no-c-format
 msgid ""
 "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE "
 "attribute"
 msgstr ""
 
-#: fortran/resolve.c:8740
+#: fortran/resolve.c:8743
 #, no-c-format
 msgid ""
 "The pointer component '%s' of '%s' at %L is a type that has not been declared"
 msgstr ""
 
-#: fortran/resolve.c:8768
+#: fortran/resolve.c:8771
 #, no-c-format
 msgid "Component '%s' of '%s' at %L must have constant array bounds"
 msgstr ""
 
-#: fortran/resolve.c:8809
+#: fortran/resolve.c:8812
 #, no-c-format
 msgid ""
 "NAMELIST object '%s' was declared PRIVATE and cannot be member of PUBLIC "
 "namelist '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:8819
+#: fortran/resolve.c:8822
 #, no-c-format
 msgid ""
 "NAMELIST object '%s' has use-associated PRIVATE components and cannot be "
 "member of namelist '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:8832
+#: fortran/resolve.c:8835
 #, no-c-format
 msgid ""
 "NAMELIST object '%s' has PRIVATE components and cannot be a member of PUBLIC "
 "namelist '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:8844
+#: fortran/resolve.c:8847
 #, no-c-format
 msgid ""
 "NAMELIST array object '%s' must not have assumed shape in namelist '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:8853
+#: fortran/resolve.c:8856
 #, no-c-format
 msgid ""
 "NAMELIST array object '%s' must have constant shape in namelist '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:8865
+#: fortran/resolve.c:8868
 #, no-c-format
 msgid ""
 "NAMELIST object '%s' in namelist '%s' at %L cannot have ALLOCATABLE "
 "components"
 msgstr ""
 
-#: fortran/resolve.c:8873
+#: fortran/resolve.c:8876
 #, no-c-format
 msgid ""
 "NAMELIST object '%s' in namelist '%s' at %L cannot have POINTER components"
 msgstr ""
 
-#: fortran/resolve.c:8899
+#: fortran/resolve.c:8902
 #, no-c-format
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:8918
+#: fortran/resolve.c:8921
 #, no-c-format
 msgid "Parameter array '%s' at %L cannot be automatic or of deferred shape"
 msgstr ""
 
-#: fortran/resolve.c:8929
+#: fortran/resolve.c:8932
 #, no-c-format
 msgid ""
 "Implicitly typed PARAMETER '%s' at %L doesn't match a later IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.c:8940
+#: fortran/resolve.c:8943
 #, no-c-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr ""
 
-#: fortran/resolve.c:8999
+#: fortran/resolve.c:9002
 #, no-c-format
 msgid ""
 "Interface '%s', used by procedure '%s' at %L, is declared in a later "
 "PROCEDURE statement"
 msgstr ""
 
-#: fortran/resolve.c:9047
+#: fortran/resolve.c:9050
 #, no-c-format
 msgid "Interface '%s' of procedure '%s' at %L must be explicit"
 msgstr ""
 
-#: fortran/resolve.c:9080
+#: fortran/resolve.c:9083
 #, no-c-format
 msgid "Type specified for intrinsic function '%s' at %L is ignored"
 msgstr ""
 
-#: fortran/resolve.c:9087
+#: fortran/resolve.c:9090
 #, no-c-format
 msgid "Intrinsic subroutine '%s' at %L shall not have a type specifier"
 msgstr ""
 
-#: fortran/resolve.c:9094
+#: fortran/resolve.c:9097
 #, no-c-format
 msgid "'%s' declared INTRINSIC at %L does not exist"
 msgstr ""
 
-#: fortran/resolve.c:9103
+#: fortran/resolve.c:9106
 #, no-c-format
 msgid ""
 "The intrinsic '%s' declared INTRINSIC at %L is not available in the current "
@@ -10339,229 +10339,229 @@
 "intrinsics in order to use it."
 msgstr ""
 
-#: fortran/resolve.c:9147
+#: fortran/resolve.c:9150
 #, no-c-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.c:9150
+#: fortran/resolve.c:9153
 #, no-c-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.c:9162
+#: fortran/resolve.c:9165
 #, no-c-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr ""
 
-#: fortran/resolve.c:9168
+#: fortran/resolve.c:9171
 #, no-c-format
 msgid ""
 "'%s' at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr ""
 
-#: fortran/resolve.c:9178
+#: fortran/resolve.c:9181
 #, no-c-format
 msgid ""
 "Character dummy variable '%s' at %L with VALUE attribute must have constant "
 "length"
 msgstr ""
 
-#: fortran/resolve.c:9187
+#: fortran/resolve.c:9190
 #, no-c-format
 msgid ""
 "C interoperable character dummy variable '%s' at %L with VALUE attribute "
 "must have length one"
 msgstr ""
 
-#: fortran/resolve.c:9213
+#: fortran/resolve.c:9216
 #, no-c-format
 msgid ""
 "Variable '%s' at %L cannot be BIND(C) because it is neither a COMMON block "
 "nor declared at the module level scope"
 msgstr ""
 
-#: fortran/resolve.c:9266
+#: fortran/resolve.c:9269
 #, no-c-format
 msgid "The derived type '%s' at %L is of type '%s', which has not been defined"
 msgstr ""
 
-#: fortran/resolve.c:9307
+#: fortran/resolve.c:9310
 #, no-c-format
 msgid "Fortran 2003: PUBLIC %s '%s' at %L of PRIVATE derived type '%s'"
 msgstr ""
 
-#: fortran/resolve.c:9326
+#: fortran/resolve.c:9329
 #, no-c-format
 msgid ""
 "The INTENT(OUT) dummy argument '%s' at %L is ASSUMED SIZE and so cannot have "
 "a default initializer"
 msgstr ""
 
-#: fortran/resolve.c:9385
+#: fortran/resolve.c:9388
 #, no-c-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.c:9470
+#: fortran/resolve.c:9473
 #, no-c-format
 msgid "BLOCK DATA element '%s' at %L must be in COMMON"
 msgstr ""
 
-#: fortran/resolve.c:9476
+#: fortran/resolve.c:9479
 #, no-c-format
 msgid "DATA array '%s' at %L must be specified in a previous declaration"
 msgstr ""
 
-#: fortran/resolve.c:9521
+#: fortran/resolve.c:9524
 #, no-c-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr ""
 
-#: fortran/resolve.c:9534
+#: fortran/resolve.c:9537
 #, no-c-format
 msgid "DATA statement at %L has more variables than values"
 msgstr ""
 
-#: fortran/resolve.c:9628
+#: fortran/resolve.c:9631
 #, no-c-format
 msgid "iterator start at %L does not simplify"
 msgstr ""
 
-#: fortran/resolve.c:9635
+#: fortran/resolve.c:9638
 #, no-c-format
 msgid "iterator end at %L does not simplify"
 msgstr ""
 
-#: fortran/resolve.c:9642
+#: fortran/resolve.c:9645
 #, no-c-format
 msgid "iterator step at %L does not simplify"
 msgstr ""
 
-#: fortran/resolve.c:9768
+#: fortran/resolve.c:9771
 #, no-c-format
 msgid "DATA statement at %L has more values than variables"
 msgstr ""
 
-#: fortran/resolve.c:9859
+#: fortran/resolve.c:9862
 #, no-c-format
 msgid "Label %d at %L defined but not used"
 msgstr ""
 
-#: fortran/resolve.c:9864
+#: fortran/resolve.c:9867
 #, no-c-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr ""
 
-#: fortran/resolve.c:9949
+#: fortran/resolve.c:9952
 #, no-c-format
 msgid ""
 "Derived type variable '%s' at %L must have SEQUENCE attribute to be an "
 "EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.c:9958
+#: fortran/resolve.c:9961
 #, no-c-format
 msgid ""
 "Derived type variable '%s' at %L cannot have ALLOCATABLE components to be an "
 "EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.c:9966
+#: fortran/resolve.c:9969
 #, no-c-format
 msgid ""
 "Derived type variable '%s' at %L with default initialization cannot be in "
 "EQUIVALENCE with a variable in COMMON"
 msgstr ""
 
-#: fortran/resolve.c:9983
+#: fortran/resolve.c:9986
 #, no-c-format
 msgid ""
 "Derived type variable '%s' at %L with pointer component(s) cannot be an "
 "EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.c:10088
+#: fortran/resolve.c:10091
 #, no-c-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr ""
 
-#: fortran/resolve.c:10103
+#: fortran/resolve.c:10106
 #, no-c-format
 msgid ""
 "Either all or none of the objects in the EQUIVALENCE set at %L shall have "
 "the PROTECTED attribute"
 msgstr ""
 
-#: fortran/resolve.c:10115
+#: fortran/resolve.c:10118
 #, no-c-format
 msgid ""
 "Common block member '%s' at %L cannot be an EQUIVALENCE object in the pure "
 "procedure '%s'"
 msgstr ""
 
-#: fortran/resolve.c:10124
+#: fortran/resolve.c:10127
 #, no-c-format
 msgid "Named constant '%s' at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.c:10203
+#: fortran/resolve.c:10206
 #, no-c-format
 msgid ""
 "Array '%s' at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.c:10214
+#: fortran/resolve.c:10217
 #, no-c-format
 msgid "Structure component '%s' at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.c:10225
+#: fortran/resolve.c:10228
 #, no-c-format
 msgid "Substring at %L has length zero"
 msgstr ""
 
-#: fortran/resolve.c:10269
+#: fortran/resolve.c:10272
 #, no-c-format
 msgid "Fortran 2003: PUBLIC function '%s' at %L of PRIVATE type '%s'"
 msgstr ""
 
-#: fortran/resolve.c:10282
+#: fortran/resolve.c:10285
 #, no-c-format
 msgid "ENTRY '%s' at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.c:10308
+#: fortran/resolve.c:10311
 #, no-c-format
 msgid "User operator procedure '%s' at %L must be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.c:10315
+#: fortran/resolve.c:10318
 #, no-c-format
 msgid "User operator procedure '%s' at %L cannot be assumed character length"
 msgstr ""
 
-#: fortran/resolve.c:10321
+#: fortran/resolve.c:10324
 #, no-c-format
 msgid "User operator procedure '%s' at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.c:10331
+#: fortran/resolve.c:10334
 #, no-c-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.c:10343
+#: fortran/resolve.c:10346
 #, no-c-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.c:10347
+#: fortran/resolve.c:10350
 #, no-c-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr ""
 
-#: fortran/resolve.c:10401
+#: fortran/resolve.c:10404
 #, no-c-format
 msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE"
 msgstr ""
@@ -11367,32 +11367,32 @@
 msgid "Assigning value other than 0 or 1 to LOGICAL has undefined result at %L"
 msgstr ""
 
-#: fortran/trans-decl.c:2868 fortran/trans-decl.c:3906
+#: fortran/trans-decl.c:2870 fortran/trans-decl.c:3908
 #, no-c-format
 msgid "Return value of function '%s' at %L not set"
 msgstr ""
 
-#: fortran/trans-decl.c:3527
+#: fortran/trans-decl.c:3529
 #, no-c-format
 msgid "Dummy argument '%s' at %L was declared INTENT(OUT) but was not set"
 msgstr ""
 
-#: fortran/trans-decl.c:3531
+#: fortran/trans-decl.c:3533
 #, no-c-format
 msgid "Unused dummy argument '%s' at %L"
 msgstr ""
 
-#: fortran/trans-decl.c:3537
+#: fortran/trans-decl.c:3539
 #, no-c-format
 msgid "Unused variable '%s' declared at %L"
 msgstr ""
 
-#: fortran/trans-decl.c:3583
+#: fortran/trans-decl.c:3585
 #, no-c-format
 msgid "Unused parameter '%s' declared at %L"
 msgstr ""
 
-#: fortran/trans-decl.c:3597
+#: fortran/trans-decl.c:3599
 #, no-c-format
 msgid "Return value '%s' of function '%s' declared at %L not set"
 msgstr ""
@@ -11662,7 +11662,7 @@
 msgid "GCC does not support -C or -CC without -E"
 msgstr ""
 
-#: gcc.c:828 java/jvspec.c:80
+#: gcc.c:828 java/jvspec.c:80 ada/gcc-interface/lang-specs.h:33
 msgid "-pg and -fomit-frame-pointer are incompatible"
 msgstr ""
 
@@ -11670,46 +11670,50 @@
 msgid "-E or -x required when input is from standard input"
 msgstr ""
 
-#: config/darwin.h:270
+#: config/darwin.h:274
 msgid "-current_version only allowed with -dynamiclib"
 msgstr ""
 
-#: config/darwin.h:272
+#: config/darwin.h:276
 msgid "-install_name only allowed with -dynamiclib"
 msgstr ""
 
-#: config/darwin.h:277
+#: config/darwin.h:281
 msgid "-bundle not allowed with -dynamiclib"
 msgstr ""
 
-#: config/darwin.h:278
+#: config/darwin.h:282
 msgid "-bundle_loader not allowed with -dynamiclib"
 msgstr ""
 
-#: config/darwin.h:279
+#: config/darwin.h:283
 msgid "-client_name not allowed with -dynamiclib"
 msgstr ""
 
-#: config/darwin.h:284
+#: config/darwin.h:288
 msgid "-force_flat_namespace not allowed with -dynamiclib"
 msgstr ""
 
-#: config/darwin.h:286
+#: config/darwin.h:290
 msgid "-keep_private_externs not allowed with -dynamiclib"
 msgstr ""
 
-#: config/darwin.h:287
+#: config/darwin.h:291
 msgid "-private_bundle not allowed with -dynamiclib"
 msgstr ""
 
+#: ada/gcc-interface/lang-specs.h:34
+msgid "-c or -S required for Ada"
+msgstr ""
+
 #: config/sparc/sol2-bi.h:189 config/sparc/sol2-bi.h:194
 #: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22
 msgid "does not support multilib"
 msgstr ""
 
-#: config/rs6000/linux64.h:345 config/rs6000/linux64.h:347
-#: config/rs6000/sysv4.h:902 config/rs6000/sysv4.h:904 config/linux.h:106
-#: config/linux.h:108 config/alpha/linux-elf.h:33 config/alpha/linux-elf.h:35
+#: config/rs6000/linux64.h:350 config/rs6000/linux64.h:352
+#: config/rs6000/sysv4.h:907 config/rs6000/sysv4.h:909 config/linux.h:111
+#: config/linux.h:113 config/alpha/linux-elf.h:33 config/alpha/linux-elf.h:35
 msgid "-mglibc and -muclibc used together"
 msgstr ""
 
@@ -16257,1218 +16261,1214 @@
 msgstr ""
 
 #: common.opt:99
-msgid "Warn on calls to these functions"
-msgstr ""
-
-#: common.opt:103
 msgid "Treat all warnings as errors"
 msgstr ""
 
-#: common.opt:107
+#: common.opt:103
 msgid "Treat specified warning as error"
 msgstr ""
 
-#: common.opt:111
+#: common.opt:107
 msgid "Print extra (possibly unwanted) warnings"
 msgstr ""
 
-#: common.opt:115
+#: common.opt:111
 msgid "Exit on the first error occurred"
 msgstr ""
 
-#: common.opt:119
+#: common.opt:115
 msgid ""
 "-Wframe-larger-than=<number> Warn if a function's stack frame requires more "
 "than <number> bytes"
 msgstr ""
 
-#: common.opt:123
+#: common.opt:119
 msgid "Warn when an inlined function cannot be inlined"
 msgstr ""
 
-#: common.opt:130
+#: common.opt:126
 msgid "Warn if an object is larger than <number> bytes"
 msgstr ""
 
-#: common.opt:134
+#: common.opt:130
 msgid ""
 "Warn when a logical operator is suspicously always evaluating to true or "
 "false"
 msgstr ""
 
-#: common.opt:138
+#: common.opt:134
 msgid "Warn if the loop cannot be optimized due to nontrivial assumptions."
 msgstr ""
 
-#: common.opt:142
+#: common.opt:138
 msgid ""
 "Warn about functions which might be candidates for __attribute__((noreturn))"
 msgstr ""
 
-#: common.opt:146
+#: common.opt:142
 msgid "Warn about constructs not instrumented by -fmudflap"
 msgstr ""
 
-#: common.opt:150
+#: common.opt:146
 msgid "Warn about overflow in arithmetic expressions"
 msgstr ""
 
-#: common.opt:154
+#: common.opt:150
 msgid "Warn when the packed attribute has no effect on struct layout"
 msgstr ""
 
-#: common.opt:158
+#: common.opt:154
 msgid "Warn when padding is required to align structure members"
 msgstr ""
 
-#: common.opt:162
+#: common.opt:158
 msgid "Warn when one local variable shadows another"
 msgstr ""
 
-#: common.opt:166
+#: common.opt:162
 msgid "Warn when not issuing stack smashing protection for some reason"
 msgstr ""
 
-#: common.opt:170 common.opt:174
+#: common.opt:166 common.opt:170
 msgid "Warn about code which might break strict aliasing rules"
 msgstr ""
 
-#: common.opt:178 common.opt:182
+#: common.opt:174 common.opt:178
 msgid "Warn about optimizations that assume that signed overflow is undefined"
 msgstr ""
 
-#: common.opt:186
+#: common.opt:182
 msgid "Warn about enumerated switches, with no default, missing a case"
 msgstr ""
 
-#: common.opt:190
+#: common.opt:186
 msgid "Warn about enumerated switches missing a \"default:\" statement"
 msgstr ""
 
-#: common.opt:194
+#: common.opt:190
 msgid "Warn about all enumerated switches missing a specific case"
 msgstr ""
 
-#: common.opt:198
+#: common.opt:194
 msgid "Do not suppress warnings from system headers"
 msgstr ""
 
-#: common.opt:202
+#: common.opt:198
 msgid ""
 "Warn if a comparison is always true or always false due to the limited range "
 "of the data type"
 msgstr ""
 
-#: common.opt:206
+#: common.opt:202
 msgid "Warn about uninitialized automatic variables"
 msgstr ""
 
-#: common.opt:210
+#: common.opt:206
 msgid "Warn about code that will never be executed"
 msgstr ""
 
-#: common.opt:214
+#: common.opt:210
 msgid "Enable all -Wunused- warnings"
 msgstr ""
 
-#: common.opt:218
+#: common.opt:214
 msgid "Warn when a function is unused"
 msgstr ""
 
-#: common.opt:222
+#: common.opt:218
 msgid "Warn when a label is unused"
 msgstr ""
 
-#: common.opt:226
+#: common.opt:222
 msgid "Warn when a function parameter is unused"
 msgstr ""
 
-#: common.opt:230
+#: common.opt:226
 msgid "Warn when an expression value is unused"
 msgstr ""
 
-#: common.opt:234
+#: common.opt:230
 msgid "Warn when a variable is unused"
 msgstr ""
 
-#: common.opt:238
+#: common.opt:234
 msgid "Warn instead of error in case profiles in -fprofile-use do not match"
 msgstr ""
 
-#: common.opt:242
+#: common.opt:238
 msgid "Emit declaration information into <file>"
 msgstr ""
 
-#: common.opt:255
+#: common.opt:251
 msgid "Enable dumps from specific passes of the compiler"
 msgstr ""
 
-#: common.opt:259
+#: common.opt:255
 msgid "Set the file basename to be used for dumps"
 msgstr ""
 
-#: common.opt:279
+#: common.opt:275
 msgid "Align the start of functions"
 msgstr ""
 
-#: common.opt:286
+#: common.opt:282
 msgid "Align labels which are only reached by jumping"
 msgstr ""
 
-#: common.opt:293
+#: common.opt:289
 msgid "Align all labels"
 msgstr ""
 
-#: common.opt:300
+#: common.opt:296
 msgid "Align the start of loops"
 msgstr ""
 
-#: common.opt:315
+#: common.opt:311
 msgid "Specify that arguments may alias each other and globals"
 msgstr ""
 
-#: common.opt:319
+#: common.opt:315
 msgid "Assume arguments may alias globals but not each other"
 msgstr ""
 
-#: common.opt:323
+#: common.opt:319
 msgid "Assume arguments alias neither each other nor globals"
 msgstr ""
 
-#: common.opt:327
+#: common.opt:323
 msgid "Assume arguments alias no other storage"
 msgstr ""
 
-#: common.opt:331
+#: common.opt:327
 msgid "Generate unwind tables that are exact at each instruction boundary"
 msgstr ""
 
-#: common.opt:335
+#: common.opt:331
 msgid "Generate auto-inc/dec instructions"
 msgstr ""
 
-#: common.opt:343
+#: common.opt:339
 msgid "Generate code to check bounds before indexing arrays"
 msgstr ""
 
-#: common.opt:347
+#: common.opt:343
 msgid "Replace add, compare, branch with branch on count register"
 msgstr ""
 
-#: common.opt:351
+#: common.opt:347
 msgid "Use profiling information for branch probabilities"
 msgstr ""
 
-#: common.opt:355
+#: common.opt:351
 msgid ""
 "Perform branch target load optimization before prologue / epilogue threading"
 msgstr ""
 
-#: common.opt:359
+#: common.opt:355
 msgid ""
 "Perform branch target load optimization after prologue / epilogue threading"
 msgstr ""
 
-#: common.opt:363
+#: common.opt:359
 msgid ""
 "Restrict target load migration not to re-use registers in any basic block"
 msgstr ""
 
-#: common.opt:367
+#: common.opt:363
 msgid "Mark <register> as being preserved across functions"
 msgstr ""
 
-#: common.opt:371
+#: common.opt:367
 msgid "Mark <register> as being corrupted by function calls"
 msgstr ""
 
-#: common.opt:378
+#: common.opt:374
 msgid "Save registers around function calls"
 msgstr ""
 
-#: common.opt:382
+#: common.opt:378
 msgid "Compare the results of several data dependence analyzers."
 msgstr ""
 
-#: common.opt:386
+#: common.opt:382
 msgid "Do not put uninitialized globals in the common section"
 msgstr ""
 
-#: common.opt:390
+#: common.opt:386
 msgid "Do not perform optimizations increasing noticeably stack usage"
 msgstr ""
 
-#: common.opt:394
+#: common.opt:390
 msgid "Perform a register copy-propagation optimization pass"
 msgstr ""
 
-#: common.opt:398
+#: common.opt:394
 msgid "Perform cross-jumping optimization"
 msgstr ""
 
-#: common.opt:402
+#: common.opt:398
 msgid "When running CSE, follow jumps to their targets"
 msgstr ""
 
-#: common.opt:406
+#: common.opt:402
 msgid "When running CSE, follow conditional jumps"
 msgstr ""
 
-#: common.opt:410
+#: common.opt:406
 msgid "Omit range reduction step when performing complex division"
 msgstr ""
 
-#: common.opt:414
+#: common.opt:410
 msgid "Complex multiplication and division follow Fortran rules"
 msgstr ""
 
-#: common.opt:418
+#: common.opt:414
 msgid "Place data items into their own section"
 msgstr ""
 
-#: common.opt:422
+#: common.opt:418
 msgid "List all available debugging counters with their limits and counts."
 msgstr ""
 
-#: common.opt:426
+#: common.opt:422
 msgid ""
 "-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...]    Set the debug counter "
 "limit.   "
 msgstr ""
 
-#: common.opt:430
+#: common.opt:426
 msgid "Map one directory name to another in debug information"
 msgstr ""
 
-#: common.opt:436
+#: common.opt:432
 msgid "Defer popping functions args from stack until later"
 msgstr ""
 
-#: common.opt:440
+#: common.opt:436
 msgid "Attempt to fill delay slots of branch instructions"
 msgstr ""
 
-#: common.opt:444
+#: common.opt:440
 msgid "Delete useless null pointer checks"
 msgstr ""
 
-#: common.opt:448
+#: common.opt:444
 msgid ""
 "How often to emit source location at the beginning of line-wrapped "
 "diagnostics"
 msgstr ""
 
-#: common.opt:452
+#: common.opt:448
 msgid ""
 "Amend appropriate diagnostic messages with the command line option that "
 "controls them"
 msgstr ""
 
-#: common.opt:456
+#: common.opt:452
 msgid "Dump various compiler internals to a file"
 msgstr ""
 
-#: common.opt:460
+#: common.opt:456
 msgid "Suppress output of addresses in debugging dumps"
 msgstr ""
 
-#: common.opt:464
+#: common.opt:460
 msgid ""
 "Suppress output of instruction numbers, line number notes and addresses in "
 "debugging dumps"
 msgstr ""
 
-#: common.opt:468
+#: common.opt:464
 msgid "Enable CFI tables via GAS assembler directives."
 msgstr ""
 
-#: common.opt:472
+#: common.opt:468
 msgid "Perform early inlining"
 msgstr ""
 
-#: common.opt:476
+#: common.opt:472
 msgid "Perform DWARF2 duplicate elimination"
 msgstr ""
 
-#: common.opt:480 common.opt:484
+#: common.opt:476 common.opt:480
 msgid "Perform unused type elimination in debug info"
 msgstr ""
 
-#: common.opt:488
+#: common.opt:484
 msgid "Do not suppress C++ class debug information."
 msgstr ""
 
-#: common.opt:492
+#: common.opt:488
 msgid "Enable exception handling"
 msgstr ""
 
-#: common.opt:496
+#: common.opt:492
 msgid "Perform a number of minor, expensive optimizations"
 msgstr ""
 
-#: common.opt:503
+#: common.opt:499
 msgid "Assume no NaNs or infinities are generated"
 msgstr ""
 
-#: common.opt:507
+#: common.opt:503
 msgid "Mark <register> as being unavailable to the compiler"
 msgstr ""
 
-#: common.opt:511
+#: common.opt:507
 msgid "Don't allocate floats and doubles in extended-precision registers"
 msgstr ""
 
-#: common.opt:515 common.opt:728 common.opt:949 common.opt:1105
-#: common.opt:1164 common.opt:1180 common.opt:1240
+#: common.opt:511 common.opt:724 common.opt:945 common.opt:1101
+#: common.opt:1160 common.opt:1176 common.opt:1236
 msgid "Does nothing.  Preserved for backward compatibility."
 msgstr ""
 
-#: common.opt:519
+#: common.opt:515
 msgid "Perform a forward propagation pass on RTL"
 msgstr ""
 
-#: common.opt:526
+#: common.opt:522
 msgid "Allow function addresses to be held in registers"
 msgstr ""
 
-#: common.opt:530
+#: common.opt:526
 msgid "Place each function into its own section"
 msgstr ""
 
-#: common.opt:534
+#: common.opt:530
 msgid "Perform global common subexpression elimination"
 msgstr ""
 
-#: common.opt:538
+#: common.opt:534
 msgid ""
 "Perform enhanced load motion during global common subexpression elimination"
 msgstr ""
 
-#: common.opt:542
+#: common.opt:538
 msgid "Perform store motion after global common subexpression elimination"
 msgstr ""
 
-#: common.opt:546
+#: common.opt:542
 msgid ""
 "Perform redundant load after store elimination in global common subexpression"
 msgstr ""
 
-#: common.opt:551
+#: common.opt:547
 msgid ""
 "Perform global common subexpression elimination after register allocation"
 msgstr ""
 
-#: common.opt:557
+#: common.opt:553
 msgid "Enable in and out of Graphite representation"
 msgstr ""
 
-#: common.opt:561
+#: common.opt:557
 msgid "Enable Loop Strip Mining transformation"
 msgstr ""
 
-#: common.opt:565
+#: common.opt:561
 msgid "Enable Loop Interchange transformation"
 msgstr ""
 
-#: common.opt:569
+#: common.opt:565
 msgid "Enable Loop Blocking transformation"
 msgstr ""
 
-#: common.opt:574
+#: common.opt:570
 msgid "Enable Graphite Identity transformation"
 msgstr ""
 
-#: common.opt:578
+#: common.opt:574
 msgid "Enable guessing of branch probabilities"
 msgstr ""
 
-#: common.opt:586
+#: common.opt:582
 msgid "Process #ident directives"
 msgstr ""
 
-#: common.opt:590
+#: common.opt:586
 msgid "Perform conversion of conditional jumps to branchless equivalents"
 msgstr ""
 
-#: common.opt:594
+#: common.opt:590
 msgid "Perform conversion of conditional jumps to conditional execution"
 msgstr ""
 
-#: common.opt:602
+#: common.opt:598
 msgid "Do not generate .size directives"
 msgstr ""
 
-#: common.opt:606
+#: common.opt:602
 msgid "Perform indirect inlining"
 msgstr ""
 
-#: common.opt:615
+#: common.opt:611
 msgid "Pay attention to the \"inline\" keyword"
 msgstr ""
 
-#: common.opt:619
+#: common.opt:615
 msgid ""
 "Integrate simple functions into their callers when code size is known to not "
 "growth"
 msgstr ""
 
-#: common.opt:623
+#: common.opt:619
 msgid "Integrate simple functions into their callers"
 msgstr ""
 
-#: common.opt:627
+#: common.opt:623
 msgid "Integrate functions called once into their callers"
 msgstr ""
 
-#: common.opt:634
+#: common.opt:630
 msgid "Limit the size of inlined functions to <number>"
 msgstr ""
 
-#: common.opt:638
+#: common.opt:634
 msgid "Instrument function entry and exit with profiling calls"
 msgstr ""
 
-#: common.opt:642
+#: common.opt:638
 msgid ""
 "-finstrument-functions-exclude-function-list=name,...  Do not instrument "
 "listed functions"
 msgstr ""
 
-#: common.opt:646
+#: common.opt:642
 msgid ""
 "-finstrument-functions-exclude-file-list=filename,...  Do not instrument "
 "functions listed in files"
 msgstr ""
 
-#: common.opt:650
+#: common.opt:646
 msgid "Perform Interprocedural constant propagation"
 msgstr ""
 
-#: common.opt:654
+#: common.opt:650
 msgid "Perform cloning to make Interprocedural constant propagation stronger"
 msgstr ""
 
-#: common.opt:658
+#: common.opt:654
 msgid "Discover pure and const functions"
 msgstr ""
 
-#: common.opt:662
+#: common.opt:658
 msgid "Perform interprocedural points-to analysis"
 msgstr ""
 
-#: common.opt:666
+#: common.opt:662
 msgid "Discover readonly and non addressable static variables"
 msgstr ""
 
-#: common.opt:670
+#: common.opt:666
 msgid "Type based escape and alias analysis"
 msgstr ""
 
-#: common.opt:674
+#: common.opt:670
 msgid "Perform matrix layout flattening and transposing based"
 msgstr ""
 
-#: common.opt:679
+#: common.opt:675
 msgid "Perform structure layout optimizations based"
 msgstr ""
 
-#: common.opt:684
+#: common.opt:680
 msgid "-fira-algorithm=[CB|priority] Set the used IRA algorithm"
 msgstr ""
 
-#: common.opt:688
+#: common.opt:684
 msgid "-fira-region=[one|all|mixed] Set regions for IRA"
 msgstr ""
 
-#: common.opt:692
+#: common.opt:688
 msgid "Do optimistic coalescing."
 msgstr ""
 
-#: common.opt:696
+#: common.opt:692
 msgid "Share slots for saving different hard registers."
 msgstr ""
 
-#: common.opt:700
+#: common.opt:696
 msgid "Share stack slots for spilled pseudo-registers."
 msgstr ""
 
-#: common.opt:704
+#: common.opt:700
 msgid "-fira-verbose=<number> Control IRA's level of diagnostic messages."
 msgstr ""
 
-#: common.opt:708
+#: common.opt:704
 msgid "Optimize induction variables on trees"
 msgstr ""
 
-#: common.opt:712
+#: common.opt:708
 msgid "Use jump tables for sufficiently large switch statements"
 msgstr ""
 
-#: common.opt:716
+#: common.opt:712
 msgid "Generate code for functions even if they are fully inlined"
 msgstr ""
 
-#: common.opt:720
+#: common.opt:716
 msgid "Emit static const variables even if they are not used"
 msgstr ""
 
-#: common.opt:724
+#: common.opt:720
 msgid "Give external symbols a leading underscore"
 msgstr ""
 
-#: common.opt:732
+#: common.opt:728
 msgid "Set errno after built-in math functions"
 msgstr ""
 
-#: common.opt:736
+#: common.opt:732
 msgid "Report on permanent memory allocation"
 msgstr ""
 
-#: common.opt:743
+#: common.opt:739
 msgid "Attempt to merge identical constants and constant variables"
 msgstr ""
 
-#: common.opt:747
+#: common.opt:743
 msgid "Attempt to merge identical constants across compilation units"
 msgstr ""
 
-#: common.opt:751
+#: common.opt:747
 msgid "Attempt to merge identical debug strings across compilation units"
 msgstr ""
 
-#: common.opt:755
+#: common.opt:751
 msgid ""
 "Limit diagnostics to <number> characters per line.  0 suppresses line-"
 "wrapping"
 msgstr ""
 
-#: common.opt:759
+#: common.opt:755
 msgid "Perform SMS based modulo scheduling before the first scheduling pass"
 msgstr ""
 
-#: common.opt:763
+#: common.opt:759
 msgid "Perform SMS based modulo scheduling with register moves allowed"
 msgstr ""
 
-#: common.opt:767
+#: common.opt:763
 msgid "Move loop invariant computations out of loops"
 msgstr ""
 
-#: common.opt:771
+#: common.opt:767
 msgid "Add mudflap bounds-checking instrumentation for single-threaded program"
 msgstr ""
 
-#: common.opt:775
+#: common.opt:771
 msgid "Add mudflap bounds-checking instrumentation for multi-threaded program"
 msgstr ""
 
-#: common.opt:779
+#: common.opt:775
 msgid "Ignore read operations when inserting mudflap instrumentation"
 msgstr ""
 
-#: common.opt:783
+#: common.opt:779
 msgid "Use the RTL dead code elimination pass"
 msgstr ""
 
-#: common.opt:787
+#: common.opt:783
 msgid "Use the RTL dead store elimination pass"
 msgstr ""
 
-#: common.opt:791
+#: common.opt:787
 msgid ""
 "Enable/Disable the traditional scheduling in loops that already passed "
 "modulo scheduling"
 msgstr ""
 
-#: common.opt:795
+#: common.opt:791
 msgid "Support synchronous non-call exceptions"
 msgstr ""
 
-#: common.opt:799
+#: common.opt:795
 msgid "When possible do not generate stack frames"
 msgstr ""
 
-#: common.opt:803
+#: common.opt:799
 msgid "Do the full register move optimization pass"
 msgstr ""
 
-#: common.opt:807
+#: common.opt:803
 msgid "Optimize sibling and tail recursive calls"
 msgstr ""
 
-#: common.opt:811 common.opt:815
+#: common.opt:807 common.opt:811
 msgid "Report on memory allocation before interprocedural optimization"
 msgstr ""
 
-#: common.opt:819
+#: common.opt:815
 msgid "Pack structure members together without holes"
 msgstr ""
 
-#: common.opt:823
+#: common.opt:819
 msgid "Set initial maximum structure member alignment"
 msgstr ""
 
-#: common.opt:827
+#: common.opt:823
 msgid "Return small aggregates in memory, not registers"
 msgstr ""
 
-#: common.opt:831
+#: common.opt:827
 msgid "Perform loop peeling"
 msgstr ""
 
-#: common.opt:835
+#: common.opt:831
 msgid "Enable machine specific peephole optimizations"
 msgstr ""
 
-#: common.opt:839
+#: common.opt:835
 msgid "Enable an RTL peephole pass before sched2"
 msgstr ""
 
-#: common.opt:843
+#: common.opt:839
 msgid "Generate position-independent code if possible (large mode)"
 msgstr ""
 
-#: common.opt:847
+#: common.opt:843
 msgid ""
 "Generate position-independent code for executables if possible (large mode)"
 msgstr ""
 
-#: common.opt:851
+#: common.opt:847
 msgid "Generate position-independent code if possible (small mode)"
 msgstr ""
 
-#: common.opt:855
+#: common.opt:851
 msgid ""
 "Generate position-independent code for executables if possible (small mode)"
 msgstr ""
 
-#: common.opt:859
+#: common.opt:855
 msgid "Run predictive commoning optimization."
 msgstr ""
 
-#: common.opt:863
+#: common.opt:859
 msgid "Generate prefetch instructions, if available, for arrays in loops"
 msgstr ""
 
-#: common.opt:867
+#: common.opt:863
 msgid "Enable basic program profiling code"
 msgstr ""
 
-#: common.opt:871
+#: common.opt:867
 msgid "Insert arc-based program profiling code"
 msgstr ""
 
-#: common.opt:875
+#: common.opt:871
 msgid "Set the top-level directory for storing the profile data."
 msgstr ""
 
-#: common.opt:880
+#: common.opt:876
 msgid "Enable correction of flow inconsistent profile data input"
 msgstr ""
 
-#: common.opt:884
+#: common.opt:880
 msgid ""
 "Enable common options for generating profile info for profile feedback "
 "directed optimizations"
 msgstr ""
 
-#: common.opt:888
+#: common.opt:884
 msgid ""
 "Enable common options for generating profile info for profile feedback "
 "directed optimizations, and set -fprofile-dir="
 msgstr ""
 
-#: common.opt:892
+#: common.opt:888
 msgid ""
 "Enable common options for performing profile feedback directed optimizations"
 msgstr ""
 
-#: common.opt:896
+#: common.opt:892
 msgid ""
 "Enable common options for performing profile feedback directed "
 "optimizations, and set -fprofile-dir="
 msgstr ""
 
-#: common.opt:900
+#: common.opt:896
 msgid "Insert code to profile values of expressions"
 msgstr ""
 
-#: common.opt:907
+#: common.opt:903
 msgid "Make compile reproducible using <string>"
 msgstr ""
 
-#: common.opt:917
+#: common.opt:913
 msgid "Record gcc command line switches in the object file."
 msgstr ""
 
-#: common.opt:921
+#: common.opt:917
 msgid "Return small aggregates in registers"
 msgstr ""
 
-#: common.opt:925
+#: common.opt:921
 msgid "Enables a register move optimization"
 msgstr ""
 
-#: common.opt:929
+#: common.opt:925
 msgid "Perform a register renaming optimization pass"
 msgstr ""
 
-#: common.opt:933
+#: common.opt:929
 msgid "Reorder basic blocks to improve code placement"
 msgstr ""
 
-#: common.opt:937
+#: common.opt:933
 msgid "Reorder basic blocks and partition into hot and cold sections"
 msgstr ""
 
-#: common.opt:941
+#: common.opt:937
 msgid "Reorder functions to improve code placement"
 msgstr ""
 
-#: common.opt:945
+#: common.opt:941
 msgid "Add a common subexpression elimination pass after loop optimizations"
 msgstr ""
 
-#: common.opt:953
+#: common.opt:949
 msgid "Disable optimizations that assume default FP rounding behavior"
 msgstr ""
 
-#: common.opt:957
+#: common.opt:953
 msgid "Enable scheduling across basic blocks"
 msgstr ""
 
-#: common.opt:961
+#: common.opt:957
 msgid "Allow speculative motion of non-loads"
 msgstr ""
 
-#: common.opt:965
+#: common.opt:961
 msgid "Allow speculative motion of some loads"
 msgstr ""
 
-#: common.opt:969
+#: common.opt:965
 msgid "Allow speculative motion of more loads"
 msgstr ""
 
-#: common.opt:973
+#: common.opt:969
 msgid "Set the verbosity level of the scheduler"
 msgstr ""
 
-#: common.opt:977
+#: common.opt:973
 msgid "If scheduling post reload, do superblock scheduling"
 msgstr ""
 
-#: common.opt:981
+#: common.opt:977
 msgid "If scheduling post reload, do trace scheduling"
 msgstr ""
 
-#: common.opt:985
+#: common.opt:981
 msgid "Reschedule instructions before register allocation"
 msgstr ""
 
-#: common.opt:989
+#: common.opt:985
 msgid "Reschedule instructions after register allocation"
 msgstr ""
 
-#: common.opt:996
+#: common.opt:992
 msgid "Schedule instructions using selective scheduling algorithm"
 msgstr ""
 
-#: common.opt:1000
+#: common.opt:996
 msgid "Run selective scheduling after reload"
 msgstr ""
 
-#: common.opt:1004
+#: common.opt:1000
 msgid "Perform software pipelining of inner loops during selective scheduling"
 msgstr ""
 
-#: common.opt:1008
+#: common.opt:1004
 msgid "Perform software pipelining of outer loops during selective scheduling"
 msgstr ""
 
-#: common.opt:1012
+#: common.opt:1008
 msgid "Reschedule pipelined regions without pipelining"
 msgstr ""
 
-#: common.opt:1018
+#: common.opt:1014
 msgid "Allow premature scheduling of queued insns"
 msgstr ""
 
-#: common.opt:1022
+#: common.opt:1018
 msgid "Set number of queued insns that can be prematurely scheduled"
 msgstr ""
 
-#: common.opt:1030 common.opt:1034
+#: common.opt:1026 common.opt:1030
 msgid ""
 "Set dependence distance checking in premature scheduling of queued insns"
 msgstr ""
 
-#: common.opt:1038
+#: common.opt:1034
 msgid "Access data in the same section from shared anchor points"
 msgstr ""
 
-#: common.opt:1042
+#: common.opt:1038
 msgid "Perform sequence abstraction optimization on RTL"
 msgstr ""
 
-#: common.opt:1046
+#: common.opt:1042
 msgid "Eliminate redundant sign extensions using LCM."
 msgstr ""
 
-#: common.opt:1050
+#: common.opt:1046
 msgid "Show column numbers in diagnostics, when available.  Default off"
 msgstr ""
 
-#: common.opt:1054
+#: common.opt:1050
 msgid "Disable optimizations observable by IEEE signaling NaNs"
 msgstr ""
 
-#: common.opt:1058
+#: common.opt:1054
 msgid ""
 "Disable floating point optimizations that ignore the IEEE signedness of zero"
 msgstr ""
 
-#: common.opt:1062
+#: common.opt:1058
 msgid "Convert floating point constants to single precision constants"
 msgstr ""
 
-#: common.opt:1066
+#: common.opt:1062
 msgid "Split lifetimes of induction variables when loops are unrolled"
 msgstr ""
 
-#: common.opt:1070
+#: common.opt:1066
 msgid "Split wide types into independent registers"
 msgstr ""
 
-#: common.opt:1074
+#: common.opt:1070
 msgid "Apply variable expansion when loops are unrolled"
 msgstr ""
 
-#: common.opt:1078
+#: common.opt:1074
 msgid "Insert stack checking code into the program"
 msgstr ""
 
-#: common.opt:1082
+#: common.opt:1078
 msgid ""
 "Insert stack checking code into the program.  Same as -fstack-check=specific"
 msgstr ""
 
-#: common.opt:1089
+#: common.opt:1085
 msgid "Trap if the stack goes past <register>"
 msgstr ""
 
-#: common.opt:1093
+#: common.opt:1089
 msgid "Trap if the stack goes past symbol <name>"
 msgstr ""
 
-#: common.opt:1097
+#: common.opt:1093
 msgid "Use propolice as a stack protection method"
 msgstr ""
 
-#: common.opt:1101
+#: common.opt:1097
 msgid "Use a stack protection method for every function"
 msgstr ""
 
-#: common.opt:1113
+#: common.opt:1109
 msgid "Assume strict aliasing rules apply"
 msgstr ""
 
-#: common.opt:1117
+#: common.opt:1113
 msgid "Treat signed overflow as undefined"
 msgstr ""
 
-#: common.opt:1121
+#: common.opt:1117
 msgid "Check for syntax errors, then stop"
 msgstr ""
 
-#: common.opt:1125
+#: common.opt:1121
 msgid "Create data files needed by \"gcov\""
 msgstr ""
 
-#: common.opt:1129
+#: common.opt:1125
 msgid "Perform jump threading optimizations"
 msgstr ""
 
-#: common.opt:1133
+#: common.opt:1129
 msgid "Report the time taken by each compiler pass"
 msgstr ""
 
-#: common.opt:1137
+#: common.opt:1133
 msgid "Set the default thread-local storage code generation model"
 msgstr ""
 
-#: common.opt:1141
+#: common.opt:1137
 msgid "Reorder top level functions, variables, and asms"
 msgstr ""
 
-#: common.opt:1145
+#: common.opt:1141
 msgid "Perform superblock formation via tail duplication"
 msgstr ""
 
-#: common.opt:1152
+#: common.opt:1148
 msgid "Assume floating-point operations can trap"
 msgstr ""
 
-#: common.opt:1156
+#: common.opt:1152
 msgid "Trap for signed overflow in addition, subtraction and multiplication"
 msgstr ""
 
-#: common.opt:1160
+#: common.opt:1156
 msgid "Enable SSA-CCP optimization on trees"
 msgstr ""
 
-#: common.opt:1168
+#: common.opt:1164
 msgid "Enable loop header copying on trees"
 msgstr ""
 
-#: common.opt:1172
+#: common.opt:1168
 msgid "Replace SSA temporaries with better names in copies"
 msgstr ""
 
-#: common.opt:1176
+#: common.opt:1172
 msgid "Enable copy propagation on trees"
 msgstr ""
 
-#: common.opt:1184
+#: common.opt:1180
 msgid "Transform condition stores into unconditional ones"
 msgstr ""
 
-#: common.opt:1188
+#: common.opt:1184
 msgid "Perform conversions of switch initializations."
 msgstr ""
 
-#: common.opt:1192
+#: common.opt:1188
 msgid "Enable SSA dead code elimination optimization on trees"
 msgstr ""
 
-#: common.opt:1196
+#: common.opt:1192
 msgid "Enable dominator optimizations"
 msgstr ""
 
-#: common.opt:1200
+#: common.opt:1196
 msgid "Enable dead store elimination"
 msgstr ""
 
-#: common.opt:1204
+#: common.opt:1200
 msgid "Enable Full Redundancy Elimination (FRE) on trees"
 msgstr ""
 
-#: common.opt:1208
+#: common.opt:1204
 msgid "Enable loop distribution on trees"
 msgstr ""
 
-#: common.opt:1212
+#: common.opt:1208
 msgid "Enable loop invariant motion on trees"
 msgstr ""
 
-#: common.opt:1216
+#: common.opt:1212
 msgid "Enable linear loop transforms on trees"
 msgstr ""
 
-#: common.opt:1220
+#: common.opt:1216
 msgid "Create canonical induction variables in loops"
 msgstr ""
 
-#: common.opt:1224
+#: common.opt:1220
 msgid "Enable loop optimizations on tree level"
 msgstr ""
 
-#: common.opt:1228
+#: common.opt:1224
 msgid "Enable automatic parallelization of loops"
 msgstr ""
 
-#: common.opt:1232
+#: common.opt:1228
 msgid "Enable SSA-PRE optimization on trees"
 msgstr ""
 
-#: common.opt:1236
+#: common.opt:1232
 msgid "Enable reassociation on tree level"
 msgstr ""
 
-#: common.opt:1244
+#: common.opt:1240
 msgid "Enable SSA code sinking on trees"
 msgstr ""
 
-#: common.opt:1248
+#: common.opt:1244
 msgid "Perform scalar replacement of aggregates"
 msgstr ""
 
-#: common.opt:1252
+#: common.opt:1248
 msgid "Replace temporary expressions in the SSA->normal pass"
 msgstr ""
 
-#: common.opt:1256
+#: common.opt:1252
 msgid "Perform live range splitting during the SSA->normal pass"
 msgstr ""
 
-#: common.opt:1260
+#: common.opt:1256
 msgid "Perform Value Range Propagation on trees"
 msgstr ""
 
-#: common.opt:1264
+#: common.opt:1260
 msgid "Compile whole compilation unit at a time"
 msgstr ""
 
-#: common.opt:1268
+#: common.opt:1264
 msgid "Perform loop unrolling when iteration count is known"
 msgstr ""
 
-#: common.opt:1272
+#: common.opt:1268
 msgid "Perform loop unrolling for all loops"
 msgstr ""
 
-#: common.opt:1279
+#: common.opt:1275
 msgid "Allow loop optimizations to assume that the loops behave in normal way"
 msgstr ""
 
-#: common.opt:1283
+#: common.opt:1279
 msgid "Allow optimization for floating-point arithmetic which may change the"
 msgstr ""
 
-#: common.opt:1288
+#: common.opt:1284
 msgid "Same as -fassociative-math for expressions which include division."
 msgstr ""
 
-#: common.opt:1296
+#: common.opt:1292
 msgid "Allow math optimizations that may violate IEEE or ISO standards"
 msgstr ""
 
-#: common.opt:1300
+#: common.opt:1296
 msgid "Perform loop unswitching"
 msgstr ""
 
-#: common.opt:1304
+#: common.opt:1300
 msgid "Just generate unwind tables for exception handling"
 msgstr ""
 
-#: common.opt:1308
+#: common.opt:1304
 msgid "Perform variable tracking"
 msgstr ""
 
-#: common.opt:1312
+#: common.opt:1308
 msgid "Perform variable tracking and also tag variables that are uninitialized"
 msgstr ""
 
-#: common.opt:1316
+#: common.opt:1312
 msgid "Enable loop vectorization on trees"
 msgstr ""
 
-#: common.opt:1320
+#: common.opt:1316
 msgid "Enable use of cost model in vectorization"
 msgstr ""
 
-#: common.opt:1324
+#: common.opt:1320
 msgid "Enable loop versioning when doing loop vectorization on trees"
 msgstr ""
 
-#: common.opt:1328
+#: common.opt:1324
 msgid "Set the verbosity level of the vectorizer"
 msgstr ""
 
-#: common.opt:1332
+#: common.opt:1328
 msgid "Enable copy propagation of scalar-evolution information."
 msgstr ""
 
-#: common.opt:1342
+#: common.opt:1338
 msgid "Add extra commentary to assembler output"
 msgstr ""
 
-#: common.opt:1346
+#: common.opt:1342
 msgid "Set the default symbol visibility"
 msgstr ""
 
-#: common.opt:1351
+#: common.opt:1347
 msgid "Use expression value profiles in optimizations"
 msgstr ""
 
-#: common.opt:1355
+#: common.opt:1351
 msgid "Construct webs and split unrelated uses of single variable"
 msgstr ""
 
-#: common.opt:1359
+#: common.opt:1355
 msgid "Enable conditional dead code elimination for builtin calls"
 msgstr ""
 
-#: common.opt:1363
+#: common.opt:1359
 msgid "Perform whole program optimizations"
 msgstr ""
 
-#: common.opt:1367
+#: common.opt:1363
 msgid "Assume signed arithmetic overflow wraps around"
 msgstr ""
 
-#: common.opt:1371
+#: common.opt:1367
 msgid "Put zero initialized data in the bss section"
 msgstr ""
 
-#: common.opt:1375
+#: common.opt:1371
 msgid "Generate debug information in default format"
 msgstr ""
 
-#: common.opt:1379
+#: common.opt:1375
 msgid "Generate debug information in COFF format"
 msgstr ""
 
-#: common.opt:1383
+#: common.opt:1379
 msgid "Generate debug information in DWARF v2 format"
 msgstr ""
 
-#: common.opt:1387
+#: common.opt:1383
 msgid "Generate debug information in default extended format"
 msgstr ""
 
-#: common.opt:1391
+#: common.opt:1387
 msgid "Generate debug information in STABS format"
 msgstr ""
 
-#: common.opt:1395
+#: common.opt:1391
 msgid "Generate debug information in extended STABS format"
 msgstr ""
 
-#: common.opt:1399
+#: common.opt:1395
 msgid "Generate debug information in VMS format"
 msgstr ""
 
-#: common.opt:1403
+#: common.opt:1399
 msgid "Generate debug information in XCOFF format"
 msgstr ""
 
-#: common.opt:1407
+#: common.opt:1403
 msgid "Generate debug information in extended XCOFF format"
 msgstr ""
 
-#: common.opt:1411
+#: common.opt:1407
 msgid "Place output into <file>"
 msgstr ""
 
-#: common.opt:1415
+#: common.opt:1411
 msgid "Enable function profiling"
 msgstr ""
 
-#: common.opt:1419
+#: common.opt:1415
 msgid "Issue warnings needed for strict compliance to the standard"
 msgstr ""
 
-#: common.opt:1423
+#: common.opt:1419
 msgid "Like -pedantic but issue them as errors"
 msgstr ""
 
-#: common.opt:1427
+#: common.opt:1423
 msgid "Do not display functions compiled or elapsed time"
 msgstr ""
 
-#: common.opt:1431
+#: common.opt:1427
 msgid "Display the compiler's version"
 msgstr ""
 
-#: common.opt:1435
+#: common.opt:1431
 msgid "Suppress warnings"
 msgstr ""
 
-#: common.opt:1439
+#: common.opt:1435
 msgid "Create a shared library"
 msgstr ""
 
-#: common.opt:1443
+#: common.opt:1439
 msgid "Create a position independent executable"
 msgstr ""
 
@@ -17508,47 +17508,52 @@
 "branch target register load optimization is not intended to be run twice"
 msgstr ""
 
-#: builtins.c:1039
+#: builtins.c:479
+#, gcc-internal-format
+msgid "offset outside bounds of constant string"
+msgstr ""
+
+#: builtins.c:1042
 #, gcc-internal-format
 msgid "second argument to %<__builtin_prefetch%> must be a constant"
 msgstr ""
 
-#: builtins.c:1046
+#: builtins.c:1049
 #, gcc-internal-format
 msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
 msgstr ""
 
-#: builtins.c:1054
+#: builtins.c:1057
 #, gcc-internal-format
 msgid "third argument to %<__builtin_prefetch%> must be a constant"
 msgstr ""
 
-#: builtins.c:1061
+#: builtins.c:1064
 #, gcc-internal-format
 msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
 msgstr ""
 
-#: builtins.c:4665
+#: builtins.c:4668
 #, gcc-internal-format
 msgid "argument of %<__builtin_args_info%> must be constant"
 msgstr ""
 
-#: builtins.c:4671
+#: builtins.c:4674
 #, gcc-internal-format
 msgid "argument of %<__builtin_args_info%> out of range"
 msgstr ""
 
-#: builtins.c:4677
+#: builtins.c:4680
 #, gcc-internal-format
 msgid "missing argument in %<__builtin_args_info%>"
 msgstr ""
 
-#: builtins.c:4813 gimplify.c:2324
+#: builtins.c:4816 gimplify.c:2324
 #, gcc-internal-format
 msgid "too few arguments to function %<va_start%>"
 msgstr ""
 
-#: builtins.c:4971
+#: builtins.c:4974
 #, gcc-internal-format
 msgid "first argument to %<va_arg%> not of type %<va_list%>"
 msgstr ""
@@ -17556,93 +17561,93 @@
 #. Unfortunately, this is merely undefined, rather than a constraint
 #. violation, so we cannot make this an error.  If this call is never
 #. executed, the program is still strictly conforming.
-#: builtins.c:4986
+#: builtins.c:4989
 #, gcc-internal-format
 msgid "%qT is promoted to %qT when passed through %<...%>"
 msgstr ""
 
-#: builtins.c:4991
+#: builtins.c:4994
 #, gcc-internal-format
 msgid "(so you should pass %qT not %qT to %<va_arg%>)"
 msgstr ""
 
 #. We can, however, treat "undefined" any way we please.
 #. Call abort to encourage the user to fix the program.
-#: builtins.c:4998 c-typeck.c:2451
+#: builtins.c:5001 c-typeck.c:2451
 #, gcc-internal-format
 msgid "if this code is reached, the program will abort"
 msgstr ""
 
-#: builtins.c:5122
+#: builtins.c:5125
 #, gcc-internal-format
 msgid "invalid argument to %<__builtin_frame_address%>"
 msgstr ""
 
-#: builtins.c:5124
+#: builtins.c:5127
 #, gcc-internal-format
 msgid "invalid argument to %<__builtin_return_address%>"
 msgstr ""
 
-#: builtins.c:5137
+#: builtins.c:5140
 #, gcc-internal-format
 msgid "unsupported argument to %<__builtin_frame_address%>"
 msgstr ""
 
-#: builtins.c:5139
+#: builtins.c:5142
 #, gcc-internal-format
 msgid "unsupported argument to %<__builtin_return_address%>"
 msgstr ""
 
-#: builtins.c:5685
+#: builtins.c:5688
 #, gcc-internal-format
 msgid "both arguments to %<__builtin___clear_cache%> must be pointers"
 msgstr ""
 
-#: builtins.c:6047 builtins.c:6062
+#: builtins.c:6050 builtins.c:6065
 #, gcc-internal-format
 msgid "%qD changed semantics in GCC 4.4"
 msgstr ""
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.c:6448 expr.c:8051
+#: builtins.c:6451 expr.c:8051
 msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>"
 msgstr ""
 
 #. All valid uses of __builtin_va_arg_pack_len () are removed during
 #. inlining.
-#: builtins.c:6454
+#: builtins.c:6457
 msgid "%Kinvalid use of %<__builtin_va_arg_pack_len ()%>"
 msgstr ""
 
-#: builtins.c:6750
+#: builtins.c:6753
 #, gcc-internal-format
 msgid "%<__builtin_longjmp%> second argument must be 1"
 msgstr ""
 
-#: builtins.c:7386
+#: builtins.c:7389
 #, gcc-internal-format
 msgid "target format does not support infinity"
 msgstr ""
 
-#: builtins.c:11730
+#: builtins.c:11733
 #, gcc-internal-format
 msgid "%<va_start%> used in function with fixed args"
 msgstr ""
 
-#: builtins.c:11738
+#: builtins.c:11741
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr ""
 
 #. Evidently an out of date version of <stdarg.h>; can't validate
 #. va_start's second argument, but can still work as intended.
-#: builtins.c:11751
+#: builtins.c:11754
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr ""
 
-#: builtins.c:11756
+#: builtins.c:11759
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr ""
@@ -17652,39 +17657,39 @@
 #. argument.  We just warn and set the arg to be the last
 #. argument so that we will get wrong-code because of
 #. it.
-#: builtins.c:11783
+#: builtins.c:11786
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr ""
 
-#: builtins.c:11793
+#: builtins.c:11796
 #, gcc-internal-format
 msgid ""
 "undefined behaviour when second parameter of %<va_start%> is declared with %"
 "<register%> storage"
 msgstr ""
 
-#: builtins.c:11908
+#: builtins.c:11911
 msgid "%Kfirst argument of %D must be a pointer, second integer constant"
 msgstr ""
 
-#: builtins.c:11921
+#: builtins.c:11924
 msgid "%Klast argument of %D is not integer constant between 0 and 3"
 msgstr ""
 
-#: builtins.c:11966 builtins.c:12131 builtins.c:12190
+#: builtins.c:11969 builtins.c:12134 builtins.c:12193
 msgid "%Kcall to %D will always overflow destination buffer"
 msgstr ""
 
-#: builtins.c:12121
+#: builtins.c:12124
 msgid "%Kcall to %D might overflow destination buffer"
 msgstr ""
 
-#: builtins.c:12211
+#: builtins.c:12214
 msgid "%Kattempt to free a non-heap object %qD"
 msgstr ""
 
-#: builtins.c:12214
+#: builtins.c:12217
 msgid "%Kattempt to free a non-heap object"
 msgstr ""
 
@@ -17884,704 +17889,701 @@
 msgid "comparison of unsigned expression < 0 is always false"
 msgstr ""
 
-#: c-common.c:3225
+#: c-common.c:3224
 #, gcc-internal-format
 msgid "pointer of type %<void *%> used in arithmetic"
 msgstr ""
 
-#: c-common.c:3231
+#: c-common.c:3230
 #, gcc-internal-format
 msgid "pointer to a function used in arithmetic"
 msgstr ""
 
-#: c-common.c:3237
+#: c-common.c:3236
 #, gcc-internal-format
 msgid "pointer to member function used in arithmetic"
 msgstr ""
 
-#: c-common.c:3319
-#, gcc-internal-format
-msgid "offset %<%wd%> outside bounds of constant string"
-msgstr ""
-
-#: c-common.c:3422
+#: c-common.c:3396
 #, gcc-internal-format
 msgid "the address of %qD will always evaluate as %<true%>"
 msgstr ""
 
-#: c-common.c:3498 cp/semantics.c:594 cp/typeck.c:6638
+#: c-common.c:3472 cp/semantics.c:594 cp/typeck.c:6638
 #, gcc-internal-format
 msgid "suggest parentheses around assignment used as truth value"
 msgstr ""
 
-#: c-common.c:3577 c-typeck.c:8970
+#: c-common.c:3551 c-typeck.c:8974
 #, gcc-internal-format
 msgid "invalid use of %<restrict%>"
 msgstr ""
 
-#: c-common.c:3794
+#: c-common.c:3768
 #, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a function type"
 msgstr ""
 
-#: c-common.c:3807
+#: c-common.c:3781
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr ""
 
-#: c-common.c:3815
+#: c-common.c:3789
 #, gcc-internal-format
 msgid "invalid application of %qs to incomplete type %qT "
 msgstr ""
 
-#: c-common.c:3856
+#: c-common.c:3830
 #, gcc-internal-format
 msgid "%<__alignof%> applied to a bit-field"
 msgstr ""
 
-#: c-common.c:4495
+#: c-common.c:4469
 #, gcc-internal-format
 msgid "cannot disable built-in function %qs"
 msgstr ""
 
-#: c-common.c:4686
+#: c-common.c:4660
 #, gcc-internal-format
 msgid "pointers are not permitted as case values"
 msgstr ""
 
-#: c-common.c:4693
+#: c-common.c:4667
 #, gcc-internal-format
 msgid "range expressions in switch statements are non-standard"
 msgstr ""
 
-#: c-common.c:4719
+#: c-common.c:4693
 #, gcc-internal-format
 msgid "empty range specified"
 msgstr ""
 
-#: c-common.c:4779
+#: c-common.c:4753
 #, gcc-internal-format
 msgid "duplicate (or overlapping) case value"
 msgstr ""
 
-#: c-common.c:4780
+#: c-common.c:4754
 #, gcc-internal-format
 msgid "%Jthis is the first entry overlapping that value"
 msgstr ""
 
-#: c-common.c:4784
+#: c-common.c:4758
 #, gcc-internal-format
 msgid "duplicate case value"
 msgstr ""
 
-#: c-common.c:4785
+#: c-common.c:4759
 #, gcc-internal-format
 msgid "%Jpreviously used here"
 msgstr ""
 
-#: c-common.c:4789
+#: c-common.c:4763
 #, gcc-internal-format
 msgid "multiple default labels in one switch"
 msgstr ""
 
-#: c-common.c:4790
+#: c-common.c:4764
 #, gcc-internal-format
 msgid "%Jthis is the first default label"
 msgstr ""
 
-#: c-common.c:4841
+#: c-common.c:4815
 #, gcc-internal-format
 msgid "%Jcase value %qs not in enumerated type"
 msgstr ""
 
-#: c-common.c:4845
+#: c-common.c:4819
 #, gcc-internal-format
 msgid "%Jcase value %qs not in enumerated type %qT"
 msgstr ""
 
-#: c-common.c:4904
+#: c-common.c:4878
 #, gcc-internal-format
 msgid "%Hswitch missing default case"
 msgstr ""
 
-#: c-common.c:4975
+#: c-common.c:4949
 #, gcc-internal-format
 msgid "%Henumeration value %qE not handled in switch"
 msgstr ""
 
-#: c-common.c:5010
+#: c-common.c:4984
 #, gcc-internal-format
 msgid "taking the address of a label is non-standard"
 msgstr ""
 
-#: c-common.c:5166
+#: c-common.c:5140
 #, gcc-internal-format
 msgid "%qE attribute ignored for field of type %qT"
 msgstr ""
 
-#: c-common.c:5177 c-common.c:5196 c-common.c:5214 c-common.c:5241
-#: c-common.c:5268 c-common.c:5294 c-common.c:5313 c-common.c:5337
-#: c-common.c:5360 c-common.c:5383 c-common.c:5404 c-common.c:5425
-#: c-common.c:5449 c-common.c:5475 c-common.c:5512 c-common.c:5539
-#: c-common.c:5582 c-common.c:5666 c-common.c:5696 c-common.c:5715
-#: c-common.c:6050 c-common.c:6066 c-common.c:6114 c-common.c:6137
-#: c-common.c:6201 c-common.c:6329 c-common.c:6395 c-common.c:6439
-#: c-common.c:6485 c-common.c:6555 c-common.c:6579 c-common.c:6865
-#: c-common.c:6888 c-common.c:6927 c-common.c:7016 c-common.c:7156
+#: c-common.c:5151 c-common.c:5170 c-common.c:5188 c-common.c:5215
+#: c-common.c:5242 c-common.c:5268 c-common.c:5287 c-common.c:5311
+#: c-common.c:5334 c-common.c:5357 c-common.c:5378 c-common.c:5399
+#: c-common.c:5423 c-common.c:5449 c-common.c:5486 c-common.c:5513
+#: c-common.c:5556 c-common.c:5640 c-common.c:5670 c-common.c:5689
+#: c-common.c:6024 c-common.c:6040 c-common.c:6088 c-common.c:6111
+#: c-common.c:6175 c-common.c:6303 c-common.c:6369 c-common.c:6413
+#: c-common.c:6459 c-common.c:6529 c-common.c:6553 c-common.c:6839
+#: c-common.c:6862 c-common.c:6901 c-common.c:6990 c-common.c:7130
+#: ada/gcc-interface/utils.c:5186 ada/gcc-interface/utils.c:5359
+#: ada/gcc-interface/utils.c:5378
 #, gcc-internal-format
 msgid "%qE attribute ignored"
 msgstr ""
 
-#: c-common.c:5259 c-common.c:5285
+#: c-common.c:5233 c-common.c:5259
 #, gcc-internal-format
 msgid "%qE attribute conflicts with attribute %s"
 msgstr ""
 
-#: c-common.c:5506
+#: c-common.c:5480
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr ""
 
-#: c-common.c:5603
+#: c-common.c:5577
 #, gcc-internal-format
 msgid "destructor priorities are not supported"
 msgstr ""
 
-#: c-common.c:5605
+#: c-common.c:5579
 #, gcc-internal-format
 msgid "constructor priorities are not supported"
 msgstr ""
 
-#: c-common.c:5622
+#: c-common.c:5596
 #, gcc-internal-format
 msgid "destructor priorities from 0 to %d are reserved for the implementation"
 msgstr ""
 
-#: c-common.c:5627
+#: c-common.c:5601
 #, gcc-internal-format
 msgid "constructor priorities from 0 to %d are reserved for the implementation"
 msgstr ""
 
-#: c-common.c:5635
+#: c-common.c:5609
 #, gcc-internal-format
 msgid "destructor priorities must be integers from 0 to %d inclusive"
 msgstr ""
 
-#: c-common.c:5638
+#: c-common.c:5612
 #, gcc-internal-format
 msgid "constructor priorities must be integers from 0 to %d inclusive"
 msgstr ""
 
-#: c-common.c:5759
+#: c-common.c:5733
 #, gcc-internal-format
 msgid "unknown machine mode %qs"
 msgstr ""
 
-#: c-common.c:5788
+#: c-common.c:5762
 #, gcc-internal-format
 msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
 msgstr ""
 
-#: c-common.c:5791
+#: c-common.c:5765
 #, gcc-internal-format
 msgid "use __attribute__ ((vector_size)) instead"
 msgstr ""
 
-#: c-common.c:5800
+#: c-common.c:5774
 #, gcc-internal-format
 msgid "unable to emulate %qs"
 msgstr ""
 
-#: c-common.c:5810
+#: c-common.c:5784
 #, gcc-internal-format
 msgid "invalid pointer mode %qs"
 msgstr ""
 
-#: c-common.c:5827
+#: c-common.c:5801
 #, gcc-internal-format
 msgid "signness of type and machine mode %qs don't match"
 msgstr ""
 
-#: c-common.c:5838
+#: c-common.c:5812
 #, gcc-internal-format
 msgid "no data type for mode %qs"
 msgstr ""
 
-#: c-common.c:5848
+#: c-common.c:5822
 #, gcc-internal-format
 msgid "cannot use mode %qs for enumeral types"
 msgstr ""
 
-#: c-common.c:5875
+#: c-common.c:5849
 #, gcc-internal-format
 msgid "mode %qs applied to inappropriate type"
 msgstr ""
 
-#: c-common.c:5906
+#: c-common.c:5880
 #, gcc-internal-format
 msgid "%Jsection attribute cannot be specified for local variables"
 msgstr ""
 
-#: c-common.c:5917 config/bfin/bfin.c:5329 config/bfin/bfin.c:5380
+#: c-common.c:5891 config/bfin/bfin.c:5329 config/bfin/bfin.c:5380
 #, gcc-internal-format
 msgid "section of %q+D conflicts with previous declaration"
 msgstr ""
 
-#: c-common.c:5925
+#: c-common.c:5899
 #, gcc-internal-format
 msgid "section of %q+D cannot be overridden"
 msgstr ""
 
-#: c-common.c:5933
+#: c-common.c:5907
 #, gcc-internal-format
 msgid "section attribute not allowed for %q+D"
 msgstr ""
 
-#: c-common.c:5939
+#: c-common.c:5913
 #, gcc-internal-format
 msgid "%Jsection attributes are not supported for this target"
 msgstr ""
 
-#: c-common.c:5971
+#: c-common.c:5945
 #, gcc-internal-format
 msgid "requested alignment is not a constant"
 msgstr ""
 
-#: c-common.c:5976
+#: c-common.c:5950
 #, gcc-internal-format
 msgid "requested alignment is not a power of 2"
 msgstr ""
 
-#: c-common.c:5981
+#: c-common.c:5955
 #, gcc-internal-format
 msgid "requested alignment is too large"
 msgstr ""
 
-#: c-common.c:6007
+#: c-common.c:5981
 #, gcc-internal-format
 msgid "alignment may not be specified for %q+D"
 msgstr ""
 
-#: c-common.c:6014
+#: c-common.c:5988
 #, gcc-internal-format
 msgid ""
 "alignment for %q+D was previously specified as %d and may not be decreased"
 msgstr ""
 
-#: c-common.c:6018
+#: c-common.c:5992
 #, gcc-internal-format
 msgid "alignment for %q+D must be at least %d"
 msgstr ""
 
-#: c-common.c:6043
+#: c-common.c:6017
 #, gcc-internal-format
 msgid "inline function %q+D cannot be declared weak"
 msgstr ""
 
-#: c-common.c:6077
+#: c-common.c:6051
 #, gcc-internal-format
 msgid "%q+D defined both normally and as an alias"
 msgstr ""
 
-#: c-common.c:6093
+#: c-common.c:6067
 #, gcc-internal-format
 msgid "alias argument not a string"
 msgstr ""
 
-#: c-common.c:6158
+#: c-common.c:6132
 #, gcc-internal-format
 msgid "%Jweakref attribute must appear before alias attribute"
 msgstr ""
 
-#: c-common.c:6188
+#: c-common.c:6162
 #, gcc-internal-format
 msgid "%qE attribute ignored on non-class types"
 msgstr ""
 
-#: c-common.c:6194
+#: c-common.c:6168
 #, gcc-internal-format
 msgid "%qE attribute ignored because %qT is already defined"
 msgstr ""
 
-#: c-common.c:6207
+#: c-common.c:6181
 #, gcc-internal-format
 msgid "visibility argument not a string"
 msgstr ""
 
-#: c-common.c:6219
+#: c-common.c:6193
 #, gcc-internal-format
 msgid "%qE attribute ignored on types"
 msgstr ""
 
-#: c-common.c:6235
+#: c-common.c:6209
 #, gcc-internal-format
 msgid ""
 "visibility argument must be one of \"default\", \"hidden\", \"protected\" or "
 "\"internal\""
 msgstr ""
 
-#: c-common.c:6246
+#: c-common.c:6220
 #, gcc-internal-format
 msgid "%qD redeclared with different visibility"
 msgstr ""
 
-#: c-common.c:6249 c-common.c:6253
+#: c-common.c:6223 c-common.c:6227
 #, gcc-internal-format
 msgid "%qD was declared %qs which implies default visibility"
 msgstr ""
 
-#: c-common.c:6337
+#: c-common.c:6311
 #, gcc-internal-format
 msgid "tls_model argument not a string"
 msgstr ""
 
-#: c-common.c:6350
+#: c-common.c:6324
 #, gcc-internal-format
 msgid ""
 "tls_model argument must be one of \"local-exec\", \"initial-exec\", \"local-"
 "dynamic\" or \"global-dynamic\""
 msgstr ""
 
-#: c-common.c:6369 c-common.c:6459
+#: c-common.c:6343 c-common.c:6433
 #, gcc-internal-format
 msgid "%J%qE attribute applies only to functions"
 msgstr ""
 
-#: c-common.c:6374 c-common.c:6464
+#: c-common.c:6348 c-common.c:6438
 #, gcc-internal-format
 msgid "%Jcan%'t set %qE attribute after definition"
 msgstr ""
 
-#: c-common.c:6420
+#: c-common.c:6394
 #, gcc-internal-format
 msgid "alloc_size parameter outside range"
 msgstr ""
 
-#: c-common.c:6553
+#: c-common.c:6527
 #, gcc-internal-format
 msgid "%qE attribute ignored for %qE"
 msgstr ""
 
-#: c-common.c:6613
+#: c-common.c:6587
 #, gcc-internal-format
 msgid "invalid vector type for attribute %qE"
 msgstr ""
 
-#: c-common.c:6619
+#: c-common.c:6593
 #, gcc-internal-format
 msgid "vector size not an integral multiple of component size"
 msgstr ""
 
-#: c-common.c:6625
+#: c-common.c:6599
 #, gcc-internal-format
 msgid "zero vector size"
 msgstr ""
 
-#: c-common.c:6633
+#: c-common.c:6607
 #, gcc-internal-format
 msgid "number of components of the vector not a power of two"
 msgstr ""
 
-#: c-common.c:6661
+#: c-common.c:6635 ada/gcc-interface/utils.c:5237
 #, gcc-internal-format
 msgid "nonnull attribute without arguments on a non-prototype"
 msgstr ""
 
-#: c-common.c:6676
+#: c-common.c:6650 ada/gcc-interface/utils.c:5252
 #, gcc-internal-format
 msgid "nonnull argument has invalid operand number (argument %lu)"
 msgstr ""
 
-#: c-common.c:6695
+#: c-common.c:6669 ada/gcc-interface/utils.c:5271
 #, gcc-internal-format
 msgid ""
 "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
 msgstr ""
 
-#: c-common.c:6703
+#: c-common.c:6677 ada/gcc-interface/utils.c:5279
 #, gcc-internal-format
 msgid ""
 "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
 msgstr ""
 
-#: c-common.c:6779
+#: c-common.c:6753
 #, gcc-internal-format
 msgid "not enough variable arguments to fit a sentinel"
 msgstr ""
 
-#: c-common.c:6793
+#: c-common.c:6767
 #, gcc-internal-format
 msgid "missing sentinel in function call"
 msgstr ""
 
-#: c-common.c:6834
+#: c-common.c:6808
 #, gcc-internal-format
 msgid "null argument where non-null required (argument %lu)"
 msgstr ""
 
-#: c-common.c:6899
+#: c-common.c:6873
 #, gcc-internal-format
 msgid "cleanup argument not an identifier"
 msgstr ""
 
-#: c-common.c:6906
+#: c-common.c:6880
 #, gcc-internal-format
 msgid "cleanup argument not a function"
 msgstr ""
 
-#: c-common.c:6945
+#: c-common.c:6919 ada/gcc-interface/utils.c:5301
 #, gcc-internal-format
 msgid "%qE attribute requires prototypes with named arguments"
 msgstr ""
 
-#: c-common.c:6956
+#: c-common.c:6930 ada/gcc-interface/utils.c:5312
 #, gcc-internal-format
 msgid "%qE attribute only applies to variadic functions"
 msgstr ""
 
-#: c-common.c:6968
+#: c-common.c:6942 ada/gcc-interface/utils.c:5323
 #, gcc-internal-format
 msgid "requested position is not an integer constant"
 msgstr ""
 
-#: c-common.c:6976
+#: c-common.c:6950 ada/gcc-interface/utils.c:5330
 #, gcc-internal-format
 msgid "requested position is less than zero"
 msgstr ""
 
-#: c-common.c:7100
+#: c-common.c:7074
 #, gcc-internal-format
 msgid "Bad option %s to optimize attribute."
 msgstr ""
 
-#: c-common.c:7103
+#: c-common.c:7077
 #, gcc-internal-format
 msgid "Bad option %s to pragma attribute"
 msgstr ""
 
-#: c-common.c:7296
+#: c-common.c:7270
 #, gcc-internal-format
 msgid "not enough arguments to function %qE"
 msgstr ""
 
-#: c-common.c:7301 c-typeck.c:2558
+#: c-common.c:7275 c-typeck.c:2558
 #, gcc-internal-format
 msgid "too many arguments to function %qE"
 msgstr ""
 
-#: c-common.c:7331 c-common.c:7377
+#: c-common.c:7305 c-common.c:7351
 #, gcc-internal-format
 msgid "non-floating-point argument in call to function %qE"
 msgstr ""
 
-#: c-common.c:7354
+#: c-common.c:7328
 #, gcc-internal-format
 msgid "non-floating-point arguments in call to function %qE"
 msgstr ""
 
-#: c-common.c:7370
+#: c-common.c:7344
 #, gcc-internal-format
 msgid "non-const integer argument %u in call to function %qE"
 msgstr ""
 
-#: c-common.c:7596
+#: c-common.c:7570
 #, gcc-internal-format
 msgid ""
 "%Hignoring return value of %qD, declared with attribute warn_unused_result"
 msgstr ""
 
-#: c-common.c:7600
+#: c-common.c:7574
 #, gcc-internal-format
 msgid ""
 "%Hignoring return value of function declared with attribute "
 "warn_unused_result"
 msgstr ""
 
-#: c-common.c:7654
+#: c-common.c:7628
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to static data member %qD"
 msgstr ""
 
-#: c-common.c:7659
+#: c-common.c:7633
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> when %<operator[]%> is overloaded"
 msgstr ""
 
-#: c-common.c:7680 cp/typeck.c:4685
+#: c-common.c:7654 cp/typeck.c:4685
 #, gcc-internal-format
 msgid "attempt to take address of bit-field structure member %qD"
 msgstr ""
 
-#: c-common.c:7733
+#: c-common.c:7707
 #, gcc-internal-format
 msgid "lvalue required as left operand of assignment"
 msgstr ""
 
-#: c-common.c:7736
+#: c-common.c:7710
 #, gcc-internal-format
 msgid "lvalue required as increment operand"
 msgstr ""
 
-#: c-common.c:7739
+#: c-common.c:7713
 #, gcc-internal-format
 msgid "lvalue required as decrement operand"
 msgstr ""
 
-#: c-common.c:7742
+#: c-common.c:7716
 #, gcc-internal-format
 msgid "lvalue required as unary %<&%> operand"
 msgstr ""
 
-#: c-common.c:7745
+#: c-common.c:7719
 #, gcc-internal-format
 msgid "lvalue required in asm statement"
 msgstr ""
 
-#: c-common.c:7874
+#: c-common.c:7848
 #, gcc-internal-format
 msgid "size of array is too large"
 msgstr ""
 
-#: c-common.c:7910 c-common.c:7959 c-typeck.c:2748
+#: c-common.c:7884 c-common.c:7933 c-typeck.c:2748
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr ""
 
-#: c-common.c:7927 c-typeck.c:4461
+#: c-common.c:7901 c-typeck.c:4465
 #, gcc-internal-format
 msgid "incompatible type for argument %d of %qE"
 msgstr ""
 
-#: c-common.c:8119
+#: c-common.c:8093
 #, gcc-internal-format
 msgid "array subscript has type %<char%>"
 msgstr ""
 
-#: c-common.c:8154
+#: c-common.c:8128
 #, gcc-internal-format
 msgid "suggest parentheses around %<+%> inside %<<<%>"
 msgstr ""
 
-#: c-common.c:8157
+#: c-common.c:8131
 #, gcc-internal-format
 msgid "suggest parentheses around %<-%> inside %<<<%>"
 msgstr ""
 
-#: c-common.c:8163
+#: c-common.c:8137
 #, gcc-internal-format
 msgid "suggest parentheses around %<+%> inside %<>>%>"
 msgstr ""
 
-#: c-common.c:8166
+#: c-common.c:8140
 #, gcc-internal-format
 msgid "suggest parentheses around %<-%> inside %<>>%>"
 msgstr ""
 
-#: c-common.c:8172
+#: c-common.c:8146
 #, gcc-internal-format
 msgid "suggest parentheses around %<&&%> within %<||%>"
 msgstr ""
 
-#: c-common.c:8181
+#: c-common.c:8155
 #, gcc-internal-format
 msgid "suggest parentheses around arithmetic in operand of %<|%>"
 msgstr ""
 
-#: c-common.c:8186
+#: c-common.c:8160
 #, gcc-internal-format
 msgid "suggest parentheses around comparison in operand of %<|%>"
 msgstr ""
 
-#: c-common.c:8190
+#: c-common.c:8164
 #, gcc-internal-format
 msgid ""
 "suggest parentheses around operand of %<!%> or change %<|%> to %<||%> or %<!%"
 "> to %<~%>"
 msgstr ""
 
-#: c-common.c:8200
+#: c-common.c:8174
 #, gcc-internal-format
 msgid "suggest parentheses around arithmetic in operand of %<^%>"
 msgstr ""
 
-#: c-common.c:8205
+#: c-common.c:8179
 #, gcc-internal-format
 msgid "suggest parentheses around comparison in operand of %<^%>"
 msgstr ""
 
-#: c-common.c:8211
+#: c-common.c:8185
 #, gcc-internal-format
 msgid "suggest parentheses around %<+%> in operand of %<&%>"
 msgstr ""
 
-#: c-common.c:8214
+#: c-common.c:8188
 #, gcc-internal-format
 msgid "suggest parentheses around %<-%> in operand of %<&%>"
 msgstr ""
 
-#: c-common.c:8219
+#: c-common.c:8193
 #, gcc-internal-format
 msgid "suggest parentheses around comparison in operand of %<&%>"
 msgstr ""
 
-#: c-common.c:8223
+#: c-common.c:8197
 #, gcc-internal-format
 msgid ""
 "suggest parentheses around operand of %<!%> or change %<&%> to %<&&%> or %<!%"
 "> to %<~%>"
 msgstr ""
 
-#: c-common.c:8231
+#: c-common.c:8205
 #, gcc-internal-format
 msgid "suggest parentheses around comparison in operand of %<==%>"
 msgstr ""
 
-#: c-common.c:8237
+#: c-common.c:8211
 #, gcc-internal-format
 msgid "suggest parentheses around comparison in operand of %<!=%>"
 msgstr ""
 
-#: c-common.c:8248
+#: c-common.c:8222
 #, gcc-internal-format
 msgid "comparisons like %<X<=Y<=Z%> do not have their mathematical meaning"
 msgstr ""
 
-#: c-common.c:8263
+#: c-common.c:8237
 #, gcc-internal-format
 msgid "label %q+D defined but not used"
 msgstr ""
 
-#: c-common.c:8265
+#: c-common.c:8239
 #, gcc-internal-format
 msgid "label %q+D declared but not defined"
 msgstr ""
 
-#: c-common.c:8285
+#: c-common.c:8259
 #, gcc-internal-format
 msgid "division by zero"
 msgstr ""
 
-#: c-common.c:8317
+#: c-common.c:8291
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr ""
 
-#: c-common.c:8368
+#: c-common.c:8342
 #, gcc-internal-format
 msgid "comparison between signed and unsigned integer expressions"
 msgstr ""
 
-#: c-common.c:8419
+#: c-common.c:8393
 #, gcc-internal-format
 msgid "promoted ~unsigned is always non-zero"
 msgstr ""
 
-#: c-common.c:8422
+#: c-common.c:8396
 #, gcc-internal-format
 msgid "comparison of promoted ~unsigned with constant"
 msgstr ""
 
-#: c-common.c:8432
+#: c-common.c:8406
 #, gcc-internal-format
 msgid "comparison of promoted ~unsigned with unsigned"
 msgstr ""
@@ -18591,7 +18593,7 @@
 #. an unprototyped function, it is compile-time undefined;
 #. making it a constraint in that case was rejected in
 #. DR#252.
-#: c-convert.c:95 c-typeck.c:1796 c-typeck.c:4096 cp/typeck.c:1619
+#: c-convert.c:95 c-typeck.c:1796 c-typeck.c:4100 cp/typeck.c:1619
 #: cp/typeck.c:5936 cp/typeck.c:6546 fortran/convert.c:88
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
@@ -18831,8 +18833,8 @@
 msgid "declaration of %q+D shadows a previous local"
 msgstr ""
 
-#: c-decl.c:1972 cp/name-lookup.c:1041 cp/name-lookup.c:1072
-#: cp/name-lookup.c:1080
+#: c-decl.c:1972 cp/name-lookup.c:1043 cp/name-lookup.c:1074
+#: cp/name-lookup.c:1082
 #, gcc-internal-format
 msgid "%Jshadowed declaration is here"
 msgstr ""
@@ -19015,7 +19017,7 @@
 msgid "variable %qD has initializer but incomplete type"
 msgstr ""
 
-#: c-decl.c:3319 c-decl.c:6138 cp/decl.c:4114 cp/decl.c:11484
+#: c-decl.c:3319 c-decl.c:6138 cp/decl.c:4117 cp/decl.c:11498
 #, gcc-internal-format
 msgid "inline function %q+D given attribute noinline"
 msgstr ""
@@ -19135,7 +19137,7 @@
 msgid "variable length array %qs is used"
 msgstr ""
 
-#: c-decl.c:3932 cp/decl.c:7274
+#: c-decl.c:3932 cp/decl.c:7277
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr ""
@@ -19190,22 +19192,22 @@
 msgid "storage class specified for structure field %qs"
 msgstr ""
 
-#: c-decl.c:4150 cp/decl.c:8169
+#: c-decl.c:4150 cp/decl.c:8175
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr ""
 
-#: c-decl.c:4153 cp/decl.c:8171
+#: c-decl.c:4153 cp/decl.c:8177
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr ""
 
-#: c-decl.c:4170 cp/decl.c:9450
+#: c-decl.c:4170 cp/decl.c:9464
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr ""
 
-#: c-decl.c:4173 cp/decl.c:9454
+#: c-decl.c:4173 cp/decl.c:9468
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr ""
@@ -19220,12 +19222,12 @@
 msgid "file-scope declaration of %qs specifies %<register%>"
 msgstr ""
 
-#: c-decl.c:4186 cp/decl.c:8182
+#: c-decl.c:4186 cp/decl.c:8188
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr ""
 
-#: c-decl.c:4189 cp/decl.c:8192
+#: c-decl.c:4189 cp/decl.c:8198
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr ""
@@ -19268,7 +19270,7 @@
 msgid "size of array %qs is negative"
 msgstr ""
 
-#: c-decl.c:4382 c-decl.c:4655 cp/decl.c:8694
+#: c-decl.c:4382 c-decl.c:4655 cp/decl.c:8706
 #, gcc-internal-format
 msgid "size of array %qs is too large"
 msgstr ""
@@ -19289,12 +19291,12 @@
 msgid "array type has incomplete element type"
 msgstr ""
 
-#: c-decl.c:4526 cp/decl.c:8288
+#: c-decl.c:4526 cp/decl.c:8294
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr ""
 
-#: c-decl.c:4531 cp/decl.c:8293
+#: c-decl.c:4531 cp/decl.c:8299
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr ""
@@ -19304,7 +19306,7 @@
 msgid "function definition has qualified void return type"
 msgstr ""
 
-#: c-decl.c:4557 cp/decl.c:8277
+#: c-decl.c:4557 cp/decl.c:8283
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr ""
@@ -19585,7 +19587,7 @@
 msgid "%q+D was used with no prototype before its definition"
 msgstr ""
 
-#: c-decl.c:6254 cp/decl.c:11625
+#: c-decl.c:6254 cp/decl.c:11639
 #, gcc-internal-format
 msgid "no previous declaration for %q+D"
 msgstr ""
@@ -19700,7 +19702,7 @@
 msgid "argument %qD doesn%'t match prototype"
 msgstr ""
 
-#: c-decl.c:6782 cp/decl.c:12329
+#: c-decl.c:6782 cp/decl.c:12343
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr ""
@@ -20074,7 +20076,7 @@
 msgid "ISO C does not support decimal floating point"
 msgstr ""
 
-#: c-decl.c:7613 c-decl.c:7792 c-parser.c:5101
+#: c-decl.c:7613 c-decl.c:7792 c-parser.c:5107
 #, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr ""
@@ -20762,12 +20764,12 @@
 msgid "ISO C forbids an empty translation unit"
 msgstr ""
 
-#: c-parser.c:1056 c-parser.c:6109
+#: c-parser.c:1056 c-parser.c:6113
 #, gcc-internal-format
 msgid "ISO C does not allow extra %<;%> outside of a function"
 msgstr ""
 
-#: c-parser.c:1158 c-parser.c:6667
+#: c-parser.c:1158 c-parser.c:6671
 #, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr ""
@@ -20796,16 +20798,16 @@
 msgstr ""
 
 #: c-parser.c:1641 c-parser.c:2454 c-parser.c:3094 c-parser.c:3352
-#: c-parser.c:4286 c-parser.c:4886 c-parser.c:5308 c-parser.c:5329
-#: c-parser.c:5446 c-parser.c:5598 c-parser.c:5615 c-parser.c:5751
-#: c-parser.c:5763 c-parser.c:5788 c-parser.c:5922 c-parser.c:5951
-#: c-parser.c:5959 c-parser.c:5987 c-parser.c:6001 c-parser.c:6217
-#: c-parser.c:6316 c-parser.c:6837 c-parser.c:7538
+#: c-parser.c:4292 c-parser.c:4892 c-parser.c:5314 c-parser.c:5335
+#: c-parser.c:5452 c-parser.c:5602 c-parser.c:5619 c-parser.c:5755
+#: c-parser.c:5767 c-parser.c:5792 c-parser.c:5926 c-parser.c:5955
+#: c-parser.c:5963 c-parser.c:5991 c-parser.c:6005 c-parser.c:6221
+#: c-parser.c:6320 c-parser.c:6841 c-parser.c:7542
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr ""
 
-#: c-parser.c:1674 cp/parser.c:11972
+#: c-parser.c:1674 cp/parser.c:11977
 #, gcc-internal-format
 msgid "comma at end of enumerator list"
 msgstr ""
@@ -20815,7 +20817,7 @@
 msgid "expected %<,%> or %<}%>"
 msgstr ""
 
-#: c-parser.c:1694 c-parser.c:1877 c-parser.c:6076
+#: c-parser.c:1694 c-parser.c:1877 c-parser.c:6080
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr ""
@@ -20830,7 +20832,7 @@
 msgid "expected class name"
 msgstr ""
 
-#: c-parser.c:1831 c-parser.c:5855
+#: c-parser.c:1831 c-parser.c:5859
 #, gcc-internal-format
 msgid "extra semicolon in struct or union specified"
 msgstr ""
@@ -20890,7 +20892,7 @@
 msgid "wide string literal in %<asm%>"
 msgstr ""
 
-#: c-parser.c:2689 c-parser.c:6722
+#: c-parser.c:2689 c-parser.c:6726
 #, gcc-internal-format
 msgid "expected string literal"
 msgstr ""
@@ -20980,12 +20982,12 @@
 msgid "expected statement"
 msgstr ""
 
-#: c-parser.c:3872 cp/parser.c:7296
+#: c-parser.c:3872 cp/parser.c:7301
 #, gcc-internal-format
 msgid "suggest braces around empty body in an %<if%> statement"
 msgstr ""
 
-#: c-parser.c:3898 cp/parser.c:7317
+#: c-parser.c:3898 cp/parser.c:7322
 #, gcc-internal-format
 msgid "suggest braces around empty body in an %<else%> statement"
 msgstr ""
@@ -21000,199 +21002,199 @@
 msgid "%E qualifier ignored on asm"
 msgstr ""
 
-#: c-parser.c:4459
+#: c-parser.c:4465
 #, gcc-internal-format
 msgid "ISO C forbids omitting the middle term of a ?: expression"
 msgstr ""
 
-#: c-parser.c:4855
+#: c-parser.c:4861
 #, gcc-internal-format
 msgid "traditional C rejects the unary plus operator"
 msgstr ""
 
-#: c-parser.c:4972
+#: c-parser.c:4978
 #, gcc-internal-format
 msgid "%<sizeof%> applied to a bit-field"
 msgstr ""
 
-#: c-parser.c:5131 c-parser.c:5488 c-parser.c:5510
+#: c-parser.c:5137 c-parser.c:5494 c-parser.c:5516
 #, gcc-internal-format
 msgid "expected expression"
 msgstr ""
 
-#: c-parser.c:5158
+#: c-parser.c:5164
 #, gcc-internal-format
 msgid "braced-group within expression allowed only inside a function"
 msgstr ""
 
-#: c-parser.c:5172
+#: c-parser.c:5178
 #, gcc-internal-format
 msgid "ISO C forbids braced-groups within expressions"
 msgstr ""
 
-#: c-parser.c:5370
+#: c-parser.c:5376
 #, gcc-internal-format
 msgid "first argument to %<__builtin_choose_expr%> not a constant"
 msgstr ""
 
-#: c-parser.c:5539
+#: c-parser.c:5545
 #, gcc-internal-format
 msgid "compound literal has variable size"
 msgstr ""
 
-#: c-parser.c:5547
+#: c-parser.c:5553
 #, gcc-internal-format
 msgid "ISO C90 forbids compound literals"
 msgstr ""
 
-#: c-parser.c:6072
+#: c-parser.c:6076
 #, gcc-internal-format
 msgid "extra semicolon in method definition specified"
 msgstr ""
 
-#: c-parser.c:6616
+#: c-parser.c:6620
 #, gcc-internal-format
 msgid "%<#pragma omp barrier%> may only be used in compound statements"
 msgstr ""
 
-#: c-parser.c:6627
+#: c-parser.c:6631
 #, gcc-internal-format
 msgid "%<#pragma omp flush%> may only be used in compound statements"
 msgstr ""
 
-#: c-parser.c:6638
+#: c-parser.c:6642
 #, gcc-internal-format
 msgid "%<#pragma omp taskwait%> may only be used in compound statements"
 msgstr ""
 
-#: c-parser.c:6651
+#: c-parser.c:6655
 #, gcc-internal-format
 msgid ""
 "%<#pragma omp section%> may only be used in %<#pragma omp sections%> "
 "construct"
 msgstr ""
 
-#: c-parser.c:6657
+#: c-parser.c:6661
 #, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr ""
 
-#: c-parser.c:6815
+#: c-parser.c:6819
 #, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr ""
 
-#: c-parser.c:6911
+#: c-parser.c:6915
 #, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr ""
 
-#: c-parser.c:6976
+#: c-parser.c:6980
 #, gcc-internal-format
 msgid "expected %<none%> or %<shared%>"
 msgstr ""
 
-#: c-parser.c:7019
+#: c-parser.c:7023
 #, gcc-internal-format
 msgid "expected %<(%>"
 msgstr ""
 
-#: c-parser.c:7063 c-parser.c:7247
+#: c-parser.c:7067 c-parser.c:7251
 #, gcc-internal-format
 msgid "expected integer expression"
 msgstr ""
 
-#: c-parser.c:7073
+#: c-parser.c:7077
 #, gcc-internal-format
 msgid "%<num_threads%> value must be positive"
 msgstr ""
 
-#: c-parser.c:7153
+#: c-parser.c:7157
 #, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, or %<||%>"
 msgstr ""
 
-#: c-parser.c:7238
+#: c-parser.c:7242
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c-parser.c:7242
+#: c-parser.c:7246
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c-parser.c:7260
+#: c-parser.c:7264
 #, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr ""
 
-#: c-parser.c:7378
+#: c-parser.c:7382
 #, gcc-internal-format
 msgid "expected %<#pragma omp%> clause"
 msgstr ""
 
-#: c-parser.c:7387
+#: c-parser.c:7391
 #, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr ""
 
-#: c-parser.c:7488
+#: c-parser.c:7492
 #, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr ""
 
-#: c-parser.c:7541 c-parser.c:7561
+#: c-parser.c:7545 c-parser.c:7565
 #, gcc-internal-format
 msgid "expected %<(%> or end of line"
 msgstr ""
 
-#: c-parser.c:7593
+#: c-parser.c:7597
 #, gcc-internal-format
 msgid "for statement expected"
 msgstr ""
 
-#: c-parser.c:7643
+#: c-parser.c:7647
 #, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr ""
 
-#: c-parser.c:7722
+#: c-parser.c:7726
 #, gcc-internal-format
 msgid "not enough perfectly nested loops"
 msgstr ""
 
-#: c-parser.c:7770
+#: c-parser.c:7774
 #, gcc-internal-format
 msgid "collapsed loops not perfectly nested"
 msgstr ""
 
-#: c-parser.c:7807 cp/pt.c:10533
+#: c-parser.c:7811 cp/pt.c:10534
 #, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr ""
 
-#: c-parser.c:7957
+#: c-parser.c:7961
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr ""
 
-#: c-parser.c:8227
+#: c-parser.c:8231
 #, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr ""
 
-#: c-parser.c:8229 cp/semantics.c:3802
+#: c-parser.c:8233 cp/semantics.c:3804
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr ""
 
-#: c-parser.c:8231 cp/semantics.c:3804
+#: c-parser.c:8235 cp/semantics.c:3806
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr ""
 
-#: c-parser.c:8235 cp/semantics.c:3806
+#: c-parser.c:8239 cp/semantics.c:3808
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr ""
@@ -21930,109 +21932,109 @@
 msgid "address of register variable %qD requested"
 msgstr ""
 
-#: c-typeck.c:3462
+#: c-typeck.c:3463
 #, gcc-internal-format
 msgid "non-lvalue array in conditional expression"
 msgstr ""
 
-#: c-typeck.c:3510
+#: c-typeck.c:3513
 #, gcc-internal-format
 msgid "signed and unsigned type in conditional expression"
 msgstr ""
 
-#: c-typeck.c:3518
+#: c-typeck.c:3521
 #, gcc-internal-format
 msgid "ISO C forbids conditional expr with only one void side"
 msgstr ""
 
-#: c-typeck.c:3533 c-typeck.c:3542
+#: c-typeck.c:3536 c-typeck.c:3545
 #, gcc-internal-format
 msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
 msgstr ""
 
-#: c-typeck.c:3550
+#: c-typeck.c:3554
 #, gcc-internal-format
 msgid "pointer type mismatch in conditional expression"
 msgstr ""
 
-#: c-typeck.c:3558 c-typeck.c:3569
+#: c-typeck.c:3562 c-typeck.c:3573
 #, gcc-internal-format
 msgid "pointer/integer type mismatch in conditional expression"
 msgstr ""
 
-#: c-typeck.c:3583
+#: c-typeck.c:3587
 #, gcc-internal-format
 msgid "type mismatch in conditional expression"
 msgstr ""
 
-#: c-typeck.c:3624
+#: c-typeck.c:3628
 #, gcc-internal-format
 msgid "left-hand operand of comma expression has no effect"
 msgstr ""
 
-#: c-typeck.c:3661
+#: c-typeck.c:3665
 #, gcc-internal-format
 msgid "cast specifies array type"
 msgstr ""
 
-#: c-typeck.c:3667
+#: c-typeck.c:3671
 #, gcc-internal-format
 msgid "cast specifies function type"
 msgstr ""
 
-#: c-typeck.c:3683
+#: c-typeck.c:3687
 #, gcc-internal-format
 msgid "ISO C forbids casting nonscalar to the same type"
 msgstr ""
 
-#: c-typeck.c:3700
+#: c-typeck.c:3704
 #, gcc-internal-format
 msgid "ISO C forbids casts to union type"
 msgstr ""
 
-#: c-typeck.c:3707
+#: c-typeck.c:3711
 #, gcc-internal-format
 msgid "cast to union type from type not present in union"
 msgstr ""
 
-#: c-typeck.c:3753
+#: c-typeck.c:3757
 #, gcc-internal-format
 msgid "cast adds new qualifiers to function type"
 msgstr ""
 
 #. There are qualifiers present in IN_OTYPE that are not
 #. present in IN_TYPE.
-#: c-typeck.c:3758
+#: c-typeck.c:3762
 #, gcc-internal-format
 msgid "cast discards qualifiers from pointer target type"
 msgstr ""
 
-#: c-typeck.c:3774
+#: c-typeck.c:3778
 #, gcc-internal-format
 msgid "cast increases required alignment of target type"
 msgstr ""
 
-#: c-typeck.c:3785
+#: c-typeck.c:3789
 #, gcc-internal-format
 msgid "cast from pointer to integer of different size"
 msgstr ""
 
-#: c-typeck.c:3789
+#: c-typeck.c:3793
 #, gcc-internal-format
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr ""
 
-#: c-typeck.c:3797
+#: c-typeck.c:3801
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr ""
 
-#: c-typeck.c:3811
+#: c-typeck.c:3815
 #, gcc-internal-format
 msgid "ISO C forbids conversion of function pointer to object pointer type"
 msgstr ""
 
-#: c-typeck.c:3820
+#: c-typeck.c:3824
 #, gcc-internal-format
 msgid "ISO C forbids conversion of object pointer to function pointer type"
 msgstr ""
@@ -22040,458 +22042,458 @@
 #. This macro is used to emit diagnostics to ensure that all format
 #. strings are complete sentences, visible to gettext and checked at
 #. compile time.
-#: c-typeck.c:4031 c-typeck.c:4464
+#: c-typeck.c:4035 c-typeck.c:4468
 #, gcc-internal-format
 msgid "expected %qT but argument is of type %qT"
 msgstr ""
 
-#: c-typeck.c:4110
+#: c-typeck.c:4114
 #, gcc-internal-format
 msgid "cannot pass rvalue to reference parameter"
 msgstr ""
 
-#: c-typeck.c:4224 c-typeck.c:4393
+#: c-typeck.c:4228 c-typeck.c:4397
 #, gcc-internal-format
 msgid ""
 "passing argument %d of %qE makes qualified function pointer from unqualified"
 msgstr ""
 
-#: c-typeck.c:4227 c-typeck.c:4396
+#: c-typeck.c:4231 c-typeck.c:4400
 #, gcc-internal-format
 msgid "assignment makes qualified function pointer from unqualified"
 msgstr ""
 
-#: c-typeck.c:4230 c-typeck.c:4398
+#: c-typeck.c:4234 c-typeck.c:4402
 #, gcc-internal-format
 msgid "initialization makes qualified function pointer from unqualified"
 msgstr ""
 
-#: c-typeck.c:4233 c-typeck.c:4400
+#: c-typeck.c:4237 c-typeck.c:4404
 #, gcc-internal-format
 msgid "return makes qualified function pointer from unqualified"
 msgstr ""
 
-#: c-typeck.c:4238 c-typeck.c:4358
+#: c-typeck.c:4242 c-typeck.c:4362
 #, gcc-internal-format
 msgid "passing argument %d of %qE discards qualifiers from pointer target type"
 msgstr ""
 
-#: c-typeck.c:4240 c-typeck.c:4360
+#: c-typeck.c:4244 c-typeck.c:4364
 #, gcc-internal-format
 msgid "assignment discards qualifiers from pointer target type"
 msgstr ""
 
-#: c-typeck.c:4242 c-typeck.c:4362
+#: c-typeck.c:4246 c-typeck.c:4366
 #, gcc-internal-format
 msgid "initialization discards qualifiers from pointer target type"
 msgstr ""
 
-#: c-typeck.c:4244 c-typeck.c:4364
+#: c-typeck.c:4248 c-typeck.c:4368
 #, gcc-internal-format
 msgid "return discards qualifiers from pointer target type"
 msgstr ""
 
-#: c-typeck.c:4252
+#: c-typeck.c:4256
 #, gcc-internal-format
 msgid "ISO C prohibits argument conversion to union type"
 msgstr ""
 
-#: c-typeck.c:4285
+#: c-typeck.c:4289
 #, gcc-internal-format
 msgid "request for implicit conversion from %qT to %qT not permitted in C++"
 msgstr ""
 
-#: c-typeck.c:4297
+#: c-typeck.c:4301
 #, gcc-internal-format
 msgid "argument %d of %qE might be a candidate for a format attribute"
 msgstr ""
 
-#: c-typeck.c:4303
+#: c-typeck.c:4307
 #, gcc-internal-format
 msgid "assignment left-hand side might be a candidate for a format attribute"
 msgstr ""
 
-#: c-typeck.c:4308
+#: c-typeck.c:4312
 #, gcc-internal-format
 msgid ""
 "initialization left-hand side might be a candidate for a format attribute"
 msgstr ""
 
-#: c-typeck.c:4313
+#: c-typeck.c:4317
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr ""
 
-#: c-typeck.c:4337
+#: c-typeck.c:4341
 #, gcc-internal-format
 msgid ""
 "ISO C forbids passing argument %d of %qE between function pointer and %<void "
 "*%>"
 msgstr ""
 
-#: c-typeck.c:4340
+#: c-typeck.c:4344
 #, gcc-internal-format
 msgid "ISO C forbids assignment between function pointer and %<void *%>"
 msgstr ""
 
-#: c-typeck.c:4342
+#: c-typeck.c:4346
 #, gcc-internal-format
 msgid "ISO C forbids initialization between function pointer and %<void *%>"
 msgstr ""
 
-#: c-typeck.c:4344
+#: c-typeck.c:4348
 #, gcc-internal-format
 msgid "ISO C forbids return between function pointer and %<void *%>"
 msgstr ""
 
-#: c-typeck.c:4375
+#: c-typeck.c:4379
 #, gcc-internal-format
 msgid "pointer targets in passing argument %d of %qE differ in signedness"
 msgstr ""
 
-#: c-typeck.c:4377
+#: c-typeck.c:4381
 #, gcc-internal-format
 msgid "pointer targets in assignment differ in signedness"
 msgstr ""
 
-#: c-typeck.c:4379
+#: c-typeck.c:4383
 #, gcc-internal-format
 msgid "pointer targets in initialization differ in signedness"
 msgstr ""
 
-#: c-typeck.c:4381
+#: c-typeck.c:4385
 #, gcc-internal-format
 msgid "pointer targets in return differ in signedness"
 msgstr ""
 
-#: c-typeck.c:4408
+#: c-typeck.c:4412
 #, gcc-internal-format
 msgid "passing argument %d of %qE from incompatible pointer type"
 msgstr ""
 
-#: c-typeck.c:4410
+#: c-typeck.c:4414
 #, gcc-internal-format
 msgid "assignment from incompatible pointer type"
 msgstr ""
 
-#: c-typeck.c:4411
+#: c-typeck.c:4415
 #, gcc-internal-format
 msgid "initialization from incompatible pointer type"
 msgstr ""
 
-#: c-typeck.c:4413
+#: c-typeck.c:4417
 #, gcc-internal-format
 msgid "return from incompatible pointer type"
 msgstr ""
 
-#: c-typeck.c:4431
+#: c-typeck.c:4435
 #, gcc-internal-format
 msgid "passing argument %d of %qE makes pointer from integer without a cast"
 msgstr ""
 
-#: c-typeck.c:4433
+#: c-typeck.c:4437
 #, gcc-internal-format
 msgid "assignment makes pointer from integer without a cast"
 msgstr ""
 
-#: c-typeck.c:4435
+#: c-typeck.c:4439
 #, gcc-internal-format
 msgid "initialization makes pointer from integer without a cast"
 msgstr ""
 
-#: c-typeck.c:4437
+#: c-typeck.c:4441
 #, gcc-internal-format
 msgid "return makes pointer from integer without a cast"
 msgstr ""
 
-#: c-typeck.c:4445
+#: c-typeck.c:4449
 #, gcc-internal-format
 msgid "passing argument %d of %qE makes integer from pointer without a cast"
 msgstr ""
 
-#: c-typeck.c:4447
+#: c-typeck.c:4451
 #, gcc-internal-format
 msgid "assignment makes integer from pointer without a cast"
 msgstr ""
 
-#: c-typeck.c:4449
+#: c-typeck.c:4453
 #, gcc-internal-format
 msgid "initialization makes integer from pointer without a cast"
 msgstr ""
 
-#: c-typeck.c:4451
+#: c-typeck.c:4455
 #, gcc-internal-format
 msgid "return makes integer from pointer without a cast"
 msgstr ""
 
-#: c-typeck.c:4467
+#: c-typeck.c:4471
 #, gcc-internal-format
 msgid "incompatible types when assigning to type %qT from type %qT"
 msgstr ""
 
-#: c-typeck.c:4471
+#: c-typeck.c:4475
 #, gcc-internal-format
 msgid "incompatible types when initializing type %qT using type %qT"
 msgstr ""
 
-#: c-typeck.c:4475
+#: c-typeck.c:4479
 #, gcc-internal-format
 msgid "incompatible types when returning type %qT but %qT was expected"
 msgstr ""
 
-#: c-typeck.c:4532
+#: c-typeck.c:4536
 #, gcc-internal-format
 msgid "traditional C rejects automatic aggregate initialization"
 msgstr ""
 
-#: c-typeck.c:4703 c-typeck.c:4719 c-typeck.c:4736
+#: c-typeck.c:4707 c-typeck.c:4723 c-typeck.c:4740
 #, gcc-internal-format
 msgid "(near initialization for %qs)"
 msgstr ""
 
-#: c-typeck.c:5291 cp/decl.c:5158
+#: c-typeck.c:5295 cp/decl.c:5161
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr ""
 
-#: c-typeck.c:5916
+#: c-typeck.c:5920
 #, gcc-internal-format
 msgid "unknown field %qE specified in initializer"
 msgstr ""
 
-#: c-typeck.c:6836
+#: c-typeck.c:6840
 #, gcc-internal-format
 msgid "traditional C rejects initialization of unions"
 msgstr ""
 
-#: c-typeck.c:7147
+#: c-typeck.c:7151
 #, gcc-internal-format
 msgid "jump into statement expression"
 msgstr ""
 
-#: c-typeck.c:7153
+#: c-typeck.c:7157
 #, gcc-internal-format
 msgid "jump into scope of identifier with variably modified type"
 msgstr ""
 
-#: c-typeck.c:7189
+#: c-typeck.c:7193
 #, gcc-internal-format
 msgid "ISO C forbids %<goto *expr;%>"
 msgstr ""
 
-#: c-typeck.c:7204 cp/typeck.c:6820
+#: c-typeck.c:7208 cp/typeck.c:6820
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr ""
 
-#: c-typeck.c:7213
+#: c-typeck.c:7217
 #, gcc-internal-format
 msgid "%<return%> with no value, in function returning non-void"
 msgstr ""
 
-#: c-typeck.c:7223
+#: c-typeck.c:7227
 #, gcc-internal-format
 msgid "%<return%> with a value, in function returning void"
 msgstr ""
 
-#: c-typeck.c:7225
+#: c-typeck.c:7229
 #, gcc-internal-format
 msgid "ISO C forbids %<return%> with expression, in function returning void"
 msgstr ""
 
-#: c-typeck.c:7284
+#: c-typeck.c:7288
 #, gcc-internal-format
 msgid "function returns address of local variable"
 msgstr ""
 
-#: c-typeck.c:7359 cp/semantics.c:952
+#: c-typeck.c:7363 cp/semantics.c:952
 #, gcc-internal-format
 msgid "switch quantity not an integer"
 msgstr ""
 
-#: c-typeck.c:7371
+#: c-typeck.c:7375
 #, gcc-internal-format
 msgid "%<long%> switch expression not converted to %<int%> in ISO C"
 msgstr ""
 
-#: c-typeck.c:7414
+#: c-typeck.c:7418
 #, gcc-internal-format
 msgid ""
 "case label in statement expression not containing enclosing switch statement"
 msgstr ""
 
-#: c-typeck.c:7417
+#: c-typeck.c:7421
 #, gcc-internal-format
 msgid ""
 "%<default%> label in statement expression not containing enclosing switch "
 "statement"
 msgstr ""
 
-#: c-typeck.c:7423
+#: c-typeck.c:7427
 #, gcc-internal-format
 msgid ""
 "case label in scope of identifier with variably modified type not containing "
 "enclosing switch statement"
 msgstr ""
 
-#: c-typeck.c:7426
+#: c-typeck.c:7430
 #, gcc-internal-format
 msgid ""
 "%<default%> label in scope of identifier with variably modified type not "
 "containing enclosing switch statement"
 msgstr ""
 
-#: c-typeck.c:7430
+#: c-typeck.c:7434
 #, gcc-internal-format
 msgid "case label not within a switch statement"
 msgstr ""
 
-#: c-typeck.c:7432
+#: c-typeck.c:7436
 #, gcc-internal-format
 msgid "%<default%> label not within a switch statement"
 msgstr ""
 
-#: c-typeck.c:7509
+#: c-typeck.c:7513
 #, gcc-internal-format
 msgid "%Hsuggest explicit braces to avoid ambiguous %<else%>"
 msgstr ""
 
-#: c-typeck.c:7618 cp/cp-gimplify.c:92
+#: c-typeck.c:7622 cp/cp-gimplify.c:92
 #, gcc-internal-format
 msgid "break statement not within loop or switch"
 msgstr ""
 
-#: c-typeck.c:7620
+#: c-typeck.c:7624
 #, gcc-internal-format
 msgid "continue statement not within a loop"
 msgstr ""
 
-#: c-typeck.c:7625
+#: c-typeck.c:7629
 #, gcc-internal-format
 msgid "break statement used with OpenMP for loop"
 msgstr ""
 
-#: c-typeck.c:7651
+#: c-typeck.c:7655
 #, gcc-internal-format
 msgid "%Hstatement with no effect"
 msgstr ""
 
-#: c-typeck.c:7673
+#: c-typeck.c:7677
 #, gcc-internal-format
 msgid "expression statement has incomplete type"
 msgstr ""
 
-#: c-typeck.c:8245 cp/typeck.c:3506
+#: c-typeck.c:8249 cp/typeck.c:3506
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr ""
 
-#: c-typeck.c:8252 cp/typeck.c:3512
+#: c-typeck.c:8256 cp/typeck.c:3512
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr ""
 
-#: c-typeck.c:8274 cp/typeck.c:3533
+#: c-typeck.c:8278 cp/typeck.c:3533
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr ""
 
-#: c-typeck.c:8277 cp/typeck.c:3538
+#: c-typeck.c:8281 cp/typeck.c:3538
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr ""
 
-#: c-typeck.c:8296 cp/typeck.c:3584
+#: c-typeck.c:8300 cp/typeck.c:3584
 #, gcc-internal-format
 msgid "comparing floating point with == or != is unsafe"
 msgstr ""
 
-#: c-typeck.c:8320 c-typeck.c:8327
+#: c-typeck.c:8324 c-typeck.c:8331
 #, gcc-internal-format
 msgid "ISO C forbids comparison of %<void *%> with function pointer"
 msgstr ""
 
-#: c-typeck.c:8334 c-typeck.c:8396
+#: c-typeck.c:8338 c-typeck.c:8400
 #, gcc-internal-format
 msgid "comparison of distinct pointer types lacks a cast"
 msgstr ""
 
-#: c-typeck.c:8344 c-typeck.c:8353 cp/typeck.c:3607 cp/typeck.c:3619
+#: c-typeck.c:8348 c-typeck.c:8357 cp/typeck.c:3607 cp/typeck.c:3619
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr ""
 
-#: c-typeck.c:8360 c-typeck.c:8365 c-typeck.c:8418 c-typeck.c:8423
+#: c-typeck.c:8364 c-typeck.c:8369 c-typeck.c:8422 c-typeck.c:8427
 #, gcc-internal-format
 msgid "comparison between pointer and integer"
 msgstr ""
 
-#: c-typeck.c:8387
+#: c-typeck.c:8391
 #, gcc-internal-format
 msgid "comparison of complete and incomplete pointers"
 msgstr ""
 
-#: c-typeck.c:8389
+#: c-typeck.c:8393
 #, gcc-internal-format
 msgid "ISO C forbids ordered comparisons of pointers to functions"
 msgstr ""
 
-#: c-typeck.c:8404 c-typeck.c:8407 c-typeck.c:8413
+#: c-typeck.c:8408 c-typeck.c:8411 c-typeck.c:8417
 #, gcc-internal-format
 msgid "ordered comparison of pointer with integer zero"
 msgstr ""
 
-#: c-typeck.c:8591
+#: c-typeck.c:8595
 #, gcc-internal-format
 msgid "used array that cannot be converted to pointer where scalar is required"
 msgstr ""
 
-#: c-typeck.c:8595
+#: c-typeck.c:8599
 #, gcc-internal-format
 msgid "used struct type value where scalar is required"
 msgstr ""
 
-#: c-typeck.c:8599
+#: c-typeck.c:8603
 #, gcc-internal-format
 msgid "used union type value where scalar is required"
 msgstr ""
 
-#: c-typeck.c:8735 cp/semantics.c:3685
+#: c-typeck.c:8739 cp/semantics.c:3687
 #, gcc-internal-format
 msgid "%qE has invalid type for %<reduction%>"
 msgstr ""
 
-#: c-typeck.c:8769 cp/semantics.c:3698
+#: c-typeck.c:8773 cp/semantics.c:3700
 #, gcc-internal-format
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr ""
 
-#: c-typeck.c:8785 cp/semantics.c:3708
+#: c-typeck.c:8789 cp/semantics.c:3710
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr ""
 
-#: c-typeck.c:8794 cp/semantics.c:3505
+#: c-typeck.c:8798 cp/semantics.c:3507
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr ""
 
-#: c-typeck.c:8801 c-typeck.c:8821 c-typeck.c:8841
+#: c-typeck.c:8805 c-typeck.c:8825 c-typeck.c:8845
 #, gcc-internal-format
 msgid "%qE appears more than once in data clauses"
 msgstr ""
 
-#: c-typeck.c:8815 cp/semantics.c:3528
+#: c-typeck.c:8819 cp/semantics.c:3530
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr ""
 
-#: c-typeck.c:8835 cp/semantics.c:3550
+#: c-typeck.c:8839 cp/semantics.c:3552
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr ""
 
-#: c-typeck.c:8895 cp/semantics.c:3749
+#: c-typeck.c:8899 cp/semantics.c:3751
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr ""
@@ -23629,18 +23631,18 @@
 "critical region may not be nested inside a critical region with the same name"
 msgstr ""
 
-#: omp-low.c:6629 cp/decl.c:2680
+#: omp-low.c:6682 cp/decl.c:2680
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
 msgstr ""
 
-#: omp-low.c:6631 omp-low.c:6636
+#: omp-low.c:6684 omp-low.c:6689
 #, gcc-internal-format
 msgid "invalid entry to OpenMP structured block"
 msgstr ""
 
 #. Otherwise, be vague and lazy, but efficient.
-#: omp-low.c:6639
+#: omp-low.c:6692
 #, gcc-internal-format
 msgid "invalid branch to/from an OpenMP structured block"
 msgstr ""
@@ -23663,142 +23665,137 @@
 msgstr ""
 
 #. Eventually this should become a hard error IMO.
-#: opts.c:448
+#: opts.c:442
 #, gcc-internal-format
 msgid "command line option \"%s\" is valid for %s but not for %s"
 msgstr ""
 
-#: opts.c:479 opts.c:807
+#: opts.c:473 opts.c:769
 #, gcc-internal-format
 msgid "unrecognized command line option \"%s\""
 msgstr ""
 
-#: opts.c:540
+#: opts.c:534
 #, gcc-internal-format
 msgid "command line option %qs is not supported by this configuration"
 msgstr ""
 
-#: opts.c:593
+#: opts.c:587
 #, gcc-internal-format
 msgid "missing argument to \"%s\""
 msgstr ""
 
-#: opts.c:603
+#: opts.c:597
 #, gcc-internal-format
 msgid "argument to \"%s\" should be a non-negative integer"
 msgstr ""
 
-#: opts.c:769
-#, gcc-internal-format
-msgid "disallowed call to %qs"
-msgstr ""
-
-#: opts.c:1031
+#: opts.c:993
 #, gcc-internal-format
 msgid "Section anchors must be disabled when unit-at-a-time is disabled."
 msgstr ""
 
-#: opts.c:1035
+#: opts.c:997
 #, gcc-internal-format
 msgid "Toplevel reorder must be disabled when unit-at-a-time is disabled."
 msgstr ""
 
-#: opts.c:1050
+#: opts.c:1012
 #, gcc-internal-format
 msgid "section anchors must be disabled when toplevel reorder is disabled"
 msgstr ""
 
-#: opts.c:1080
+#: opts.c:1042
 #, gcc-internal-format
 msgid "-freorder-blocks-and-partition does not work with exceptions"
 msgstr ""
 
-#: opts.c:1091
+#: opts.c:1053
 #, gcc-internal-format
 msgid "-freorder-blocks-and-partition does not support unwind info"
 msgstr ""
 
-#: opts.c:1105
+#: opts.c:1067
 #, gcc-internal-format
 msgid "-freorder-blocks-and-partition does not work on this architecture"
 msgstr ""
 
-#: opts.c:1119
+#: opts.c:1081
 #, gcc-internal-format
 msgid "-fira-algorithm=CB does not work on this architecture"
 msgstr ""
 
-#: opts.c:1428
+#: opts.c:1390
 #, gcc-internal-format
 msgid "unrecognized include_flags 0x%x passed to print_specific_help"
 msgstr ""
 
-#: opts.c:1809
+#: opts.c:1765
 #, gcc-internal-format
 msgid "structure alignment must be a small power of two, not %d"
 msgstr ""
 
-#: opts.c:1896
+#: opts.c:1852
 #, gcc-internal-format
 msgid "unrecognized visibility value \"%s\""
 msgstr ""
 
-#: opts.c:1954
+#: opts.c:1910
 #, gcc-internal-format
 msgid "unknown stack check parameter \"%s\""
 msgstr ""
 
-#: opts.c:1980
+#: opts.c:1936
 #, gcc-internal-format
 msgid "unrecognized register name \"%s\""
 msgstr ""
 
-#: opts.c:2004
+#: opts.c:1960
 #, gcc-internal-format
 msgid "unknown tls-model \"%s\""
 msgstr ""
 
-#: opts.c:2013
+#: opts.c:1969
 #, gcc-internal-format
 msgid "unknown ira algorithm \"%s\""
 msgstr ""
 
-#: opts.c:2024
+#: opts.c:1980
 #, gcc-internal-format
 msgid "unknown ira region \"%s\""
 msgstr ""
 
-#: opts.c:2127
+#: opts.c:2083
 #, gcc-internal-format
 msgid "%s: --param arguments should be of the form NAME=VALUE"
 msgstr ""
 
-#: opts.c:2132
+#: opts.c:2088
 #, gcc-internal-format
 msgid "invalid --param value %qs"
 msgstr ""
 
-#: opts.c:2250
+#: opts.c:2206
 #, gcc-internal-format
 msgid "target system does not support debug output"
 msgstr ""
 
-#: opts.c:2257
+#: opts.c:2213
 #, gcc-internal-format
 msgid "debug format \"%s\" conflicts with prior selection"
 msgstr ""
 
-#: opts.c:2273
+#: opts.c:2229
 #, gcc-internal-format
 msgid "unrecognised debug output level \"%s\""
 msgstr ""
 
-#: opts.c:2275
+#: opts.c:2231
 #, gcc-internal-format
 msgid "debug output level %s is too high"
 msgstr ""
 
-#: opts.c:2357
+#: opts.c:2313
 #, gcc-internal-format
 msgid "-Werror=%s: No option -%s"
 msgstr ""
@@ -25319,9 +25316,9 @@
 msgstr ""
 
 #: tree.c:4076 tree.c:4088 tree.c:4098 config/darwin.c:1437
-#: config/arm/arm.c:3294 config/arm/arm.c:3322 config/avr/avr.c:4791
+#: config/arm/arm.c:3294 config/arm/arm.c:3322 config/avr/avr.c:4804
 #: config/h8300/h8300.c:5283 config/h8300/h8300.c:5307 config/i386/i386.c:4179
-#: config/i386/i386.c:26410 config/ia64/ia64.c:621
+#: config/i386/i386.c:26447 config/ia64/ia64.c:621
 #: config/m68hc11/m68hc11.c:1118 config/rs6000/rs6000.c:20739
 #: config/sh/symbian.c:408 config/sh/symbian.c:415
 #, gcc-internal-format
@@ -25768,7 +25765,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.
-#: config/darwin.h:452
+#: config/darwin.h:456
 #, gcc-internal-format
 msgid "alias definitions not supported in Mach-O; ignored"
 msgstr ""
@@ -26020,9 +26017,9 @@
 msgid "unable to use '%s' for PIC register"
 msgstr ""
 
-#: config/arm/arm.c:3262 config/arm/arm.c:3280 config/avr/avr.c:4811
-#: config/avr/avr.c:4827 config/bfin/bfin.c:5228 config/h8300/h8300.c:5259
-#: config/i386/i386.c:4141 config/i386/i386.c:26355
+#: config/arm/arm.c:3262 config/arm/arm.c:3280 config/avr/avr.c:4824
+#: config/avr/avr.c:4840 config/bfin/bfin.c:5228 config/h8300/h8300.c:5259
+#: config/i386/i386.c:4141 config/i386/i386.c:26392
 #: config/m68hc11/m68hc11.c:1155 config/m68k/m68k.c:783
 #: config/mcore/mcore.c:3034 config/mips/mips.c:1223 config/mips/mips.c:1225
 #: config/rs6000/rs6000.c:20665 config/sh/sh.c:8129 config/sh/sh.c:8147
@@ -26079,27 +26076,42 @@
 msgid "static variable %q+D is marked dllimport"
 msgstr ""
 
-#: config/avr/avr.c:4613
+#: config/avr/avr.c:399
+#, gcc-internal-format
+msgid "the -mno-tablejump switch is deprecated"
+msgstr ""
+
+#: config/avr/avr.c:400
+#, gcc-internal-format
+msgid "GCC 4.4 is the last release with this switch"
+msgstr ""
+
+#: config/avr/avr.c:401
+#, gcc-internal-format
+msgid "use the -fno-jump-tables switch instead"
+msgstr ""
+
+#: config/avr/avr.c:4626
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled interrupt handler"
 msgstr ""
 
-#: config/avr/avr.c:4622
+#: config/avr/avr.c:4635
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled signal handler"
 msgstr ""
 
-#: config/avr/avr.c:4784
+#: config/avr/avr.c:4797
 #, gcc-internal-format
 msgid "only initialized variables can be placed into program memory area"
 msgstr ""
 
-#: config/avr/avr.c:4918
+#: config/avr/avr.c:4931
 #, gcc-internal-format
 msgid "only uninitialized variables can be placed in the .noinit section"
 msgstr ""
 
-#: config/avr/avr.c:4932
+#: config/avr/avr.c:4945
 #, gcc-internal-format
 msgid "MCU %qs supported for assembler only"
 msgstr ""
@@ -26649,127 +26661,139 @@
 msgid "AVX vector argument without AVX enabled changes the ABI"
 msgstr ""
 
-#: config/i386/i386.c:5039
+#: config/i386/i386.c:4942
+#, gcc-internal-format
+msgid ""
+"The ABI of passing struct with a flexible array member has changed in GCC 4.4"
+msgstr ""
+
+#: config/i386/i386.c:5061
 #, gcc-internal-format
 msgid "The ABI of passing union with long double has changed in GCC 4.4"
 msgstr ""
 
-#: config/i386/i386.c:5284
+#: config/i386/i386.c:5176
+#, gcc-internal-format
+msgid ""
+"The ABI of passing structure with complex float member has changed in GCC 4.4"
+msgstr ""
+
+#: config/i386/i386.c:5321
 #, gcc-internal-format
 msgid "SSE register return with SSE disabled"
 msgstr ""
 
-#: config/i386/i386.c:5290
+#: config/i386/i386.c:5327
 #, gcc-internal-format
 msgid "SSE register argument with SSE disabled"
 msgstr ""
 
-#: config/i386/i386.c:5306
+#: config/i386/i386.c:5343
 #, gcc-internal-format
 msgid "x87 register return with x87 disabled"
 msgstr ""
 
-#: config/i386/i386.c:5672
+#: config/i386/i386.c:5709
 #, gcc-internal-format
 msgid "SSE vector argument without SSE enabled changes the ABI"
 msgstr ""
 
-#: config/i386/i386.c:5709
+#: config/i386/i386.c:5746
 #, gcc-internal-format
 msgid "MMX vector argument without MMX enabled changes the ABI"
 msgstr ""
 
-#: config/i386/i386.c:6310
+#: config/i386/i386.c:6347
 #, gcc-internal-format
 msgid "SSE vector return without SSE enabled changes the ABI"
 msgstr ""
 
-#: config/i386/i386.c:6320
+#: config/i386/i386.c:6357
 #, gcc-internal-format
 msgid "MMX vector return without MMX enabled changes the ABI"
 msgstr ""
 
-#: config/i386/i386.c:10587
+#: config/i386/i386.c:10624
 #, gcc-internal-format
 msgid "extended registers have no high halves"
 msgstr ""
 
-#: config/i386/i386.c:10602
+#: config/i386/i386.c:10639
 #, gcc-internal-format
 msgid "unsupported operand size for extended register"
 msgstr ""
 
-#: config/i386/i386.c:23572
+#: config/i386/i386.c:23609
 #, gcc-internal-format
 msgid "last argument must be an immediate"
 msgstr ""
 
-#: config/i386/i386.c:23865
+#: config/i386/i386.c:23902
 #, gcc-internal-format
 msgid "the fifth argument must be a 8-bit immediate"
 msgstr ""
 
-#: config/i386/i386.c:23960
+#: config/i386/i386.c:23997
 #, gcc-internal-format
 msgid "the third argument must be a 8-bit immediate"
 msgstr ""
 
-#: config/i386/i386.c:24300
+#: config/i386/i386.c:24337
 #, gcc-internal-format
 msgid "the last argument must be a 4-bit immediate"
 msgstr ""
 
-#: config/i386/i386.c:24305
+#: config/i386/i386.c:24342
 #, gcc-internal-format
 msgid "the last argument must be a 2-bit immediate"
 msgstr ""
 
-#: config/i386/i386.c:24314
+#: config/i386/i386.c:24351
 #, gcc-internal-format
 msgid "the last argument must be a 1-bit immediate"
 msgstr ""
 
-#: config/i386/i386.c:24323
+#: config/i386/i386.c:24360
 #, gcc-internal-format
 msgid "the last argument must be a 5-bit immediate"
 msgstr ""
 
-#: config/i386/i386.c:24332
+#: config/i386/i386.c:24369
 #, gcc-internal-format
 msgid "the next to last argument must be an 8-bit immediate"
 msgstr ""
 
-#: config/i386/i386.c:24336 config/i386/i386.c:24514
+#: config/i386/i386.c:24373 config/i386/i386.c:24551
 #, gcc-internal-format
 msgid "the last argument must be an 8-bit immediate"
 msgstr ""
 
-#: config/i386/i386.c:24572 config/rs6000/rs6000.c:8540
+#: config/i386/i386.c:24609 config/rs6000/rs6000.c:8540
 #, gcc-internal-format
 msgid "selector must be an integer constant in the range 0..%wi"
 msgstr ""
 
-#: config/i386/i386.c:24715
+#: config/i386/i386.c:24752
 #, gcc-internal-format
 msgid "%qE needs unknown isa option"
 msgstr ""
 
-#: config/i386/i386.c:24719
+#: config/i386/i386.c:24756
 #, gcc-internal-format
 msgid "%qE needs isa option %s"
 msgstr ""
 
-#: config/i386/i386.c:26362
+#: config/i386/i386.c:26399
 #, gcc-internal-format
 msgid "%qs attribute only available for 64-bit"
 msgstr ""
 
-#: config/i386/i386.c:26373 config/i386/i386.c:26382
+#: config/i386/i386.c:26410 config/i386/i386.c:26419
 #, gcc-internal-format
 msgid "ms_abi and sysv_abi attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386.c:26420 config/rs6000/rs6000.c:20748
+#: config/i386/i386.c:26457 config/rs6000/rs6000.c:20748
 #, gcc-internal-format
 msgid "%qs incompatible attribute ignored"
 msgstr ""
@@ -26857,22 +26881,32 @@
 msgid "%s-%s is an empty range"
 msgstr ""
 
-#: config/ia64/ia64.c:5223
+#: config/ia64/ia64.c:5225
 #, gcc-internal-format
 msgid "bad value %<%s%> for -mtls-size= switch"
 msgstr ""
 
-#: config/ia64/ia64.c:5251
+#: config/ia64/ia64.c:5254
+#, gcc-internal-format
+msgid "value %<%s%> for -mtune= switch is deprecated"
+msgstr ""
+
+#: config/ia64/ia64.c:5256
+#, gcc-internal-format
+msgid "GCC 4.4 is the last release with Itanium1 tuning support"
+msgstr ""
+
+#: config/ia64/ia64.c:5263
 #, gcc-internal-format
 msgid "bad value %<%s%> for -mtune= switch"
 msgstr ""
 
-#: config/ia64/ia64.c:5270
+#: config/ia64/ia64.c:5282
 #, gcc-internal-format
 msgid "not yet implemented: latency-optimized inline square root"
 msgstr ""
 
-#: config/ia64/ia64.c:10535
+#: config/ia64/ia64.c:10547
 #, gcc-internal-format
 msgid "version attribute is not a string"
 msgstr ""
@@ -27373,37 +27407,37 @@
 msgid "junk at end of #pragma longcall"
 msgstr ""
 
-#: config/rs6000/rs6000-c.c:2989
+#: config/rs6000/rs6000-c.c:3001
 #, gcc-internal-format
 msgid "%s only accepts %d arguments"
 msgstr ""
 
-#: config/rs6000/rs6000-c.c:2994
+#: config/rs6000/rs6000-c.c:3006
 #, gcc-internal-format
 msgid "%s only accepts 1 argument"
 msgstr ""
 
-#: config/rs6000/rs6000-c.c:2999 config/rs6000/rs6000-c.c:3006
+#: config/rs6000/rs6000-c.c:3011 config/rs6000/rs6000-c.c:3018
 #, gcc-internal-format
 msgid "%s only accepts 2 arguments"
 msgstr ""
 
-#: config/rs6000/rs6000-c.c:3067
+#: config/rs6000/rs6000-c.c:3079
 #, gcc-internal-format
 msgid "vec_extract only accepts 2 arguments"
 msgstr ""
 
-#: config/rs6000/rs6000-c.c:3124
+#: config/rs6000/rs6000-c.c:3136
 #, gcc-internal-format
 msgid "vec_insert only accepts 3 arguments"
 msgstr ""
 
-#: config/rs6000/rs6000-c.c:3206
+#: config/rs6000/rs6000-c.c:3218
 #, gcc-internal-format
 msgid "passing arg %d of %qE discards qualifiers frompointer target type"
 msgstr ""
 
-#: config/rs6000/rs6000-c.c:3249
+#: config/rs6000/rs6000-c.c:3261
 #, gcc-internal-format
 msgid "invalid parameter combination for AltiVec intrinsic"
 msgstr ""
@@ -27714,7 +27748,7 @@
 msgid "-m64 not supported in this configuration"
 msgstr ""
 
-#: config/rs6000/linux64.h:108
+#: config/rs6000/linux64.h:113
 #, gcc-internal-format
 msgid "-m64 requires a PowerPC64 cpu"
 msgstr ""
@@ -27731,7 +27765,7 @@
 #. Number of bytes into the frame return addresses can be found.  See
 #. rs6000_stack_info in rs6000.c for more information on how the different
 #. abi's store the return address.
-#: config/rs6000/rs6000.h:1643
+#: config/rs6000/rs6000.h:1648
 #, gcc-internal-format
 msgid "RETURN_ADDRESS_OFFSET not supported"
 msgstr ""
@@ -27744,57 +27778,57 @@
 #.
 #. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
 #. get control.
-#: config/rs6000/sysv4.h:129
+#: config/rs6000/sysv4.h:134
 #, gcc-internal-format
 msgid "bad value for -mcall-%s"
 msgstr ""
 
-#: config/rs6000/sysv4.h:145
+#: config/rs6000/sysv4.h:150
 #, gcc-internal-format
 msgid "bad value for -msdata=%s"
 msgstr ""
 
-#: config/rs6000/sysv4.h:162
+#: config/rs6000/sysv4.h:167
 #, gcc-internal-format
 msgid "-mrelocatable and -msdata=%s are incompatible"
 msgstr ""
 
-#: config/rs6000/sysv4.h:171
+#: config/rs6000/sysv4.h:176
 #, gcc-internal-format
 msgid "-f%s and -msdata=%s are incompatible"
 msgstr ""
 
-#: config/rs6000/sysv4.h:180
+#: config/rs6000/sysv4.h:185
 #, gcc-internal-format
 msgid "-msdata=%s and -mcall-%s are incompatible"
 msgstr ""
 
-#: config/rs6000/sysv4.h:189
+#: config/rs6000/sysv4.h:194
 #, gcc-internal-format
 msgid "-mrelocatable and -mno-minimal-toc are incompatible"
 msgstr ""
 
-#: config/rs6000/sysv4.h:195
+#: config/rs6000/sysv4.h:200
 #, gcc-internal-format
 msgid "-mrelocatable and -mcall-%s are incompatible"
 msgstr ""
 
-#: config/rs6000/sysv4.h:202
+#: config/rs6000/sysv4.h:207
 #, gcc-internal-format
 msgid "-fPIC and -mcall-%s are incompatible"
 msgstr ""
 
-#: config/rs6000/sysv4.h:209
+#: config/rs6000/sysv4.h:214
 #, gcc-internal-format
 msgid "-mcall-aixdesc must be big endian"
 msgstr ""
 
-#: config/rs6000/sysv4.h:214
+#: config/rs6000/sysv4.h:219
 #, gcc-internal-format
 msgid "-msecure-plt not supported by your assembler"
 msgstr ""
 
-#: config/rs6000/sysv4.h:232
+#: config/rs6000/sysv4.h:237
 #, gcc-internal-format
 msgid "-m%s not supported in this configuration"
 msgstr ""
@@ -27966,7 +28000,7 @@
 msgid "%s %q+D %s after being referenced with dllimport linkage"
 msgstr ""
 
-#: config/sh/symbian.c:891 cp/tree.c:2843
+#: config/sh/symbian.c:891 cp/tree.c:2842
 #, gcc-internal-format
 msgid "lang_* check: failed in %s, at %s:%d"
 msgstr ""
@@ -28493,76 +28527,91 @@
 msgid "%qT is not an accessible base of %qT"
 msgstr ""
 
-#: cp/call.c:5522
+#: cp/call.c:5538
 #, gcc-internal-format
 msgid "could not find class$ field in java interface type %qT"
 msgstr ""
 
-#: cp/call.c:5765
+#: cp/call.c:5781
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr ""
 
-#: cp/call.c:5904
+#: cp/call.c:5920
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::%s(%A)%#V%>"
 msgstr ""
 
-#: cp/call.c:5925
+#: cp/call.c:5941
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr ""
 
-#: cp/call.c:5954
+#: cp/call.c:5970
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr ""
 
-#: cp/call.c:6642
+#: cp/call.c:6658
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr ""
 
-#: cp/call.c:6644 cp/name-lookup.c:4468 cp/name-lookup.c:4913
+#: cp/call.c:6660 cp/name-lookup.c:4469 cp/name-lookup.c:4914
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr ""
 
-#: cp/call.c:6701
+#: cp/call.c:6717
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr ""
 
-#: cp/call.c:6702
+#: cp/call.c:6718
 #, gcc-internal-format
 msgid "  for conversion from %qT to %qT"
 msgstr ""
 
-#: cp/call.c:6705
+#: cp/call.c:6721
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr ""
 
-#: cp/call.c:6821
+#: cp/call.c:6839
+#, gcc-internal-format
+msgid "default argument mismatch in overload resolution"
+msgstr ""
+
+#: cp/call.c:6842
+#, gcc-internal-format
+msgid " candidate 1: %q+#F"
+msgstr ""
+
+#: cp/call.c:6844
+#, gcc-internal-format
+msgid " candidate 2: %q+#F"
+msgstr ""
+
+#: cp/call.c:6882
 #, gcc-internal-format
 msgid ""
 "ISO C++ says that these are ambiguous, even though the worst conversion for "
 "the first is better than the worst conversion for the second:"
 msgstr ""
 
-#: cp/call.c:6965
+#: cp/call.c:7026
 #, gcc-internal-format
 msgid "could not convert %qE to %qT"
 msgstr ""
 
-#: cp/call.c:7171
+#: cp/call.c:7232
 #, gcc-internal-format
 msgid ""
 "invalid initialization of non-const reference of type %qT from a temporary "
 "of type %qT"
 msgstr ""
 
-#: cp/call.c:7175
+#: cp/call.c:7236
 #, gcc-internal-format
 msgid ""
 "invalid initialization of reference of type %qT from expression of type %qT"
@@ -28903,27 +28952,27 @@
 msgid "no matches converting function %qD to type %q#T"
 msgstr ""
 
-#: cp/class.c:6161
+#: cp/class.c:6168
 #, gcc-internal-format
 msgid "converting overloaded function %qD to type %q#T is ambiguous"
 msgstr ""
 
-#: cp/class.c:6187
+#: cp/class.c:6195
 #, gcc-internal-format
 msgid "assuming pointer to member %qD"
 msgstr ""
 
-#: cp/class.c:6190
+#: cp/class.c:6198
 #, gcc-internal-format
 msgid "(a pointer to member can only be formed with %<&%E%>)"
 msgstr ""
 
-#: cp/class.c:6252 cp/class.c:6286
+#: cp/class.c:6260 cp/class.c:6294
 #, gcc-internal-format
 msgid "not enough type information"
 msgstr ""
 
-#: cp/class.c:6269
+#: cp/class.c:6277
 #, gcc-internal-format
 msgid "argument of type %qT does not match %qT"
 msgstr ""
@@ -28933,12 +28982,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.
-#: cp/class.c:6587 cp/decl.c:1193 cp/name-lookup.c:526
+#: cp/class.c:6595 cp/decl.c:1193 cp/name-lookup.c:526
 #, gcc-internal-format
 msgid "declaration of %q#D"
 msgstr ""
 
-#: cp/class.c:6588
+#: cp/class.c:6596
 #, gcc-internal-format
 msgid "changes meaning of %qD from %q+#D"
 msgstr ""
@@ -29473,117 +29522,117 @@
 msgid "attribute for %q+#T must follow the %qs keyword"
 msgstr ""
 
-#: cp/decl.c:3980
+#: cp/decl.c:3983
 #, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr ""
 
 #. A template type parameter or other dependent type.
-#: cp/decl.c:3984
+#: cp/decl.c:3987
 #, gcc-internal-format
 msgid ""
 "ignoring attributes applied to dependent type %qT without an associated "
 "declaration"
 msgstr ""
 
-#: cp/decl.c:4060
+#: cp/decl.c:4063
 #, gcc-internal-format
 msgid "typedef %qD is initialized (use decltype instead)"
 msgstr ""
 
-#: cp/decl.c:4078
+#: cp/decl.c:4081
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr ""
 
-#: cp/decl.c:4103
+#: cp/decl.c:4106
 #, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr ""
 
-#: cp/decl.c:4122
+#: cp/decl.c:4125
 #, gcc-internal-format
 msgid "%q#D is not a static member of %q#T"
 msgstr ""
 
-#: cp/decl.c:4128
+#: cp/decl.c:4131
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr ""
 
-#: cp/decl.c:4137
+#: cp/decl.c:4140
 #, gcc-internal-format
 msgid ""
 "template header not allowed in member definition of explicitly specialized "
 "class"
 msgstr ""
 
-#: cp/decl.c:4145
+#: cp/decl.c:4148
 #, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr ""
 
-#: cp/decl.c:4184
+#: cp/decl.c:4187
 #, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr ""
 
-#: cp/decl.c:4279
+#: cp/decl.c:4282
 #, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr ""
 
-#: cp/decl.c:4285 cp/decl.c:5033
+#: cp/decl.c:4288 cp/decl.c:5036
 #, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr ""
 
-#: cp/decl.c:4292 cp/decl.c:5529
+#: cp/decl.c:4295 cp/decl.c:5532
 #, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr ""
 
-#: cp/decl.c:4294
+#: cp/decl.c:4297
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr ""
 
-#: cp/decl.c:4330
+#: cp/decl.c:4333
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr ""
 
-#: cp/decl.c:4336
+#: cp/decl.c:4339
 #, gcc-internal-format
 msgid "ISO C++ forbids use of initializer list to initialize reference %qD"
 msgstr ""
 
-#: cp/decl.c:4362
+#: cp/decl.c:4365
 #, gcc-internal-format
 msgid "cannot initialize %qT from %qT"
 msgstr ""
 
-#: cp/decl.c:4423
+#: cp/decl.c:4426
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.c:4428
+#: cp/decl.c:4431
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.c:4478
+#: cp/decl.c:4481
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr ""
 
-#: cp/decl.c:4485
+#: cp/decl.c:4488
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr ""
 
-#: cp/decl.c:4497
+#: cp/decl.c:4500
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr ""
@@ -29591,273 +29640,273 @@
 #. 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.
-#: cp/decl.c:4540
+#: cp/decl.c:4543
 #, gcc-internal-format
 msgid "storage size of %qD isn't known"
 msgstr ""
 
-#: cp/decl.c:4563
+#: cp/decl.c:4566
 #, gcc-internal-format
 msgid "storage size of %qD isn't constant"
 msgstr ""
 
-#: cp/decl.c:4614
+#: cp/decl.c:4617
 #, gcc-internal-format
 msgid ""
 "sorry: semantics of inline function static data %q+#D are wrong (you'll wind "
 "up with multiple copies)"
 msgstr ""
 
-#: cp/decl.c:4617
+#: cp/decl.c:4620
 #, gcc-internal-format
 msgid "%J  you can work around this by removing the initializer"
 msgstr ""
 
-#: cp/decl.c:4644
+#: cp/decl.c:4647
 #, gcc-internal-format
 msgid "uninitialized const %qD"
 msgstr ""
 
-#: cp/decl.c:4756
+#: cp/decl.c:4759
 #, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr ""
 
-#: cp/decl.c:4798
+#: cp/decl.c:4801
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr ""
 
-#: cp/decl.c:4816
+#: cp/decl.c:4819
 #, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr ""
 
-#: cp/decl.c:4872
+#: cp/decl.c:4875
 #, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr ""
 
-#: cp/decl.c:4958
+#: cp/decl.c:4961
 #, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr ""
 
-#: cp/decl.c:5015 cp/typeck2.c:1087 cp/typeck2.c:1110 cp/typeck2.c:1153
+#: cp/decl.c:5018 cp/typeck2.c:1087 cp/typeck2.c:1110 cp/typeck2.c:1153
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr ""
 
-#: cp/decl.c:5035
+#: cp/decl.c:5038
 #, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr ""
 
-#: cp/decl.c:5044
+#: cp/decl.c:5047
 #, gcc-internal-format
 msgid "variable-sized object %qD may not be initialized"
 msgstr ""
 
-#: cp/decl.c:5046
+#: cp/decl.c:5049
 #, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr ""
 
-#: cp/decl.c:5100
+#: cp/decl.c:5103
 #, gcc-internal-format
 msgid "%qD has incomplete type"
 msgstr ""
 
-#: cp/decl.c:5120
+#: cp/decl.c:5123
 #, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr ""
 
-#: cp/decl.c:5151
+#: cp/decl.c:5154
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr ""
 
-#: cp/decl.c:5183
+#: cp/decl.c:5186
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr ""
 
-#: cp/decl.c:5197
+#: cp/decl.c:5200
 #, gcc-internal-format
 msgid "structure %qD with uninitialized const members"
 msgstr ""
 
-#: cp/decl.c:5199
+#: cp/decl.c:5202
 #, gcc-internal-format
 msgid "structure %qD with uninitialized reference members"
 msgstr ""
 
-#: cp/decl.c:5496
+#: cp/decl.c:5499
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr ""
 
-#: cp/decl.c:5555 cp/decl2.c:850
+#: cp/decl.c:5558 cp/decl2.c:850
 #, gcc-internal-format
 msgid "%qD cannot be defaulted"
 msgstr ""
 
-#: cp/decl.c:5631
+#: cp/decl.c:5634
 #, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr ""
 
-#: cp/decl.c:5661
+#: cp/decl.c:5664
 #, gcc-internal-format
 msgid "%qD cannot be thread-local because it has non-POD type %qT"
 msgstr ""
 
-#: cp/decl.c:5693
+#: cp/decl.c:5696
 #, gcc-internal-format
 msgid "Java object %qD not allocated with %<new%>"
 msgstr ""
 
-#: cp/decl.c:5710
+#: cp/decl.c:5713
 #, gcc-internal-format
 msgid "%qD is thread-local and so cannot be dynamically initialized"
 msgstr ""
 
-#: cp/decl.c:5728
+#: cp/decl.c:5731
 #, gcc-internal-format
 msgid ""
 "%qD cannot be initialized by a non-constant expression when being declared"
 msgstr ""
 
-#: cp/decl.c:5768
+#: cp/decl.c:5771
 #, gcc-internal-format
 msgid "non-static data member %qD has Java class type"
 msgstr ""
 
-#: cp/decl.c:5832
+#: cp/decl.c:5835
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr ""
 
-#: cp/decl.c:6420
+#: cp/decl.c:6423
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr ""
 
-#: cp/decl.c:6422
+#: cp/decl.c:6425
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr ""
 
-#: cp/decl.c:6443
+#: cp/decl.c:6446
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> %s"
 msgstr ""
 
-#: cp/decl.c:6445
+#: cp/decl.c:6448
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> %s"
 msgstr ""
 
-#: cp/decl.c:6447
+#: cp/decl.c:6450
 #, gcc-internal-format
 msgid ""
 "%<const%> and %<volatile%> function specifiers on %qD invalid in %s "
 "declaration"
 msgstr ""
 
-#: cp/decl.c:6451
+#: cp/decl.c:6454
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr ""
 
-#: cp/decl.c:6457
+#: cp/decl.c:6460
 #, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr ""
 
-#: cp/decl.c:6491
+#: cp/decl.c:6494
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr ""
 
-#: cp/decl.c:6611
+#: cp/decl.c:6614
 #, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr ""
 
 #. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:6621
+#: cp/decl.c:6624
 #, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr ""
 
-#: cp/decl.c:6651
+#: cp/decl.c:6654
 #, gcc-internal-format
 msgid ""
 "default arguments are not allowed in declaration of friend template "
 "specialization %qD"
 msgstr ""
 
-#: cp/decl.c:6659
+#: cp/decl.c:6662
 #, gcc-internal-format
 msgid ""
 "%<inline%> is not allowed in declaration of friend template specialization %"
 "qD"
 msgstr ""
 
-#: cp/decl.c:6702
+#: cp/decl.c:6705
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr ""
 
-#: cp/decl.c:6704
+#: cp/decl.c:6707
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr ""
 
-#: cp/decl.c:6706
+#: cp/decl.c:6709
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr ""
 
-#: cp/decl.c:6734
+#: cp/decl.c:6737
 #, gcc-internal-format
 msgid "non-local function %q#D uses anonymous type"
 msgstr ""
 
-#: cp/decl.c:6737 cp/decl.c:7013
+#: cp/decl.c:6740 cp/decl.c:7016
 #, gcc-internal-format
 msgid ""
 "%q+#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr ""
 
-#: cp/decl.c:6743
+#: cp/decl.c:6746
 #, gcc-internal-format
 msgid "non-local function %q#D uses local type %qT"
 msgstr ""
 
-#: cp/decl.c:6762
+#: cp/decl.c:6765
 #, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr ""
 
-#: cp/decl.c:6763
+#: cp/decl.c:6766
 #, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr ""
 
-#: cp/decl.c:6811
+#: cp/decl.c:6814
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr ""
 
-#: cp/decl.c:6851
+#: cp/decl.c:6854
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr ""
 
-#: cp/decl.c:6868 cp/decl2.c:685
+#: cp/decl.c:6871 cp/decl2.c:685
 #, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr ""
@@ -29866,589 +29915,594 @@
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl.c:7010
+#: cp/decl.c:7013
 #, gcc-internal-format
 msgid "non-local variable %q#D uses anonymous type"
 msgstr ""
 
-#: cp/decl.c:7019
+#: cp/decl.c:7022
 #, gcc-internal-format
 msgid "non-local variable %q#D uses local type %qT"
 msgstr ""
 
-#: cp/decl.c:7142
+#: cp/decl.c:7145
 #, gcc-internal-format
 msgid ""
 "invalid in-class initialization of static data member of non-integral type %"
 "qT"
 msgstr ""
 
-#: cp/decl.c:7152
+#: cp/decl.c:7155
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr ""
 
-#: cp/decl.c:7156
+#: cp/decl.c:7159
 #, gcc-internal-format
 msgid ""
 "ISO C++ forbids initialization of member constant %qD of non-integral type %"
 "qT"
 msgstr ""
 
-#: cp/decl.c:7181
+#: cp/decl.c:7184
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr ""
 
-#: cp/decl.c:7183
+#: cp/decl.c:7186
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr ""
 
-#: cp/decl.c:7235
+#: cp/decl.c:7238
 #, gcc-internal-format
 msgid "size of array %qD is negative"
 msgstr ""
 
-#: cp/decl.c:7237
+#: cp/decl.c:7240
 #, gcc-internal-format
 msgid "size of array is negative"
 msgstr ""
 
-#: cp/decl.c:7245
+#: cp/decl.c:7248
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr ""
 
-#: cp/decl.c:7247
+#: cp/decl.c:7250
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr ""
 
-#: cp/decl.c:7254
+#: cp/decl.c:7257
 #, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr ""
 
-#: cp/decl.c:7257
+#: cp/decl.c:7260
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr ""
 
-#: cp/decl.c:7263
+#: cp/decl.c:7266
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr ""
 
-#: cp/decl.c:7265
+#: cp/decl.c:7268
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr ""
 
-#: cp/decl.c:7271
+#: cp/decl.c:7274
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr ""
 
-#: cp/decl.c:7307
+#: cp/decl.c:7310
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr ""
 
-#: cp/decl.c:7388
+#: cp/decl.c:7391
 #, gcc-internal-format
 msgid "declaration of %qD as %s"
 msgstr ""
 
-#: cp/decl.c:7390
+#: cp/decl.c:7393
 #, gcc-internal-format
 msgid "creating %s"
 msgstr ""
 
-#: cp/decl.c:7402
+#: cp/decl.c:7405
 #, gcc-internal-format
 msgid ""
 "declaration of %qD as multidimensional array must have bounds for all "
 "dimensions except the first"
 msgstr ""
 
-#: cp/decl.c:7406
+#: cp/decl.c:7409
 #, gcc-internal-format
 msgid ""
 "multidimensional array must have bounds for all dimensions except the first"
 msgstr ""
 
-#: cp/decl.c:7441
+#: cp/decl.c:7444
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr ""
 
-#: cp/decl.c:7451
+#: cp/decl.c:7454
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr ""
 
-#: cp/decl.c:7464
+#: cp/decl.c:7467
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr ""
 
-#: cp/decl.c:7486
+#: cp/decl.c:7489
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr ""
 
-#: cp/decl.c:7490
+#: cp/decl.c:7493
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr ""
 
-#: cp/decl.c:7493
+#: cp/decl.c:7496
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr ""
 
-#: cp/decl.c:7663
+#: cp/decl.c:7669
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr ""
 
-#: cp/decl.c:7666
+#: cp/decl.c:7672
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr ""
 
-#: cp/decl.c:7669
+#: cp/decl.c:7675
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr ""
 
-#: cp/decl.c:7681
+#: cp/decl.c:7687
 #, gcc-internal-format
 msgid "type %qT is not derived from type %qT"
 msgstr ""
 
-#: cp/decl.c:7697 cp/decl.c:7789 cp/decl.c:8979
+#: cp/decl.c:7703 cp/decl.c:7795 cp/decl.c:8993
 #, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr ""
 
-#: cp/decl.c:7703
+#: cp/decl.c:7709
 #, gcc-internal-format
 msgid "declaration of %qD as non-member"
 msgstr ""
 
-#: cp/decl.c:7734
+#: cp/decl.c:7740
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr ""
 
-#: cp/decl.c:7781
+#: cp/decl.c:7787
 #, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr ""
 
-#: cp/decl.c:7823
+#: cp/decl.c:7829
 #, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr ""
 
-#: cp/decl.c:7829
+#: cp/decl.c:7835
 #, gcc-internal-format
 msgid "conflicting specifiers in declaration of %qs"
 msgstr ""
 
-#: cp/decl.c:7900 cp/decl.c:7903 cp/decl.c:7906
+#: cp/decl.c:7906 cp/decl.c:7909 cp/decl.c:7912
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr ""
 
-#: cp/decl.c:7931 cp/decl.c:7949
+#: cp/decl.c:7937 cp/decl.c:7955
 #, gcc-internal-format
 msgid "%<signed%> or %<unsigned%> invalid for %qs"
 msgstr ""
 
-#: cp/decl.c:7933
+#: cp/decl.c:7939
 #, gcc-internal-format
 msgid "%<signed%> and %<unsigned%> specified together for %qs"
 msgstr ""
 
-#: cp/decl.c:7935
+#: cp/decl.c:7941
 #, gcc-internal-format
 msgid "%<long long%> invalid for %qs"
 msgstr ""
 
-#: cp/decl.c:7937
+#: cp/decl.c:7943
 #, gcc-internal-format
 msgid "%<long%> invalid for %qs"
 msgstr ""
 
-#: cp/decl.c:7939
+#: cp/decl.c:7945
 #, gcc-internal-format
 msgid "%<short%> invalid for %qs"
 msgstr ""
 
-#: cp/decl.c:7941
+#: cp/decl.c:7947
 #, gcc-internal-format
 msgid "%<long%> or %<short%> invalid for %qs"
 msgstr ""
 
-#: cp/decl.c:7943
+#: cp/decl.c:7949
 #, gcc-internal-format
 msgid "%<long%> or %<short%> specified with char for %qs"
 msgstr ""
 
-#: cp/decl.c:7945
+#: cp/decl.c:7951
 #, gcc-internal-format
 msgid "%<long%> and %<short%> specified together for %qs"
 msgstr ""
 
-#: cp/decl.c:7951
+#: cp/decl.c:7957
 #, gcc-internal-format
 msgid "%<short%> or %<long%> invalid for %qs"
 msgstr ""
 
-#: cp/decl.c:7959
+#: cp/decl.c:7965
 #, gcc-internal-format
 msgid "long, short, signed or unsigned used invalidly for %qs"
 msgstr ""
 
-#: cp/decl.c:8023
+#: cp/decl.c:8029
 #, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr ""
 
-#: cp/decl.c:8052
+#: cp/decl.c:8058
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr ""
 
-#: cp/decl.c:8065 cp/typeck.c:7252
+#: cp/decl.c:8071 cp/typeck.c:7255
 #, gcc-internal-format
 msgid "ignoring %qV qualifiers added to function type %qT"
 msgstr ""
 
-#: cp/decl.c:8088
+#: cp/decl.c:8094
 #, gcc-internal-format
 msgid "member %qD cannot be declared both virtual and static"
 msgstr ""
 
-#: cp/decl.c:8096
+#: cp/decl.c:8102
 #, gcc-internal-format
 msgid "%<%T::%D%> is not a valid declarator"
 msgstr ""
 
-#: cp/decl.c:8105
+#: cp/decl.c:8111
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr ""
 
-#: cp/decl.c:8111
+#: cp/decl.c:8117
 #, gcc-internal-format
 msgid "storage class specifiers invalid in parameter declarations"
 msgstr ""
 
-#: cp/decl.c:8115
+#: cp/decl.c:8121
 #, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr ""
 
-#: cp/decl.c:8124
+#: cp/decl.c:8130
 #, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr ""
 
-#: cp/decl.c:8142
+#: cp/decl.c:8148
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr ""
 
-#: cp/decl.c:8165
+#: cp/decl.c:8171
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr ""
 
-#: cp/decl.c:8186
+#: cp/decl.c:8192
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr ""
 
-#: cp/decl.c:8199
+#: cp/decl.c:8205
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr ""
 
-#: cp/decl.c:8314
+#: cp/decl.c:8320
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without late return type"
 msgstr ""
 
-#: cp/decl.c:8320
+#: cp/decl.c:8326
 #, gcc-internal-format
 msgid ""
 "%qs function with late return type has %qT as its type rather than plain %"
 "<auto%>"
 msgstr ""
 
-#: cp/decl.c:8328
+#: cp/decl.c:8334
 #, gcc-internal-format
 msgid ""
 "%qs function with late return type not declared with %<auto%> type specifier"
 msgstr ""
 
-#: cp/decl.c:8361
+#: cp/decl.c:8367
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr ""
 
-#: cp/decl.c:8366
+#: cp/decl.c:8372
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr ""
 
-#: cp/decl.c:8384
+#: cp/decl.c:8390
 #, gcc-internal-format
 msgid "constructors cannot be declared virtual"
 msgstr ""
 
-#: cp/decl.c:8397
+#: cp/decl.c:8403
 #, gcc-internal-format
 msgid "can't initialize friend function %qs"
 msgstr ""
 
 #. Cannot be both friend and virtual.
-#: cp/decl.c:8401
+#: cp/decl.c:8407
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr ""
 
-#: cp/decl.c:8405
+#: cp/decl.c:8411
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr ""
 
-#: cp/decl.c:8407
+#: cp/decl.c:8413
 #, gcc-internal-format
 msgid "can't define friend function %qs in a local class definition"
 msgstr ""
 
-#: cp/decl.c:8420
+#: cp/decl.c:8426
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr ""
 
-#: cp/decl.c:8439
+#: cp/decl.c:8445
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr ""
 
-#: cp/decl.c:8452 cp/decl.c:8459
+#: cp/decl.c:8458 cp/decl.c:8465
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr ""
 
-#: cp/decl.c:8461
+#: cp/decl.c:8467
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr ""
 
-#: cp/decl.c:8512
+#: cp/decl.c:8487
+#, gcc-internal-format
+msgid "cannot declare %s to qualified function type %qT"
+msgstr ""
+
+#: cp/decl.c:8524
 #, gcc-internal-format
 msgid ""
 "cannot declare reference to %q#T, which is not a typedef or a template type "
 "argument"
 msgstr ""
 
-#: cp/decl.c:8556
+#: cp/decl.c:8568
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr ""
 
-#: cp/decl.c:8607
+#: cp/decl.c:8619
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr ""
 
-#: cp/decl.c:8612
+#: cp/decl.c:8624
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr ""
 
-#: cp/decl.c:8644
+#: cp/decl.c:8656
 #, gcc-internal-format
 msgid "cannot define member function %<%T::%s%> within %<%T%>"
 msgstr ""
 
-#: cp/decl.c:8661
+#: cp/decl.c:8673
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr ""
 
-#: cp/decl.c:8684
+#: cp/decl.c:8696
 #, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr ""
 
-#: cp/decl.c:8705
+#: cp/decl.c:8717
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr ""
 
-#: cp/decl.c:8707
+#: cp/decl.c:8719
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr ""
 
 #. [dcl.fct.spec] The explicit specifier shall only be used in
 #. declarations of constructors within a class definition.
-#: cp/decl.c:8715
+#: cp/decl.c:8727
 #, gcc-internal-format
 msgid "only declarations of constructors can be %<explicit%>"
 msgstr ""
 
-#: cp/decl.c:8723
+#: cp/decl.c:8735
 #, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.c:8728
+#: cp/decl.c:8740
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.c:8734
+#: cp/decl.c:8746
 #, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.c:8739
+#: cp/decl.c:8751
 #, gcc-internal-format
 msgid "static %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.c:8744
+#: cp/decl.c:8756
 #, gcc-internal-format
 msgid "const %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.c:8781
+#: cp/decl.c:8793
 #, gcc-internal-format
 msgid "%Jtypedef name may not be a nested-name-specifier"
 msgstr ""
 
-#: cp/decl.c:8799
+#: cp/decl.c:8811
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr ""
 
-#: cp/decl.c:8883
+#: cp/decl.c:8895
 #, gcc-internal-format
 msgid ""
 "qualified function types cannot be used to declare static member functions"
 msgstr ""
 
-#: cp/decl.c:8885
+#: cp/decl.c:8897
 #, gcc-internal-format
 msgid "qualified function types cannot be used to declare free functions"
 msgstr ""
 
-#: cp/decl.c:8911
+#: cp/decl.c:8923
 #, gcc-internal-format
 msgid "type qualifiers specified for friend class declaration"
 msgstr ""
 
-#: cp/decl.c:8916
+#: cp/decl.c:8928
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr ""
 
-#: cp/decl.c:8924
+#: cp/decl.c:8936
 #, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr ""
 
-#: cp/decl.c:8926
+#: cp/decl.c:8938
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr ""
 
-#: cp/decl.c:8930
+#: cp/decl.c:8942
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr ""
 
-#: cp/decl.c:8943
+#: cp/decl.c:8955
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr ""
 
-#: cp/decl.c:8954
+#: cp/decl.c:8973
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr ""
 
-#: cp/decl.c:8969
+#: cp/decl.c:8983
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr ""
 
-#: cp/decl.c:8998
+#: cp/decl.c:9012
 #, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr ""
 
 #. Something like struct S { int N::j; };
-#: cp/decl.c:9044
+#: cp/decl.c:9058
 #, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr ""
 
-#: cp/decl.c:9059
+#: cp/decl.c:9073
 #, gcc-internal-format
 msgid "can't make %qD into a method -- not in a class"
 msgstr ""
 
-#: cp/decl.c:9068
+#: cp/decl.c:9082
 #, gcc-internal-format
 msgid "function %qD declared virtual inside a union"
 msgstr ""
 
-#: cp/decl.c:9077
+#: cp/decl.c:9091
 #, gcc-internal-format
 msgid "%qD cannot be declared virtual, since it is always static"
 msgstr ""
 
-#: cp/decl.c:9095
+#: cp/decl.c:9109
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr ""
 
-#: cp/decl.c:9102
+#: cp/decl.c:9116
 #, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr ""
 
-#: cp/decl.c:9109
+#: cp/decl.c:9123
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr ""
 
-#: cp/decl.c:9172
+#: cp/decl.c:9186
 #, gcc-internal-format
 msgid "field %qD has incomplete type"
 msgstr ""
 
-#: cp/decl.c:9174
+#: cp/decl.c:9188
 #, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr ""
 
-#: cp/decl.c:9183
+#: cp/decl.c:9197
 #, gcc-internal-format
 msgid "  in instantiation of template %qT"
 msgstr ""
 
-#: cp/decl.c:9192
+#: cp/decl.c:9206
 #, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr ""
@@ -30465,117 +30519,117 @@
 #. the rest of the compiler does not correctly
 #. handle the initialization unless the member is
 #. static so we make it static below.
-#: cp/decl.c:9244
+#: cp/decl.c:9258
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member %qD"
 msgstr ""
 
-#: cp/decl.c:9246
+#: cp/decl.c:9260
 #, gcc-internal-format
 msgid "making %qD static"
 msgstr ""
 
-#: cp/decl.c:9311
+#: cp/decl.c:9325
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.c:9313
+#: cp/decl.c:9327
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.c:9315
+#: cp/decl.c:9329
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.c:9327
+#: cp/decl.c:9341
 #, gcc-internal-format
 msgid ""
 "%<static%> specified invalid for function %qs declared out of global scope"
 msgstr ""
 
-#: cp/decl.c:9331
+#: cp/decl.c:9345
 #, gcc-internal-format
 msgid ""
 "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr ""
 
-#: cp/decl.c:9338
+#: cp/decl.c:9352
 #, gcc-internal-format
 msgid "%q#T is not a class or a namespace"
 msgstr ""
 
-#: cp/decl.c:9346
+#: cp/decl.c:9360
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr ""
 
-#: cp/decl.c:9353
+#: cp/decl.c:9367
 #, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr ""
 
-#: cp/decl.c:9386
+#: cp/decl.c:9400
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr ""
 
 #. FIXME need arm citation
-#: cp/decl.c:9393
+#: cp/decl.c:9407
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr ""
 
-#: cp/decl.c:9423
+#: cp/decl.c:9437
 #, gcc-internal-format
 msgid ""
 "%<static%> may not be used when defining (as opposed to declaring) a static "
 "data member"
 msgstr ""
 
-#: cp/decl.c:9430
+#: cp/decl.c:9444
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr ""
 
-#: cp/decl.c:9436
+#: cp/decl.c:9450
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr ""
 
-#: cp/decl.c:9580
+#: cp/decl.c:9594
 #, gcc-internal-format
 msgid "default argument for %q#D has type %qT"
 msgstr ""
 
-#: cp/decl.c:9583
+#: cp/decl.c:9597
 #, gcc-internal-format
 msgid "default argument for parameter of type %qT has type %qT"
 msgstr ""
 
-#: cp/decl.c:9599
+#: cp/decl.c:9613
 #, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr ""
 
-#: cp/decl.c:9682
+#: cp/decl.c:9696
 #, gcc-internal-format
 msgid "parameter %qD has Java class type"
 msgstr ""
 
-#: cp/decl.c:9702
+#: cp/decl.c:9716
 #, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr ""
 
-#: cp/decl.c:9726
+#: cp/decl.c:9740
 #, gcc-internal-format
 msgid "parameter %qD includes %s to array of unknown bound %qT"
 msgstr ""
 
-#: cp/decl.c:9741
+#: cp/decl.c:9755
 #, gcc-internal-format
 msgid "parameter packs must be at the end of the parameter list"
 msgstr ""
@@ -30595,139 +30649,139 @@
 #. 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.
-#: cp/decl.c:9964
+#: cp/decl.c:9978
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr ""
 
-#: cp/decl.c:10086
+#: cp/decl.c:10100
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr ""
 
-#: cp/decl.c:10091
+#: cp/decl.c:10105
 #, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr ""
 
-#: cp/decl.c:10117
+#: cp/decl.c:10131
 #, gcc-internal-format
 msgid "%qD must be a nonstatic member function"
 msgstr ""
 
-#: cp/decl.c:10126
+#: cp/decl.c:10140
 #, gcc-internal-format
 msgid ""
 "%qD must be either a non-static member function or a non-member function"
 msgstr ""
 
-#: cp/decl.c:10148
+#: cp/decl.c:10162
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr ""
 
-#: cp/decl.c:10189
+#: cp/decl.c:10203
 #, gcc-internal-format
 msgid "conversion to %s%s will never use a type conversion operator"
 msgstr ""
 
 #. 13.4.0.3
-#: cp/decl.c:10197
+#: cp/decl.c:10211
 #, gcc-internal-format
 msgid "ISO C++ prohibits overloading operator ?:"
 msgstr ""
 
-#: cp/decl.c:10202
+#: cp/decl.c:10216
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr ""
 
-#: cp/decl.c:10253
+#: cp/decl.c:10267
 #, gcc-internal-format
 msgid "postfix %qD must take %<int%> as its argument"
 msgstr ""
 
-#: cp/decl.c:10256
+#: cp/decl.c:10270
 #, gcc-internal-format
 msgid "postfix %qD must take %<int%> as its second argument"
 msgstr ""
 
-#: cp/decl.c:10264
+#: cp/decl.c:10278
 #, gcc-internal-format
 msgid "%qD must take either zero or one argument"
 msgstr ""
 
-#: cp/decl.c:10266
+#: cp/decl.c:10280
 #, gcc-internal-format
 msgid "%qD must take either one or two arguments"
 msgstr ""
 
-#: cp/decl.c:10288
+#: cp/decl.c:10302
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr ""
 
-#: cp/decl.c:10294
+#: cp/decl.c:10308
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr ""
 
-#: cp/decl.c:10303
+#: cp/decl.c:10317
 #, gcc-internal-format
 msgid "%qD must take %<void%>"
 msgstr ""
 
-#: cp/decl.c:10305 cp/decl.c:10314
+#: cp/decl.c:10319 cp/decl.c:10328
 #, gcc-internal-format
 msgid "%qD must take exactly one argument"
 msgstr ""
 
-#: cp/decl.c:10316
+#: cp/decl.c:10330
 #, gcc-internal-format
 msgid "%qD must take exactly two arguments"
 msgstr ""
 
-#: cp/decl.c:10325
+#: cp/decl.c:10339
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr ""
 
-#: cp/decl.c:10339
+#: cp/decl.c:10353
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr ""
 
-#: cp/decl.c:10350 cp/decl.c:10355
+#: cp/decl.c:10364 cp/decl.c:10369
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr ""
 
-#: cp/decl.c:10413
+#: cp/decl.c:10427
 #, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr ""
 
-#: cp/decl.c:10428
+#: cp/decl.c:10442
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr ""
 
-#: cp/decl.c:10429
+#: cp/decl.c:10443
 #, gcc-internal-format
 msgid "%q+D has a previous declaration here"
 msgstr ""
 
-#: cp/decl.c:10437
+#: cp/decl.c:10451
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr ""
 
-#: cp/decl.c:10438 cp/decl.c:10445
+#: cp/decl.c:10452 cp/decl.c:10459
 #, gcc-internal-format
 msgid "%q+T has a previous declaration here"
 msgstr ""
 
-#: cp/decl.c:10444
+#: cp/decl.c:10458
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr ""
@@ -30739,77 +30793,77 @@
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.c:10459
+#: cp/decl.c:10473
 #, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr ""
 
-#: cp/decl.c:10507 cp/name-lookup.c:2800
+#: cp/decl.c:10521 cp/name-lookup.c:2802
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr ""
 
-#: cp/decl.c:10537 cp/name-lookup.c:2308
+#: cp/decl.c:10551 cp/name-lookup.c:2310
 #, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr ""
 
-#: cp/decl.c:10651
+#: cp/decl.c:10665
 #, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr ""
 
-#: cp/decl.c:10672
+#: cp/decl.c:10686
 #, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr ""
 
-#: cp/decl.c:10673
+#: cp/decl.c:10687
 #, gcc-internal-format
 msgid "previous declaration %q+D"
 msgstr ""
 
-#: cp/decl.c:10784
+#: cp/decl.c:10798
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr ""
 
-#: cp/decl.c:10793
+#: cp/decl.c:10807
 #, gcc-internal-format
 msgid "Java class %qT cannot have multiple bases"
 msgstr ""
 
-#: cp/decl.c:10804
+#: cp/decl.c:10818
 #, gcc-internal-format
 msgid "Java class %qT cannot have virtual bases"
 msgstr ""
 
-#: cp/decl.c:10824
+#: cp/decl.c:10838
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr ""
 
-#: cp/decl.c:10857
+#: cp/decl.c:10871
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr ""
 
-#: cp/decl.c:10859
+#: cp/decl.c:10873
 #, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr ""
 
-#: cp/decl.c:10943
+#: cp/decl.c:10957
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr ""
 
-#: cp/decl.c:10944
+#: cp/decl.c:10958
 #, gcc-internal-format
 msgid "%Jprevious definition here"
 msgstr ""
 
-#: cp/decl.c:10991
+#: cp/decl.c:11005
 #, gcc-internal-format
 msgid "underlying type %<%T%> of %<%T%> must be an integral type"
 msgstr ""
@@ -30818,62 +30872,62 @@
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.c:11123
+#: cp/decl.c:11137
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr ""
 
-#: cp/decl.c:11254
+#: cp/decl.c:11268
 #, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr ""
 
-#: cp/decl.c:11286
+#: cp/decl.c:11300
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr ""
 
-#: cp/decl.c:11306
+#: cp/decl.c:11320
 #, gcc-internal-format
 msgid "enumerator value %E is too large for underlying type %<%T%>"
 msgstr ""
 
-#: cp/decl.c:11403
+#: cp/decl.c:11417
 #, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr ""
 
-#: cp/decl.c:11405
+#: cp/decl.c:11419
 #, gcc-internal-format
 msgid "return type has Java class type %q#T"
 msgstr ""
 
-#: cp/decl.c:11530 cp/typeck.c:6939
+#: cp/decl.c:11544 cp/typeck.c:6939
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr ""
 
-#: cp/decl.c:11845
+#: cp/decl.c:11859
 #, gcc-internal-format
 msgid "invalid function declaration"
 msgstr ""
 
-#: cp/decl.c:11929
+#: cp/decl.c:11943
 #, gcc-internal-format
 msgid "parameter %qD declared void"
 msgstr ""
 
-#: cp/decl.c:12430
+#: cp/decl.c:12444
 #, gcc-internal-format
 msgid "invalid member function declaration"
 msgstr ""
 
-#: cp/decl.c:12445
+#: cp/decl.c:12459
 #, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr ""
 
-#: cp/decl.c:12692
+#: cp/decl.c:12706
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr ""
@@ -31093,7 +31147,7 @@
 #. We really want to suppress this warning in system headers,
 #. because libstdc++ uses variadic templates even when we aren't
 #. in C++0x mode.
-#: cp/error.c:2710
+#: cp/error.c:2711
 #, gcc-internal-format
 msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgstr ""
@@ -31361,7 +31415,7 @@
 msgid "bad array initializer"
 msgstr ""
 
-#: cp/init.c:1441 cp/semantics.c:2496
+#: cp/init.c:1441 cp/semantics.c:2503
 #, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr ""
@@ -31547,22 +31601,22 @@
 msgid "mangling unknown fixed point type"
 msgstr ""
 
-#: cp/mangle.c:2338
+#: cp/mangle.c:2332
 #, gcc-internal-format
 msgid "mangling %C"
 msgstr ""
 
-#: cp/mangle.c:2375
+#: cp/mangle.c:2387
 #, gcc-internal-format
 msgid "mangling new-expression"
 msgstr ""
 
-#: cp/mangle.c:2395
+#: cp/mangle.c:2407
 #, gcc-internal-format
 msgid "omitted middle operand to %<?:%> operand cannot be mangled"
 msgstr ""
 
-#: cp/mangle.c:2710
+#: cp/mangle.c:2722
 #, gcc-internal-format
 msgid "the mangled name of %qD will change in a future version of GCC"
 msgstr ""
@@ -31645,220 +31699,220 @@
 msgid "global declaration %q+#D"
 msgstr ""
 
-#: cp/name-lookup.c:1030 cp/name-lookup.c:1040
+#: cp/name-lookup.c:1035 cp/name-lookup.c:1042
 #, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr ""
 
 #. Location of previous decl is not useful in this case.
-#: cp/name-lookup.c:1065
+#: cp/name-lookup.c:1067
 #, gcc-internal-format
 msgid "declaration of %qD shadows a member of 'this'"
 msgstr ""
 
-#: cp/name-lookup.c:1071
+#: cp/name-lookup.c:1073
 #, gcc-internal-format
 msgid "declaration of %qD shadows a previous local"
 msgstr ""
 
-#: cp/name-lookup.c:1078
+#: cp/name-lookup.c:1080
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr ""
 
-#: cp/name-lookup.c:1201
+#: cp/name-lookup.c:1203
 #, gcc-internal-format
 msgid "name lookup of %qD changed"
 msgstr ""
 
-#: cp/name-lookup.c:1202
+#: cp/name-lookup.c:1204
 #, gcc-internal-format
 msgid "  matches this %q+D under ISO standard rules"
 msgstr ""
 
-#: cp/name-lookup.c:1204
+#: cp/name-lookup.c:1206
 #, gcc-internal-format
 msgid "  matches this %q+D under old rules"
 msgstr ""
 
-#: cp/name-lookup.c:1222 cp/name-lookup.c:1230
+#: cp/name-lookup.c:1224 cp/name-lookup.c:1232
 #, gcc-internal-format
 msgid "name lookup of %qD changed for ISO %<for%> scoping"
 msgstr ""
 
-#: cp/name-lookup.c:1224
+#: cp/name-lookup.c:1226
 #, gcc-internal-format
 msgid "  cannot use obsolete binding at %q+D because it has a destructor"
 msgstr ""
 
-#: cp/name-lookup.c:1233
+#: cp/name-lookup.c:1235
 #, gcc-internal-format
 msgid "  using obsolete binding at %q+D"
 msgstr ""
 
-#: cp/name-lookup.c:1239 cp/parser.c:10154
+#: cp/name-lookup.c:1241 cp/parser.c:10159
 #, gcc-internal-format
 msgid "(if you use %<-fpermissive%> G++ will accept your code)"
 msgstr ""
 
-#: cp/name-lookup.c:1295
+#: cp/name-lookup.c:1297
 #, gcc-internal-format
 msgid "%s %s(%E) %p %d\n"
 msgstr ""
 
-#: cp/name-lookup.c:1298
+#: cp/name-lookup.c:1300
 #, gcc-internal-format
 msgid "%s %s %p %d\n"
 msgstr ""
 
-#: cp/name-lookup.c:1426
+#: cp/name-lookup.c:1428
 #, gcc-internal-format
 msgid "XXX is_class_level != (current_scope == class_scope)\n"
 msgstr ""
 
-#: cp/name-lookup.c:2021
+#: cp/name-lookup.c:2023
 #, gcc-internal-format
 msgid "%q#D hides constructor for %q#T"
 msgstr ""
 
-#: cp/name-lookup.c:2038
+#: cp/name-lookup.c:2040
 #, gcc-internal-format
 msgid "%q#D conflicts with previous using declaration %q#D"
 msgstr ""
 
-#: cp/name-lookup.c:2061
+#: cp/name-lookup.c:2063
 #, gcc-internal-format
 msgid "previous non-function declaration %q+#D"
 msgstr ""
 
-#: cp/name-lookup.c:2062
+#: cp/name-lookup.c:2064
 #, gcc-internal-format
 msgid "conflicts with function declaration %q#D"
 msgstr ""
 
 #. It's a nested name with template parameter dependent scope.
 #. This can only be using-declaration for class member.
-#: cp/name-lookup.c:2140 cp/name-lookup.c:2165
+#: cp/name-lookup.c:2142 cp/name-lookup.c:2167
 #, gcc-internal-format
 msgid "%qT is not a namespace"
 msgstr ""
 
 #. 7.3.3/5
 #. A using-declaration shall not name a template-id.
-#: cp/name-lookup.c:2150
+#: cp/name-lookup.c:2152
 #, gcc-internal-format
 msgid "a using-declaration cannot specify a template-id.  Try %<using %D%>"
 msgstr ""
 
-#: cp/name-lookup.c:2157
+#: cp/name-lookup.c:2159
 #, gcc-internal-format
 msgid "namespace %qD not allowed in using-declaration"
 msgstr ""
 
-#: cp/name-lookup.c:2193
+#: cp/name-lookup.c:2195
 #, gcc-internal-format
 msgid "%qD not declared"
 msgstr ""
 
-#: cp/name-lookup.c:2229 cp/name-lookup.c:2266 cp/name-lookup.c:2300
-#: cp/name-lookup.c:2315
+#: cp/name-lookup.c:2231 cp/name-lookup.c:2268 cp/name-lookup.c:2302
+#: cp/name-lookup.c:2317
 #, gcc-internal-format
 msgid "%qD is already declared in this scope"
 msgstr ""
 
-#: cp/name-lookup.c:2919
+#: cp/name-lookup.c:2921
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr ""
 
-#: cp/name-lookup.c:2926
+#: cp/name-lookup.c:2928
 #, gcc-internal-format
 msgid "%<%T::%D%> names destructor"
 msgstr ""
 
-#: cp/name-lookup.c:2931
+#: cp/name-lookup.c:2933
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor"
 msgstr ""
 
-#: cp/name-lookup.c:2936
+#: cp/name-lookup.c:2938
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr ""
 
-#: cp/name-lookup.c:2986
+#: cp/name-lookup.c:2988
 #, gcc-internal-format
 msgid "no members matching %<%T::%D%> in %q#T"
 msgstr ""
 
-#: cp/name-lookup.c:3054
+#: cp/name-lookup.c:3056
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr ""
 
-#: cp/name-lookup.c:3062
+#: cp/name-lookup.c:3064
 #, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr ""
 
-#: cp/name-lookup.c:3105
+#: cp/name-lookup.c:3107
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr ""
 
-#: cp/name-lookup.c:3150
+#: cp/name-lookup.c:3152
 #, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr ""
 
-#: cp/name-lookup.c:3157
+#: cp/name-lookup.c:3159
 #, gcc-internal-format
 msgid ""
 "%qD attribute is meaningless since members of the anonymous namespace get "
 "local symbols"
 msgstr ""
 
-#: cp/name-lookup.c:3166 cp/name-lookup.c:3536
+#: cp/name-lookup.c:3168 cp/name-lookup.c:3538
 #, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr ""
 
-#: cp/name-lookup.c:3211
+#: cp/name-lookup.c:3213
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr ""
 
-#: cp/name-lookup.c:3524
+#: cp/name-lookup.c:3526
 #, gcc-internal-format
 msgid "strong using only meaningful at namespace scope"
 msgstr ""
 
-#: cp/name-lookup.c:3528
+#: cp/name-lookup.c:3530
 #, gcc-internal-format
 msgid "current namespace %qD does not enclose strongly used namespace %qD"
 msgstr ""
 
-#: cp/name-lookup.c:4466
+#: cp/name-lookup.c:4467
 #, gcc-internal-format
 msgid "%q+D is not a function,"
 msgstr ""
 
-#: cp/name-lookup.c:4467
+#: cp/name-lookup.c:4468
 #, gcc-internal-format
 msgid "  conflict with %q+D"
 msgstr ""
 
-#: cp/name-lookup.c:4912
+#: cp/name-lookup.c:4913
 #, gcc-internal-format
 msgid "argument dependent lookup finds %q+D"
 msgstr ""
 
-#: cp/name-lookup.c:5353
+#: cp/name-lookup.c:5354
 #, gcc-internal-format
 msgid "XXX entering pop_everything ()\n"
 msgstr ""
 
-#: cp/name-lookup.c:5362
+#: cp/name-lookup.c:5363
 #, gcc-internal-format
 msgid "XXX leaving pop_everything ()\n"
 msgstr ""
@@ -31868,334 +31922,334 @@
 msgid "identifier %<%s%> will become a keyword in C++0x"
 msgstr ""
 
-#: cp/parser.c:2080
+#: cp/parser.c:2084
 #, gcc-internal-format
 msgid "%H%<#pragma%> is not allowed here"
 msgstr ""
 
-#: cp/parser.c:2111
+#: cp/parser.c:2115
 #, gcc-internal-format
 msgid "%H%<%E::%E%> has not been declared"
 msgstr ""
 
-#: cp/parser.c:2114
+#: cp/parser.c:2118
 #, gcc-internal-format
 msgid "%H%<::%E%> has not been declared"
 msgstr ""
 
-#: cp/parser.c:2117
+#: cp/parser.c:2121
 #, gcc-internal-format
 msgid "%Hrequest for member %qE in non-class type %qT"
 msgstr ""
 
-#: cp/parser.c:2120
+#: cp/parser.c:2124
 #, gcc-internal-format
 msgid "%H%<%T::%E%> has not been declared"
 msgstr ""
 
-#: cp/parser.c:2123
+#: cp/parser.c:2127
 #, gcc-internal-format
 msgid "%H%qE has not been declared"
 msgstr ""
 
-#: cp/parser.c:2126
+#: cp/parser.c:2130
 #, gcc-internal-format
 msgid "%H%<%E::%E%> %s"
 msgstr ""
 
-#: cp/parser.c:2128
+#: cp/parser.c:2132
 #, gcc-internal-format
 msgid "%H%<::%E%> %s"
 msgstr ""
 
-#: cp/parser.c:2130
+#: cp/parser.c:2134
 #, gcc-internal-format
 msgid "%H%qE %s"
 msgstr ""
 
-#: cp/parser.c:2165
+#: cp/parser.c:2169
 #, gcc-internal-format
 msgid "%H%<long long long%> is too long for GCC"
 msgstr ""
 
-#: cp/parser.c:2169
+#: cp/parser.c:2173
 #, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr ""
 
-#: cp/parser.c:2189
+#: cp/parser.c:2193
 #, gcc-internal-format
 msgid "%Hduplicate %qs"
 msgstr ""
 
-#: cp/parser.c:2233
+#: cp/parser.c:2237
 #, gcc-internal-format
 msgid "%Hnew types may not be defined in a return type"
 msgstr ""
 
-#: cp/parser.c:2235
+#: cp/parser.c:2239
 #, gcc-internal-format
 msgid "(perhaps a semicolon is missing after the definition of %qT)"
 msgstr ""
 
-#: cp/parser.c:2255
+#: cp/parser.c:2259
 #, gcc-internal-format
 msgid "%H%qT is not a template"
 msgstr ""
 
-#: cp/parser.c:2257
+#: cp/parser.c:2261
 #, gcc-internal-format
 msgid "%H%qE is not a template"
 msgstr ""
 
-#: cp/parser.c:2259
+#: cp/parser.c:2263
 #, gcc-internal-format
 msgid "%Hinvalid template-id"
 msgstr ""
 
-#: cp/parser.c:2321
+#: cp/parser.c:2325
 #, gcc-internal-format
 msgid "%Hinvalid use of template-name %qE without an argument list"
 msgstr ""
 
-#: cp/parser.c:2324
+#: cp/parser.c:2328
 #, gcc-internal-format
 msgid "%Hinvalid use of destructor %qD as a type"
 msgstr ""
 
 #. Something like 'unsigned A a;'
-#: cp/parser.c:2327
+#: cp/parser.c:2331
 #, gcc-internal-format
 msgid "%Hinvalid combination of multiple type-specifiers"
 msgstr ""
 
 #. Issue an error message.
-#: cp/parser.c:2332
+#: cp/parser.c:2336
 #, gcc-internal-format
 msgid "%H%qE does not name a type"
 msgstr ""
 
-#: cp/parser.c:2365
+#: cp/parser.c:2369
 #, gcc-internal-format
 msgid "(perhaps %<typename %T::%E%> was intended)"
 msgstr ""
 
-#: cp/parser.c:2380
+#: cp/parser.c:2384
 #, gcc-internal-format
 msgid "%H%qE in namespace %qE does not name a type"
 msgstr ""
 
-#: cp/parser.c:2383
+#: cp/parser.c:2387
 #, gcc-internal-format
 msgid "%H%qE in class %qT does not name a type"
 msgstr ""
 
-#: cp/parser.c:2945
+#: cp/parser.c:2951
 #, gcc-internal-format
 msgid "%Hunsupported non-standard concatenation of string literals"
 msgstr ""
 
-#: cp/parser.c:3148
+#: cp/parser.c:3154
 #, gcc-internal-format
 msgid "%Hfixed-point types not supported in C++"
 msgstr ""
 
-#: cp/parser.c:3229
+#: cp/parser.c:3235
 #, gcc-internal-format
 msgid "ISO C++ forbids braced-groups within expressions"
 msgstr ""
 
-#: cp/parser.c:3240
+#: cp/parser.c:3246
 #, gcc-internal-format
 msgid ""
 "%Hstatement-expressions are not allowed outside functions nor in template-"
 "argument lists"
 msgstr ""
 
-#: cp/parser.c:3299
+#: cp/parser.c:3305
 #, gcc-internal-format
 msgid "%H%<this%> may not be used in this context"
 msgstr ""
 
-#: cp/parser.c:3508
+#: cp/parser.c:3514
 #, gcc-internal-format
 msgid "%Hlocal variable %qD may not appear in this context"
 msgstr ""
 
-#: cp/parser.c:3808
+#: cp/parser.c:3814
 #, gcc-internal-format
 msgid "%Hscope %qT before %<~%> is not a class-name"
 msgstr ""
 
-#: cp/parser.c:3922
+#: cp/parser.c:3928
 #, gcc-internal-format
 msgid "%Hdeclaration of %<~%T%> as member of %qT"
 msgstr ""
 
-#: cp/parser.c:3936
+#: cp/parser.c:3942
 #, gcc-internal-format
 msgid "%Htypedef-name %qD used as destructor declarator"
 msgstr ""
 
-#: cp/parser.c:4150
+#: cp/parser.c:4156
 #, gcc-internal-format
 msgid "%H%qD used without template parameters"
 msgstr ""
 
-#: cp/parser.c:4154 cp/parser.c:14857 cp/parser.c:17154
+#: cp/parser.c:4160 cp/parser.c:14878 cp/parser.c:17175
 #, gcc-internal-format
 msgid "%Hreference to %qD is ambiguous"
 msgstr ""
 
-#: cp/parser.c:4200 cp/pt.c:5659
+#: cp/parser.c:4206 cp/pt.c:5659
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr ""
 
 #. Warn the user that a compound literal is not
 #. allowed in standard C++.
-#: cp/parser.c:4624
+#: cp/parser.c:4630
 #, gcc-internal-format
 msgid "ISO C++ forbids compound-literals"
 msgstr ""
 
-#: cp/parser.c:4998
+#: cp/parser.c:5003
 #, gcc-internal-format
 msgid "%H%qE does not have class type"
 msgstr ""
 
-#: cp/parser.c:5082
+#: cp/parser.c:5087
 #, gcc-internal-format
 msgid "%Hinvalid use of %qD"
 msgstr ""
 
-#: cp/parser.c:5661
+#: cp/parser.c:5666
 #, gcc-internal-format
 msgid "%Harray bound forbidden after parenthesized type-id"
 msgstr ""
 
-#: cp/parser.c:5664
+#: cp/parser.c:5669
 #, gcc-internal-format
 msgid "try removing the parentheses around the type-id"
 msgstr ""
 
-#: cp/parser.c:5857
+#: cp/parser.c:5862
 #, gcc-internal-format
 msgid "%Hexpression in new-declarator must have integral or enumeration type"
 msgstr ""
 
-#: cp/parser.c:6113
+#: cp/parser.c:6118
 #, gcc-internal-format
 msgid "use of old-style cast"
 msgstr ""
 
-#: cp/parser.c:6244
+#: cp/parser.c:6249
 #, gcc-internal-format
 msgid "%H%<>>%> operator will be treated as two right angle brackets in C++0x"
 msgstr ""
 
-#: cp/parser.c:6247
+#: cp/parser.c:6252
 #, gcc-internal-format
 msgid "suggest parentheses around %<>>%> expression"
 msgstr ""
 
-#: cp/parser.c:7084
+#: cp/parser.c:7089
 #, gcc-internal-format
 msgid "%Hcase label %qE not within a switch statement"
 msgstr ""
 
-#: cp/parser.c:7096
+#: cp/parser.c:7101
 #, gcc-internal-format
 msgid "%Hcase label not within a switch statement"
 msgstr ""
 
-#: cp/parser.c:7214
+#: cp/parser.c:7219
 #, gcc-internal-format
 msgid "%H%<else%> without a previous %<if%>"
 msgstr ""
 
-#: cp/parser.c:7693
+#: cp/parser.c:7698
 #, gcc-internal-format
 msgid "%Hbreak statement not within loop or switch"
 msgstr ""
 
-#: cp/parser.c:7701 cp/parser.c:7721
+#: cp/parser.c:7706 cp/parser.c:7726
 #, gcc-internal-format
 msgid "%Hinvalid exit from OpenMP structured block"
 msgstr ""
 
-#: cp/parser.c:7704
+#: cp/parser.c:7709
 #, gcc-internal-format
 msgid "%Hbreak statement used with OpenMP for loop"
 msgstr ""
 
-#: cp/parser.c:7714
+#: cp/parser.c:7719
 #, gcc-internal-format
 msgid "%Hcontinue statement not within a loop"
 msgstr ""
 
 #. Issue a warning about this use of a GNU extension.
-#: cp/parser.c:7757
+#: cp/parser.c:7762
 #, gcc-internal-format
 msgid "ISO C++ forbids computed gotos"
 msgstr ""
 
-#: cp/parser.c:7901 cp/parser.c:15736
+#: cp/parser.c:7906 cp/parser.c:15757
 #, gcc-internal-format
 msgid "extra %<;%>"
 msgstr ""
 
-#: cp/parser.c:8122
+#: cp/parser.c:8127
 #, gcc-internal-format
 msgid "%H%<__label__%> not at the beginning of a block"
 msgstr ""
 
-#: cp/parser.c:8259
+#: cp/parser.c:8264
 #, gcc-internal-format
 msgid "%Hmixing declarations and function-definitions is forbidden"
 msgstr ""
 
-#: cp/parser.c:8399
+#: cp/parser.c:8404
 #, gcc-internal-format
 msgid "%H%<friend%> used outside of class"
 msgstr ""
 
-#: cp/parser.c:8455
+#: cp/parser.c:8460
 #, gcc-internal-format
 msgid "%H%<auto%> will change meaning in C++0x; please remove it"
 msgstr ""
 
-#: cp/parser.c:8574
+#: cp/parser.c:8579
 #, gcc-internal-format
 msgid "%Hclass definition may not be declared a friend"
 msgstr ""
 
-#: cp/parser.c:8644 cp/parser.c:16058
+#: cp/parser.c:8649 cp/parser.c:16079
 #, gcc-internal-format
 msgid "%Htemplates may not be %<virtual%>"
 msgstr ""
 
-#: cp/parser.c:9047
+#: cp/parser.c:9052
 #, gcc-internal-format
 msgid "invalid use of %<auto%> in conversion operator"
 msgstr ""
 
-#: cp/parser.c:9131
+#: cp/parser.c:9136
 #, gcc-internal-format
 msgid "%Honly constructors take base initializers"
 msgstr ""
 
-#: cp/parser.c:9153
+#: cp/parser.c:9158
 #, gcc-internal-format
 msgid "%Hcannot expand initializer for member %<%D%>"
 msgstr ""
 
-#: cp/parser.c:9208
+#: cp/parser.c:9213
 #, gcc-internal-format
 msgid "anachronistic old-style base class initializer"
 msgstr ""
 
-#: cp/parser.c:9268
+#: cp/parser.c:9273
 #, gcc-internal-format
 msgid ""
 "%Hkeyword %<typename%> not allowed in this context (a qualified member "
@@ -32203,92 +32257,92 @@
 msgstr ""
 
 #. Warn that we do not support `export'.
-#: cp/parser.c:9614
+#: cp/parser.c:9619
 #, gcc-internal-format
 msgid "keyword %<export%> not implemented, and will be ignored"
 msgstr ""
 
-#: cp/parser.c:9796 cp/parser.c:9894 cp/parser.c:10000
+#: cp/parser.c:9801 cp/parser.c:9899 cp/parser.c:10005
 #, gcc-internal-format
 msgid "%Htemplate parameter pack %qD cannot have a default argument"
 msgstr ""
 
-#: cp/parser.c:9799
+#: cp/parser.c:9804
 #, gcc-internal-format
 msgid "%Htemplate parameter pack cannot have a default argument"
 msgstr ""
 
-#: cp/parser.c:9897 cp/parser.c:10004
+#: cp/parser.c:9902 cp/parser.c:10009
 #, gcc-internal-format
 msgid "%Htemplate parameter packs cannot have default arguments"
 msgstr ""
 
-#: cp/parser.c:10146
+#: cp/parser.c:10151
 #, gcc-internal-format
 msgid "%<<::%> cannot begin a template-argument list"
 msgstr ""
 
-#: cp/parser.c:10150
+#: cp/parser.c:10155
 #, gcc-internal-format
 msgid ""
 "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> "
 "and %<::%>"
 msgstr ""
 
-#: cp/parser.c:10228
+#: cp/parser.c:10233
 #, gcc-internal-format
 msgid "%Hparse error in template argument list"
 msgstr ""
 
 #. Explain what went wrong.
-#: cp/parser.c:10343
+#: cp/parser.c:10348
 #, gcc-internal-format
 msgid "%Hnon-template %qD used as template"
 msgstr ""
 
-#: cp/parser.c:10345
+#: cp/parser.c:10350
 #, gcc-internal-format
 msgid "use %<%T::template %D%> to indicate that it is a template"
 msgstr ""
 
-#: cp/parser.c:10882
+#: cp/parser.c:10887
 #, gcc-internal-format
 msgid "%Htemplate specialization with C linkage"
 msgstr ""
 
-#: cp/parser.c:11527
+#: cp/parser.c:11532
 #, gcc-internal-format
 msgid "using %<typename%> outside of template"
 msgstr ""
 
-#: cp/parser.c:11695
+#: cp/parser.c:11700
 #, gcc-internal-format
 msgid "declaration %qD does not declare anything"
 msgstr ""
 
-#: cp/parser.c:11780
+#: cp/parser.c:11785
 #, gcc-internal-format
 msgid "attributes ignored on uninstantiated type"
 msgstr ""
 
-#: cp/parser.c:11784
+#: cp/parser.c:11789
 #, gcc-internal-format
 msgid "attributes ignored on template instantiation"
 msgstr ""
 
-#: cp/parser.c:11789
+#: cp/parser.c:11794
 #, gcc-internal-format
 msgid ""
 "attributes ignored on elaborated-type-specifier that is not a forward "
 "declaration"
 msgstr ""
 
-#: cp/parser.c:12067
+#: cp/parser.c:12077
 #, gcc-internal-format
 msgid "%H%qD is not a namespace-name"
 msgstr ""
 
-#: cp/parser.c:12194
+#: cp/parser.c:12204
 #, gcc-internal-format
 msgid "%H%<namespace%> definition is not allowed here"
 msgstr ""
@@ -32296,166 +32350,166 @@
 #. [namespace.udecl]
 #.
 #. A using declaration shall not name a template-id.
-#: cp/parser.c:12334
+#: cp/parser.c:12344
 #, gcc-internal-format
 msgid "%Ha template-id may not appear in a using-declaration"
 msgstr ""
 
-#: cp/parser.c:12711
+#: cp/parser.c:12721
 #, gcc-internal-format
 msgid "%Han asm-specification is not allowed on a function-definition"
 msgstr ""
 
-#: cp/parser.c:12715
+#: cp/parser.c:12725
 #, gcc-internal-format
 msgid "%Hattributes are not allowed on a function-definition"
 msgstr ""
 
-#: cp/parser.c:12868
+#: cp/parser.c:12878
 #, gcc-internal-format
 msgid "%Hinitializer provided for function"
 msgstr ""
 
-#: cp/parser.c:12890
+#: cp/parser.c:12900
 #, gcc-internal-format
 msgid "attributes after parenthesized initializer ignored"
 msgstr ""
 
-#: cp/parser.c:13295
+#: cp/parser.c:13305
 #, gcc-internal-format
 msgid "%Harray bound is not an integer constant"
 msgstr ""
 
-#: cp/parser.c:13407
+#: cp/parser.c:13417
 #, gcc-internal-format
 msgid "%H%<%T::%E%> is not a type"
 msgstr ""
 
-#: cp/parser.c:13434
+#: cp/parser.c:13444
 #, gcc-internal-format
 msgid "%Hinvalid use of constructor as a template"
 msgstr ""
 
-#: cp/parser.c:13436
+#: cp/parser.c:13446
 #, gcc-internal-format
 msgid ""
 "use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified "
 "name"
 msgstr ""
 
-#: cp/parser.c:13609
+#: cp/parser.c:13619
 #, gcc-internal-format
 msgid "%H%qD is a namespace"
 msgstr ""
 
-#: cp/parser.c:13684
+#: cp/parser.c:13694
 #, gcc-internal-format
 msgid "%Hduplicate cv-qualifier"
 msgstr ""
 
-#: cp/parser.c:13796
+#: cp/parser.c:13806
 #, gcc-internal-format
 msgid "invalid use of %<auto%>"
 msgstr ""
 
-#: cp/parser.c:14370
+#: cp/parser.c:14391
 #, gcc-internal-format
 msgid "%Hfile ends in default argument"
 msgstr ""
 
-#: cp/parser.c:14416
+#: cp/parser.c:14437
 #, gcc-internal-format
 msgid "deprecated use of default argument for parameter of non-function"
 msgstr ""
 
-#: cp/parser.c:14419
+#: cp/parser.c:14440
 #, gcc-internal-format
 msgid "%Hdefault arguments are only permitted for function parameters"
 msgstr ""
 
-#: cp/parser.c:14437
+#: cp/parser.c:14458
 #, gcc-internal-format
 msgid "%H%sparameter pack %qD cannot have a default argument"
 msgstr ""
 
-#: cp/parser.c:14441
+#: cp/parser.c:14462
 #, gcc-internal-format
 msgid "%H%sparameter pack cannot have a default argument"
 msgstr ""
 
-#: cp/parser.c:14704
+#: cp/parser.c:14725
 #, gcc-internal-format
 msgid "ISO C++ does not allow designated initializers"
 msgstr ""
 
-#: cp/parser.c:15329
+#: cp/parser.c:15350
 #, gcc-internal-format
 msgid "%Hinvalid class name in declaration of %qD"
 msgstr ""
 
-#: cp/parser.c:15342
+#: cp/parser.c:15363
 #, gcc-internal-format
 msgid "%Hdeclaration of %qD in namespace %qD which does not enclose %qD"
 msgstr ""
 
-#: cp/parser.c:15347
+#: cp/parser.c:15368
 #, gcc-internal-format
 msgid "%Hdeclaration of %qD in %qD which does not enclose %qD"
 msgstr ""
 
-#: cp/parser.c:15361
+#: cp/parser.c:15382
 #, gcc-internal-format
 msgid "%Hextra qualification not allowed"
 msgstr ""
 
-#: cp/parser.c:15373
+#: cp/parser.c:15394
 #, gcc-internal-format
 msgid "%Han explicit specialization must be preceded by %<template <>%>"
 msgstr ""
 
-#: cp/parser.c:15402
+#: cp/parser.c:15423
 #, gcc-internal-format
 msgid "%Hfunction template %qD redeclared as a class template"
 msgstr ""
 
-#: cp/parser.c:15484
+#: cp/parser.c:15505
 #, gcc-internal-format
 msgid "%Hredefinition of %q#T"
 msgstr ""
 
-#: cp/parser.c:15486
+#: cp/parser.c:15507
 #, gcc-internal-format
 msgid "%Hprevious definition of %q+#T"
 msgstr ""
 
-#: cp/parser.c:15754
+#: cp/parser.c:15775
 #, gcc-internal-format
 msgid "%Ha class-key must be used when declaring a friend"
 msgstr ""
 
-#: cp/parser.c:15769
+#: cp/parser.c:15790
 #, gcc-internal-format
 msgid "%Hfriend declaration does not name a class or function"
 msgstr ""
 
-#: cp/parser.c:15949
+#: cp/parser.c:15970
 #, gcc-internal-format
 msgid "%Hpure-specifier on function-definition"
 msgstr ""
 
-#: cp/parser.c:16262
+#: cp/parser.c:16283
 #, gcc-internal-format
 msgid "%Hkeyword %<typename%> not allowed outside of templates"
 msgstr ""
 
-#: cp/parser.c:16265
+#: cp/parser.c:16286
 #, gcc-internal-format
 msgid ""
 "%Hkeyword %<typename%> not allowed in this context (the base class is "
 "implicitly a type)"
 msgstr ""
 
-#: cp/parser.c:17332
+#: cp/parser.c:17353
 #, gcc-internal-format
 msgid "%Htoo few template-parameter-lists"
 msgstr ""
@@ -32464,13 +32518,13 @@
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.c:17347
+#: cp/parser.c:17368
 #, gcc-internal-format
 msgid "%Htoo many template-parameter-lists"
 msgstr ""
 
 #. Issue an error message.
-#: cp/parser.c:17621
+#: cp/parser.c:17642
 #, gcc-internal-format
 msgid "%Hnamed return values are no longer supported"
 msgstr ""
@@ -32478,169 +32532,169 @@
 #. 14.5.2.2 [temp.mem]
 #.
 #. A local class shall not have member templates.
-#: cp/parser.c:17696
+#: cp/parser.c:17717
 #, gcc-internal-format
 msgid "%Hinvalid declaration of member template in local class"
 msgstr ""
 
-#: cp/parser.c:17706
+#: cp/parser.c:17727
 #, gcc-internal-format
 msgid "%Htemplate with C linkage"
 msgstr ""
 
-#: cp/parser.c:17853
+#: cp/parser.c:17874
 #, gcc-internal-format
 msgid "%Htemplate declaration of %qs"
 msgstr ""
 
-#: cp/parser.c:17917
+#: cp/parser.c:17938
 #, gcc-internal-format
 msgid "%Hexplicit template specialization cannot have a storage class"
 msgstr ""
 
-#: cp/parser.c:18135
+#: cp/parser.c:18156
 #, gcc-internal-format
 msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
 msgstr ""
 
-#: cp/parser.c:18148
+#: cp/parser.c:18169
 #, gcc-internal-format
 msgid "%Hspurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr ""
 
-#: cp/parser.c:18482
+#: cp/parser.c:18503
 #, gcc-internal-format
 msgid "%Hinvalid use of %qD in linkage specification"
 msgstr ""
 
-#: cp/parser.c:18495
+#: cp/parser.c:18516
 #, gcc-internal-format
 msgid "%H%<__thread%> before %qD"
 msgstr ""
 
-#: cp/parser.c:18816
+#: cp/parser.c:18837
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr ""
 
-#: cp/parser.c:18837
+#: cp/parser.c:18858
 #, gcc-internal-format
 msgid "%H%qD redeclared with different access"
 msgstr ""
 
-#: cp/parser.c:18855
+#: cp/parser.c:18876
 #, gcc-internal-format
 msgid "%H%<template%> (as a disambiguator) is only allowed within templates"
 msgstr ""
 
-#: cp/parser.c:19121 cp/parser.c:20048 cp/parser.c:20180
+#: cp/parser.c:19142 cp/parser.c:20069 cp/parser.c:20201
 #, gcc-internal-format
 msgid "%Hmisplaced %<@%D%> Objective-C++ construct"
 msgstr ""
 
-#: cp/parser.c:19265
+#: cp/parser.c:19286
 #, gcc-internal-format
 msgid "%H%<@encode%> must specify a type as an argument"
 msgstr ""
 
-#: cp/parser.c:19581
+#: cp/parser.c:19602
 #, gcc-internal-format
 msgid "%Hinvalid Objective-C++ selector name"
 msgstr ""
 
-#: cp/parser.c:19912
+#: cp/parser.c:19933
 #, gcc-internal-format
 msgid "%Hidentifier expected after %<@protocol%>"
 msgstr ""
 
-#: cp/parser.c:20273
+#: cp/parser.c:20294
 #, gcc-internal-format
 msgid "%Htoo many %qs clauses"
 msgstr ""
 
-#: cp/parser.c:20387
+#: cp/parser.c:20408
 #, gcc-internal-format
 msgid "%Hcollapse argument needs positive constant integer expression"
 msgstr ""
 
-#: cp/parser.c:20676
+#: cp/parser.c:20697
 #, gcc-internal-format
 msgid "%Hschedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: cp/parser.c:20679
+#: cp/parser.c:20700
 #, gcc-internal-format
 msgid "%Hschedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: cp/parser.c:20827
+#: cp/parser.c:20848
 #, gcc-internal-format
 msgid "%H%qs is not valid for %qs"
 msgstr ""
 
-#: cp/parser.c:21250
+#: cp/parser.c:21271
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr ""
 
-#: cp/parser.c:21375 cp/parser.c:21413
+#: cp/parser.c:21396 cp/parser.c:21434
 #, gcc-internal-format
 msgid "%Hiteration variable %qD should not be firstprivate"
 msgstr ""
 
-#: cp/parser.c:21417
+#: cp/parser.c:21438
 #, gcc-internal-format
 msgid "%Hiteration variable %qD should not be reduction"
 msgstr ""
 
-#: cp/parser.c:21484
+#: cp/parser.c:21505
 #, gcc-internal-format
 msgid "%Hnot enough collapsed for loops"
 msgstr ""
 
-#: cp/parser.c:21530
+#: cp/parser.c:21551
 #, gcc-internal-format
 msgid "%Hcollapsed loops not perfectly nested"
 msgstr ""
 
-#: cp/parser.c:21941
+#: cp/parser.c:21962
 #, gcc-internal-format
 msgid "%Hjunk at end of %<#pragma GCC pch_preprocess%>"
 msgstr ""
 
-#: cp/parser.c:21945
+#: cp/parser.c:21966
 #, gcc-internal-format
 msgid "%Hexpected string literal"
 msgstr ""
 
-#: cp/parser.c:21978
+#: cp/parser.c:21999
 #, gcc-internal-format
 msgid "%H%<#pragma GCC pch_preprocess%> must be first"
 msgstr ""
 
-#: cp/parser.c:21989
+#: cp/parser.c:22010
 #, gcc-internal-format
 msgid "%H%<#pragma omp barrier%> may only be used in compound statements"
 msgstr ""
 
-#: cp/parser.c:22004
+#: cp/parser.c:22025
 #, gcc-internal-format
 msgid "%H%<#pragma omp flush%> may only be used in compound statements"
 msgstr ""
 
-#: cp/parser.c:22019
+#: cp/parser.c:22040
 #, gcc-internal-format
 msgid "%H%<#pragma omp taskwait%> may only be used in compound statements"
 msgstr ""
 
-#: cp/parser.c:22047
+#: cp/parser.c:22068
 #, gcc-internal-format
 msgid ""
 "%H%<#pragma omp section%> may only be used in %<#pragma omp sections%> "
 "construct"
 msgstr ""
 
-#: cp/parser.c:22105
+#: cp/parser.c:22126
 #, gcc-internal-format
 msgid "inter-module optimizations not implemented for C++"
 msgstr ""
@@ -33172,24 +33226,24 @@
 msgid "for template declaration %q+D"
 msgstr ""
 
-#: cp/pt.c:6375
+#: cp/pt.c:6376
 #, gcc-internal-format
 msgid ""
 "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN "
 "to increase the maximum) instantiating %qD"
 msgstr ""
 
-#: cp/pt.c:7572
+#: cp/pt.c:7573
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %<%T%>"
 msgstr ""
 
-#: cp/pt.c:7576
+#: cp/pt.c:7577
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %<%E%>"
 msgstr ""
 
-#: cp/pt.c:8548
+#: cp/pt.c:8549
 #, gcc-internal-format
 msgid "instantiation of %q+D as type %qT"
 msgstr ""
@@ -33207,241 +33261,241 @@
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.c:8688
+#: cp/pt.c:8689
 #, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr ""
 
-#: cp/pt.c:8835
+#: cp/pt.c:8836
 #, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr ""
 
-#: cp/pt.c:8837
+#: cp/pt.c:8838
 #, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr ""
 
-#: cp/pt.c:8914
+#: cp/pt.c:8915
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr ""
 
-#: cp/pt.c:8916
+#: cp/pt.c:8917
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr ""
 
-#: cp/pt.c:8943
+#: cp/pt.c:8944
 #, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr ""
 
-#: cp/pt.c:9164
+#: cp/pt.c:9165
 #, gcc-internal-format
 msgid "array bound is not an integer constant"
 msgstr ""
 
-#: cp/pt.c:9184
+#: cp/pt.c:9185
 #, gcc-internal-format
 msgid "creating array with negative size (%qE)"
 msgstr ""
 
-#: cp/pt.c:9433
+#: cp/pt.c:9434
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr ""
 
-#: cp/pt.c:9435
+#: cp/pt.c:9436
 #, gcc-internal-format
 msgid "forming %s to reference type %qT"
 msgstr ""
 
-#: cp/pt.c:9486
+#: cp/pt.c:9487
 #, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr ""
 
-#: cp/pt.c:9492
+#: cp/pt.c:9493
 #, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr ""
 
-#: cp/pt.c:9498
+#: cp/pt.c:9499
 #, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr ""
 
-#: cp/pt.c:9565
+#: cp/pt.c:9566
 #, gcc-internal-format
 msgid "creating array of %qT"
 msgstr ""
 
-#: cp/pt.c:9571
+#: cp/pt.c:9572
 #, gcc-internal-format
 msgid "creating array of %qT, which is an abstract class type"
 msgstr ""
 
-#: cp/pt.c:9622
+#: cp/pt.c:9623
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr ""
 
-#: cp/pt.c:9657
+#: cp/pt.c:9658
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr ""
 
-#: cp/pt.c:9660
+#: cp/pt.c:9661
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is is not a class type"
 msgstr ""
 
-#: cp/pt.c:9766
+#: cp/pt.c:9767
 #, gcc-internal-format
 msgid "use of %qs in template"
 msgstr ""
 
-#: cp/pt.c:9903
+#: cp/pt.c:9904
 #, gcc-internal-format
 msgid ""
 "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr ""
 
-#: cp/pt.c:9905
+#: cp/pt.c:9906
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr ""
 
-#: cp/pt.c:10047
+#: cp/pt.c:10048
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr ""
 
-#: cp/pt.c:10377 cp/pt.c:11040
+#: cp/pt.c:10378 cp/pt.c:11041
 #, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr ""
 
-#: cp/pt.c:10381 cp/pt.c:11044
+#: cp/pt.c:10382 cp/pt.c:11045
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr ""
 
-#: cp/pt.c:10536
+#: cp/pt.c:10537
 #, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr ""
 
-#: cp/pt.c:11204
+#: cp/pt.c:11205
 #, gcc-internal-format
 msgid ""
 "a cast to a type other than an integral or enumeration type cannot appear in "
 "a constant-expression"
 msgstr ""
 
-#: cp/pt.c:11671
+#: cp/pt.c:11673
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr ""
 
-#: cp/pt.c:11674
+#: cp/pt.c:11676
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr ""
 
-#: cp/pt.c:11894
+#: cp/pt.c:11896
 #, gcc-internal-format
 msgid "%qT is/uses anonymous type"
 msgstr ""
 
-#: cp/pt.c:11896
+#: cp/pt.c:11898
 #, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr ""
 
-#: cp/pt.c:11906
+#: cp/pt.c:11908
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr ""
 
-#: cp/pt.c:11917
+#: cp/pt.c:11919
 #, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr ""
 
-#: cp/pt.c:11935
+#: cp/pt.c:11937
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr ""
 
-#: cp/pt.c:14723
+#: cp/pt.c:14754
 #, gcc-internal-format
 msgid "ambiguous class template instantiation for %q#T"
 msgstr ""
 
-#: cp/pt.c:14726
+#: cp/pt.c:14757
 #, gcc-internal-format
 msgid "%s %+#T"
 msgstr ""
 
-#: cp/pt.c:14749 cp/pt.c:14832
+#: cp/pt.c:14780 cp/pt.c:14863
 #, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr ""
 
-#: cp/pt.c:14764
+#: cp/pt.c:14795
 #, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr ""
 
-#: cp/pt.c:14770 cp/pt.c:14827
+#: cp/pt.c:14801 cp/pt.c:14858
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr ""
 
-#: cp/pt.c:14775
+#: cp/pt.c:14806
 #, gcc-internal-format
 msgid ""
 "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr ""
 
-#: cp/pt.c:14783
+#: cp/pt.c:14814
 #, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr ""
 
-#: cp/pt.c:14819
+#: cp/pt.c:14850
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr ""
 
-#: cp/pt.c:14842 cp/pt.c:14934
+#: cp/pt.c:14873 cp/pt.c:14965
 #, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr ""
 
-#: cp/pt.c:14847 cp/pt.c:14951
+#: cp/pt.c:14878 cp/pt.c:14982
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr ""
 
-#: cp/pt.c:14912
+#: cp/pt.c:14943
 #, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr ""
 
-#: cp/pt.c:14921
+#: cp/pt.c:14952
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr ""
 
-#: cp/pt.c:14939
+#: cp/pt.c:14970
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr ""
 
-#: cp/pt.c:14985
+#: cp/pt.c:15016
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr ""
@@ -33453,12 +33507,12 @@
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.c:15435
+#: cp/pt.c:15466
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr ""
 
-#: cp/pt.c:15601
+#: cp/pt.c:15632
 #, gcc-internal-format
 msgid ""
 "template instantiation depth exceeds maximum of %d instantiating %q+D, "
@@ -33466,19 +33520,19 @@
 "the maximum)"
 msgstr ""
 
-#: cp/pt.c:15956
+#: cp/pt.c:15987
 #, gcc-internal-format
 msgid "%q#T is not a valid type for a template constant parameter"
 msgstr ""
 
-#: cp/pt.c:16932
+#: cp/pt.c:16977
 #, gcc-internal-format
 msgid ""
 "deducing auto from brace-enclosed initializer list requires #include "
 "<initializer_list>"
 msgstr ""
 
-#: cp/pt.c:16973
+#: cp/pt.c:17018
 #, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr ""
@@ -33617,338 +33671,338 @@
 msgid "__label__ declarations are only allowed in function scopes"
 msgstr ""
 
-#: cp/semantics.c:1429
+#: cp/semantics.c:1439
 #, gcc-internal-format
 msgid "invalid use of member %q+D in static member function"
 msgstr ""
 
-#: cp/semantics.c:1431
+#: cp/semantics.c:1441
 #, gcc-internal-format
 msgid "invalid use of non-static data member %q+D"
 msgstr ""
 
-#: cp/semantics.c:1432 cp/semantics.c:1471
+#: cp/semantics.c:1442 cp/semantics.c:1484
 #, gcc-internal-format
 msgid "from this location"
 msgstr ""
 
-#: cp/semantics.c:1470
+#: cp/semantics.c:1483
 #, gcc-internal-format
 msgid "object missing in reference to %q+D"
 msgstr ""
 
-#: cp/semantics.c:1964
+#: cp/semantics.c:1973
 #, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr ""
 
-#: cp/semantics.c:2016
+#: cp/semantics.c:2023
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr ""
 
-#: cp/semantics.c:2022
+#: cp/semantics.c:2029
 #, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr ""
 
-#: cp/semantics.c:2024
+#: cp/semantics.c:2031
 #, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr ""
 
-#: cp/semantics.c:2048
+#: cp/semantics.c:2055
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr ""
 
-#: cp/semantics.c:2053 cp/typeck.c:2130
+#: cp/semantics.c:2060 cp/typeck.c:2130
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/semantics.c:2075
+#: cp/semantics.c:2082
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr ""
 
-#: cp/semantics.c:2119
+#: cp/semantics.c:2126
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr ""
 
-#: cp/semantics.c:2203
+#: cp/semantics.c:2210
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr ""
 
-#: cp/semantics.c:2244
+#: cp/semantics.c:2251
 #, gcc-internal-format
 msgid ""
 "invalid use of type %qT as a default value for a template template-parameter"
 msgstr ""
 
-#: cp/semantics.c:2247
+#: cp/semantics.c:2254
 #, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr ""
 
-#: cp/semantics.c:2264
+#: cp/semantics.c:2271
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr ""
 
-#: cp/semantics.c:2275
+#: cp/semantics.c:2282
 #, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr ""
 
-#: cp/semantics.c:2491
+#: cp/semantics.c:2498
 #, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr ""
 
-#: cp/semantics.c:2503
+#: cp/semantics.c:2510
 #, gcc-internal-format
 msgid "base class %qT has cv qualifiers"
 msgstr ""
 
-#: cp/semantics.c:2528
+#: cp/semantics.c:2535
 #, gcc-internal-format
 msgid "%Hincomplete type %qT used in nested name specifier"
 msgstr ""
 
-#: cp/semantics.c:2532
+#: cp/semantics.c:2539
 #, gcc-internal-format
 msgid "%Hreference to %<%T::%D%> is ambiguous"
 msgstr ""
 
-#: cp/semantics.c:2536
+#: cp/semantics.c:2543
 #, gcc-internal-format
 msgid "%H%qD is not a member of %qT"
 msgstr ""
 
-#: cp/semantics.c:2539
+#: cp/semantics.c:2546
 #, gcc-internal-format
 msgid "%H%qD is not a member of %qD"
 msgstr ""
 
-#: cp/semantics.c:2541
+#: cp/semantics.c:2548
 #, gcc-internal-format
 msgid "%H%<::%D%> has not been declared"
 msgstr ""
 
-#: cp/semantics.c:2682
+#: cp/semantics.c:2689
 #, gcc-internal-format
 msgid "use of %<auto%> variable from containing function"
 msgstr ""
 
-#: cp/semantics.c:2684
+#: cp/semantics.c:2691
 #, gcc-internal-format
 msgid "  %q+#D declared here"
 msgstr ""
 
-#: cp/semantics.c:2722
+#: cp/semantics.c:2729
 #, gcc-internal-format
 msgid ""
 "template parameter %qD of type %qT is not allowed in an integral constant "
 "expression because it is not of integral or enumeration type"
 msgstr ""
 
-#: cp/semantics.c:2891
+#: cp/semantics.c:2893
 #, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/semantics.c:2899
+#: cp/semantics.c:2901
 #, gcc-internal-format
 msgid "use of namespace %qD as expression"
 msgstr ""
 
-#: cp/semantics.c:2904
+#: cp/semantics.c:2906
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr ""
 
 #. Ambiguous reference to base members.
-#: cp/semantics.c:2910
+#: cp/semantics.c:2912
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr ""
 
-#: cp/semantics.c:3032 cp/semantics.c:4762
+#: cp/semantics.c:3034 cp/semantics.c:4764
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr ""
 
-#: cp/semantics.c:3047
+#: cp/semantics.c:3049
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr ""
 
-#: cp/semantics.c:3058
+#: cp/semantics.c:3060
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr ""
 
-#: cp/semantics.c:3503
+#: cp/semantics.c:3505
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr ""
 
-#: cp/semantics.c:3512 cp/semantics.c:3534 cp/semantics.c:3556
+#: cp/semantics.c:3514 cp/semantics.c:3536 cp/semantics.c:3558
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr ""
 
-#: cp/semantics.c:3526
+#: cp/semantics.c:3528
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr ""
 
-#: cp/semantics.c:3548
+#: cp/semantics.c:3550
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr ""
 
-#: cp/semantics.c:3578
+#: cp/semantics.c:3580
 #, gcc-internal-format
 msgid "num_threads expression must be integral"
 msgstr ""
 
-#: cp/semantics.c:3592
+#: cp/semantics.c:3594
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.c:3724
+#: cp/semantics.c:3726
 #, gcc-internal-format
 msgid "%qE has reference type for %qs"
 msgstr ""
 
-#: cp/semantics.c:3795
+#: cp/semantics.c:3797
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr ""
 
-#: cp/semantics.c:3809
+#: cp/semantics.c:3811
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr ""
 
-#: cp/semantics.c:3944
+#: cp/semantics.c:3946
 #, gcc-internal-format
 msgid "%Hinvalid controlling predicate"
 msgstr ""
 
-#: cp/semantics.c:3954
+#: cp/semantics.c:3956
 #, gcc-internal-format
 msgid "%Hdifference between %qE and %qD does not have integer type"
 msgstr ""
 
-#: cp/semantics.c:4049
+#: cp/semantics.c:4051
 #, gcc-internal-format
 msgid "%Hinvalid increment expression"
 msgstr ""
 
-#: cp/semantics.c:4175 cp/semantics.c:4246
+#: cp/semantics.c:4177 cp/semantics.c:4248
 #, gcc-internal-format
 msgid "%Hexpected iteration declaration or initialization"
 msgstr ""
 
-#: cp/semantics.c:4186
+#: cp/semantics.c:4188
 #, gcc-internal-format
 msgid "%Hmissing controlling predicate"
 msgstr ""
 
-#: cp/semantics.c:4192
+#: cp/semantics.c:4194
 #, gcc-internal-format
 msgid "%Hmissing increment expression"
 msgstr ""
 
-#: cp/semantics.c:4272
+#: cp/semantics.c:4274
 #, gcc-internal-format
 msgid "%Hinvalid type for iteration variable %qE"
 msgstr ""
 
 #. Report the error.
-#: cp/semantics.c:4474
+#: cp/semantics.c:4476
 #, gcc-internal-format
 msgid "static assertion failed: %E"
 msgstr ""
 
-#: cp/semantics.c:4476
+#: cp/semantics.c:4478
 #, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr ""
 
-#: cp/semantics.c:4568 cp/semantics.c:4685
+#: cp/semantics.c:4570 cp/semantics.c:4687
 #, gcc-internal-format
 msgid "argument to decltype must be an expression"
 msgstr ""
 
-#: cp/semantics.c:4635
+#: cp/semantics.c:4637
 #, gcc-internal-format
 msgid "%qE refers to a set of overloaded functions"
 msgstr ""
 
-#: cp/semantics.c:4718
+#: cp/semantics.c:4720
 #, gcc-internal-format
 msgid "unable to determine the declared type of expression %<%E%>"
 msgstr ""
 
-#: cp/semantics.c:4949
+#: cp/semantics.c:4951
 #, gcc-internal-format
 msgid "__is_convertible_to"
 msgstr ""
 
-#: cp/semantics.c:4988 cp/semantics.c:4998
+#: cp/semantics.c:4990 cp/semantics.c:5000
 #, gcc-internal-format
 msgid "incomplete type %qT not allowed"
 msgstr ""
 
-#: cp/tree.c:881
+#: cp/tree.c:880
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr ""
 
-#: cp/tree.c:2215
+#: cp/tree.c:2214
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to Java class definitions"
 msgstr ""
 
-#: cp/tree.c:2244
+#: cp/tree.c:2243
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to class definitions"
 msgstr ""
 
-#: cp/tree.c:2250
+#: cp/tree.c:2249
 #, gcc-internal-format
 msgid "%qE is obsolete; g++ vtables are now COM-compatible by default"
 msgstr ""
 
-#: cp/tree.c:2274
+#: cp/tree.c:2273
 #, gcc-internal-format
 msgid "requested init_priority is not an integer constant"
 msgstr ""
 
-#: cp/tree.c:2295
+#: cp/tree.c:2294
 #, gcc-internal-format
 msgid ""
 "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr ""
 
-#: cp/tree.c:2303
+#: cp/tree.c:2302
 #, gcc-internal-format
 msgid "requested init_priority is out of range"
 msgstr ""
 
-#: cp/tree.c:2313
+#: cp/tree.c:2312
 #, gcc-internal-format
 msgid "requested init_priority is reserved for internal use"
 msgstr ""
 
-#: cp/tree.c:2324
+#: cp/tree.c:2323
 #, gcc-internal-format
 msgid "%qE attribute is not supported on this platform"
 msgstr ""
@@ -34814,12 +34868,12 @@
 msgid "gfc_conv_constant_to_tree(): invalid type: %s"
 msgstr ""
 
-#: fortran/trans-decl.c:1026
+#: fortran/trans-decl.c:1028
 #, gcc-internal-format
 msgid "intrinsic variable which isn't a procedure"
 msgstr ""
 
-#: fortran/trans-decl.c:3165
+#: fortran/trans-decl.c:3167
 #, gcc-internal-format
 msgid "backend decl for module variable %s already exists"
 msgstr ""
@@ -35540,3 +35594,13 @@
 #, gcc-internal-format
 msgid "local declaration of %qs hides instance variable"
 msgstr ""
+
+#: ada/gcc-interface/misc.c:221
+#, gcc-internal-format
+msgid "missing argument to \"-%s\""
+msgstr ""
+
+#: ada/gcc-interface/misc.c:279
+#, gcc-internal-format
+msgid "%<-gnat%> misspelled as %<-gant%>"
+msgstr ""
diff -Naur gcc-4.4.0.orig/gcc/rtl.h gcc-4.4.0/gcc/rtl.h
--- gcc-4.4.0.orig/gcc/rtl.h	2009-03-18 10:04:26.000000000 -0700
+++ gcc-4.4.0/gcc/rtl.h	2009-04-27 04:55:13.000000000 -0700
@@ -2282,7 +2282,7 @@
 extern int true_dependence (const_rtx, enum machine_mode, const_rtx, bool (*)(const_rtx, bool));
 extern rtx get_addr (rtx);
 extern int canon_true_dependence (const_rtx, enum machine_mode, rtx, const_rtx,
-				  bool (*)(const_rtx, bool));
+				  rtx, bool (*)(const_rtx, bool));
 extern int read_dependence (const_rtx, const_rtx);
 extern int anti_dependence (const_rtx, const_rtx);
 extern int output_dependence (const_rtx, const_rtx);
diff -Naur gcc-4.4.0.orig/gcc/stmt.c gcc-4.4.0/gcc/stmt.c
--- gcc-4.4.0.orig/gcc/stmt.c	2009-02-27 11:49:42.000000000 -0800
+++ gcc-4.4.0/gcc/stmt.c	2009-04-26 11:53:41.000000000 -0700
@@ -1418,6 +1418,7 @@
       goto restart;
 
     case SAVE_EXPR:
+    case NON_LVALUE_EXPR:
       exp = TREE_OPERAND (exp, 0);
       goto restart;
 
diff -Naur gcc-4.4.0.orig/gcc/testsuite/ChangeLog gcc-4.4.0/gcc/testsuite/ChangeLog
--- gcc-4.4.0.orig/gcc/testsuite/ChangeLog	2009-04-21 01:44:06.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/ChangeLog	2009-04-29 08:54:18.000000000 -0700
@@ -1,3 +1,183 @@
+2009-04-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+	Backport from mainline:
+	2009-04-29  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/39937
+	* gcc.c-torture/compile/pr39937.c: New testcase.
+
+2009-04-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+	Backport from mainline:
+	2009-04-29  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/39941
+	* gcc.c-torture/compile/pr39941.c: New testcase.
+
+	2009-04-29  Anmol P. Paralkar  <anmol@freescale.com>
+
+	PR target/39565
+	* gcc.dg/pr39565.c: New testcase.
+
+	2009-04-28  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/39937
+	* gfortran.fortran-torture/compile/pr39937.f: New testcase.
+
+2009-04-28  Jing Yu  <jingyu@google.com>
+
+	Backport from mainline:
+	2009-04-28  Jing Yu  <jingyu@google.com>
+
+	PR testsuite/39790
+	* lib/target-supports.exp (check_effective_target_tls): Remove
+	comment of caching.
+	(check_effective_target_tls_native): Likewise.
+	(check_effective_target_tls_runtime): Likewise.
+	* gcc.dg/tls/alias-1.c (dg-require-effective-target): Change target
+	tls to tls_runtime.
+	* gcc.dg/tls/opt-2.c: Add dg-require-effective-target tls_runtime.
+
+2009-04-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+	Backport from mainline:
+	PR testsuite/39769
+	* gcc.dg/vmx/3a-04.c (test): Don't rely on floating point equality
+	for testing the results of estimate instructions.
+	* gcc.dg/vmx/3a-04m.c (test): Ditto.
+	* gcc.dg/vmx/3a-05.c (test): Ditto.
+
+2009-04-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+	Backport from mainline:
+	2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR target/39903
+	* gcc.dg/torture/pr39903-1.c: New.
+	* gcc.dg/torture/pr39903-2.c: Likewise.
+
+2009-04-27  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/39794
+	* gcc.dg/pr39794.c: New test.
+
+2009-04-26  Jakub Jelinek  <jakub@redhat.com>
+
+	PR inline-asm/39543
+	* gcc.target/i386/pr39543-1.c: New test.
+	* gcc.target/i386/pr39543-2.c: New test.
+	* gcc.target/i386/pr39543-3.c: New test.
+
+	PR c/39889
+	* gcc.dg/Wunused-value-3.c: New test.
+
+2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
+
+	PR middle-end/39867
+	* gcc.dg/pr39867.c: New.
+
+2009-04-23  Dodji Seketeli  <dodji@redhat.com>
+
+	PR c++/38228
+	* g++.dg/expr/bound-mem-fun.C: New test.
+
+2009-04-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* gnat.dg/enum2.adb: New test.
+	* gnat.dg/enum2_pkg.ads: New helper.
+
+2009-04-22  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/39855
+	* gcc.dg/torture/pr39855.c: New test.
+
+2009-04-22  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/39824
+	* gcc.c-torture/compile/pr39824.c: New testcase.
+
+2009-04-22  Dodji Seketeli  <dodji@redhat.com>
+
+	PR c++/39639
+	* g++.dg/cpp0x/pr39639.C: New test.
+
+2009-04-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	Backport from mainline:
+	2009-04-22  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/39845
+	* gcc.c-torture/compile/pr39845.c: New testcase.
+
+	2009-04-21  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/39829
+	* gcc.dg/torture/pr39829.c: New testcase.
+
+2009-04-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	Backport from mainline:
+
+	2009-04-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	* gfortran.fortran-torture/execute/getarg_1.x: New file.
+
+	2009-04-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	* gfortran.dg/vect/pr39318.f90: Guard with "target fopenmp".
+
+	2009-04-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	* gfortran.dg/chmod_1.f90: Disable on spu-*-* targets.
+	* gfortran.dg/chmod_2.f90: Likewise.
+	* gfortran.dg/chmod_3.f90: Likewise.
+	* gfortran.dg/open_errors.f90: Likewise.
+	* gfortran.dg/stat_1.f90: Likewise.
+	* gfortran.dg/stat_2.f90: Likewise.
+
+	2009-04-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	* gfortran.fortran-torture/execute/nan_inf_fmt.x: Skip on spu-*-*.
+	* gfortran.fortran-torture/execute/intrinsic_nearest.x: Likewise.
+	* gfortran.fortran-torture/execute/intrinsic_set_exponent.x: Likewise.
+	* gfortran.dg/nearest_1.f90: Likewise.
+	* gfortran.dg/nearest_3.f90: Likewise.
+	* gfortran.dg/isnan_1.f90: Likewise.
+	* gfortran.dg/isnan_2.f90: Likewise.
+	* gfortran.dg/nan_1.f90: Likewise.
+	* gfortran.dg/nan_2.f90: Likewise.
+	* gfortran.dg/nan_3.f90: Likewise.
+	* gfortran.dg/nan_4.f90: Likewise.
+	* gfortran.dg/module_nan.f90: Likewise.
+	* gfortran.dg/int_conv_2.f90: Likewise.
+	* gfortran.dg/init_flag_3.f90: Likewise.
+	* gfortran.dg/namelist_42.f90: Likewise.
+	* gfortran.dg/namelist_43.f90: Likewise.
+	* gfortran.dg/real_const_3.f90: Likewise.
+	* gfortran.dg/transfer_simplify_1.f90: Likewise.
+
+	* gfortran.dg/default_format_1.f90: XFAIL on spu-*-*.
+	* gfortran.dg/default_format_denormal_1.f90: XFAIL on spu-*-*.
+	* gfortran.dg/scalar_mask_2.f90: XFAIL on spu-*-*.
+	* gfortran.dg/integer_exponentiation_3.F90: XFAIL on spu-*-*.
+	* gfortran.dg/integer_exponentiation_5.F90: XFAIL on spu-*-*.
+
+	* gfortran.dg/elemental_subroutine_1.f90: Relax "epsilon" check.
+	* gfortran.dg/gamma_5.f90: Likewise.
+
+	2009-04-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	* lib/gcc-dg.exp (gcc-dg-prune): Make linker message check
+	less strict so it also works with auto-overlay support.
+	* lib/gcc-defs.exp (${tool}_check_unsupported_p): Add check
+	for "exceeds local store" linker errors on the SPU.
+
+	* lib/gfortran.exp: Include target-supports.exp.
+	(gfortran_init): On SPU targets where automatic overlay support
+	is available, use it to build all Fortran test cases.
+
+	* gfortran.dg/pr20257.f90: Skip on spu-*-* targets.
+
 2009-04-21  Release Manager
 
 	* GCC 4.4.0 released.
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.c-torture/compile/pr39824.c gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr39824.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.c-torture/compile/pr39824.c	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr39824.c	2009-04-22 12:55:24.000000000 -0700
@@ -0,0 +1,26 @@
+static const double internalEndianMagic = 7.949928895127363e-275;
+static const unsigned char ieee_754_mantissa_mask[] = { 0x00, 0x0F, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF };
+static inline int 
+trio_isnan (double number)
+{
+  int has_mantissa = 0;
+  unsigned int i;
+  unsigned char current;
+  for (i = 0; i < (unsigned int)sizeof(double); i++)
+    {
+      current = ((unsigned char *)&number)[(((unsigned char
+					      *)&internalEndianMagic)[7-(i)])];
+      has_mantissa |= (current & ieee_754_mantissa_mask[i]);
+    }
+  return has_mantissa;
+}
+void
+xmlXPathEqualNodeSetFloat(int nodeNr, double v)
+{
+  int i;
+  for (i=0; i<nodeNr; i++)
+    if (!trio_isnan(v))
+      break;
+}
+
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.c-torture/compile/pr39845.c gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr39845.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.c-torture/compile/pr39845.c	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr39845.c	2009-04-22 07:14:08.000000000 -0700
@@ -0,0 +1,43 @@
+typedef union tree_node *tree;
+enum tree_code { EXCESS_PRECISION_EXPR };
+enum built_in_function { BUILT_IN_ACOS, BUILT_IN_FPCLASSIFY, BUILT_IN_ISFINITE };
+struct tree_base {
+    __extension__ enum tree_code code : 16;
+    unsigned side_effects_flag : 1;
+};
+struct tree_exp {
+    tree     operands[1];
+};
+struct tree_function_decl {
+    __extension__ enum built_in_function function_code : 11;
+    unsigned static_ctor_flag : 1;
+};
+union tree_node {
+    struct tree_base base;
+    struct tree_function_decl function_decl;
+    struct tree_exp exp;
+};
+static tree
+convert_arguments (tree fundecl)
+{
+  tree val = (void *)0;
+  unsigned int parmnum;
+  unsigned char type_generic_remove_excess_precision = 0;
+  switch (((fundecl)->function_decl.function_code))
+    {
+      case BUILT_IN_ISFINITE:
+      case BUILT_IN_FPCLASSIFY:
+	  type_generic_remove_excess_precision = 1;
+    }
+  for (parmnum = 0;; ++parmnum)
+    if (((enum tree_code) (val)->base.code) == EXCESS_PRECISION_EXPR
+	&& !type_generic_remove_excess_precision)
+      val = ((val)->exp.operands[0]);
+  return val;
+}
+tree
+build_function_call_vec (tree function)
+{
+  return convert_arguments (function);
+}
+
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.c-torture/compile/pr39937.c gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr39937.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.c-torture/compile/pr39937.c	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr39937.c	2009-04-29 08:54:18.000000000 -0700
@@ -0,0 +1,12 @@
+int foo (__const char *__restrict __s);
+static void 
+read_anisou(char line[])
+{
+  foo (line+1);
+}
+void
+read_pdbfile(void)
+{
+  char line[4096];
+  read_anisou (line);
+}
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.c-torture/compile/pr39941.c gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr39941.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.c-torture/compile/pr39941.c	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr39941.c	2009-04-29 07:54:54.000000000 -0700
@@ -0,0 +1,12 @@
+typedef void (*entry_func) (void) __attribute__ ((noreturn));
+extern entry_func entry_addr;
+static void bsd_boot_entry (void)
+{
+  stop ();
+}   
+void bsd_boot (void)
+{
+  entry_addr = (entry_func) bsd_boot_entry;
+  (*entry_addr) ();
+}
+
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.dg/pr39565.c gcc-4.4.0/gcc/testsuite/gcc.dg/pr39565.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.dg/pr39565.c	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gcc.dg/pr39565.c	2009-04-29 07:54:54.000000000 -0700
@@ -0,0 +1,48 @@
+/* PR39565: Static variable leaves undefined symbol in object file.
+   Variables codestrs_4 and codestrs_8 should not be undefined,
+   when this program is compiled at -O2. As a basic sanity test,
+   verify that this program compiles into an executable and runs. */
+
+/* { dg-do run } */
+/* { dg-options "-O2" } */
+
+extern void abort (void);
+extern void exit (int);
+extern int strcmp (const char *, const char *);
+
+static const union codestrs_t_4 {
+  struct {
+    char str_2[sizeof ("Illegal opcode")];
+  };
+  char str[0];
+} codestrs_4 = { {"Illegal opcode"} };
+
+static const union codestrs_t_8 {
+  struct {
+    char str_12[sizeof ("Integer divide by zero")];
+  };
+  char str[0];
+} codestrs_8 = { {"Integer divide by zero"} };
+
+const char *
+psiginfo (int pinfo)
+{
+  const char *base = ((void *)0);
+
+  switch (pinfo)
+    {
+    case 4: base = codestrs_4.str; break;
+    case 8: base = codestrs_8.str; break;
+    }
+  return base;
+}
+
+int
+main (void)
+{
+  if (strcmp (psiginfo (4), codestrs_4.str))
+    abort ();
+  if (strcmp (psiginfo (8), codestrs_8.str))
+    abort ();
+  exit (0);
+}
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.dg/pr39794.c gcc-4.4.0/gcc/testsuite/gcc.dg/pr39794.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.dg/pr39794.c	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gcc.dg/pr39794.c	2009-04-27 04:55:13.000000000 -0700
@@ -0,0 +1,33 @@
+/* PR rtl-optimization/39794 */
+/* { dg-do run } */
+/* { dg-options "-O2 -funroll-loops" } */
+
+extern void abort ();
+
+void
+foo (int *a, int n)
+{
+  int i;
+  for (i = 0; i < n; i++)
+    {
+      a[i] *= 2;
+      a[i + 1] = a[i - 1] + a[i - 2];
+    }
+}
+
+int a[16];
+int ref[16] = { 0, 1, 4, 2, 10, 12, 24, 44,
+		72, 136, 232, 416, 736, 1296, 2304, 2032 };
+
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 16; i++)
+    a[i] = i;
+  foo (a + 2, 16 - 3);
+  for (i = 0; i < 16; i++)
+    if (ref[i] != a[i])
+      abort ();
+  return 0;
+}
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.dg/pr39867.c gcc-4.4.0/gcc/testsuite/gcc.dg/pr39867.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.dg/pr39867.c	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gcc.dg/pr39867.c	2009-04-24 04:34:59.000000000 -0700
@@ -0,0 +1,12 @@
+/* { dg-do link } */
+/* { dg-options "-O2" } */
+
+int main (void)
+{
+  int exp = -1;
+  /* Wrong folding of the LHS to an unsigned MAX leads to 4294967295 != 2.  */
+  if ((exp < 2 ? 2U : (unsigned int) exp) != 2)
+    link_error ();
+  return 0;
+}
+
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.dg/tls/alias-1.c gcc-4.4.0/gcc/testsuite/gcc.dg/tls/alias-1.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.dg/tls/alias-1.c	2007-09-18 19:35:29.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gcc.dg/tls/alias-1.c	2009-04-28 13:57:42.000000000 -0700
@@ -1,7 +1,7 @@
 /* { dg-do link } */
 /* { dg-require-alias "" } */
 /* { dg-require-visibility "" } */
-/* { dg-require-effective-target tls } */
+/* { dg-require-effective-target tls_runtime } */
 /* Test that encode_section_info handles the change from externally
    defined to locally defined (via hidden).   Extracted from glibc.  */
 
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.dg/tls/opt-2.c gcc-4.4.0/gcc/testsuite/gcc.dg/tls/opt-2.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.dg/tls/opt-2.c	2007-09-18 19:35:29.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gcc.dg/tls/opt-2.c	2009-04-28 13:57:42.000000000 -0700
@@ -6,6 +6,7 @@
 /* { dg-options "-O2 -ftls-model=initial-exec" } */
 /* { dg-options "-O2 -ftls-model=initial-exec -march=i686" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
 /* { dg-require-effective-target tls_native } */
+/* { dg-require-effective-target tls_runtime  } */
 
 __thread int thr;
 
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.dg/torture/pr39829.c gcc-4.4.0/gcc/testsuite/gcc.dg/torture/pr39829.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.dg/torture/pr39829.c	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gcc.dg/torture/pr39829.c	2009-04-22 07:14:08.000000000 -0700
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-options "-w" } */
+
+void foo (void * DAG_temp117584)
+{
+  char  uA;
+  void* pA;
+  void* pB;
+  void* pC;
+  do {
+      int DAG_temp117585;
+      int DAG_temp117586;
+      void ** __indir_union1 = (void**)DAG_temp117584;
+      DAG_temp117585 = (long)*__indir_union1;
+      DAG_temp117586 = DAG_temp117585;
+      if ( DAG_temp117586 != (int)268435456 )
+	pA = (void*)&uA;
+      pB = (void*)&pA;
+      pC = pB;
+      union __block_indir0_u {  struct {  long val; }  __indir_struct; }
+      * __indir_union = (union __block_indir0_u*)pC;
+      f(__indir_union->__indir_struct.val);
+
+      DAG_temp117584 += 64;
+  } while (1);
+}
+
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.dg/torture/pr39855.c gcc-4.4.0/gcc/testsuite/gcc.dg/torture/pr39855.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.dg/torture/pr39855.c	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gcc.dg/torture/pr39855.c	2009-04-22 15:02:54.000000000 -0700
@@ -0,0 +1,24 @@
+/* PR c/39855 */
+/* { dg-do run { target { int32plus } } } */
+
+extern void abort (void);
+
+int i, j, k;
+
+int
+foo (void)
+{
+  return ++i;
+}
+
+int
+main ()
+{
+  if (__CHAR_BIT__ != 8 || sizeof (int) != 4)
+    return 0;
+  j = foo () << 30 << 2;
+  k = (unsigned) foo () >> 16 >> 16;
+  if (i != 2 || j != 0 || k != 0)
+    abort ();
+  return 0;
+}
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.dg/torture/pr39903-1.c gcc-4.4.0/gcc/testsuite/gcc.dg/torture/pr39903-1.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.dg/torture/pr39903-1.c	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gcc.dg/torture/pr39903-1.c	2009-04-28 07:35:12.000000000 -0700
@@ -0,0 +1,24 @@
+/* PR target/39903 */
+/* { dg-do run } */
+/* { dg-options "-Wno-psabi" } */
+
+struct X {
+  double d;
+  double b[];
+};
+
+struct X __attribute__((noinline))
+foo (double d)
+{
+  struct X x;
+  x.d = d;
+  return x;
+}
+extern void abort (void);
+int main()
+{
+  struct X x = foo(3.0);
+  if (x.d != 3.0)
+    abort ();
+  return 0;
+}
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.dg/torture/pr39903-2.c gcc-4.4.0/gcc/testsuite/gcc.dg/torture/pr39903-2.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.dg/torture/pr39903-2.c	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gcc.dg/torture/pr39903-2.c	2009-04-28 07:35:12.000000000 -0700
@@ -0,0 +1,24 @@
+/* PR target/39903 */
+/* { dg-do run } */
+/* { dg-options "-Wno-psabi" } */
+
+struct X {
+  float d;
+  float b[];
+};
+
+struct X __attribute__((noinline))
+foo (float d)
+{
+  struct X x;
+  x.d = d;
+  return x;
+}
+extern void abort (void);
+int main()
+{
+  struct X x = foo(3.0);
+  if (x.d != 3.0)
+    abort ();
+  return 0;
+}
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.dg/vmx/3a-04.c gcc-4.4.0/gcc/testsuite/gcc.dg/vmx/3a-04.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.dg/vmx/3a-04.c	2004-04-17 18:01:41.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gcc.dg/vmx/3a-04.c	2009-04-28 12:18:59.000000000 -0700
@@ -10,9 +10,13 @@
 
 static void test()
 {
-  check(vec_all_eq(f(((vector float){2,3,5,7}),
+  check(vec_all_gt(f(((vector float){2,3,5,7}),
 		     ((vector float){11,13,17,19}),
 		     ((vector float){23,29,31,37})),
-		   ((vector float){23.1818085, 29.2307587, 32.2940826, 128.368393})),
+		   ((vector float){23.18, 29.23, 32.29, 128.36}))
+	&& vec_all_lt(f(((vector float){2,3,5,7}),
+			((vector float){11,13,17,19}),
+			((vector float){23,29,31,37})),
+		      ((vector float){23.19, 29.24, 32.30, 128.37})),
 	"f");
 }
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.dg/vmx/3a-04m.c gcc-4.4.0/gcc/testsuite/gcc.dg/vmx/3a-04m.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.dg/vmx/3a-04m.c	2004-04-17 18:01:41.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gcc.dg/vmx/3a-04m.c	2009-04-28 12:18:59.000000000 -0700
@@ -10,9 +10,13 @@
 
 static void test()
 {
-  check(vec_all_eq(f(((vector float){2,3,5,7}),
+  check(vec_all_gt(f(((vector float){2,3,5,7}),
 		     ((vector float){11,13,17,19}),
 		     ((vector float){23,29,31,37})),
-		   ((vector float){23.1818085, 29.2307587, 32.2940826, 128.368393})),
+		   ((vector float){23.18, 29.23, 32.29, 128.36}))
+	&& vec_all_lt(f(((vector float){2,3,5,7}),
+			((vector float){11,13,17,19}),
+			((vector float){23,29,31,37})),
+		      ((vector float){23.19, 29.24, 32.30, 128.37})),
 	"f");
 }
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.dg/vmx/3a-05.c gcc-4.4.0/gcc/testsuite/gcc.dg/vmx/3a-05.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.dg/vmx/3a-05.c	2004-04-17 18:01:41.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gcc.dg/vmx/3a-05.c	2009-04-28 12:18:59.000000000 -0700
@@ -14,9 +14,13 @@
 
 static void test()
 {
-  check(vec_all_eq(f(((vector float){2,3,5,7}),
+  check(vec_all_gt(f(((vector float){2,3,5,7}),
 		     ((vector float){11,13,17,19}),
 		     ((vector float){23,29,31,37})),
-		   ((vector float){16.9092026, 18.7693329, -2.8233242, -92.9472198})),
-		   "f");
+		   ((vector float){16.90, 18.76, -2.83, -92.95}))
+	&& vec_all_lt(f(((vector float){2,3,5,7}),
+		     ((vector float){11,13,17,19}),
+		     ((vector float){23,29,31,37})),
+		   ((vector float){16.91, 18.77, -2.82, -92.94})),
+	"f");
 }
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.dg/Wunused-value-3.c gcc-4.4.0/gcc/testsuite/gcc.dg/Wunused-value-3.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.dg/Wunused-value-3.c	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gcc.dg/Wunused-value-3.c	2009-04-26 11:53:41.000000000 -0700
@@ -0,0 +1,9 @@
+/* PR c/39889 */
+/* { dg-do compile } */
+/* { dg-options "-Wunused-value" } */
+
+int x;
+int foo (void)
+{
+  return (1 ? x = 0 : (void) 0), 0; /* { dg-bogus "value computed is not used" } */
+}
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.target/i386/pr39543-1.c gcc-4.4.0/gcc/testsuite/gcc.target/i386/pr39543-1.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.target/i386/pr39543-1.c	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gcc.target/i386/pr39543-1.c	2009-04-26 11:58:04.000000000 -0700
@@ -0,0 +1,52 @@
+/* PR inline-asm/39543 */
+/* { dg-do compile } */
+/* { dg-options "-O3 -fomit-frame-pointer" } */
+
+float __attribute__ ((aligned (16))) s0[128];
+const float s1 = 0.707;
+float s2[8] __attribute__ ((aligned (16)));
+float s3[8] __attribute__ ((aligned (16)));
+float s4[16] __attribute__ ((aligned (16)));
+float s5[16] __attribute__ ((aligned (16)));
+
+void
+foo (int k, float *x, float *y, const float *d, const float *z)
+{
+  float *a, *b, *c, *e;
+
+  a = x + 2 * k;
+  b = a + 2 * k;
+  c = b + 2 * k;
+  e = y + 2 * k;
+  __asm__ volatile (""
+		    : "=m" (x[0]), "=m" (b[0]), "=m" (a[0]), "=m" (c[0])
+		    : "m" (y[0]), "m" (y[k * 2]), "m" (x[0]), "m" (a[0])
+		    : "memory");
+  for (;;)
+    {
+      __asm__ volatile (""
+			:
+			: "m" (y[2]), "m" (d[2]), "m" (e[2]), "m" (z[2])
+			: "memory");
+      if (!--k)
+	break;
+    }
+  __asm__ volatile (""
+		    : "=m" (x[2]), "=m" (x[10]), "=m" (x[6]), "=m" (x[14])
+		    : "m" (y[2]), "m" (y[6]), "m" (x[2]), "m" (x[6]),
+		      "m" (y[18]), "m" (s1)
+		    : "memory");
+}
+
+void
+bar (float *a)
+{
+  foo (4, a, a + 16, s2, s3);
+  foo (8, a, a + 32, s4, s5);
+}
+
+void
+baz (void)
+{
+  bar (s0);
+}
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.target/i386/pr39543-2.c gcc-4.4.0/gcc/testsuite/gcc.target/i386/pr39543-2.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.target/i386/pr39543-2.c	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gcc.target/i386/pr39543-2.c	2009-04-26 11:58:04.000000000 -0700
@@ -0,0 +1,51 @@
+/* PR inline-asm/39543 */
+/* { dg-do compile } */
+/* { dg-options "-O3" } */
+
+float __attribute__ ((aligned (16))) s0[128];
+const float s1 = 0.707;
+float s2[8] __attribute__ ((aligned (16)));
+float s3[8] __attribute__ ((aligned (16)));
+float s4[16] __attribute__ ((aligned (16)));
+float s5[16] __attribute__ ((aligned (16)));
+
+void
+foo (int k, float *x, float *y, const float *d, const float *z)
+{
+  float *a, *b, *c, *e;
+
+  a = x + 2 * k;
+  b = a + 2 * k;
+  c = b + 2 * k;
+  e = y + 2 * k;
+  __asm__ volatile (""
+		    : "=m" (x[0]), "=m" (b[0]), "=m" (a[0]), "=m" (c[0])
+		    : "m" (y[0]), "m" (y[k * 2]), "m" (x[0]), "m" (a[0])
+		    : "memory");
+  for (;;)
+    {
+      __asm__ volatile (""
+			:
+			: "m" (y[2]), "m" (d[2]), "m" (e[2]), "m" (z[2])
+			: "memory");
+      if (!--k)
+	break;
+    }
+  __asm__ volatile (""
+		    : "=m" (x[2]), "=m" (x[10]), "=m" (x[6]), "=m" (x[14])
+		    : "m" (y[2]), "m" (y[6]), "m" (x[2]), "m" (x[6]), "m" (s1)
+		    : "memory");
+}
+
+void
+bar (float *a)
+{
+  foo (4, a, a + 16, s2, s3);
+  foo (8, a, a + 32, s4, s5);
+}
+
+void
+baz (void)
+{
+  bar (s0);
+}
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gcc.target/i386/pr39543-3.c gcc-4.4.0/gcc/testsuite/gcc.target/i386/pr39543-3.c
--- gcc-4.4.0.orig/gcc/testsuite/gcc.target/i386/pr39543-3.c	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gcc.target/i386/pr39543-3.c	2009-04-26 11:58:04.000000000 -0700
@@ -0,0 +1,42 @@
+/* PR inline-asm/39543 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+int s[128];
+
+void
+f1 (void)
+{
+  int i;
+  asm volatile ("# %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17"
+		: "=r" (i)
+		: "m" (s[0]), "m" (s[2]), "m" (s[4]), "m" (s[6]), "m" (s[8]),
+		  "m" (s[10]), "m" (s[12]), "m" (s[14]), "m" (s[16]), "m" (s[18]),
+		  "m" (s[20]), "m" (s[22]), "m" (s[24]), "m" (s[26]), "m" (s[28]),
+		  "m" (s[30]), "m" (s[32]));
+  asm volatile ("# %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17"
+		: "=r" (i)
+		: "m" (s[0]), "m" (s[2]), "m" (s[4]), "m" (s[6]), "m" (s[8]),
+		  "m" (s[10]), "m" (s[12]), "m" (s[14]), "m" (s[16]), "m" (s[18]),
+		  "m" (s[20]), "m" (s[22]), "m" (s[24]), "m" (s[26]), "m" (s[28]),
+		  "m" (s[30]), "m" (s[32]));
+}
+
+void
+f2 (int *q)
+{
+  int i;
+  int *p = q + 32;
+  asm volatile ("# %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17"
+		: "=r" (i)
+		: "m" (p[0]), "m" (p[2]), "m" (p[4]), "m" (p[6]), "m" (p[8]),
+		  "m" (p[10]), "m" (p[12]), "m" (p[14]), "m" (p[16]), "m" (p[18]),
+		  "m" (p[20]), "m" (p[22]), "m" (p[24]), "m" (p[26]), "m" (p[28]),
+		  "m" (p[30]), "m" (p[32]));
+  asm volatile ("# %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17"
+		: "=r" (i)
+		: "m" (p[0]), "m" (p[2]), "m" (p[4]), "m" (p[6]), "m" (p[8]),
+		  "m" (p[10]), "m" (p[12]), "m" (p[14]), "m" (p[16]), "m" (p[18]),
+		  "m" (p[20]), "m" (p[22]), "m" (p[24]), "m" (p[26]), "m" (p[28]),
+		  "m" (p[30]), "m" (p[32]));
+}
diff -Naur gcc-4.4.0.orig/gcc/testsuite/g++.dg/cpp0x/pr39639.C gcc-4.4.0/gcc/testsuite/g++.dg/cpp0x/pr39639.C
--- gcc-4.4.0.orig/gcc/testsuite/g++.dg/cpp0x/pr39639.C	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/g++.dg/cpp0x/pr39639.C	2009-04-22 12:16:13.000000000 -0700
@@ -0,0 +1,20 @@
+// Contributed by Dodji Seketeli <dodji@redhat.com>
+// Origin: PR c++/39639
+// { dg-options "-std=c++0x" }
+// { dg-do "compile" }
+
+template <class... Types>
+struct S
+  : S<...Types>, // { dg-error "expected parameter pack before '...'" }
+    S<...Types...>, // { dg-error "expected parameter pack before '...'" }
+    S<...> // { dg-error "expected parameter pack before '...'" }
+{
+  static int f () { return 1;}
+};
+
+int
+main ()
+{
+  return S<void>::f ();
+}
+
diff -Naur gcc-4.4.0.orig/gcc/testsuite/g++.dg/expr/bound-mem-fun.C gcc-4.4.0/gcc/testsuite/g++.dg/expr/bound-mem-fun.C
--- gcc-4.4.0.orig/gcc/testsuite/g++.dg/expr/bound-mem-fun.C	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/g++.dg/expr/bound-mem-fun.C	2009-04-23 04:13:57.000000000 -0700
@@ -0,0 +1,18 @@
+// Contributed by Dodji Seketeli <dodji@redhat.com>
+// Origin PR c++/38228
+// { dg-do "compile" }
+
+struct A
+{
+  A ();
+  template<typename T> A(T);
+};
+
+struct B
+{
+  int foo();
+};
+
+A a = B().*(&B::foo); // { dg-error "invalid use of non-static member function" }
+
+
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/chmod_1.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/chmod_1.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/chmod_1.f90	2008-04-30 13:24:46.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/chmod_1.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,4 +1,4 @@
-! { dg-do run { target { ! *-*-mingw* } } }
+! { dg-do run { target { ! { *-*-mingw* spu-*-* } } } }
 ! { dg-options "-std=gnu" }
   implicit none
   character(len=*), parameter :: n = "foobar_file"
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/chmod_2.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/chmod_2.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/chmod_2.f90	2008-04-30 13:24:46.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/chmod_2.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,4 +1,4 @@
-! { dg-do run { target { ! *-*-mingw* } } }
+! { dg-do run { target { ! { *-*-mingw* spu-*-* } } } }
 ! { dg-options "-std=gnu" }
   implicit none
   character(len=*), parameter :: n = "foobar_file"
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/chmod_3.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/chmod_3.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/chmod_3.f90	2008-04-30 13:24:46.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/chmod_3.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,4 +1,4 @@
-! { dg-do run { target { ! *-*-mingw* } } }
+! { dg-do run { target { ! { *-*-mingw* spu-*-* } } } }
 ! { dg-options "-std=gnu -fdefault-integer-8" }
   implicit none
   character(len=*), parameter :: n = "foobar_file"
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/default_format_1.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/default_format_1.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/default_format_1.f90	2008-05-11 02:55:34.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/default_format_1.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,4 +1,4 @@
-! { dg-do run }
+! { dg-do run { xfail spu-*-* } }
 ! Test XFAILed on Darwin because the system's printf() lacks
 ! proper support for denormals.
 !
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/default_format_denormal_1.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/default_format_denormal_1.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/default_format_denormal_1.f90	2008-12-09 23:49:40.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/default_format_denormal_1.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,4 +1,4 @@
-! { dg-do run { xfail alpha*-*-* *-*-darwin[89]* *-*-freebsd* *-*-mingw* } }
+! { dg-do run { xfail alpha*-*-* *-*-darwin[89]* *-*-freebsd* *-*-mingw* spu-*-* } }
 ! Test XFAILed on these platforms because the system's printf() lacks
 ! proper support for denormals.
 !
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90	2007-09-17 23:34:30.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90	2009-04-22 04:35:25.000000000 -0700
@@ -48,7 +48,7 @@
 ! Test an expression in the INTENT(IN) argument
   x = (/1.0, 2.0/)
   call foobar (cos (x) + u, y)
-  if (any(abs (y + cos (x) + u) .gt. 2.0e-6)) call abort ()
+  if (any(abs (y + cos (x) + u) .gt. 4.0e-6)) call abort ()
 
 contains
 
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/gamma_5.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/gamma_5.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/gamma_5.f90	2007-11-29 20:18:05.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/gamma_5.f90	2009-04-22 04:35:25.000000000 -0700
@@ -21,7 +21,7 @@
      xd = n + 0.5d0
      td = c(n)*sqrt(pi)
      ts = c(n)*sqrt(pi)
-     if (abs(gamma(xs)-ts)/ts > 3e-6) call abort
+     if (abs(gamma(xs)-ts)/ts > 9e-6) call abort
      if (abs(gamma(xd)-td)/td > 5e-14) call abort
   end do
   call tst_s(2.3, gamma(2.3))
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/init_flag_3.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/init_flag_3.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/init_flag_3.f90	2008-12-09 23:49:40.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/init_flag_3.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,6 +1,7 @@
 ! { dg-do run }
 ! { dg-options "-finit-integer=-1 -finit-logical=false -finit-real=nan" }
 ! { dg-options "-finit-integer=-1 -finit-logical=false -finit-real=nan -mieee" { target alpha*-*-* sh*-*-* } }
+! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
 
 program init_flag_3
   call real_test
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/int_conv_2.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/int_conv_2.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/int_conv_2.f90	2008-10-30 21:51:04.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/int_conv_2.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,4 +1,5 @@
 ! { dg-do compile }
+! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
 ! PR fortran/37930
 program test
   implicit none
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/integer_exponentiation_3.F90 gcc-4.4.0/gcc/testsuite/gfortran.dg/integer_exponentiation_3.F90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/integer_exponentiation_3.F90	2007-11-20 13:57:04.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/integer_exponentiation_3.F90	2009-04-22 04:35:25.000000000 -0700
@@ -1,4 +1,5 @@
-! { dg-do run }
+! { dg-do run { xfail spu-*-* } }
+! FAILs on SPU because of wrong compile-time rounding mode
 ! { dg-options "" }
 module mod_check
   implicit none
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90 gcc-4.4.0/gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90	2008-12-09 23:49:40.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90	2009-04-22 04:35:25.000000000 -0700
@@ -1,4 +1,5 @@
-! { dg-do run }
+! { dg-do run { xfail spu-*-* } }
+! FAILs on SPU because of invalid result of 1.0/0.0 inline code
 ! { dg-options "-fno-range-check" }
 ! { dg-options "-fno-range-check -mieee" { target alpha*-*-* } } */
 module mod_check
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/isnan_1.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/isnan_1.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/isnan_1.f90	2008-12-09 23:49:40.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/isnan_1.f90	2009-04-22 04:35:25.000000000 -0700
@@ -2,6 +2,7 @@
 !
 ! { dg-do run }
 ! { dg-options "-pedantic-errors -mieee" { target alpha*-*-* sh*-*-* } }
+! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
 !
   implicit none
   real :: x
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/isnan_2.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/isnan_2.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/isnan_2.f90	2008-12-09 23:49:40.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/isnan_2.f90	2009-04-22 04:35:25.000000000 -0700
@@ -3,6 +3,7 @@
 ! { dg-do run }
 ! { dg-options "-fno-range-check" }
 ! { dg-options "-fno-range-check -pedantic-errors -mieee" { target alpha*-*-* sh*-*-* } }
+! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
 !
   implicit none
   character(len=1) :: s
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/module_nan.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/module_nan.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/module_nan.f90	2008-12-09 23:49:40.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/module_nan.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,6 +1,7 @@
 ! { dg-do run }
 ! { dg-options "-fno-range-check" }
 ! { dg-options "-fno-range-check -mieee" { target alpha*-*-* sh*-*-* } }
+! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
 !
 ! PR fortran/34318
 !
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/namelist_42.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/namelist_42.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/namelist_42.f90	2008-12-09 23:49:40.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/namelist_42.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,5 +1,6 @@
 ! { dg-do run { target fd_truncate } }
 ! { dg-options "-mieee" { target alpha*-*-* sh*-*-* } }
+! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
 !
 ! PR fortran/34427
 !
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/namelist_43.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/namelist_43.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/namelist_43.f90	2008-12-09 23:49:40.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/namelist_43.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,5 +1,6 @@
 ! { dg-do run { target fd_truncate } }
 ! { dg-options "-mieee" { target alpha*-*-* sh*-*-* } }
+! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
 !
 ! PR fortran/34427
 !
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/nan_1.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/nan_1.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/nan_1.f90	2008-12-09 23:49:40.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/nan_1.f90	2009-04-22 04:35:25.000000000 -0700
@@ -3,6 +3,7 @@
 !
 ! { dg-do run }
 ! { dg-options "-pedantic-errors -mieee" { target alpha*-*-* sh*-*-* } } 
+! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
 !
 module aux2
   interface isnan
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/nan_2.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/nan_2.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/nan_2.f90	2008-12-09 23:49:40.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/nan_2.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,6 +1,7 @@
 ! { dg-do run }
 ! { dg-options "-fno-range-check -pedantic" }
 ! { dg-options "-fno-range-check -pedantic -mieee" { target alpha*-*-* sh*-*-* } }
+! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
 !
 ! PR fortran/34333
 !
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/nan_3.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/nan_3.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/nan_3.f90	2008-12-09 23:49:40.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/nan_3.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,6 +1,7 @@
 ! { dg-do run }
 ! { dg-options "-fno-range-check" }
 ! { dg-options "-fno-range-check -mieee" { target alpha*-*-* sh*-*-* } }
+! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
 !
 ! PR fortran/34319
 !
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/nan_4.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/nan_4.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/nan_4.f90	2008-12-09 23:49:40.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/nan_4.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,6 +1,7 @@
 ! { dg-do compile }
 ! { dg-options "-std=gnu" } 
 ! { dg-options "-std=gnu -mieee" { target alpha*-*-* sh*-*-* } } 
+! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
 !
 ! PR fortran/34398.
 !
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/nearest_1.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/nearest_1.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/nearest_1.f90	2008-12-09 23:49:40.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/nearest_1.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,6 +1,7 @@
 ! { dg-do run }
 ! { dg-options "-O0 -ffloat-store" }
 ! { dg-options "-O0 -ffloat-store -mieee" { target alpha*-*-* } }
+! { dg-skip-if "Denormals not supported" { spu-*-* } { "*" } { "" } }
 ! PR fortran/27021
 ! Original code submitted by Dominique d'Humieres
 ! Converted to Dejagnu for the testsuite by Steven G. Kargl
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/nearest_3.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/nearest_3.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/nearest_3.f90	2008-12-09 23:49:40.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/nearest_3.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,5 +1,6 @@
 ! { dg-do run }
 ! { dg-options "-pedantic-errors -mieee" { target alpha*-*-* sh*-*-* } } 
+! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
 !
 ! PR fortran/34209
 !
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/open_errors.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/open_errors.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/open_errors.f90	2008-04-30 13:24:46.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/open_errors.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,4 +1,4 @@
-! { dg-do run { target { ! *-*-mingw* } } }
+! { dg-do run { target { ! { *-*-mingw* spu-*-* } } } }
 ! PR30005 Enhanced error messages for OPEN
 ! Submitted by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 character(60) :: msg
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/pr20257.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/pr20257.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/pr20257.f90	2008-03-04 16:59:34.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/pr20257.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,4 +1,5 @@
 ! { dg-do run { target fd_truncate } }
+! { dg-skip-if "Too big for local store" { spu-*-* } { "*" } { "" } }
   integer,parameter :: n = 10000
   real(8) array(10000)
 
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/real_const_3.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/real_const_3.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/real_const_3.f90	2008-12-09 23:49:40.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/real_const_3.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,6 +1,7 @@
 !{ dg-do run }
 !{ dg-options "-fno-range-check" }
 !{ dg-options "-fno-range-check -mieee" { target alpha*-*-* sh*-*-* } }
+!{ dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
 ! PR19310 and PR19904, allow disabling range check during compile.
 ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 program main
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/scalar_mask_2.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/scalar_mask_2.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/scalar_mask_2.f90	2006-03-20 13:56:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/scalar_mask_2.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,4 +1,5 @@
-! { dg-do run }
+! { dg-do run { xfail spu-*-* } }
+! FAILs on SPU because of rounding error reading kinds.h
 program main
   ! Test scalar masks for different intrinsics.
   real, dimension(2,2) :: a
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/stat_1.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/stat_1.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/stat_1.f90	2008-05-18 10:55:39.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/stat_1.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,5 +1,5 @@
 ! { dg-do run { target fd_truncate } }
-! { dg-skip-if "" { *-*-mingw* } { "*" } { "" } }
+! { dg-skip-if "" { *-*-mingw* spu-*-* } { "*" } { "" } }
 ! { dg-options "-std=gnu" }
   character(len=*), parameter :: f = "testfile"
   integer :: s1(13), r1, s2(13), r2, s3(13), r3
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/stat_2.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/stat_2.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/stat_2.f90	2008-05-18 10:55:39.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/stat_2.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,5 +1,5 @@
 ! { dg-do run { target fd_truncate } }
-! { dg-skip-if "" { *-*-mingw* } { "*" } { "" } }
+! { dg-skip-if "" { *-*-mingw* spu-*-* } { "*" } { "" } }
 ! { dg-options "-std=gnu" }
   character(len=*), parameter :: f = "testfile"
   integer :: s1(13), r1, s2(13), r2, s3(13), r3
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/transfer_simplify_1.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/transfer_simplify_1.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/transfer_simplify_1.f90	2007-05-15 22:40:51.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/transfer_simplify_1.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,5 +1,6 @@
 ! { dg-do run }
 ! { dg-options "-O2" }
+! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
 ! Tests that the PRs caused by the lack of gfc_simplify_transfer are
 ! now fixed. These were brought together in the meta-bug PR31237
 ! (TRANSFER intrinsic).
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/vect/pr39318.f90 gcc-4.4.0/gcc/testsuite/gfortran.dg/vect/pr39318.f90
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.dg/vect/pr39318.f90	2009-03-02 03:52:15.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.dg/vect/pr39318.f90	2009-04-22 04:35:25.000000000 -0700
@@ -1,4 +1,4 @@
-! { dg-do compile } 
+! { dg-do compile { target fopenmp } } 
 ! { dg-options "-c -fopenmp -fexceptions -O2 -ftree-vectorize" } 
 
       subroutine adw_trajsp (F_u,i0,in,j0,jn)
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.fortran-torture/compile/pr39937.f gcc-4.4.0/gcc/testsuite/gfortran.fortran-torture/compile/pr39937.f
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.fortran-torture/compile/pr39937.f	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.fortran-torture/compile/pr39937.f	2009-04-29 07:54:54.000000000 -0700
@@ -0,0 +1,28 @@
+      SUBROUTINE DTREVC( SIDE, HOWMNY, SELECT, N, T, LDT, VL, LDVL, VR,
+     $                   LDVR, MM, M, WORK, INFO )
+      DOUBLE PRECISION   T( LDT, * ), VL( LDVL, * ), VR( LDVR, * ),
+     $                   WORK( * )
+      DOUBLE PRECISION   X( 2, 2 )
+      CALL DLALN2( .FALSE., 1, 1, SMIN, ONE, T( J, J ),
+     $                            ZERO, X, 2, SCALE, XNORM, IERR )
+      CALL DSCAL( KI, SCALE, WORK( 1+N ), 1 )
+      DO 90 J = KI - 2, 1, -1
+      IF( J.GT.JNXT )
+     $               GO TO 90
+      JNXT = J - 1
+      IF( J.GT.1 ) THEN
+          IF( T( J, J-1 ).NE.ZERO ) THEN
+              IF( WORK( J ).GT.BIGNUM / XNORM ) THEN
+                  X( 1, 1 ) = X( 1, 1 ) / XNORM
+              END IF
+          END IF
+          CALL DLALN2( .FALSE., 2, 2, SMIN, ONE,
+     $                            T( J-1, J-1 ), LDT, ONE, ONE,
+     $                            XNORM, IERR )
+          CALL DAXPY( J-2, -X( 1, 1 ), T( 1, J-1 ), 1,
+     $                           WORK( 1+N ), 1 )
+          CALL DAXPY( J-2, -X( 2, 2 ), T( 1, J ), 1,
+     $                           WORK( 1+N2 ), 1 )
+      END IF
+   90          CONTINUE
+      END
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x gcc-4.4.0/gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x	2009-04-22 04:35:25.000000000 -0700
@@ -0,0 +1,5 @@
+if [istarget "spu-*-*"] {
+    # We need -mstdmain to enable argument processing on SPU.
+    lappend additional_flags "-mstdmain"
+}
+return 0
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.x gcc-4.4.0/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.x
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.x	2004-09-12 11:07:28.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.x	2009-04-22 04:35:25.000000000 -0700
@@ -1,2 +1,6 @@
+if [istarget "spu-*-*"] {
+    # No Inf/NaN support on SPU.
+    return 1
+}
 add-ieee-options
 return 0
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_exponent.x gcc-4.4.0/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_exponent.x
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_exponent.x	2004-09-12 11:07:28.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_exponent.x	2009-04-22 04:35:25.000000000 -0700
@@ -1,2 +1,6 @@
+if [istarget "spu-*-*"] {
+    # No denormal support on SPU.
+    return 1
+}
 add-ieee-options
 return 0
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gfortran.fortran-torture/execute/nan_inf_fmt.x gcc-4.4.0/gcc/testsuite/gfortran.fortran-torture/execute/nan_inf_fmt.x
--- gcc-4.4.0.orig/gcc/testsuite/gfortran.fortran-torture/execute/nan_inf_fmt.x	2004-09-12 11:07:28.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/gfortran.fortran-torture/execute/nan_inf_fmt.x	2009-04-22 04:35:25.000000000 -0700
@@ -1,2 +1,6 @@
+if [istarget "spu-*-*"] {
+    # No Inf/NaN support on SPU.
+    return 1
+}
 add-ieee-options
 return 0
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gnat.dg/enum2.adb gcc-4.4.0/gcc/testsuite/gnat.dg/enum2.adb
--- gcc-4.4.0.orig/gcc/testsuite/gnat.dg/enum2.adb	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gnat.dg/enum2.adb	2009-04-22 15:33:59.000000000 -0700
@@ -0,0 +1,11 @@
+-- { dg-do run }
+-- { dg-options "-gnat05 -O2" }
+
+with Enum2_Pkg; use Enum2_Pkg;
+
+procedure Enum2 is
+  type Enum is (A, B, C, D);
+  Table : array (B .. C, 1 .. 1) of F_String := (others => (others => Null_String));
+begin
+  Table := (others => (others => Null_String));
+end;
diff -Naur gcc-4.4.0.orig/gcc/testsuite/gnat.dg/enum2_pkg.ads gcc-4.4.0/gcc/testsuite/gnat.dg/enum2_pkg.ads
--- gcc-4.4.0.orig/gcc/testsuite/gnat.dg/enum2_pkg.ads	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/gnat.dg/enum2_pkg.ads	2009-04-22 15:33:59.000000000 -0700
@@ -0,0 +1,8 @@
+with Ada.Finalization; use Ada.Finalization;
+
+package Enum2_Pkg is
+  type F_String is new Controlled with record
+    Data : access String;
+  end record;
+  Null_String : constant F_String := (Controlled with Data => null);
+end Enum2_Pkg;
diff -Naur gcc-4.4.0.orig/gcc/testsuite/lib/gcc-defs.exp gcc-4.4.0/gcc/testsuite/lib/gcc-defs.exp
--- gcc-4.4.0.orig/gcc/testsuite/lib/gcc-defs.exp	2009-03-19 15:10:22.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/lib/gcc-defs.exp	2009-04-22 04:35:25.000000000 -0700
@@ -155,6 +155,10 @@
     if [regexp "(^|\n)\[^\n\]*: region \[^\n\]* is full" $output] {
 	return "memory full"
     }
+    if {[istarget spu-*-*] && \
+            [string match "*exceeds local store*" $output]} {
+	return "memory full"
+    }
     return ""
 }
 
diff -Naur gcc-4.4.0.orig/gcc/testsuite/lib/gcc-dg.exp gcc-4.4.0/gcc/testsuite/lib/gcc-dg.exp
--- gcc-4.4.0.orig/gcc/testsuite/lib/gcc-dg.exp	2009-02-20 07:20:38.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/lib/gcc-dg.exp	2009-04-22 04:35:25.000000000 -0700
@@ -186,7 +186,7 @@
     # Likewise, if we see ".text exceeds local store range" or
     # similar.
     if {[string match "spu-*" $system] && \
-	    [string match "*exceeds local store range*" $text]} {
+	    [string match "*exceeds local store*" $text]} {
 	# The format here is important.  See dg.exp.
 	return "::unsupported::memory full"
     }
diff -Naur gcc-4.4.0.orig/gcc/testsuite/lib/gfortran.exp gcc-4.4.0/gcc/testsuite/lib/gfortran.exp
--- gcc-4.4.0.orig/gcc/testsuite/lib/gfortran.exp	2009-02-20 07:20:38.000000000 -0800
+++ gcc-4.4.0/gcc/testsuite/lib/gfortran.exp	2009-04-22 04:35:25.000000000 -0700
@@ -27,6 +27,7 @@
 load_lib gcc-defs.exp
 load_lib timeout.exp
 load_lib target-libpath.exp
+load_lib target-supports.exp
 
 #
 # GFORTRAN_UNDER_TEST is the compiler under test.
@@ -177,6 +178,13 @@
 	lappend ALWAYS_GFORTRANFLAGS "additional_flags=$TOOL_OPTIONS"
     }
 
+    # On the SPU, most of the fortran test cases exceed local store size.
+    # Use automatic overlay support to make them fit.
+    if { [check_effective_target_spu_auto_overlay] } {
+	lappend ALWAYS_GFORTRANFLAGS "ldflags=-Wl,--auto-overlay"
+	lappend ALWAYS_GFORTRANFLAGS "ldflags=-Wl,--reserved-space=131072"
+    }
+
     verbose -log "ALWAYS_GFORTRANFLAGS set to $ALWAYS_GFORTRANFLAGS"
 
     verbose "gfortran is initialized" 3
diff -Naur gcc-4.4.0.orig/gcc/testsuite/lib/target-supports.exp gcc-4.4.0/gcc/testsuite/lib/target-supports.exp
--- gcc-4.4.0.orig/gcc/testsuite/lib/target-supports.exp	2009-03-16 14:11:57.000000000 -0700
+++ gcc-4.4.0/gcc/testsuite/lib/target-supports.exp	2009-04-28 13:57:42.000000000 -0700
@@ -544,8 +544,6 @@
 }
 
 # Return 1 if thread local storage (TLS) is supported, 0 otherwise.
-#
-# This won't change for different subtargets so cache the result.
 
 proc check_effective_target_tls {} {
     return [check_no_compiler_messages tls assembly {
@@ -556,8 +554,6 @@
 }
 
 # Return 1 if *native* thread local storage (TLS) is supported, 0 otherwise.
-#
-# This won't change for different subtargets so cache the result.
 
 proc check_effective_target_tls_native {} {
     # VxWorks uses emulated TLS machinery, but with non-standard helper
@@ -575,8 +571,6 @@
 }
 
 # Return 1 if TLS executables can run correctly, 0 otherwise.
-#
-# This won't change for different subtargets so cache the result.
 
 proc check_effective_target_tls_runtime {} {
     return [check_runtime tls_runtime {
diff -Naur gcc-4.4.0.orig/gcc/toplev.c gcc-4.4.0/gcc/toplev.c
--- gcc-4.4.0.orig/gcc/toplev.c	2008-12-09 13:25:11.000000000 -0800
+++ gcc-4.4.0/gcc/toplev.c	2009-04-28 21:57:17.000000000 -0700
@@ -1128,10 +1128,14 @@
 	   indent, __VERSION__);
 
   /* We need to stringify the GMP macro values.  Ugh, gmp_version has
-     two string formats, "i.j.k" and "i.j" when k is zero.  */
+     two string formats, "i.j.k" and "i.j" when k is zero.  As of
+     gmp-4.3.0, GMP always uses the 3 number format.  */
 #define GCC_GMP_STRINGIFY_VERSION3(X) #X
 #define GCC_GMP_STRINGIFY_VERSION2(X) GCC_GMP_STRINGIFY_VERSION3(X)
-#if __GNU_MP_VERSION_PATCHLEVEL == 0
+#define GCC_GMP_VERSION_NUM(X,Y,Z) (((X) << 16L) | ((Y) << 8) | (Z))
+#define GCC_GMP_VERSION \
+  GCC_GMP_VERSION_NUM(__GNU_MP_VERSION, __GNU_MP_VERSION_MINOR, __GNU_MP_VERSION_PATCHLEVEL)
+#if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,3,0) && __GNU_MP_VERSION_PATCHLEVEL == 0
 #define GCC_GMP_STRINGIFY_VERSION GCC_GMP_STRINGIFY_VERSION2(__GNU_MP_VERSION) "." \
   GCC_GMP_STRINGIFY_VERSION2(__GNU_MP_VERSION_MINOR)
 #else
diff -Naur gcc-4.4.0.orig/gcc/tree-ssa-ccp.c gcc-4.4.0/gcc/tree-ssa-ccp.c
--- gcc-4.4.0.orig/gcc/tree-ssa-ccp.c	2009-04-16 02:39:20.000000000 -0700
+++ gcc-4.4.0/gcc/tree-ssa-ccp.c	2009-04-22 12:55:24.000000000 -0700
@@ -1290,7 +1290,9 @@
 	if (TREE_CODE (base) == SSA_NAME
 	    && (value = get_value (base))
 	    && value->lattice_val == CONSTANT
-	    && TREE_CODE (value->value) == ADDR_EXPR)
+	    && TREE_CODE (value->value) == ADDR_EXPR
+	    && useless_type_conversion_p (TREE_TYPE (t),
+					  TREE_TYPE (TREE_TYPE (value->value))))
 	  return fold_const_aggregate_ref (TREE_OPERAND (value->value, 0));
 	break;
       }
diff -Naur gcc-4.4.0.orig/gcc/tree-ssa-live.c gcc-4.4.0/gcc/tree-ssa-live.c
--- gcc-4.4.0.orig/gcc/tree-ssa-live.c	2009-03-17 10:53:01.000000000 -0700
+++ gcc-4.4.0/gcc/tree-ssa-live.c	2009-04-22 15:24:45.000000000 -0700
@@ -595,6 +595,8 @@
    /* Verfify that only blocks with source location set
       are entry points to the inlined functions.  */
      gcc_assert (BLOCK_SOURCE_LOCATION (scope) == UNKNOWN_LOCATION);
+
+   TREE_USED (scope) = !unused;
    return unused;
 }
 
diff -Naur gcc-4.4.0.orig/gcc/version.c gcc-4.4.0/gcc/version.c
--- gcc-4.4.0.orig/gcc/version.c	2007-08-21 08:35:30.000000000 -0700
+++ gcc-4.4.0/gcc/version.c	2009-04-29 14:17:15.000000000 -0700
@@ -14,4 +14,4 @@
    Makefile.  */
 
 const char version_string[] = BASEVER DATESTAMP DEVPHASE REVISION;
-const char pkgversion_string[] = PKGVERSION;
+const char pkgversion_string[] = "(GCC for Cross-LFS 4.4.0.20090429) ";
diff -Naur gcc-4.4.0.orig/libcpp/po/ChangeLog gcc-4.4.0/libcpp/po/ChangeLog
--- gcc-4.4.0.orig/libcpp/po/ChangeLog	2009-04-21 01:47:21.000000000 -0700
+++ gcc-4.4.0/libcpp/po/ChangeLog	2009-04-22 09:35:05.000000000 -0700
@@ -1,3 +1,7 @@
+2009-04-22  Joseph Myers  <joseph@codesourcery.com>
+
+	* cpplib.pot: Regenerate.
+
 2009-04-21  Release Manager
 
 	* GCC 4.4.0 released.
diff -Naur gcc-4.4.0.orig/libcpp/po/cpplib.pot gcc-4.4.0/libcpp/po/cpplib.pot
--- gcc-4.4.0.orig/libcpp/po/cpplib.pot	2009-03-28 00:26:17.000000000 -0700
+++ gcc-4.4.0/libcpp/po/cpplib.pot	2009-04-22 09:35:05.000000000 -0700
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2009-03-28 07:24+0000\n"
+"POT-Creation-Date: 2009-04-22 16:32+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -74,7 +74,7 @@
 msgstr ""
 
 #: charset.c:1039
-#: lex.c:485
+#: lex.c:486
 msgid "'$' in identifier or number"
 msgstr ""
 
@@ -398,8 +398,8 @@
 msgstr ""
 
 #: directives-only.c:222
-#: lex.c:1148
-#: traditional.c:162
+#: lex.c:1149
+#: traditional.c:163
 msgid "unterminated comment"
 msgstr ""
 
@@ -424,203 +424,203 @@
 msgid "%s: %s"
 msgstr ""
 
-#: expr.c:262
+#: expr.c:261
 msgid "too many decimal points in number"
 msgstr ""
 
-#: expr.c:291
-#: expr.c:366
+#: expr.c:290
+#: expr.c:365
 msgid "fixed-point constants are a GCC extension"
 msgstr ""
 
-#: expr.c:304
+#: expr.c:303
 #, c-format
 msgid "invalid digit \"%c\" in binary constant"
 msgstr ""
 
-#: expr.c:306
+#: expr.c:305
 #, c-format
 msgid "invalid digit \"%c\" in octal constant"
 msgstr ""
 
-#: expr.c:314
+#: expr.c:313
 msgid "invalid prefix \"0b\" for floating constant"
 msgstr ""
 
-#: expr.c:320
+#: expr.c:319
 msgid "use of C99 hexadecimal floating constant"
 msgstr ""
 
-#: expr.c:329
+#: expr.c:328
 msgid "exponent has no digits"
 msgstr ""
 
-#: expr.c:336
+#: expr.c:335
 msgid "hexadecimal floating constants require an exponent"
 msgstr ""
 
-#: expr.c:342
+#: expr.c:341
 #, c-format
 msgid "invalid suffix \"%.*s\" on floating constant"
 msgstr ""
 
-#: expr.c:352
-#: expr.c:394
+#: expr.c:351
+#: expr.c:393
 #, c-format
 msgid "traditional C rejects the \"%.*s\" suffix"
 msgstr ""
 
-#: expr.c:359
+#: expr.c:358
 #, c-format
 msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
 msgstr ""
 
-#: expr.c:370
+#: expr.c:369
 msgid "decimal float constants are a GCC extension"
 msgstr ""
 
-#: expr.c:380
+#: expr.c:379
 #, c-format
 msgid "invalid suffix \"%.*s\" on integer constant"
 msgstr ""
 
-#: expr.c:402
+#: expr.c:401
 msgid "use of C99 long long integer constant"
 msgstr ""
 
-#: expr.c:410
+#: expr.c:409
 msgid "imaginary constants are a GCC extension"
 msgstr ""
 
-#: expr.c:413
+#: expr.c:412
 msgid "binary constants are a GCC extension"
 msgstr ""
 
-#: expr.c:506
+#: expr.c:505
 msgid "integer constant is too large for its type"
 msgstr ""
 
-#: expr.c:518
+#: expr.c:517
 msgid "integer constant is so large that it is unsigned"
 msgstr ""
 
-#: expr.c:613
+#: expr.c:612
 msgid "missing ')' after \"defined\""
 msgstr ""
 
-#: expr.c:620
+#: expr.c:619
 msgid "operator \"defined\" requires an identifier"
 msgstr ""
 
-#: expr.c:628
+#: expr.c:627
 #, c-format
 msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
 msgstr ""
 
-#: expr.c:638
+#: expr.c:637
 msgid "this use of \"defined\" may not be portable"
 msgstr ""
 
-#: expr.c:691
+#: expr.c:690
 msgid "floating constant in preprocessor expression"
 msgstr ""
 
-#: expr.c:697
+#: expr.c:696
 msgid "imaginary number in preprocessor expression"
 msgstr ""
 
-#: expr.c:744
+#: expr.c:743
 #, c-format
 msgid "\"%s\" is not defined"
 msgstr ""
 
-#: expr.c:756
+#: expr.c:755
 msgid "assertions are a GCC extension"
 msgstr ""
 
-#: expr.c:759
+#: expr.c:758
 msgid "assertions are a deprecated extension"
 msgstr ""
 
-#: expr.c:892
-#: expr.c:921
+#: expr.c:891
+#: expr.c:920
 #, c-format
 msgid "missing binary operator before token \"%s\""
 msgstr ""
 
-#: expr.c:912
+#: expr.c:911
 #, c-format
 msgid "token \"%s\" is not valid in preprocessor expressions"
 msgstr ""
 
-#: expr.c:929
+#: expr.c:928
 msgid "missing expression between '(' and ')'"
 msgstr ""
 
-#: expr.c:932
+#: expr.c:931
 #, c-format
 msgid "%s with no expression"
 msgstr ""
 
-#: expr.c:935
+#: expr.c:934
 #, c-format
 msgid "operator '%s' has no right operand"
 msgstr ""
 
-#: expr.c:940
+#: expr.c:939
 #, c-format
 msgid "operator '%s' has no left operand"
 msgstr ""
 
-#: expr.c:966
+#: expr.c:965
 msgid " ':' without preceding '?'"
 msgstr ""
 
-#: expr.c:994
+#: expr.c:993
 #, c-format
 msgid "unbalanced stack in %s"
 msgstr ""
 
-#: expr.c:1014
+#: expr.c:1013
 #, c-format
 msgid "impossible operator '%u'"
 msgstr ""
 
-#: expr.c:1115
+#: expr.c:1114
 msgid "missing ')' in expression"
 msgstr ""
 
-#: expr.c:1144
+#: expr.c:1143
 msgid "'?' without following ':'"
 msgstr ""
 
-#: expr.c:1154
+#: expr.c:1153
 msgid "integer overflow in preprocessor expression"
 msgstr ""
 
-#: expr.c:1159
+#: expr.c:1158
 msgid "missing '(' in expression"
 msgstr ""
 
-#: expr.c:1191
+#: expr.c:1190
 #, c-format
 msgid "the left operand of \"%s\" changes sign when promoted"
 msgstr ""
 
-#: expr.c:1196
+#: expr.c:1195
 #, c-format
 msgid "the right operand of \"%s\" changes sign when promoted"
 msgstr ""
 
-#: expr.c:1455
+#: expr.c:1454
 msgid "traditional C rejects the unary plus operator"
 msgstr ""
 
-#: expr.c:1538
+#: expr.c:1537
 msgid "comma operator in operand of #if"
 msgstr ""
 
-#: expr.c:1670
+#: expr.c:1669
 msgid "division by zero in #if"
 msgstr ""
 
@@ -660,116 +660,116 @@
 msgid "Multiple include guards may be useful for:\n"
 msgstr ""
 
-#: init.c:451
+#: init.c:452
 msgid "cppchar_t must be an unsigned type"
 msgstr ""
 
-#: init.c:455
+#: init.c:456
 #, c-format
 msgid ""
 "preprocessor arithmetic has maximum precision of %lu bits; target requires %"
 "lu bits"
 msgstr ""
 
-#: init.c:462
+#: init.c:463
 msgid "CPP arithmetic must be at least as precise as a target int"
 msgstr ""
 
-#: init.c:465
+#: init.c:466
 msgid "target char is less than 8 bits wide"
 msgstr ""
 
-#: init.c:469
+#: init.c:470
 msgid "target wchar_t is narrower than target char"
 msgstr ""
 
-#: init.c:473
+#: init.c:474
 msgid "target int is narrower than target char"
 msgstr ""
 
-#: init.c:478
+#: init.c:479
 msgid "CPP half-integer narrower than CPP character"
 msgstr ""
 
-#: init.c:482
+#: init.c:483
 #, c-format
 msgid ""
 "CPP on this host cannot handle wide character constants over %lu bits, but "
 "the target requires %lu bits"
 msgstr ""
 
-#: lex.c:284
+#: lex.c:285
 msgid "backslash and newline separated by space"
 msgstr ""
 
-#: lex.c:289
+#: lex.c:290
 msgid "backslash-newline at end of file"
 msgstr ""
 
-#: lex.c:304
+#: lex.c:305
 #, c-format
 msgid "trigraph ??%c converted to %c"
 msgstr ""
 
-#: lex.c:311
+#: lex.c:312
 #, c-format
 msgid "trigraph ??%c ignored, use -trigraphs to enable"
 msgstr ""
 
-#: lex.c:357
+#: lex.c:358
 msgid "\"/*\" within comment"
 msgstr ""
 
-#: lex.c:415
+#: lex.c:416
 #, c-format
 msgid "%s in preprocessing directive"
 msgstr ""
 
-#: lex.c:424
+#: lex.c:425
 msgid "null character(s) ignored"
 msgstr ""
 
-#: lex.c:461
+#: lex.c:462
 #, c-format
 msgid "`%.*s' is not in NFKC"
 msgstr ""
 
-#: lex.c:464
+#: lex.c:465
 #, c-format
 msgid "`%.*s' is not in NFC"
 msgstr ""
 
-#: lex.c:552
+#: lex.c:553
 #, c-format
 msgid "attempt to use poisoned \"%s\""
 msgstr ""
 
-#: lex.c:560
+#: lex.c:561
 msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
 msgstr ""
 
-#: lex.c:674
+#: lex.c:675
 msgid "null character(s) preserved in literal"
 msgstr ""
 
-#: lex.c:677
+#: lex.c:678
 #, c-format
 msgid "missing terminating %c character"
 msgstr ""
 
-#: lex.c:1159
+#: lex.c:1160
 msgid "C++ style comments are not allowed in ISO C90"
 msgstr ""
 
-#: lex.c:1161
+#: lex.c:1162
 msgid "(this will be reported only once per input file)"
 msgstr ""
 
-#: lex.c:1166
+#: lex.c:1167
 msgid "multi-line comment"
 msgstr ""
 
-#: lex.c:1480
+#: lex.c:1481
 #, c-format
 msgid "unspellable token %s"
 msgstr ""
@@ -833,7 +833,7 @@
 msgstr ""
 
 #: macro.c:731
-#: traditional.c:680
+#: traditional.c:681
 #, c-format
 msgid "unterminated argument list invoking macro \"%s\""
 msgstr ""
@@ -850,67 +850,67 @@
 "C90 and ISO C++98"
 msgstr ""
 
-#: macro.c:1453
+#: macro.c:1479
 #, c-format
 msgid "duplicate macro parameter \"%s\""
 msgstr ""
 
-#: macro.c:1499
+#: macro.c:1525
 #, c-format
 msgid "\"%s\" may not appear in macro parameter list"
 msgstr ""
 
-#: macro.c:1507
+#: macro.c:1533
 msgid "macro parameters must be comma-separated"
 msgstr ""
 
-#: macro.c:1524
+#: macro.c:1550
 msgid "parameter name missing"
 msgstr ""
 
-#: macro.c:1541
+#: macro.c:1567
 msgid "anonymous variadic macros were introduced in C99"
 msgstr ""
 
-#: macro.c:1546
+#: macro.c:1572
 msgid "ISO C does not permit named variadic macros"
 msgstr ""
 
-#: macro.c:1555
+#: macro.c:1581
 msgid "missing ')' in macro parameter list"
 msgstr ""
 
-#: macro.c:1604
+#: macro.c:1630
 msgid "'##' cannot appear at either end of a macro expansion"
 msgstr ""
 
-#: macro.c:1638
+#: macro.c:1664
 msgid "ISO C99 requires whitespace after the macro name"
 msgstr ""
 
-#: macro.c:1662
+#: macro.c:1688
 msgid "missing whitespace after the macro name"
 msgstr ""
 
-#: macro.c:1692
+#: macro.c:1718
 msgid "'#' is not followed by a macro parameter"
 msgstr ""
 
-#: macro.c:1811
+#: macro.c:1837
 #, c-format
 msgid "\"%s\" redefined"
 msgstr ""
 
-#: macro.c:1816
+#: macro.c:1842
 msgid "this is the location of the previous definition"
 msgstr ""
 
-#: macro.c:1877
+#: macro.c:1903
 #, c-format
 msgid "macro argument \"%s\" would be stringified in traditional C"
 msgstr ""
 
-#: macro.c:1900
+#: macro.c:1926
 #, c-format
 msgid "invalid hash type %d in cpp_macro_definition"
 msgstr ""
@@ -954,11 +954,11 @@
 msgid "while reading precompiled header"
 msgstr ""
 
-#: traditional.c:750
+#: traditional.c:751
 #, c-format
 msgid "detected recursion whilst expanding macro \"%s\""
 msgstr ""
 
-#: traditional.c:968
+#: traditional.c:969
 msgid "syntax error in macro parameter list"
 msgstr ""
diff -Naur gcc-4.4.0.orig/libjava/ChangeLog gcc-4.4.0/libjava/ChangeLog
--- gcc-4.4.0.orig/libjava/ChangeLog	2009-04-21 01:48:20.000000000 -0700
+++ gcc-4.4.0/libjava/ChangeLog	2009-04-28 05:51:10.000000000 -0700
@@ -1,3 +1,27 @@
+2009-04-28  Andrew Haley  <aph@redhat.com>
+
+	PR libgcj/39899
+	* Makefile.am (libgcj_tools_la_LDFLAGS): Add
+	-fno-bootstrap-classes to libgcj_tools_la_GCJFLAGS.
+	* Makefile.in: Regenerate.
+
+2009-04-26  Matthias Klose <doko@ubuntu.com>
+
+	* contrib/aot-compile.in: Print diagnostics for malformed or invalid
+	class files.
+	* contrib/generate-cacerts.pl.in: New.
+	* configure.ac (AC_CONFIG_FILES): Add generate-cacerts.pl.
+
+2009-04-24  Matthias Klose  <doko@ubuntu.com>
+
+	* configure.ac: Create missing directory gnu/java/security/jce/prng.
+	* configure: Regenerate.
+
+2009-04-23  Matthias Klose  <doko@ubuntu.com>
+
+	* Makefile.am (install-data-local): Fix symlinks to header files.
+	* Makefile.in: Regenerate.
+
 2009-04-21  Release Manager
 
 	* GCC 4.4.0 released.
diff -Naur gcc-4.4.0.orig/libjava/configure gcc-4.4.0/libjava/configure
--- gcc-4.4.0.orig/libjava/configure	2009-04-21 02:08:08.000000000 -0700
+++ gcc-4.4.0/libjava/configure	2009-04-26 07:24:38.000000000 -0700
@@ -19141,6 +19141,8 @@
 
 
 # Likewise for natVMSecureRandom.cc
+test -d gnu/java/security || mkdir gnu/java/security
+test -d gnu/java/security/jce || mkdir gnu/java/security/jce
 test -d gnu/java/security/jce/prng || mkdir gnu/java/security/jce/prng
           ac_config_links="$ac_config_links gnu/java/security/jce/prng/natVMSecureRandom.cc:gnu/java/security/jce/prng/natVMSecureRandom${FILE-${PLATFORM}}.cc"
 
@@ -28310,7 +28312,7 @@
 
 fi
 
-                                                                                                              ac_config_files="$ac_config_files Makefile libgcj.pc libgcj.spec libgcj-test.spec gcj/Makefile include/Makefile testsuite/Makefile contrib/aotcompile.py contrib/aot-compile contrib/aot-compile-rpm contrib/rebuild-gcj-db"
+                                                                                                                        ac_config_files="$ac_config_files Makefile libgcj.pc libgcj.spec libgcj-test.spec gcj/Makefile include/Makefile testsuite/Makefile contrib/aotcompile.py contrib/aot-compile contrib/aot-compile-rpm contrib/generate-cacerts.pl contrib/rebuild-gcj-db"
 
 
 if test ${multilib} = yes; then
@@ -29560,6 +29562,7 @@
   "contrib/aotcompile.py" ) CONFIG_FILES="$CONFIG_FILES contrib/aotcompile.py" ;;
   "contrib/aot-compile" ) CONFIG_FILES="$CONFIG_FILES contrib/aot-compile" ;;
   "contrib/aot-compile-rpm" ) CONFIG_FILES="$CONFIG_FILES contrib/aot-compile-rpm" ;;
+  "contrib/generate-cacerts.pl" ) CONFIG_FILES="$CONFIG_FILES contrib/generate-cacerts.pl" ;;
   "contrib/rebuild-gcj-db" ) CONFIG_FILES="$CONFIG_FILES contrib/rebuild-gcj-db" ;;
   "scripts/jar" ) CONFIG_FILES="$CONFIG_FILES scripts/jar" ;;
   "include/platform.h" ) CONFIG_LINKS="$CONFIG_LINKS include/platform.h:include/$PLATFORMH" ;;
diff -Naur gcc-4.4.0.orig/libjava/configure.ac gcc-4.4.0/libjava/configure.ac
--- gcc-4.4.0.orig/libjava/configure.ac	2009-04-09 14:54:28.000000000 -0700
+++ gcc-4.4.0/libjava/configure.ac	2009-04-26 07:24:38.000000000 -0700
@@ -834,6 +834,8 @@
 AC_CONFIG_LINKS(gnu/java/nio/channels/natFileChannelImpl.cc:gnu/java/nio/channels/natFileChannel${FILE-${PLATFORM}}.cc)
 
 # Likewise for natVMSecureRandom.cc
+test -d gnu/java/security || mkdir gnu/java/security
+test -d gnu/java/security/jce || mkdir gnu/java/security/jce
 test -d gnu/java/security/jce/prng || mkdir gnu/java/security/jce/prng
 AC_CONFIG_LINKS(gnu/java/security/jce/prng/natVMSecureRandom.cc:gnu/java/security/jce/prng/natVMSecureRandom${FILE-${PLATFORM}}.cc)
 
@@ -1921,6 +1923,7 @@
 contrib/aotcompile.py
 contrib/aot-compile
 contrib/aot-compile-rpm
+contrib/generate-cacerts.pl
 contrib/rebuild-gcj-db
 ])
 
diff -Naur gcc-4.4.0.orig/libjava/contrib/aotcompile.py.in gcc-4.4.0/libjava/contrib/aotcompile.py.in
--- gcc-4.4.0.orig/libjava/contrib/aotcompile.py.in	2008-07-02 06:17:54.000000000 -0700
+++ gcc-4.4.0/libjava/contrib/aotcompile.py.in	2009-04-26 07:24:38.000000000 -0700
@@ -177,11 +177,14 @@
     
     def __init__(self, path):
         self.path, self.classes, self.blocks = path, {}, None
+        self.classnames = {}
 
-    def addClass(self, bytes):
+    def addClass(self, bytes, name):
         """Subclasses call this from their __init__ method for
         every class they find."""
-        self.classes[md5.new(bytes).digest()] = bytes
+        digest = md5.new(bytes).digest()
+        self.classes[digest] = bytes
+        self.classnames[digest] = name
 
     def __makeBlocks(self):
         """Split self.classes into chunks that can be compiled to
@@ -200,7 +203,12 @@
         if the job is subsetted."""
         names = {}
         for hash, bytes in self.classes.items():
-            name = classname(bytes)
+            try:
+                name = classname(bytes)
+            except:
+                warn("job %s: class %s malformed or not a valid class file" \
+                     % (self.path, self.classnames[hash]))
+                raise
             if not names.has_key(name):
                 names[name] = []
             names[name].append(hash)
@@ -302,7 +310,7 @@
             if bytes.startswith(ZIPMAGIC):
                 self._walk(zipfile.ZipFile(StringIO.StringIO(bytes)))
             elif bytes.startswith(CLASSMAGIC):
-                self.addClass(bytes)
+                self.addClass(bytes, name)
 
 class DirJob(Job):
     """A Job whose origin was a directory of classfiles."""
@@ -319,7 +327,7 @@
             fp = open(path, "r")
             magic = fp.read(4)
             if magic == CLASSMAGIC:
-                self.addClass(magic + fp.read())
+                self.addClass(magic + fp.read(), name)
     
 def weed_jobs(jobs):
     """Remove any jarfiles that are completely contained within
diff -Naur gcc-4.4.0.orig/libjava/contrib/generate-cacerts.pl.in gcc-4.4.0/libjava/contrib/generate-cacerts.pl.in
--- gcc-4.4.0.orig/libjava/contrib/generate-cacerts.pl.in	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/libjava/contrib/generate-cacerts.pl.in	2009-04-26 07:24:38.000000000 -0700
@@ -0,0 +1,106 @@
+#!/usr/bin/perl
+
+# Copyright (C) 2007, 2009 Free Software Foundation
+#
+# 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 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.
+
+# generate-cacerts.pl generates a gkeytool keystore named 'cacerts'
+# from OpenSSL's certificate bundle.
+
+# First extract each of OpenSSL's bundled certificates into its own
+# aliased filename.
+chomp($file=@ARGV[0]);
+$file = "/etc/pki/tls/cert.pem" unless $file ne "";
+open(CERTS, $file);
+@certs = <CERTS>;
+close(CERTS);
+
+$pem_file_number = 0;
+$writing_cert = 0;
+foreach $cert (@certs)
+{
+	 if ($cert eq "-----BEGIN CERTIFICATE-----\n")
+	 {
+		  if ($writing_cert != 0)
+		  {
+				die "$file is malformed.";
+		  }
+		  $pem_file_number++;
+		  # Numbering each file guarantees that cert aliases will be
+		  # unique.
+		  $pem_file_name = "$pem_file_number$cert_alias.pem";
+		  $writing_cert = 1;
+		  open(PEM, ">$pem_file_name");
+		  print PEM $cert;
+	 }
+	 elsif ($cert eq "-----END CERTIFICATE-----\n")
+	 {
+		  $writing_cert = 0;
+		  print PEM $cert;
+		  close(PEM);
+	 }
+	 elsif ($cert =~ /Issuer: /)
+	 {
+		  # Generate an alias using the OU and CN attributes of the
+		  # Issuer field if both are present, otherwise use only the CN
+		  # attribute.  The Issuer field must have either the OU or the
+		  # CN attribute.
+		  $_ = $cert;
+		  if ($cert =~ /OU=/)
+		  {
+				s/Issuer:.*?OU=//;
+				# Remove other occurrences of OU=.
+				s/OU=.*CN=//;
+				# Remove CN= if there were not other occurrences of OU=.
+				s/CN=//;
+		  }
+		  elsif ($cert =~ /CN=/)
+		  {
+				s/Issuer:.*CN=//;
+		  }
+		  s/\W//g;
+		  tr/A-Z/a-z/;
+		  $cert_alias = $_
+	 }
+	 else
+	 {
+		  if ($writing_cert == 1)
+		  {
+				print PEM $cert;
+		  }
+	 }
+}
+
+# Check that the correct number of .pem files were produced.
+@pem_files = <*.pem>;
+if (@pem_files != $pem_file_number)
+{
+	 die "Number of .pem files produced does not match".
+		  " number of certs read from $file.";
+}
+
+# Now store each cert in the 'cacerts' file using gkeytool.
+$certs_written_count = 0;
+foreach $pem_file (@pem_files)
+{
+	 system "yes | gkeytool@gcc_suffix@ -import -alias `basename $pem_file .pem`".
+		  " -keystore cacerts -storepass '' -file $pem_file".
+		  " 2>&1 >/dev/null";
+	 unlink($pem_file);
+	 $certs_written_count++;
+}
+
+# Check that the correct number of certs were added to the keystore.
+if ($certs_written_count != $pem_file_number)
+{
+	 die "Number of certs added to keystore does not match".
+		  " number of certs read from $file.";
+}
diff -Naur gcc-4.4.0.orig/libjava/Makefile.am gcc-4.4.0/libjava/Makefile.am
--- gcc-4.4.0.orig/libjava/Makefile.am	2009-03-03 09:03:51.000000000 -0800
+++ gcc-4.4.0/libjava/Makefile.am	2009-04-28 05:51:10.000000000 -0700
@@ -305,8 +305,15 @@
 ## compiled.
 EXTRA_libgcj_la_SOURCES = java/lang/Object.java
 
+# We compile libgcj_tools with -findirect-dispatch so that they can
+# depend on external classes: in particular, gjdoc uses antlr.  In
+# addition, -fno-bootstrap-classes ensures that the tools are loaded
+# by the system class loader rather than the bootstrap class loader:
+# only core library classes should be loaded by the bootstrap loader.
 libgcj_tools_la_SOURCES = classpath/tools/tools.zip
-libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch -fno-indirect-classes  -fsource-filename=$(here)/classpath/tools/all-classes.lst
+libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch \
+ -fno-bootstrap-classes -fno-indirect-classes \
+ -fsource-filename=$(here)/classpath/tools/all-classes.lst
 libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
  -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
  $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
@@ -578,6 +585,8 @@
 	RELATIVE=$$(relative $(DESTDIR)$(bindir) $(DESTDIR)$(SDK_BIN_DIR)); \
 	ln -sf $$RELATIVE/`echo gij | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \
 	  $(DESTDIR)$(SDK_BIN_DIR)/java; \
+	ln -sf $$RELATIVE/`echo gcj | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \
+	  $(DESTDIR)$(SDK_BIN_DIR)/javac; \
 	ln -sf $$RELATIVE/`echo gjar | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \
 	  $(DESTDIR)$(SDK_BIN_DIR)/jar; \
 	ln -sf $$RELATIVE/`echo gjdoc | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \
diff -Naur gcc-4.4.0.orig/libjava/Makefile.in gcc-4.4.0/libjava/Makefile.in
--- gcc-4.4.0.orig/libjava/Makefile.in	2009-04-21 02:08:08.000000000 -0700
+++ gcc-4.4.0/libjava/Makefile.in	2009-04-28 05:51:10.000000000 -0700
@@ -72,6 +72,7 @@
 	$(top_srcdir)/contrib/aot-compile-rpm.in \
 	$(top_srcdir)/contrib/aot-compile.in \
 	$(top_srcdir)/contrib/aotcompile.py.in \
+	$(top_srcdir)/contrib/generate-cacerts.pl.in \
 	$(top_srcdir)/contrib/rebuild-gcj-db.in \
 	$(top_srcdir)/scripts/jar.in COPYING ChangeLog NEWS THANKS
 @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@am__append_19 = gen-from-JIS
@@ -111,9 +112,10 @@
 	$(top_builddir)/gcj/libgcj-config.h
 CONFIG_CLEAN_FILES = libgcj.pc libgcj.spec libgcj-test.spec \
 	contrib/aotcompile.py contrib/aot-compile \
-	contrib/aot-compile-rpm contrib/rebuild-gcj-db scripts/jar \
-	java/io/natFile.cc java/lang/natConcreteProcess.cc \
-	java/net/natVMInetAddress.cc java/net/natVMNetworkInterface.cc \
+	contrib/aot-compile-rpm contrib/generate-cacerts.pl \
+	contrib/rebuild-gcj-db scripts/jar java/io/natFile.cc \
+	java/lang/natConcreteProcess.cc java/net/natVMInetAddress.cc \
+	java/net/natVMNetworkInterface.cc \
 	gnu/java/net/natPlainSocketImpl.cc \
 	gnu/java/net/natPlainDatagramSocketImpl.cc \
 	gnu/java/nio/natVMPipe.cc gnu/java/nio/natVMSelector.cc \
@@ -1028,8 +1030,17 @@
 	$(libgcj_la_LIBADD) $(am__append_18)
 libgcj_la_LINK = $(LIBLINK)
 EXTRA_libgcj_la_SOURCES = java/lang/Object.java
+
+# We compile libgcj_tools with -findirect-dispatch so that they can
+# depend on external classes: in particular, gjdoc uses antlr.  In
+# addition, -fno-bootstrap-classes ensures that the tools are loaded
+# by the system class loader rather than the bootstrap class loader:
+# only core library classes should be loaded by the bootstrap loader.
 libgcj_tools_la_SOURCES = classpath/tools/tools.zip
-libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch -fno-indirect-classes  -fsource-filename=$(here)/classpath/tools/all-classes.lst
+libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch \
+ -fno-bootstrap-classes -fno-indirect-classes \
+ -fsource-filename=$(here)/classpath/tools/all-classes.lst
+
 libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
  -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
  $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
@@ -8686,6 +8697,8 @@
 	cd $(top_builddir) && $(SHELL) ./config.status $@
 contrib/aot-compile-rpm: $(top_builddir)/config.status $(top_srcdir)/contrib/aot-compile-rpm.in
 	cd $(top_builddir) && $(SHELL) ./config.status $@
+contrib/generate-cacerts.pl: $(top_builddir)/config.status $(top_srcdir)/contrib/generate-cacerts.pl.in
+	cd $(top_builddir) && $(SHELL) ./config.status $@
 contrib/rebuild-gcj-db: $(top_builddir)/config.status $(top_srcdir)/contrib/rebuild-gcj-db.in
 	cd $(top_builddir) && $(SHELL) ./config.status $@
 scripts/jar: $(top_builddir)/config.status $(top_srcdir)/scripts/jar.in
@@ -12425,6 +12438,8 @@
 @CREATE_JAVA_HOME_TRUE@	RELATIVE=$$(relative $(DESTDIR)$(bindir) $(DESTDIR)$(SDK_BIN_DIR)); \
 @CREATE_JAVA_HOME_TRUE@	ln -sf $$RELATIVE/`echo gij | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \
 @CREATE_JAVA_HOME_TRUE@	  $(DESTDIR)$(SDK_BIN_DIR)/java; \
+@CREATE_JAVA_HOME_TRUE@	ln -sf $$RELATIVE/`echo gcj | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \
+@CREATE_JAVA_HOME_TRUE@	  $(DESTDIR)$(SDK_BIN_DIR)/javac; \
 @CREATE_JAVA_HOME_TRUE@	ln -sf $$RELATIVE/`echo gjar | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \
 @CREATE_JAVA_HOME_TRUE@	  $(DESTDIR)$(SDK_BIN_DIR)/jar; \
 @CREATE_JAVA_HOME_TRUE@	ln -sf $$RELATIVE/`echo gjdoc | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \
diff -Naur gcc-4.4.0.orig/libstdc++-v3/ChangeLog gcc-4.4.0/libstdc++-v3/ChangeLog
--- gcc-4.4.0.orig/libstdc++-v3/ChangeLog	2009-04-21 01:46:37.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/ChangeLog	2009-04-29 12:37:30.000000000 -0700
@@ -1,3 +1,71 @@
+2009-04-29  Benjamin Kosnik  <bkoz@redhat.com>
+
+        * xml/authors.xml: Add space.
+        * xml/faq.xml: Update links.
+        * xml/manual/intro.xml: Same.
+        * xml/manual/abi.xml: Update.
+        * xml/manual/appendix_contributing.xml: Fix typo.
+        * xml/manual/status_cxxtr1.xml: Update links.
+        * xml/manual/status_cxx1998.xml: Same.
+        * xml/manual/status_cxx200x.xml: Same.
+
+2009-04-28  Benjamin Kosnik  <bkoz@redhat.com>
+
+        PR libstdc++/39868
+        * scripts/run_doxygen: Uncomment removal of includes.
+        (problematic): Rewrite __cxxabiv1 namespace to abi.
+
+2009-04-28  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	PR libstdc++/39880
+	PR libstdc++/39881
+	PR libstdc++/39882
+	* include/std/system_error (is_error_code_enum<errc>): Remove.
+	(error_condition<>::error_condition(_ErrorCodeEnum,)
+	error_condition<>::operator=(_ErrorCodeEnum)): Use make_error_condition.
+	(error_code<>::error_code(_ErrorCodeEnum,),
+	error_code<>::operator=(_ErrorCodeEnum)): Use make_error_code.
+	* testsuite/19_diagnostics/system_error/39880.cc: New.
+	* testsuite/19_diagnostics/error_condition/modifiers/39881.cc:
+	Likewise.
+	* testsuite/19_diagnostics/error_condition/cons/39881.cc: Likewise.
+	* testsuite/19_diagnostics/error_code/modifiers/39882.cc: Likewise.
+	* testsuite/19_diagnostics/error_code/cons/39882.cc: Likewise.
+	* testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc:
+	Adjust.
+	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc:
+	Likewise.
+	* testsuite/19_diagnostics/error_code/cons/1.cc: Likewise.
+	* testsuite/19_diagnostics/error_code/operators/bool.cc: Likewise.
+	* testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise.
+	* testsuite/19_diagnostics/error_code/operators/not_equal.cc:
+	Likewise.
+	* testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Likewise.
+	* testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
+	* testsuite/19_diagnostics/system_error/what-4.cc: Likewise.
+	* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
+
+2009-04-26  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	Revert the last commit.
+
+2009-04-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+	* include/std/mutex (__get_once_functor_lock, __get_once_mutex):
+	Replace global lock object with local locks on global mutex.
+	* src/mutex.cc: Likewise.
+	* config/abi/pre/gnu.ver: Adjust.
+	* testsuite/30_threads/call_once/call_once2.cc: New.
+
+2009-04-21  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	PR libstdc++/39802
+	* include/bits/locale_facets.tcc (num_get<>::_M_extract_int
+	(_InIter, _InIter, ios_base&, ios_base::iostate&, _ValueT&)):
+	Always accept negative values, for unsigned types too.
+	* testsuite/22_locale/num_get/get/char/39802.cc: New.
+	* testsuite/22_locale/num_get/get/wchar_t/39802.cc: Likewise.
+
 2009-04-21  Release Manager
 
 	* GCC 4.4.0 released.
diff -Naur gcc-4.4.0.orig/libstdc++-v3/doc/xml/authors.xml gcc-4.4.0/libstdc++-v3/doc/xml/authors.xml
--- gcc-4.4.0.orig/libstdc++-v3/doc/xml/authors.xml	2008-04-10 15:14:17.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/doc/xml/authors.xml	2009-04-29 12:37:30.000000000 -0700
@@ -21,6 +21,16 @@
 -->
 
   <author>
+    <firstname></firstname>
+    <surname></surname>
+
+    <authorblurb>
+      <para>
+      </para>
+    </authorblurb>
+  </author>
+
+  <author>
     <firstname>Paolo</firstname>
     <surname>Carlini</surname>
 
diff -Naur gcc-4.4.0.orig/libstdc++-v3/doc/xml/faq.xml gcc-4.4.0/libstdc++-v3/doc/xml/faq.xml
--- gcc-4.4.0.orig/libstdc++-v3/doc/xml/faq.xml	2009-03-15 17:09:04.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/doc/xml/faq.xml	2009-04-29 12:37:30.000000000 -0700
@@ -692,9 +692,9 @@
     </para>
     <para>    
     Long answer: See the implementation status pages for 
-    <link linkend="manual.intro.status.standard.1998">C++98</link>,
-    <link linkend="manual.intro.status.standard.tr1">TR1</link>, and 
-    <link linkend="manual.intro.status.standard.200x">C++0x</link>.
+    <link linkend="status.iso.1998">C++98</link>,
+    <link linkend="status.iso.tr1">TR1</link>, and 
+    <link linkend="status.iso.200x">C++0x</link>.
     </para> 
   </answer>
 </qandaentry>
@@ -1123,7 +1123,7 @@
     </para>
     <para>
     The implementation status of TR1 in libstdc++ can be tracked <link
-    linkend="manual.intro.status.standard.tr1">on the TR1 status
+    linkend="status.iso.tr1">on the TR1 status
     page</link>.
     </para>
   </answer>
diff -Naur gcc-4.4.0.orig/libstdc++-v3/doc/xml/manual/abi.xml gcc-4.4.0/libstdc++-v3/doc/xml/manual/abi.xml
--- gcc-4.4.0.orig/libstdc++-v3/doc/xml/manual/abi.xml	2008-09-09 15:42:23.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/doc/xml/manual/abi.xml	2009-04-29 12:37:30.000000000 -0700
@@ -207,6 +207,7 @@
     <listitem><para>gcc-4.1.0: GCC_4.1.0</para></listitem>
     <listitem><para>gcc-4.2.0: GCC_4.2.0</para></listitem>
     <listitem><para>gcc-4.3.0: GCC_4.3.0</para></listitem>
+    <listitem><para>gcc-4.4.0: GCC_4.4.0</para></listitem>
     </itemizedlist>
     </listitem>
 
@@ -264,6 +265,8 @@
     <listitem><para>gcc-4.3.0: libstdc++.so.6.0.10</para></listitem>
     <listitem><para>gcc-4.3.1: libstdc++.so.6.0.10</para></listitem>
     <listitem><para>gcc-4.3.2: libstdc++.so.6.0.10</para></listitem>
+    <listitem><para>gcc-4.3.3: libstdc++.so.6.0.10</para></listitem>
+    <listitem><para>gcc-4.4.0: libstdc++.so.6.0.11</para></listitem>
     </itemizedlist>
     <para>
       Note 1: Error should be libstdc++.so.3.0.3.
@@ -320,6 +323,7 @@
     <listitem><para>gcc-4.1.1: GLIBCXX_3.4.8</para></listitem>
     <listitem><para>gcc-4.2.0: GLIBCXX_3.4.9</para></listitem>
     <listitem><para>gcc-4.3.0: GLIBCXX_3.4.10, CXXABI_1.3.2</para></listitem>
+    <listitem><para>gcc-4.4.0: GLIBCXX_3.4.11, CXXABI_1.3.3</para></listitem>
     </itemizedlist>
     </listitem>
   
@@ -426,6 +430,8 @@
     <listitem><para>gcc-4.3.0: 20080306</para></listitem>
     <listitem><para>gcc-4.3.1: 20080606</para></listitem>
     <listitem><para>gcc-4.3.2: 20080827</para></listitem>
+    <listitem><para>gcc-4.3.3: 20090124</para></listitem>
+    <listitem><para>gcc-4.4.0: 20090421</para></listitem>
     </itemizedlist>
     <para></para>
     </listitem>
@@ -524,7 +530,8 @@
     <listitem><para>gcc-4.2.4: include/c++/4.2.4</para></listitem>
     <listitem><para>gcc-4.3.0: include/c++/4.3.0</para></listitem>
     <listitem><para>gcc-4.3.1: include/c++/4.3.1</para></listitem>
-    <listitem><para>gcc-4.3.2: include/c++/4.3.2</para></listitem>
+    <listitem><para>gcc-4.3.3: include/c++/4.3.3</para></listitem>
+    <listitem><para>gcc-4.4.0: include/c++/4.4.0</para></listitem>
     </itemizedlist>
     <para></para>
     </listitem>
diff -Naur gcc-4.4.0.orig/libstdc++-v3/doc/xml/manual/appendix_contributing.xml gcc-4.4.0/libstdc++-v3/doc/xml/manual/appendix_contributing.xml
--- gcc-4.4.0.orig/libstdc++-v3/doc/xml/manual/appendix_contributing.xml	2009-04-15 20:33:20.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/doc/xml/manual/appendix_contributing.xml	2009-04-29 12:37:30.000000000 -0700
@@ -1102,7 +1102,7 @@
 	For validating the XML document, you'll need
 	something like <command>xmllint</command> and access to the
 	DocBook DTD. These are provided
-	by a vendor package like <filename>lixml2</filename>.
+	by a vendor package like <filename>libxml2</filename>.
       </para>
 
       <para>
diff -Naur gcc-4.4.0.orig/libstdc++-v3/doc/xml/manual/intro.xml gcc-4.4.0/libstdc++-v3/doc/xml/manual/intro.xml
--- gcc-4.4.0.orig/libstdc++-v3/doc/xml/manual/intro.xml	2009-04-15 20:33:20.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/doc/xml/manual/intro.xml	2009-04-29 12:37:30.000000000 -0700
@@ -27,7 +27,7 @@
   <title>Status</title>
 
   <!-- Section 01 : Implementation Status -->
-  <sect1 id="manual.intro.status.standard" xreflabel="Status">
+  <sect1 id="manual.intro.status.iso" xreflabel="Status">
     <title>Implementation Status</title>
 
     <!-- Section 01.1 : Status C++ 1998 -->
diff -Naur gcc-4.4.0.orig/libstdc++-v3/doc/xml/manual/status_cxx1998.xml gcc-4.4.0/libstdc++-v3/doc/xml/manual/status_cxx1998.xml
--- gcc-4.4.0.orig/libstdc++-v3/doc/xml/manual/status_cxx1998.xml	2009-04-15 20:33:20.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/doc/xml/manual/status_cxx1998.xml	2009-04-29 12:37:30.000000000 -0700
@@ -1,4 +1,4 @@
-<sect2 id="manual.intro.status.standard.1998" xreflabel="ISO C++ 1998">
+<sect2 id="status.iso.1998" xreflabel="ISO C++ 1998">
 <?dbhtml filename="status_iso_cxx1998.html"?>
  
 <sect2info>
@@ -14,7 +14,7 @@
 
 <title>C++ 1998/2003</title>
 
-<sect3 id="standard.1998.status" xreflabel="Implementation Status">
+<sect3 id="iso.1998.status" xreflabel="Implementation Status">
   <title>Implementation Status</title>
 
 <para>
@@ -1032,7 +1032,7 @@
 </table>
 </sect3>
 
-<sect3 id="standard.1998.specific" xreflabel="Implementation Specific">
+<sect3 id="iso.1998.specific" xreflabel="Implementation Specific">
   <title>Implementation Specific Behavior</title>
 
    <para>
diff -Naur gcc-4.4.0.orig/libstdc++-v3/doc/xml/manual/status_cxx200x.xml gcc-4.4.0/libstdc++-v3/doc/xml/manual/status_cxx200x.xml
--- gcc-4.4.0.orig/libstdc++-v3/doc/xml/manual/status_cxx200x.xml	2009-04-15 20:33:20.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/doc/xml/manual/status_cxx200x.xml	2009-04-29 12:37:30.000000000 -0700
@@ -1,4 +1,4 @@
-<sect2 id="manual.intro.status.standard.200x" xreflabel="Status C++ 200x">
+<sect2 id="status.iso.200x" xreflabel="Status C++ 200x">
 <?dbhtml filename="status_iso_cxx200x.html"?>
  
 <sect2info>
diff -Naur gcc-4.4.0.orig/libstdc++-v3/doc/xml/manual/status_cxxtr1.xml gcc-4.4.0/libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
--- gcc-4.4.0.orig/libstdc++-v3/doc/xml/manual/status_cxxtr1.xml	2009-04-15 20:33:20.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/doc/xml/manual/status_cxxtr1.xml	2009-04-29 12:37:30.000000000 -0700
@@ -1,4 +1,4 @@
-<sect2 id="manual.intro.status.standard.tr1" xreflabel="Status C++ TR1">
+<sect2 id="status.iso.tr1" xreflabel="Status C++ TR1">
 <?dbhtml filename="status_iso_cxxtr1.html"?>
  
 <sect2info>
diff -Naur gcc-4.4.0.orig/libstdc++-v3/include/bits/locale_facets.tcc gcc-4.4.0/libstdc++-v3/include/bits/locale_facets.tcc
--- gcc-4.4.0.orig/libstdc++-v3/include/bits/locale_facets.tcc	2009-04-09 16:23:07.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/include/bits/locale_facets.tcc	2009-04-21 13:26:46.000000000 -0700
@@ -379,8 +379,7 @@
 	if (!__testeof)
 	  {
 	    __c = *__beg;
-	    if (__gnu_cxx::__numeric_traits<_ValueT>::__is_signed)
-	      __negative = __c == __lit[__num_base::_S_iminus];
+	    __negative = __c == __lit[__num_base::_S_iminus];
 	    if ((__negative || __c == __lit[__num_base::_S_iplus])
 		&& !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
 		&& !(__c == __lc->_M_decimal_point))
@@ -449,7 +448,8 @@
 	  __found_grouping.reserve(32);
 	bool __testfail = false;
 	bool __testoverflow = false;
-	const __unsigned_type __max = __negative
+	const __unsigned_type __max =
+	  (__negative && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)
 	  ? -__gnu_cxx::__numeric_traits<_ValueT>::__min
 	  : __gnu_cxx::__numeric_traits<_ValueT>::__max;
 	const __unsigned_type __smax = __max / __base;
@@ -552,7 +552,8 @@
 	  }
 	else if (__testoverflow)
 	  {
-	    if (__negative)
+	    if (__negative
+		&& __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)
 	      __v = __gnu_cxx::__numeric_traits<_ValueT>::__min;
 	    else
 	      __v = __gnu_cxx::__numeric_traits<_ValueT>::__max;
diff -Naur gcc-4.4.0.orig/libstdc++-v3/include/std/system_error gcc-4.4.0/libstdc++-v3/include/std/system_error
--- gcc-4.4.0.orig/libstdc++-v3/include/std/system_error	2009-04-09 16:23:07.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/include/std/system_error	2009-04-28 03:32:22.000000000 -0700
@@ -51,10 +51,6 @@
   template<typename _Tp>
     struct is_error_code_enum : public false_type { };
 
-  template<> 
-    struct is_error_code_enum<errc>
-    : public true_type { };
-
   /// is_error_condition_enum
   template<typename _Tp>
     struct is_error_condition_enum : public false_type { };
@@ -108,12 +104,14 @@
   const error_category& system_category();
   const error_category& generic_category();
 
+  error_code make_error_code(errc);
+
   /// error_code
   // Implementation-specific error identification
   struct error_code
   {
     error_code()
-      : _M_value(0), _M_cat(&system_category()) { }
+    : _M_value(0), _M_cat(&system_category()) { }
 
     error_code(int __v, const error_category& __cat)
     : _M_value(__v), _M_cat(&__cat) { }
@@ -121,8 +119,7 @@
     template<typename _ErrorCodeEnum>
       error_code(_ErrorCodeEnum __e,
       typename enable_if<is_error_code_enum<_ErrorCodeEnum>::value>::type* = 0)
-      : _M_value(static_cast<int>(__e)), _M_cat(&generic_category())
-      { }
+      { *this = make_error_code(__e); }
 
     void 
     assign(int __v, const error_category& __cat)
@@ -140,10 +137,7 @@
       typename enable_if<is_error_code_enum<_ErrorCodeEnum>::value,
 			 error_code&>::type
       operator=(_ErrorCodeEnum __e)
-      {
-	assign(static_cast<int>(__e), generic_category());
-	return *this;
-      }
+      { return *this = make_error_code(__e); }
 
     int
     value() const { return _M_value; }
@@ -192,12 +186,14 @@
     operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e)
     { return (__os << __e.category().name() << ':' << __e.value()); }
 
+  error_condition make_error_condition(errc);
 
   /// error_condition
   // Portable error identification
   struct error_condition 
   {
-    error_condition() : _M_value(0), _M_cat(&generic_category()) { }
+    error_condition()
+    : _M_value(0), _M_cat(&generic_category()) { }
 
     error_condition(int __v, const error_category& __cat)     
     : _M_value(__v), _M_cat(&__cat) { }
@@ -206,7 +202,7 @@
       error_condition(_ErrorConditionEnum __e,
 		      typename enable_if<is_error_condition_enum
 		                      <_ErrorConditionEnum>::value>::type* = 0)
-	: _M_value(static_cast<int>(__e)), _M_cat(&generic_category()) { }
+      { *this = make_error_condition(__e); }
 
     void
     assign(int __v, const error_category& __cat)
@@ -220,10 +216,7 @@
       typename enable_if<is_error_condition_enum
 			 <_ErrorConditionEnum>::value, error_condition&>::type
       operator=(_ErrorConditionEnum __e)
-      {
-	assign(static_cast<int>(__e), generic_category());
-	return *this;
-      }
+      { return *this = make_error_condition(__e); }
 
     void 
     clear()
diff -Naur gcc-4.4.0.orig/libstdc++-v3/scripts/run_doxygen gcc-4.4.0/libstdc++-v3/scripts/run_doxygen
--- gcc-4.4.0.orig/libstdc++-v3/scripts/run_doxygen	2009-02-19 00:15:15.000000000 -0800
+++ gcc-4.4.0/libstdc++-v3/scripts/run_doxygen	2009-04-29 12:37:30.000000000 -0700
@@ -1,7 +1,8 @@
 #!/bin/bash
 
 # Runs doxygen and massages the output files.
-# Copyright (C) 2001, 2002, 2003, 2004, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2004, 2008, 2009 
+# Free Software Foundation, Inc.
 #
 # Synopsis:  run_doxygen --mode=[html|man|xml] --host_alias=<alias> \
 #                        v3srcdir  v3builddir
@@ -225,11 +226,9 @@
 
 # man pages are for functions/types/other entities, not source files
 # directly.  who the heck would type "man foo.h" anyhow?
-#find . -name "[a-z]*" -a ! -name "std_*" -print | xargs rm
+find . -name "[a-z]*" -a ! -name "std_*" -print | xargs rm
 rm -f *.h.3 *.hpp.3 *config* *.cc.3 *.tcc.3 *_t.3
-rm ext_*.3
-rm tr1_*.3
-rm debug_*.3
+#rm ext_*.3 tr1_*.3 debug_*.3
 
 # this is used to examine what we would have deleted, for debugging
 #mkdir trash
@@ -254,18 +253,18 @@
 # Some of the pages for generated modules have text that confuses certain
 # implementations of man(1), e.g., Linux's.  We need to have another top-level
 # *roff tag to /stop/ the .SH NAME entry.
-#problematic=`egrep --files-without-match '^\.SH SYNOPSIS' [A-Z]*.3`
-
+problematic=`egrep --files-without-match '^\.SH SYNOPSIS' [A-Z]*.3`
 #problematic='Containers.3 Sequences.3 Assoc_containers.3 Iterator_types.3'
-#for f in $problematic; do
-#    sed '/^\.SH NAME/{
-#n
-#a\
-#\
-#.SH SYNOPSIS
-#    }' $f > TEMP
-#    mv TEMP $f
-#done
+
+for f in $problematic; do
+    sed '/^\.SH NAME/{
+n
+a\
+\
+.SH SYNOPSIS
+    }' $f > TEMP
+    mv TEMP $f
+done
 
 # Also, break this (generated) line up.  It's ugly as sin.
 problematic=`grep -l '[^^]Definition at line' *.3`
@@ -320,7 +319,10 @@
     newname=`echo $f | sed 's/^__atomic2_/std::__atomic2::/'`
     mv $f $newname
 done
-
+for f in __cxxabiv1_*; do
+    newname=`echo $f | sed 's/^__cxxabiv1_/abi::/'`
+    mv $f $newname
+done
 
 # Generic removal bits, where there are things in the generated man
 # pages that need to be killed.
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc	2009-04-09 16:23:07.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc	2009-04-28 03:32:22.000000000 -0700
@@ -32,7 +32,7 @@
   return 0;
 }
 
-// { dg-error "deleted function" "" { target *-*-* } 76 }
+// { dg-error "deleted function" "" { target *-*-* } 72 }
 // { dg-error "used here" "" { target *-*-* } 31 }
 // { dg-error "first required here" "" { target *-*-* } 30 }
 // { dg-excess-errors "copy constructor" }
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_code/cons/1.cc gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_code/cons/1.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_code/cons/1.cc	2009-04-09 16:23:07.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_code/cons/1.cc	2009-04-28 03:32:22.000000000 -0700
@@ -37,7 +37,7 @@
   VERIFY( e2.category() == cat );
 
   // 3
-  std::error_code e3(std::errc::operation_not_supported);
+  std::error_code e3(std::make_error_code(std::errc::operation_not_supported));
   VERIFY( e3.value() == int(std::errc::operation_not_supported) );
   VERIFY( e3.category() == std::generic_category() );
 
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_code/cons/39882.cc gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_code/cons/39882.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_code/cons/39882.cc	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_code/cons/39882.cc	2009-04-28 03:32:22.000000000 -0700
@@ -0,0 +1,60 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2009 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 <system_error>
+#include <testsuite_hooks.h>
+
+enum my_errc { my_err = 0 };
+
+class my_error_category_impl
+: public std::error_category
+{
+public:
+  const char* name() const { return ""; }
+  std::string message(int) const { return ""; }
+} my_error_category_instance;
+
+std::error_code
+make_error_code(my_errc e)
+{
+  return std::error_code(static_cast<int>(e),
+			 my_error_category_instance);
+}
+
+namespace std
+{
+  template<>
+    struct is_error_code_enum<my_errc>
+    : public true_type {};
+}
+
+// libstdc++/39882
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  std::error_code ec1(my_err);
+  VERIFY( ec1 == make_error_code(my_err) );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_code/modifiers/39882.cc gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_code/modifiers/39882.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_code/modifiers/39882.cc	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_code/modifiers/39882.cc	2009-04-28 03:32:22.000000000 -0700
@@ -0,0 +1,61 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2009 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 <system_error>
+#include <testsuite_hooks.h>
+
+enum my_errc { my_err = 0 };
+
+class my_error_category_impl
+: public std::error_category
+{
+public:
+  const char* name() const { return ""; }
+  std::string message(int) const { return ""; }
+} my_error_category_instance;
+
+std::error_code
+make_error_code(my_errc e)
+{
+  return std::error_code(static_cast<int>(e),
+			 my_error_category_instance);
+}
+
+namespace std
+{
+  template<>
+    struct is_error_code_enum<my_errc>
+    : public true_type {};
+}
+
+// libstdc++/39882
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  std::error_code ec2;
+  ec2 = my_err;
+  VERIFY( ec2 == make_error_code(my_err) );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool.cc gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool.cc	2009-04-09 16:23:07.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool.cc	2009-04-28 03:32:22.000000000 -0700
@@ -34,7 +34,7 @@
     }
 
   // 2
-  std::error_code e2(std::errc::operation_not_supported);
+  std::error_code e2(std::make_error_code(std::errc::operation_not_supported));
   if (e2)
     {
       VERIFY( true );
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_code/operators/equal.cc gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_code/operators/equal.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_code/operators/equal.cc	2009-04-09 16:23:07.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_code/operators/equal.cc	2009-04-28 03:32:22.000000000 -0700
@@ -27,7 +27,7 @@
   bool test __attribute__((unused)) = true;
 
   std::error_code e1;
-  std::error_code e2(std::errc::operation_not_supported);
+  std::error_code e2(std::make_error_code(std::errc::operation_not_supported));
 
   VERIFY( e1 == e1 );
   VERIFY( !(e1 == e2) );
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_code/operators/not_equal.cc gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_code/operators/not_equal.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_code/operators/not_equal.cc	2009-04-09 16:23:07.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_code/operators/not_equal.cc	2009-04-28 03:32:22.000000000 -0700
@@ -27,7 +27,7 @@
   bool test __attribute__((unused)) = true;
 
   std::error_code e1;
-  std::error_code e2(std::errc::operation_not_supported);
+  std::error_code e2(std::make_error_code(std::errc::operation_not_supported));
 
   VERIFY( !(e1 != e1) );
   VERIFY( e1 != e2 );
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/39881.cc gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/39881.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/39881.cc	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/39881.cc	2009-04-28 03:32:22.000000000 -0700
@@ -0,0 +1,60 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2009 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 <system_error>
+#include <testsuite_hooks.h>
+
+enum my_errc { my_err = 0 };
+
+class my_error_category_impl
+: public std::error_category
+{
+public:
+  const char* name() const { return ""; }
+  std::string message(int) const { return ""; }
+} my_error_category_instance;
+
+std::error_condition
+make_error_condition(my_errc e)
+{
+  return std::error_condition(static_cast<int>(e),
+			      my_error_category_instance);
+}
+
+namespace std
+{
+  template<>
+    struct is_error_condition_enum<my_errc>
+    : public true_type { };
+}
+
+// libstdc++/39881
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  std::error_condition ec1(my_err);
+  VERIFY( ec1 == make_error_condition(my_err) );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_condition/modifiers/39881.cc gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_condition/modifiers/39881.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/error_condition/modifiers/39881.cc	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/error_condition/modifiers/39881.cc	2009-04-28 03:32:22.000000000 -0700
@@ -0,0 +1,61 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2009 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 <system_error>
+#include <testsuite_hooks.h>
+
+enum my_errc { my_err = 0 };
+
+class my_error_category_impl
+: public std::error_category
+{
+public:
+  const char* name() const { return ""; }
+  std::string message(int) const { return ""; }
+} my_error_category_instance;
+
+std::error_condition
+make_error_condition(my_errc e)
+{
+  return std::error_condition(static_cast<int>(e),
+			      my_error_category_instance);
+}
+
+namespace std
+{
+  template<>
+    struct is_error_condition_enum<my_errc>
+    : public true_type { };
+}
+
+// libstdc++/39881
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  std::error_condition ec2;
+  ec2 = my_err;
+  VERIFY( ec2 == make_error_condition(my_err) );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/system_error/39880.cc gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/system_error/39880.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/system_error/39880.cc	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/system_error/39880.cc	2009-04-28 03:32:22.000000000 -0700
@@ -0,0 +1,29 @@
+// { dg-options "-std=gnu++0x" }
+// { dg-do compile }
+
+// Copyright (C) 2009 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 <system_error>
+
+// libstdc++/39880
+void test01()
+{
+  std::error_code ec;
+  if (ec == std::errc::not_supported)
+    { }
+}
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc	2009-04-09 16:23:07.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc	2009-04-28 03:32:22.000000000 -0700
@@ -26,7 +26,8 @@
 {
   bool test __attribute__((unused)) = true;
   const std::string s("too late: boulangerie out of pain au raisin");
-  const std::error_code e(std::errc::operation_not_supported);
+  const std::error_code
+    e(std::make_error_code(std::errc::operation_not_supported));
 
   // 1
   {
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/system_error/what-4.cc gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/system_error/what-4.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/19_diagnostics/system_error/what-4.cc	2009-04-09 16:23:07.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/testsuite/19_diagnostics/system_error/what-4.cc	2009-04-28 03:32:22.000000000 -0700
@@ -31,7 +31,8 @@
   bool test __attribute__((unused)) = true;
   std::string s("after nine thirty, this request cannot be met");
 
-  std::system_error obj = std::system_error(std::errc::invalid_argument, s);
+  std::system_error obj =
+    std::system_error(std::make_error_code(std::errc::invalid_argument), s);
   std::string s1(obj.what());
   std::string s2(obj.what());
   VERIFY( s1 == s2 );
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/22_locale/num_get/get/char/39802.cc gcc-4.4.0/libstdc++-v3/testsuite/22_locale/num_get/get/char/39802.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/22_locale/num_get/get/char/39802.cc	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/libstdc++-v3/testsuite/22_locale/num_get/get/char/39802.cc	2009-04-21 13:26:46.000000000 -0700
@@ -0,0 +1,77 @@
+// Copyright (C) 2009 Free Software Foundation
+//
+// 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/>.
+
+// 22.2.2.1.1  num_get members
+
+#include <locale>
+#include <sstream>
+#include <limits>
+#include <testsuite_hooks.h>
+
+// libstdc++/39802
+void test01()
+{
+  using namespace std;
+  typedef istreambuf_iterator<char> iterator_type;
+  
+  bool test __attribute__((unused)) = true;
+
+  stringstream ss;
+  const num_get<char>& ng = use_facet<num_get<char> >(ss.getloc()); 
+  ios_base::iostate err;
+  iterator_type end;
+  const string empty;
+
+  unsigned long ul0 = 1;
+  const unsigned long ul1 = numeric_limits<unsigned long>::max();
+
+  ss << "-0";
+  err = ios_base::goodbit;
+  end = ng.get(ss.rdbuf(), 0, ss, err, ul0);
+  VERIFY( err == ios_base::eofbit );
+  VERIFY( ul0 == 0 );
+
+  ss.clear();
+  ss.str(empty);
+  ss << "-1";
+  err = ios_base::goodbit;
+  end = ng.get(ss.rdbuf(), 0, ss, err, ul0);
+  VERIFY( err == ios_base::eofbit );
+  VERIFY( ul0 == ul1 );
+
+  ss.clear();
+  ss.str(empty);
+  ss << '-' << ul1;
+  err = ios_base::goodbit;
+  end = ng.get(ss.rdbuf(), 0, ss, err, ul0);
+  VERIFY( err == ios_base::eofbit );
+  VERIFY( ul0 == 1 );
+
+  ss.clear();
+  ss.str(empty);
+  ss << '-' << ul1 << '0';
+  err = ios_base::goodbit;
+  end = ng.get(ss.rdbuf(), 0, ss, err, ul0);
+  VERIFY( err == (ios_base::eofbit | ios_base::failbit) );
+  VERIFY( ul0 == ul1 );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39802.cc gcc-4.4.0/libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39802.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39802.cc	1969-12-31 16:00:00.000000000 -0800
+++ gcc-4.4.0/libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39802.cc	2009-04-21 13:26:46.000000000 -0700
@@ -0,0 +1,77 @@
+// Copyright (C) 2009 Free Software Foundation
+//
+// 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/>.
+
+// 22.2.2.1.1  num_get members
+
+#include <locale>
+#include <sstream>
+#include <limits>
+#include <testsuite_hooks.h>
+
+// libstdc++/39802
+void test01()
+{
+  using namespace std;
+  typedef istreambuf_iterator<wchar_t> iterator_type;
+  
+  bool test __attribute__((unused)) = true;
+
+  wstringstream ss;
+  const num_get<wchar_t>& ng = use_facet<num_get<wchar_t> >(ss.getloc()); 
+  ios_base::iostate err;
+  iterator_type end;
+  const wstring empty;
+
+  unsigned long ul0 = 1;
+  const unsigned long ul1 = numeric_limits<unsigned long>::max();
+
+  ss << L"-0";
+  err = ios_base::goodbit;
+  end = ng.get(ss.rdbuf(), 0, ss, err, ul0);
+  VERIFY( err == ios_base::eofbit );
+  VERIFY( ul0 == 0 );
+
+  ss.clear();
+  ss.str(empty);
+  ss << L"-1";
+  err = ios_base::goodbit;
+  end = ng.get(ss.rdbuf(), 0, ss, err, ul0);
+  VERIFY( err == ios_base::eofbit );
+  VERIFY( ul0 == ul1 );
+
+  ss.clear();
+  ss.str(empty);
+  ss << L'-' << ul1;
+  err = ios_base::goodbit;
+  end = ng.get(ss.rdbuf(), 0, ss, err, ul0);
+  VERIFY( err == ios_base::eofbit );
+  VERIFY( ul0 == 1 );
+
+  ss.clear();
+  ss.str(empty);
+  ss << L'-' << ul1 << L'0';
+  err = ios_base::goodbit;
+  end = ng.get(ss.rdbuf(), 0, ss, err, ul0);
+  VERIFY( err == (ios_base::eofbit | ios_base::failbit) );
+  VERIFY( ul0 == ul1 );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc gcc-4.4.0/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc	2009-04-09 16:23:07.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc	2009-04-28 03:32:22.000000000 -0700
@@ -32,7 +32,7 @@
 
   char buf[64];
   error_code e1;
-  error_code e2(errc::bad_address);
+  error_code e2(make_error_code(errc::bad_address));
   string s, s1, s2;
 
   {
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc gcc-4.4.0/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc	2009-04-09 16:23:07.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc	2009-04-28 03:32:22.000000000 -0700
@@ -1,6 +1,6 @@
 // { dg-options "-std=gnu++0x" }
 
-// Copyright (C) 2007, 2009 Free Software Foundation
+// Copyright (C) 2007, 2008, 2009 Free Software Foundation
 //
 // 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
@@ -32,7 +32,7 @@
 
   wchar_t buf[64];
   error_code e1;
-  error_code e2(errc::bad_address);
+  error_code e2(make_error_code(errc::bad_address));
   wstring s, s1, s2;
 
   {
diff -Naur gcc-4.4.0.orig/libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc gcc-4.4.0/libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc
--- gcc-4.4.0.orig/libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc	2009-04-09 16:23:07.000000000 -0700
+++ gcc-4.4.0/libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc	2009-04-28 03:32:22.000000000 -0700
@@ -44,7 +44,8 @@
         }
       catch (const std::system_error& ex)
         {
-	  VERIFY( ex.code() == std::error_code(std::errc::operation_not_permitted) );
+	  VERIFY( ex.code() == std::make_error_code
+		  (std::errc::operation_not_permitted) );
         }
       catch (...)
         {
@@ -80,8 +81,8 @@
 	}
       catch (const std::system_error& ex)
 	{
-	  VERIFY( ex.code() == std::error_code(
-		    std::errc::resource_deadlock_would_occur) );
+	  VERIFY( ex.code() == std::make_error_code
+		  (std::errc::resource_deadlock_would_occur) );
 	}
       catch (...)
 	{
