Merged r175238 through r175420 into branch.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/avx2@175530 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/ChangeLog b/ChangeLog
index 606f1e8..235c890 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2011-06-22  Hans-Peter Nilsson  <hp@axis.com>
+
+	PR regression/47836
+	PR bootstrap/23656
+	PR other/47733
+	PR bootstrap/49247
+	PR c/48825
+	* configure.ac (target_libraries): Remove target-libiberty.
+	Remove case-statement setting skipdirs=target-libiberty for
+	multiple targets.  Remove checking target_configdirs and
+	removing target-libiberty but keeping target-libgcc if
+	otherwise empty.
+	* Makefile.def (target_modules): Don't add libiberty.
+	(dependencies): Remove all traces of target-libiberty.
+	* configure, Makefile.in: Regenerate.
+
 2011-06-13  Walter Lee <walt@tilera.com>
 
 	* configure.ac (tilepro-*-*) New case.
diff --git a/Makefile.def b/Makefile.def
index f499180..b4a8464 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -131,7 +131,6 @@
                    missing=maintainer-clean; };
 target_modules = { module= winsup; };
 target_modules = { module= libgloss; no_check=true; };
-target_modules = { module= libiberty; };
 target_modules = { module= libffi; };
 target_modules = { module= libjava; raw_cxx=true; };
 target_modules = { module= zlib; };
@@ -481,7 +480,6 @@
 dependencies = { module=configure-target-boehm-gc; on=all-target-libstdc++-v3; };
 dependencies = { module=configure-target-fastjar; on=configure-target-zlib; };
 dependencies = { module=all-target-fastjar; on=all-target-zlib; };
-dependencies = { module=all-target-fastjar; on=all-target-libiberty; };
 dependencies = { module=configure-target-libgo; on=configure-target-libffi; };
 dependencies = { module=configure-target-libgo; on=all-target-libstdc++-v3; };
 dependencies = { module=all-target-libgo; on=all-target-libffi; };
@@ -493,9 +491,7 @@
 dependencies = { module=all-target-libjava; on=all-target-boehm-gc; };
 dependencies = { module=all-target-libjava; on=all-target-libffi; };
 dependencies = { module=configure-target-libobjc; on=configure-target-boehm-gc; };
-dependencies = { module=all-target-libobjc; on=all-target-libiberty; };
 dependencies = { module=all-target-libobjc; on=all-target-boehm-gc; };
-dependencies = { module=all-target-libstdc++-v3; on=all-target-libiberty; };
 dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgomp; };
 // parallel_list.o and parallel_settings.o depend on omp.h, which is
 // generated by the libgomp configure.  Unfortunately, due to the use of
@@ -508,10 +504,7 @@
 lang_env_dependencies = { module=winsup; };
 
 dependencies = { module=all-target-libgloss; on=all-target-newlib; };
-dependencies = { module=all-target-winsup; on=all-target-libiberty; };
 dependencies = { module=all-target-winsup; on=all-target-libtermcap; };
-dependencies = { module=configure-target-libiberty; on=all-binutils; };
-dependencies = { module=configure-target-libiberty; on=all-ld; };
 dependencies = { module=configure-target-newlib; on=all-binutils; };
 dependencies = { module=configure-target-newlib; on=all-ld; };
 dependencies = { module=configure-target-libgfortran; on=all-target-libquadmath; };
diff --git a/Makefile.in b/Makefile.in
index 944839b..4f8b396 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -917,7 +917,6 @@
     maybe-configure-target-libtermcap \
     maybe-configure-target-winsup \
     maybe-configure-target-libgloss \
-    maybe-configure-target-libiberty \
     maybe-configure-target-libffi \
     maybe-configure-target-libjava \
     maybe-configure-target-zlib \
@@ -1062,7 +1061,6 @@
 all-target: maybe-all-target-libtermcap
 all-target: maybe-all-target-winsup
 all-target: maybe-all-target-libgloss
-all-target: maybe-all-target-libiberty
 all-target: maybe-all-target-libffi
 all-target: maybe-all-target-libjava
 all-target: maybe-all-target-zlib
@@ -1147,7 +1145,6 @@
 info-target: maybe-info-target-libtermcap
 info-target: maybe-info-target-winsup
 info-target: maybe-info-target-libgloss
-info-target: maybe-info-target-libiberty
 info-target: maybe-info-target-libffi
 info-target: maybe-info-target-libjava
 info-target: maybe-info-target-zlib
@@ -1225,7 +1222,6 @@
 dvi-target: maybe-dvi-target-libtermcap
 dvi-target: maybe-dvi-target-winsup
 dvi-target: maybe-dvi-target-libgloss
-dvi-target: maybe-dvi-target-libiberty
 dvi-target: maybe-dvi-target-libffi
 dvi-target: maybe-dvi-target-libjava
 dvi-target: maybe-dvi-target-zlib
@@ -1303,7 +1299,6 @@
 pdf-target: maybe-pdf-target-libtermcap
 pdf-target: maybe-pdf-target-winsup
 pdf-target: maybe-pdf-target-libgloss
-pdf-target: maybe-pdf-target-libiberty
 pdf-target: maybe-pdf-target-libffi
 pdf-target: maybe-pdf-target-libjava
 pdf-target: maybe-pdf-target-zlib
@@ -1381,7 +1376,6 @@
 html-target: maybe-html-target-libtermcap
 html-target: maybe-html-target-winsup
 html-target: maybe-html-target-libgloss
-html-target: maybe-html-target-libiberty
 html-target: maybe-html-target-libffi
 html-target: maybe-html-target-libjava
 html-target: maybe-html-target-zlib
@@ -1459,7 +1453,6 @@
 TAGS-target: maybe-TAGS-target-libtermcap
 TAGS-target: maybe-TAGS-target-winsup
 TAGS-target: maybe-TAGS-target-libgloss
-TAGS-target: maybe-TAGS-target-libiberty
 TAGS-target: maybe-TAGS-target-libffi
 TAGS-target: maybe-TAGS-target-libjava
 TAGS-target: maybe-TAGS-target-zlib
@@ -1537,7 +1530,6 @@
 install-info-target: maybe-install-info-target-libtermcap
 install-info-target: maybe-install-info-target-winsup
 install-info-target: maybe-install-info-target-libgloss
-install-info-target: maybe-install-info-target-libiberty
 install-info-target: maybe-install-info-target-libffi
 install-info-target: maybe-install-info-target-libjava
 install-info-target: maybe-install-info-target-zlib
@@ -1615,7 +1607,6 @@
 install-pdf-target: maybe-install-pdf-target-libtermcap
 install-pdf-target: maybe-install-pdf-target-winsup
 install-pdf-target: maybe-install-pdf-target-libgloss
-install-pdf-target: maybe-install-pdf-target-libiberty
 install-pdf-target: maybe-install-pdf-target-libffi
 install-pdf-target: maybe-install-pdf-target-libjava
 install-pdf-target: maybe-install-pdf-target-zlib
@@ -1693,7 +1684,6 @@
 install-html-target: maybe-install-html-target-libtermcap
 install-html-target: maybe-install-html-target-winsup
 install-html-target: maybe-install-html-target-libgloss
-install-html-target: maybe-install-html-target-libiberty
 install-html-target: maybe-install-html-target-libffi
 install-html-target: maybe-install-html-target-libjava
 install-html-target: maybe-install-html-target-zlib
@@ -1771,7 +1761,6 @@
 installcheck-target: maybe-installcheck-target-libtermcap
 installcheck-target: maybe-installcheck-target-winsup
 installcheck-target: maybe-installcheck-target-libgloss
-installcheck-target: maybe-installcheck-target-libiberty
 installcheck-target: maybe-installcheck-target-libffi
 installcheck-target: maybe-installcheck-target-libjava
 installcheck-target: maybe-installcheck-target-zlib
@@ -1849,7 +1838,6 @@
 mostlyclean-target: maybe-mostlyclean-target-libtermcap
 mostlyclean-target: maybe-mostlyclean-target-winsup
 mostlyclean-target: maybe-mostlyclean-target-libgloss
-mostlyclean-target: maybe-mostlyclean-target-libiberty
 mostlyclean-target: maybe-mostlyclean-target-libffi
 mostlyclean-target: maybe-mostlyclean-target-libjava
 mostlyclean-target: maybe-mostlyclean-target-zlib
@@ -1927,7 +1915,6 @@
 clean-target: maybe-clean-target-libtermcap
 clean-target: maybe-clean-target-winsup
 clean-target: maybe-clean-target-libgloss
-clean-target: maybe-clean-target-libiberty
 clean-target: maybe-clean-target-libffi
 clean-target: maybe-clean-target-libjava
 clean-target: maybe-clean-target-zlib
@@ -2005,7 +1992,6 @@
 distclean-target: maybe-distclean-target-libtermcap
 distclean-target: maybe-distclean-target-winsup
 distclean-target: maybe-distclean-target-libgloss
-distclean-target: maybe-distclean-target-libiberty
 distclean-target: maybe-distclean-target-libffi
 distclean-target: maybe-distclean-target-libjava
 distclean-target: maybe-distclean-target-zlib
@@ -2083,7 +2069,6 @@
 maintainer-clean-target: maybe-maintainer-clean-target-libtermcap
 maintainer-clean-target: maybe-maintainer-clean-target-winsup
 maintainer-clean-target: maybe-maintainer-clean-target-libgloss
-maintainer-clean-target: maybe-maintainer-clean-target-libiberty
 maintainer-clean-target: maybe-maintainer-clean-target-libffi
 maintainer-clean-target: maybe-maintainer-clean-target-libjava
 maintainer-clean-target: maybe-maintainer-clean-target-zlib
@@ -2216,7 +2201,6 @@
     maybe-check-target-libtermcap \
     maybe-check-target-winsup \
     maybe-check-target-libgloss \
-    maybe-check-target-libiberty \
     maybe-check-target-libffi \
     maybe-check-target-libjava \
     maybe-check-target-zlib \
@@ -2366,7 +2350,6 @@
     maybe-install-target-libtermcap \
     maybe-install-target-winsup \
     maybe-install-target-libgloss \
-    maybe-install-target-libiberty \
     maybe-install-target-libffi \
     maybe-install-target-libjava \
     maybe-install-target-zlib \
@@ -2463,7 +2446,6 @@
     maybe-install-strip-target-libtermcap \
     maybe-install-strip-target-winsup \
     maybe-install-strip-target-libgloss \
-    maybe-install-strip-target-libiberty \
     maybe-install-strip-target-libffi \
     maybe-install-strip-target-libjava \
     maybe-install-strip-target-zlib \
@@ -36413,463 +36395,6 @@
 
 
 
-.PHONY: configure-target-libiberty maybe-configure-target-libiberty
-maybe-configure-target-libiberty:
-@if gcc-bootstrap
-configure-target-libiberty: stage_current
-@endif gcc-bootstrap
-@if target-libiberty
-maybe-configure-target-libiberty: configure-target-libiberty
-configure-target-libiberty: 
-	@: $(MAKE); $(unstage)
-	@r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	echo "Checking multilib configuration for libiberty..."; \
-	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libiberty ; \
-	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libiberty/multilib.tmp 2> /dev/null ; \
-	if test -r $(TARGET_SUBDIR)/libiberty/multilib.out; then \
-	  if cmp -s $(TARGET_SUBDIR)/libiberty/multilib.tmp $(TARGET_SUBDIR)/libiberty/multilib.out; then \
-	    rm -f $(TARGET_SUBDIR)/libiberty/multilib.tmp; \
-	  else \
-	    rm -f $(TARGET_SUBDIR)/libiberty/Makefile; \
-	    mv $(TARGET_SUBDIR)/libiberty/multilib.tmp $(TARGET_SUBDIR)/libiberty/multilib.out; \
-	  fi; \
-	else \
-	  mv $(TARGET_SUBDIR)/libiberty/multilib.tmp $(TARGET_SUBDIR)/libiberty/multilib.out; \
-	fi; \
-	test ! -f $(TARGET_SUBDIR)/libiberty/Makefile || exit 0; \
-	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libiberty ; \
-	$(NORMAL_TARGET_EXPORTS)  \
-	echo Configuring in $(TARGET_SUBDIR)/libiberty; \
-	cd "$(TARGET_SUBDIR)/libiberty" || exit 1; \
-	case $(srcdir) in \
-	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
-	  *) topdir=`echo $(TARGET_SUBDIR)/libiberty/ | \
-		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
-	esac; \
-	srcdiroption="--srcdir=$${topdir}/libiberty"; \
-	libsrcdir="$$s/libiberty"; \
-	rm -f no-such-file || : ; \
-	CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
-	  --target=${target_alias} $${srcdiroption}  \
-	  || exit 1
-@endif target-libiberty
-
-
-
-
-
-.PHONY: all-target-libiberty maybe-all-target-libiberty
-maybe-all-target-libiberty:
-@if gcc-bootstrap
-all-target-libiberty: stage_current
-@endif gcc-bootstrap
-@if target-libiberty
-TARGET-target-libiberty=all
-maybe-all-target-libiberty: all-target-libiberty
-all-target-libiberty: configure-target-libiberty
-	@: $(MAKE); $(unstage)
-	@r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS)  \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
-		$(TARGET-target-libiberty))
-@endif target-libiberty
-
-
-
-
-
-.PHONY: check-target-libiberty maybe-check-target-libiberty
-maybe-check-target-libiberty:
-@if target-libiberty
-maybe-check-target-libiberty: check-target-libiberty
-
-check-target-libiberty:
-	@: $(MAKE); $(unstage)
-	@r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS) \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)
-
-@endif target-libiberty
-
-.PHONY: install-target-libiberty maybe-install-target-libiberty
-maybe-install-target-libiberty:
-@if target-libiberty
-maybe-install-target-libiberty: install-target-libiberty
-
-install-target-libiberty: installdirs
-	@: $(MAKE); $(unstage)
-	@r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS) \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)
-
-@endif target-libiberty
-
-.PHONY: install-strip-target-libiberty maybe-install-strip-target-libiberty
-maybe-install-strip-target-libiberty:
-@if target-libiberty
-maybe-install-strip-target-libiberty: install-strip-target-libiberty
-
-install-strip-target-libiberty: installdirs
-	@: $(MAKE); $(unstage)
-	@r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS) \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)
-
-@endif target-libiberty
-
-# Other targets (info, dvi, pdf, etc.)
-
-.PHONY: maybe-info-target-libiberty info-target-libiberty
-maybe-info-target-libiberty:
-@if target-libiberty
-maybe-info-target-libiberty: info-target-libiberty
-
-info-target-libiberty: \
-    configure-target-libiberty 
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS) \
-	echo "Doing info in $(TARGET_SUBDIR)/libiberty" ; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           info) \
-	  || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-dvi-target-libiberty dvi-target-libiberty
-maybe-dvi-target-libiberty:
-@if target-libiberty
-maybe-dvi-target-libiberty: dvi-target-libiberty
-
-dvi-target-libiberty: \
-    configure-target-libiberty 
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS) \
-	echo "Doing dvi in $(TARGET_SUBDIR)/libiberty" ; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           dvi) \
-	  || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-pdf-target-libiberty pdf-target-libiberty
-maybe-pdf-target-libiberty:
-@if target-libiberty
-maybe-pdf-target-libiberty: pdf-target-libiberty
-
-pdf-target-libiberty: \
-    configure-target-libiberty 
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS) \
-	echo "Doing pdf in $(TARGET_SUBDIR)/libiberty" ; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           pdf) \
-	  || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-html-target-libiberty html-target-libiberty
-maybe-html-target-libiberty:
-@if target-libiberty
-maybe-html-target-libiberty: html-target-libiberty
-
-html-target-libiberty: \
-    configure-target-libiberty 
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS) \
-	echo "Doing html in $(TARGET_SUBDIR)/libiberty" ; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           html) \
-	  || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-TAGS-target-libiberty TAGS-target-libiberty
-maybe-TAGS-target-libiberty:
-@if target-libiberty
-maybe-TAGS-target-libiberty: TAGS-target-libiberty
-
-TAGS-target-libiberty: \
-    configure-target-libiberty 
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS) \
-	echo "Doing TAGS in $(TARGET_SUBDIR)/libiberty" ; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           TAGS) \
-	  || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-install-info-target-libiberty install-info-target-libiberty
-maybe-install-info-target-libiberty:
-@if target-libiberty
-maybe-install-info-target-libiberty: install-info-target-libiberty
-
-install-info-target-libiberty: \
-    configure-target-libiberty \
-    info-target-libiberty 
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS) \
-	echo "Doing install-info in $(TARGET_SUBDIR)/libiberty" ; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           install-info) \
-	  || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-install-pdf-target-libiberty install-pdf-target-libiberty
-maybe-install-pdf-target-libiberty:
-@if target-libiberty
-maybe-install-pdf-target-libiberty: install-pdf-target-libiberty
-
-install-pdf-target-libiberty: \
-    configure-target-libiberty \
-    pdf-target-libiberty 
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS) \
-	echo "Doing install-pdf in $(TARGET_SUBDIR)/libiberty" ; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           install-pdf) \
-	  || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-install-html-target-libiberty install-html-target-libiberty
-maybe-install-html-target-libiberty:
-@if target-libiberty
-maybe-install-html-target-libiberty: install-html-target-libiberty
-
-install-html-target-libiberty: \
-    configure-target-libiberty \
-    html-target-libiberty 
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS) \
-	echo "Doing install-html in $(TARGET_SUBDIR)/libiberty" ; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           install-html) \
-	  || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-installcheck-target-libiberty installcheck-target-libiberty
-maybe-installcheck-target-libiberty:
-@if target-libiberty
-maybe-installcheck-target-libiberty: installcheck-target-libiberty
-
-installcheck-target-libiberty: \
-    configure-target-libiberty 
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS) \
-	echo "Doing installcheck in $(TARGET_SUBDIR)/libiberty" ; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           installcheck) \
-	  || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-mostlyclean-target-libiberty mostlyclean-target-libiberty
-maybe-mostlyclean-target-libiberty:
-@if target-libiberty
-maybe-mostlyclean-target-libiberty: mostlyclean-target-libiberty
-
-mostlyclean-target-libiberty: 
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS) \
-	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libiberty" ; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           mostlyclean) \
-	  || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-clean-target-libiberty clean-target-libiberty
-maybe-clean-target-libiberty:
-@if target-libiberty
-maybe-clean-target-libiberty: clean-target-libiberty
-
-clean-target-libiberty: 
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS) \
-	echo "Doing clean in $(TARGET_SUBDIR)/libiberty" ; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           clean) \
-	  || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-distclean-target-libiberty distclean-target-libiberty
-maybe-distclean-target-libiberty:
-@if target-libiberty
-maybe-distclean-target-libiberty: distclean-target-libiberty
-
-distclean-target-libiberty: 
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS) \
-	echo "Doing distclean in $(TARGET_SUBDIR)/libiberty" ; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           distclean) \
-	  || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-maintainer-clean-target-libiberty maintainer-clean-target-libiberty
-maybe-maintainer-clean-target-libiberty:
-@if target-libiberty
-maybe-maintainer-clean-target-libiberty: maintainer-clean-target-libiberty
-
-maintainer-clean-target-libiberty: 
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(NORMAL_TARGET_EXPORTS) \
-	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libiberty" ; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libiberty && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           maintainer-clean) \
-	  || exit 1
-
-@endif target-libiberty
-
-
-
-
-
 .PHONY: configure-target-libffi maybe-configure-target-libffi
 maybe-configure-target-libffi:
 @if gcc-bootstrap
@@ -42665,7 +42190,6 @@
 configure-target-libtermcap: stage_last
 configure-target-winsup: stage_last
 configure-target-libgloss: stage_last
-configure-target-libiberty: stage_last
 configure-target-libffi: stage_last
 configure-target-libjava: stage_last
 configure-target-zlib: stage_last
@@ -42693,7 +42217,6 @@
 configure-target-libtermcap: maybe-all-gcc
 configure-target-winsup: maybe-all-gcc
 configure-target-libgloss: maybe-all-gcc
-configure-target-libiberty: maybe-all-gcc
 configure-target-libffi: maybe-all-gcc
 configure-target-libjava: maybe-all-gcc
 configure-target-zlib: maybe-all-gcc
@@ -43400,7 +42923,6 @@
 configure-target-boehm-gc: maybe-all-target-libstdc++-v3
 configure-target-fastjar: maybe-configure-target-zlib
 all-target-fastjar: maybe-all-target-zlib
-all-target-fastjar: maybe-all-target-libiberty
 configure-target-libgo: maybe-configure-target-libffi
 configure-target-libgo: maybe-all-target-libstdc++-v3
 all-target-libgo: maybe-all-target-libffi
@@ -43412,9 +42934,7 @@
 all-target-libjava: maybe-all-target-boehm-gc
 all-target-libjava: maybe-all-target-libffi
 configure-target-libobjc: maybe-configure-target-boehm-gc
-all-target-libobjc: maybe-all-target-libiberty
 all-target-libobjc: maybe-all-target-boehm-gc
-all-target-libstdc++-v3: maybe-all-target-libiberty
 configure-target-libstdc++-v3: maybe-configure-target-libgomp
 
 configure-stage1-target-libstdc++-v3: maybe-configure-stage1-target-libgomp
@@ -43432,10 +42952,7 @@
 all-stageprofile-target-libstdc++-v3: maybe-configure-stageprofile-target-libgomp
 all-stagefeedback-target-libstdc++-v3: maybe-configure-stagefeedback-target-libgomp
 all-target-libgloss: maybe-all-target-newlib
-all-target-winsup: maybe-all-target-libiberty
 all-target-winsup: maybe-all-target-libtermcap
-configure-target-libiberty: maybe-all-binutils
-configure-target-libiberty: maybe-all-ld
 configure-target-newlib: maybe-all-binutils
 configure-target-newlib: maybe-all-ld
 configure-target-libgfortran: maybe-all-target-libquadmath
@@ -43473,7 +42990,6 @@
 configure-target-libtermcap: maybe-all-target-libgcc
 configure-target-winsup: maybe-all-target-libgcc
 configure-target-libgloss: maybe-all-target-libgcc
-configure-target-libiberty: maybe-all-target-libgcc
 configure-target-libffi: maybe-all-target-libgcc
 configure-target-libjava: maybe-all-target-libgcc
 configure-target-zlib: maybe-all-target-libgcc
@@ -43505,7 +43021,6 @@
 configure-target-winsup: maybe-all-target-newlib maybe-all-target-libgloss
 
 
-
 configure-target-libffi: maybe-all-target-newlib maybe-all-target-libgloss
 
 configure-target-libjava: maybe-all-target-newlib maybe-all-target-libgloss
diff --git a/configure b/configure
index d933ccf..eac5bc7 100755
--- a/configure
+++ b/configure
@@ -2668,9 +2668,8 @@
 
 # these libraries are built for the target environment, and are built after
 # the host libraries and the host tools (which may be a cross compiler)
-#
+# Note that libiberty is not a target library.
 target_libraries="target-libgcc \
-		target-libiberty \
 		target-libgloss \
 		target-newlib \
 		target-libgomp \
@@ -3044,51 +3043,6 @@
     ;;
 esac
 
-# Disable target libiberty for some systems.
-case "${target}" in
-  *-*-kaos*)
-    # Remove unsupported stuff on all kaOS configurations.
-    skipdirs="target-libiberty"
-    ;;
-  *-*-netbsd*)
-    # Skip some stuff on all NetBSD configurations.
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  *-*-netware*)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  *-*-rtems*)
-    skipdirs="${skipdirs} target-libiberty"
-    ;;
-  *-*-tpf*)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  *-*-vxworks*)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  sh*-*-pe|mips*-*-pe|*arm-wince-pe)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  arm*-*-symbianelf*|arm*-*-linux-androideabi)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  avr-*-*)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  picochip-*-*)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  mips*-sde-elf*)
-    skipdirs="$skipdirs target-libiberty"
-    ;;
-  ip2k-*-*)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-esac
-
 # Disable libstdc++-v3 for some systems.
 case "${target}" in
   *-*-vxworks*)
@@ -6430,27 +6384,6 @@
   fi
 done
 
-# Sometimes the tools are distributed with libiberty but with no other
-# libraries.  In that case, we don't want to build target-libiberty.
-# Don't let libgcc imply libiberty either.
-if test -n "${target_configdirs}" ; then
-  libgcc=
-  others=
-  for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
-    if test "$i" = "libgcc"; then
-      libgcc=target-libgcc
-    elif test "$i" != "libiberty" ; then
-      if test -r $srcdir/$i/configure ; then
-	others=yes;
-	break;
-      fi
-    fi
-  done
-  if test -z "${others}" ; then
-    target_configdirs=$libgcc
-  fi
-fi
-
 # Quietly strip out all directories which aren't configurable in this tree.
 # This relies on all configurable subdirectories being autoconfiscated, which
 # is now the case.
diff --git a/configure.ac b/configure.ac
index 6ed08da..b88a821 100644
--- a/configure.ac
+++ b/configure.ac
@@ -149,9 +149,8 @@
 
 # these libraries are built for the target environment, and are built after
 # the host libraries and the host tools (which may be a cross compiler)
-#
+# Note that libiberty is not a target library.
 target_libraries="target-libgcc \
-		target-libiberty \
 		target-libgloss \
 		target-newlib \
 		target-libgomp \
@@ -490,51 +489,6 @@
     ;;
 esac
 
-# Disable target libiberty for some systems.
-case "${target}" in
-  *-*-kaos*)
-    # Remove unsupported stuff on all kaOS configurations.
-    skipdirs="target-libiberty"
-    ;;
-  *-*-netbsd*)
-    # Skip some stuff on all NetBSD configurations.
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  *-*-netware*)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  *-*-rtems*)
-    skipdirs="${skipdirs} target-libiberty"
-    ;;
-  *-*-tpf*)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  *-*-vxworks*)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  sh*-*-pe|mips*-*-pe|*arm-wince-pe)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  arm*-*-symbianelf*|arm*-*-linux-androideabi)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  avr-*-*)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  picochip-*-*)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-  mips*-sde-elf*)
-    skipdirs="$skipdirs target-libiberty"
-    ;;
-  ip2k-*-*)
-    noconfigdirs="$noconfigdirs target-libiberty"
-    ;;
-esac
-
 # Disable libstdc++-v3 for some systems.
 case "${target}" in
   *-*-vxworks*)
@@ -1965,27 +1919,6 @@
   fi
 done
 
-# Sometimes the tools are distributed with libiberty but with no other
-# libraries.  In that case, we don't want to build target-libiberty.
-# Don't let libgcc imply libiberty either.
-if test -n "${target_configdirs}" ; then
-  libgcc=
-  others=
-  for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
-    if test "$i" = "libgcc"; then
-      libgcc=target-libgcc
-    elif test "$i" != "libiberty" ; then
-      if test -r $srcdir/$i/configure ; then
-	others=yes;
-	break;
-      fi
-    fi
-  done
-  if test -z "${others}" ; then
-    target_configdirs=$libgcc
-  fi
-fi
-
 # Quietly strip out all directories which aren't configurable in this tree.
 # This relies on all configurable subdirectories being autoconfiscated, which
 # is now the case.
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index cb790da..178a732 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,11 @@
+2011-06-24  Diego Novillo  <dnovillo@google.com>
+
+	* repro_fail: New.
+
+2011-06-21  Joseph Myers  <joseph@codesourcery.com>
+
+	* gcc_update (gcc/config/avr/avr-tables.opt): New dependencies.
+
 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
 
 	* gcc_update (gcc/config/arm/arm-tables.opt): Also depend on
diff --git a/contrib/gcc_update b/contrib/gcc_update
index 30bf3aa..3eba6c6 100755
--- a/contrib/gcc_update
+++ b/contrib/gcc_update
@@ -81,6 +81,7 @@
 gcc/fixinc/fixincl.x: gcc/fixinc/fixincl.tpl gcc/fixinc/inclhack.def
 gcc/config/arm/arm-tune.md: gcc/config/arm/arm-cores.def gcc/config/arm/gentune.sh
 gcc/config/arm/arm-tables.opt: gcc/config/arm/arm-arches.def gcc/config/arm/arm-cores.def gcc/config/arm/arm-fpus.def gcc/config/arm/genopt.sh
+gcc/config/avr/avr-tables.opt: gcc/config/avr/avr-mcus.def gcc/config/avr/genopt.sh
 gcc/config/m68k/m68k-tables.opt: gcc/config/m68k/m68k-devices.def gcc/config/m68k/m68k-isas.def gcc/config/m68k/m68k-microarchs.def gcc/config/m68k/genopt.sh
 gcc/config/mips/mips-tables.opt: gcc/config/mips/mips-cpus.def gcc/config/mips/genopt.sh
 gcc/config/rs6000/rs6000-tables.opt: gcc/config/rs6000/rs6000-cpus.def gcc/config/rs6000/genopt.sh
diff --git a/contrib/repro_fail b/contrib/repro_fail
new file mode 100755
index 0000000..8100456
--- /dev/null
+++ b/contrib/repro_fail
Binary files differ
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 361b584..76025df 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,608 @@
-2011-06-20  Changpeng Fang <changpeng.fang@amd.com>
+2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
+
+	PR target/47997
+	* config/darwin.c (darwin_mergeable_string_section): Place string
+	constants in '.cstring' rather than '.const' when CF/NSStrings are
+	active.
+
+2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
+	(emit_save_register_window): Likewise.
+	(sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
+	(sparc_flat_expand_prologue): Add comment.  Always emit blockage.
+	Swap back %o7/%i7 in register naming.
+
+2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
+
+	PR driver/49371
+	* config/darwin.c (darwin_override_options): Improve warning when
+	mdynamic-no-pic is given together with fPIC/fpic, also warn when it
+	is given with fpie/fPIE.
+	* config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
+	* config/darwin9.h (PIE_SPEC): New.
+
+2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
+
+	* timevar.c (timevar_print): Increase width for display of timevar
+	name.
+
+2011-06-24  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/46400
+	* c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
+	instead of TYPE_CHAIN for chain_next for types.
+
+2011-06-24  Richard Henderson  <rth@redhat.com>
+
+	* config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
+	(create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
+	* config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
+	(gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
+	(sparc_flat_expand_prologue): Emit individual instructions
+	instead of one of the above.
+
+2011-06-24  Easwaran Raman  <eraman@google.com>
+
+	PR rtl-optimization/49429
+	PR target/49454
+	* expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
+	MEM_EXPR(y) addressable if emit_block_move_via_libcall is
+	used to copy y into x.
+	* calls.c (initialize_argument_information): Mark
+	an argument addressable if it is passed by invisible reference.
+	(emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
+	if it is passed by reference.
+
+2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR rtl-optimization/49504
+	* rtlanal.c (nonzero_bits1): Properly handle addition or
+	subtraction of a pointer in Pmode if pointers extend unsigned.
+	(num_sign_bit_copies1): Likewise.
+
+2011-06-24  Martin Jambor  <mjambor@suse.cz>
+
+	PR tree-optimizations/49516
+	* tree-sra.c (sra_modify_assign): Choose the safe path for
+	aggregate copies if we also did scalar replacements.
+
+2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+
+	PR target/49335
+	* config/arm/predicates.md (add_operator): New.
+	* config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage
+	in Thumb2.
+
+2011-06-24  Andi Kleen  <ak@linux.intel.com>
+
+	* tree-sra.c (type_internals_preclude_sra_p): Add msg
+	parameter. Split up ifs and report reason in *msg.
+	(reject): Add.
+	(find_var_candiate): Add msg variable.
+	Split up ifs and report reason to reject.
+	(find_param_candidates): Add msg variable.
+	Pass msg to type_internals_preclude_sra_p.
+
+2011-06-23  Jeff Law  <law@redhat.com>
+
+	PR middle-end/48770
+	* reload.h (reload): Change to return a bool.
+	* ira.c (ira): If requested by reload, run a fast DCE pass after
+	reload has completed.  Fix comment typo.
+	* reload1.c (need_dce): New file scoped static.
+	(reload): Set reload_completed here.  Return whether or not a DCE
+	pass after reload is needed.
+	(delete_dead_insn): Set need_dce as needed.
+
+	PR middle-end/49465
+	* tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
+	to detect threading through joiner block.  If there was already
+	an edge to the new target, then do not change the PHI nodes.
+
+2011-06-23  Jakub Jelinek  <jakub@redhat.com>
+
+	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
+	get_pointer_alignment to see if base isn't sufficiently aligned.
+
+2011-06-23  Jan Hubicka  <jh@suse.cz>
+
+	PR tree-optimize/49373
+	* tree-pass.h (all_late_ipa_passes): Declare.
+	* cgraphunit.c (init_lowered_empty_function): Fix properties.
+	(cgraph_optimize): Execute late passes; remove unreachable funcions after
+	materialization.
+	* ipa-inline.c (gate_ipa_inline): Enable only when optimizing or LTOing.
+	* passes.c (all_late_ipa_passes): Declare.
+	(dump_passes, register_pass): Handle late ipa passes.
+	(init_optimization_passes): Move ipa_pta to late passes; schedule fixup_cfg
+	at beggining of all_passes.
+	(apply_ipa_transforms): New function.
+	(execute_one_pass): When doing simple ipa pass, apply all transforms.
+
+2011-06-23  Joseph Myers  <joseph@codesourcery.com>
+
+	* params.c: Include common/common-target.h.  Don't include tm.h.
+	(lang_independent_params): Move from toplev.c.
+	(global_init_params): New.
+	* params.h (global_init_params): Declare.
+	* target.def (default_params): Move to common-target.def.
+	* toplev.c (lang_independent_options): Remove.
+	(lang_independent_params): Move to params.c.
+	(general_init): Use global_init_params.
+	* common/common-target.def (option_default_params): Move from
+	target.def.
+	* common/config/ia64/ia64-common.c: Include params.h.
+	(ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
+	from ia64.c.
+	* common/config/rs6000/rs6000-common.c: Include params.h.
+	(rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
+	from rs6000.c.
+	* common/config/sh/sh-common.c: Include params.h.
+	(sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
+	from sh.c.
+	* common/config/spu/spu-common.c: Include params.h.
+	(spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
+	from spu.c.
+	* config/ia64/ia64.c (ia64_option_default_params,
+	TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
+	* config/rs6000/rs6000.c (rs6000_option_default_params,
+	TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
+	* config/sh/sh.c (sh_option_default_params,
+	TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
+	* config/spu/spu.c (spu_option_default_params,
+	TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
+	* Makefile.in (OBJS): Remove params.o.
+	(OBJS-libcommon-target): Add params.o.
+	(params.o, $(common_out_object_file)): Update dependencies.
+	* doc/tm.texi: Regenerate.
+
+2011-06-23  Alan Modra  <amodra@gmail.com>
+
+	PR bootstrap/49383
+	* config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
+	invocation for 2011-06-09 changes.
+
+2011-06-22  Jakub Jelinek  <jakub@redhat.com>
+
+	PR libgomp/49490
+	* omp-low.c (expand_omp_for_static_nochunk): Only
+	use n ceil/ nthreads size for the first
+	n % nthreads threads in the team instead of
+	all threads except for the last few ones which
+	get less work or none at all.
+
+	PR debug/49496
+	* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
+	uses.
+
+2011-06-22  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/49493
+	* tree-ssa-structalias.c (get_constraint_for_ssa_var):
+	Refer to the alias target of variables.
+	(associate_varinfo_to_alias_1): Remove.
+	(ipa_pta_execute): Do not associate aliases with anything.
+	* cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
+	(cgraph_function_node): Likewise.
+	(cgraph_function_or_thunk_node): Likewise.
+	(varpool_variable_node): Likewise.
+
+2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
+
+	* config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect
+	typo.
+	* config.gcc (arm*-*-linux*): Default to gnu tls.
+	(arm*-*-*): Add --with-tls option.
+	(all_defaults): Add 'tls'.
+
+2011-06-22  Richard Henderson  <rth@redhat.com>
+
+	* reg-notes.def (REG_CFA_WINDOW_SAVE): New.
+	* dwarf2out.c (dwarf2out_frame_debug): Handle it.
+	(dwarf2out_frame_debug_cfa_window_save): Rename from
+	dwarf2out_window_save; make static.
+	* tree.h (dwarf2out_window_save): Don't declare.
+
+	* config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
+	(TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
+	(emit_save_register_window): Rename from gen_save_register_window;
+	emit the insn and add REG_CFA_* notes.
+	(sparc_expand_prologue): Update to match.
+	* config/sparc/sparc.md (save_register_window_1): Simplify from
+	save_register_window<P:mode>.
+
+2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR target/49497
+	* config/i386/i386.md (*lea_general_2): Always allow SImode.
+	(*lea_general_2_zext): Likewise.
+	(imul to lea peepholes): Use const359_operand and check
+	TARGET_PARTIAL_REG_STALL.
+
+	* config/i386/predicates.md (const359_operand): New.
+
+2011-06-22  Michael Matz  <matz@suse.de>
+
+	* cgraphunit.c (assemble_thunk): Use correct return type.
+
+2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
+	Dmitry Melnik  <dm@ispras.ru>
+
+	* config/arm/arm.c (neon_immediate_valid_for_shift): New function.
+	(neon_output_shift_immediate): Ditto.
+	* config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
+	prototype.
+	(neon_output_shift_immediate): Ditto.
+	* config/arm/neon.md (vashl<mode>3): Modified constraint.
+	(vashr<mode>3_imm): New insn pattern.
+	(vlshr<mode>3_imm): Ditto.
+	(vashr<mode>3): Modified constraint.
+	(vlshr<mode>3): Ditto.
+	* config/arm/predicates.md (imm_for_neon_lshift_operand): New
+	predicate.
+	(imm_for_neon_rshift_operand): Ditto.
+	(imm_lshift_or_reg_neon): Ditto.
+	(imm_rshift_or_reg_neon): Ditto.
+
+	* optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
+
+2011-06-22  Jakub Jelinek  <jakub@redhat.com>
+
+	* tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
+	builtin calls even if likelyvalue is not CONSTANT.
+	Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
+	Return get_value_for_expr of first operand
+	for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
+	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
+	BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
+	their non-checking counterparts.
+	(call_may_clobber_ref_p_1): Likewise.
+	(stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
+	like their non-checking counterparts.
+	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
+	Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
+	like their non-checking counterparts.
+	(find_func_clobbers): Likewise.
+	* tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
+	like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
+
+	* dwarf2out.c (size_of_loc_descr, output_loc_operands,
+	mark_base_types, hash_loc_operands, compare_loc_operands): Allow
+	DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
+	of base type reference as argument.
+	(resolve_addr_in_expr): Likewise.  Fix keep computation.
+	(convert_descriptor_to_signed): Renamed to...
+	(convert_descriptor_to_mode): ... this.  For wider types convert
+	to unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to
+	untyped.
+	(typed_binop): New function.
+	(scompare_loc_descriptor, ucompare_loc_descriptor,
+	minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
+	default to unsigned type instead of signed.
+
+	PR debug/47858
+	* gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
+	(gimple_build_debug_source_bind_stat): New prototype.
+	(gimple_build_debug_source_bind): Define.
+	(gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
+	gimple_debug_source_bind_get_value,
+	gimple_debug_source_bind_get_value_ptr,
+	gimple_debug_source_bind_set_var,
+	gimple_debug_source_bind_set_value): New inlines.
+	* gimple.c (gimple_build_debug_source_bind_stat): New function.
+	* gimple-pretty-print.c (dump_gimple_debug): Handle
+	GIMPLE_DEBUG_SOURCE_BIND.
+	* sese.c (rename_uses): Handle gimple_debug_source_bind_p.
+	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
+	* tree-parloops.c (eliminate_local_variables,
+	separate_decls_in_region): Likewise.
+	(separate_decls_in_region_debug): Renamed from
+	separate_decls_in_region_debug_bind.  Handle
+	gimple_debug_source_bind_p.
+	* tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
+	prototypes.
+	(DECL_HAS_DEBUG_ARGS_P): Define.
+	(struct tree_function_decl): Add has_debug_args_flag field.
+	* tree.c (debug_args_for_decl): New variable.
+	(decl_debug_args_lookup, decl_debug_args_insert): New functions.
+	* tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
+	(rewrite_debug_stmt_uses): New function.
+	(rewrite_stmt): Use it to rewrite debug stmt uses.
+	* rtl.def (DEBUG_PARAMETER_REF): New.
+	* rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
+	* cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
+	DEBUG_PARAMETER_REF.
+	* rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
+	* print-rtl.c (print_rtx): Likewise.
+	* tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
+	SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
+	debug stmts in the first bb.
+	* tree-inline.c (remap_ssa_name): If remapping default def
+	of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
+	a source bind debug stmt.
+	(remap_gimple_stmt): Handle gimple_debug_source_bind_p.
+	(maybe_move_debug_stmts_to_successors): Likewise.
+	(copy_debug_stmt): Likewise.  Avoid shadowing a variable.
+	(tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
+	debug args vector from old_decl to new_decl.
+	* ipa-prop.c (ipa_modify_call_arguments): For optimized away
+	or modified parameters, add debug bind stmts before call
+	setting DEBUG_EXPR_DECL which is remembered in debug args
+	vector.
+	* cfgexpand.c (expand_call_stmt): Call expand_debug_expr
+	on DECL_DEBUG_EXPRs from debug args vector.
+	(expand_debug_source_expr): New function.
+	(expand_debug_locations): Use it for source bind insns.
+	(expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
+	* var-tracking.c (prepare_call_arguments): Add debug args
+	to call_arguments if any.
+	* dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
+	output_loc_operands, output_loc_operands_raw,
+	resolve_addr_in_expr, compare_loc_operands): Handle
+	DW_OP_GNU_parameter_ref.
+	(get_ref_die_offset, parameter_ref_descriptor): New functions.
+	(mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
+	(gen_subprogram_die): Handle parameters identified by
+	DEBUG_PARAMETER_REF.
+
+2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
+
+	* doc/invoke.texi (ARM Options): Document -mtls-dialect option.
+	* doc/install.texi (Configuration): Document --with-tls.
+	* config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
+	(arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
+	(arm_tls_descseq_addr): New.
+	(legitimize_tls_address): Add tlsdesc support.
+	(arm_cannot_copy_insn_p): Check for tlscall.
+	(arm_emit_tls_decoration): Likewise.
+	* config/arm/arm.h (TARGET_GNU2_TLS): New.
+	(OPTION_DEFAULT_SPECS): Add with-tls support.
+	* config/arm/arm.md (R1_REGNUM): Define.
+	(tlscall): New.
+	* config/arm/arm.opt (tls_type): New enumeration type and values.
+	(mtls-dialect): New switch.
+	* config/arm/arm-opts.h (enum tls_type): New.
+
+2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+	* attribs.c (register_attribute): Added assert to check that all
+	attribute specs are registered with a name that is not empty and
+	does not start with '_'.
+	(decl_attributes): Avoid the lookup of the "naked" attribute spec
+	if the function has no attributes.
+	* tree.c (is_attribute_with_length_p): Removed.
+	(is_attribute_p): Removed.
+	(private_is_attribute_p): New.  
+	(private_lookup_attribute): New.
+	(lookup_attribute): Removed.
+	(lookup_ident_attribute): New.
+	(remove_attribute): Require the first argument to be in the form
+	'text', not '__text__'.  Updated asserts.
+	(merge_attributes): Use lookup_ident_attributes instead of
+	lookup_attribute.
+	(merge_dllimport_decl_attributes): Use remove_attribute.
+	(attribute_list_contained): Likewise.
+	(attribute_list_equal): Immediately return 1 if the arguments are
+	identical pointers.
+	* tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
+	'int'.  Require the first argument to be in the form 'text', not
+	'__text__'.  Require the second argument to be an identifier.
+	(lookup_attribute): Made inline.  Require the first argument to be
+	in the form 'text', not '__text__'.
+	(private_is_attribute_p, private_lookup_attribute): New.
+	Updated comments.
+	
+2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
+
+	* builtins.c: Add sync_ or SYNC__ to builtin names.
+	* sync-builtins.def: Add sync_ or SYNC__ to builtin names.
+	* omp-low.c: Add sync_ or SYNC__ to builtin names.
+
+2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/33049
+	* config/avr/avr.md (extzv): New expander.
+	(*extzv): New insn.
+	(*extzv.qihi1, *extzv.qihi2): New insn-and-split.
+	* config/avr/constraints.md (C04): New constraint.
+	* doc/md.texi (Machine Constraints): Document it.
+
+2011-06-21  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/49489
+	* builtins.c (expand_builtin_unop): Call expand_unop with 0 as
+	unsignedp argument instead of 1 for clrsb_optab.
+	(fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
+	and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
+	(fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
+	* optabs.c (widen_leading): Call widen_operand and expand_unop
+	with 0 as unsignedp argument instead of 1 for clrsb_optab.
+	(expand_unop): Subtract difference of mode sizes also for clrsb_optab.
+
+2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
+
+	* config/avr/avr.md (*jcindirect_jump): Fix build warning.
+
+2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
+
+	* gensupport.c (add_define_attr): New static function.
+	(is_predicable): Allow multi-alternative lists for the "predicable"
+	attribute.
+	(modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
+	(process_one_cond_exec): Call alter_attrs_for_insn.
+	* doc/md.texi (Defining Attributes): Mention some standard names.
+	(Conditional Execution): Update documentation for "predicable".
+
+	* doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
+	__builtin_clrsbll): Document.
+	* doc/rtl.texi (clrsb): New entry.
+	* optabs.c (widen_leading): Renamed from widen_clz.  New argument
+	UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
+	(expand_unop): Handle clrsb_optab.
+	(init_optabs): Initialize it.
+	* optabs.h (enum optab_index): New entry OTI_clrsb.
+	(clrsb_optab): Define.
+	* genopinit.c (optabs): Add an entry for it.
+	* builtins.c (expand_builtin): Handle clrsb builtin functions.
+	* builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
+	BUILT_IN_CLRSBLL): New.
+	* rtl.def (CLRSB): New code.
+	* dwarf2out.c (mem_loc_descriptor): Handle it.
+	* simplify-rtx.c (simplify_const_unary_operation): Likewise.
+	Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
+	and popcount.
+	* libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
+	* libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
+	(__ctzDI2): Move declaration.
+	* config/bfin/bfin.md (clrsbsi2): New expander.
+	(signbitssi2): Use the CLRSB rtx.
+	(clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
+	* config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
+
+2011-06-21  Richard Guenther  <rguenther@suse.de>
+
+	* ipa-inline-transform.c (inline_transform): Fix previous change.
+
+2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
+
+	PR tree-optimization/49478
+	* tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
+	with constant operand.
+
+2011-06-21  Richard Guenther  <rguenther@suse.de>
+
+	* ipa-inline-transform.c (inline_transform): Fix typo.
+
+2011-06-21  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/49483
+	* tree-vect-stmts.c (vectorizable_assignment): Also handle
+	VIEW_CONVERT_EXPR conversions.
+
+2011-06-21  Joseph Myers  <joseph@codesourcery.com>
+
+	* config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
+	* config/avr/avr-tables.opt: New file (generated).
+	* config.gcc (avr-*-*): Use avr/avr-tables.opt.
+	* config/avr/avr-devices.c (avr_mcu_types): Move contents to
+	avr-mcus.def.
+	* config/avr/avr.c (avr_help, TARGET_HELP): Remove.
+	(avr_option_override): Don't process -mmcu= argument here.  Set
+	avr_current_device using avr_mcu_index.
+	(avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
+	* config/avr/avr.opt (mmcu=): Use Enum.
+	* config/avr/t-avr (avr-devices.o): Update dependencies.
+	($(srcdir)/config/avr/avr-tables.opt): New.
+	* target.def (help): Remove.
+	* doc/tm.texi.in (TARGET_HELP): Remove.
+	* doc/tm.texi: Regenerate.
+	* opts.c: Don't include target.h.
+	(common_handle_option): Don't call targetm.help.
+	* system.h (TARGET_HELP): Poison.
+	* Makefile.in (opts.o): Update dependencies.
+
+2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	* config/usegld.h: New file.
+	* config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
+	(CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
+	(LIB_SPEC): Likewise.  Search /lib.
+	(LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
+	(RDYNAMIC_SPEC): Handle GNU ld.
+	[HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
+	Define.
+	(SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
+	(SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
+	[!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
+	(STACK_CHECK_STATIC_BUILTIN): Define.
+	* config/sol2.opt (compat-bsd): Remove.
+	* config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
+	* config/sol2-bi.h: New file.
+	* config/sol2-gld.h: Remove.
+	* config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
+	(NO_DBX_BNSYM_ENSYM): Remove.
+	(SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
+	(STACK_CHECK_STATIC_BUILTIN): Remove.
+	Test USE_GLD instead of TARGET_GNU_LD.
+	* config/i386/sol2-10.h: Rename to ...
+	* config/i386/sol2-bi.h .. this.
+	(SUBTARGET_EXTRA_SPECS): Redefine.
+	(WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
+	(MULTILIB_DEFAULTS): Remove.
+	(DEFAULT_ARCH32_P): Define.
+	(LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
+	(ARCH64_SUBDIR): Define.
+	Test USE_GLD instead of TARGET_GNU_LD.
+	(I386_EMULATION): Rename to ...
+	(ARCH32_EMULATION): ... this.
+	(X86_64_EMULATION): Rename to ...
+	(ARCH64_EMULATION): ... this.
+	(TARGET_LD_EMULATION): Remove.
+	(LINK_ARCH_SPEC): Remove.
+	* config/i386/sol2-gas.h: Remove.
+	* config/i386/t-sol2-10: Rename to ...
+	* config/i386/t-sol2-64: ... this.
+	* config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
+	(AS_SPARC64_FLAG): Define.
+	(ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
+	(CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
+	depending on TARGET_CPU_DEFAULT.
+	(CPP_CPU_SPEC): Redefine.
+	(ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
+	(CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
+	(CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
+	(ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
+	ASM_ARCH_DEFAULT_SPEC): Redefine.
+	(SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
+	LINK_ARCH_DEFAULT_SPEC.
+	[USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
+	[USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
+	(ARCH64_SUBDIR): Define.
+	(LINK_ARCH64_SPEC): Redefine.
+	(CC1_SPEC): Redefine.
+	(OPTION_DEFAULT_SPECS): Redefine.
+	(MULTILIB_DEFAULTS): Define.
+	(WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
+	[USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
+	[USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
+	(NO_DBX_BNSYM_ENSYM): Remove.
+	(SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
+	(ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
+	(TARGET_ASM_NAMED_SECTION): Likewise.
+	(STACK_CHECK_STATIC_BUILTIN): Remove.
+	* config/sparc/sol2-bi.h: Remove.
+	* config/sparc/sol2-gas-bi.h: Remove.
+	* config/sparc/sol2-gas.h: Remove.
+	* config/sparc/sol2-gld-bi.h: Remove.
+	* config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
+	common parts ...
+	(*-*-solaris2*): ... here.
+
+2011-06-21  Christian Bruel  <christian.bruel@st.com>
+
+	PR other/43564
+	* ipa-inline.c (can_inline_edge_p): Check
+	!DECL_DISREGARD_INLINE_LIMITS.
+
+2011-06-21  Christian Bruel  <christian.bruel@st.com>
+
+	PR middle-end/49139
+	* cgraphunit.c (process_function_and_variable_attributes): warn when
+	always_inline functions that are not inline.
+	* ipa-inline-transform.c (inline_transform): Always call
+	optimize_inline.
+	* tree-inline.c (tree_inlinable_function_p): Use error instead
+	of sorry.
+	(expand_call_inline): Likewise.
+
+2011-06-21  Jakub Jelinek  <jakub@redhat.com>
+
+	* Makefile.in (dg_target_exps): Set.
+	(check_gcc_parallelize): Parallelize gcc testing into 10 jobs
+	instead of 7, try to divide it more evenly.
+
+2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
 
         PR i386/49089
 	* config/i386/i386.c (avx256_split_unaligned_load): New definition.
@@ -38,9 +642,8 @@
 
 2011-06-20  Kai Tietz  <ktietz@redhat.com>
 
-	* fold-const.c (fold_binary_loc): Add missing
-	folding for truth-not operations in combination
-	with binary and.
+	* fold-const.c (fold_binary_loc): Add missing folding for truth-not
+	operations in combination with binary and.
 
 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
 
@@ -60,8 +663,7 @@
 
 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
 
-	* longlong.h (count_leading_zeros): Use long long builtin for
-	x86-64.
+	* longlong.h (count_leading_zeros): Use long long builtin for x86-64.
 	(count_trailing_zeros): Likewise.
 
 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
@@ -142,8 +744,7 @@
 	* tree-ssa-threadupdate.c (struct redirection_data): New field
 	intermediate_edge.
 	(THREAD_TARGET2): Define.
-	(redirection_data_eq): Also check that the intermediate edge is
-	equal.
+	(redirection_data_eq): Also check that the intermediate edge is equal.
 	(lookup_redirection_data): Drop useless argument.  Extract the
 	outgoing_edge and intermediate edge from E.  Callers updated.
 	(copy_phi_args, update_destination_phis): New functions.
@@ -156,14 +757,13 @@
 	edge to the duplicate of the joiner block.
 	(thread_block): Don't muck up loops when threading through a joiner
 	block.
-	(thread_through_loop_header): Handle threading through a joiner
-	block.
+	(thread_through_loop_header): Handle threading through a joiner block.
 	(mark_threaded_blocks, register_jump_thread): Likewise.
 	* tree-flow.h (register_jump_thread): Add new argument.  Callers
 	updated.
 	* tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
 	(thread_across_edge): Handle threading through a joiner block.
-	
+
 2011-06-16  Martin Jambor  <mjambor@suse.cz>
 
 	PR tree-optimization/49343
@@ -178,8 +778,8 @@
 2011-06-16  Tom de Vries  <tom@codesourcery.com>
 
 	PR target/45098
-	* tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): Disallow
-	NULL pointer for pointer arithmetic.
+	* tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
+	Disallow NULL pointer for pointer arithmetic.
 
 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
 
@@ -288,7 +888,8 @@
 	* config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
 	(xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
 	(xtensa_function_arg_1): Likewise.
-	* config/stormy16/stormy16.c (xstormy16_function_arg_advance): Likewise.
+	* config/stormy16/stormy16.c (xstormy16_function_arg_advance):
+	Likewise.
 	(xstormy16_function_arg): Likewise.
 	* config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
 	(fr30_arg_partial_bytes, fr30_function_arg): Likewise.
@@ -369,7 +970,8 @@
 	* config/mips/mips.c (mips_output_args_xfer): Likewise.
 	* config/s390/s390.c (s390_call_saved_register_used): Likewise.
 	* config/sh/sh.c (sh_output_mi_thunk): Likewise.
-	* config/microblaze/microblaze.c (microblaze_expand_prologue): Likewise.
+	* config/microblaze/microblaze.c (microblaze_expand_prologue):
+	Likewise.
 	* config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
 	m32r_pass_by_reference.
 
@@ -377,19 +979,17 @@
 
 	* tree-vectorizer.h (vect_recog_func_ptr): Change the first
 	argument to be a VEC of statements.
-	* tree-vect-loop.c (vect_determine_vectorization_factor):
-	Remove the assert that pattern statements have to have their
-	vector type set.
+	* tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
+	assert that pattern statements have to have their vector type set.
 	* tree-vect-patterns.c (vect_recog_widen_sum_pattern):
 	Change the first argument to be a VEC of statements.  Update
 	documentation.
 	(vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
 	(vect_handle_widen_mult_by_const): New function.
-	(vect_recog_widen_mult_pattern):  Change the first argument to
-	be a VEC of statements.  Update documentation.  Check that the
-	constant is INTEGER_CST.  Support multiplication by a constant
-	that fits an intermediate type - call
-	vect_handle_widen_mult_by_const.
+	(vect_recog_widen_mult_pattern):  Change the first argument to be a
+	VEC of statements.  Update documentation.  Check that the constant is
+	INTEGER_CST.  Support multiplication by a constant that fits an
+	intermediate type - call vect_handle_widen_mult_by_const.
 	(vect_pattern_recog_1): Update vect_recog_func_ptr and its
 	call.  Handle additional pattern statements if necessary.
 
@@ -414,13 +1014,10 @@
 	(count_leading_zeros): New macro.
 	(count_trailing_zeros): New macro.
 	(COUNT_LEADING_ZEROS_0): New macro.
-	* config/avr/t-avr (LIB1ASMFUNCS): Add
-	_ffssi2, _ffshi2, _loop_ffsqi2,
-	_ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2,
-	_paritydi2, _paritysi2, _parityhi2,
-	_popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
-	_bswapsi2, _bswapdi2,
-	_ashldi3, _ashrdi3, _lshrdi3
+	* config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
+	_ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
+	_parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
+	_bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
 	(LIB2FUNCS_EXCLUDE): Add _clz.
 	* config/avr/libgcc.S (XCALL): Move up in file.
 	(XJMP): New C Macro.
@@ -453,8 +1050,8 @@
 
 	* gimple.c (canonicalize_cond_expr_cond): (bool)x is not
 	the same as x != 0.
-	* fold-const.c (fold_binary_loc): Do not fold X & 1 != 0 to
-	(bool) X & 1.
+	* fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
+	to (bool) X & 1.
 	* ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
 	equality compares against zero for the lower bit.
 
@@ -516,12 +1113,10 @@
 
 	PR debug/49382
 	* dwarf2out.c (dw_loc_list_node): Add force field.
-	(add_var_loc_to_decl): For PARM_DECL, attempt to keep
-	the incoming location in the list, even if it is modified
-	before first real insn.
+	(add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
+	location in the list, even if it is modified before first real insn.
 	(output_loc_list): Emit empty ranges with force flag set.
-	(dw_loc_list): If first range of a PARM_DECL is empty,
-	set force flag.
+	(dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
 
 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
 
@@ -605,8 +1200,7 @@
 	cfglayout.o, $(out_object_file), $(common_out_object_file)):
 	Update dependencies.
 	(common/common-targhooks.o): New.
-	* common/config/default-common.c: Include tm.h.  Add FIXME
-	comment.
+	* common/config/default-common.c: Include tm.h.  Add FIXME comment.
 	* common/config/pa/pa-common.c: Include more headers.  Take
 	copyright dates from pa.c.
 	(pa_option_optimization_table, pa_handle_option,
@@ -800,8 +1394,7 @@
 	v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
 	TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
 	v850-common.c.
-	* config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to
-	vax-common.c.
+	* config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
 	* config/xtensa/xtensa.c (xtensa_option_optimization_table,
 	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
 	Move to xtensa-common.c.
@@ -823,17 +1416,14 @@
 	(init_eh, finish_eh_generation,
 	output_one_function_exception_table): Use
 	targetm_common.except_unwind_info.
-	(switch_to_exception_section): Use
-	targetm_common.have_named_sections.
+	(switch_to_exception_section): Use targetm_common.have_named_sections.
 	* explow.c: Include common/common-target.h.
 	* expr.c: Include common/common-target.h.
-	(build_personality_function): Use
-	targetm_common.except_unwind_info.
+	(build_personality_function): Use targetm_common.except_unwind_info.
 	* function.c: Include common/common-target.h.
 	(expand_function_end): Use targetm_common.except_unwind_info.
 	* haifa-sched.c: Include common/common-target.h.
-	(sched_create_recovery_edges): Use
-	targetm_common.have_named_sections.
+	(sched_create_recovery_edges): Use targetm_common.have_named_sections.
 	* lto-opts.c: Include common/common-target.h instead of target.h.
 	(lto_reissue_options): Use targetm_common.handle_option.
 	* opts.c: Include common/common-target.h.
@@ -852,11 +1442,9 @@
 	* toplev.c: Include common/common-target.h.
 	(process_options): Use targetm_common.have_named_sections.
 	* tree-tailcall.c: Include common/common-target.h.
-	(suitable_for_tail_call_opt_p): Use
-	targetm_common.except_unwind_info.
+	(suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
 	* tree.c: Include common/common-target.h.
-	(build_common_builtin_nodes): Use
-	targetm_common.except_unwind_info.
+	(build_common_builtin_nodes): Use targetm_common.except_unwind_info.
 	* varasm.c: Include common/common-target.h.
 	(resolve_unique_section, hot_function_section,
 	default_function_section): Use targetm_common.have_named_sections.
@@ -873,8 +1461,7 @@
 	(can_escape): New function.
 	(set_usage_bits): Add additional parameter; record information
 	about escaped locations.
-	(record_store): Pass EXPR corresponding to MEM to
-	set_usage_bits.
+	(record_store): Pass EXPR corresponding to MEM to set_usage_bits.
 	(dse_step2_nospill): Set kill_on_calls based on
 	group->escaped_n and group->escaped_n.
 	(add_wild_read): Refactor into...
@@ -882,12 +1469,10 @@
 	(free_read_records): ... New function.
 	(add_non_frame_wild_read): New function.
 	(scan_insn): Call add_non_frame_wild_read on non-const calls.
-	(scan_reads_nospill): Handle instructions with
-	non_frame_wild_read.
+	(scan_reads_nospill): Handle instructions with non_frame_wild_read.
 	(dse_step5_nospill): Call scan_reads_nospill for instructions
 	marked as non_frame_wild_read.
-	(dse_step7): Free escaped_n, escaped_p and kill_on_calls
-	bitmaps.
+	(dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
 
 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
 
@@ -1232,13 +1817,13 @@
 
 2011-06-11  Jan Hubicka  <jh@suse.cz>
 
-	* lto-streamer-out.c (produce_symtab): Stream out the newly represented
-	aliases.
+	* lto-streamer-out.c (produce_symtab): Stream out the newly
+	represented aliases.
 
 2011-06-11  Jan Hubicka  <jh@suse.cz>
 
-	* ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting varying
-	args.
+	* ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
+	varying args.
 	(ipa_update_after_lto_read): Likewise.
 	(ipa_write_node_info): Do not sream call_with_var_arguments.
 	(ipa_read_node_info): Likewise.
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 8a9a318..cfc263e 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20110621
+20110627
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 09f8e8e..9685880 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -501,6 +501,10 @@
 xm_defines=@xm_defines@
 lang_checks=check-gcc
 lang_checks_parallelized=check-gcc
+dg_target_exps:=alpha.exp,arm.exp,avr.exp,bfin.exp,cris.exp,frv.exp
+dg_target_exps:=$(dg_target_exps),i386.exp,ia64.exp,m68k.exp,microblaze.exp
+dg_target_exps:=$(dg_target_exps),mips.exp,powerpc.exp,rx.exp,s390.exp,sh.exp
+dg_target_exps:=$(dg_target_exps),sparc.exp,spu.exp,xstormy16.exp
 # This lists a couple of test files that take most time during check-gcc.
 # When doing parallelized check-gcc, these can run in parallel with the
 # remaining tests.  Each word in this variable stands for work for one
@@ -514,10 +518,14 @@
 # */ prefixed to it in runtest_file_p, it is usually desirable to include
 # a subdirectory name.
 check_gcc_parallelize=execute.exp=execute/2* \
-		      execute.exp=execute/\[013-9a-zA-Z\]* \
-		      compile.exp dg.exp \
-		      dg-torture.exp,builtins.exp \
-		      struct-layout-1.exp,unsorted.exp,stackalign.exp,i386.exp
+		      execute.exp=execute/\[013-9a-fA-F\]* \
+		      execute.exp=execute/\[pP\]*,dg.exp \
+		      execute.exp=execute/\[g-oq-zG-OQ-Z\]*,compile.exp=compile/2* \
+		      compile.exp=compile/\[9pP\]*,builtins.exp \
+		      compile.exp=compile/\[013-8a-oq-zA-OQ-Z\]* \
+		      dg-torture.exp,ieee.exp \
+		      vect.exp,guality.exp,unsorted.exp \
+		      struct-layout-1.exp,stackalign.exp,$(dg_target_exps)
 lang_opt_files=@lang_opt_files@ $(srcdir)/c-family/c.opt $(srcdir)/common.opt
 lang_specs_files=@lang_specs_files@
 lang_tree_files=@lang_tree_files@
@@ -1347,7 +1355,6 @@
 	options-save.o \
 	opts-global.o \
 	opts.o \
-	params.o \
 	passes.o \
 	plugin.o \
 	pointer-set.o \
@@ -1496,8 +1503,8 @@
 
 # Objects in libcommon-target.a, used by drivers and by the core
 # compiler and containing target-dependent code.
-OBJS-libcommon-target = $(common_out_object_file) prefix.o opts-common.o \
-	options.o vec.o hooks.o common/common-targhooks.o
+OBJS-libcommon-target = $(common_out_object_file) prefix.o params.o \
+	opts-common.o options.o vec.o hooks.o common/common-targhooks.o
 
 # This lists all host objects for the front ends.
 ALL_HOST_FRONTEND_OBJS = $(C_OBJS) \
@@ -2842,7 +2849,7 @@
    version.h $(INPUT_H) intl.h $(DIAGNOSTIC_H) diagnostic.def
 opts.o : opts.c $(OPTS_H) $(OPTIONS_H) $(DIAGNOSTIC_CORE_H) $(CONFIG_H) $(SYSTEM_H) \
    coretypes.h $(TM_H) $(RTL_H) \
-   $(DIAGNOSTIC_H) $(INSN_ATTR_H) intl.h $(TARGET_H) $(COMMON_TARGET_H) \
+   $(DIAGNOSTIC_H) $(INSN_ATTR_H) intl.h $(COMMON_TARGET_H) \
    $(FLAGS_H) $(PARAMS_H) opts-diagnostic.h
 opts-global.o : opts-global.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
    $(DIAGNOSTIC_H) $(OPTS_H) $(FLAGS_H) $(GGC_H) $(TREE_H) langhooks.h \
@@ -3530,8 +3537,8 @@
    $(TARGET_H) $(BASIC_BLOCK_H) $(EXPR_H) output.h $(EXCEPT_H) $(TM_P_H) \
    $(OPTABS_H) $(CFGLOOP_H) hard-reg-set.h $(TIMEVAR_H) \
    $(TREE_PASS_H) $(DF_H) $(DBGCNT_H)
-params.o : params.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(PARAMS_H) \
-   $(DIAGNOSTIC_CORE_H)
+params.o : params.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(COMMON_TARGET_H) \
+   $(PARAMS_H) $(DIAGNOSTIC_CORE_H)
 pointer-set.o: pointer-set.c pointer-set.h $(CONFIG_H) $(SYSTEM_H)
 hooks.o: hooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(HOOKS_H)
 pretty-print.o: $(CONFIG_H) $(SYSTEM_H) coretypes.h intl.h $(PRETTY_PRINT_H)
@@ -3556,7 +3563,7 @@
 		$(out_file) $(OUTPUT_OPTION)
 
 $(common_out_object_file): $(common_out_file) $(CONFIG_H) $(SYSTEM_H) \
-    coretypes.h $(COMMON_TARGET_H) $(COMMON_TARGET_DEF_H) \
+    coretypes.h $(COMMON_TARGET_H) $(COMMON_TARGET_DEF_H) $(PARAMS_H) \
     $(DIAGNOSTIC_CORE_H) $(FLAGS_H) $(OPTS_H) $(TM_H) $(TM_P_H) $(MACHMODE_H)
 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
 	  $< $(OUTPUT_OPTION)
diff --git a/gcc/attribs.c b/gcc/attribs.c
index ce977d4..98a6310 100644
--- a/gcc/attribs.c
+++ b/gcc/attribs.c
@@ -198,6 +198,11 @@
 
   str.str = attr->name;
   str.length = strlen (str.str);
+
+  /* Attribute names in the table must be in the form 'text' and not
+     in the form '__text__'.  */
+  gcc_assert (str.length > 0 && str.str[0] != '_');
+
   slot = htab_find_slot_with_hash (attribute_hash, &str,
 				   substring_hash (str.str, str.length),
 				   INSERT);
@@ -279,6 +284,7 @@
   /* A "naked" function attribute implies "noinline" and "noclone" for
      those targets that support it.  */
   if (TREE_CODE (*node) == FUNCTION_DECL
+      && attributes
       && lookup_attribute_spec (get_identifier ("naked"))
       && lookup_attribute ("naked", attributes) != NULL)
     {
diff --git a/gcc/builtins.c b/gcc/builtins.c
index cf975e5..4e8a95f 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -4578,7 +4578,7 @@
   /* Compute op, into TARGET if possible.
      Set TARGET to wherever the result comes back.  */
   target = expand_unop (TYPE_MODE (TREE_TYPE (CALL_EXPR_ARG (exp, 0))),
-			op_optab, op0, target, 1);
+			op_optab, op0, target, op_optab != clrsb_optab);
   gcc_assert (target);
 
   return convert_to_mode (target_mode, target, 0);
@@ -5083,30 +5083,30 @@
 
       switch (fcode)
 	{
-	case BUILT_IN_FETCH_AND_NAND_1:
-	case BUILT_IN_FETCH_AND_NAND_2:
-	case BUILT_IN_FETCH_AND_NAND_4:
-	case BUILT_IN_FETCH_AND_NAND_8:
-	case BUILT_IN_FETCH_AND_NAND_16:
+	case BUILT_IN_SYNC_FETCH_AND_NAND_1:
+	case BUILT_IN_SYNC_FETCH_AND_NAND_2:
+	case BUILT_IN_SYNC_FETCH_AND_NAND_4:
+	case BUILT_IN_SYNC_FETCH_AND_NAND_8:
+	case BUILT_IN_SYNC_FETCH_AND_NAND_16:
 
 	  if (warned_f_a_n)
 	    break;
 
-	  fndecl = implicit_built_in_decls[BUILT_IN_FETCH_AND_NAND_N];
+	  fndecl = implicit_built_in_decls[BUILT_IN_SYNC_FETCH_AND_NAND_N];
 	  inform (loc, "%qD changed semantics in GCC 4.4", fndecl);
 	  warned_f_a_n = true;
 	  break;
 
-	case BUILT_IN_NAND_AND_FETCH_1:
-	case BUILT_IN_NAND_AND_FETCH_2:
-	case BUILT_IN_NAND_AND_FETCH_4:
-	case BUILT_IN_NAND_AND_FETCH_8:
-	case BUILT_IN_NAND_AND_FETCH_16:
+	case BUILT_IN_SYNC_NAND_AND_FETCH_1:
+	case BUILT_IN_SYNC_NAND_AND_FETCH_2:
+	case BUILT_IN_SYNC_NAND_AND_FETCH_4:
+	case BUILT_IN_SYNC_NAND_AND_FETCH_8:
+	case BUILT_IN_SYNC_NAND_AND_FETCH_16:
 
 	  if (warned_n_a_f)
 	    break;
 
-	  fndecl = implicit_built_in_decls[BUILT_IN_NAND_AND_FETCH_N];
+	  fndecl = implicit_built_in_decls[BUILT_IN_SYNC_NAND_AND_FETCH_N];
 	  inform (loc, "%qD changed semantics in GCC 4.4", fndecl);
 	  warned_n_a_f = true;
 	  break;
@@ -5180,7 +5180,7 @@
    the results.  */
 
 static rtx
-expand_builtin_lock_test_and_set (enum machine_mode mode, tree exp,
+expand_builtin_sync_lock_test_and_set (enum machine_mode mode, tree exp,
 				  rtx target)
 {
   rtx val, mem;
@@ -5202,7 +5202,7 @@
 /* Expand the __sync_synchronize intrinsic.  */
 
 static void
-expand_builtin_synchronize (void)
+expand_builtin_sync_synchronize (void)
 {
   gimple x;
   VEC (tree, gc) *v_clobbers;
@@ -5234,7 +5234,7 @@
 /* Expand the __sync_lock_release intrinsic.  EXP is the CALL_EXPR.  */
 
 static void
-expand_builtin_lock_release (enum machine_mode mode, tree exp)
+expand_builtin_sync_lock_release (enum machine_mode mode, tree exp)
 {
   struct expand_operand ops[2];
   enum insn_code icode;
@@ -5255,7 +5255,7 @@
 
   /* Otherwise we can implement this operation by emitting a barrier
      followed by a store of zero.  */
-  expand_builtin_synchronize ();
+  expand_builtin_sync_synchronize ();
   emit_move_insn (mem, const0_rtx);
 }
 
@@ -5580,6 +5580,14 @@
 	return target;
       break;
 
+    CASE_INT_FN (BUILT_IN_CLRSB):
+    case BUILT_IN_CLRSBIMAX:
+      target = expand_builtin_unop (target_mode, exp, target,
+				    subtarget, clrsb_optab);
+      if (target)
+	return target;
+      break;
+
     CASE_INT_FN (BUILT_IN_POPCOUNT):
     case BUILT_IN_POPCOUNTIMAX:
       target = expand_builtin_unop (target_mode, exp, target,
@@ -5836,199 +5844,201 @@
 	return target;
       break;
 
-    case BUILT_IN_FETCH_AND_ADD_1:
-    case BUILT_IN_FETCH_AND_ADD_2:
-    case BUILT_IN_FETCH_AND_ADD_4:
-    case BUILT_IN_FETCH_AND_ADD_8:
-    case BUILT_IN_FETCH_AND_ADD_16:
-      mode = get_builtin_sync_mode (fcode - BUILT_IN_FETCH_AND_ADD_1);
+    case BUILT_IN_SYNC_FETCH_AND_ADD_1:
+    case BUILT_IN_SYNC_FETCH_AND_ADD_2:
+    case BUILT_IN_SYNC_FETCH_AND_ADD_4:
+    case BUILT_IN_SYNC_FETCH_AND_ADD_8:
+    case BUILT_IN_SYNC_FETCH_AND_ADD_16:
+      mode = get_builtin_sync_mode (fcode - BUILT_IN_SYNC_FETCH_AND_ADD_1);
       target = expand_builtin_sync_operation (mode, exp, PLUS,
 					      false, target, ignore);
       if (target)
 	return target;
       break;
 
-    case BUILT_IN_FETCH_AND_SUB_1:
-    case BUILT_IN_FETCH_AND_SUB_2:
-    case BUILT_IN_FETCH_AND_SUB_4:
-    case BUILT_IN_FETCH_AND_SUB_8:
-    case BUILT_IN_FETCH_AND_SUB_16:
-      mode = get_builtin_sync_mode (fcode - BUILT_IN_FETCH_AND_SUB_1);
+    case BUILT_IN_SYNC_FETCH_AND_SUB_1:
+    case BUILT_IN_SYNC_FETCH_AND_SUB_2:
+    case BUILT_IN_SYNC_FETCH_AND_SUB_4:
+    case BUILT_IN_SYNC_FETCH_AND_SUB_8:
+    case BUILT_IN_SYNC_FETCH_AND_SUB_16:
+      mode = get_builtin_sync_mode (fcode - BUILT_IN_SYNC_FETCH_AND_SUB_1);
       target = expand_builtin_sync_operation (mode, exp, MINUS,
 					      false, target, ignore);
       if (target)
 	return target;
       break;
 
-    case BUILT_IN_FETCH_AND_OR_1:
-    case BUILT_IN_FETCH_AND_OR_2:
-    case BUILT_IN_FETCH_AND_OR_4:
-    case BUILT_IN_FETCH_AND_OR_8:
-    case BUILT_IN_FETCH_AND_OR_16:
-      mode = get_builtin_sync_mode (fcode - BUILT_IN_FETCH_AND_OR_1);
+    case BUILT_IN_SYNC_FETCH_AND_OR_1:
+    case BUILT_IN_SYNC_FETCH_AND_OR_2:
+    case BUILT_IN_SYNC_FETCH_AND_OR_4:
+    case BUILT_IN_SYNC_FETCH_AND_OR_8:
+    case BUILT_IN_SYNC_FETCH_AND_OR_16:
+      mode = get_builtin_sync_mode (fcode - BUILT_IN_SYNC_FETCH_AND_OR_1);
       target = expand_builtin_sync_operation (mode, exp, IOR,
 					      false, target, ignore);
       if (target)
 	return target;
       break;
 
-    case BUILT_IN_FETCH_AND_AND_1:
-    case BUILT_IN_FETCH_AND_AND_2:
-    case BUILT_IN_FETCH_AND_AND_4:
-    case BUILT_IN_FETCH_AND_AND_8:
-    case BUILT_IN_FETCH_AND_AND_16:
-      mode = get_builtin_sync_mode (fcode - BUILT_IN_FETCH_AND_AND_1);
+    case BUILT_IN_SYNC_FETCH_AND_AND_1:
+    case BUILT_IN_SYNC_FETCH_AND_AND_2:
+    case BUILT_IN_SYNC_FETCH_AND_AND_4:
+    case BUILT_IN_SYNC_FETCH_AND_AND_8:
+    case BUILT_IN_SYNC_FETCH_AND_AND_16:
+      mode = get_builtin_sync_mode (fcode - BUILT_IN_SYNC_FETCH_AND_AND_1);
       target = expand_builtin_sync_operation (mode, exp, AND,
 					      false, target, ignore);
       if (target)
 	return target;
       break;
 
-    case BUILT_IN_FETCH_AND_XOR_1:
-    case BUILT_IN_FETCH_AND_XOR_2:
-    case BUILT_IN_FETCH_AND_XOR_4:
-    case BUILT_IN_FETCH_AND_XOR_8:
-    case BUILT_IN_FETCH_AND_XOR_16:
-      mode = get_builtin_sync_mode (fcode - BUILT_IN_FETCH_AND_XOR_1);
+    case BUILT_IN_SYNC_FETCH_AND_XOR_1:
+    case BUILT_IN_SYNC_FETCH_AND_XOR_2:
+    case BUILT_IN_SYNC_FETCH_AND_XOR_4:
+    case BUILT_IN_SYNC_FETCH_AND_XOR_8:
+    case BUILT_IN_SYNC_FETCH_AND_XOR_16:
+      mode = get_builtin_sync_mode (fcode - BUILT_IN_SYNC_FETCH_AND_XOR_1);
       target = expand_builtin_sync_operation (mode, exp, XOR,
 					      false, target, ignore);
       if (target)
 	return target;
       break;
 
-    case BUILT_IN_FETCH_AND_NAND_1:
-    case BUILT_IN_FETCH_AND_NAND_2:
-    case BUILT_IN_FETCH_AND_NAND_4:
-    case BUILT_IN_FETCH_AND_NAND_8:
-    case BUILT_IN_FETCH_AND_NAND_16:
-      mode = get_builtin_sync_mode (fcode - BUILT_IN_FETCH_AND_NAND_1);
+    case BUILT_IN_SYNC_FETCH_AND_NAND_1:
+    case BUILT_IN_SYNC_FETCH_AND_NAND_2:
+    case BUILT_IN_SYNC_FETCH_AND_NAND_4:
+    case BUILT_IN_SYNC_FETCH_AND_NAND_8:
+    case BUILT_IN_SYNC_FETCH_AND_NAND_16:
+      mode = get_builtin_sync_mode (fcode - BUILT_IN_SYNC_FETCH_AND_NAND_1);
       target = expand_builtin_sync_operation (mode, exp, NOT,
 					      false, target, ignore);
       if (target)
 	return target;
       break;
 
-    case BUILT_IN_ADD_AND_FETCH_1:
-    case BUILT_IN_ADD_AND_FETCH_2:
-    case BUILT_IN_ADD_AND_FETCH_4:
-    case BUILT_IN_ADD_AND_FETCH_8:
-    case BUILT_IN_ADD_AND_FETCH_16:
-      mode = get_builtin_sync_mode (fcode - BUILT_IN_ADD_AND_FETCH_1);
+    case BUILT_IN_SYNC_ADD_AND_FETCH_1:
+    case BUILT_IN_SYNC_ADD_AND_FETCH_2:
+    case BUILT_IN_SYNC_ADD_AND_FETCH_4:
+    case BUILT_IN_SYNC_ADD_AND_FETCH_8:
+    case BUILT_IN_SYNC_ADD_AND_FETCH_16:
+      mode = get_builtin_sync_mode (fcode - BUILT_IN_SYNC_ADD_AND_FETCH_1);
       target = expand_builtin_sync_operation (mode, exp, PLUS,
 					      true, target, ignore);
       if (target)
 	return target;
       break;
 
-    case BUILT_IN_SUB_AND_FETCH_1:
-    case BUILT_IN_SUB_AND_FETCH_2:
-    case BUILT_IN_SUB_AND_FETCH_4:
-    case BUILT_IN_SUB_AND_FETCH_8:
-    case BUILT_IN_SUB_AND_FETCH_16:
-      mode = get_builtin_sync_mode (fcode - BUILT_IN_SUB_AND_FETCH_1);
+    case BUILT_IN_SYNC_SUB_AND_FETCH_1:
+    case BUILT_IN_SYNC_SUB_AND_FETCH_2:
+    case BUILT_IN_SYNC_SUB_AND_FETCH_4:
+    case BUILT_IN_SYNC_SUB_AND_FETCH_8:
+    case BUILT_IN_SYNC_SUB_AND_FETCH_16:
+      mode = get_builtin_sync_mode (fcode - BUILT_IN_SYNC_SUB_AND_FETCH_1);
       target = expand_builtin_sync_operation (mode, exp, MINUS,
 					      true, target, ignore);
       if (target)
 	return target;
       break;
 
-    case BUILT_IN_OR_AND_FETCH_1:
-    case BUILT_IN_OR_AND_FETCH_2:
-    case BUILT_IN_OR_AND_FETCH_4:
-    case BUILT_IN_OR_AND_FETCH_8:
-    case BUILT_IN_OR_AND_FETCH_16:
-      mode = get_builtin_sync_mode (fcode - BUILT_IN_OR_AND_FETCH_1);
+    case BUILT_IN_SYNC_OR_AND_FETCH_1:
+    case BUILT_IN_SYNC_OR_AND_FETCH_2:
+    case BUILT_IN_SYNC_OR_AND_FETCH_4:
+    case BUILT_IN_SYNC_OR_AND_FETCH_8:
+    case BUILT_IN_SYNC_OR_AND_FETCH_16:
+      mode = get_builtin_sync_mode (fcode - BUILT_IN_SYNC_OR_AND_FETCH_1);
       target = expand_builtin_sync_operation (mode, exp, IOR,
 					      true, target, ignore);
       if (target)
 	return target;
       break;
 
-    case BUILT_IN_AND_AND_FETCH_1:
-    case BUILT_IN_AND_AND_FETCH_2:
-    case BUILT_IN_AND_AND_FETCH_4:
-    case BUILT_IN_AND_AND_FETCH_8:
-    case BUILT_IN_AND_AND_FETCH_16:
-      mode = get_builtin_sync_mode (fcode - BUILT_IN_AND_AND_FETCH_1);
+    case BUILT_IN_SYNC_AND_AND_FETCH_1:
+    case BUILT_IN_SYNC_AND_AND_FETCH_2:
+    case BUILT_IN_SYNC_AND_AND_FETCH_4:
+    case BUILT_IN_SYNC_AND_AND_FETCH_8:
+    case BUILT_IN_SYNC_AND_AND_FETCH_16:
+      mode = get_builtin_sync_mode (fcode - BUILT_IN_SYNC_AND_AND_FETCH_1);
       target = expand_builtin_sync_operation (mode, exp, AND,
 					      true, target, ignore);
       if (target)
 	return target;
       break;
 
-    case BUILT_IN_XOR_AND_FETCH_1:
-    case BUILT_IN_XOR_AND_FETCH_2:
-    case BUILT_IN_XOR_AND_FETCH_4:
-    case BUILT_IN_XOR_AND_FETCH_8:
-    case BUILT_IN_XOR_AND_FETCH_16:
-      mode = get_builtin_sync_mode (fcode - BUILT_IN_XOR_AND_FETCH_1);
+    case BUILT_IN_SYNC_XOR_AND_FETCH_1:
+    case BUILT_IN_SYNC_XOR_AND_FETCH_2:
+    case BUILT_IN_SYNC_XOR_AND_FETCH_4:
+    case BUILT_IN_SYNC_XOR_AND_FETCH_8:
+    case BUILT_IN_SYNC_XOR_AND_FETCH_16:
+      mode = get_builtin_sync_mode (fcode - BUILT_IN_SYNC_XOR_AND_FETCH_1);
       target = expand_builtin_sync_operation (mode, exp, XOR,
 					      true, target, ignore);
       if (target)
 	return target;
       break;
 
-    case BUILT_IN_NAND_AND_FETCH_1:
-    case BUILT_IN_NAND_AND_FETCH_2:
-    case BUILT_IN_NAND_AND_FETCH_4:
-    case BUILT_IN_NAND_AND_FETCH_8:
-    case BUILT_IN_NAND_AND_FETCH_16:
-      mode = get_builtin_sync_mode (fcode - BUILT_IN_NAND_AND_FETCH_1);
+    case BUILT_IN_SYNC_NAND_AND_FETCH_1:
+    case BUILT_IN_SYNC_NAND_AND_FETCH_2:
+    case BUILT_IN_SYNC_NAND_AND_FETCH_4:
+    case BUILT_IN_SYNC_NAND_AND_FETCH_8:
+    case BUILT_IN_SYNC_NAND_AND_FETCH_16:
+      mode = get_builtin_sync_mode (fcode - BUILT_IN_SYNC_NAND_AND_FETCH_1);
       target = expand_builtin_sync_operation (mode, exp, NOT,
 					      true, target, ignore);
       if (target)
 	return target;
       break;
 
-    case BUILT_IN_BOOL_COMPARE_AND_SWAP_1:
-    case BUILT_IN_BOOL_COMPARE_AND_SWAP_2:
-    case BUILT_IN_BOOL_COMPARE_AND_SWAP_4:
-    case BUILT_IN_BOOL_COMPARE_AND_SWAP_8:
-    case BUILT_IN_BOOL_COMPARE_AND_SWAP_16:
+    case BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_1:
+    case BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_2:
+    case BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_4:
+    case BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_8:
+    case BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_16:
       if (mode == VOIDmode)
 	mode = TYPE_MODE (boolean_type_node);
       if (!target || !register_operand (target, mode))
 	target = gen_reg_rtx (mode);
 
-      mode = get_builtin_sync_mode (fcode - BUILT_IN_BOOL_COMPARE_AND_SWAP_1);
+      mode = get_builtin_sync_mode 
+				(fcode - BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_1);
       target = expand_builtin_compare_and_swap (mode, exp, true, target);
       if (target)
 	return target;
       break;
 
-    case BUILT_IN_VAL_COMPARE_AND_SWAP_1:
-    case BUILT_IN_VAL_COMPARE_AND_SWAP_2:
-    case BUILT_IN_VAL_COMPARE_AND_SWAP_4:
-    case BUILT_IN_VAL_COMPARE_AND_SWAP_8:
-    case BUILT_IN_VAL_COMPARE_AND_SWAP_16:
-      mode = get_builtin_sync_mode (fcode - BUILT_IN_VAL_COMPARE_AND_SWAP_1);
+    case BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_1:
+    case BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_2:
+    case BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_4:
+    case BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_8:
+    case BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_16:
+      mode = get_builtin_sync_mode 
+				(fcode - BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_1);
       target = expand_builtin_compare_and_swap (mode, exp, false, target);
       if (target)
 	return target;
       break;
 
-    case BUILT_IN_LOCK_TEST_AND_SET_1:
-    case BUILT_IN_LOCK_TEST_AND_SET_2:
-    case BUILT_IN_LOCK_TEST_AND_SET_4:
-    case BUILT_IN_LOCK_TEST_AND_SET_8:
-    case BUILT_IN_LOCK_TEST_AND_SET_16:
-      mode = get_builtin_sync_mode (fcode - BUILT_IN_LOCK_TEST_AND_SET_1);
-      target = expand_builtin_lock_test_and_set (mode, exp, target);
+    case BUILT_IN_SYNC_LOCK_TEST_AND_SET_1:
+    case BUILT_IN_SYNC_LOCK_TEST_AND_SET_2:
+    case BUILT_IN_SYNC_LOCK_TEST_AND_SET_4:
+    case BUILT_IN_SYNC_LOCK_TEST_AND_SET_8:
+    case BUILT_IN_SYNC_LOCK_TEST_AND_SET_16:
+      mode = get_builtin_sync_mode (fcode - BUILT_IN_SYNC_LOCK_TEST_AND_SET_1);
+      target = expand_builtin_sync_lock_test_and_set (mode, exp, target);
       if (target)
 	return target;
       break;
 
-    case BUILT_IN_LOCK_RELEASE_1:
-    case BUILT_IN_LOCK_RELEASE_2:
-    case BUILT_IN_LOCK_RELEASE_4:
-    case BUILT_IN_LOCK_RELEASE_8:
-    case BUILT_IN_LOCK_RELEASE_16:
-      mode = get_builtin_sync_mode (fcode - BUILT_IN_LOCK_RELEASE_1);
-      expand_builtin_lock_release (mode, exp);
+    case BUILT_IN_SYNC_LOCK_RELEASE_1:
+    case BUILT_IN_SYNC_LOCK_RELEASE_2:
+    case BUILT_IN_SYNC_LOCK_RELEASE_4:
+    case BUILT_IN_SYNC_LOCK_RELEASE_8:
+    case BUILT_IN_SYNC_LOCK_RELEASE_16:
+      mode = get_builtin_sync_mode (fcode - BUILT_IN_SYNC_LOCK_RELEASE_1);
+      expand_builtin_sync_lock_release (mode, exp);
       return const0_rtx;
 
-    case BUILT_IN_SYNCHRONIZE:
-      expand_builtin_synchronize ();
+    case BUILT_IN_SYNC_SYNCHRONIZE:
+      expand_builtin_sync_synchronize ();
       return const0_rtx;
 
     case BUILT_IN_OBJECT_SIZE:
@@ -7257,7 +7267,8 @@
 	{
 	  hi = TREE_INT_CST_HIGH (arg);
 	  if (width < 2 * HOST_BITS_PER_WIDE_INT)
-	    hi &= ~((HOST_WIDE_INT) (-1) >> (width - HOST_BITS_PER_WIDE_INT));
+	    hi &= ~((unsigned HOST_WIDE_INT) (-1)
+		    << (width - HOST_BITS_PER_WIDE_INT));
 	}
       else
 	{
@@ -7295,6 +7306,26 @@
 	    result = width;
 	  break;
 
+	CASE_INT_FN (BUILT_IN_CLRSB):
+	  if (width > HOST_BITS_PER_WIDE_INT
+	      && (hi & ((unsigned HOST_WIDE_INT) 1
+			<< (width - HOST_BITS_PER_WIDE_INT - 1))) != 0)
+	    {
+	      hi = ~hi & ~((unsigned HOST_WIDE_INT) (-1)
+			   << (width - HOST_BITS_PER_WIDE_INT - 1));
+	      lo = ~lo;
+	    }
+	  else if (width <= HOST_BITS_PER_WIDE_INT
+		   && (lo & ((unsigned HOST_WIDE_INT) 1 << (width - 1))) != 0)
+	    lo = ~lo & ~((unsigned HOST_WIDE_INT) (-1) << (width - 1));
+	  if (hi != 0)
+	    result = width - floor_log2 (hi) - 2 - HOST_BITS_PER_WIDE_INT;
+	  else if (lo != 0)
+	    result = width - floor_log2 (lo) - 2;
+	  else
+	    result = width - 1;
+	  break;
+
 	CASE_INT_FN (BUILT_IN_POPCOUNT):
 	  result = 0;
 	  while (lo)
@@ -9729,6 +9760,7 @@
     CASE_INT_FN (BUILT_IN_FFS):
     CASE_INT_FN (BUILT_IN_CLZ):
     CASE_INT_FN (BUILT_IN_CTZ):
+    CASE_INT_FN (BUILT_IN_CLRSB):
     CASE_INT_FN (BUILT_IN_POPCOUNT):
     CASE_INT_FN (BUILT_IN_PARITY):
       return fold_builtin_bitop (fndecl, arg0);
diff --git a/gcc/builtins.def b/gcc/builtins.def
index 3e102e3..30699f3 100644
--- a/gcc/builtins.def
+++ b/gcc/builtins.def
@@ -620,6 +620,10 @@
 DEF_GCC_BUILTIN        (BUILT_IN_CTZIMAX, "ctzimax", BT_FN_INT_UINTMAX, ATTR_CONST_NOTHROW_LEAF_LIST)
 DEF_GCC_BUILTIN        (BUILT_IN_CTZL, "ctzl", BT_FN_INT_ULONG, ATTR_CONST_NOTHROW_LEAF_LIST)
 DEF_GCC_BUILTIN        (BUILT_IN_CTZLL, "ctzll", BT_FN_INT_ULONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST)
+DEF_GCC_BUILTIN        (BUILT_IN_CLRSB, "clrsb", BT_FN_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
+DEF_GCC_BUILTIN        (BUILT_IN_CLRSBIMAX, "clrsbimax", BT_FN_INT_INTMAX, ATTR_CONST_NOTHROW_LEAF_LIST)
+DEF_GCC_BUILTIN        (BUILT_IN_CLRSBL, "clrsbl", BT_FN_INT_LONG, ATTR_CONST_NOTHROW_LEAF_LIST)
+DEF_GCC_BUILTIN        (BUILT_IN_CLRSBLL, "clrsbll", BT_FN_INT_LONGLONG, ATTR_CONST_NOTHROW_LEAF_LIST)
 DEF_EXT_LIB_BUILTIN    (BUILT_IN_DCGETTEXT, "dcgettext", BT_FN_STRING_CONST_STRING_CONST_STRING_INT, ATTR_FORMAT_ARG_2)
 DEF_EXT_LIB_BUILTIN    (BUILT_IN_DGETTEXT, "dgettext", BT_FN_STRING_CONST_STRING_CONST_STRING, ATTR_FORMAT_ARG_2)
 DEF_GCC_BUILTIN        (BUILT_IN_DWARF_CFA, "dwarf_cfa", BT_FN_PTR, ATTR_NULL)
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index e42a3c5..1c7552b 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -238,7 +238,7 @@
 /* The resulting tree type.  */
 
 union GTY((desc ("TREE_CODE (&%h.generic) == IDENTIFIER_NODE"),
-       chain_next ("TREE_CODE (&%h.generic) == INTEGER_TYPE ? (union lang_tree_node *) TYPE_NEXT_VARIANT (&%h.generic) : CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_COMMON) ? ((union lang_tree_node *) TREE_CHAIN (&%h.generic)) : NULL")))  lang_tree_node
+       chain_next ("CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_TYPE_COMMON) ? (union lang_tree_node *) TYPE_NEXT_VARIANT (&%h.generic) : CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_COMMON) ? ((union lang_tree_node *) TREE_CHAIN (&%h.generic)) : NULL")))  lang_tree_node
  {
   union tree_node GTY ((tag ("0"),
 			desc ("tree_node_structure (&%h)")))
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index afa31de..29cc719 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,7 @@
+2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
+
+	* c-common.c: Add sync_ or SYNC__ to builtin names.
+	* c-omp.c: Add sync_ or SYNC__ to builtin names.
 
 2011-06-20  Pierre Vittet  <piervit@pvittet.com>
 
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
index e5849ef..3607694 100644
--- a/gcc/c-family/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -9044,22 +9044,22 @@
   /* Handle BUILT_IN_NORMAL here.  */
   switch (orig_code)
     {
-    case BUILT_IN_FETCH_AND_ADD_N:
-    case BUILT_IN_FETCH_AND_SUB_N:
-    case BUILT_IN_FETCH_AND_OR_N:
-    case BUILT_IN_FETCH_AND_AND_N:
-    case BUILT_IN_FETCH_AND_XOR_N:
-    case BUILT_IN_FETCH_AND_NAND_N:
-    case BUILT_IN_ADD_AND_FETCH_N:
-    case BUILT_IN_SUB_AND_FETCH_N:
-    case BUILT_IN_OR_AND_FETCH_N:
-    case BUILT_IN_AND_AND_FETCH_N:
-    case BUILT_IN_XOR_AND_FETCH_N:
-    case BUILT_IN_NAND_AND_FETCH_N:
-    case BUILT_IN_BOOL_COMPARE_AND_SWAP_N:
-    case BUILT_IN_VAL_COMPARE_AND_SWAP_N:
-    case BUILT_IN_LOCK_TEST_AND_SET_N:
-    case BUILT_IN_LOCK_RELEASE_N:
+    case BUILT_IN_SYNC_FETCH_AND_ADD_N:
+    case BUILT_IN_SYNC_FETCH_AND_SUB_N:
+    case BUILT_IN_SYNC_FETCH_AND_OR_N:
+    case BUILT_IN_SYNC_FETCH_AND_AND_N:
+    case BUILT_IN_SYNC_FETCH_AND_XOR_N:
+    case BUILT_IN_SYNC_FETCH_AND_NAND_N:
+    case BUILT_IN_SYNC_ADD_AND_FETCH_N:
+    case BUILT_IN_SYNC_SUB_AND_FETCH_N:
+    case BUILT_IN_SYNC_OR_AND_FETCH_N:
+    case BUILT_IN_SYNC_AND_AND_FETCH_N:
+    case BUILT_IN_SYNC_XOR_AND_FETCH_N:
+    case BUILT_IN_SYNC_NAND_AND_FETCH_N:
+    case BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_N:
+    case BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_N:
+    case BUILT_IN_SYNC_LOCK_TEST_AND_SET_N:
+    case BUILT_IN_SYNC_LOCK_RELEASE_N:
       {
 	int n = sync_resolve_size (function, params);
 	tree new_function, first_param, result;
@@ -9073,8 +9073,8 @@
 
 	first_param = VEC_index (tree, params, 0);
 	result = build_function_call_vec (loc, new_function, params, NULL);
-	if (orig_code != BUILT_IN_BOOL_COMPARE_AND_SWAP_N
-	    && orig_code != BUILT_IN_LOCK_RELEASE_N)
+	if (orig_code != BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_N
+	    && orig_code != BUILT_IN_SYNC_LOCK_RELEASE_N)
 	  result = sync_resolve_return (first_param, result);
 
 	return result;
diff --git a/gcc/c-family/c-omp.c b/gcc/c-family/c-omp.c
index b9b1448..1ee0bf0 100644
--- a/gcc/c-family/c-omp.c
+++ b/gcc/c-family/c-omp.c
@@ -169,7 +169,7 @@
 {
   tree x;
 
-  x = built_in_decls[BUILT_IN_SYNCHRONIZE];
+  x = built_in_decls[BUILT_IN_SYNC_SYNCHRONIZE];
   x = build_call_expr_loc (loc, x, 0);
   add_stmt (x);
 }
diff --git a/gcc/calls.c b/gcc/calls.c
index 3d9a03f..bba477c 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -1084,6 +1084,8 @@
 		  && TREE_CODE (base) != SSA_NAME
 		  && (!DECL_P (base) || MEM_P (DECL_RTL (base)))))
 	    {
+	      mark_addressable (args[i].tree_value);
+
 	      /* We can't use sibcalls if a callee-copied argument is
 		 stored in the current function's frame.  */
 	      if (!call_from_thunk_p && DECL_P (base) && !TREE_STATIC (base))
@@ -3524,7 +3526,12 @@
 	    }
 
 	  if (MEM_P (val) && !must_copy)
-	    slot = val;
+	    {
+	      tree val_expr = MEM_EXPR (val);
+	      if (val_expr)
+		mark_addressable (val_expr);
+	      slot = val;
+	    }
 	  else
 	    {
 	      slot = assign_temp (lang_hooks.types.type_for_mode (mode, 0),
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index efd3ed9..000a790 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -57,6 +57,8 @@
    of comminucating the profile info to the builtin expanders.  */
 gimple currently_expanding_gimple_stmt;
 
+static rtx expand_debug_expr (tree);
+
 /* Return an expression tree corresponding to the RHS of GIMPLE
    statement STMT.  */
 
@@ -1863,6 +1865,21 @@
   SET_EXPR_LOCATION (exp, gimple_location (stmt));
   TREE_BLOCK (exp) = gimple_block (stmt);
 
+  /* Ensure RTL is created for debug args.  */
+  if (decl && DECL_HAS_DEBUG_ARGS_P (decl))
+    {
+      VEC(tree, gc) **debug_args = decl_debug_args_lookup (decl);
+      unsigned int ix;
+      tree dtemp;
+
+      if (debug_args)
+	for (ix = 1; VEC_iterate (tree, *debug_args, ix, dtemp); ix += 2)
+	  {
+	    gcc_assert (TREE_CODE (dtemp) == DEBUG_EXPR_DECL);
+	    expand_debug_expr (dtemp);
+	  }
+    }
+
   lhs = gimple_call_lhs (stmt);
   if (lhs)
     expand_assignment (lhs, exp, false);
@@ -3297,6 +3314,120 @@
     }
 }
 
+/* Return an RTX equivalent to the source bind value of the tree expression
+   EXP.  */
+
+static rtx
+expand_debug_source_expr (tree exp)
+{
+  rtx op0 = NULL_RTX;
+  enum machine_mode mode = VOIDmode, inner_mode;
+
+  switch (TREE_CODE (exp))
+    {
+    case PARM_DECL:
+      {
+	rtx incoming = DECL_INCOMING_RTL (exp);
+	mode = DECL_MODE (exp);
+	if (incoming
+	    && GET_MODE (incoming) != BLKmode
+	    && ((REG_P (incoming) && HARD_REGISTER_P (incoming))
+		|| (MEM_P (incoming)
+		    && REG_P (XEXP (incoming, 0))
+		    && HARD_REGISTER_P (XEXP (incoming, 0)))))
+	  {
+	    op0 = gen_rtx_ENTRY_VALUE (GET_MODE (incoming));
+	    ENTRY_VALUE_EXP (op0) = incoming;
+	    break;
+	  }
+	if (incoming
+	    && MEM_P (incoming)
+	    && !TREE_ADDRESSABLE (exp)
+	    && GET_MODE (incoming) != BLKmode
+	    && (XEXP (incoming, 0) == virtual_incoming_args_rtx
+		|| (GET_CODE (XEXP (incoming, 0)) == PLUS
+		    && XEXP (XEXP (incoming, 0), 0)
+		       == virtual_incoming_args_rtx
+		    && CONST_INT_P (XEXP (XEXP (incoming, 0), 1)))))
+	  {
+	    op0 = incoming;
+	    break;
+	  }
+	/* See if this isn't an argument that has been completely
+	   optimized out.  */
+	if (!DECL_RTL_SET_P (exp)
+	    && incoming == NULL_RTX
+	    && DECL_ABSTRACT_ORIGIN (current_function_decl))
+	  {
+	    tree aexp = exp;
+	    if (DECL_ABSTRACT_ORIGIN (exp))
+	      aexp = DECL_ABSTRACT_ORIGIN (exp);
+	    if (DECL_CONTEXT (aexp)
+		== DECL_ABSTRACT_ORIGIN (current_function_decl))
+	      {
+		VEC(tree, gc) **debug_args;
+		unsigned int ix;
+		tree ddecl;
+#ifdef ENABLE_CHECKING
+		tree parm;
+		for (parm = DECL_ARGUMENTS (current_function_decl);
+		     parm; parm = DECL_CHAIN (parm))
+		  gcc_assert (parm != exp
+			      && DECL_ABSTRACT_ORIGIN (parm) != aexp);
+#endif
+		debug_args = decl_debug_args_lookup (current_function_decl);
+		if (debug_args != NULL)
+		  {
+		    for (ix = 0; VEC_iterate (tree, *debug_args, ix, ddecl);
+			 ix += 2)
+		      if (ddecl == aexp)
+			return gen_rtx_DEBUG_PARAMETER_REF (mode, aexp);
+		  }
+	      }
+	  }
+	break;
+      }
+    default:
+      break;
+    }
+
+  if (op0 == NULL_RTX)
+    return NULL_RTX;
+
+  inner_mode = GET_MODE (op0);
+  if (mode == inner_mode)
+    return op0;
+
+  if (FLOAT_MODE_P (mode) && FLOAT_MODE_P (inner_mode))
+    {
+      if (GET_MODE_BITSIZE (mode) == GET_MODE_BITSIZE (inner_mode))
+	op0 = simplify_gen_subreg (mode, op0, inner_mode, 0);
+      else if (GET_MODE_BITSIZE (mode) < GET_MODE_BITSIZE (inner_mode))
+	op0 = simplify_gen_unary (FLOAT_TRUNCATE, mode, op0, inner_mode);
+      else
+	op0 = simplify_gen_unary (FLOAT_EXTEND, mode, op0, inner_mode);
+    }
+  else if (FLOAT_MODE_P (mode))
+    gcc_unreachable ();
+  else if (FLOAT_MODE_P (inner_mode))
+    {
+      if (TYPE_UNSIGNED (TREE_TYPE (exp)))
+	op0 = simplify_gen_unary (UNSIGNED_FIX, mode, op0, inner_mode);
+      else
+	op0 = simplify_gen_unary (FIX, mode, op0, inner_mode);
+    }
+  else if (CONSTANT_P (op0)
+	   || GET_MODE_BITSIZE (mode) <= GET_MODE_BITSIZE (inner_mode))
+    op0 = simplify_gen_subreg (mode, op0, inner_mode,
+			       subreg_lowpart_offset (mode, inner_mode));
+  else if (TYPE_UNSIGNED (TREE_TYPE (exp)))
+    op0 = simplify_gen_unary (ZERO_EXTEND, mode, op0, inner_mode);
+  else
+    op0 = simplify_gen_unary (SIGN_EXTEND, mode, op0, inner_mode);
+
+  return op0;
+}
+
 /* Expand the _LOCs in debug insns.  We run this after expanding all
    regular insns, so that any variables referenced in the function
    will have their DECL_RTLs set.  */
@@ -3324,7 +3455,11 @@
 	  val = NULL_RTX;
 	else
 	  {
-	    val = expand_debug_expr (value);
+	    if (INSN_VAR_LOCATION_STATUS (insn)
+		== VAR_INIT_STATUS_UNINITIALIZED)
+	      val = expand_debug_source_expr (value);
+	    else
+	      val = expand_debug_expr (value);
 	    gcc_assert (last == get_last_insn ());
 	  }
 
@@ -3606,6 +3741,39 @@
 	  set_curr_insn_source_location (sloc);
 	  set_curr_insn_block (sblock);
 	}
+      else if (gimple_debug_source_bind_p (stmt))
+	{
+	  location_t sloc = get_curr_insn_source_location ();
+	  tree sblock = get_curr_insn_block ();
+	  tree var = gimple_debug_source_bind_get_var (stmt);
+	  tree value = gimple_debug_source_bind_get_value (stmt);
+	  rtx val;
+	  enum machine_mode mode;
+
+	  last = get_last_insn ();
+
+	  set_curr_insn_source_location (gimple_location (stmt));
+	  set_curr_insn_block (gimple_block (stmt));
+
+	  mode = DECL_MODE (var);
+
+	  val = gen_rtx_VAR_LOCATION (mode, var, (rtx)value,
+				      VAR_INIT_STATUS_UNINITIALIZED);
+
+	  emit_debug_insn (val);
+
+	  if (dump_file && (dump_flags & TDF_DETAILS))
+	    {
+	      /* We can't dump the insn with a TREE where an RTX
+		 is expected.  */
+	      PAT_VAR_LOCATION_LOC (val) = const0_rtx;
+	      maybe_dump_rtl_for_gimple_stmt (stmt, last);
+	      PAT_VAR_LOCATION_LOC (val) = (rtx)value;
+	    }
+
+	  set_curr_insn_source_location (sloc);
+	  set_curr_insn_block (sblock);
+	}
       else
 	{
 	  if (is_gimple_call (stmt) && gimple_call_tail_p (stmt))
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index dd08feb..f912af2 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -981,7 +981,7 @@
 
   ipa_ref_list_reference_iterate (&n->ref_list, 0, ref);
   gcc_checking_assert (ref->use == IPA_REF_ALIAS);
-  if (ref->refered_type == IPA_REF_CGRAPH)
+  if (ref->refered_type == IPA_REF_VARPOOL)
     return ipa_ref_varpool_node (ref);
   return NULL;
 }
@@ -1011,7 +1011,7 @@
 	    *availability = a;
 	}
     }
-  if (*availability)
+  if (availability)
     *availability = AVAIL_NOT_AVAILABLE;
   return NULL;
 }
@@ -1039,7 +1039,7 @@
 	    *availability = a;
 	}
     }
-  if (*availability)
+  if (availability)
     *availability = AVAIL_NOT_AVAILABLE;
   return NULL;
 }
@@ -1067,7 +1067,7 @@
 	    *availability = a;
 	}
     }
-  if (*availability)
+  if (availability)
     *availability = AVAIL_NOT_AVAILABLE;
   return NULL;
 }
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 6683d2a..e470d85 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -986,6 +986,14 @@
 	  DECL_ATTRIBUTES (decl) = remove_attribute ("weakref",
 						     DECL_ATTRIBUTES (decl));
 	}
+
+      if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (decl))
+	  && !DECL_DECLARED_INLINE_P (decl)
+	  /* redefining extern inline function makes it DECL_UNINLINABLE.  */
+	  && !DECL_UNINLINABLE (decl))
+	warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wattributes,
+		    "always_inline function might not be inlinable");
+     
       process_common_attributes (decl);
     }
   for (vnode = varpool_nodes; vnode != first_var; vnode = vnode->next)
@@ -1412,7 +1420,7 @@
   DECL_SAVED_TREE (decl) = error_mark_node;
   cfun->curr_properties |=
     (PROP_gimple_lcf | PROP_gimple_leh | PROP_cfg | PROP_referenced_vars |
-     PROP_ssa);
+     PROP_ssa | PROP_gimple_any);
 
   /* Create BB for body of the function and connect it properly.  */
   bb = create_basic_block (NULL, (void *) 0, ENTRY_BLOCK_PTR);
@@ -1573,10 +1581,11 @@
     {
       const char *fnname;
       tree fn_block;
+      tree restype = TREE_TYPE (TREE_TYPE (thunk_fndecl));
       
       DECL_RESULT (thunk_fndecl)
 	= build_decl (DECL_SOURCE_LOCATION (thunk_fndecl),
-		      RESULT_DECL, 0, integer_type_node);
+		      RESULT_DECL, 0, restype);
       fnname = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (thunk_fndecl));
 
       /* The back end expects DECL_INITIAL to contain a BLOCK, so we
@@ -2093,6 +2102,13 @@
 #endif
 
   cgraph_materialize_all_clones ();
+  bitmap_obstack_initialize (NULL);
+  execute_ipa_pass_list (all_late_ipa_passes);
+  cgraph_remove_unreachable_nodes (true, dump_file);
+#ifdef ENABLE_CHECKING
+  verify_cgraph ();
+#endif
+  bitmap_obstack_release (NULL);
   cgraph_mark_functions_to_output ();
 
   cgraph_state = CGRAPH_STATE_EXPANSION;
diff --git a/gcc/common/common-target.def b/gcc/common/common-target.def
index ab89758..d8ede82 100644
--- a/gcc/common/common-target.def
+++ b/gcc/common/common-target.def
@@ -50,6 +50,13 @@
  "",
  const struct default_options *, empty_optimization_table)
 
+DEFHOOK
+(option_default_params,
+"Set target-dependent default values for @option{--param} settings, using\
+ calls to @code{set_default_param_value}.",
+ void, (void),
+ hook_void_void)
+
 /* The initial value of target_flags.  */
 DEFHOOKPOD
 (default_target_flags,
diff --git a/gcc/common/config/ia64/ia64-common.c b/gcc/common/config/ia64/ia64-common.c
index 8c86ff4..1168253 100644
--- a/gcc/common/config/ia64/ia64-common.c
+++ b/gcc/common/config/ia64/ia64-common.c
@@ -29,6 +29,7 @@
 #include "common/common-target-def.h"
 #include "opts.h"
 #include "flags.h"
+#include "params.h"
 
 /* Implement overriding of the optimization options.  */
 static const struct default_options ia64_option_optimization_table[] =
@@ -83,8 +84,25 @@
   return UI_TARGET;
 }
 
+/* Implement TARGET_OPTION_DEFAULT_PARAMS.  */
+
+static void
+ia64_option_default_params (void)
+{
+  /* Let the scheduler form additional regions.  */
+  set_default_param_value (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS, 2);
+
+  /* Set the default values for cache-related parameters.  */
+  set_default_param_value (PARAM_SIMULTANEOUS_PREFETCHES, 6);
+  set_default_param_value (PARAM_L1_CACHE_LINE_SIZE, 32);
+
+  set_default_param_value (PARAM_SCHED_MEM_TRUE_DEP_COST, 4);
+}
+
 #undef TARGET_OPTION_OPTIMIZATION_TABLE
 #define TARGET_OPTION_OPTIMIZATION_TABLE ia64_option_optimization_table
+#undef TARGET_OPTION_DEFAULT_PARAMS
+#define TARGET_OPTION_DEFAULT_PARAMS ia64_option_default_params
 
 #undef TARGET_EXCEPT_UNWIND_INFO
 #define TARGET_EXCEPT_UNWIND_INFO  ia64_except_unwind_info
diff --git a/gcc/common/config/rs6000/rs6000-common.c b/gcc/common/config/rs6000/rs6000-common.c
index 0482c07..683240f 100644
--- a/gcc/common/config/rs6000/rs6000-common.c
+++ b/gcc/common/config/rs6000/rs6000-common.c
@@ -28,6 +28,7 @@
 #include "common/common-target-def.h"
 #include "opts.h"
 #include "flags.h"
+#include "params.h"
 
 /* Implement TARGET_OPTION_OPTIMIZATION_TABLE.  */
 static const struct default_options rs6000_option_optimization_table[] =
@@ -51,6 +52,15 @@
     opts->x_flag_section_anchors = 1;
 }
 
+/* Implement TARGET_OPTION_DEFAULT_PARAMS.  */
+
+static void
+rs6000_option_default_params (void)
+{
+  /* Double growth factor to counter reduced min jump length.  */
+  set_default_param_value (PARAM_MAX_GROW_COPY_BB_INSNS, 16);
+}
+
 /* If not otherwise specified by a target, make 'long double' equivalent to
    'double'.  */
 
@@ -316,6 +326,9 @@
 #undef TARGET_OPTION_INIT_STRUCT
 #define TARGET_OPTION_INIT_STRUCT rs6000_option_init_struct
 
+#undef TARGET_OPTION_DEFAULT_PARAMS
+#define TARGET_OPTION_DEFAULT_PARAMS rs6000_option_default_params
+
 #undef TARGET_OPTION_OPTIMIZATION_TABLE
 #define TARGET_OPTION_OPTIMIZATION_TABLE rs6000_option_optimization_table
 
diff --git a/gcc/common/config/sh/sh-common.c b/gcc/common/config/sh/sh-common.c
index 8677fd4..5a0c062 100644
--- a/gcc/common/config/sh/sh-common.c
+++ b/gcc/common/config/sh/sh-common.c
@@ -27,6 +27,7 @@
 #include "common/common-target-def.h"
 #include "opts.h"
 #include "flags.h"
+#include "params.h"
 
 /* Set default optimization options.  */
 static const struct default_options sh_option_optimization_table[] =
@@ -196,10 +197,19 @@
   opts->x_flag_finite_math_only = 2;
 }
 
+/* Implement TARGET_OPTION_DEFAULT_PARAMS.  */
+static void
+sh_option_default_params (void)
+{
+  set_default_param_value (PARAM_SIMULTANEOUS_PREFETCHES, 2);
+}
+
 #undef TARGET_OPTION_OPTIMIZATION_TABLE
 #define TARGET_OPTION_OPTIMIZATION_TABLE sh_option_optimization_table
 #undef TARGET_OPTION_INIT_STRUCT
 #define TARGET_OPTION_INIT_STRUCT sh_option_init_struct
+#undef TARGET_OPTION_DEFAULT_PARAMS
+#define TARGET_OPTION_DEFAULT_PARAMS sh_option_default_params
 #undef TARGET_DEFAULT_TARGET_FLAGS
 #define TARGET_DEFAULT_TARGET_FLAGS TARGET_DEFAULT
 #undef TARGET_HANDLE_OPTION
diff --git a/gcc/common/config/spu/spu-common.c b/gcc/common/config/spu/spu-common.c
index d4a9f3c..421de7e 100644
--- a/gcc/common/config/spu/spu-common.c
+++ b/gcc/common/config/spu/spu-common.c
@@ -24,6 +24,7 @@
 #include "common/common-target-def.h"
 #include "opts.h"
 #include "flags.h"
+#include "params.h"
 
 static void
 spu_option_init_struct (struct gcc_options *opts)
@@ -32,12 +33,24 @@
   opts->x_flag_rename_registers = 1;
 }
 
+/* Implement TARGET_OPTION_DEFAULT_PARAMS.  */
+static void
+spu_option_default_params (void)
+{
+  /* Override some of the default param values.  With so many registers
+     larger values are better for these params.  */
+  set_default_param_value (PARAM_MAX_PENDING_LIST_LENGTH, 128);
+}
+
 #undef TARGET_DEFAULT_TARGET_FLAGS
 #define TARGET_DEFAULT_TARGET_FLAGS (TARGET_DEFAULT)
 
 #undef TARGET_OPTION_INIT_STRUCT
 #define TARGET_OPTION_INIT_STRUCT spu_option_init_struct
 
+#undef TARGET_OPTION_DEFAULT_PARAMS
+#define TARGET_OPTION_DEFAULT_PARAMS spu_option_default_params
+
 #undef TARGET_EXCEPT_UNWIND_INFO
 #define TARGET_EXCEPT_UNWIND_INFO  sjlj_except_unwind_info
 
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 6c208ab..90d7d03 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -318,6 +318,7 @@
 	cpu_type=avr
 	c_target_objs="avr-c.o"
 	cxx_target_objs="avr-c.o"
+	extra_options="${extra_options} avr/avr-tables.opt"
 	;;
 bfin*-*)
 	cpu_type=bfin
@@ -686,7 +687,35 @@
   tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
   ;;
 *-*-solaris2*)
+  # i?86-*-solaris2* needs to insert headers between cpu default and
+  # Solaris 2 specific ones.
+  sol2_tm_file="dbxelf.h elfos.h ${cpu_type}/sysv4.h sol2.h ${cpu_type}/sol2.h"
+  case ${target} in
+    *-*-solaris2.1[0-9]*)
+      sol2_tm_file="${sol2_tm_file} sol2-10.h"
+      use_gcc_stdint=wrap
+      ;;
+    *)
+      use_gcc_stdint=provide
+      ;;
+  esac
+  if test x$gnu_ld = xyes; then
+    tm_file="usegld.h ${tm_file}"
+  fi
+  if test x$gas = xyes; then
+    tm_file="usegas.h ${tm_file}"
+  fi
+  tm_p_file="${tm_p_file} sol2-protos.h"
+  tmake_file="${tmake_file} t-sol2 t-slibgcc-dummy"
+  c_target_objs="${c_target_objs} sol2-c.o"
+  cxx_target_objs="${cxx_target_objs} sol2-c.o"
+  extra_objs="sol2.o"
   extra_options="${extra_options} sol2.opt"
+  case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
+    "":yes:* | yes:yes:* )
+      thread_file=posix
+      ;;
+  esac
   ;;
 *-*-*vms*)
   extra_options="${extra_options} vms/vms.opt"
@@ -834,6 +863,7 @@
 	    tmake_file="$tmake_file arm/t-linux"
 	    ;;
 	esac
+	with_tls=${with_tls:-gnu}
 	tm_file="$tm_file arm/aout.h arm/arm.h"
 	tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
 	;;
@@ -1335,7 +1365,7 @@
 	tmake_file="${tmake_file} i386/t-rtems t-rtems"
 	;;
 i[34567]86-*-solaris2*)
-	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/sysv4.h sol2.h"
+	tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file}"
 	# Set default arch_32 to pentium4, tune_32 to generic like the other
 	# i386 targets, although config.guess defaults to i386-pc-solaris2*.
 	case ${target} in
@@ -1351,36 +1381,11 @@
 	with_tune_32=${with_tune_32:-generic}
 	case ${target} in
 	*-*-solaris2.1[0-9]*)
-		tm_file="${tm_file} sol2-10.h"
-		;;
-	esac
-	tm_file="${tm_file} i386/sol2.h"
-	if test x$gnu_ld = xyes; then
-		tm_file="${tm_file} sol2-gld.h"
-	fi
-	if test x$gas = xyes; then
-		tm_file="${tm_file} i386/sol2-gas.h"
-	fi
-	tmake_file="${tmake_file} t-sol2 t-slibgcc-dummy"
-	c_target_objs="${c_target_objs} sol2-c.o"
-	cxx_target_objs="${cxx_target_objs} sol2-c.o"
-	extra_objs="sol2.o"
-	tm_p_file="${tm_p_file} sol2-protos.h"
-	if test x$gnu_ld = xyes; then
-		tm_defines="${tm_defines} TARGET_GNU_LD=1"
-	fi
-	if test x$gas = xyes; then
-		tm_file="usegas.h ${tm_file}"
-	fi
-	tm_file="$tm_file tm-dwarf2.h"
-	case ${target} in
-	*-*-solaris2.1[0-9]*)
-		tm_file="${tm_file} i386/x86-64.h i386/sol2-10.h"
+		tm_file="${tm_file} i386/x86-64.h i386/sol2-bi.h sol2-bi.h"
 		tm_defines="${tm_defines} TARGET_BI_ARCH=1"
-		tmake_file="$tmake_file i386/t-sol2-10"
+		tmake_file="$tmake_file i386/t-sol2-64"
 		need_64bit_hwint=yes
 		need_64bit_isa=yes
-		use_gcc_stdint=wrap
 		case X"${with_cpu}" in
 		Xgeneric|Xatom|Xcore2|Xcorei7|Xcorei7-avx|Xnocona|Xx86-64|Xbdver1|Xbtver1|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3)
 			;;
@@ -1396,14 +1401,6 @@
 			;;
 		esac
 		;;
-	*)
-		use_gcc_stdint=provide
-		;;
-	esac
-	case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
-	  "":yes:* | yes:yes:* )
-		thread_file=posix
-		;;
 	esac
 	;;
 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
@@ -2479,17 +2476,7 @@
 	extra_options="${extra_options} sparc/long-double-switch.opt"
 	;;
 sparc*-*-solaris2*)
-	tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sol2.h"
-	case ${target} in
-	    *-*-solaris2.1[0-9]*)
-		tm_file="${tm_file} sol2-10.h"
-		use_gcc_stdint=wrap
-		;;
-	    *)
-		use_gcc_stdint=provide
-		;;
-	esac
-	tm_file="${tm_file} sparc/sol2.h"
+	tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sol2-bi.h"
 	case ${target} in
 	    sparc64-*-* | sparcv9-*-*)
 		tm_file="${tm_file} sparc/sol2-64.h"
@@ -2498,27 +2485,7 @@
 		test x$with_cpu != x || with_cpu=v9
 		;;
 	esac
-	tm_file="${tm_file} sparc/sol2-bi.h"
-	if test x$gas = xyes; then
-		tm_file="${tm_file} sparc/sol2-gas.h sparc/sol2-gas-bi.h"
-	fi
-	if test x$gnu_ld = xyes; then
-		tm_file="${tm_file} sol2-gld.h sparc/sol2-gld-bi.h"
-	fi
-	tm_file="${tm_file} tm-dwarf2.h"
-	tmake_file="t-sol2 t-slibgcc-dummy sparc/t-sol2-64"
-	if test x$gas = xyes; then
-		tm_file="usegas.h ${tm_file}"
-	fi
-	c_target_objs="sol2-c.o"
-	cxx_target_objs="sol2-c.o"
-	extra_objs="sol2.o"
-	tm_p_file="${tm_p_file} sol2-protos.h"
-	case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
-	  "":yes:* | yes:yes:* )
-		thread_file=posix
-		;;
-	esac
+	tmake_file="${tmake_file} sparc/t-sol2-64"
 	;;
 sparc-wrs-vxworks)
 	tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
@@ -3073,7 +3040,7 @@
 		;;
 
 	arm*-*-*)
-		supported_defaults="arch cpu float tune fpu abi mode"
+		supported_defaults="arch cpu float tune fpu abi mode tls"
 		for which in cpu tune; do
 			# See if it matches any of the entries in arm-cores.def
 			eval "val=\$with_$which"
@@ -3156,6 +3123,17 @@
 			;;
 		esac
 
+		case "$with_tls" in
+		"" \
+		| gnu | gnu2)
+			# OK
+			;;
+		*)
+			echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
+			exit 1
+			;;
+		esac
+
 		if test "x$with_arch" != x && test "x$with_cpu" != x; then
 			echo "Warning: --with-arch overrides --with-cpu=$with_cpu" 1>&2
 		fi
@@ -3635,7 +3613,7 @@
 esac
 
 t=
-all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu divide llsc mips-plt synci"
+all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu divide llsc mips-plt synci tls"
 for option in $all_defaults
 do
 	eval "val=\$with_"`echo $option | sed s/-/_/g`
diff --git a/gcc/config/arm/arm-opts.h b/gcc/config/arm/arm-opts.h
index c35224e..6e604db 100644
--- a/gcc/config/arm/arm-opts.h
+++ b/gcc/config/arm/arm-opts.h
@@ -68,4 +68,9 @@
   TP_CP15
 };
 
+/* Which TLS scheme to use.  */
+enum arm_tls_type {
+  TLS_GNU,
+  TLS_GNU2
+};
 #endif
diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h
index 2fd75fb..3eb2177 100644
--- a/gcc/config/arm/arm-protos.h
+++ b/gcc/config/arm/arm-protos.h
@@ -66,8 +66,12 @@
 extern int neon_immediate_valid_for_move (rtx, enum machine_mode, rtx *, int *);
 extern int neon_immediate_valid_for_logic (rtx, enum machine_mode, int, rtx *,
 					   int *);
+extern int neon_immediate_valid_for_shift (rtx, enum machine_mode, rtx *,
+					   int *, bool);
 extern char *neon_output_logic_immediate (const char *, rtx *,
 					  enum machine_mode, int, int);
+extern char *neon_output_shift_immediate (const char *, char, rtx *,
+					  enum machine_mode, int, bool);
 extern void neon_pairwise_reduce (rtx, rtx, enum machine_mode,
 				  rtx (*) (rtx, rtx, rtx));
 extern rtx neon_make_constant (rtx);
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 547acc8..efffcf8 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -1009,7 +1009,8 @@
   TLS_LDM32,
   TLS_LDO32,
   TLS_IE32,
-  TLS_LE32
+  TLS_LE32,
+  TLS_DESCSEQ	/* GNU scheme */
 };
 
 /* The maximum number of insns to be used when loading a constant.  */
@@ -5881,6 +5882,7 @@
 {
   rtx insns, label, labelno, sum;
 
+  gcc_assert (reloc != TLS_DESCSEQ);
   start_sequence ();
 
   labelno = GEN_INT (pic_labelno++);
@@ -5895,20 +5897,42 @@
 
   if (TARGET_ARM)
     emit_insn (gen_pic_add_dot_plus_eight (reg, reg, labelno));
-  else if (TARGET_THUMB2)
+  else
     emit_insn (gen_pic_add_dot_plus_four (reg, reg, labelno));
-  else /* TARGET_THUMB1 */
-    emit_insn (gen_pic_add_dot_plus_four (reg, reg, labelno));
-
-  *valuep = emit_library_call_value (get_tls_get_addr (), NULL_RTX, LCT_PURE, /* LCT_CONST?  */
+  
+  *valuep = emit_library_call_value (get_tls_get_addr (), NULL_RTX,
+				     LCT_PURE, /* LCT_CONST?  */
 				     Pmode, 1, reg, Pmode);
-
+  
   insns = get_insns ();
   end_sequence ();
 
   return insns;
 }
 
+static rtx
+arm_tls_descseq_addr (rtx x, rtx reg)
+{
+  rtx labelno = GEN_INT (pic_labelno++);
+  rtx label = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, labelno), UNSPEC_PIC_LABEL);
+  rtx sum = gen_rtx_UNSPEC (Pmode,
+			    gen_rtvec (4, x, GEN_INT (TLS_DESCSEQ),
+				       gen_rtx_CONST (VOIDmode, label),
+				       GEN_INT (!TARGET_ARM)),
+			    UNSPEC_TLS);
+  rtx reg0 = load_tls_operand (sum, gen_rtx_REG (SImode, 0));
+  
+  emit_insn (gen_tlscall (x, labelno));
+  if (!reg)
+    reg = gen_reg_rtx (SImode);
+  else
+    gcc_assert (REGNO (reg) != 0);
+
+  emit_move_insn (reg, reg0);
+
+  return reg;
+}
+
 rtx
 legitimize_tls_address (rtx x, rtx reg)
 {
@@ -5918,26 +5942,51 @@
   switch (model)
     {
     case TLS_MODEL_GLOBAL_DYNAMIC:
-      insns = arm_call_tls_get_addr (x, reg, &ret, TLS_GD32);
-      dest = gen_reg_rtx (Pmode);
-      emit_libcall_block (insns, dest, ret, x);
+      if (TARGET_GNU2_TLS)
+	{
+	  reg = arm_tls_descseq_addr (x, reg);
+
+	  tp = arm_load_tp (NULL_RTX);
+	  
+	  dest = gen_rtx_PLUS (Pmode, tp, reg);
+	}
+      else
+	{
+	  /* Original scheme */
+	  insns = arm_call_tls_get_addr (x, reg, &ret, TLS_GD32);
+	  dest = gen_reg_rtx (Pmode);
+	  emit_libcall_block (insns, dest, ret, x);
+	}
       return dest;
 
     case TLS_MODEL_LOCAL_DYNAMIC:
-      insns = arm_call_tls_get_addr (x, reg, &ret, TLS_LDM32);
+      if (TARGET_GNU2_TLS)
+	{
+	  reg = arm_tls_descseq_addr (x, reg);
 
-      /* Attach a unique REG_EQUIV, to allow the RTL optimizers to
-	 share the LDM result with other LD model accesses.  */
-      eqv = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, const1_rtx),
-			    UNSPEC_TLS);
-      dest = gen_reg_rtx (Pmode);
-      emit_libcall_block (insns, dest, ret, eqv);
-
-      /* Load the addend.  */
-      addend = gen_rtx_UNSPEC (Pmode, gen_rtvec (2, x, GEN_INT (TLS_LDO32)),
-			       UNSPEC_TLS);
-      addend = force_reg (SImode, gen_rtx_CONST (SImode, addend));
-      return gen_rtx_PLUS (Pmode, dest, addend);
+	  tp = arm_load_tp (NULL_RTX);
+	  
+	  dest = gen_rtx_PLUS (Pmode, tp, reg);
+	}
+      else
+	{
+	  insns = arm_call_tls_get_addr (x, reg, &ret, TLS_LDM32);
+	  
+	  /* Attach a unique REG_EQUIV, to allow the RTL optimizers to
+	     share the LDM result with other LD model accesses.  */
+	  eqv = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, const1_rtx),
+				UNSPEC_TLS);
+	  dest = gen_reg_rtx (Pmode);
+	  emit_libcall_block (insns, dest, ret, eqv);
+	  
+	  /* Load the addend.  */
+	  addend = gen_rtx_UNSPEC (Pmode, gen_rtvec (2, x,
+						     GEN_INT (TLS_LDO32)),
+				   UNSPEC_TLS);
+	  addend = force_reg (SImode, gen_rtx_CONST (SImode, addend));
+	  dest = gen_rtx_PLUS (Pmode, dest, addend);
+	}
+      return dest;
 
     case TLS_MODEL_INITIAL_EXEC:
       labelno = GEN_INT (pic_labelno++);
@@ -8559,6 +8608,66 @@
   return 1;
 }
 
+/* Return TRUE if rtx OP is legal for use in a VSHR or VSHL instruction.  If
+   the immediate is valid, write a constant suitable for using as an operand
+   to VSHR/VSHL to *MODCONST and the corresponding element width to
+   *ELEMENTWIDTH. ISLEFTSHIFT is for determine left or right shift,
+   because they have different limitations.  */
+
+int
+neon_immediate_valid_for_shift (rtx op, enum machine_mode mode,
+				rtx *modconst, int *elementwidth,
+				bool isleftshift)
+{
+  unsigned int innersize = GET_MODE_SIZE (GET_MODE_INNER (mode));
+  unsigned int n_elts = CONST_VECTOR_NUNITS (op), i;
+  unsigned HOST_WIDE_INT last_elt = 0;
+  unsigned HOST_WIDE_INT maxshift;
+
+  /* Split vector constant out into a byte vector.  */
+  for (i = 0; i < n_elts; i++)
+    {
+      rtx el = CONST_VECTOR_ELT (op, i);
+      unsigned HOST_WIDE_INT elpart;
+
+      if (GET_CODE (el) == CONST_INT)
+        elpart = INTVAL (el);
+      else if (GET_CODE (el) == CONST_DOUBLE)
+        return 0;
+      else
+        gcc_unreachable ();
+
+      if (i != 0 && elpart != last_elt)
+        return 0;
+
+      last_elt = elpart;
+    }
+
+  /* Shift less than element size.  */
+  maxshift = innersize * 8;
+
+  if (isleftshift)
+    {
+      /* Left shift immediate value can be from 0 to <size>-1.  */
+      if (last_elt >= maxshift)
+        return 0;
+    }
+  else
+    {
+      /* Right shift immediate value can be from 1 to <size>.  */
+      if (last_elt == 0 || last_elt > maxshift)
+	return 0;
+    }
+
+  if (elementwidth)
+    *elementwidth = innersize * 8;
+
+  if (modconst)
+    *modconst = CONST_VECTOR_ELT (op, 0);
+
+  return 1;
+}
+
 /* Return a string suitable for output of Neon immediate logic operation
    MNEM.  */
 
@@ -8581,6 +8690,28 @@
   return templ;
 }
 
+/* Return a string suitable for output of Neon immediate shift operation
+   (VSHR or VSHL) MNEM.  */
+
+char *
+neon_output_shift_immediate (const char *mnem, char sign, rtx *op2,
+			     enum machine_mode mode, int quad,
+			     bool isleftshift)
+{
+  int width, is_valid;
+  static char templ[40];
+
+  is_valid = neon_immediate_valid_for_shift (*op2, mode, op2, &width, isleftshift);
+  gcc_assert (is_valid != 0);
+
+  if (quad)
+    sprintf (templ, "%s.%c%d\t%%q0, %%q1, %%2", mnem, sign, width);
+  else
+    sprintf (templ, "%s.%c%d\t%%P0, %%P1, %%2", mnem, sign, width);
+
+  return templ;
+}
+
 /* Output a sequence of pairwise operations to implement a reduction.
    NOTE: We do "too much work" here, because pairwise operations work on two
    registers-worth of operands in one go. Unfortunately we can't exploit those
@@ -9384,6 +9515,11 @@
 static bool
 arm_cannot_copy_insn_p (rtx insn)
 {
+  /* The tls call insn cannot be copied, as it is paired with a data
+     word.  */
+  if (recog_memoized (insn) == CODE_FOR_tlscall)
+    return true;
+  
   return for_each_rtx (&PATTERN (insn), arm_note_pic_base, NULL);
 }
 
@@ -22912,6 +23048,9 @@
     case TLS_LE32:
       fputs ("(tpoff)", fp);
       break;
+    case TLS_DESCSEQ:
+      fputs ("(tlsdesc)", fp);
+      break;
     default:
       gcc_unreachable ();
     }
@@ -22921,9 +23060,11 @@
     case TLS_GD32:
     case TLS_LDM32:
     case TLS_IE32:
+    case TLS_DESCSEQ:
       fputs (" + (. - ", fp);
       output_addr_const (fp, XVECEXP (x, 0, 2));
-      fputs (" - ", fp);
+      /* For DESCSEQ the 3rd operand encodes thumbness, and is added */
+      fputs (reloc == TLS_DESCSEQ ? " + " : " - ", fp);
       output_addr_const (fp, XVECEXP (x, 0, 3));
       fputc (')', fp);
       break;
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index c32ef1a..b0d26259 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -220,6 +220,7 @@
 
 #define TARGET_HARD_TP			(target_thread_pointer == TP_CP15)
 #define TARGET_SOFT_TP			(target_thread_pointer == TP_SOFT)
+#define TARGET_GNU2_TLS			(target_tls_dialect == TLS_GNU2)
 
 /* Only 16-bit thumb code.  */
 #define TARGET_THUMB1			(TARGET_THUMB && !arm_arch_thumb2)
@@ -313,7 +314,8 @@
      by -march).
    --with-float is ignored if -mfloat-abi is specified.
    --with-fpu is ignored if -mfpu is specified.
-   --with-abi is ignored is -mabi is specified.  */
+   --with-abi is ignored if -mabi is specified.
+   --with-tls is ignored if -mtls-dialect is specified. */
 #define OPTION_DEFAULT_SPECS \
   {"arch", "%{!march=*:%{!mcpu=*:-march=%(VALUE)}}" }, \
   {"cpu", "%{!march=*:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
@@ -321,7 +323,8 @@
   {"float", "%{!mfloat-abi=*:-mfloat-abi=%(VALUE)}" }, \
   {"fpu", "%{!mfpu=*:-mfpu=%(VALUE)}"}, \
   {"abi", "%{!mabi=*:-mabi=%(VALUE)}"}, \
-  {"mode", "%{!marm:%{!mthumb:-m%(VALUE)}}"},
+  {"mode", "%{!marm:%{!mthumb:-m%(VALUE)}}"}, \
+  {"tls", "%{!mtls-dialect=*:-mtls-dialect=%(VALUE)}"},
 
 /* Which floating point model to use.  */
 enum arm_fp_model
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 70f703c..26291af 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -31,6 +31,7 @@
 ;; Register numbers
 (define_constants
   [(R0_REGNUM        0)		; First CORE register
+   (R1_REGNUM	     1)		; Second CORE register
    (IP_REGNUM	    12)		; Scratch register
    (SP_REGNUM	    13)		; Stack pointer
    (LR_REGNUM       14)		; Return address register
@@ -8631,18 +8632,22 @@
 ;; Patterns to allow combination of arithmetic, cond code and shifts
 
 (define_insn "*arith_shiftsi"
-  [(set (match_operand:SI 0 "s_register_operand" "=r,r")
+  [(set (match_operand:SI 0 "s_register_operand" "=r,r,r,r")
         (match_operator:SI 1 "shiftable_operator"
           [(match_operator:SI 3 "shift_operator"
-             [(match_operand:SI 4 "s_register_operand" "r,r")
-              (match_operand:SI 5 "shift_amount_operand" "M,r")])
-           (match_operand:SI 2 "s_register_operand" "rk,rk")]))]
+             [(match_operand:SI 4 "s_register_operand" "r,r,r,r")
+              (match_operand:SI 5 "shift_amount_operand" "M,M,M,r")])
+           (match_operand:SI 2 "s_register_operand" "rk,rk,r,rk")]))]
   "TARGET_32BIT"
   "%i1%?\\t%0, %2, %4%S3"
   [(set_attr "predicable" "yes")
    (set_attr "shift" "4")
-   (set_attr "arch" "32,a")
-   ;; We have to make sure to disable the second alternative if
+   (set_attr "arch" "a,t2,t2,a")
+   ;; Thumb2 doesn't allow the stack pointer to be used for 
+   ;; operand1 for all operations other than add and sub. In this case 
+   ;; the minus operation is a candidate for an rsub and hence needs
+   ;; to be disabled.
+   ;; We have to make sure to disable the fourth alternative if
    ;; the shift_operator is MULT, since otherwise the insn will
    ;; also match a multiply_accumulate pattern and validate_change
    ;; will allow a replacement of the constant with a register
@@ -8650,9 +8655,13 @@
    (set_attr_alternative "insn_enabled"
 			 [(const_string "yes")
 			  (if_then_else
+			   (match_operand:SI 1 "add_operator" "")
+			   (const_string "yes") (const_string "no"))
+			  (const_string "yes")
+			  (if_then_else
 			   (match_operand:SI 3 "mult_operator" "")
 			   (const_string "no") (const_string "yes"))])
-   (set_attr "type" "alu_shift,alu_shift_reg")])
+   (set_attr "type" "alu_shift,alu_shift,alu_shift,alu_shift_reg")])
 
 (define_split
   [(set (match_operand:SI 0 "s_register_operand" "")
@@ -10719,6 +10728,27 @@
   [(set_attr "conds" "clob")]
 )
 
+;; tls descriptor call
+(define_insn "tlscall"
+  [(set (reg:SI R0_REGNUM)
+        (unspec:SI [(reg:SI R0_REGNUM)
+                    (match_operand:SI 0 "" "X")
+	            (match_operand 1 "" "")] UNSPEC_TLS))
+   (clobber (reg:SI R1_REGNUM))
+   (clobber (reg:SI LR_REGNUM))
+   (clobber (reg:SI CC_REGNUM))]
+  "TARGET_GNU2_TLS"
+  {
+    targetm.asm_out.internal_label (asm_out_file, "LPIC",
+				    INTVAL (operands[1]));
+    return "bl\\t%c0(tlscall)";
+  }
+  [(set_attr "conds" "clob")
+   (set_attr "length" "4")]
+)
+
+;;
+
 ;; We only care about the lower 16 bits of the constant 
 ;; being inserted into the upper 16 bits of the register.
 (define_insn "*arm_movtas_ze" 
diff --git a/gcc/config/arm/arm.opt b/gcc/config/arm/arm.opt
index c45bc77..48a5cb3 100644
--- a/gcc/config/arm/arm.opt
+++ b/gcc/config/arm/arm.opt
@@ -21,6 +21,16 @@
 HeaderInclude
 config/arm/arm-opts.h
 
+Enum
+Name(tls_type) Type(enum arm_tls_type)
+TLS dialect to use:
+
+EnumValue
+Enum(tls_type) String(gnu) Value(TLS_GNU)
+
+EnumValue
+Enum(tls_type) String(gnu2) Value(TLS_GNU2)
+
 mabi=
 Target RejectNegative Joined Enum(arm_abi_type) Var(arm_abi) Init(ARM_DEFAULT_ABI)
 Specify an ABI
@@ -190,6 +200,10 @@
 Target Report Mask(INTERWORK)
 Support calls between Thumb and ARM instruction sets
 
+mtls-dialect=
+Target RejectNegative Joined Enum(tls_type) Var(target_tls_dialect) Init(TLS_GNU)
+Specify thread local storage scheme
+
 mtp=
 Target RejectNegative Joined Enum(arm_tp_type) Var(target_thread_pointer) Init(TP_AUTO)
 Specify how to access the thread pointer
diff --git a/gcc/config/arm/neon.md b/gcc/config/arm/neon.md
index a8c1b87..2c109e0 100644
--- a/gcc/config/arm/neon.md
+++ b/gcc/config/arm/neon.md
@@ -969,17 +969,59 @@
 ; SImode elements.
 
 (define_insn "vashl<mode>3"
-  [(set (match_operand:VDQIW 0 "s_register_operand" "=w")
-	(ashift:VDQIW (match_operand:VDQIW 1 "s_register_operand" "w")
-		      (match_operand:VDQIW 2 "s_register_operand" "w")))]
+  [(set (match_operand:VDQIW 0 "s_register_operand" "=w,w")
+	(ashift:VDQIW (match_operand:VDQIW 1 "s_register_operand" "w,w")
+		      (match_operand:VDQIW 2 "imm_lshift_or_reg_neon" "w,Dn")))]
   "TARGET_NEON"
-  "vshl.<V_s_elem>\t%<V_reg>0, %<V_reg>1, %<V_reg>2"
+  {
+    switch (which_alternative)
+      {
+        case 0: return "vshl.<V_s_elem>\t%<V_reg>0, %<V_reg>1, %<V_reg>2";
+        case 1: return neon_output_shift_immediate ("vshl", 'i', &operands[2],
+                         			    <MODE>mode,
+						    VALID_NEON_QREG_MODE (<MODE>mode),
+						    true);
+        default: gcc_unreachable ();
+      }
+  }
   [(set (attr "neon_type")
       (if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
                     (const_string "neon_vshl_ddd")
                     (const_string "neon_shift_3")))]
 )
 
+(define_insn "vashr<mode>3_imm"
+  [(set (match_operand:VDQIW 0 "s_register_operand" "=w")
+	(ashiftrt:VDQIW (match_operand:VDQIW 1 "s_register_operand" "w")
+			(match_operand:VDQIW 2 "imm_for_neon_rshift_operand" "Dn")))]
+  "TARGET_NEON"
+  {
+    return neon_output_shift_immediate ("vshr", 's', &operands[2],
+					<MODE>mode, VALID_NEON_QREG_MODE (<MODE>mode),
+					false);
+  }
+  [(set (attr "neon_type")
+      (if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
+                    (const_string "neon_vshl_ddd")
+                    (const_string "neon_shift_3")))]
+)
+
+(define_insn "vlshr<mode>3_imm"
+  [(set (match_operand:VDQIW 0 "s_register_operand" "=w")
+	(lshiftrt:VDQIW (match_operand:VDQIW 1 "s_register_operand" "w")
+			(match_operand:VDQIW 2 "imm_for_neon_rshift_operand" "Dn")))]
+  "TARGET_NEON"
+  {
+    return neon_output_shift_immediate ("vshr", 'u', &operands[2],
+					<MODE>mode, VALID_NEON_QREG_MODE (<MODE>mode),
+					false);
+  }              
+  [(set (attr "neon_type")
+	(if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
+		      (const_string "neon_vshl_ddd")
+		      (const_string "neon_shift_3")))]
+)
+
 ; Used for implementing logical shift-right, which is a left-shift by a negative
 ; amount, with signed operands. This is essentially the same as ashl<mode>3
 ; above, but using an unspec in case GCC tries anything tricky with negative
@@ -1017,28 +1059,34 @@
 (define_expand "vashr<mode>3"
   [(set (match_operand:VDQIW 0 "s_register_operand" "")
 	(ashiftrt:VDQIW (match_operand:VDQIW 1 "s_register_operand" "")
-			(match_operand:VDQIW 2 "s_register_operand" "")))]
+			(match_operand:VDQIW 2 "imm_rshift_or_reg_neon" "")))]
   "TARGET_NEON"
 {
   rtx neg = gen_reg_rtx (<MODE>mode);
-
-  emit_insn (gen_neg<mode>2 (neg, operands[2]));
-  emit_insn (gen_ashl<mode>3_signed (operands[0], operands[1], neg));
-
+  if (REG_P (operands[2]))
+    {
+      emit_insn (gen_neg<mode>2 (neg, operands[2]));
+      emit_insn (gen_ashl<mode>3_signed (operands[0], operands[1], neg));
+    }
+  else
+    emit_insn (gen_vashr<mode>3_imm (operands[0], operands[1], operands[2]));
   DONE;
 })
 
 (define_expand "vlshr<mode>3"
   [(set (match_operand:VDQIW 0 "s_register_operand" "")
 	(lshiftrt:VDQIW (match_operand:VDQIW 1 "s_register_operand" "")
-			(match_operand:VDQIW 2 "s_register_operand" "")))]
+			(match_operand:VDQIW 2 "imm_rshift_or_reg_neon" "")))]
   "TARGET_NEON"
 {
   rtx neg = gen_reg_rtx (<MODE>mode);
-
-  emit_insn (gen_neg<mode>2 (neg, operands[2]));
-  emit_insn (gen_ashl<mode>3_unsigned (operands[0], operands[1], neg));
-
+  if (REG_P (operands[2]))
+    {
+      emit_insn (gen_neg<mode>2 (neg, operands[2]));
+      emit_insn (gen_ashl<mode>3_unsigned (operands[0], operands[1], neg));
+    }
+  else
+    emit_insn (gen_vlshr<mode>3_imm (operands[0], operands[1], operands[2]));
   DONE;
 })
 
diff --git a/gcc/config/arm/predicates.md b/gcc/config/arm/predicates.md
index 891a974..4bd8af1 100644
--- a/gcc/config/arm/predicates.md
+++ b/gcc/config/arm/predicates.md
@@ -585,6 +585,26 @@
   return neon_immediate_valid_for_move (op, mode, NULL, NULL);
 })
 
+(define_predicate "imm_for_neon_lshift_operand"
+  (match_code "const_vector")
+{
+  return neon_immediate_valid_for_shift (op, mode, NULL, NULL, true);
+})
+
+(define_predicate "imm_for_neon_rshift_operand"
+  (match_code "const_vector")
+{
+  return neon_immediate_valid_for_shift (op, mode, NULL, NULL, false);
+})
+
+(define_predicate "imm_lshift_or_reg_neon"
+  (ior (match_operand 0 "s_register_operand")
+       (match_operand 0 "imm_for_neon_lshift_operand")))
+
+(define_predicate "imm_rshift_or_reg_neon"
+  (ior (match_operand 0 "s_register_operand")
+       (match_operand 0 "imm_for_neon_rshift_operand")))
+
 (define_predicate "imm_for_neon_logic_operand"
   (match_code "const_vector")
 {
@@ -687,3 +707,6 @@
 (define_special_predicate "neon_struct_operand"
   (and (match_code "mem")
        (match_test "TARGET_32BIT && neon_vector_mem_operand (op, 2)")))
+
+(define_special_predicate "add_operator"
+  (match_code "plus"))
diff --git a/gcc/config/avr/avr-devices.c b/gcc/config/avr/avr-devices.c
index d2884f6..bc326e3 100755
--- a/gcc/config/avr/avr-devices.c
+++ b/gcc/config/avr/avr-devices.c
@@ -39,190 +39,11 @@
   { 0, 1, 1, 1, 1, 1, 1, 0, 0, 0x0060, "__AVR_ARCH__=6",   "avr6" }
 };
 
-/* List of all known AVR MCU types - if updated, it has to be kept
-   in sync in several places (FIXME: is there a better way?):
-    - here;
-    - t-avr (MULTILIB_MATCHES);
-    - gas/config/tc-avr.c;
-    - avr-libc.  */
-
 const struct mcu_type_s avr_mcu_types[] = {
-    /* Classic, <= 8K.  */
-  { "avr2",                 ARCH_AVR2, NULL,                        0, 0x0060, "s8515" },
-  { "at90s2313",            ARCH_AVR2, "__AVR_AT90S2313__",         1, 0x0060, "s2313" },
-  { "at90s2323",            ARCH_AVR2, "__AVR_AT90S2323__",         1, 0x0060, "s2323" },
-  { "at90s2333",            ARCH_AVR2, "__AVR_AT90S2333__",         1, 0x0060, "s2333" },
-  { "at90s2343",            ARCH_AVR2, "__AVR_AT90S2343__",         1, 0x0060, "s2343" },
-  { "attiny22",             ARCH_AVR2, "__AVR_ATtiny22__",          1, 0x0060, "tn22" },
-  { "attiny26",             ARCH_AVR2, "__AVR_ATtiny26__",          1, 0x0060, "tn26" },
-  { "at90s4414",            ARCH_AVR2, "__AVR_AT90S4414__",         0, 0x0060, "s4414" },
-  { "at90s4433",            ARCH_AVR2, "__AVR_AT90S4433__",         1, 0x0060, "s4433" },
-  { "at90s4434",            ARCH_AVR2, "__AVR_AT90S4434__",         0, 0x0060, "s4434" },
-  { "at90s8515",            ARCH_AVR2, "__AVR_AT90S8515__",         0, 0x0060, "s8515" },
-  { "at90c8534",            ARCH_AVR2, "__AVR_AT90C8534__",         0, 0x0060, "c8534" },
-  { "at90s8535",            ARCH_AVR2, "__AVR_AT90S8535__",         0, 0x0060, "s8535" },
-    /* Classic + MOVW, <= 8K.  */
-  { "avr25",                ARCH_AVR25, NULL,                       0, 0x0060, "tn85" },
-  { "ata6289",              ARCH_AVR25, "__AVR_ATA6289__",          0, 0x0100, "a6289" },
-  { "attiny13",             ARCH_AVR25, "__AVR_ATtiny13__",         1, 0x0060, "tn13" },
-  { "attiny13a",            ARCH_AVR25, "__AVR_ATtiny13A__",        1, 0x0060, "tn13a" },
-  { "attiny2313",           ARCH_AVR25, "__AVR_ATtiny2313__",       1, 0x0060, "tn2313" },
-  { "attiny2313a",          ARCH_AVR25, "__AVR_ATtiny2313A__",      1, 0x0060, "tn2313a" },
-  { "attiny24",             ARCH_AVR25, "__AVR_ATtiny24__",         1, 0x0060, "tn24" },
-  { "attiny24a",            ARCH_AVR25, "__AVR_ATtiny24A__",        1, 0x0060, "tn24a" },
-  { "attiny4313",           ARCH_AVR25, "__AVR_ATtiny4313__",       1, 0x0060, "tn4313" },
-  { "attiny44",             ARCH_AVR25, "__AVR_ATtiny44__",         0, 0x0060, "tn44" },
-  { "attiny44a",            ARCH_AVR25, "__AVR_ATtiny44A__",        0, 0x0060, "tn44a" },
-  { "attiny84",             ARCH_AVR25, "__AVR_ATtiny84__",         0, 0x0060, "tn84" },
-  { "attiny84a",            ARCH_AVR25, "__AVR_ATtiny84A__",        0, 0x0060, "tn84" },
-  { "attiny25",             ARCH_AVR25, "__AVR_ATtiny25__",         1, 0x0060, "tn25" },
-  { "attiny45",             ARCH_AVR25, "__AVR_ATtiny45__",         0, 0x0060, "tn45" },
-  { "attiny85",             ARCH_AVR25, "__AVR_ATtiny85__",         0, 0x0060, "tn85" },
-  { "attiny261",            ARCH_AVR25, "__AVR_ATtiny261__",        1, 0x0060, "tn261" },
-  { "attiny261a",           ARCH_AVR25, "__AVR_ATtiny261A__",       1, 0x0060, "tn261a" },
-  { "attiny461",            ARCH_AVR25, "__AVR_ATtiny461__",        0, 0x0060, "tn461" },
-  { "attiny461a",           ARCH_AVR25, "__AVR_ATtiny461A__",       0, 0x0060, "tn461a" },
-  { "attiny861",            ARCH_AVR25, "__AVR_ATtiny861__",        0, 0x0060, "tn861" },
-  { "attiny861a",           ARCH_AVR25, "__AVR_ATtiny861A__",       0, 0x0060, "tn861a" },
-  { "attiny43u",            ARCH_AVR25, "__AVR_ATtiny43U__",        0, 0x0060, "tn43u" },
-  { "attiny87",             ARCH_AVR25, "__AVR_ATtiny87__",         0, 0x0100, "tn87" },
-  { "attiny48",             ARCH_AVR25, "__AVR_ATtiny48__",         0, 0x0100, "tn48" },
-  { "attiny88",             ARCH_AVR25, "__AVR_ATtiny88__",         0, 0x0100, "tn88" },
-  { "at86rf401",            ARCH_AVR25, "__AVR_AT86RF401__",        1, 0x0060, "86401" },
-    /* Classic, > 8K, <= 64K.  */
-  { "avr3",                 ARCH_AVR3, NULL,                        0, 0x0060, "43355" },
-  { "at43usb355",           ARCH_AVR3, "__AVR_AT43USB355__",        0, 0x0060, "43355" },
-  { "at76c711",             ARCH_AVR3, "__AVR_AT76C711__",          0, 0x0060, "76711" },
-    /* Classic, == 128K.  */
-  { "avr31",                ARCH_AVR31, NULL,                       0, 0x0060, "m103" },
-  { "atmega103",            ARCH_AVR31, "__AVR_ATmega103__",        0, 0x0060, "m103" },
-  { "at43usb320",           ARCH_AVR31, "__AVR_AT43USB320__",       0, 0x0060, "43320" },
-    /* Classic + MOVW + JMP/CALL.  */
-  { "avr35",                ARCH_AVR35, NULL,                       0, 0x0100, "usb162" },
-  { "at90usb82",            ARCH_AVR35, "__AVR_AT90USB82__",        0, 0x0100, "usb82" },
-  { "at90usb162",           ARCH_AVR35, "__AVR_AT90USB162__",       0, 0x0100, "usb162" },
-  { "atmega8u2",            ARCH_AVR35, "__AVR_ATmega8U2__",        0, 0x0100, "m8u2" },
-  { "atmega16u2",           ARCH_AVR35, "__AVR_ATmega16U2__",       0, 0x0100, "m16u2" },
-  { "atmega32u2",           ARCH_AVR35, "__AVR_ATmega32U2__",       0, 0x0100, "m32u2" },
-  { "attiny167",            ARCH_AVR35, "__AVR_ATtiny167__",        0, 0x0100, "tn167" },
-    /* Enhanced, <= 8K.  */
-  { "avr4",                 ARCH_AVR4, NULL,                        0, 0x0060, "m8" },
-  { "atmega8",              ARCH_AVR4, "__AVR_ATmega8__",           0, 0x0060, "m8" },
-  { "atmega48",             ARCH_AVR4, "__AVR_ATmega48__",          0, 0x0100, "m48" },
-  { "atmega48a",            ARCH_AVR4, "__AVR_ATmega48A__",         0, 0x0100, "m48a" },
-  { "atmega48p",            ARCH_AVR4, "__AVR_ATmega48P__",         0, 0x0100, "m48p" },
-  { "atmega88",             ARCH_AVR4, "__AVR_ATmega88__",          0, 0x0100, "m88" },
-  { "atmega88a",            ARCH_AVR4, "__AVR_ATmega88A__",         0, 0x0100, "m88a" },
-  { "atmega88p",            ARCH_AVR4, "__AVR_ATmega88P__",         0, 0x0100, "m88p" },
-  { "atmega88pa",           ARCH_AVR4, "__AVR_ATmega88PA__",        0, 0x0100, "m88pa" },
-  { "atmega8515",           ARCH_AVR4, "__AVR_ATmega8515__",        0, 0x0060, "m8515" },
-  { "atmega8535",           ARCH_AVR4, "__AVR_ATmega8535__",        0, 0x0060, "m8535" },
-  { "atmega8hva",           ARCH_AVR4, "__AVR_ATmega8HVA__",        0, 0x0100, "m8hva" },
-  { "at90pwm1",             ARCH_AVR4, "__AVR_AT90PWM1__",          0, 0x0100, "90pwm1" },
-  { "at90pwm2",             ARCH_AVR4, "__AVR_AT90PWM2__",          0, 0x0100, "90pwm2" },
-  { "at90pwm2b",            ARCH_AVR4, "__AVR_AT90PWM2B__",         0, 0x0100, "90pwm2b" },
-  { "at90pwm3",             ARCH_AVR4, "__AVR_AT90PWM3__",          0, 0x0100, "90pwm3" },
-  { "at90pwm3b",            ARCH_AVR4, "__AVR_AT90PWM3B__",         0, 0x0100, "90pwm3b" },
-  { "at90pwm81",            ARCH_AVR4, "__AVR_AT90PWM81__",         0, 0x0100, "90pwm81" },
-    /* Enhanced, > 8K, <= 64K.  */
-  { "avr5",                 ARCH_AVR5, NULL,                        0, 0x0060, "m16" },
-  { "atmega16",             ARCH_AVR5, "__AVR_ATmega16__",          0, 0x0060, "m16" },
-  { "atmega16a",            ARCH_AVR5, "__AVR_ATmega16A__",         0, 0x0060, "m16a" },
-  { "atmega161",            ARCH_AVR5, "__AVR_ATmega161__",         0, 0x0060, "m161" },
-  { "atmega162",            ARCH_AVR5, "__AVR_ATmega162__",         0, 0x0100, "m162" },
-  { "atmega163",            ARCH_AVR5, "__AVR_ATmega163__",         0, 0x0060, "m163" },
-  { "atmega164a",           ARCH_AVR5, "__AVR_ATmega164A__",        0, 0x0060, "m164a" },
-  { "atmega164p",           ARCH_AVR5, "__AVR_ATmega164P__",        0, 0x0100, "m164p" },
-  { "atmega165",            ARCH_AVR5, "__AVR_ATmega165__",         0, 0x0100, "m165" },
-  { "atmega165a",           ARCH_AVR5, "__AVR_ATmega165A__",        0, 0x0100, "m165a" },
-  { "atmega165p",           ARCH_AVR5, "__AVR_ATmega165P__",        0, 0x0100, "m165p" },
-  { "atmega168",            ARCH_AVR5, "__AVR_ATmega168__",         0, 0x0100, "m168" },
-  { "atmega168a",           ARCH_AVR5, "__AVR_ATmega168A__",        0, 0x0100, "m168a" },
-  { "atmega168p",           ARCH_AVR5, "__AVR_ATmega168P__",        0, 0x0100, "m168p" },
-  { "atmega169",            ARCH_AVR5, "__AVR_ATmega169__",         0, 0x0100, "m169" },
-  { "atmega169a",           ARCH_AVR5, "__AVR_ATmega169A__",        0, 0x0100, "m169a" },
-  { "atmega169p",           ARCH_AVR5, "__AVR_ATmega169P__",        0, 0x0100, "m169p" },
-  { "atmega169pa",          ARCH_AVR5, "__AVR_ATmega169PA__",       0, 0x0100, "m169pa" },
-  { "atmega32",             ARCH_AVR5, "__AVR_ATmega32__",          0, 0x0060, "m32" },
-  { "atmega323",            ARCH_AVR5, "__AVR_ATmega323__",         0, 0x0060, "m323" },
-  { "atmega324a",           ARCH_AVR5, "__AVR_ATmega324A__",        0, 0x0100, "m324a" },
-  { "atmega324p",           ARCH_AVR5, "__AVR_ATmega324P__",        0, 0x0100, "m324p" },
-  { "atmega324pa",          ARCH_AVR5, "__AVR_ATmega324PA__",       0, 0x0100, "m324pa" },
-  { "atmega325",            ARCH_AVR5, "__AVR_ATmega325__",         0, 0x0100, "m325" },
-  { "atmega325a",           ARCH_AVR5, "__AVR_ATmega325A__",        0, 0x0100, "m325a" },
-  { "atmega325p",           ARCH_AVR5, "__AVR_ATmega325P__",        0, 0x0100, "m325p" },
-  { "atmega3250",           ARCH_AVR5, "__AVR_ATmega3250__",        0, 0x0100, "m3250" },
-  { "atmega3250a",          ARCH_AVR5, "__AVR_ATmega3250A__",       0, 0x0100, "m3250a" },
-  { "atmega3250p",          ARCH_AVR5, "__AVR_ATmega3250P__",       0, 0x0100, "m3250p" },
-  { "atmega328",            ARCH_AVR5, "__AVR_ATmega328__",         0, 0x0100, "m328" },
-  { "atmega328p",           ARCH_AVR5, "__AVR_ATmega328P__",        0, 0x0100, "m328p" },
-  { "atmega329",            ARCH_AVR5, "__AVR_ATmega329__",         0, 0x0100, "m329" },
-  { "atmega329a",           ARCH_AVR5, "__AVR_ATmega329A__",        0, 0x0100, "m329a" },
-  { "atmega329p",           ARCH_AVR5, "__AVR_ATmega329P__",        0, 0x0100, "m329p" },
-  { "atmega329pa",          ARCH_AVR5, "__AVR_ATmega329PA__",       0, 0x0100, "m329pa" },
-  { "atmega3290",           ARCH_AVR5, "__AVR_ATmega3290__",        0, 0x0100, "m3290" },
-  { "atmega3290a",          ARCH_AVR5, "__AVR_ATmega3290A__",       0, 0x0100, "m3290a" },
-  { "atmega3290p",          ARCH_AVR5, "__AVR_ATmega3290P__",       0, 0x0100, "m3290p" },
-  { "atmega406",            ARCH_AVR5, "__AVR_ATmega406__",         0, 0x0100, "m406" },
-  { "atmega64",             ARCH_AVR5, "__AVR_ATmega64__",          0, 0x0100, "m64" },
-  { "atmega640",            ARCH_AVR5, "__AVR_ATmega640__",         0, 0x0200, "m640" },
-  { "atmega644",            ARCH_AVR5, "__AVR_ATmega644__",         0, 0x0100, "m644" },
-  { "atmega644a",           ARCH_AVR5, "__AVR_ATmega644A__",        0, 0x0100, "m644a" },
-  { "atmega644p",           ARCH_AVR5, "__AVR_ATmega644P__",        0, 0x0100, "m644p" },
-  { "atmega644pa",          ARCH_AVR5, "__AVR_ATmega644PA__",       0, 0x0100, "m644pa" },
-  { "atmega645",            ARCH_AVR5, "__AVR_ATmega645__",         0, 0x0100, "m645" },
-  { "atmega645a",           ARCH_AVR5, "__AVR_ATmega645A__",        0, 0x0100, "m645a" },
-  { "atmega645p",           ARCH_AVR5, "__AVR_ATmega645P__",        0, 0x0100, "m645p" },
-  { "atmega6450",           ARCH_AVR5, "__AVR_ATmega6450__",        0, 0x0100, "m6450" },
-  { "atmega6450a",          ARCH_AVR5, "__AVR_ATmega6450A__",       0, 0x0100, "m6450a" },
-  { "atmega6450p",          ARCH_AVR5, "__AVR_ATmega6450P__",       0, 0x0100, "m6450p" },
-  { "atmega649",            ARCH_AVR5, "__AVR_ATmega649__",         0, 0x0100, "m649" },
-  { "atmega649a",           ARCH_AVR5, "__AVR_ATmega649A__",        0, 0x0100, "m649a" },
-  { "atmega649p",           ARCH_AVR5, "__AVR_ATmega649P__",        0, 0x0100, "m649p" },
-  { "atmega6490",           ARCH_AVR5, "__AVR_ATmega6490__",        0, 0x0100, "m6490" },
-  { "atmega16hva",          ARCH_AVR5, "__AVR_ATmega16HVA__",       0, 0x0100, "m16hva" },
-  { "atmega16hva2",         ARCH_AVR5, "__AVR_ATmega16HVA2__",      0, 0x0100, "m16hva2" },
-  { "atmega16hvb",          ARCH_AVR5, "__AVR_ATmega16HVB__",       0, 0x0100, "m16hvb" },
-  { "atmega32hvb",          ARCH_AVR5, "__AVR_ATmega32HVB__",       0, 0x0100, "m32hvb" },
-  { "atmega64hve",          ARCH_AVR5, "__AVR_ATmega64HVE__",       0, 0x0100, "m64hve" },
-  { "at90can32",            ARCH_AVR5, "__AVR_AT90CAN32__",         0, 0x0100, "can32" },
-  { "at90can64",            ARCH_AVR5, "__AVR_AT90CAN64__",         0, 0x0100, "can64" },
-  { "at90pwm216",           ARCH_AVR5, "__AVR_AT90PWM216__",        0, 0x0100, "90pwm216" },
-  { "at90pwm316",           ARCH_AVR5, "__AVR_AT90PWM316__",        0, 0x0100, "90pwm316" },
-  { "atmega32c1",           ARCH_AVR5, "__AVR_ATmega32C1__",        0, 0x0100, "m32c1" },
-  { "atmega64c1",           ARCH_AVR5, "__AVR_ATmega64C1__",        0, 0x0100, "m64c1" },
-  { "atmega16m1",           ARCH_AVR5, "__AVR_ATmega16M1__",        0, 0x0100, "m16m1" },
-  { "atmega32m1",           ARCH_AVR5, "__AVR_ATmega32M1__",        0, 0x0100, "m32m1" },
-  { "atmega64m1",           ARCH_AVR5, "__AVR_ATmega64M1__",        0, 0x0100, "m64m1" },
-  { "atmega16u4",           ARCH_AVR5, "__AVR_ATmega16U4__",        0, 0x0100, "m16u4" },
-  { "atmega32u4",           ARCH_AVR5, "__AVR_ATmega32U4__",        0, 0x0100, "m32u4" },
-  { "atmega32u6",           ARCH_AVR5, "__AVR_ATmega32U6__",        0, 0x0100, "m32u6" },
-  { "at90scr100",           ARCH_AVR5, "__AVR_AT90SCR100__",        0, 0x0100, "90scr100" },
-  { "at90usb646",           ARCH_AVR5, "__AVR_AT90USB646__",        0, 0x0100, "usb646" },
-  { "at90usb647",           ARCH_AVR5, "__AVR_AT90USB647__",        0, 0x0100, "usb647" },
-  { "at94k",                ARCH_AVR5, "__AVR_AT94K__",             0, 0x0060, "at94k" },
-  { "m3000",                ARCH_AVR5, "__AVR_M3000__",             0, 0x1000, "m3000" },
-    /* Enhanced, == 128K.  */
-  { "avr51",                ARCH_AVR51, NULL,                       0, 0x0100, "m128" },
-  { "atmega128",            ARCH_AVR51, "__AVR_ATmega128__",        0, 0x0100, "m128" },
-  { "atmega1280",           ARCH_AVR51, "__AVR_ATmega1280__",       0, 0x0200, "m1280" },
-  { "atmega1281",           ARCH_AVR51, "__AVR_ATmega1281__",       0, 0x0200, "m1281" },
-  { "atmega1284p",          ARCH_AVR51, "__AVR_ATmega1284P__",      0, 0x0100, "m1284p" },
-  { "atmega128rfa1",        ARCH_AVR51, "__AVR_ATmega128RFA1__",    0, 0x0200, "m128rfa1" },
-  { "at90can128",           ARCH_AVR51, "__AVR_AT90CAN128__",       0, 0x0100, "can128" },
-  { "at90usb1286",          ARCH_AVR51, "__AVR_AT90USB1286__",      0, 0x0100, "usb1286" },
-  { "at90usb1287",          ARCH_AVR51, "__AVR_AT90USB1287__",      0, 0x0100, "usb1286" },
-    /* 3-Byte PC.  */
-  { "avr6",                 ARCH_AVR6, NULL,                        0, 0x0200, "m2561" },
-  { "atmega2560",           ARCH_AVR6, "__AVR_ATmega2560__",        0, 0x0200, "m2560" },
-  { "atmega2561",           ARCH_AVR6, "__AVR_ATmega2561__",        0, 0x0200, "m2561" },
-    /* Assembler only.  */
-  { "avr1",                 ARCH_AVR1, NULL,                        0, 0x0060, "s1200" },
-  { "at90s1200",            ARCH_AVR1, "__AVR_AT90S1200__",         0, 0x0060, "s1200" },
-  { "attiny11",             ARCH_AVR1, "__AVR_ATtiny11__",          0, 0x0060, "tn11" },
-  { "attiny12",             ARCH_AVR1, "__AVR_ATtiny12__",          0, 0x0060, "tn12" },
-  { "attiny15",             ARCH_AVR1, "__AVR_ATtiny15__",          0, 0x0060, "tn15" },
-  { "attiny28",             ARCH_AVR1, "__AVR_ATtiny28__",          0, 0x0060, "tn28" },
+#define AVR_MCU(NAME, ARCH, MACRO, SHORT_SP, DATA_SEC, LIBRARY_NAME)	\
+  { NAME, ARCH, MACRO, SHORT_SP, DATA_SEC, LIBRARY_NAME },
+#include "avr-mcus.def"
+#undef AVR_MCU
     /* End of list.  */
   { NULL,                   ARCH_UNKNOWN, NULL,                     0,      0, NULL }
 };
diff --git a/gcc/config/avr/avr-mcus.def b/gcc/config/avr/avr-mcus.def
new file mode 100644
index 0000000..d2c6e7a
--- /dev/null
+++ b/gcc/config/avr/avr-mcus.def
@@ -0,0 +1,211 @@
+/* AVR MCUs.
+   Copyright (C) 2009, 2010, 2011
+   Free Software Foundation, Inc.
+
+   This file is part of GCC.
+
+   GCC is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+   
+   GCC is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with GCC; see the file COPYING3.  If not see
+   <http://www.gnu.org/licenses/>.  */
+
+/* List of all known AVR MCU types - if updated, it has to be kept
+   in sync in several places (FIXME: is there a better way?):
+    - here;
+    - t-avr (MULTILIB_MATCHES);
+    - gas/config/tc-avr.c;
+    - avr-libc.
+
+   Before including this file, define a macro:
+
+   AVR_MCU (NAME, ARCH, MACRO, SHORT_SP, DATA_SEC, LIBRARY_NAME)
+
+   where the arguments are the fields of struct mcu_type_s.  */
+
+/* "avr2" must be first for the "0" default to work as intended.  */
+
+/* Classic, <= 8K.  */
+AVR_MCU ("avr2",                 ARCH_AVR2, NULL,                        0, 0x0060, "s8515")
+AVR_MCU ("at90s2313",            ARCH_AVR2, "__AVR_AT90S2313__",         1, 0x0060, "s2313")
+AVR_MCU ("at90s2323",            ARCH_AVR2, "__AVR_AT90S2323__",         1, 0x0060, "s2323")
+AVR_MCU ("at90s2333",            ARCH_AVR2, "__AVR_AT90S2333__",         1, 0x0060, "s2333")
+AVR_MCU ("at90s2343",            ARCH_AVR2, "__AVR_AT90S2343__",         1, 0x0060, "s2343")
+AVR_MCU ("attiny22",             ARCH_AVR2, "__AVR_ATtiny22__",          1, 0x0060, "tn22")
+AVR_MCU ("attiny26",             ARCH_AVR2, "__AVR_ATtiny26__",          1, 0x0060, "tn26")
+AVR_MCU ("at90s4414",            ARCH_AVR2, "__AVR_AT90S4414__",         0, 0x0060, "s4414")
+AVR_MCU ("at90s4433",            ARCH_AVR2, "__AVR_AT90S4433__",         1, 0x0060, "s4433")
+AVR_MCU ("at90s4434",            ARCH_AVR2, "__AVR_AT90S4434__",         0, 0x0060, "s4434")
+AVR_MCU ("at90s8515",            ARCH_AVR2, "__AVR_AT90S8515__",         0, 0x0060, "s8515")
+AVR_MCU ("at90c8534",            ARCH_AVR2, "__AVR_AT90C8534__",         0, 0x0060, "c8534")
+AVR_MCU ("at90s8535",            ARCH_AVR2, "__AVR_AT90S8535__",         0, 0x0060, "s8535")
+/* Classic + MOVW, <= 8K.  */
+AVR_MCU ("avr25",                ARCH_AVR25, NULL,                       0, 0x0060, "tn85")
+AVR_MCU ("ata6289",              ARCH_AVR25, "__AVR_ATA6289__",          0, 0x0100, "a6289")
+AVR_MCU ("attiny13",             ARCH_AVR25, "__AVR_ATtiny13__",         1, 0x0060, "tn13")
+AVR_MCU ("attiny13a",            ARCH_AVR25, "__AVR_ATtiny13A__",        1, 0x0060, "tn13a")
+AVR_MCU ("attiny2313",           ARCH_AVR25, "__AVR_ATtiny2313__",       1, 0x0060, "tn2313")
+AVR_MCU ("attiny2313a",          ARCH_AVR25, "__AVR_ATtiny2313A__",      1, 0x0060, "tn2313a")
+AVR_MCU ("attiny24",             ARCH_AVR25, "__AVR_ATtiny24__",         1, 0x0060, "tn24")
+AVR_MCU ("attiny24a",            ARCH_AVR25, "__AVR_ATtiny24A__",        1, 0x0060, "tn24a")
+AVR_MCU ("attiny4313",           ARCH_AVR25, "__AVR_ATtiny4313__",       1, 0x0060, "tn4313")
+AVR_MCU ("attiny44",             ARCH_AVR25, "__AVR_ATtiny44__",         0, 0x0060, "tn44")
+AVR_MCU ("attiny44a",            ARCH_AVR25, "__AVR_ATtiny44A__",        0, 0x0060, "tn44a")
+AVR_MCU ("attiny84",             ARCH_AVR25, "__AVR_ATtiny84__",         0, 0x0060, "tn84")
+AVR_MCU ("attiny84a",            ARCH_AVR25, "__AVR_ATtiny84A__",        0, 0x0060, "tn84")
+AVR_MCU ("attiny25",             ARCH_AVR25, "__AVR_ATtiny25__",         1, 0x0060, "tn25")
+AVR_MCU ("attiny45",             ARCH_AVR25, "__AVR_ATtiny45__",         0, 0x0060, "tn45")
+AVR_MCU ("attiny85",             ARCH_AVR25, "__AVR_ATtiny85__",         0, 0x0060, "tn85")
+AVR_MCU ("attiny261",            ARCH_AVR25, "__AVR_ATtiny261__",        1, 0x0060, "tn261")
+AVR_MCU ("attiny261a",           ARCH_AVR25, "__AVR_ATtiny261A__",       1, 0x0060, "tn261a")
+AVR_MCU ("attiny461",            ARCH_AVR25, "__AVR_ATtiny461__",        0, 0x0060, "tn461")
+AVR_MCU ("attiny461a",           ARCH_AVR25, "__AVR_ATtiny461A__",       0, 0x0060, "tn461a")
+AVR_MCU ("attiny861",            ARCH_AVR25, "__AVR_ATtiny861__",        0, 0x0060, "tn861")
+AVR_MCU ("attiny861a",           ARCH_AVR25, "__AVR_ATtiny861A__",       0, 0x0060, "tn861a")
+AVR_MCU ("attiny43u",            ARCH_AVR25, "__AVR_ATtiny43U__",        0, 0x0060, "tn43u")
+AVR_MCU ("attiny87",             ARCH_AVR25, "__AVR_ATtiny87__",         0, 0x0100, "tn87")
+AVR_MCU ("attiny48",             ARCH_AVR25, "__AVR_ATtiny48__",         0, 0x0100, "tn48")
+AVR_MCU ("attiny88",             ARCH_AVR25, "__AVR_ATtiny88__",         0, 0x0100, "tn88")
+AVR_MCU ("at86rf401",            ARCH_AVR25, "__AVR_AT86RF401__",        1, 0x0060, "86401")
+/* Classic, > 8K, <= 64K.  */
+AVR_MCU ("avr3",                 ARCH_AVR3, NULL,                        0, 0x0060, "43355")
+AVR_MCU ("at43usb355",           ARCH_AVR3, "__AVR_AT43USB355__",        0, 0x0060, "43355")
+AVR_MCU ("at76c711",             ARCH_AVR3, "__AVR_AT76C711__",          0, 0x0060, "76711")
+/* Classic, == 128K.  */
+AVR_MCU ("avr31",                ARCH_AVR31, NULL,                       0, 0x0060, "m103")
+AVR_MCU ("atmega103",            ARCH_AVR31, "__AVR_ATmega103__",        0, 0x0060, "m103")
+AVR_MCU ("at43usb320",           ARCH_AVR31, "__AVR_AT43USB320__",       0, 0x0060, "43320")
+/* Classic + MOVW + JMP/CALL.  */
+AVR_MCU ("avr35",                ARCH_AVR35, NULL,                       0, 0x0100, "usb162")
+AVR_MCU ("at90usb82",            ARCH_AVR35, "__AVR_AT90USB82__",        0, 0x0100, "usb82")
+AVR_MCU ("at90usb162",           ARCH_AVR35, "__AVR_AT90USB162__",       0, 0x0100, "usb162")
+AVR_MCU ("atmega8u2",            ARCH_AVR35, "__AVR_ATmega8U2__",        0, 0x0100, "m8u2")
+AVR_MCU ("atmega16u2",           ARCH_AVR35, "__AVR_ATmega16U2__",       0, 0x0100, "m16u2")
+AVR_MCU ("atmega32u2",           ARCH_AVR35, "__AVR_ATmega32U2__",       0, 0x0100, "m32u2")
+AVR_MCU ("attiny167",            ARCH_AVR35, "__AVR_ATtiny167__",        0, 0x0100, "tn167")
+/* Enhanced, <= 8K.  */
+AVR_MCU ("avr4",                 ARCH_AVR4, NULL,                        0, 0x0060, "m8")
+AVR_MCU ("atmega8",              ARCH_AVR4, "__AVR_ATmega8__",           0, 0x0060, "m8")
+AVR_MCU ("atmega48",             ARCH_AVR4, "__AVR_ATmega48__",          0, 0x0100, "m48")
+AVR_MCU ("atmega48a",            ARCH_AVR4, "__AVR_ATmega48A__",         0, 0x0100, "m48a")
+AVR_MCU ("atmega48p",            ARCH_AVR4, "__AVR_ATmega48P__",         0, 0x0100, "m48p")
+AVR_MCU ("atmega88",             ARCH_AVR4, "__AVR_ATmega88__",          0, 0x0100, "m88")
+AVR_MCU ("atmega88a",            ARCH_AVR4, "__AVR_ATmega88A__",         0, 0x0100, "m88a")
+AVR_MCU ("atmega88p",            ARCH_AVR4, "__AVR_ATmega88P__",         0, 0x0100, "m88p")
+AVR_MCU ("atmega88pa",           ARCH_AVR4, "__AVR_ATmega88PA__",        0, 0x0100, "m88pa")
+AVR_MCU ("atmega8515",           ARCH_AVR4, "__AVR_ATmega8515__",        0, 0x0060, "m8515")
+AVR_MCU ("atmega8535",           ARCH_AVR4, "__AVR_ATmega8535__",        0, 0x0060, "m8535")
+AVR_MCU ("atmega8hva",           ARCH_AVR4, "__AVR_ATmega8HVA__",        0, 0x0100, "m8hva")
+AVR_MCU ("at90pwm1",             ARCH_AVR4, "__AVR_AT90PWM1__",          0, 0x0100, "90pwm1")
+AVR_MCU ("at90pwm2",             ARCH_AVR4, "__AVR_AT90PWM2__",          0, 0x0100, "90pwm2")
+AVR_MCU ("at90pwm2b",            ARCH_AVR4, "__AVR_AT90PWM2B__",         0, 0x0100, "90pwm2b")
+AVR_MCU ("at90pwm3",             ARCH_AVR4, "__AVR_AT90PWM3__",          0, 0x0100, "90pwm3")
+AVR_MCU ("at90pwm3b",            ARCH_AVR4, "__AVR_AT90PWM3B__",         0, 0x0100, "90pwm3b")
+AVR_MCU ("at90pwm81",            ARCH_AVR4, "__AVR_AT90PWM81__",         0, 0x0100, "90pwm81")
+/* Enhanced, > 8K, <= 64K.  */
+AVR_MCU ("avr5",                 ARCH_AVR5, NULL,                        0, 0x0060, "m16")
+AVR_MCU ("atmega16",             ARCH_AVR5, "__AVR_ATmega16__",          0, 0x0060, "m16")
+AVR_MCU ("atmega16a",            ARCH_AVR5, "__AVR_ATmega16A__",         0, 0x0060, "m16a")
+AVR_MCU ("atmega161",            ARCH_AVR5, "__AVR_ATmega161__",         0, 0x0060, "m161")
+AVR_MCU ("atmega162",            ARCH_AVR5, "__AVR_ATmega162__",         0, 0x0100, "m162")
+AVR_MCU ("atmega163",            ARCH_AVR5, "__AVR_ATmega163__",         0, 0x0060, "m163")
+AVR_MCU ("atmega164a",           ARCH_AVR5, "__AVR_ATmega164A__",        0, 0x0060, "m164a")
+AVR_MCU ("atmega164p",           ARCH_AVR5, "__AVR_ATmega164P__",        0, 0x0100, "m164p")
+AVR_MCU ("atmega165",            ARCH_AVR5, "__AVR_ATmega165__",         0, 0x0100, "m165")
+AVR_MCU ("atmega165a",           ARCH_AVR5, "__AVR_ATmega165A__",        0, 0x0100, "m165a")
+AVR_MCU ("atmega165p",           ARCH_AVR5, "__AVR_ATmega165P__",        0, 0x0100, "m165p")
+AVR_MCU ("atmega168",            ARCH_AVR5, "__AVR_ATmega168__",         0, 0x0100, "m168")
+AVR_MCU ("atmega168a",           ARCH_AVR5, "__AVR_ATmega168A__",        0, 0x0100, "m168a")
+AVR_MCU ("atmega168p",           ARCH_AVR5, "__AVR_ATmega168P__",        0, 0x0100, "m168p")
+AVR_MCU ("atmega169",            ARCH_AVR5, "__AVR_ATmega169__",         0, 0x0100, "m169")
+AVR_MCU ("atmega169a",           ARCH_AVR5, "__AVR_ATmega169A__",        0, 0x0100, "m169a")
+AVR_MCU ("atmega169p",           ARCH_AVR5, "__AVR_ATmega169P__",        0, 0x0100, "m169p")
+AVR_MCU ("atmega169pa",          ARCH_AVR5, "__AVR_ATmega169PA__",       0, 0x0100, "m169pa")
+AVR_MCU ("atmega32",             ARCH_AVR5, "__AVR_ATmega32__",          0, 0x0060, "m32")
+AVR_MCU ("atmega323",            ARCH_AVR5, "__AVR_ATmega323__",         0, 0x0060, "m323")
+AVR_MCU ("atmega324a",           ARCH_AVR5, "__AVR_ATmega324A__",        0, 0x0100, "m324a")
+AVR_MCU ("atmega324p",           ARCH_AVR5, "__AVR_ATmega324P__",        0, 0x0100, "m324p")
+AVR_MCU ("atmega324pa",          ARCH_AVR5, "__AVR_ATmega324PA__",       0, 0x0100, "m324pa")
+AVR_MCU ("atmega325",            ARCH_AVR5, "__AVR_ATmega325__",         0, 0x0100, "m325")
+AVR_MCU ("atmega325a",           ARCH_AVR5, "__AVR_ATmega325A__",        0, 0x0100, "m325a")
+AVR_MCU ("atmega325p",           ARCH_AVR5, "__AVR_ATmega325P__",        0, 0x0100, "m325p")
+AVR_MCU ("atmega3250",           ARCH_AVR5, "__AVR_ATmega3250__",        0, 0x0100, "m3250")
+AVR_MCU ("atmega3250a",          ARCH_AVR5, "__AVR_ATmega3250A__",       0, 0x0100, "m3250a")
+AVR_MCU ("atmega3250p",          ARCH_AVR5, "__AVR_ATmega3250P__",       0, 0x0100, "m3250p")
+AVR_MCU ("atmega328",            ARCH_AVR5, "__AVR_ATmega328__",         0, 0x0100, "m328")
+AVR_MCU ("atmega328p",           ARCH_AVR5, "__AVR_ATmega328P__",        0, 0x0100, "m328p")
+AVR_MCU ("atmega329",            ARCH_AVR5, "__AVR_ATmega329__",         0, 0x0100, "m329")
+AVR_MCU ("atmega329a",           ARCH_AVR5, "__AVR_ATmega329A__",        0, 0x0100, "m329a")
+AVR_MCU ("atmega329p",           ARCH_AVR5, "__AVR_ATmega329P__",        0, 0x0100, "m329p")
+AVR_MCU ("atmega329pa",          ARCH_AVR5, "__AVR_ATmega329PA__",       0, 0x0100, "m329pa")
+AVR_MCU ("atmega3290",           ARCH_AVR5, "__AVR_ATmega3290__",        0, 0x0100, "m3290")
+AVR_MCU ("atmega3290a",          ARCH_AVR5, "__AVR_ATmega3290A__",       0, 0x0100, "m3290a")
+AVR_MCU ("atmega3290p",          ARCH_AVR5, "__AVR_ATmega3290P__",       0, 0x0100, "m3290p")
+AVR_MCU ("atmega406",            ARCH_AVR5, "__AVR_ATmega406__",         0, 0x0100, "m406")
+AVR_MCU ("atmega64",             ARCH_AVR5, "__AVR_ATmega64__",          0, 0x0100, "m64")
+AVR_MCU ("atmega640",            ARCH_AVR5, "__AVR_ATmega640__",         0, 0x0200, "m640")
+AVR_MCU ("atmega644",            ARCH_AVR5, "__AVR_ATmega644__",         0, 0x0100, "m644")
+AVR_MCU ("atmega644a",           ARCH_AVR5, "__AVR_ATmega644A__",        0, 0x0100, "m644a")
+AVR_MCU ("atmega644p",           ARCH_AVR5, "__AVR_ATmega644P__",        0, 0x0100, "m644p")
+AVR_MCU ("atmega644pa",          ARCH_AVR5, "__AVR_ATmega644PA__",       0, 0x0100, "m644pa")
+AVR_MCU ("atmega645",            ARCH_AVR5, "__AVR_ATmega645__",         0, 0x0100, "m645")
+AVR_MCU ("atmega645a",           ARCH_AVR5, "__AVR_ATmega645A__",        0, 0x0100, "m645a")
+AVR_MCU ("atmega645p",           ARCH_AVR5, "__AVR_ATmega645P__",        0, 0x0100, "m645p")
+AVR_MCU ("atmega6450",           ARCH_AVR5, "__AVR_ATmega6450__",        0, 0x0100, "m6450")
+AVR_MCU ("atmega6450a",          ARCH_AVR5, "__AVR_ATmega6450A__",       0, 0x0100, "m6450a")
+AVR_MCU ("atmega6450p",          ARCH_AVR5, "__AVR_ATmega6450P__",       0, 0x0100, "m6450p")
+AVR_MCU ("atmega649",            ARCH_AVR5, "__AVR_ATmega649__",         0, 0x0100, "m649")
+AVR_MCU ("atmega649a",           ARCH_AVR5, "__AVR_ATmega649A__",        0, 0x0100, "m649a")
+AVR_MCU ("atmega649p",           ARCH_AVR5, "__AVR_ATmega649P__",        0, 0x0100, "m649p")
+AVR_MCU ("atmega6490",           ARCH_AVR5, "__AVR_ATmega6490__",        0, 0x0100, "m6490")
+AVR_MCU ("atmega16hva",          ARCH_AVR5, "__AVR_ATmega16HVA__",       0, 0x0100, "m16hva")
+AVR_MCU ("atmega16hva2",         ARCH_AVR5, "__AVR_ATmega16HVA2__",      0, 0x0100, "m16hva2")
+AVR_MCU ("atmega16hvb",          ARCH_AVR5, "__AVR_ATmega16HVB__",       0, 0x0100, "m16hvb")
+AVR_MCU ("atmega32hvb",          ARCH_AVR5, "__AVR_ATmega32HVB__",       0, 0x0100, "m32hvb")
+AVR_MCU ("atmega64hve",          ARCH_AVR5, "__AVR_ATmega64HVE__",       0, 0x0100, "m64hve")
+AVR_MCU ("at90can32",            ARCH_AVR5, "__AVR_AT90CAN32__",         0, 0x0100, "can32")
+AVR_MCU ("at90can64",            ARCH_AVR5, "__AVR_AT90CAN64__",         0, 0x0100, "can64")
+AVR_MCU ("at90pwm216",           ARCH_AVR5, "__AVR_AT90PWM216__",        0, 0x0100, "90pwm216")
+AVR_MCU ("at90pwm316",           ARCH_AVR5, "__AVR_AT90PWM316__",        0, 0x0100, "90pwm316")
+AVR_MCU ("atmega32c1",           ARCH_AVR5, "__AVR_ATmega32C1__",        0, 0x0100, "m32c1")
+AVR_MCU ("atmega64c1",           ARCH_AVR5, "__AVR_ATmega64C1__",        0, 0x0100, "m64c1")
+AVR_MCU ("atmega16m1",           ARCH_AVR5, "__AVR_ATmega16M1__",        0, 0x0100, "m16m1")
+AVR_MCU ("atmega32m1",           ARCH_AVR5, "__AVR_ATmega32M1__",        0, 0x0100, "m32m1")
+AVR_MCU ("atmega64m1",           ARCH_AVR5, "__AVR_ATmega64M1__",        0, 0x0100, "m64m1")
+AVR_MCU ("atmega16u4",           ARCH_AVR5, "__AVR_ATmega16U4__",        0, 0x0100, "m16u4")
+AVR_MCU ("atmega32u4",           ARCH_AVR5, "__AVR_ATmega32U4__",        0, 0x0100, "m32u4")
+AVR_MCU ("atmega32u6",           ARCH_AVR5, "__AVR_ATmega32U6__",        0, 0x0100, "m32u6")
+AVR_MCU ("at90scr100",           ARCH_AVR5, "__AVR_AT90SCR100__",        0, 0x0100, "90scr100")
+AVR_MCU ("at90usb646",           ARCH_AVR5, "__AVR_AT90USB646__",        0, 0x0100, "usb646")
+AVR_MCU ("at90usb647",           ARCH_AVR5, "__AVR_AT90USB647__",        0, 0x0100, "usb647")
+AVR_MCU ("at94k",                ARCH_AVR5, "__AVR_AT94K__",             0, 0x0060, "at94k")
+AVR_MCU ("m3000",                ARCH_AVR5, "__AVR_M3000__",             0, 0x1000, "m3000")
+/* Enhanced, == 128K.  */
+AVR_MCU ("avr51",                ARCH_AVR51, NULL,                       0, 0x0100, "m128")
+AVR_MCU ("atmega128",            ARCH_AVR51, "__AVR_ATmega128__",        0, 0x0100, "m128")
+AVR_MCU ("atmega1280",           ARCH_AVR51, "__AVR_ATmega1280__",       0, 0x0200, "m1280")
+AVR_MCU ("atmega1281",           ARCH_AVR51, "__AVR_ATmega1281__",       0, 0x0200, "m1281")
+AVR_MCU ("atmega1284p",          ARCH_AVR51, "__AVR_ATmega1284P__",      0, 0x0100, "m1284p")
+AVR_MCU ("atmega128rfa1",        ARCH_AVR51, "__AVR_ATmega128RFA1__",    0, 0x0200, "m128rfa1")
+AVR_MCU ("at90can128",           ARCH_AVR51, "__AVR_AT90CAN128__",       0, 0x0100, "can128")
+AVR_MCU ("at90usb1286",          ARCH_AVR51, "__AVR_AT90USB1286__",      0, 0x0100, "usb1286")
+AVR_MCU ("at90usb1287",          ARCH_AVR51, "__AVR_AT90USB1287__",      0, 0x0100, "usb1286")
+/* 3-Byte PC.  */
+AVR_MCU ("avr6",                 ARCH_AVR6, NULL,                        0, 0x0200, "m2561")
+AVR_MCU ("atmega2560",           ARCH_AVR6, "__AVR_ATmega2560__",        0, 0x0200, "m2560")
+AVR_MCU ("atmega2561",           ARCH_AVR6, "__AVR_ATmega2561__",        0, 0x0200, "m2561")
+/* Assembler only.  */
+AVR_MCU ("avr1",                 ARCH_AVR1, NULL,                        0, 0x0060, "s1200")
+AVR_MCU ("at90s1200",            ARCH_AVR1, "__AVR_AT90S1200__",         0, 0x0060, "s1200")
+AVR_MCU ("attiny11",             ARCH_AVR1, "__AVR_ATtiny11__",          0, 0x0060, "tn11")
+AVR_MCU ("attiny12",             ARCH_AVR1, "__AVR_ATtiny12__",          0, 0x0060, "tn12")
+AVR_MCU ("attiny15",             ARCH_AVR1, "__AVR_ATtiny15__",          0, 0x0060, "tn15")
+AVR_MCU ("attiny28",             ARCH_AVR1, "__AVR_ATtiny28__",          0, 0x0060, "tn28")
diff --git a/gcc/config/avr/avr-tables.opt b/gcc/config/avr/avr-tables.opt
new file mode 100644
index 0000000..90b41d5
--- /dev/null
+++ b/gcc/config/avr/avr-tables.opt
@@ -0,0 +1,523 @@
+; -*- buffer-read-only: t -*-
+; Generated automatically by genopt.sh from avr-mcus.def.
+
+; Copyright (C) 2011 Free Software Foundation, Inc.
+;
+; This file is part of GCC.
+;
+; GCC is free software; you can redistribute it and/or modify it under
+; the terms of the GNU General Public License as published by the Free
+; Software Foundation; either version 3, or (at your option) any later
+; version.
+;
+; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+; WARRANTY; without even the implied warranty of MERCHANTABILITY or
+; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+; for more details.
+;
+; You should have received a copy of the GNU General Public License
+; along with GCC; see the file COPYING3.  If not see
+; <http://www.gnu.org/licenses/>.
+
+Enum
+Name(avr_mcu) Type(int)
+Known MCU names:
+
+EnumValue
+Enum(avr_mcu) String(avr2) Value(0)
+
+EnumValue
+Enum(avr_mcu) String(at90s2313) Value(1)
+
+EnumValue
+Enum(avr_mcu) String(at90s2323) Value(2)
+
+EnumValue
+Enum(avr_mcu) String(at90s2333) Value(3)
+
+EnumValue
+Enum(avr_mcu) String(at90s2343) Value(4)
+
+EnumValue
+Enum(avr_mcu) String(attiny22) Value(5)
+
+EnumValue
+Enum(avr_mcu) String(attiny26) Value(6)
+
+EnumValue
+Enum(avr_mcu) String(at90s4414) Value(7)
+
+EnumValue
+Enum(avr_mcu) String(at90s4433) Value(8)
+
+EnumValue
+Enum(avr_mcu) String(at90s4434) Value(9)
+
+EnumValue
+Enum(avr_mcu) String(at90s8515) Value(10)
+
+EnumValue
+Enum(avr_mcu) String(at90c8534) Value(11)
+
+EnumValue
+Enum(avr_mcu) String(at90s8535) Value(12)
+
+EnumValue
+Enum(avr_mcu) String(avr25) Value(13)
+
+EnumValue
+Enum(avr_mcu) String(ata6289) Value(14)
+
+EnumValue
+Enum(avr_mcu) String(attiny13) Value(15)
+
+EnumValue
+Enum(avr_mcu) String(attiny13a) Value(16)
+
+EnumValue
+Enum(avr_mcu) String(attiny2313) Value(17)
+
+EnumValue
+Enum(avr_mcu) String(attiny2313a) Value(18)
+
+EnumValue
+Enum(avr_mcu) String(attiny24) Value(19)
+
+EnumValue
+Enum(avr_mcu) String(attiny24a) Value(20)
+
+EnumValue
+Enum(avr_mcu) String(attiny4313) Value(21)
+
+EnumValue
+Enum(avr_mcu) String(attiny44) Value(22)
+
+EnumValue
+Enum(avr_mcu) String(attiny44a) Value(23)
+
+EnumValue
+Enum(avr_mcu) String(attiny84) Value(24)
+
+EnumValue
+Enum(avr_mcu) String(attiny84a) Value(25)
+
+EnumValue
+Enum(avr_mcu) String(attiny25) Value(26)
+
+EnumValue
+Enum(avr_mcu) String(attiny45) Value(27)
+
+EnumValue
+Enum(avr_mcu) String(attiny85) Value(28)
+
+EnumValue
+Enum(avr_mcu) String(attiny261) Value(29)
+
+EnumValue
+Enum(avr_mcu) String(attiny261a) Value(30)
+
+EnumValue
+Enum(avr_mcu) String(attiny461) Value(31)
+
+EnumValue
+Enum(avr_mcu) String(attiny461a) Value(32)
+
+EnumValue
+Enum(avr_mcu) String(attiny861) Value(33)
+
+EnumValue
+Enum(avr_mcu) String(attiny861a) Value(34)
+
+EnumValue
+Enum(avr_mcu) String(attiny43u) Value(35)
+
+EnumValue
+Enum(avr_mcu) String(attiny87) Value(36)
+
+EnumValue
+Enum(avr_mcu) String(attiny48) Value(37)
+
+EnumValue
+Enum(avr_mcu) String(attiny88) Value(38)
+
+EnumValue
+Enum(avr_mcu) String(at86rf401) Value(39)
+
+EnumValue
+Enum(avr_mcu) String(avr3) Value(40)
+
+EnumValue
+Enum(avr_mcu) String(at43usb355) Value(41)
+
+EnumValue
+Enum(avr_mcu) String(at76c711) Value(42)
+
+EnumValue
+Enum(avr_mcu) String(avr31) Value(43)
+
+EnumValue
+Enum(avr_mcu) String(atmega103) Value(44)
+
+EnumValue
+Enum(avr_mcu) String(at43usb320) Value(45)
+
+EnumValue
+Enum(avr_mcu) String(avr35) Value(46)
+
+EnumValue
+Enum(avr_mcu) String(at90usb82) Value(47)
+
+EnumValue
+Enum(avr_mcu) String(at90usb162) Value(48)
+
+EnumValue
+Enum(avr_mcu) String(atmega8u2) Value(49)
+
+EnumValue
+Enum(avr_mcu) String(atmega16u2) Value(50)
+
+EnumValue
+Enum(avr_mcu) String(atmega32u2) Value(51)
+
+EnumValue
+Enum(avr_mcu) String(attiny167) Value(52)
+
+EnumValue
+Enum(avr_mcu) String(avr4) Value(53)
+
+EnumValue
+Enum(avr_mcu) String(atmega8) Value(54)
+
+EnumValue
+Enum(avr_mcu) String(atmega48) Value(55)
+
+EnumValue
+Enum(avr_mcu) String(atmega48a) Value(56)
+
+EnumValue
+Enum(avr_mcu) String(atmega48p) Value(57)
+
+EnumValue
+Enum(avr_mcu) String(atmega88) Value(58)
+
+EnumValue
+Enum(avr_mcu) String(atmega88a) Value(59)
+
+EnumValue
+Enum(avr_mcu) String(atmega88p) Value(60)
+
+EnumValue
+Enum(avr_mcu) String(atmega88pa) Value(61)
+
+EnumValue
+Enum(avr_mcu) String(atmega8515) Value(62)
+
+EnumValue
+Enum(avr_mcu) String(atmega8535) Value(63)
+
+EnumValue
+Enum(avr_mcu) String(atmega8hva) Value(64)
+
+EnumValue
+Enum(avr_mcu) String(at90pwm1) Value(65)
+
+EnumValue
+Enum(avr_mcu) String(at90pwm2) Value(66)
+
+EnumValue
+Enum(avr_mcu) String(at90pwm2b) Value(67)
+
+EnumValue
+Enum(avr_mcu) String(at90pwm3) Value(68)
+
+EnumValue
+Enum(avr_mcu) String(at90pwm3b) Value(69)
+
+EnumValue
+Enum(avr_mcu) String(at90pwm81) Value(70)
+
+EnumValue
+Enum(avr_mcu) String(avr5) Value(71)
+
+EnumValue
+Enum(avr_mcu) String(atmega16) Value(72)
+
+EnumValue
+Enum(avr_mcu) String(atmega16a) Value(73)
+
+EnumValue
+Enum(avr_mcu) String(atmega161) Value(74)
+
+EnumValue
+Enum(avr_mcu) String(atmega162) Value(75)
+
+EnumValue
+Enum(avr_mcu) String(atmega163) Value(76)
+
+EnumValue
+Enum(avr_mcu) String(atmega164a) Value(77)
+
+EnumValue
+Enum(avr_mcu) String(atmega164p) Value(78)
+
+EnumValue
+Enum(avr_mcu) String(atmega165) Value(79)
+
+EnumValue
+Enum(avr_mcu) String(atmega165a) Value(80)
+
+EnumValue
+Enum(avr_mcu) String(atmega165p) Value(81)
+
+EnumValue
+Enum(avr_mcu) String(atmega168) Value(82)
+
+EnumValue
+Enum(avr_mcu) String(atmega168a) Value(83)
+
+EnumValue
+Enum(avr_mcu) String(atmega168p) Value(84)
+
+EnumValue
+Enum(avr_mcu) String(atmega169) Value(85)
+
+EnumValue
+Enum(avr_mcu) String(atmega169a) Value(86)
+
+EnumValue
+Enum(avr_mcu) String(atmega169p) Value(87)
+
+EnumValue
+Enum(avr_mcu) String(atmega169pa) Value(88)
+
+EnumValue
+Enum(avr_mcu) String(atmega32) Value(89)
+
+EnumValue
+Enum(avr_mcu) String(atmega323) Value(90)
+
+EnumValue
+Enum(avr_mcu) String(atmega324a) Value(91)
+
+EnumValue
+Enum(avr_mcu) String(atmega324p) Value(92)
+
+EnumValue
+Enum(avr_mcu) String(atmega324pa) Value(93)
+
+EnumValue
+Enum(avr_mcu) String(atmega325) Value(94)
+
+EnumValue
+Enum(avr_mcu) String(atmega325a) Value(95)
+
+EnumValue
+Enum(avr_mcu) String(atmega325p) Value(96)
+
+EnumValue
+Enum(avr_mcu) String(atmega3250) Value(97)
+
+EnumValue
+Enum(avr_mcu) String(atmega3250a) Value(98)
+
+EnumValue
+Enum(avr_mcu) String(atmega3250p) Value(99)
+
+EnumValue
+Enum(avr_mcu) String(atmega328) Value(100)
+
+EnumValue
+Enum(avr_mcu) String(atmega328p) Value(101)
+
+EnumValue
+Enum(avr_mcu) String(atmega329) Value(102)
+
+EnumValue
+Enum(avr_mcu) String(atmega329a) Value(103)
+
+EnumValue
+Enum(avr_mcu) String(atmega329p) Value(104)
+
+EnumValue
+Enum(avr_mcu) String(atmega329pa) Value(105)
+
+EnumValue
+Enum(avr_mcu) String(atmega3290) Value(106)
+
+EnumValue
+Enum(avr_mcu) String(atmega3290a) Value(107)
+
+EnumValue
+Enum(avr_mcu) String(atmega3290p) Value(108)
+
+EnumValue
+Enum(avr_mcu) String(atmega406) Value(109)
+
+EnumValue
+Enum(avr_mcu) String(atmega64) Value(110)
+
+EnumValue
+Enum(avr_mcu) String(atmega640) Value(111)
+
+EnumValue
+Enum(avr_mcu) String(atmega644) Value(112)
+
+EnumValue
+Enum(avr_mcu) String(atmega644a) Value(113)
+
+EnumValue
+Enum(avr_mcu) String(atmega644p) Value(114)
+
+EnumValue
+Enum(avr_mcu) String(atmega644pa) Value(115)
+
+EnumValue
+Enum(avr_mcu) String(atmega645) Value(116)
+
+EnumValue
+Enum(avr_mcu) String(atmega645a) Value(117)
+
+EnumValue
+Enum(avr_mcu) String(atmega645p) Value(118)
+
+EnumValue
+Enum(avr_mcu) String(atmega6450) Value(119)
+
+EnumValue
+Enum(avr_mcu) String(atmega6450a) Value(120)
+
+EnumValue
+Enum(avr_mcu) String(atmega6450p) Value(121)
+
+EnumValue
+Enum(avr_mcu) String(atmega649) Value(122)
+
+EnumValue
+Enum(avr_mcu) String(atmega649a) Value(123)
+
+EnumValue
+Enum(avr_mcu) String(atmega649p) Value(124)
+
+EnumValue
+Enum(avr_mcu) String(atmega6490) Value(125)
+
+EnumValue
+Enum(avr_mcu) String(atmega16hva) Value(126)
+
+EnumValue
+Enum(avr_mcu) String(atmega16hva2) Value(127)
+
+EnumValue
+Enum(avr_mcu) String(atmega16hvb) Value(128)
+
+EnumValue
+Enum(avr_mcu) String(atmega32hvb) Value(129)
+
+EnumValue
+Enum(avr_mcu) String(atmega64hve) Value(130)
+
+EnumValue
+Enum(avr_mcu) String(at90can32) Value(131)
+
+EnumValue
+Enum(avr_mcu) String(at90can64) Value(132)
+
+EnumValue
+Enum(avr_mcu) String(at90pwm216) Value(133)
+
+EnumValue
+Enum(avr_mcu) String(at90pwm316) Value(134)
+
+EnumValue
+Enum(avr_mcu) String(atmega32c1) Value(135)
+
+EnumValue
+Enum(avr_mcu) String(atmega64c1) Value(136)
+
+EnumValue
+Enum(avr_mcu) String(atmega16m1) Value(137)
+
+EnumValue
+Enum(avr_mcu) String(atmega32m1) Value(138)
+
+EnumValue
+Enum(avr_mcu) String(atmega64m1) Value(139)
+
+EnumValue
+Enum(avr_mcu) String(atmega16u4) Value(140)
+
+EnumValue
+Enum(avr_mcu) String(atmega32u4) Value(141)
+
+EnumValue
+Enum(avr_mcu) String(atmega32u6) Value(142)
+
+EnumValue
+Enum(avr_mcu) String(at90scr100) Value(143)
+
+EnumValue
+Enum(avr_mcu) String(at90usb646) Value(144)
+
+EnumValue
+Enum(avr_mcu) String(at90usb647) Value(145)
+
+EnumValue
+Enum(avr_mcu) String(at94k) Value(146)
+
+EnumValue
+Enum(avr_mcu) String(m3000) Value(147)
+
+EnumValue
+Enum(avr_mcu) String(avr51) Value(148)
+
+EnumValue
+Enum(avr_mcu) String(atmega128) Value(149)
+
+EnumValue
+Enum(avr_mcu) String(atmega1280) Value(150)
+
+EnumValue
+Enum(avr_mcu) String(atmega1281) Value(151)
+
+EnumValue
+Enum(avr_mcu) String(atmega1284p) Value(152)
+
+EnumValue
+Enum(avr_mcu) String(atmega128rfa1) Value(153)
+
+EnumValue
+Enum(avr_mcu) String(at90can128) Value(154)
+
+EnumValue
+Enum(avr_mcu) String(at90usb1286) Value(155)
+
+EnumValue
+Enum(avr_mcu) String(at90usb1287) Value(156)
+
+EnumValue
+Enum(avr_mcu) String(avr6) Value(157)
+
+EnumValue
+Enum(avr_mcu) String(atmega2560) Value(158)
+
+EnumValue
+Enum(avr_mcu) String(atmega2561) Value(159)
+
+EnumValue
+Enum(avr_mcu) String(avr1) Value(160)
+
+EnumValue
+Enum(avr_mcu) String(at90s1200) Value(161)
+
+EnumValue
+Enum(avr_mcu) String(attiny11) Value(162)
+
+EnumValue
+Enum(avr_mcu) String(attiny12) Value(163)
+
+EnumValue
+Enum(avr_mcu) String(attiny15) Value(164)
+
+EnumValue
+Enum(avr_mcu) String(attiny28) Value(165)
+
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index e46ccd3..2b1aaf0 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -106,7 +106,6 @@
 			     const_tree, bool);
 static void avr_function_arg_advance (cumulative_args_t, enum machine_mode,
 				      const_tree, bool);
-static void avr_help (void);
 static bool avr_function_ok_for_sibcall (tree, tree);
 static void avr_asm_named_section (const char *name, unsigned int flags, tree decl);
 
@@ -250,9 +249,6 @@
 #undef TARGET_CANNOT_MODIFY_JUMPS_P
 #define TARGET_CANNOT_MODIFY_JUMPS_P avr_cannot_modify_jumps_p
 
-#undef TARGET_HELP
-#define TARGET_HELP avr_help
-
 #undef TARGET_FUNCTION_OK_FOR_SIBCALL
 #define TARGET_FUNCTION_OK_FOR_SIBCALL avr_function_ok_for_sibcall
 
@@ -268,21 +264,9 @@
 static void
 avr_option_override (void)
 {
-  const struct mcu_type_s *t;
-
   flag_delete_null_pointer_checks = 0;
 
-  for (t = avr_mcu_types; t->name; t++)
-    if (strcmp (t->name, avr_mcu_name) == 0)
-      break;
-
-  if (!t->name)
-    {
-      error ("unrecognized argument to -mmcu= option: %qs", avr_mcu_name);
-      inform (input_location,  "See --target-help for supported MCUs");
-    }
-
-  avr_current_device = t;
+  avr_current_device = &avr_mcu_types[avr_mcu_index];
   avr_current_arch = &avr_arch_types[avr_current_device->arch];
   avr_extra_arch_macro = avr_current_device->macro;
 
@@ -292,42 +276,6 @@
   init_machine_status = avr_init_machine_status;
 }
 
-/* Implement TARGET_HELP */
-/* Report extra information for --target-help */
-
-static void
-avr_help (void)
-{
-  const struct mcu_type_s *t;
-  const char * const indent = "  ";
-  int len;
-
-  /* Give a list of MCUs that are accepted by -mmcu=* .
-     Note that MCUs supported by the compiler might differ from
-     MCUs supported by binutils. */
-
-  len = strlen (indent);
-  printf ("Known MCU names:\n%s", indent);
-
-  /* Print a blank-separated list of all supported MCUs */
-
-  for (t = avr_mcu_types; t->name; t++)
-    {
-      printf ("%s ", t->name);
-      len += 1 + strlen (t->name);
-
-      /* Break long lines */
-      
-      if (len > 66 && (t+1)->name)
-        {
-          printf ("\n%s", indent);
-          len = strlen (indent);
-        }
-    }
-
-  printf ("\n\n");
-}
-
 /*  return register class from register number.  */
 
 static const enum reg_class reg_class_tab[]={
@@ -5320,11 +5268,11 @@
 avr_file_start (void)
 {
   if (avr_current_arch->asm_only)
-    error ("MCU %qs supported for assembler only", avr_mcu_name);
+    error ("MCU %qs supported for assembler only", avr_current_device->name);
 
   default_file_start ();
 
-/*  fprintf (asm_out_file, "\t.arch %s\n", avr_mcu_name);*/
+/*  fprintf (asm_out_file, "\t.arch %s\n", avr_current_device->name);*/
   fputs ("__SREG__ = 0x3f\n"
 	 "__SP_H__ = 0x3e\n"
 	 "__SP_L__ = 0x3d\n", asm_out_file);
diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md
index 4138f2b..b7799be 100644
--- a/gcc/config/avr/avr.md
+++ b/gcc/config/avr/avr.md
@@ -2763,8 +2763,7 @@
 (define_insn "*jcindirect_jump"
   [(set (pc) (match_operand:HI 0 "immediate_operand" "i"))]
   ""
-  "@
-  	%~jmp %x0"
+  "%~jmp %x0"
   [(set_attr "length" "2")
    (set_attr "cc" "none")])
 
@@ -3540,3 +3539,65 @@
     int byteno = INTVAL(operands[2]) / BITS_PER_UNIT;
     operands[4] = simplify_gen_subreg (QImode, operands[0], <MODE>mode, byteno);
   })
+
+(define_expand "extzv"
+  [(set (match_operand:QI 0 "register_operand" "")
+        (zero_extract:QI (match_operand:QI 1 "register_operand"  "")
+                         (match_operand:QI 2 "const1_operand" "")
+                         (match_operand:QI 3 "const_0_to_7_operand" "")))]
+  ""
+  "")
+
+(define_insn "*extzv"
+  [(set (match_operand:QI 0 "register_operand"                   "=*d,*d,*d,*d,r")
+        (zero_extract:QI (match_operand:QI 1 "register_operand"     "0,r,0,0,r")
+                         (const_int 1)
+                         (match_operand:QI 2 "const_0_to_7_operand" "L,L,P,C04,n")))]
+  ""
+  "@
+	andi %0,1
+	mov %0,%1\;andi %0,1
+	lsr %0\;andi %0,1
+	swap %0\;andi %0,1
+	bst %1,%2\;clr %0\;bld %0,0"
+  [(set_attr "length" "1,2,2,2,3")
+   (set_attr "cc" "set_zn,set_zn,set_zn,set_zn,clobber")])
+
+(define_insn_and_split "*extzv.qihi1"
+  [(set (match_operand:HI 0 "register_operand"                     "=r")
+        (zero_extract:HI (match_operand:QI 1 "register_operand"     "r")
+                         (const_int 1)
+                         (match_operand:QI 2 "const_0_to_7_operand" "n")))]
+  ""
+  "#"
+  ""
+  [(set (match_dup 3)
+        (zero_extract:QI (match_dup 1)
+                         (const_int 1)
+                         (match_dup 2)))
+   (set (match_dup 4)
+        (const_int 0))]
+  {
+    operands[3] = simplify_gen_subreg (QImode, operands[0], HImode, 0);
+    operands[4] = simplify_gen_subreg (QImode, operands[0], HImode, 1);
+  })
+
+(define_insn_and_split "*extzv.qihi2"
+  [(set (match_operand:HI 0 "register_operand"                      "=r")
+        (zero_extend:HI 
+         (zero_extract:QI (match_operand:QI 1 "register_operand"     "r")
+                          (const_int 1)
+                          (match_operand:QI 2 "const_0_to_7_operand" "n"))))]
+  ""
+  "#"
+  ""
+  [(set (match_dup 3)
+        (zero_extract:QI (match_dup 1)
+                         (const_int 1)
+                         (match_dup 2)))
+   (set (match_dup 4)
+        (const_int 0))]
+  {
+    operands[3] = simplify_gen_subreg (QImode, operands[0], HImode, 0);
+    operands[4] = simplify_gen_subreg (QImode, operands[0], HImode, 1);
+  })
diff --git a/gcc/config/avr/avr.opt b/gcc/config/avr/avr.opt
index d9c3c0f..59d6393 100644
--- a/gcc/config/avr/avr.opt
+++ b/gcc/config/avr/avr.opt
@@ -1,6 +1,6 @@
 ; Options for the ATMEL AVR port of the compiler.
 
-; Copyright (C) 2005, 2007, 2008, 2010 Free Software Foundation, Inc.
+; Copyright (C) 2005, 2007, 2008, 2010, 2011 Free Software Foundation, Inc.
 ;
 ; This file is part of GCC.
 ;
@@ -23,7 +23,7 @@
 Use subroutines for function prologues and epilogues
 
 mmcu=
-Target RejectNegative Joined Var(avr_mcu_name) Init("avr2")
+Target RejectNegative Joined Var(avr_mcu_index) Init(0) Enum(avr_mcu)
 -mmcu=MCU	Select the target MCU
 
 mdeb
diff --git a/gcc/config/avr/constraints.md b/gcc/config/avr/constraints.md
index 2ac8833..e754c79 100644
--- a/gcc/config/avr/constraints.md
+++ b/gcc/config/avr/constraints.md
@@ -107,3 +107,8 @@
   "A memory address based on Y or Z pointer with displacement."
   (and (match_code "mem")
        (match_test "extra_constraint_Q (op)")))
+
+(define_constraint "C04"
+  "Constant integer 4."
+  (and (match_code "const_int")
+       (match_test "ival == 4")))
diff --git a/gcc/config/avr/genopt.sh b/gcc/config/avr/genopt.sh
new file mode 100644
index 0000000..d2dcfad
--- /dev/null
+++ b/gcc/config/avr/genopt.sh
@@ -0,0 +1,59 @@
+#!/bin/sh
+# Generate avr-tables.opt from the list in avr-mcus.def.
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
+
+cat <<EOF
+; -*- buffer-read-only: t -*-
+; Generated automatically by genopt.sh from avr-mcus.def.
+
+; Copyright (C) 2011 Free Software Foundation, Inc.
+;
+; This file is part of GCC.
+;
+; GCC is free software; you can redistribute it and/or modify it under
+; the terms of the GNU General Public License as published by the Free
+; Software Foundation; either version 3, or (at your option) any later
+; version.
+;
+; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+; WARRANTY; without even the implied warranty of MERCHANTABILITY or
+; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+; for more details.
+;
+; You should have received a copy of the GNU General Public License
+; along with GCC; see the file COPYING3.  If not see
+; <http://www.gnu.org/licenses/>.
+
+Enum
+Name(avr_mcu) Type(int)
+Known MCU names:
+
+EOF
+
+awk -F'[(, 	]+' 'BEGIN {
+    value = 0
+}
+/^AVR_MCU/ {
+    name = $2
+    gsub("\"", "", name)
+    print "EnumValue"
+    print "Enum(avr_mcu) String(" name ") Value(" value ")"
+    print ""
+    value++
+}' $1/avr-mcus.def
diff --git a/gcc/config/avr/t-avr b/gcc/config/avr/t-avr
index 4186178..f941962 100644
--- a/gcc/config/avr/t-avr
+++ b/gcc/config/avr/t-avr
@@ -1,5 +1,5 @@
 # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-# 2009, 2010 Free Software Foundation, Inc.
+# 2009, 2010, 2011 Free Software Foundation, Inc.
 #
 # This file is part of GCC.
 #
@@ -22,6 +22,7 @@
 	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
 
 avr-devices.o: $(srcdir)/config/avr/avr-devices.c \
+  $(srcdir)/config/avr/avr-mcus.def \
   $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)
 	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
 
@@ -29,6 +30,10 @@
   $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(C_COMMON_H)
 	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
 
+$(srcdir)/config/avr/avr-tables.opt: $(srcdir)/config/avr/genopt.sh \
+  $(srcdir)/config/avr/avr-mcus.def
+	$(SHELL) $(srcdir)/config/avr/genopt.sh $(srcdir)/config/avr > \
+		$(srcdir)/config/avr/avr-tables.opt
 
 LIB1ASMSRC = avr/libgcc.S
 LIB1ASMFUNCS = \
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index 72fc423..22fdfb7 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -5879,11 +5879,11 @@
 
   { CODE_FOR_ones, "__builtin_bfin_ones", BFIN_BUILTIN_ONES, 0 },
 
-  { CODE_FOR_signbitshi2, "__builtin_bfin_norm_fr1x16", BFIN_BUILTIN_NORM_1X16, 0 },
+  { CODE_FOR_clrsbhi2, "__builtin_bfin_norm_fr1x16", BFIN_BUILTIN_NORM_1X16, 0 },
   { CODE_FOR_ssneghi2, "__builtin_bfin_negate_fr1x16", BFIN_BUILTIN_NEG_1X16, 0 },
   { CODE_FOR_abshi2, "__builtin_bfin_abs_fr1x16", BFIN_BUILTIN_ABS_1X16, 0 },
 
-  { CODE_FOR_signbitssi2, "__builtin_bfin_norm_fr1x32", BFIN_BUILTIN_NORM_1X32, 0 },
+  { CODE_FOR_clrsbsi2, "__builtin_bfin_norm_fr1x32", BFIN_BUILTIN_NORM_1X32, 0 },
   { CODE_FOR_ssroundsi2, "__builtin_bfin_round_fr1x32", BFIN_BUILTIN_ROUND_1X32, 0 },
   { CODE_FOR_ssnegsi2, "__builtin_bfin_negate_fr1x32", BFIN_BUILTIN_NEG_1X32, 0 },
   { CODE_FOR_ssabssi2, "__builtin_bfin_abs_fr1x32", BFIN_BUILTIN_ABS_1X32, 0 },
diff --git a/gcc/config/bfin/bfin.md b/gcc/config/bfin/bfin.md
index 903c8bb..a96d1a7 100644
--- a/gcc/config/bfin/bfin.md
+++ b/gcc/config/bfin/bfin.md
@@ -1461,12 +1461,19 @@
   "%0 = ~%1;"
   [(set_attr "type" "alu0")])
 
+(define_expand "clrsbsi2"
+  [(set (match_dup 2)
+	(clrsb:HI (match_operand:SI 1 "register_operand" "d")))
+   (set (match_operand:SI 0 "register_operand")
+	(zero_extend:SI (match_dup 2)))]
+  ""
+{
+  operands[2] = gen_reg_rtx (HImode);
+})
+
 (define_insn "signbitssi2"
   [(set (match_operand:HI 0 "register_operand" "=d")
-	(if_then_else:HI
-	 (lt (match_operand:SI 1 "register_operand" "d") (const_int 0))
-	 (clz:HI (not:SI (match_dup 1)))
-	 (clz:HI (match_dup 1))))]
+	(clrsb:HI (match_operand:SI 1 "register_operand" "d")))]
   ""
   "%h0 = signbits %1%!"
   [(set_attr "type" "dsp32")])
@@ -1518,12 +1525,9 @@
   "%0 = -%1 (V)%!"
   [(set_attr "type" "dsp32")])
 
-(define_insn "signbitshi2"
+(define_insn "clrsbhi2"
   [(set (match_operand:HI 0 "register_operand" "=d")
-	(if_then_else:HI
-	 (lt (match_operand:HI 1 "register_operand" "d") (const_int 0))
-	 (clz:HI (not:HI (match_dup 1)))
-	 (clz:HI (match_dup 1))))]
+	(clrsb:HI (match_operand:HI 1 "register_operand" "d")))]
   ""
   "%h0 = signbits %h1%!"
   [(set_attr "type" "dsp32")])
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index 5e358b1..bedda1e 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -1195,7 +1195,11 @@
 darwin_mergeable_string_section (tree exp,
 				 unsigned HOST_WIDE_INT align)
 {
-  if (flag_merge_constants
+  /* Darwin's ld expects to see non-writable string literals in the .cstring 
+     section.  Later versions of ld check and complain when CFStrings are 
+     enabled.  Therefore we shall force the strings into .cstring since we
+     don't support writable ones anyway.  */
+  if ((darwin_constant_cfstrings || flag_merge_constants)
       && TREE_CODE (exp) == STRING_CST
       && TREE_CODE (TREE_TYPE (exp)) == ARRAY_TYPE
       && align <= 256
@@ -2932,7 +2936,9 @@
   if (MACHO_DYNAMIC_NO_PIC_P)
     {
       if (flag_pic)
-	warning (0, "-mdynamic-no-pic overrides -fpic or -fPIC");
+	warning_at (UNKNOWN_LOCATION, 0,
+		 "%<-mdynamic-no-pic%> overrides %<-fpic%>, %<-fPIC%>,"
+		 " %<-fpie%> or %<-fPIE%>");
       flag_pic = 0;
     }
   else if (flag_pic == 1)
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index 41c0d74..762a460 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -226,6 +226,8 @@
 #define LINK_SYSROOT_SPEC "%{isysroot*:-syslibroot %*}"
 #endif
 
+#define PIE_SPEC "%{fpie|pie|fPIE:}"
+
 /* Please keep the random linker options in alphabetical order (modulo
    'Z' and 'no' prefixes). Note that options taking arguments may appear
    multiple times on a command line with different arguments each time,
@@ -290,7 +292,7 @@
      %:version-compare(< 10.5 mmacosx-version-min= -multiply_defined) \
      %:version-compare(< 10.5 mmacosx-version-min= suppress)}} \
    %{Zmultiplydefinedunused*:-multiply_defined_unused %*} \
-   %{fpie:-pie} \
+   " PIE_SPEC " \
    %{prebind} %{noprebind} %{nofixprebinding} %{prebind_all_twolevel_modules} \
    %{read_only_relocs} \
    %{sectcreate*} %{sectorder*} %{seg1addr*} %{segprot*} \
diff --git a/gcc/config/darwin9.h b/gcc/config/darwin9.h
index bb62dd4..2e835c3 100644
--- a/gcc/config/darwin9.h
+++ b/gcc/config/darwin9.h
@@ -35,6 +35,12 @@
 /* Tell collect2 to run dsymutil for us as necessary.  */
 #define COLLECT_RUN_DSYMUTIL 1
 
+#undef PIE_SPEC
+#define PIE_SPEC \
+  "%{fpie|pie|fPIE: \
+     %{mdynamic-no-pic: %n'-mdynamic-no-pic' overrides '-pie', '-fpie' or '-fPIE'; \
+      :-pie}}"
+
 #undef  ASM_OUTPUT_ALIGNED_COMMON
 #define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN)		\
   do {									\
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index e85f157..3c6025f 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -6295,7 +6295,9 @@
 	      (match_operand 3 "nonmemory_operand" "ri")))]
   "(GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode
     || (TARGET_64BIT && GET_MODE (operands[0]) == SImode))
-   && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
+   && (!TARGET_PARTIAL_REG_STALL
+       || GET_MODE (operands[0]) == SImode
+       || optimize_function_for_size_p (cfun))
    && GET_MODE (operands[0]) == GET_MODE (operands[1])
    && (GET_MODE (operands[0]) == GET_MODE (operands[3])
        || GET_MODE (operands[3]) == VOIDmode)"
@@ -6346,7 +6348,9 @@
 	      (match_operand 4 "immediate_operand" "i")))]
   "(GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode
     || (TARGET_64BIT && GET_MODE (operands[0]) == SImode))
-   && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
+   && (!TARGET_PARTIAL_REG_STALL
+       || GET_MODE (operands[0]) == SImode
+       || optimize_function_for_size_p (cfun))
    && GET_MODE (operands[0]) == GET_MODE (operands[1])
    && GET_MODE (operands[0]) == GET_MODE (operands[3])"
   "#"
@@ -17207,11 +17211,11 @@
   [(parallel
     [(set (match_operand:SWI48 0 "register_operand" "")
 	  (mult:SWI48 (match_operand:SWI48 1 "register_operand" "")
-		      (match_operand:SWI48 2 "const_int_operand" "")))
+		      (match_operand:SWI48 2 "const359_operand" "")))
      (clobber (reg:CC FLAGS_REG))])]
-  "INTVAL (operands[2]) == 3
-   || INTVAL (operands[2]) == 5
-   || INTVAL (operands[2]) == 9"
+  "!TARGET_PARTIAL_REG_STALL
+   || <MODE>mode == SImode
+   || optimize_function_for_size_p (cfun)"
   [(set (match_dup 0)
 	(plus:SWI48 (mult:SWI48 (match_dup 1) (match_dup 2))
 		    (match_dup 1)))]
@@ -17221,12 +17225,10 @@
   [(parallel
     [(set (match_operand:SWI48 0 "register_operand" "")
 	  (mult:SWI48 (match_operand:SWI48 1 "nonimmediate_operand" "")
-		      (match_operand:SWI48 2 "const_int_operand" "")))
+		      (match_operand:SWI48 2 "const359_operand" "")))
      (clobber (reg:CC FLAGS_REG))])]
   "optimize_insn_for_speed_p ()
-   && (INTVAL (operands[2]) == 3
-       || INTVAL (operands[2]) == 5
-       || INTVAL (operands[2]) == 9)"
+   && (!TARGET_PARTIAL_REG_STALL || <MODE>mode == SImode)"
   [(set (match_dup 0) (match_dup 1))
    (set (match_dup 0)
 	(plus:SWI48 (mult:SWI48 (match_dup 0) (match_dup 2))
diff --git a/gcc/config/i386/predicates.md b/gcc/config/i386/predicates.md
index 7a52e12..ac96534 100644
--- a/gcc/config/i386/predicates.md
+++ b/gcc/config/i386/predicates.md
@@ -614,6 +614,14 @@
   return i == 1 || i == 2 || i == 4 || i == 8;
 })
 
+;; Match 3, 5, or 9.  Used for leal multiplicands.
+(define_predicate "const359_operand"
+  (match_code "const_int")
+{
+  HOST_WIDE_INT i = INTVAL (op);
+  return i == 3 || i == 5 || i == 9;
+})
+
 ;; Match 0 or 1.
 (define_predicate "const_0_to_1_operand"
   (and (match_code "const_int")
diff --git a/gcc/config/i386/sol2-10.h b/gcc/config/i386/sol2-bi.h
similarity index 69%
rename from gcc/config/i386/sol2-10.h
rename to gcc/config/i386/sol2-bi.h
index 04a7132..394ca58 100644
--- a/gcc/config/i386/sol2-10.h
+++ b/gcc/config/i386/sol2-bi.h
@@ -1,4 +1,4 @@
-/* Solaris 10 configuration.
+/* Definitions of target machine for GCC, for bi-arch Solaris 2/x86.
    Copyright (C) 2004, 2006, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
    Contributed by CodeSourcery, LLC.
@@ -19,10 +19,17 @@
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
-#undef ASM_COMMENT_START
-#define ASM_COMMENT_START "/"
+/* Override i386/sol2.h version: return 8-byte vectors in MMX registers if
+   possible, matching Sun Studio 12 Update 1+ compilers and other x86
+   targets.  */
+#undef TARGET_SUBTARGET_DEFAULT
+#define TARGET_SUBTARGET_DEFAULT \
+	(MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS)
 
-/* binutils' GNU as understands --32 and --64, but the native Solaris
+#define SUBTARGET_OPTIMIZATION_OPTIONS				\
+  { OPT_LEVELS_1_PLUS, OPT_momit_leaf_frame_pointer, NULL, 1 }
+
+/* GNU as understands --32 and --64, but the native Solaris
    assembler requires -xarch=generic or -xarch=generic64 instead.  */
 #undef ASM_SPEC
 #ifdef USE_GAS
@@ -33,6 +40,29 @@
 		 "-s %(asm_cpu)"
 #endif
 
+/* We do not need to search a special directory for startup files.  */
+#undef MD_STARTFILE_PREFIX
+
+/* No 64-bit default configurations.  */
+#define DEFAULT_ARCH32_P 1
+
+#define ARCH64_SUBDIR "amd64"
+
+#ifdef USE_GLD
+/* Since binutils 2.21, GNU ld supports new *_sol2 emulations to strictly
+   follow the Solaris 2 ABI.  Prefer them if present.  */
+#ifdef HAVE_LD_SOL2_EMULATION
+#define ARCH32_EMULATION "elf_i386_sol2"
+#define ARCH64_EMULATION "elf_x86_64_sol2"
+#else
+#define ARCH32_EMULATION "elf_i386"
+#define ARCH64_EMULATION "elf_x86_64"
+#endif
+#endif
+
+#undef ASM_COMMENT_START
+#define ASM_COMMENT_START "/"
+
 /* The native Solaris assembler can't calculate the difference between
    symbols in different sections, which causes problems for -fPIC jump
    tables in .rodata.  */
@@ -64,72 +94,10 @@
     }									\
   while  (0)
 
+#define USE_IX86_FRAME_POINTER 1
+#define USE_X86_64_FRAME_POINTER 1
+
 #undef NO_PROFILE_COUNTERS
 
 #undef MCOUNT_NAME
 #define MCOUNT_NAME "_mcount"
-
-#undef WCHAR_TYPE
-#define WCHAR_TYPE (TARGET_64BIT ? "int" : "long int")
-#undef WCHAR_TYPE_SIZE
-#define WCHAR_TYPE_SIZE 32
-
-#undef WINT_TYPE
-#define WINT_TYPE (TARGET_64BIT ? "int" : "long int")
-#undef WINT_TYPE_SIZE
-#define WINT_TYPE_SIZE 32
-
-#define USE_IX86_FRAME_POINTER 1
-#define USE_X86_64_FRAME_POINTER 1
-
-/* Override i386/sol2.h version: return 8-byte vectors in MMX registers if
-   possible, matching Sun Studio 12 Update 1+ compilers and other x86
-   targets.  */
-#undef TARGET_SUBTARGET_DEFAULT
-#define TARGET_SUBTARGET_DEFAULT \
-	(MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS)
-
-#define SUBTARGET_OPTIMIZATION_OPTIONS				\
-  { OPT_LEVELS_1_PLUS, OPT_momit_leaf_frame_pointer, NULL, 1 }
-
-#define MULTILIB_DEFAULTS { "m32" }
-
-#undef LINK_ARCH64_SPEC_BASE
-#define LINK_ARCH64_SPEC_BASE \
-  "%{G:-G} \
-   %{YP,*} \
-   %{R*} \
-   %{compat-bsd: \
-     %{!YP,*:%{p|pg:-Y P,/usr/ucblib/64:/usr/lib/libp/64:/lib/64:/usr/lib/64} \
-             %{!p:%{!pg:-Y P,/usr/ucblib/64:/lib:/usr/lib/64}}} \
-             -R /usr/ucblib/64} \
-   %{!compat-bsd: \
-     %{!YP,*:%{p|pg:-Y P,/usr/lib/libp/64:/lib/64:/usr/lib/64} \
-             %{!p:%{!pg:-Y P,/lib/64:/usr/lib/64}}}}"
-
-#undef LINK_ARCH64_SPEC
-#define LINK_ARCH64_SPEC LINK_ARCH64_SPEC_BASE
-
-#ifdef TARGET_GNU_LD
-/* Since binutils 2.21, GNU ld supports new *_sol2 emulations to strictly
-   follow the Solaris 2 ABI.  Prefer them if present.  */
-#ifdef HAVE_LD_SOL2_EMULATION
-#define I386_EMULATION "elf_i386_sol2"
-#define X86_64_EMULATION "elf_x86_64_sol2"
-#else
-#define I386_EMULATION "elf_i386"
-#define X86_64_EMULATION "elf_x86_64"
-#endif
-
-#define TARGET_LD_EMULATION "%{m64:-m " X86_64_EMULATION "}" \
-			    "%{!m64:-m " I386_EMULATION "} "
-#else
-#define TARGET_LD_EMULATION ""
-#endif
-
-#undef LINK_ARCH_SPEC
-#define LINK_ARCH_SPEC TARGET_LD_EMULATION \
-		       "%{m64:" LINK_ARCH64_SPEC "}%{!m64:" LINK_ARCH32_SPEC "}"
-
-/* We do not need to search a special directory for startup files.  */
-#undef MD_STARTFILE_PREFIX
diff --git a/gcc/config/i386/sol2-gas.h b/gcc/config/i386/sol2-gas.h
deleted file mode 100644
index 8d15b9d..0000000
--- a/gcc/config/i386/sol2-gas.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Definitions of target machine for GCC, for x86 running Solaris 2
-   using the GNU assembler.
-
-Copyright (C) 2010 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 3, or (at your option) any later
-version.
-
-GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-/* Undefine this so that BNSYM/ENSYM pairs are emitted by STABS+.  */
-#undef NO_DBX_BNSYM_ENSYM
-
-/* Restore default; gas doesn't understand Sun as .tcomm.  */
-#undef TLS_COMMON_ASM_OP
diff --git a/gcc/config/i386/sol2.h b/gcc/config/i386/sol2.h
index e466b03..f5e5c76 100644
--- a/gcc/config/i386/sol2.h
+++ b/gcc/config/i386/sol2.h
@@ -19,6 +19,13 @@
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
+/* Augment i386/unix.h version to return 8-byte vectors in memory, matching
+   Sun Studio compilers until version 12, the only ones supported on
+   Solaris 8 and 9.  */
+#undef TARGET_SUBTARGET_DEFAULT
+#define TARGET_SUBTARGET_DEFAULT \
+	(MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_VECT8_RETURNS)
+
 /* Old versions of the Solaris assembler can not handle the difference of
    labels in different sections, so force DW_EH_PE_datarel.  */
 #undef ASM_PREFERRED_EH_DATA_FORMAT
@@ -37,23 +44,42 @@
 #undef EH_TABLES_CAN_BE_READ_ONLY
 #define EH_TABLES_CAN_BE_READ_ONLY (TARGET_64BIT)
 
-/* Solaris 2/Intel as chokes on #line directives.  */
+/* Follow Sun requirements for TLS code sequences and use Sun assembler TLS
+   syntax.  */
+#undef TARGET_SUN_TLS
+#define TARGET_SUN_TLS 1
+
+#undef  SIZE_TYPE
+#define SIZE_TYPE "unsigned int"
+
+#undef  PTRDIFF_TYPE
+#define PTRDIFF_TYPE "int"
+
+/* Solaris 2/Intel as chokes on #line directives before Solaris 10.  */
 #undef CPP_SPEC
 #define CPP_SPEC "%{,assembler-with-cpp:-P} %(cpp_subtarget)"
 
-/* FIXME: Removed -K PIC from generic Solaris 2 ASM_SPEC: the native assembler
-   gives many warnings: R_386_32 relocation is used for symbol ".text".  */
+#define ASM_CPU_SPEC ""
+ 
+/* Removed -K PIC from generic sol2.h ASM_SPEC: the Solaris 8 and 9 assembler
+   gives many warnings: R_386_32 relocation is used for symbol ".text", and
+   GNU as doesn't recognize -K at all.  */
+/* FIXME: Perhaps split between common and CPU-specific parts?  */
 #undef ASM_SPEC
 #define ASM_SPEC "%{v:-V} %{Qy:} %{!Qn:-Qy} %{Ym,*} -s %(asm_cpu)"
 
-#define ASM_CPU_SPEC ""
- 
+#define SUBTARGET_CPU_EXTRA_SPECS \
+  { "cpp_subtarget",	 CPP_SUBTARGET_SPEC },		\
+  { "asm_cpu",		 ASM_CPU_SPEC }
+
 #undef SUBTARGET_EXTRA_SPECS
 #define SUBTARGET_EXTRA_SPECS \
-  { "cpp_subtarget",	CPP_SUBTARGET_SPEC },	\
-  { "asm_cpu",		ASM_CPU_SPEC },		\
-  { "startfile_arch",	STARTFILE_ARCH_SPEC },	\
-  { "link_arch",	LINK_ARCH_SPEC }
+  { "startfile_arch",	STARTFILE_ARCH_SPEC },		\
+  { "link_arch",	LINK_ARCH_SPEC },		\
+  SUBTARGET_CPU_EXTRA_SPECS
+
+/* Register the Solaris-specific #pragma directives.  */
+#define REGISTER_SUBTARGET_PRAGMAS() solaris_register_pragmas ()
 
 #undef LOCAL_LABEL_PREFIX
 #define LOCAL_LABEL_PREFIX "."
@@ -78,18 +104,13 @@
       }							\
   } while (0)
 
-/* Follow Sun requirements for TLS code sequences and use Sun assembler TLS
-   syntax.  */
-#undef TARGET_SUN_TLS
-#define TARGET_SUN_TLS 1
-
+#ifndef USE_GAS
 /* The Sun assembler uses .tcomm for TLS common sections.  */
 #define TLS_COMMON_ASM_OP ".tcomm"
 
 /* Similar to the Sun assembler on SPARC, the native assembler requires
    TLS objects to be declared as @tls_obj (not @tls_object).  Unlike SPARC,
    gas doesn't understand this variant.  */
-#ifndef USE_GAS
 #undef  ASM_DECLARE_OBJECT_NAME
 #define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL)		\
   do								\
@@ -113,26 +134,7 @@
       ASM_OUTPUT_LABEL (FILE, NAME);				\
     }								\
   while (0)
-#endif
-
-/* The Solaris assembler cannot grok .stabd directives.  */
-#undef NO_DBX_BNSYM_ENSYM
-#define NO_DBX_BNSYM_ENSYM 1
-
-/* Solaris-specific #pragmas are implemented on top of attributes.  Hook in
-   the bits from config/sol2.c.  */
-#define SUBTARGET_INSERT_ATTRIBUTES solaris_insert_attributes
-#define SUBTARGET_ATTRIBUTE_TABLE SOLARIS_ATTRIBUTE_TABLE
-
-/* Register the Solaris-specific #pragma directives.  */
-#define REGISTER_SUBTARGET_PRAGMAS() solaris_register_pragmas ()
-
-/* Augment i386/unix.h version to return 8-byte vectors in memory, matching
-   Sun Studio compilers until version 12, the only ones supported on
-   Solaris 8 and 9.  */
-#undef TARGET_SUBTARGET_DEFAULT
-#define TARGET_SUBTARGET_DEFAULT \
-	(MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_VECT8_RETURNS)
+#endif /* !USE_GAS */
 
 /* Output a simple call for .init/.fini.  */
 #define ASM_OUTPUT_CALL(FILE, FN)				\
@@ -151,12 +153,9 @@
 #undef X86_FILE_START_VERSION_DIRECTIVE
 #define X86_FILE_START_VERSION_DIRECTIVE false
 
-/* Static stack checking is supported by means of probes.  */
-#define STACK_CHECK_STATIC_BUILTIN 1
-
 /* Only recent versions of Solaris 11 ld properly support hidden .gnu.linkonce
    sections, so don't use them.  */
-#ifndef TARGET_GNU_LD
+#ifndef USE_GLD
 #define USE_HIDDEN_LINKONCE 0
 #endif
 
@@ -165,9 +164,3 @@
 #define LIBGCC2_HAS_TF_MODE 1
 #define LIBGCC2_TF_CEXT q
 #define TF_SIZE 113
-
-#undef  SIZE_TYPE
-#define SIZE_TYPE "unsigned int"
-
-#undef  PTRDIFF_TYPE
-#define PTRDIFF_TYPE "int"
diff --git a/gcc/config/i386/t-sol2-10 b/gcc/config/i386/t-sol2-64
similarity index 100%
rename from gcc/config/i386/t-sol2-10
rename to gcc/config/i386/t-sol2-64
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 78d2441..9014813 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -192,7 +192,6 @@
 static rtx gen_fr_restore_x (rtx, rtx, rtx);
 
 static void ia64_option_override (void);
-static void ia64_option_default_params (void);
 static bool ia64_can_eliminate (const int, const int);
 static enum machine_mode hfa_element_mode (const_tree, bool);
 static void ia64_setup_incoming_varargs (cumulative_args_t, enum machine_mode,
@@ -377,8 +376,6 @@
 
 #undef TARGET_OPTION_OVERRIDE
 #define TARGET_OPTION_OVERRIDE ia64_option_override
-#undef TARGET_OPTION_DEFAULT_PARAMS
-#define TARGET_OPTION_DEFAULT_PARAMS ia64_option_default_params
 
 #undef TARGET_ASM_FUNCTION_PROLOGUE
 #define TARGET_ASM_FUNCTION_PROLOGUE ia64_output_function_prologue
@@ -10859,20 +10856,6 @@
   return NULL;
 }
 
-/* Implement TARGET_OPTION_DEFAULT_PARAMS.  */
-static void
-ia64_option_default_params (void)
-{
-  /* Let the scheduler form additional regions.  */
-  set_default_param_value (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS, 2);
-
-  /* Set the default values for cache-related parameters.  */
-  set_default_param_value (PARAM_SIMULTANEOUS_PREFETCHES, 6);
-  set_default_param_value (PARAM_L1_CACHE_LINE_SIZE, 32);
-
-  set_default_param_value (PARAM_SCHED_MEM_TRUE_DEP_COST, 4);
-}
-
 /* HP-UX version_id attribute.
    For object foo, if the version_id is set to 1234 put out an alias
    of '.alias foo "foo{1234}"  We can't use "foo{1234}" in anything
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index cea1650..a87280c 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -1045,7 +1045,6 @@
 static rtx altivec_expand_vec_ext_builtin (tree, rtx);
 static int get_element_number (tree, tree);
 static void rs6000_option_override (void);
-static void rs6000_option_default_params (void);
 static int rs6000_loop_align_max_skip (rtx);
 static int first_altivec_reg_to_save (void);
 static unsigned int compute_vrsave_mask (void);
@@ -1528,9 +1527,6 @@
 #undef TARGET_OPTION_OVERRIDE
 #define TARGET_OPTION_OVERRIDE rs6000_option_override
 
-#undef TARGET_OPTION_DEFAULT_PARAMS
-#define TARGET_OPTION_DEFAULT_PARAMS rs6000_option_default_params
-
 #undef TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION
 #define TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION \
   rs6000_builtin_vectorized_function
@@ -3678,15 +3674,6 @@
   return word_mode;
 }
 
-/* Implement TARGET_OPTION_DEFAULT_PARAMS.  */
-
-static void
-rs6000_option_default_params (void)
-{
-  /* Double growth factor to counter reduced min jump length.  */
-  set_default_param_value (PARAM_MAX_GROW_COPY_BB_INSNS, 16);
-}
-
 /* Handler for the Mathematical Acceleration Subsystem (mass) interface to a
    library with vectorized intrinsics.  */
 
@@ -7430,6 +7417,7 @@
 
       /* Interesting functions that we are emitting in this object file.  */
       c_node = cgraph_get_node (fndecl);
+      c_node = cgraph_function_or_thunk_node (c_node, NULL);
       return !cgraph_only_called_directly_p (c_node);
     }
   return false;
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 327a236..d945156 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -182,7 +182,6 @@
 static rtx gen_block_redirect (rtx, int, int);
 static void sh_reorg (void);
 static void sh_option_override (void);
-static void sh_option_default_params (void);
 static void output_stack_adjust (int, rtx, int, HARD_REG_SET *, bool);
 static rtx frame_insn (rtx);
 static rtx push (int);
@@ -345,8 +344,6 @@
 
 #undef TARGET_OPTION_OVERRIDE
 #define TARGET_OPTION_OVERRIDE sh_option_override
-#undef TARGET_OPTION_DEFAULT_PARAMS
-#define TARGET_OPTION_DEFAULT_PARAMS sh_option_default_params
 
 #undef TARGET_PRINT_OPERAND
 #define TARGET_PRINT_OPERAND sh_print_operand
@@ -578,14 +575,6 @@
 
 struct gcc_target targetm = TARGET_INITIALIZER;
 
-
-/* Implement TARGET_OPTION_DEFAULT_PARAMS.  */
-static void
-sh_option_default_params (void)
-{
-  set_default_param_value (PARAM_SIMULTANEOUS_PREFETCHES, 2);
-}
-
 /* Implement TARGET_OPTION_OVERRIDE macro.  Validate and override 
    various options, and do some machine dependent initialization.  */
 static void
diff --git a/gcc/config/sol2-10.h b/gcc/config/sol2-10.h
index 92aeabe..edea655 100644
--- a/gcc/config/sol2-10.h
+++ b/gcc/config/sol2-10.h
@@ -1,6 +1,6 @@
 /* Operating system specific defines to be used when targeting GCC for any
    Solaris 2 system starting from Solaris 10.
-   Copyright 2006, 2007 Free Software Foundation, Inc.
+   Copyright 2006, 2007, 2011 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -19,5 +19,4 @@
 <http://www.gnu.org/licenses/>.  */
 
 /* Solaris 10 has the float and long double forms of math functions.  */
-#undef TARGET_C99_FUNCTIONS
 #define TARGET_C99_FUNCTIONS 1
diff --git a/gcc/config/sol2-bi.h b/gcc/config/sol2-bi.h
new file mode 100644
index 0000000..371cdd6
--- /dev/null
+++ b/gcc/config/sol2-bi.h
@@ -0,0 +1,119 @@
+/* Definitions of target machine for GCC, for bi-arch Solaris 2.
+   Copyright (C) 2011 Free Software Foundation, Inc.
+
+   This file is part of GCC.
+
+   GCC is free software; you can redistribute it and/or modify it under
+   the terms of the GNU General Public License as published by the Free
+   Software Foundation; either version 3, or (at your option) any later
+   version.
+
+   GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+   WARRANTY; without even the implied warranty of MERCHANTABILITY or
+   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+   for more details.
+
+   Under Section 7 of GPL version 3, you are granted additional
+   permissions described in the GCC Runtime Library Exception, version
+   3.1, as published by the Free Software Foundation.
+
+   You should have received a copy of the GNU General Public License and
+   a copy of the GCC Runtime Library Exception along with this program;
+   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* wchar_t is called differently in <wchar.h> for 32 and 64-bit
+   compilations.  This is called for by SCD 2.4.1, p. 6-83, Figure 6-65
+   (32-bit) and p. 6P-10, Figure 6.38 (64-bit).  */
+
+#undef WCHAR_TYPE
+#define WCHAR_TYPE (TARGET_64BIT ? "int" : "long int")
+
+#undef WCHAR_TYPE_SIZE
+#define WCHAR_TYPE_SIZE 32
+
+/* Same for wint_t.  See SCD 2.4.1, p. 6-83, Figure 6-66 (32-bit).  There's
+   no corresponding 64-bit definition, but this is what Solaris 8
+   <iso/wchar_iso.h> uses.  */
+
+#undef WINT_TYPE
+#define WINT_TYPE (TARGET_64BIT ? "int" : "long int")
+
+#undef WINT_TYPE_SIZE
+#define WINT_TYPE_SIZE 32
+
+#if DEFAULT_ARCH32_P
+#define MULTILIB_DEFAULTS { "m32" }
+#else
+#define MULTILIB_DEFAULTS { "m64" }
+#endif
+
+#if DEFAULT_ARCH32_P
+#define DEF_ARCH32_SPEC(__str) "%{!m64:" __str "}"
+#define DEF_ARCH64_SPEC(__str) "%{m64:" __str "}"
+#else
+#define DEF_ARCH32_SPEC(__str) "%{m32:" __str "}"
+#define DEF_ARCH64_SPEC(__str) "%{!m32:" __str "}"
+#endif
+
+/* This should be the same as LINK_ARCH32_SPEC_BASE, except with
+   ARCH64_SUBDIR appended to the paths and /usr/ccs/lib is no longer
+   necessary.  */
+#undef LINK_ARCH64_SPEC_BASE
+#define LINK_ARCH64_SPEC_BASE \
+  "%{G:-G} \
+   %{YP,*} \
+   %{R*} \
+   %{!YP,*:%{p|pg:-Y P,%R/usr/lib/libp/" ARCH64_SUBDIR ":%R/lib/" ARCH64_SUBDIR ":%R/usr/lib/" ARCH64_SUBDIR "}	\
+	   %{!p:%{!pg:-Y P,%R/lib/" ARCH64_SUBDIR ":%R/usr/lib/" ARCH64_SUBDIR "}}}"
+
+#undef LINK_ARCH64_SPEC
+#ifndef USE_GLD
+/* FIXME: Used to be SPARC-only.  Not SPARC-specfic but for the model name!  */
+#define LINK_ARCH64_SPEC \
+  "%{mcmodel=medlow:-M /usr/lib/ld/" ARCH64_SUBDIR "/map.below4G} " \
+  LINK_ARCH64_SPEC_BASE
+#else
+#define LINK_ARCH64_SPEC LINK_ARCH64_SPEC_BASE
+#endif
+
+#ifdef USE_GLD
+#define TARGET_LD_EMULATION "%{m32:-m " ARCH32_EMULATION "}" \
+			    "%{m64:-m " ARCH64_EMULATION "} "
+#else
+#define TARGET_LD_EMULATION ""
+#endif
+
+#undef LINK_ARCH_SPEC
+#if DISABLE_MULTILIB
+#if DEFAULT_ARCH32_P
+#define LINK_ARCH_SPEC TARGET_LD_EMULATION " \
+%{m32:%(link_arch32)} \
+%{m64:%edoes not support multilib} \
+%{!m32:%{!m64:%(link_arch_default)}} \
+"
+#else
+#define LINK_ARCH_SPEC TARGET_LD_EMULATION " \
+%{m32:%edoes not support multilib} \
+%{m64:%(link_arch64)} \
+%{!m32:%{!m64:%(link_arch_default)}} \
+"
+#endif
+#else
+#define LINK_ARCH_SPEC TARGET_LD_EMULATION " \
+%{m32:%(link_arch32)} \
+%{m64:%(link_arch64)} \
+%{!m32:%{!m64:%(link_arch_default)}}"
+#endif
+
+#define LINK_ARCH_DEFAULT_SPEC \
+(DEFAULT_ARCH32_P ? LINK_ARCH32_SPEC : LINK_ARCH64_SPEC)
+
+#undef SUBTARGET_EXTRA_SPECS
+#define SUBTARGET_EXTRA_SPECS \
+  { "startfile_arch",	 STARTFILE_ARCH_SPEC },		\
+  { "link_arch32",       LINK_ARCH32_SPEC },            \
+  { "link_arch64",       LINK_ARCH64_SPEC },            \
+  { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },	\
+  { "link_arch",	 LINK_ARCH_SPEC },		\
+  SUBTARGET_CPU_EXTRA_SPECS
diff --git a/gcc/config/sol2-gld.h b/gcc/config/sol2-gld.h
deleted file mode 100644
index 5ab1582..0000000
--- a/gcc/config/sol2-gld.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Definitions of target machine for GCC, for any machine running Solaris 2
-   using the GNU linker.
-
-   Copyright (C) 2002, 2010 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
-
-GCC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING3.  If not see
-<http://www.gnu.org/licenses/>.  */
-
-/* Undefine this so that attribute((init_priority)) works.  */
-#undef CTORS_SECTION_ASM_OP
-#undef DTORS_SECTION_ASM_OP
-
-#undef SUPPORTS_INIT_PRIORITY
-#define SUPPORTS_INIT_PRIORITY 1
-
-/* GNU ld needs --export-dynamic to implement -rdynamic.  */
-#undef RDYNAMIC_SPEC
-#define RDYNAMIC_SPEC "--export-dynamic"
-
-/* Solaris 11 build 135+ implements dl_iterate_phdr.  */
-#if defined(HAVE_LD_EH_FRAME_HDR) && defined(TARGET_DL_ITERATE_PHDR)
-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-#endif /* HAVE_LD_EH_FRAME && TARGET_DL_ITERATE_PHDR */
diff --git a/gcc/config/sol2.h b/gcc/config/sol2.h
index d1e98e4..d898c2e 100644
--- a/gcc/config/sol2.h
+++ b/gcc/config/sol2.h
@@ -22,11 +22,6 @@
 /* We are compiling for Solaris 2 now.  */
 #define TARGET_SOLARIS 1
 
-/* We use stabs-in-elf for debugging, because that is what the native
-   toolchain uses.  */
-#undef PREFERRED_DEBUGGING_TYPE
-#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
-
 /* Solaris 2 (at least as of 2.5.1) uses a 32-bit wchar_t.  */
 #undef WCHAR_TYPE
 #define WCHAR_TYPE "long int"
@@ -76,15 +71,9 @@
 #define INTPTR_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "int")
 #define UINTPTR_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "unsigned int")
 
-/* ??? Note: in order for -compat-bsd to work fully,
-   we must somehow arrange to fixincludes /usr/ucbinclude
-   and put the result in $(libsubdir)/ucbinclude.  */
-
 #undef CPP_SUBTARGET_SPEC
 #define CPP_SUBTARGET_SPEC "\
-%{pthreads|pthread:-D_REENTRANT -D_PTHREADS} \
-%{compat-bsd:-iwithprefixbefore ucbinclude -I/usr/ucbinclude} \
-"
+%{pthreads|pthread:-D_REENTRANT -D_PTHREADS}"
 
 /* Names to predefine in the preprocessor for this target machine.  */
 #define TARGET_SUB_OS_CPP_BUILTINS()
@@ -110,9 +99,6 @@
 	TARGET_SUB_OS_CPP_BUILTINS();			\
     } while (0)
 
-/* The system headers under Solaris 2 are C++-aware since 2.0.  */
-#define NO_IMPLICIT_EXTERN_C
-
 /* It's safe to pass -s always, even if -g is not used.  */
 #undef ASM_SPEC
 #define ASM_SPEC "\
@@ -121,6 +107,15 @@
 %(asm_cpu) \
 "
 
+#undef LIB_SPEC
+#define LIB_SPEC \
+  "%{!symbolic:\
+     %{pthreads|pthread:" \
+        LIB_THREAD_LDFLAGS_SPEC " -lpthread " LIB_TLS_SPEC "} \
+     %{fprofile-generate*:" \
+        LIB_THREAD_LDFLAGS_SPEC " " LIB_TLS_SPEC "} \
+     %{p|pg:-ldl} -lc}"
+
 #ifndef CROSS_DIRECTORY_STRUCTURE
 #undef MD_EXEC_PREFIX
 #define MD_EXEC_PREFIX "/usr/ccs/bin/"
@@ -129,21 +124,12 @@
 #define MD_STARTFILE_PREFIX "/usr/ccs/lib/"
 #endif
 
-/* We don't use the standard LIB_SPEC only because we don't yet support c++.  */
-#undef LIB_SPEC
-#define LIB_SPEC \
-  "%{compat-bsd:-lucb -lsocket -lnsl -lelf -laio} \
-   %{!symbolic:\
-     %{pthreads|pthread:" \
-        LIB_THREAD_LDFLAGS_SPEC " -lpthread " LIB_TLS_SPEC "} \
-     %{fprofile-generate*:" \
-        LIB_THREAD_LDFLAGS_SPEC " " LIB_TLS_SPEC "} \
-     %{p|pg:-ldl} -lc}"
+#undef STARTFILE_ARCH32_SPEC
+#define STARTFILE_ARCH32_SPEC "%{ansi:values-Xc.o%s} \
+			    %{!ansi:values-Xa.o%s}"
 
-#undef  ENDFILE_SPEC
-#define ENDFILE_SPEC \
-  "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
-   crtend.o%s crtn.o%s"
+#undef STARTFILE_ARCH_SPEC
+#define STARTFILE_ARCH_SPEC STARTFILE_ARCH32_SPEC
 
 /* We don't use the standard svr4 STARTFILE_SPEC because it's wrong for us.  */
 #undef STARTFILE_SPEC
@@ -156,25 +142,18 @@
 			crti.o%s %(startfile_arch) \
 			crtbegin.o%s"
 
-#undef STARTFILE_ARCH32_SPEC
-#define STARTFILE_ARCH32_SPEC "%{ansi:values-Xc.o%s} \
-			    %{!ansi:values-Xa.o%s}"
-
-#undef STARTFILE_ARCH_SPEC
-#define STARTFILE_ARCH_SPEC STARTFILE_ARCH32_SPEC
+#undef  ENDFILE_SPEC
+#define ENDFILE_SPEC \
+  "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
+   crtend.o%s crtn.o%s"
 
 #undef LINK_ARCH32_SPEC_BASE
 #define LINK_ARCH32_SPEC_BASE \
   "%{G:-G} \
    %{YP,*} \
    %{R*} \
-   %{compat-bsd: \
-     %{!YP,*:%{p|pg:-Y P,%R/usr/ucblib:%R/usr/ccs/lib/libp:%R/usr/lib/libp:%R/usr/ccs/lib:%R/usr/lib} \
-             %{!p:%{!pg:-Y P,%R/usr/ucblib:%R/usr/ccs/lib:%R/usr/lib}}} \
-             -R %R/usr/ucblib} \
-   %{!compat-bsd: \
-     %{!YP,*:%{p|pg:-Y P,%R/usr/ccs/lib/libp:%R/usr/lib/libp:%R/usr/ccs/lib:%R/usr/lib} \
-             %{!p:%{!pg:-Y P,%R/usr/ccs/lib:%R/usr/lib}}}}"
+   %{!YP,*:%{p|pg:-Y P,%R/usr/ccs/lib/libp:%R/usr/lib/libp:%R/usr/ccs/lib:%R/lib:%R/usr/lib} \
+	   %{!p:%{!pg:-Y P,%R/usr/ccs/lib:%R/lib:%R/usr/lib}}}"
 
 #undef LINK_ARCH32_SPEC
 #define LINK_ARCH32_SPEC LINK_ARCH32_SPEC_BASE
@@ -182,6 +161,14 @@
 #undef LINK_ARCH_SPEC
 #define LINK_ARCH_SPEC LINK_ARCH32_SPEC
 
+#ifndef USE_GLD
+/* With Sun ld, -rdynamic is a no-op.  */
+#define RDYNAMIC_SPEC ""
+#else
+/* GNU ld needs --export-dynamic to implement -rdynamic.  */
+#define RDYNAMIC_SPEC "--export-dynamic"
+#endif
+
 #undef  LINK_SPEC
 #define LINK_SPEC \
   "%{h*} %{v:-V} \
@@ -192,22 +179,22 @@
    %(link_arch) \
    %{Qy:} %{!Qn:-Qy}"
 
-/* With Sun ld, -rdynamic is a no-op.  */
-#define RDYNAMIC_SPEC ""
-
-/* The Solaris linker doesn't understand constructor priorities.  (The
-   GNU linker does support constructor priorities, so GNU ld
-   configuration files for Solaris override this setting.)  */
-#undef SUPPORTS_INIT_PRIORITY
-#define SUPPORTS_INIT_PRIORITY 0
+#ifdef USE_GLD
+/* Solaris 11 build 135+ implements dl_iterate_phdr.  GNU ld needs
+   --eh-frame-hdr to create the required .eh_frame_hdr sections.  */
+#if defined(HAVE_LD_EH_FRAME_HDR) && defined(TARGET_DL_ITERATE_PHDR)
+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
+#endif /* HAVE_LD_EH_FRAME && TARGET_DL_ITERATE_PHDR */
+#endif
 
 /* collect2.c can only parse GNU nm -n output.  Solaris nm needs -png to
    produce the same format.  */
 #define NM_FLAGS "-png"
+
+/* The system headers under Solaris 2 are C++-aware since 2.0.  */
+#define NO_IMPLICIT_EXTERN_C
 
 #define STDC_0_IN_SYSTEM_HEADERS 1
-
-#define HAVE_ENABLE_EXECUTE_STACK
 
 /* Support Solaris-specific format checking for cmn_err.  */
 #define TARGET_N_FORMAT_TYPES 1
@@ -219,6 +206,14 @@
   { "init",      0, 0, true,  false,  false, NULL, false },		\
   { "fini",      0, 0, true,  false,  false, NULL, false }
 
+/* Solaris-specific #pragmas are implemented on top of attributes.  Hook in
+   the bits from config/sol2.c.  */
+#define SUBTARGET_INSERT_ATTRIBUTES solaris_insert_attributes
+#define SUBTARGET_ATTRIBUTE_TABLE SOLARIS_ATTRIBUTE_TABLE
+
+/* Allow macro expansion in #pragma pack.  */
+#define HANDLE_PRAGMA_PACK_WITH_EXPANSION
+
 /* Solaris/x86 as and gas support unquoted section names.  */
 #define SECTION_NAME_FORMAT	"%s"
 
@@ -234,7 +229,7 @@
     }								\
   while (0)
 
-/* Solaris 'as' has a bug: a .common directive in .tbss or .tdata section
+/* Solaris as has a bug: a .common directive in .tbss or .tdata section
    behaves as .tls_common rather than normal non-TLS .common.  */
 #undef  ASM_OUTPUT_ALIGNED_COMMON
 #define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN)		\
@@ -257,13 +252,25 @@
 
 #define AS_NEEDS_DASH_FOR_PIPED_INPUT
 
+/* The Solaris assembler cannot grok .stabd directives.  */
+#undef NO_DBX_BNSYM_ENSYM
+#define NO_DBX_BNSYM_ENSYM 1
 #endif
 
+#ifndef USE_GLD
+/* The Solaris linker doesn't understand constructor priorities.  */
+#undef SUPPORTS_INIT_PRIORITY
+#define SUPPORTS_INIT_PRIORITY 0
+#endif
+
+/* Solaris has an implementation of __enable_execute_stack.  */
+#define HAVE_ENABLE_EXECUTE_STACK
+
+/* Static stack checking is supported by means of probes.  */
+#define STACK_CHECK_STATIC_BUILTIN 1
+
+#define TARGET_POSIX_IO
+
 extern GTY(()) tree solaris_pending_aligns;
 extern GTY(()) tree solaris_pending_inits;
 extern GTY(()) tree solaris_pending_finis;
-
-/* Allow macro expansion in #pragma pack.  */
-#define HANDLE_PRAGMA_PACK_WITH_EXPANSION
-
-#define TARGET_POSIX_IO
diff --git a/gcc/config/sol2.opt b/gcc/config/sol2.opt
index e600111..37a3139 100644
--- a/gcc/config/sol2.opt
+++ b/gcc/config/sol2.opt
@@ -27,9 +27,6 @@
 Ym,
 Driver Joined
 
-compat-bsd
-Driver
-
 mimpure-text
 Target Report
 Pass -z text to linker
diff --git a/gcc/config/sparc/sol2-bi.h b/gcc/config/sparc/sol2-bi.h
deleted file mode 100644
index d1d62eb..0000000
--- a/gcc/config/sparc/sol2-bi.h
+++ /dev/null
@@ -1,271 +0,0 @@
-/* Definitions of target machine for GCC, for bi-arch SPARC
-   running Solaris 2 using the system assembler and linker.
-   Copyright (C) 2002, 2003, 2004, 2006, 2007, 2009, 2010, 2011
-   Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 3, or (at your option) any later
-version.
-
-GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-/* The default code model used to be CM_MEDANY on Solaris
-   but even Sun eventually found it to be quite wasteful
-   and changed it to CM_MEDMID in the Studio 9 compiler.  */
-#undef SPARC_DEFAULT_CMODEL
-#define SPARC_DEFAULT_CMODEL CM_MEDMID
-
-#define AS_SPARC64_FLAG	"-xarch=v9"
-
-#undef ASM_CPU32_DEFAULT_SPEC
-#define ASM_CPU32_DEFAULT_SPEC	""
-#undef ASM_CPU64_DEFAULT_SPEC
-#define ASM_CPU64_DEFAULT_SPEC	AS_SPARC64_FLAG
-
-#if TARGET_CPU_DEFAULT == TARGET_CPU_v9
-#undef CPP_CPU64_DEFAULT_SPEC
-#define CPP_CPU64_DEFAULT_SPEC ""
-#undef ASM_CPU32_DEFAULT_SPEC
-#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plus"
-#endif
-
-#if TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc
-#undef CPP_CPU64_DEFAULT_SPEC
-#define CPP_CPU64_DEFAULT_SPEC ""
-#undef ASM_CPU32_DEFAULT_SPEC
-#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plusa"
-#undef ASM_CPU64_DEFAULT_SPEC
-#define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG "a"
-#endif
-
-#if TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3
-#undef CPP_CPU64_DEFAULT_SPEC
-#define CPP_CPU64_DEFAULT_SPEC ""
-#undef ASM_CPU32_DEFAULT_SPEC
-#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plusb"
-#undef ASM_CPU64_DEFAULT_SPEC
-#define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG "b"
-#endif
-
-#if TARGET_CPU_DEFAULT == TARGET_CPU_niagara
-#undef CPP_CPU64_DEFAULT_SPEC
-#define CPP_CPU64_DEFAULT_SPEC ""
-#undef ASM_CPU32_DEFAULT_SPEC
-#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plusb"
-#undef ASM_CPU64_DEFAULT_SPEC
-#define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG "b"
-#endif
-
-#if TARGET_CPU_DEFAULT == TARGET_CPU_niagara2
-#undef CPP_CPU64_DEFAULT_SPEC
-#define CPP_CPU64_DEFAULT_SPEC ""
-#undef ASM_CPU32_DEFAULT_SPEC
-#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plusb"
-#undef ASM_CPU64_DEFAULT_SPEC
-#define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG "b"
-#endif
-
-#if DEFAULT_ARCH32_P
-#define DEF_ARCH32_SPEC(__str) "%{!m64:" __str "}"
-#define DEF_ARCH64_SPEC(__str) "%{m64:" __str "}"
-#else
-#define DEF_ARCH32_SPEC(__str) "%{m32:" __str "}"
-#define DEF_ARCH64_SPEC(__str) "%{!m32:" __str "}"
-#endif
-
-#undef CPP_CPU_SPEC
-#define CPP_CPU_SPEC "\
-%{mcpu=sparclet|mcpu=tsc701:-D__sparclet__} \
-%{mcpu=sparclite|mcpu-f930|mcpu=f934:-D__sparclite__} \
-%{mcpu=v8:" DEF_ARCH32_SPEC("-D__sparcv8") "} \
-%{mcpu=supersparc:-D__supersparc__ " DEF_ARCH32_SPEC("-D__sparcv8") "} \
-%{mcpu=v9|mcpu=ultrasparc|mcpu=ultrasparc3|mcpu=niagara|mcpu=niagara2:" DEF_ARCH32_SPEC("-D__sparcv8") "} \
-%{!mcpu*:%(cpp_cpu_default)} \
-"
-
-#undef ASM_CPU_SPEC
-#define ASM_CPU_SPEC "\
-%{mcpu=v9:" DEF_ARCH32_SPEC("-xarch=v8plus") DEF_ARCH64_SPEC(AS_SPARC64_FLAG) "} \
-%{mcpu=ultrasparc:" DEF_ARCH32_SPEC("-xarch=v8plusa") DEF_ARCH64_SPEC(AS_SPARC64_FLAG "a") "} \
-%{mcpu=ultrasparc3:" DEF_ARCH32_SPEC("-xarch=v8plusb") DEF_ARCH64_SPEC(AS_SPARC64_FLAG "b") "} \
-%{mcpu=niagara:" DEF_ARCH32_SPEC("-xarch=v8plusb") DEF_ARCH64_SPEC(AS_SPARC64_FLAG "b") "} \
-%{mcpu=niagara2:" DEF_ARCH32_SPEC("-xarch=v8plusb") DEF_ARCH64_SPEC(AS_SPARC64_FLAG "b") "} \
-%{!mcpu=niagara2:%{!mcpu=niagara:%{!mcpu=ultrasparc3:%{!mcpu=ultrasparc:%{!mcpu=v9:%{mcpu*:" DEF_ARCH32_SPEC("-xarch=v8") DEF_ARCH64_SPEC(AS_SPARC64_FLAG) "}}}}}} \
-%{!mcpu*:%(asm_cpu_default)} \
-"
-
-#undef CPP_CPU_DEFAULT_SPEC
-#define CPP_CPU_DEFAULT_SPEC \
-(DEFAULT_ARCH32_P ? "\
-%{m64:" CPP_CPU64_DEFAULT_SPEC "} \
-%{!m64:" CPP_CPU32_DEFAULT_SPEC "} \
-" : "\
-%{m32:" CPP_CPU32_DEFAULT_SPEC "} \
-%{!m32:" CPP_CPU64_DEFAULT_SPEC "} \
-")
-
-#undef ASM_CPU_DEFAULT_SPEC
-#define ASM_CPU_DEFAULT_SPEC \
-(DEFAULT_ARCH32_P ? "\
-%{m64:" ASM_CPU64_DEFAULT_SPEC "} \
-%{!m64:" ASM_CPU32_DEFAULT_SPEC "} \
-" : "\
-%{m32:" ASM_CPU32_DEFAULT_SPEC "} \
-%{!m32:" ASM_CPU64_DEFAULT_SPEC "} \
-")
-
-/* wchar_t is called differently in <wchar.h> for 32 and 64-bit
-   compilations.  This is called for by SCD 2.4.1, p. 6-83, Figure 6-65
-   (32-bit) and p. 6P-10, Figure 6.38 (64-bit).  */
-
-#undef WCHAR_TYPE
-#define WCHAR_TYPE (TARGET_ARCH64 ? "int" : "long int")
-
-#undef WCHAR_TYPE_SIZE
-#define WCHAR_TYPE_SIZE 32
-
-/* Same for wint_t.  See SCD 2.4.1, p. 6-83, Figure 6-66 (32-bit).  There's
-   no corresponding 64-bit definition, but this is what Solaris 8
-   <iso/wchar_iso.h> uses.  */
-
-#undef WINT_TYPE
-#define WINT_TYPE (TARGET_ARCH64 ? "int" : "long int")
-
-#undef WINT_TYPE_SIZE
-#define WINT_TYPE_SIZE 32
-
-#undef CPP_ARCH32_SPEC
-#define CPP_ARCH32_SPEC ""
-#undef CPP_ARCH64_SPEC
-#define CPP_ARCH64_SPEC "-D__arch64__ -D__sparcv9"
-
-#undef CPP_ARCH_SPEC
-#define CPP_ARCH_SPEC "\
-%{m32:%(cpp_arch32)} \
-%{m64:%(cpp_arch64)} \
-%{!m32:%{!m64:%(cpp_arch_default)}} \
-"
-
-#undef ASM_ARCH_SPEC
-#define ASM_ARCH_SPEC ""
-
-#undef ASM_ARCH32_SPEC
-#define ASM_ARCH32_SPEC ""
-
-#undef ASM_ARCH64_SPEC
-#define ASM_ARCH64_SPEC ""
-
-#undef ASM_ARCH_DEFAULT_SPEC
-#define ASM_ARCH_DEFAULT_SPEC ""
-
-#undef SUBTARGET_EXTRA_SPECS
-#define SUBTARGET_EXTRA_SPECS \
-  { "startfile_arch",	 STARTFILE_ARCH_SPEC },		  \
-  { "link_arch32",       LINK_ARCH32_SPEC },              \
-  { "link_arch64",       LINK_ARCH64_SPEC },              \
-  { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },	  \
-  { "link_arch",	 LINK_ARCH_SPEC },
-    
-/*
- * This should be the same as in sol2.h, except with "/sparcv9"
- * appended to the paths and /usr/ccs/lib is no longer necessary
- */
-#define LINK_ARCH64_SPEC_BASE \
-  "%{mcmodel=medlow:-M /usr/lib/ld/sparcv9/map.below4G} \
-   %{G:-G} \
-   %{YP,*} \
-   %{R*} \
-   %{compat-bsd: \
-     %{!YP,*:%{p|pg:-Y P,%R/usr/ucblib/sparcv9:%R/usr/lib/libp/sparcv9:%R/usr/lib/sparcv9} \
-       %{!p:%{!pg:-Y P,%R/usr/ucblib/sparcv9:%R/usr/lib/sparcv9}}} \
-     -R %R/usr/ucblib/sparcv9} \
-   %{!compat-bsd: \
-     %{!YP,*:%{p|pg:-Y P,%R/usr/lib/libp/sparcv9:%R/usr/lib/sparcv9} \
-       %{!p:%{!pg:-Y P,%R/usr/lib/sparcv9}}}}"
-
-#define LINK_ARCH64_SPEC LINK_ARCH64_SPEC_BASE
-
-#undef LINK_ARCH_SPEC
-#if DISABLE_MULTILIB
-#if DEFAULT_ARCH32_P
-#define LINK_ARCH_SPEC "\
-%{m32:%(link_arch32)} \
-%{m64:%edoes not support multilib} \
-%{!m32:%{!m64:%(link_arch_default)}} \
-"
-#else
-#define LINK_ARCH_SPEC "\
-%{m32:%edoes not support multilib} \
-%{m64:%(link_arch64)} \
-%{!m32:%{!m64:%(link_arch_default)}} \
-"
-#endif
-#else
-#define LINK_ARCH_SPEC "\
-%{m32:%(link_arch32)} \
-%{m64:%(link_arch64)} \
-%{!m32:%{!m64:%(link_arch_default)}} \
-"
-#endif
-
-#define LINK_ARCH_DEFAULT_SPEC \
-(DEFAULT_ARCH32_P ? LINK_ARCH32_SPEC : LINK_ARCH64_SPEC)
-
-#undef	CC1_SPEC
-#if DEFAULT_ARCH32_P
-#define CC1_SPEC "\
-%{m64:%{m32:%emay not use both -m32 and -m64}} \
-%{m64:-mptr64 -mstack-bias -mno-v8plus \
-  %{!mcpu*:-%{!mv8plus:mcpu=v9}}} \
-"
-#else
-#define CC1_SPEC "\
-%{m32:%{m64:%emay not use both -m32 and -m64}} \
-%{m32:-mptr32 -mno-stack-bias \
-  %{!mcpu*:%{!mv8plus:-mcpu=v9}}} \
-%{mv8plus:-m32 -mptr32 -mno-stack-bias \
-  %{!mcpu*:-mcpu=v9}} \
-"
-#endif
-
-/* Support for a compile-time default CPU, et cetera.  The rules are:
-   --with-cpu is ignored if -mcpu is specified.
-   --with-tune is ignored if -mtune is specified.
-   --with-float is ignored if -mhard-float, -msoft-float, -mfpu, or -mno-fpu
-     are specified.
-   In the SPARC_BI_ARCH compiler we cannot pass %{!mcpu=*:-mcpu=%(VALUE)}
-   here, otherwise say -mcpu=v7 would be passed even when -m64.
-   CC1_SPEC above takes care of this instead.  */
-#undef OPTION_DEFAULT_SPECS
-#if DEFAULT_ARCH32_P
-#define OPTION_DEFAULT_SPECS \
-  {"cpu", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
-  {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
-  {"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" }
-#else
-#define OPTION_DEFAULT_SPECS \
-  {"cpu", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
-  {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
-  {"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" }
-#endif
-
-#if DEFAULT_ARCH32_P
-#define MULTILIB_DEFAULTS { "m32" }
-#else
-#define MULTILIB_DEFAULTS { "m64" }
-#endif
diff --git a/gcc/config/sparc/sol2-gas-bi.h b/gcc/config/sparc/sol2-gas-bi.h
deleted file mode 100644
index 001f978..0000000
--- a/gcc/config/sparc/sol2-gas-bi.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Definitions of target machine for GCC, for bi-arch SPARC
-   running Solaris 2 using the GNU assembler.
-
-   Copyright (C) 2002, 2010 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
-
-GCC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING3.  If not see
-<http://www.gnu.org/licenses/>.  */
-
-#undef  AS_SPARC64_FLAG
-#define AS_SPARC64_FLAG	"-TSO -64 -Av9"
diff --git a/gcc/config/sparc/sol2-gas.h b/gcc/config/sparc/sol2-gas.h
deleted file mode 100644
index d83e7b9..0000000
--- a/gcc/config/sparc/sol2-gas.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Definitions of target machine for GCC, for SPARC running Solaris 2
-   using the GNU assembler.
-   Copyright (C) 2004, 2005, 2010 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 3, or (at your option) any later
-version.
-
-GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-/* Undefine this as the filler pattern doesn't work with GNU as.  */
-#undef ASM_OUTPUT_ALIGN_WITH_NOP
-
-/* Undefine this so that BNSYM/ENSYM pairs are emitted by STABS+.  */
-#undef NO_DBX_BNSYM_ENSYM
-
-/* Use GNU extensions to TLS support.  */
-#ifdef HAVE_AS_TLS
-#undef TARGET_SUN_TLS
-#undef TARGET_GNU_TLS
-#define TARGET_SUN_TLS 0
-#define TARGET_GNU_TLS 1
-#endif
-
-/* Use default ELF section syntax.  */
-#undef TARGET_ASM_NAMED_SECTION
-#define TARGET_ASM_NAMED_SECTION default_elf_asm_named_section
-
-/* And standard pushsection syntax.  While GNU as supports the non-standard
-   variant too, we prefer the former.  */
-#undef PUSHSECTION_FORMAT
-#define PUSHSECTION_FORMAT "\t.pushsection\t%s\n"
diff --git a/gcc/config/sparc/sol2-gld-bi.h b/gcc/config/sparc/sol2-gld-bi.h
deleted file mode 100644
index 3be20b2..0000000
--- a/gcc/config/sparc/sol2-gld-bi.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Definitions of target machine for GCC, for bi-arch SPARC
-   running Solaris 2 using the GNU linker.
-
-Copyright (C) 2002, 2003, 2010 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 3, or (at your option) any later
-version.
-
-GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-#undef LINK_ARCH32_SPEC
-#define LINK_ARCH32_SPEC \
-  LINK_ARCH32_SPEC_BASE "%{!static: -rpath-link %R/usr/lib}"
-
-#undef LINK_ARCH64_SPEC
-#define LINK_ARCH64_SPEC \
-  LINK_ARCH64_SPEC_BASE "%{!static: -rpath-link %R/usr/lib/sparcv9}"
-
-/* Since binutils 2.21, GNU ld supports new *_sol2 emulations to strictly
-   follow the Solaris 2 ABI.  Prefer them if present.  */
-#ifdef HAVE_LD_SOL2_EMULATION
-#define SPARC32_EMULATION "elf32_sparc_sol2"
-#define SPARC64_EMULATION "elf64_sparc_sol2"
-#else
-#define SPARC32_EMULATION "elf32_sparc"
-#define SPARC64_EMULATION "elf64_sparc"
-#endif
-
-#undef LINK_ARCH_SPEC
-#if DISABLE_MULTILIB
-#if DEFAULT_ARCH32_P
-#define LINK_ARCH_SPEC "\
-%{m32:-m " SPARC32_EMULATION " %(link_arch32)} \
-%{m64:%edoes not support multilib} \
-%{!m32:%{!m64:%(link_arch_default)}} \
-"
-#else
-#define LINK_ARCH_SPEC "\
-%{m32:%edoes not support multilib} \
-%{m64:-m " SPARC64_EMULATION " %(link_arch64)} \
-%{!m32:%{!m64:%(link_arch_default)}} \
-"
-#endif
-#else
-#define LINK_ARCH_SPEC "\
-%{m32:-m " SPARC32_EMULATION " %(link_arch32)} \
-%{m64:-m " SPARC64_EMULATION " %(link_arch64)} \
-%{!m32:%{!m64:%(link_arch_default)}} \
-"
-#endif
-
diff --git a/gcc/config/sparc/sol2.h b/gcc/config/sparc/sol2.h
index c99b02f..627b05e 100644
--- a/gcc/config/sparc/sol2.h
+++ b/gcc/config/sparc/sol2.h
@@ -20,62 +20,240 @@
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
+/* Solaris allows 64 bit out and global registers in 32 bit mode.
+   sparc_override_options will disable V8+ if not generating V9 code.  */
+#undef TARGET_DEFAULT
+#define TARGET_DEFAULT (MASK_V8PLUS + MASK_APP_REGS + MASK_FPU \
+			+ MASK_LONG_DOUBLE_128)
+
+/* The default code model used to be CM_MEDANY on Solaris
+   but even Sun eventually found it to be quite wasteful
+   and changed it to CM_MEDMID in the Studio 9 compiler.  */
+#undef SPARC_DEFAULT_CMODEL
+#define SPARC_DEFAULT_CMODEL CM_MEDMID
+
+/* Select a format to encode pointers in exception handling data.  CODE
+   is 0 for data, 1 for code labels, 2 for function pointers.  GLOBAL is
+   true if the symbol may be affected by dynamic relocations.
+
+   Some Solaris dynamic linkers don't handle unaligned section relative
+   relocs properly, so force them to be aligned.  */
+#ifndef HAVE_AS_SPARC_UA_PCREL
+#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL)		\
+  ((flag_pic || GLOBAL) ? DW_EH_PE_aligned : DW_EH_PE_absptr)
+#endif
+
+
+
 /* Supposedly the same as vanilla sparc svr4, except for the stuff below: */
 
 /* This is here rather than in sparc.h because it's not known what
    other assemblers will accept.  */
 
+#ifndef USE_GAS
+#define AS_SPARC64_FLAG	"-xarch=v9"
+#else
+#define AS_SPARC64_FLAG	"-TSO -64 -Av9"
+#endif
+
+#undef ASM_CPU32_DEFAULT_SPEC
+#define ASM_CPU32_DEFAULT_SPEC	""
+#undef ASM_CPU64_DEFAULT_SPEC
+#define ASM_CPU64_DEFAULT_SPEC	AS_SPARC64_FLAG
+
 #if TARGET_CPU_DEFAULT == TARGET_CPU_v9
+#undef CPP_CPU64_DEFAULT_SPEC
+#define CPP_CPU64_DEFAULT_SPEC ""
+#undef ASM_CPU32_DEFAULT_SPEC
+#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plus"
 #undef ASM_CPU_DEFAULT_SPEC
-#define ASM_CPU_DEFAULT_SPEC "-xarch=v8plus"
+#define ASM_CPU_DEFAULT_SPEC ASM_CPU32_DEFAULT_SPEC
 #endif
 
 #if TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc
+#undef CPP_CPU64_DEFAULT_SPEC
+#define CPP_CPU64_DEFAULT_SPEC ""
+#undef ASM_CPU32_DEFAULT_SPEC
+#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plusa"
+#undef ASM_CPU64_DEFAULT_SPEC
+#define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG "a"
 #undef ASM_CPU_DEFAULT_SPEC
-#define ASM_CPU_DEFAULT_SPEC "-xarch=v8plusa"
+#define ASM_CPU_DEFAULT_SPEC ASM_CPU32_DEFAULT_SPEC
 #endif
 
 #if TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3
+#undef CPP_CPU64_DEFAULT_SPEC
+#define CPP_CPU64_DEFAULT_SPEC ""
+#undef ASM_CPU32_DEFAULT_SPEC
+#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plusb"
+#undef ASM_CPU64_DEFAULT_SPEC
+#define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG "b"
 #undef ASM_CPU_DEFAULT_SPEC
-#define ASM_CPU_DEFAULT_SPEC "-xarch=v8plusb"
+#define ASM_CPU_DEFAULT_SPEC ASM_CPU32_DEFAULT_SPEC
 #endif
 
 #if TARGET_CPU_DEFAULT == TARGET_CPU_niagara
+#undef CPP_CPU64_DEFAULT_SPEC
+#define CPP_CPU64_DEFAULT_SPEC ""
+#undef ASM_CPU32_DEFAULT_SPEC
+#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plusb"
+#undef ASM_CPU64_DEFAULT_SPEC
+#define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG "b"
 #undef ASM_CPU_DEFAULT_SPEC
-#define ASM_CPU_DEFAULT_SPEC "-xarch=v8plusb"
+#define ASM_CPU_DEFAULT_SPEC ASM_CPU32_DEFAULT_SPEC
 #endif
 
 #if TARGET_CPU_DEFAULT == TARGET_CPU_niagara2
+#undef CPP_CPU64_DEFAULT_SPEC
+#define CPP_CPU64_DEFAULT_SPEC ""
+#undef ASM_CPU32_DEFAULT_SPEC
+#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plusb"
+#undef ASM_CPU64_DEFAULT_SPEC
+#define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG "b"
 #undef ASM_CPU_DEFAULT_SPEC
-#define ASM_CPU_DEFAULT_SPEC "-xarch=v8plusb"
+#define ASM_CPU_DEFAULT_SPEC ASM_CPU32_DEFAULT_SPEC
+#endif
+
+#undef CPP_CPU_SPEC
+#define CPP_CPU_SPEC "\
+%{mcpu=sparclet|mcpu=tsc701:-D__sparclet__} \
+%{mcpu=sparclite|mcpu-f930|mcpu=f934:-D__sparclite__} \
+%{mcpu=v8:" DEF_ARCH32_SPEC("-D__sparcv8") "} \
+%{mcpu=supersparc:-D__supersparc__ " DEF_ARCH32_SPEC("-D__sparcv8") "} \
+%{mcpu=v9|mcpu=ultrasparc|mcpu=ultrasparc3|mcpu=niagara|mcpu=niagara2:" DEF_ARCH32_SPEC("-D__sparcv8") "} \
+%{!mcpu*:%(cpp_cpu_default)} \
+"
+
+#undef CPP_CPU_DEFAULT_SPEC
+#define CPP_CPU_DEFAULT_SPEC \
+(DEFAULT_ARCH32_P ? "\
+%{m64:" CPP_CPU64_DEFAULT_SPEC "} \
+%{!m64:" CPP_CPU32_DEFAULT_SPEC "} \
+" : "\
+%{m32:" CPP_CPU32_DEFAULT_SPEC "} \
+%{!m32:" CPP_CPU64_DEFAULT_SPEC "} \
+")
+
+#undef CPP_ARCH32_SPEC
+#define CPP_ARCH32_SPEC ""
+#undef CPP_ARCH64_SPEC
+#define CPP_ARCH64_SPEC "-D__arch64__ -D__sparcv9"
+
+#undef CPP_ARCH_SPEC
+#define CPP_ARCH_SPEC "\
+%{m32:%(cpp_arch32)} \
+%{m64:%(cpp_arch64)} \
+%{!m32:%{!m64:%(cpp_arch_default)}} \
+"
+
+#undef	CC1_SPEC
+#if DEFAULT_ARCH32_P
+#define CC1_SPEC "\
+%{m64:%{m32:%emay not use both -m32 and -m64}} \
+%{m64:-mptr64 -mstack-bias -mno-v8plus \
+  %{!mcpu*:-%{!mv8plus:mcpu=v9}}} \
+"
+#else
+#define CC1_SPEC "\
+%{m32:%{m64:%emay not use both -m32 and -m64}} \
+%{m32:-mptr32 -mno-stack-bias \
+  %{!mcpu*:%{!mv8plus:-mcpu=v9}}} \
+%{mv8plus:-m32 -mptr32 -mno-stack-bias \
+  %{!mcpu*:-mcpu=v9}} \
+"
+#endif
+
+/* Support for a compile-time default CPU, et cetera.  The rules are:
+   --with-cpu is ignored if -mcpu is specified.
+   --with-tune is ignored if -mtune is specified.
+   --with-float is ignored if -mhard-float, -msoft-float, -mfpu, or -mno-fpu
+     are specified.
+   In the SPARC_BI_ARCH compiler we cannot pass %{!mcpu=*:-mcpu=%(VALUE)}
+   here, otherwise say -mcpu=v7 would be passed even when -m64.
+   CC1_SPEC above takes care of this instead.  */
+#undef OPTION_DEFAULT_SPECS
+#if DEFAULT_ARCH32_P
+#define OPTION_DEFAULT_SPECS \
+  {"cpu", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
+  {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
+  {"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" }
+#else
+#define OPTION_DEFAULT_SPECS \
+  {"cpu", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
+  {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
+  {"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" }
 #endif
 
 #undef ASM_CPU_SPEC
 #define ASM_CPU_SPEC "\
-%{mcpu=v9:-xarch=v8plus} \
-%{mcpu=ultrasparc:-xarch=v8plusa} \
-%{mcpu=ultrasparc3:-xarch=v8plusb} \
-%{mcpu=niagara:-xarch=v8plusb} \
-%{mcpu=niagara2:-xarch=v8plusb} \
+%{mcpu=v9:" DEF_ARCH32_SPEC("-xarch=v8plus") DEF_ARCH64_SPEC(AS_SPARC64_FLAG) "} \
+%{mcpu=ultrasparc:" DEF_ARCH32_SPEC("-xarch=v8plusa") DEF_ARCH64_SPEC(AS_SPARC64_FLAG "a") "} \
+%{mcpu=ultrasparc3:" DEF_ARCH32_SPEC("-xarch=v8plusb") DEF_ARCH64_SPEC(AS_SPARC64_FLAG "b") "} \
+%{mcpu=niagara:" DEF_ARCH32_SPEC("-xarch=v8plusb") DEF_ARCH64_SPEC(AS_SPARC64_FLAG "b") "} \
+%{mcpu=niagara2:" DEF_ARCH32_SPEC("-xarch=v8plusb") DEF_ARCH64_SPEC(AS_SPARC64_FLAG "b") "} \
+%{!mcpu=niagara2:%{!mcpu=niagara:%{!mcpu=ultrasparc3:%{!mcpu=ultrasparc:%{!mcpu=v9:%{mcpu*:" DEF_ARCH32_SPEC("-xarch=v8") DEF_ARCH64_SPEC(AS_SPARC64_FLAG) "}}}}}} \
 %{!mcpu*:%(asm_cpu_default)} \
 "
 
-#undef SUBTARGET_EXTRA_SPECS
-#define SUBTARGET_EXTRA_SPECS \
-  { "startfile_arch",	STARTFILE_ARCH_SPEC },	\
-  { "link_arch",	LINK_ARCH_SPEC }
+#undef ASM_CPU_DEFAULT_SPEC
+#define ASM_CPU_DEFAULT_SPEC \
+(DEFAULT_ARCH32_P ? "\
+%{m64:" ASM_CPU64_DEFAULT_SPEC "} \
+%{!m64:" ASM_CPU32_DEFAULT_SPEC "} \
+" : "\
+%{m32:" ASM_CPU32_DEFAULT_SPEC "} \
+%{!m32:" ASM_CPU64_DEFAULT_SPEC "} \
+")
 
-/* However it appears that Solaris 2.0 uses the same reg numbering as
-   the old BSD-style system did.  */
+#undef ASM_ARCH32_SPEC
+#define ASM_ARCH32_SPEC ""
+
+#undef ASM_ARCH64_SPEC
+#define ASM_ARCH64_SPEC ""
+
+#undef ASM_ARCH_DEFAULT_SPEC
+#define ASM_ARCH_DEFAULT_SPEC ""
+
+#undef ASM_ARCH_SPEC
+#define ASM_ARCH_SPEC ""
+
+#ifdef USE_GLD
+/* Since binutils 2.21, GNU ld supports new *_sol2 emulations to strictly
+   follow the Solaris 2 ABI.  Prefer them if present.  */
+#ifdef HAVE_LD_SOL2_EMULATION
+#define ARCH32_EMULATION "elf32_sparc_sol2"
+#define ARCH64_EMULATION "elf64_sparc_sol2"
+#else
+#define ARCH32_EMULATION "elf32_sparc"
+#define ARCH64_EMULATION "elf64_sparc"
+#endif
+#endif
+
+#define ARCH64_SUBDIR "sparcv9"
+
+#define SUBTARGET_CPU_EXTRA_SPECS
+
+
+
+/* Register the Solaris-specific #pragma directives.  */
+#define REGISTER_TARGET_PRAGMAS() solaris_register_pragmas ()
+
+#if defined(USE_GAS) && defined(HAVE_AS_TLS)
+/* Use GNU extensions to TLS support.  */
+#undef TARGET_SUN_TLS
+#undef TARGET_GNU_TLS
+#define TARGET_SUN_TLS 0
+#define TARGET_GNU_TLS 1
+#endif
+
+#undef  LOCAL_LABEL_PREFIX
+#define LOCAL_LABEL_PREFIX  "."
 
 /* The Solaris 2 assembler uses .skip, not .zero, so put this back.  */
 #undef ASM_OUTPUT_SKIP
 #define ASM_OUTPUT_SKIP(FILE,SIZE)  \
   fprintf (FILE, "\t.skip %u\n", (int)(SIZE))
 
-#undef  LOCAL_LABEL_PREFIX
-#define LOCAL_LABEL_PREFIX  "."
-
 /* This is how to store into the string LABEL
    the symbol_ref name of an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.
@@ -87,7 +265,7 @@
 
 /* The native TLS-enabled assembler requires the directive #tls_object
    to be put on objects in TLS sections (as of v7.1).  This is not
-   required by the GNU assembler but supported on SPARC.  */
+   required by GNU as but supported on SPARC.  */
 #undef  ASM_DECLARE_OBJECT_NAME
 #define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL)		\
   do								\
@@ -112,23 +290,47 @@
     }								\
   while (0)
 
-/* The Solaris assembler cannot grok .stabd directives.  */
-#undef NO_DBX_BNSYM_ENSYM
-#define NO_DBX_BNSYM_ENSYM 1
-
+/* Output a simple call for .init/.fini.  */
+#define ASM_OUTPUT_CALL(FILE, FN)				        \
+  do									\
+    {									\
+      fprintf (FILE, "\tcall\t");					\
+      targetm.asm_out.print_operand (FILE, XEXP (DECL_RTL (FN), 0), 0);	\
+      fprintf (FILE, "\n\tnop\n");					\
+    }									\
+  while (0)
 
-/* Select a format to encode pointers in exception handling data.  CODE
-   is 0 for data, 1 for code labels, 2 for function pointers.  GLOBAL is
-   true if the symbol may be affected by dynamic relocations.
+#ifndef USE_GAS
+/* This is how to output an assembler line that says to advance
+   the location counter to a multiple of 2**LOG bytes using the
+   NOP instruction as padding.  The filler pattern doesn't work
+   with GNU as. */
+#define ASM_OUTPUT_ALIGN_WITH_NOP(FILE,LOG)   \
+  if ((LOG) != 0)                             \
+    fprintf (FILE, "\t.align %d,0x1000000\n", (1<<(LOG)))
 
-   Some Solaris dynamic linkers don't handle unaligned section relative
-   relocs properly, so force them to be aligned.  */
-#ifndef HAVE_AS_SPARC_UA_PCREL
-#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL)		\
-  ((flag_pic || GLOBAL) ? DW_EH_PE_aligned : DW_EH_PE_absptr)
+/* Use Solaris ELF section syntax with Sun as.  */
+#undef TARGET_ASM_NAMED_SECTION
+#define TARGET_ASM_NAMED_SECTION sparc_solaris_elf_asm_named_section
+
+/* Emit COMDAT group signature symbols for Sun as.  */
+#undef TARGET_ASM_CODE_END
+#define TARGET_ASM_CODE_END solaris_code_end
+
+/* Sun as requires doublequoted section names on SPARC.  While GNU as
+   supports that, too, we prefer the standard variant.  */
+#undef SECTION_NAME_FORMAT
+#define SECTION_NAME_FORMAT	"\"%s\""
+#endif /* !USE_GAS */
+
+/* Undefine this so that attribute((init_priority)) works with GNU ld.  */
+#ifdef USE_GLD
+#undef CTORS_SECTION_ASM_OP
+#undef DTORS_SECTION_ASM_OP
 #endif
 
 
+
 /* Define for support of TFmode long double.
    SPARC ABI says that long double is 4 words.  */
 #define LONG_DOUBLE_TYPE_SIZE 128
@@ -147,52 +349,3 @@
 
 #undef SUN_INTEGER_MULTIPLY_64
 #define SUN_INTEGER_MULTIPLY_64 1
-
-/* Solaris allows 64 bit out and global registers in 32 bit mode.
-   sparc_override_options will disable V8+ if not generating V9 code.  */
-#undef TARGET_DEFAULT
-#define TARGET_DEFAULT (MASK_V8PLUS + MASK_APP_REGS + MASK_FPU \
-			+ MASK_LONG_DOUBLE_128)
-
-/* Solaris-specific #pragmas are implemented on top of attributes.  Hook in
-   the bits from config/sol2.c.  */
-#define SUBTARGET_INSERT_ATTRIBUTES solaris_insert_attributes
-#define SUBTARGET_ATTRIBUTE_TABLE SOLARIS_ATTRIBUTE_TABLE
-
-/* Register the Solaris-specific #pragma directives.  */
-#define REGISTER_TARGET_PRAGMAS() solaris_register_pragmas ()
-
-/* Output a simple call for .init/.fini.  */
-#define ASM_OUTPUT_CALL(FILE, FN)				        \
-  do									\
-    {									\
-      fprintf (FILE, "\tcall\t");					\
-      targetm.asm_out.print_operand (FILE, XEXP (DECL_RTL (FN), 0), 0);	\
-      fprintf (FILE, "\n\tnop\n");					\
-    }									\
-  while (0)
-
-/* This is how to output an assembler line that says to advance
-   the location counter to a multiple of 2**LOG bytes using the
-   NOP instruction as padding.  */
-#define ASM_OUTPUT_ALIGN_WITH_NOP(FILE,LOG)   \
-  if ((LOG) != 0)                             \
-    fprintf (FILE, "\t.align %d,0x1000000\n", (1<<(LOG)))
-
-/* Use Solaris ELF section syntax.  */
-#undef TARGET_ASM_NAMED_SECTION
-#define TARGET_ASM_NAMED_SECTION sparc_solaris_elf_asm_named_section
-
-/* Emit COMDAT group signature symbols for Sun as.  */
-#undef TARGET_ASM_CODE_END
-#define TARGET_ASM_CODE_END solaris_code_end
-
-/* Solaris/SPARC as requires doublequoted section names.  While gas
-   supports that, too, we prefer the standard variant.  */
-#ifndef USE_GAS
-#undef SECTION_NAME_FORMAT
-#define SECTION_NAME_FORMAT	"\"%s\""
-#endif
-
-/* Static stack checking is supported by means of probes.  */
-#define STACK_CHECK_STATIC_BUILTIN 1
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index fe28d55..c5f159a 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -460,7 +460,6 @@
 						 const_tree);
 static int sparc_arg_partial_bytes (cumulative_args_t,
 				    enum machine_mode, tree, bool);
-static void sparc_dwarf_handle_frame_unspec (const char *, rtx, int);
 static void sparc_output_dwarf_dtprel (FILE *, int, rtx) ATTRIBUTE_UNUSED;
 static void sparc_file_end (void);
 static bool sparc_frame_pointer_required (void);
@@ -611,9 +610,6 @@
 #undef TARGET_VECTORIZE_PREFERRED_SIMD_MODE
 #define TARGET_VECTORIZE_PREFERRED_SIMD_MODE sparc_preferred_simd_mode
 
-#undef TARGET_DWARF_HANDLE_FRAME_UNSPEC
-#define TARGET_DWARF_HANDLE_FRAME_UNSPEC sparc_dwarf_handle_frame_unspec
-
 #ifdef SUBTARGET_INSERT_ATTRIBUTES
 #undef TARGET_INSERT_ATTRIBUTES
 #define TARGET_INSERT_ATTRIBUTES SUBTARGET_INSERT_ATTRIBUTES
@@ -4153,7 +4149,7 @@
   if (regno == RETURN_ADDR_REGNUM && return_addr_reg_needed_p (leaf_function))
     return true;
 
-  /* PIC register (%l7) if needed.  */
+  /* GOT register (%l7) if needed.  */
   if (regno == PIC_OFFSET_TABLE_REGNUM && crtl->uses_pic_offset_table)
     return true;
 
@@ -4597,45 +4593,29 @@
 /* Generate a save_register_window insn.  */
 
 static rtx
-gen_save_register_window (rtx increment)
+emit_save_register_window (rtx increment)
 {
-  if (TARGET_ARCH64)
-    return gen_save_register_windowdi (increment);
-  else
-    return gen_save_register_windowsi (increment);
-}
+  rtx insn;
 
-/* Generate a create_flat_frame_1 insn.  */
+  insn = emit_insn (gen_save_register_window_1 (increment));
+  RTX_FRAME_RELATED_P (insn) = 1;
 
-static rtx
-gen_create_flat_frame_1 (rtx increment)
-{
-  if (TARGET_ARCH64)
-    return gen_create_flat_frame_1di (increment);
-  else
-    return gen_create_flat_frame_1si (increment);
-}
+  /* The incoming return address (%o7) is saved in %i7.  */
+  add_reg_note (insn, REG_CFA_REGISTER,
+		gen_rtx_SET (VOIDmode,
+			     gen_rtx_REG (Pmode, RETURN_ADDR_REGNUM),
+			     gen_rtx_REG (Pmode,
+					  INCOMING_RETURN_ADDR_REGNUM)));
 
-/* Generate a create_flat_frame_2 insn.  */
+  /* The window save event.  */
+  add_reg_note (insn, REG_CFA_WINDOW_SAVE, const0_rtx);
 
-static rtx
-gen_create_flat_frame_2 (rtx increment)
-{
-  if (TARGET_ARCH64)
-    return gen_create_flat_frame_2di (increment);
-  else
-    return gen_create_flat_frame_2si (increment);
-}
+  /* The CFA is %fp, the hard frame pointer.  */
+  add_reg_note (insn, REG_CFA_DEF_CFA,
+		plus_constant (hard_frame_pointer_rtx,
+			       INCOMING_FRAME_SP_OFFSET));
 
-/* Generate a create_flat_frame_3 insn.  */
-
-static rtx
-gen_create_flat_frame_3 (rtx increment)
-{
-  if (TARGET_ARCH64)
-    return gen_create_flat_frame_3di (increment);
-  else
-    return gen_create_flat_frame_3si (increment);
+  return insn;
 }
 
 /* Generate an increment for the stack pointer.  */
@@ -4671,7 +4651,6 @@
 {
   HOST_WIDE_INT size;
   rtx insn;
-  int i;
 
   /* Compute a snapshot of current_function_uses_only_leaf_regs.  Relying
      on the final value of the flag means deferring the prologue/epilogue
@@ -4710,8 +4689,10 @@
     ; /* do nothing.  */
   else if (sparc_leaf_function_p)
     {
+      rtx size_int_rtx = GEN_INT (-size);
+
       if (size <= 4096)
-	insn = emit_insn (gen_stack_pointer_inc (GEN_INT (-size)));
+	insn = emit_insn (gen_stack_pointer_inc (size_int_rtx));
       else if (size <= 8192)
 	{
 	  insn = emit_insn (gen_stack_pointer_inc (GEN_INT (-4096)));
@@ -4721,35 +4702,33 @@
 	}
       else
 	{
-	  rtx reg = gen_rtx_REG (Pmode, 1);
-	  emit_move_insn (reg, GEN_INT (-size));
-	  insn = emit_insn (gen_stack_pointer_inc (reg));
+	  rtx size_rtx = gen_rtx_REG (Pmode, 1);
+	  emit_move_insn (size_rtx, size_int_rtx);
+	  insn = emit_insn (gen_stack_pointer_inc (size_rtx));
 	  add_reg_note (insn, REG_FRAME_RELATED_EXPR,
-			gen_stack_pointer_inc (GEN_INT (-size)));
+			gen_stack_pointer_inc (size_int_rtx));
 	}
 
       RTX_FRAME_RELATED_P (insn) = 1;
     }
   else
     {
+      rtx size_int_rtx = GEN_INT (-size);
+
       if (size <= 4096)
-	insn = emit_insn (gen_save_register_window (GEN_INT (-size)));
+	emit_save_register_window (size_int_rtx);
       else if (size <= 8192)
 	{
-	  insn = emit_insn (gen_save_register_window (GEN_INT (-4096)));
+	  emit_save_register_window (GEN_INT (-4096));
 	  /* %sp is not the CFA register anymore.  */
 	  emit_insn (gen_stack_pointer_inc (GEN_INT (4096 - size)));
 	}
       else
 	{
-	  rtx reg = gen_rtx_REG (Pmode, 1);
-	  emit_move_insn (reg, GEN_INT (-size));
-	  insn = emit_insn (gen_save_register_window (reg));
+	  rtx size_rtx = gen_rtx_REG (Pmode, 1);
+	  emit_move_insn (size_rtx, size_int_rtx);
+	  emit_save_register_window (size_rtx);
 	}
-
-      RTX_FRAME_RELATED_P (insn) = 1;
-      for (i=0; i < XVECLEN (PATTERN (insn), 0); i++)
-        RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, i)) = 1;
     }
 
   if (sparc_leaf_function_p)
@@ -4786,7 +4765,6 @@
 {
   HOST_WIDE_INT size;
   rtx insn;
-  int i;
 
   sparc_leaf_function_p = optimize > 0 && current_function_is_leaf;
 
@@ -4804,84 +4782,19 @@
 
   if (size == 0)
     ; /* do nothing.  */
-  else if (frame_pointer_needed)
-    {
-      if (size <= 4096)
-	{
-	  if (return_addr_reg_needed_p (sparc_leaf_function_p))
-	    insn = emit_insn (gen_create_flat_frame_1 (GEN_INT (-size)));
-	  else
-	    insn = emit_insn (gen_create_flat_frame_2 (GEN_INT (-size)));
-	  RTX_FRAME_RELATED_P (insn) = 1;
-	  for (i=0; i < XVECLEN (PATTERN (insn), 0); i++)
-	    RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, i)) = 1;
-	}
-      else
-	{
-	  rtx reg = gen_rtx_REG (Pmode, 1), note;
-	  emit_move_insn (reg, GEN_INT (-size));
-	  if (return_addr_reg_needed_p (sparc_leaf_function_p))
-	    {
-	      insn = emit_insn (gen_create_flat_frame_1 (reg));
-	      note
-		= gen_rtx_PARALLEL (VOIDmode,
-				    gen_rtvec
-				    (3, copy_rtx
-					(XVECEXP (PATTERN (insn), 0, 0)),
-					gen_stack_pointer_inc
-					(GEN_INT (-size)),
-					copy_rtx
-					(XVECEXP (PATTERN (insn), 0, 2))));
-	    }
-	  else
-	    {
-	      insn = emit_insn (gen_create_flat_frame_2 (reg));
-	      note
-		= gen_rtx_PARALLEL (VOIDmode,
-				    gen_rtvec
-				    (2, copy_rtx
-					(XVECEXP (PATTERN (insn), 0, 0)),
-					gen_stack_pointer_inc
-					(GEN_INT (-size))));
-	    }
-
-	  RTX_FRAME_RELATED_P (insn) = 1;
-	  add_reg_note (insn, REG_FRAME_RELATED_EXPR, note);
-	  for (i=0; i < XVECLEN (note, 0); i++)
-	    RTX_FRAME_RELATED_P (XVECEXP (note, 0, i)) = 1;
-	}
-    }
-  else if (return_addr_reg_needed_p (sparc_leaf_function_p))
-    {
-      if (size <= 4096)
-	{
-	  insn = emit_insn (gen_create_flat_frame_3 (GEN_INT (-size)));
-	  RTX_FRAME_RELATED_P (insn) = 1;
-	  for (i=0; i < XVECLEN (PATTERN (insn), 0); i++)
-	    RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, i)) = 1;
-	}
-      else
-	{
-	  rtx reg = gen_rtx_REG (Pmode, 1), note;
-	  emit_move_insn (reg, GEN_INT (-size));
-	  insn = emit_insn (gen_create_flat_frame_3 (reg));
-	  note
-	    = gen_rtx_PARALLEL (VOIDmode,
-				gen_rtvec
-				(2, gen_stack_pointer_inc (GEN_INT (-size)),
-				    copy_rtx
-				    (XVECEXP (PATTERN (insn), 0, 1))));
-	  RTX_FRAME_RELATED_P (insn) = 1;
-	  add_reg_note (insn, REG_FRAME_RELATED_EXPR, note);
-	  for (i=0; i < XVECLEN (note, 0); i++)
-	    RTX_FRAME_RELATED_P (XVECEXP (note, 0, i)) = 1;
-	}
-    }
   else
     {
+      rtx size_int_rtx, size_rtx;
+
+      size_rtx = size_int_rtx = GEN_INT (-size);
+
+      /* We establish the frame (i.e. decrement the stack pointer) first, even
+	 if we use a frame pointer, because we cannot clobber any call-saved
+	 registers, including the frame pointer, if we haven't created a new
+	 register save area, for the sake of compatibility with the ABI.  */
       if (size <= 4096)
-	insn = emit_insn (gen_stack_pointer_inc (GEN_INT (-size)));
-      else if (size <= 8192)
+	insn = emit_insn (gen_stack_pointer_inc (size_int_rtx));
+      else if (size <= 8192 && !frame_pointer_needed)
 	{
 	  insn = emit_insn (gen_stack_pointer_inc (GEN_INT (-4096)));
 	  RTX_FRAME_RELATED_P (insn) = 1;
@@ -4889,18 +4802,47 @@
 	}
       else
 	{
-	  rtx reg = gen_rtx_REG (Pmode, 1);
-	  emit_move_insn (reg, GEN_INT (-size));
-	  insn = emit_insn (gen_stack_pointer_inc (reg));
-	  add_reg_note (insn, REG_FRAME_RELATED_EXPR,
-			gen_stack_pointer_inc (GEN_INT (-size)));
+	  size_rtx = gen_rtx_REG (Pmode, 1);
+	  emit_move_insn (size_rtx, size_int_rtx);
+	  insn = emit_insn (gen_stack_pointer_inc (size_rtx));
+	  add_reg_note (insn, REG_CFA_ADJUST_CFA,
+			gen_stack_pointer_inc (size_int_rtx));
+	}
+      RTX_FRAME_RELATED_P (insn) = 1;
+
+      /* Ensure nothing is scheduled until after the frame is established.  */
+      emit_insn (gen_blockage ());
+
+      if (frame_pointer_needed)
+	{
+	  insn = emit_insn (gen_rtx_SET (VOIDmode, hard_frame_pointer_rtx,
+					 gen_rtx_MINUS (Pmode,
+							stack_pointer_rtx,
+							size_rtx)));
+	  RTX_FRAME_RELATED_P (insn) = 1;
+
+	  add_reg_note (insn, REG_CFA_ADJUST_CFA,
+			gen_rtx_SET (VOIDmode, hard_frame_pointer_rtx,
+				     plus_constant (stack_pointer_rtx,
+						    size)));
 	}
 
-      RTX_FRAME_RELATED_P (insn) = 1;
-    }
+      if (return_addr_reg_needed_p (sparc_leaf_function_p))
+	{
+	  rtx o7 = gen_rtx_REG (Pmode, INCOMING_RETURN_ADDR_REGNUM);
+	  rtx i7 = gen_rtx_REG (Pmode, RETURN_ADDR_REGNUM);
 
-  /* Make sure nothing is scheduled until after the frame is established.  */
-  emit_insn (gen_blockage ());
+	  insn = emit_move_insn (i7, o7);
+	  RTX_FRAME_RELATED_P (insn) = 1;
+
+	  add_reg_note (insn, REG_CFA_REGISTER,
+			gen_rtx_SET (VOIDmode, i7, o7));
+
+	  /* Prevent this instruction from ever being considered dead,
+	     even if this function has no epilogue.  */
+	  emit_insn (gen_rtx_USE (VOIDmode, i7));
+	}
+    }
 
   if (frame_pointer_needed)
     {
@@ -10000,20 +9942,6 @@
   return 0;
 }
 
-/* Handle the TARGET_DWARF_HANDLE_FRAME_UNSPEC hook.
-
-   This is called from dwarf2out.c to emit call frame instructions
-   for frame-related insns containing UNSPECs and UNSPEC_VOLATILEs.  */
-
-static void
-sparc_dwarf_handle_frame_unspec (const char *label,
-				 rtx pattern ATTRIBUTE_UNUSED,
-				 int index ATTRIBUTE_UNUSED)
-{
-  gcc_assert (index == UNSPECV_SAVEW);
-  dwarf2out_window_save (label);
-}
-
 /* This is called from dwarf2out.c via TARGET_ASM_OUTPUT_DWARF_DTPREL.
    We need to emit DTP-relative relocations.  */
 
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md
index acf317d..2c8d306 100644
--- a/gcc/config/sparc/sparc.md
+++ b/gcc/config/sparc/sparc.md
@@ -6276,56 +6276,17 @@
   DONE;
 })
 
-;; The "save register window" insn is modelled as follows so that the DWARF-2
-;; backend automatically emits the required call frame debugging information
-;; while it is parsing it.  Therefore, the pattern should not be modified
-;; without first studying the impact of the changes on the debug info.
-;; [(set (%fp) (%sp))
-;;  (set (%sp) (unspec_volatile [(%sp) (-frame_size)] UNSPECV_SAVEW))
-;;  (set (%i7) (%o7))]
+;; The "save register window" insn is modelled as follows.  The dwarf2
+;; information is manually added in emit_save_register_window in sparc.c.
 
-(define_insn "save_register_window<P:mode>"
-  [(set (reg:P 30) (reg:P 14))
-   (set (reg:P 14) (unspec_volatile:P [(reg:P 14)
-				       (match_operand:P 0 "arith_operand" "rI")] UNSPECV_SAVEW))
-   (set (reg:P 31) (reg:P 15))]
+(define_insn "save_register_window_1"
+  [(unspec_volatile
+	[(match_operand 0 "arith_operand" "rI")]
+	UNSPECV_SAVEW)]
   "!TARGET_FLAT"
   "save\t%%sp, %0, %%sp"
   [(set_attr "type" "savew")])
 
-;; Likewise for the "create flat frame" insns.  We need to use special insns
-;; because %fp cannot be clobbered until after the frame is established (so
-;; that it contains the live register window save area) and %i7 changed with
-;; a simple move as it is a fixed register and the move would be eliminated.
-
-(define_insn "create_flat_frame_1<P:mode>"
-  [(set (reg:P 30) (reg:P 14))
-   (set (reg:P 14) (plus:P (reg:P 14)
-			   (match_operand:P 0 "arith_operand" "rI")))
-   (set (reg:P 31) (reg:P 15))]
-  "TARGET_FLAT"
-  "add\t%%sp, %0, %%sp\n\tsub\t%%sp, %0, %%fp\n\tmov\t%%o7, %%i7"
-  [(set_attr "type" "multi")
-   (set_attr "length" "3")])
-
-(define_insn "create_flat_frame_2<P:mode>"
-  [(set (reg:P 30) (reg:P 14))
-   (set (reg:P 14) (plus:P (reg:P 14)
-		           (match_operand:P 0 "arith_operand" "rI")))]
-  "TARGET_FLAT"
-  "add\t%%sp, %0, %%sp\n\tsub\t%%sp, %0, %%fp"
-  [(set_attr "type" "multi")
-   (set_attr "length" "2")])
-
-(define_insn "create_flat_frame_3<P:mode>"
-  [(set (reg:P 14) (plus:P (reg:P 14)
-		           (match_operand:P 0 "arith_operand" "rI")))
-   (set (reg:P 31) (reg:P 15))]
-  "TARGET_FLAT"
-  "add\t%%sp, %0, %%sp\n\tmov\t%%o7, %%i7"
-  [(set_attr "type" "multi")
-   (set_attr "length" "2")])
-
 (define_expand "epilogue"
   [(return)]
   ""
diff --git a/gcc/config/spu/spu.c b/gcc/config/spu/spu.c
index 0da736c..63985e1 100644
--- a/gcc/config/spu/spu.c
+++ b/gcc/config/spu/spu.c
@@ -149,7 +149,6 @@
 
 /*  Prototypes and external defs.  */
 static void spu_option_override (void);
-static void spu_option_default_params (void);
 static void spu_init_builtins (void);
 static tree spu_builtin_decl (unsigned, bool);
 static bool spu_scalar_mode_supported_p (enum machine_mode mode);
@@ -487,9 +486,6 @@
 #undef TARGET_OPTION_OVERRIDE
 #define TARGET_OPTION_OVERRIDE spu_option_override
 
-#undef TARGET_OPTION_DEFAULT_PARAMS
-#define TARGET_OPTION_DEFAULT_PARAMS spu_option_default_params
-
 #undef TARGET_CONDITIONAL_REGISTER_USAGE
 #define TARGET_CONDITIONAL_REGISTER_USAGE spu_conditional_register_usage
 
@@ -508,15 +504,6 @@
 
 struct gcc_target targetm = TARGET_INITIALIZER;
 
-/* Implement TARGET_OPTION_DEFAULT_PARAMS.  */
-static void
-spu_option_default_params (void)
-{
-  /* Override some of the default param values.  With so many registers
-     larger values are better for these params.  */
-  set_default_param_value (PARAM_MAX_PENDING_LIST_LENGTH, 128);
-}
-
 /* Implement TARGET_OPTION_OVERRIDE.  */
 static void
 spu_option_override (void)
diff --git a/gcc/config/usegld.h b/gcc/config/usegld.h
new file mode 100644
index 0000000..0667732
--- /dev/null
+++ b/gcc/config/usegld.h
@@ -0,0 +1 @@
+#define USE_GLD 1
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index a48f9c5..6629549 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,92 @@
+2011-06-26  Jason Merrill  <jason@redhat.com>
+
+	PR c++/49528
+	* semantics.c (potential_constant_expression_1): Check
+	for non-literality rather than cleanup.
+	(cxx_eval_constant_expression): Likewise.
+
+	PR c++/49528
+	* semantics.c (potential_constant_expression_1): A TARGET_EXPR
+	with a cleanup isn't constant.
+	(cxx_eval_constant_expression): Likewise.
+	* init.c (expand_default_init): Use maybe_constant_init.
+
+2011-06-24  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/46400
+	* cp-tree.h (union lang_tree_node): Use TYPE_NEXT_VARIANT
+	instead of TYPE_CHAIN for chain_next for types.
+
+2011-06-23  Gabriel Charette  <gchare@google.com>
+
+	* name-lookup.h (cp_binding_level): Removed unused
+	member names_size. Update all users.
+
+2011-06-23  Jason Merrill  <jason@redhat.com>
+
+	* typeck2.c (build_functional_cast): Strip cv-quals for value init.
+	* init.c (build_zero_init_1): Not here.
+
+	PR c++/35255
+	* pt.c (resolve_overloaded_unification): Fix DR 115 handling.
+
+2011-06-23  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	PR c++/44625
+	* decl2.c (build_anon_union_vars): Early return error_mark_node
+	for a nested anonymous struct.
+
+2011-06-23  Jason Merrill  <jason@redhat.com>
+
+	PR c++/49507
+	* decl2.c (mark_used): Don't call synthesize_method for
+	functions defaulted outside the class.
+
+	* optimize.c (maybe_clone_body): Set linkage flags before
+	cgraph_same_body_alias.
+
+	PR c++/49440
+	* class.c (set_linkage_according_to_type): Hand off to
+	determine_visibility.
+
+	PR c++/49395
+	* init.c (build_zero_init_1): Strip cv-quals from scalar types.
+
+	PR c++/36435
+	* pt.c (most_specialized_instantiation): Do check return types.
+
+2011-06-22  Jason Merrill  <jason@redhat.com>
+
+	PR c++/49260
+	* call.c (build_call_a): Set cp_function_chain->can_throw here.
+	(build_cxx_call): Not here.
+
+2011-06-21  Jason Merrill  <jason@redhat.com>
+
+	PR c++/49172
+	* decl.c (cp_finish_decl): Adjust init_const_expr_p for refs.
+	(grokdeclarator): constexpr doesn't apply const for refs.
+	* parser.c (cp_parser_initializer_clause): Don't call
+	maybe_constant_value here.
+	* call.c (initialize_reference): Handle constexpr.
+
+	PR c++/49482
+	* semantics.c (maybe_add_lambda_conv_op): Call mark_exp_read for
+	static fn parameters.
+
+	* call.c (add_builtin_candidates): Use cv_unqualified rather than
+	TYPE_MAIN_VARIANT.
+	* pt.c (tsubst_arg_types): Likewise.
+	* except.c (build_throw): Use cv_unqualified.
+
+	PR c++/49418
+	* call.c (cxx_type_promotes_to): Don't strip cv-quals.
+	* semantics.c (lambda_return_type): Strip them here.
+
+2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
+
+	* semantics.c: Add sync_ or SYNC__ to builtin names.
+
 2011-06-20  Jason Merrill  <jason@redhat.com>
 
 	PR c++/49216
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index caf95b0..cfaef7d8 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -352,6 +352,9 @@
   nothrow = ((decl && TREE_NOTHROW (decl))
 	     || TYPE_NOTHROW_P (TREE_TYPE (TREE_TYPE (function))));
 
+  if (!nothrow && cfun && cp_function_chain)
+    cp_function_chain->can_throw = 1;
+
   if (decl && TREE_THIS_VOLATILE (decl) && cfun && cp_function_chain)
     current_function_returns_abnormally = 1;
 
@@ -2640,8 +2643,6 @@
     return build_pointer_type (TREE_TYPE (type));
   if (TREE_CODE (type) == FUNCTION_TYPE)
     return build_pointer_type (type);
-  if (!MAYBE_CLASS_TYPE_P (type))
-    type = cv_unqualified (type);
   return type;
 }
 
@@ -2775,7 +2776,7 @@
 	      type = non_reference (type);
 	      if (i != 0 || ! ref1)
 		{
-		  type = TYPE_MAIN_VARIANT (type_decays_to (type));
+		  type = cv_unqualified (type_decays_to (type));
 		  if (enum_p && TREE_CODE (type) == ENUMERAL_TYPE)
 		    VEC_safe_push (tree, gc, types[i], type);
 		  if (INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P (type))
@@ -2794,7 +2795,7 @@
 	  type = non_reference (argtypes[i]);
 	  if (i != 0 || ! ref1)
 	    {
-	      type = TYPE_MAIN_VARIANT (type_decays_to (type));
+	      type = cv_unqualified (type_decays_to (type));
 	      if (enum_p && UNSCOPED_ENUM_P (type))
 		VEC_safe_push (tree, gc, types[i], type);
 	      if (INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P (type))
@@ -6712,11 +6713,6 @@
 
   /* If this call might throw an exception, note that fact.  */
   fndecl = get_callee_fndecl (fn);
-  if ((!fndecl || !TREE_NOTHROW (fndecl))
-      && at_function_scope_p ()
-      && cfun
-      && cp_function_chain)
-    cp_function_chain->can_throw = 1;
 
   /* Check that arguments to builtin functions match the expectations.  */
   if (fndecl
@@ -8631,6 +8627,8 @@
       tree var;
       tree base_conv_type;
 
+      gcc_assert (complain == tf_warning_or_error);
+
       /* Skip over the REF_BIND.  */
       conv = conv->u.next;
       /* If the next conversion is a BASE_CONV, skip that too -- but
@@ -8648,7 +8646,7 @@
 				/*inner=*/-1,
 				/*issue_conversion_warnings=*/true,
 				/*c_cast_p=*/false,
-				tf_warning_or_error);
+				complain);
       if (error_operand_p (expr))
 	expr = error_mark_node;
       else
@@ -8669,18 +8667,24 @@
 	    }
 	  else
 	    /* Take the address of EXPR.  */
-	    expr = cp_build_addr_expr (expr, tf_warning_or_error);
+	    expr = cp_build_addr_expr (expr, complain);
 	  /* If a BASE_CONV was required, perform it now.  */
 	  if (base_conv_type)
 	    expr = (perform_implicit_conversion
 		    (build_pointer_type (base_conv_type), expr,
-		     tf_warning_or_error));
+		     complain));
 	  expr = build_nop (type, expr);
+	  if (DECL_DECLARED_CONSTEXPR_P (decl))
+	    {
+	      expr = cxx_constant_value (expr);
+	      DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (decl)
+		= reduced_constant_expression_p (expr);
+	    }
 	}
     }
   else
     /* Perform the conversion.  */
-    expr = convert_like (conv, expr, tf_warning_or_error);
+    expr = convert_like (conv, expr, complain);
 
   /* Free all the conversions we allocated.  */
   obstack_free (&conversion_obstack, p);
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 09444fb..9e387a6 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -677,21 +677,10 @@
    the abstract.  */
 
 void
-set_linkage_according_to_type (tree type, tree decl)
+set_linkage_according_to_type (tree type ATTRIBUTE_UNUSED, tree decl)
 {
-  /* If TYPE involves a local class in a function with internal
-     linkage, then DECL should have internal linkage too.  Other local
-     classes have no linkage -- but if their containing functions
-     have external linkage, it makes sense for DECL to have external
-     linkage too.  That will allow template definitions to be merged,
-     for example.  */
-  if (no_linkage_check (type, /*relaxed_p=*/true))
-    {
-      TREE_PUBLIC (decl) = 0;
-      DECL_INTERFACE_KNOWN (decl) = 1;
-    }
-  else
-    TREE_PUBLIC (decl) = 1;
+  TREE_PUBLIC (decl) = 1;
+  determine_visibility (decl);
 }
 
 /* Create a VAR_DECL for a primary or secondary vtable for CLASS_TYPE.
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 904e44c..872ff6f 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -729,7 +729,7 @@
 
 /* The resulting tree type.  */
 union GTY((desc ("cp_tree_node_structure (&%h)"),
-       chain_next ("CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_COMMON) ? ((union lang_tree_node *) TREE_CHAIN (&%h.generic)) : NULL"))) lang_tree_node {
+       chain_next ("CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_TYPE_COMMON) ? ((union lang_tree_node *) TYPE_NEXT_VARIANT (&%h.generic)) : CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_COMMON) ? ((union lang_tree_node *) TREE_CHAIN (&%h.generic)) : NULL"))) lang_tree_node {
   union tree_node GTY ((tag ("TS_CP_GENERIC"),
 			desc ("tree_node_structure (&%h)"))) generic;
   struct template_parm_index_s GTY ((tag ("TS_CP_TPI"))) tpi;
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 263ab3f..b8435a6 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -5987,6 +5987,11 @@
   if (init && TREE_CODE (decl) == VAR_DECL)
     {
       DECL_NONTRIVIALLY_INITIALIZED_P (decl) = 1;
+      /* If DECL is a reference, then we want to know whether init is a
+	 reference constant; init_const_expr_p as passed tells us whether
+	 it's an rvalue constant.  */
+      if (TREE_CODE (type) == REFERENCE_TYPE)
+	init_const_expr_p = potential_constant_expression (init);
       if (init_const_expr_p)
 	{
 	  /* Set these flags now for templates.  We'll update the flags in
@@ -9333,8 +9338,11 @@
         error ("both %<const%> and %<constexpr%> cannot be used here");
       if (type_quals & TYPE_QUAL_VOLATILE)
         error ("both %<volatile%> and %<constexpr%> cannot be used here");
-      type_quals |= TYPE_QUAL_CONST;
-      type = cp_build_qualified_type (type, type_quals);
+      if (TREE_CODE (type) != REFERENCE_TYPE)
+	{
+	  type_quals |= TYPE_QUAL_CONST;
+	  type = cp_build_qualified_type (type, type_quals);
+	}
     }
 
   if (unqualified_id && TREE_CODE (unqualified_id) == TEMPLATE_ID_EXPR
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index d2f075d..8cd51c2 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -1327,7 +1327,10 @@
   /* Rather than write the code to handle the non-union case,
      just give an error.  */
   if (TREE_CODE (type) != UNION_TYPE)
-    error ("anonymous struct not inside named type");
+    {
+      error ("anonymous struct not inside named type");
+      return error_mark_node;
+    }
 
   for (field = TYPE_FIELDS (type);
        field != NULL_TREE;
@@ -4297,6 +4300,9 @@
   if (TREE_CODE (decl) == FUNCTION_DECL
       && DECL_NONSTATIC_MEMBER_FUNCTION_P (decl)
       && DECL_DEFAULTED_FN (decl)
+      /* A function defaulted outside the class is synthesized either by
+	 cp_finish_decl or instantiate_decl.  */
+      && !DECL_DEFAULTED_OUTSIDE_CLASS_P (decl)
       && ! DECL_INITIAL (decl))
     {
       /* Remember the current location for a function we will end up
diff --git a/gcc/cp/except.c b/gcc/cp/except.c
index 3399652..f8c8e47 100644
--- a/gcc/cp/except.c
+++ b/gcc/cp/except.c
@@ -722,7 +722,7 @@
 	 respectively.  */
       temp_type = is_bitfield_expr_with_lowered_type (exp);
       if (!temp_type)
-	temp_type = type_decays_to (TREE_TYPE (exp));
+	temp_type = cv_unqualified (type_decays_to (TREE_TYPE (exp)));
 
       /* OK, this is kind of wacky.  The standard says that we call
 	 terminate when the exception handling mechanism, after
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index 3c347a4..3ceed90 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -1514,7 +1514,7 @@
       tree fn = get_callee_fndecl (rval);
       if (fn && DECL_DECLARED_CONSTEXPR_P (fn))
 	{
-	  tree e = maybe_constant_value (rval);
+	  tree e = maybe_constant_init (rval);
 	  if (TREE_CONSTANT (e))
 	    rval = build2 (INIT_EXPR, type, exp, e);
 	}
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
index 953edd5..8bf5f5f 100644
--- a/gcc/cp/name-lookup.c
+++ b/gcc/cp/name-lookup.c
@@ -541,7 +541,6 @@
 	 necessary.  */
       TREE_CHAIN (decl) = b->names;
       b->names = decl;
-      b->names_size++;
 
       /* If appropriate, add decl to separate list of statics.  We
 	 include extern variables because they might turn out to be
diff --git a/gcc/cp/name-lookup.h b/gcc/cp/name-lookup.h
index 009b5d9..5f266eb 100644
--- a/gcc/cp/name-lookup.h
+++ b/gcc/cp/name-lookup.h
@@ -191,9 +191,6 @@
        are wrapped in TREE_LISTs; the TREE_VALUE is the OVERLOAD.  */
     tree names;
 
-    /* Count of elements in names chain.  */
-    size_t names_size;
-
     /* A chain of NAMESPACE_DECL nodes.  */
     tree namespaces;
 
diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c
index 87302dc..b9e3551 100644
--- a/gcc/cp/optimize.c
+++ b/gcc/cp/optimize.c
@@ -310,8 +310,11 @@
 	      || (HAVE_COMDAT_GROUP
 		  && DECL_WEAK (fns[0])))
 	  && (flag_syntax_only
-	      || cgraph_same_body_alias (cgraph_get_node (fns[0]), clone,
-					 fns[0])))
+	      /* Set linkage flags appropriately before
+		 cgraph_create_function_alias looks at them.  */
+	      || (expand_or_defer_fn_1 (clone)
+		  && cgraph_same_body_alias (cgraph_get_node (fns[0]),
+					     clone, fns[0]))))
 	{
 	  alias = true;
 	  if (DECL_ONE_ONLY (fns[0]))
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 856a8a7..f1b7976 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -16532,16 +16532,6 @@
 	= cp_parser_constant_expression (parser,
 					/*allow_non_constant_p=*/true,
 					non_constant_p);
-      if (!*non_constant_p)
-	{
-	  /* We only want to fold if this is really a constant
-	     expression.  FIXME Actually, we don't want to fold here, but in
-	     cp_finish_decl.  */
-	  tree folded = fold_non_dependent_expr (initializer);
-	  folded = maybe_constant_value (folded);
-	  if (TREE_CONSTANT (folded))
-	    initializer = folded;
-	}
     }
   else
     initializer = cp_parser_braced_list (parser, non_constant_p);
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 4d2caa8..b3dd85f 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -10246,7 +10246,7 @@
     
     /* Do array-to-pointer, function-to-pointer conversion, and ignore
        top-level qualifiers as required.  */
-    type = TYPE_MAIN_VARIANT (type_decays_to (type));
+    type = cv_unqualified (type_decays_to (type));
 
     /* We do not substitute into default arguments here.  The standard
        mandates that they be instantiated only when needed, which is
@@ -14524,6 +14524,7 @@
 	 the affected templates before we try to unify, in case the
 	 explicit args will completely resolve the templates in question.  */
 
+      int ok = 0;
       tree expl_subargs = TREE_OPERAND (arg, 1);
       arg = TREE_OPERAND (arg, 0);
 
@@ -14538,7 +14539,7 @@
 	  ++processing_template_decl;
 	  subargs = get_bindings (fn, DECL_TEMPLATE_RESULT (fn),
 				  expl_subargs, /*check_ret=*/false);
-	  if (subargs)
+	  if (subargs && !any_dependent_template_arguments_p (subargs))
 	    {
 	      elem = tsubst (TREE_TYPE (fn), subargs, tf_none, NULL_TREE);
 	      if (try_one_overload (tparms, targs, tempargs, parm,
@@ -14549,8 +14550,16 @@
 		  ++good;
 		}
 	    }
+	  else if (subargs)
+	    ++ok;
 	  --processing_template_decl;
 	}
+      /* If no templates (or more than one) are fully resolved by the
+	 explicit arguments, this template-id is a non-deduced context; it
+	 could still be OK if we deduce all template arguments for the
+	 enclosing call through other arguments.  */
+      if (good != 1)
+	good = ok;
     }
   else if (TREE_CODE (arg) != OVERLOAD
 	   && TREE_CODE (arg) != FUNCTION_DECL)
@@ -16610,12 +16619,12 @@
 
       if (get_bindings (TREE_VALUE (champ),
 			DECL_TEMPLATE_RESULT (TREE_VALUE (fn)),
-			NULL_TREE, /*check_ret=*/false))
+			NULL_TREE, /*check_ret=*/true))
 	fate--;
 
       if (get_bindings (TREE_VALUE (fn),
 			DECL_TEMPLATE_RESULT (TREE_VALUE (champ)),
-			NULL_TREE, /*check_ret=*/false))
+			NULL_TREE, /*check_ret=*/true))
 	fate++;
 
       if (fate == -1)
@@ -16637,10 +16646,10 @@
     for (fn = templates; fn != champ; fn = TREE_CHAIN (fn))
       if (get_bindings (TREE_VALUE (champ),
 			DECL_TEMPLATE_RESULT (TREE_VALUE (fn)),
-			NULL_TREE, /*check_ret=*/false)
+			NULL_TREE, /*check_ret=*/true)
 	  || !get_bindings (TREE_VALUE (fn),
 			    DECL_TEMPLATE_RESULT (TREE_VALUE (champ)),
-			    NULL_TREE, /*check_ret=*/false))
+			    NULL_TREE, /*check_ret=*/true))
 	{
 	  champ = NULL_TREE;
 	  break;
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index cfe3959..d1af0c6 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -4722,7 +4722,7 @@
 void
 finish_omp_flush (void)
 {
-  tree fn = built_in_decls[BUILT_IN_SYNCHRONIZE];
+  tree fn = built_in_decls[BUILT_IN_SYNC_SYNCHRONIZE];
   VEC(tree,gc) *vec = make_tree_vector ();
   tree stmt = finish_call_expr (fn, &vec, false, false, tf_warning_or_error);
   release_tree_vector (vec);
@@ -6357,7 +6357,7 @@
     }
   if (TREE_CODE (TREE_TYPE (whole)) == UNION_TYPE)
     {
-      /* FIXME Mike Miller wants this to be OK.  */
+      /* DR 1188 says we don't have to deal with this.  */
       if (!allow_non_constant)
 	error ("accessing %qD member instead of initialized %qD member in "
 	       "constant expression", part, CONSTRUCTOR_ELT (whole, 0)->index);
@@ -6881,7 +6881,7 @@
 	{
 	  gcc_assert (!same_type_ignoring_top_level_qualifiers_p
 		      (TREE_TYPE (TREE_TYPE (sub)), TREE_TYPE (t)));
-	  /* FIXME Mike Miller wants this to be OK.  */
+	  /* DR 1188 says we don't have to deal with this.  */
 	  if (!allow_non_constant)
 	    error ("accessing value of %qE through a %qT glvalue in a "
 		   "constant expression", build_fold_indirect_ref (sub),
@@ -7020,6 +7020,15 @@
       break;
 
     case TARGET_EXPR:
+      if (!literal_type_p (TREE_TYPE (t)))
+	{
+	  if (!allow_non_constant)
+	    error ("temporary of non-literal type %qT in a "
+		   "constant expression", TREE_TYPE (t));
+	  *non_constant_p = true;
+	  break;
+	}
+      /* else fall through.  */
     case INIT_EXPR:
       /* Pass false for 'addr' because these codes indicate
 	 initialization of a temporary.  */
@@ -7840,8 +7849,15 @@
       return potential_constant_expression_1 (TREE_OPERAND (t, 1),
 					      want_rval, flags);
 
-    case INIT_EXPR:
     case TARGET_EXPR:
+      if (!literal_type_p (TREE_TYPE (t)))
+	{
+	  if (flags & tf_error)
+	    error ("temporary of non-literal type %qT in a "
+		   "constant expression", TREE_TYPE (t));
+	  return false;
+	}
+    case INIT_EXPR:
       return potential_constant_expression_1 (TREE_OPERAND (t, 1),
 					      rval, flags);
 
@@ -8177,7 +8193,7 @@
       SET_TYPE_STRUCTURAL_EQUALITY (type);
     }
   else
-    type = type_decays_to (unlowered_expr_type (expr));
+    type = cv_unqualified (type_decays_to (unlowered_expr_type (expr)));
   return type;
 }
 
@@ -8780,7 +8796,10 @@
   argvec = make_tree_vector ();
   VEC_quick_push (tree, argvec, arg);
   for (arg = DECL_ARGUMENTS (statfn); arg; arg = DECL_CHAIN (arg))
-    VEC_safe_push (tree, gc, argvec, arg);
+    {
+      mark_exp_read (arg);
+      VEC_safe_push (tree, gc, argvec, arg);
+    }
   call = build_call_a (callop, VEC_length (tree, argvec),
 		       VEC_address (tree, argvec));
   CALL_FROM_THUNK_P (call) = 1;
diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index ff2949c..8bb938e 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -1641,7 +1641,7 @@
 	{
 	  if (VOID_TYPE_P (type))
 	    return void_zero_node;
-	  return build_value_init (type, complain);
+	  return build_value_init (cv_unqualified (type), complain);
 	}
 
       /* This must build a C cast.  */
diff --git a/gcc/cselib.c b/gcc/cselib.c
index e0697ec..e575aff 100644
--- a/gcc/cselib.c
+++ b/gcc/cselib.c
@@ -812,6 +812,10 @@
       return DEBUG_IMPLICIT_PTR_DECL (x)
 	     == DEBUG_IMPLICIT_PTR_DECL (y);
 
+    case DEBUG_PARAMETER_REF:
+      return DEBUG_PARAMETER_REF_DECL (x)
+	     == DEBUG_PARAMETER_REF_DECL (y);
+
     case ENTRY_VALUE:
       /* ENTRY_VALUEs are function invariant, it is thus undesirable to
 	 use rtx_equal_for_cselib_1 to compare the operands.  */
@@ -963,6 +967,11 @@
 	      + DECL_UID (DEBUG_IMPLICIT_PTR_DECL (x));
       return hash ? hash : (unsigned int) DEBUG_IMPLICIT_PTR;
 
+    case DEBUG_PARAMETER_REF:
+      hash += ((unsigned) DEBUG_PARAMETER_REF << 7)
+	      + DECL_UID (DEBUG_PARAMETER_REF_DECL (x));
+      return hash ? hash : (unsigned int) DEBUG_PARAMETER_REF;
+
     case ENTRY_VALUE:
       /* ENTRY_VALUEs are function invariant, thus try to avoid
 	 recursing on argument if ENTRY_VALUE is one of the
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 06124ab..a9e93a2 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -7828,6 +7828,12 @@
 significant bit position.  If @var{x} is 0, the result is undefined.
 @end deftypefn
 
+@deftypefn {Built-in Function} int __builtin_clrsb (int x)
+Returns the number of leading redundant sign bits in @var{x}, i.e. the
+number of bits following the most significant bit which are identical
+to it.  There are no special cases for 0 or other values. 
+@end deftypefn
+
 @deftypefn {Built-in Function} int __builtin_popcount (unsigned int x)
 Returns the number of 1-bits in @var{x}.
 @end deftypefn
@@ -7852,6 +7858,11 @@
 @code{unsigned long}.
 @end deftypefn
 
+@deftypefn {Built-in Function} int __builtin_clrsbl (long)
+Similar to @code{__builtin_clrsb}, except the argument type is
+@code{long}.
+@end deftypefn
+
 @deftypefn {Built-in Function} int __builtin_popcountl (unsigned long)
 Similar to @code{__builtin_popcount}, except the argument type is
 @code{unsigned long}.
@@ -7877,6 +7888,11 @@
 @code{unsigned long long}.
 @end deftypefn
 
+@deftypefn {Built-in Function} int __builtin_clrsbll (long long)
+Similar to @code{__builtin_clrsb}, except the argument type is
+@code{long long}.
+@end deftypefn
+
 @deftypefn {Built-in Function} int __builtin_popcountll (unsigned long long)
 Similar to @code{__builtin_popcount}, except the argument type is
 @code{unsigned long long}.
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 7ebcd92..a4a1b04 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -1016,6 +1016,12 @@
 workable alternative.  This requires gas and gdb, as the normal SVR4
 tools can not generate or interpret stabs.
 
+@item --with-tls=@var{dialect}
+Specify the default TLS dialect, for systems were there is a choice.
+For ARM targets, possible values for @var{dialect} are @code{gnu} or
+@code{gnu2}, which select between the original GNU dialect and the GNU TLS
+descriptor-based dialect.
+
 @item --disable-multilib
 Specify that multiple target
 libraries to support different target variants, calling
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index ee1f2ab..1b1306c 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -477,7 +477,7 @@
 -mthumb  -marm @gol
 -mtpcs-frame  -mtpcs-leaf-frame @gol
 -mcaller-super-interworking  -mcallee-super-interworking @gol
--mtp=@var{name} @gol
+-mtp=@var{name} -mtls-dialect=@var{dialect} @gol
 -mword-relocations @gol
 -mfix-cortex-m3-ldrd}
 
@@ -10471,6 +10471,18 @@
 best available method for the selected processor.  The default setting is
 @option{auto}.
 
+@item -mtls-dialect=@var{dialect}
+@opindex mtls-dialect
+Specify the dialect to use for accessing thread local storage.  Two
+dialects are supported --- @option{gnu} and @option{gnu2}.  The
+@option{gnu} dialect selects the original GNU scheme for supporting
+local and global dynamic TLS models.  The @option{gnu2} dialect
+selects the GNU descriptor scheme, which provides better performance
+for shared libraries.  The GNU descriptor scheme is compatible with
+the original scheme, but does require new assembler, linker and
+library support.  Initial and local exec TLS models are unaffected by
+this option and always use the original scheme.
+
 @item -mword-relocations
 @opindex mword-relocations
 Only generate absolute relocations on word sized values (i.e. R_ARM_ABS32).
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi
index 0023405..abe51f8 100644
--- a/gcc/doc/md.texi
+++ b/gcc/doc/md.texi
@@ -1773,6 +1773,9 @@
 
 @item Q
 A memory address based on Y or Z pointer with displacement.
+
+@item C04
+Constant integer 4
 @end table
 
 @item Hewlett-Packard PA-RISC---@file{config/pa/pa.h}
@@ -6745,6 +6748,14 @@
 @end smallexample
 
 @var{name} is a string specifying the name of the attribute being defined.
+Some attributes are used in a special way by the rest of the compiler. The
+@code{enabled} attribute can be used to conditionally enable or disable
+insn alternatives (@pxref{Disable Insn Alternatives}). The @code{predicable}
+attribute, together with a suitable @code{define_cond_exec}
+(@pxref{Conditional Execution}), can be used to automatically generate
+conditional variants of instruction patterns. The compiler internally uses
+the names @code{ce_enabled} and @code{nonce_enabled}, so they should not be
+used elsewhere as alternative names.
 
 @var{list-of-values} is either a string that specifies a comma-separated
 list of values that can be assigned to the attribute, or a null string to
@@ -7954,11 +7965,14 @@
 
 When @code{define_cond_exec} is used, an implicit reference to
 the @code{predicable} instruction attribute is made.
-@xref{Insn Attributes}.  This attribute must be boolean (i.e.@: have
-exactly two elements in its @var{list-of-values}).  Further, it must
-not be used with complex expressions.  That is, the default and all
-uses in the insns must be a simple constant, not dependent on the
-alternative or anything else.
+@xref{Insn Attributes}.  This attribute must be a boolean (i.e.@: have
+exactly two elements in its @var{list-of-values}), with the possible
+values being @code{no} and @code{yes}.  The default and all uses in
+the insns must be a simple constant, not a complex expressions.  It
+may, however, depend on the alternative, by using a comma-separated
+list of values.  If that is the case, the port should also define an
+@code{enabled} attribute (@pxref{Disable Insn Alternatives}), which
+should also allow only @code{no} and @code{yes} as its values.
 
 For each @code{define_insn} for which the @code{predicable}
 attribute is true, a new @code{define_insn} pattern will be
diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi
index 6995a29..ea30e38 100644
--- a/gcc/doc/rtl.texi
+++ b/gcc/doc/rtl.texi
@@ -2400,6 +2400,14 @@
 depending on the target machine, various mode combinations may be
 valid.
 
+@findex clrsb
+@item (clrsb:@var{m} @var{x})
+Represents the number of redundant leading sign bits in @var{x},
+represented as an integer of mode @var{m}, starting at the most
+significant bit position.  This is one less than the number of leading
+sign bits (either 0 or 1), with no special cases.  The mode of @var{x}
+will usually be an integer mode and may differ from @var{m}.
+
 @findex clz
 @item (clz:@var{m} @var{x})
 Represents the number of leading 0-bits in @var{x}, represented as an
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index fec5d55..341628b 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -762,17 +762,10 @@
 Set target-dependent initial values of fields in @var{opts}.
 @end deftypefn
 
-@deftypefn {Target Hook} void TARGET_OPTION_DEFAULT_PARAMS (void)
+@deftypefn {Common Target Hook} void TARGET_OPTION_DEFAULT_PARAMS (void)
 Set target-dependent default values for @option{--param} settings, using calls to @code{set_default_param_value}.
 @end deftypefn
 
-@deftypefn {Target Hook} void TARGET_HELP (void)
-This hook is called in response to the user invoking
-@option{--target-help} on the command line.  It gives the target a
-chance to display extra information on the target specific command
-line options found in its @file{.opt} file.
-@end deftypefn
-
 @defmac SWITCHABLE_TARGET
 Some targets need to switch between substantially different subtargets
 during compilation.  For example, the MIPS target has one subtarget for
diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in
index 3ea77c5..f7c16e9 100644
--- a/gcc/doc/tm.texi.in
+++ b/gcc/doc/tm.texi.in
@@ -754,13 +754,6 @@
 
 @hook TARGET_OPTION_DEFAULT_PARAMS
 
-@hook TARGET_HELP
-This hook is called in response to the user invoking
-@option{--target-help} on the command line.  It gives the target a
-chance to display extra information on the target specific command
-line options found in its @file{.opt} file.
-@end deftypefn
-
 @defmac SWITCHABLE_TARGET
 Some targets need to switch between substantially different subtargets
 during compilation.  For example, the MIPS target has one subtarget for
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 71ba002..6d58a00 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -1232,22 +1232,6 @@
   add_fde_cfi (label, cfi);
 }
 
-/* Add the CFI for saving a register window.  LABEL is passed to reg_save.
-   This CFI tells the unwinder that it needs to restore the window registers
-   from the previous frame's window save area.
-
-   ??? Perhaps we should note in the CIE where windows are saved (instead of
-   assuming 0(cfa)) and what registers are in the window.  */
-
-void
-dwarf2out_window_save (const char *label)
-{
-  dw_cfi_ref cfi = new_cfi ();
-
-  cfi->dw_cfi_opc = DW_CFA_GNU_window_save;
-  add_fde_cfi (label, cfi);
-}
-
 /* Entry point for saving a register to the stack.  REG is the GCC register
    number.  LABEL and OFFSET are passed to reg_save.  */
 
@@ -2104,6 +2088,19 @@
   add_fde_cfi (label, cfi);
 }
 
+/* A subroutine of dwarf2out_frame_debug, process a REG_CFA_WINDOW_SAVE.
+   ??? Perhaps we should note in the CIE where windows are saved (instead of
+   assuming 0(cfa)) and what registers are in the window.  */
+
+static void
+dwarf2out_frame_debug_cfa_window_save (const char *label)
+{
+  dw_cfi_ref cfi = new_cfi ();
+
+  cfi->dw_cfi_opc = DW_CFA_GNU_window_save;
+  add_fde_cfi (label, cfi);
+}
+
 /* Record call frame debugging information for an expression EXPR,
    which either sets SP or FP (adjusting how we calculate the frame
    address) or saves a register to the stack or another register.
@@ -2900,6 +2897,11 @@
 	handled_one = true;
 	break;
 
+      case REG_CFA_WINDOW_SAVE:
+	dwarf2out_frame_debug_cfa_window_save (label);
+	handled_one = true;
+	break;
+
       default:
 	break;
       }
@@ -4811,6 +4813,8 @@
       return "DW_OP_GNU_convert";
     case DW_OP_GNU_reinterpret:
       return "DW_OP_GNU_reinterpret";
+    case DW_OP_GNU_parameter_ref:
+      return "DW_OP_GNU_parameter_ref";
 
     default:
       return "OP_<unknown>";
@@ -5080,11 +5084,18 @@
       break;
     case DW_OP_GNU_convert:
     case DW_OP_GNU_reinterpret:
-      {
-	unsigned long o
-	  = get_base_type_offset (loc->dw_loc_oprnd1.v.val_die_ref.die);
-	size += size_of_uleb128 (o);
-      }
+      if (loc->dw_loc_oprnd1.val_class == dw_val_class_unsigned_const)
+	size += size_of_uleb128 (loc->dw_loc_oprnd1.v.val_unsigned);
+      else
+	{
+	  unsigned long o
+	    = get_base_type_offset (loc->dw_loc_oprnd1.v.val_die_ref.die);
+	  size += size_of_uleb128 (o);
+	}
+      break;
+    case DW_OP_GNU_parameter_ref:
+      size += 4;
+      break;
     default:
       break;
     }
@@ -5122,6 +5133,7 @@
 
 static HOST_WIDE_INT extract_int (const unsigned char *, unsigned);
 static void get_ref_die_offset_label (char *, dw_die_ref);
+static unsigned long int get_ref_die_offset (dw_die_ref);
 static void output_loc_sequence (dw_loc_descr_ref, int);
 
 /* Output location description stack opcode's operands (if any).
@@ -5460,10 +5472,22 @@
       break;
     case DW_OP_GNU_convert:
     case DW_OP_GNU_reinterpret:
+      if (loc->dw_loc_oprnd1.val_class == dw_val_class_unsigned_const)
+	dw2_asm_output_data_uleb128 (val1->v.val_unsigned, NULL);
+      else
+	{
+	  unsigned long o = get_base_type_offset (val1->v.val_die_ref.die);
+	  gcc_assert (o);
+	  dw2_asm_output_data_uleb128 (o, NULL);
+	}
+      break;
+
+    case DW_OP_GNU_parameter_ref:
       {
-	unsigned long o = get_base_type_offset (val1->v.val_die_ref.die);
-	gcc_assert (o);
-	dw2_asm_output_data_uleb128 (o, NULL);
+	unsigned long o;
+	gcc_assert (val1->val_class == dw_val_class_die_ref);
+	o = get_ref_die_offset (val1->v.val_die_ref.die);
+	dw2_asm_output_data (4, o, NULL);
       }
       break;
 
@@ -5649,6 +5673,7 @@
     case DW_OP_GNU_deref_type:
     case DW_OP_GNU_convert:
     case DW_OP_GNU_reinterpret:
+    case DW_OP_GNU_parameter_ref:
       gcc_unreachable ();
       break;
 
@@ -6965,6 +6990,15 @@
   return ref->die_offset;
 }
 
+/* Return die_offset of a DIE reference other than base type.  */
+
+static unsigned long int
+get_ref_die_offset (dw_die_ref ref)
+{
+  gcc_assert (ref->die_offset);
+  return ref->die_offset;
+}
+
 /* Convert a DIE tag into its string name.  */
 
 static const char *
@@ -13855,27 +13889,24 @@
   return type_die;
 }
 
-/* For OP descriptor assumed to be in unsigned MODE, convert it to a signed
-   type matching MODE, or, if MODE is narrower than DWARF2_ADDR_SIZE, signed
-   type matching DWARF2_ADDR_SIZE.  Return NULL if the conversion is not
+/* For OP descriptor assumed to be in unsigned MODE, convert it to a unsigned
+   type matching MODE, or, if MODE is narrower than or as wide as
+   DWARF2_ADDR_SIZE, untyped.  Return NULL if the conversion is not
    possible.  */
 
 static dw_loc_descr_ref
-convert_descriptor_to_signed (enum machine_mode mode, dw_loc_descr_ref op)
+convert_descriptor_to_mode (enum machine_mode mode, dw_loc_descr_ref op)
 {
   enum machine_mode outer_mode = mode;
   dw_die_ref type_die;
   dw_loc_descr_ref cvt;
 
-  if (GET_MODE_SIZE (mode) < DWARF2_ADDR_SIZE)
+  if (GET_MODE_SIZE (mode) <= DWARF2_ADDR_SIZE)
     {
-      outer_mode = mode_for_size (DWARF2_ADDR_SIZE * BITS_PER_UNIT,
-				  MODE_INT, 0);
-      if (outer_mode == BLKmode
-	  || GET_MODE_SIZE (outer_mode) != DWARF2_ADDR_SIZE)
-	return NULL;
+      add_loc_descr (&op, new_loc_descr (DW_OP_GNU_convert, 0, 0));
+      return op;
     }
-  type_die = base_type_for_mode (outer_mode, 0);
+  type_die = base_type_for_mode (outer_mode, 1);
   if (type_die == NULL)
     return NULL;
   cvt = new_loc_descr (DW_OP_GNU_convert, 0, 0);
@@ -13932,9 +13963,29 @@
     return NULL;
 
   if (GET_MODE_CLASS (op_mode) != MODE_INT
-      || GET_MODE_SIZE (op_mode) >= DWARF2_ADDR_SIZE)
+      || GET_MODE_SIZE (op_mode) == DWARF2_ADDR_SIZE)
     return compare_loc_descriptor (op, op0, op1);
 
+  if (GET_MODE_SIZE (op_mode) > DWARF2_ADDR_SIZE)
+    {
+      dw_die_ref type_die = base_type_for_mode (op_mode, 0);
+      dw_loc_descr_ref cvt;
+
+      if (type_die == NULL)
+	return NULL;
+      cvt = new_loc_descr (DW_OP_GNU_convert, 0, 0);
+      cvt->dw_loc_oprnd1.val_class = dw_val_class_die_ref;
+      cvt->dw_loc_oprnd1.v.val_die_ref.die = type_die;
+      cvt->dw_loc_oprnd1.v.val_die_ref.external = 0;
+      add_loc_descr (&op0, cvt);
+      cvt = new_loc_descr (DW_OP_GNU_convert, 0, 0);
+      cvt->dw_loc_oprnd1.val_class = dw_val_class_die_ref;
+      cvt->dw_loc_oprnd1.v.val_die_ref.die = type_die;
+      cvt->dw_loc_oprnd1.v.val_die_ref.external = 0;
+      add_loc_descr (&op1, cvt);
+      return compare_loc_descriptor (op, op0, op1);
+    }
+
   shift = (DWARF2_ADDR_SIZE - GET_MODE_SIZE (op_mode)) * BITS_PER_UNIT;
   /* For eq/ne, if the operands are known to be zero-extended,
      there is no need to do the fancy shifting up.  */
@@ -13990,9 +14041,6 @@
   if (dwarf_strict && GET_MODE_SIZE (op_mode) > DWARF2_ADDR_SIZE)
     return NULL;
 
-  if (op_mode != VOIDmode && GET_MODE_CLASS (op_mode) != MODE_INT)
-    return NULL;
-
   op0 = mem_loc_descriptor (XEXP (rtl, 0), op_mode, mem_mode,
 			    VAR_INIT_STATUS_INITIALIZED);
   op1 = mem_loc_descriptor (XEXP (rtl, 1), op_mode, mem_mode,
@@ -14040,24 +14088,6 @@
 	add_loc_descr (&op1, new_loc_descr (DW_OP_plus_uconst,
 					    bias, 0));
     }
-  else
-    {
-      dw_die_ref type_die = base_type_for_mode (op_mode, 1);
-      dw_loc_descr_ref cvt;
-
-      if (type_die == NULL)
-	return NULL;
-      cvt = new_loc_descr (DW_OP_GNU_convert, 0, 0);
-      cvt->dw_loc_oprnd1.val_class = dw_val_class_die_ref;
-      cvt->dw_loc_oprnd1.v.val_die_ref.die = type_die;
-      cvt->dw_loc_oprnd1.v.val_die_ref.external = 0;
-      add_loc_descr (&op0, cvt);
-      cvt = new_loc_descr (DW_OP_GNU_convert, 0, 0);
-      cvt->dw_loc_oprnd1.val_class = dw_val_class_die_ref;
-      cvt->dw_loc_oprnd1.v.val_die_ref.die = type_die;
-      cvt->dw_loc_oprnd1.v.val_die_ref.external = 0;
-      add_loc_descr (&op1, cvt);
-    }
   return compare_loc_descriptor (op, op0, op1);
 }
 
@@ -14104,23 +14134,6 @@
 	  add_loc_descr (&op0, new_loc_descr (DW_OP_plus_uconst, bias, 0));
 	  add_loc_descr (&op1, new_loc_descr (DW_OP_plus_uconst, bias, 0));
 	}
-      else
-	{
-	  dw_die_ref type_die = base_type_for_mode (mode, 1);
-	  dw_loc_descr_ref cvt;
-	  if (type_die == NULL)
-	    return NULL;
-	  cvt = new_loc_descr (DW_OP_GNU_convert, 0, 0);
-	  cvt->dw_loc_oprnd1.val_class = dw_val_class_die_ref;
-	  cvt->dw_loc_oprnd1.v.val_die_ref.die = type_die;
-	  cvt->dw_loc_oprnd1.v.val_die_ref.external = 0;
-	  add_loc_descr (&op0, cvt);
-	  cvt = new_loc_descr (DW_OP_GNU_convert, 0, 0);
-	  cvt->dw_loc_oprnd1.val_class = dw_val_class_die_ref;
-	  cvt->dw_loc_oprnd1.v.val_die_ref.die = type_die;
-	  cvt->dw_loc_oprnd1.v.val_die_ref.external = 0;
-	  add_loc_descr (&op1, cvt);
-	}
     }
   else if (GET_MODE_CLASS (mode) == MODE_INT
 	   && GET_MODE_SIZE (mode) < DWARF2_ADDR_SIZE)
@@ -14131,6 +14144,24 @@
       add_loc_descr (&op1, int_loc_descriptor (shift));
       add_loc_descr (&op1, new_loc_descr (DW_OP_shl, 0, 0));
     }
+  else if (GET_MODE_CLASS (mode) == MODE_INT
+	   && GET_MODE_SIZE (mode) > DWARF2_ADDR_SIZE)
+    {
+      dw_die_ref type_die = base_type_for_mode (mode, 0);
+      dw_loc_descr_ref cvt;
+      if (type_die == NULL)
+	return NULL;
+      cvt = new_loc_descr (DW_OP_GNU_convert, 0, 0);
+      cvt->dw_loc_oprnd1.val_class = dw_val_class_die_ref;
+      cvt->dw_loc_oprnd1.v.val_die_ref.die = type_die;
+      cvt->dw_loc_oprnd1.v.val_die_ref.external = 0;
+      add_loc_descr (&op0, cvt);
+      cvt = new_loc_descr (DW_OP_GNU_convert, 0, 0);
+      cvt->dw_loc_oprnd1.val_class = dw_val_class_die_ref;
+      cvt->dw_loc_oprnd1.v.val_die_ref.die = type_die;
+      cvt->dw_loc_oprnd1.v.val_die_ref.external = 0;
+      add_loc_descr (&op1, cvt);
+    }
 
   if (GET_CODE (rtl) == SMIN || GET_CODE (rtl) == UMIN)
     op = DW_OP_lt;
@@ -14146,9 +14177,46 @@
   add_loc_descr (&ret, drop_node);
   bra_node->dw_loc_oprnd1.val_class = dw_val_class_loc;
   bra_node->dw_loc_oprnd1.v.val_loc = drop_node;
+  if ((GET_CODE (rtl) == SMIN || GET_CODE (rtl) == SMAX)
+      && GET_MODE_CLASS (mode) == MODE_INT
+      && GET_MODE_SIZE (mode) > DWARF2_ADDR_SIZE)
+    ret = convert_descriptor_to_mode (mode, ret);
   return ret;
 }
 
+/* Helper function for mem_loc_descriptor.  Perform OP binary op,
+   but after converting arguments to type_die, afterwards
+   convert back to unsigned.  */
+
+static dw_loc_descr_ref
+typed_binop (enum dwarf_location_atom op, rtx rtl, dw_die_ref type_die,
+	     enum machine_mode mode, enum machine_mode mem_mode)
+{
+  dw_loc_descr_ref cvt, op0, op1;
+
+  if (type_die == NULL)
+    return NULL;
+  op0 = mem_loc_descriptor (XEXP (rtl, 0), mode, mem_mode,
+			    VAR_INIT_STATUS_INITIALIZED);
+  op1 = mem_loc_descriptor (XEXP (rtl, 1), mode, mem_mode,
+			    VAR_INIT_STATUS_INITIALIZED);
+  if (op0 == NULL || op1 == NULL)
+    return NULL;
+  cvt = new_loc_descr (DW_OP_GNU_convert, 0, 0);
+  cvt->dw_loc_oprnd1.val_class = dw_val_class_die_ref;
+  cvt->dw_loc_oprnd1.v.val_die_ref.die = type_die;
+  cvt->dw_loc_oprnd1.v.val_die_ref.external = 0;
+  add_loc_descr (&op0, cvt);
+  cvt = new_loc_descr (DW_OP_GNU_convert, 0, 0);
+  cvt->dw_loc_oprnd1.val_class = dw_val_class_die_ref;
+  cvt->dw_loc_oprnd1.v.val_die_ref.die = type_die;
+  cvt->dw_loc_oprnd1.v.val_die_ref.external = 0;
+  add_loc_descr (&op1, cvt);
+  add_loc_descr (&op0, op1);
+  add_loc_descr (&op0, new_loc_descr (op, 0, 0));
+  return convert_descriptor_to_mode (mode, op0);
+}
+
 /* CLZ (where constV is CLZ_DEFINED_VALUE_AT_ZERO computed value,
    const0 is DW_OP_lit0 or corresponding typed constant,
    const1 is DW_OP_lit1 or corresponding typed constant
@@ -14507,6 +14575,34 @@
   return ret;
 }
 
+/* Helper function for mem_loc_descriptor.  Return DW_OP_GNU_parameter_ref
+   for DEBUG_PARAMETER_REF RTL.  */
+
+static dw_loc_descr_ref
+parameter_ref_descriptor (rtx rtl)
+{
+  dw_loc_descr_ref ret;
+  dw_die_ref ref;
+
+  if (dwarf_strict)
+    return NULL;
+  gcc_assert (TREE_CODE (DEBUG_PARAMETER_REF_DECL (rtl)) == PARM_DECL);
+  ref = lookup_decl_die (DEBUG_PARAMETER_REF_DECL (rtl));
+  ret = new_loc_descr (DW_OP_GNU_parameter_ref, 0, 0);
+  if (ref)
+    {
+      ret->dw_loc_oprnd1.val_class = dw_val_class_die_ref;
+      ret->dw_loc_oprnd1.v.val_die_ref.die = ref;
+      ret->dw_loc_oprnd1.v.val_die_ref.external = 0;
+    }
+  else
+    {
+      ret->dw_loc_oprnd1.val_class = dw_val_class_decl_ref;
+      ret->dw_loc_oprnd1.v.val_decl_ref = DEBUG_PARAMETER_REF_DECL (rtl);
+    }
+  return ret;
+}
+
 /* The following routine converts the RTL for a variable or parameter
    (resident in memory) into an equivalent Dwarf representation of a
    mechanism for getting the address of that same variable onto the top of a
@@ -14593,7 +14689,8 @@
 					       mem_mode, initialized);
 	  if (mem_loc_result == NULL)
 	    break;
-	  type_die = base_type_for_mode (mode, 0);
+	  type_die = base_type_for_mode (mode,
+					 GET_MODE_CLASS (mode) == MODE_INT);
 	  if (type_die == NULL)
 	    {
 	      mem_loc_result = NULL;
@@ -14625,7 +14722,8 @@
 	    break;
 	  if (REGNO (rtl) > FIRST_PSEUDO_REGISTER)
 	    break;
-	  type_die = base_type_for_mode (mode, 0);
+	  type_die = base_type_for_mode (mode,
+					 GET_MODE_CLASS (mode) == MODE_INT);
 	  if (type_die == NULL)
 	    break;
 	  mem_loc_result = new_loc_descr (DW_OP_GNU_regval_type,
@@ -14708,7 +14806,7 @@
 					  GET_CODE (rtl) == ZERO_EXTEND);
 	  if (type_die1 == NULL)
 	    break;
-	  type_die2 = base_type_for_mode (mode, 0);
+	  type_die2 = base_type_for_mode (mode, 1);
 	  if (type_die2 == NULL)
 	    break;
 	  mem_loc_result = op0;
@@ -14741,7 +14839,8 @@
 
 	      if (dwarf_strict)
 		return NULL;
-	      type_die = base_type_for_mode (mode, 0);
+	      type_die
+		= base_type_for_mode (mode, GET_MODE_CLASS (mode) == MODE_INT);
 	      if (type_die == NULL)
 		return NULL;
 	      deref = new_loc_descr (DW_OP_GNU_deref_type,
@@ -14853,7 +14952,11 @@
       mem_loc_result = new_loc_descr (DW_OP_GNU_entry_value, 0, 0);
       mem_loc_result->dw_loc_oprnd1.val_class = dw_val_class_loc;
       mem_loc_result->dw_loc_oprnd1.v.val_loc = op0;
-      return mem_loc_result;
+      break;
+
+    case DEBUG_PARAMETER_REF:
+      mem_loc_result = parameter_ref_descriptor (rtl);
+      break;
 
     case PRE_MODIFY:
       /* Extract the PLUS expression nested inside and fall into
@@ -14892,12 +14995,11 @@
 	    loc_descr_plus_const (&mem_loc_result, INTVAL (XEXP (rtl, 1)));
 	  else
 	    {
-	      dw_loc_descr_ref mem_loc_result2
-		= mem_loc_descriptor (XEXP (rtl, 1), mode, mem_mode,
-				      VAR_INIT_STATUS_INITIALIZED);
-	      if (mem_loc_result2 == 0)
+	      op1 = mem_loc_descriptor (XEXP (rtl, 1), mode, mem_mode,
+					VAR_INIT_STATUS_INITIALIZED);
+	      if (op1 == 0)
 		break;
-	      add_loc_descr (&mem_loc_result, mem_loc_result2);
+	      add_loc_descr (&mem_loc_result, op1);
 	      add_loc_descr (&mem_loc_result,
 			     new_loc_descr (DW_OP_plus, 0, 0));
 	    }
@@ -14915,6 +15017,15 @@
       goto do_binop;
 
     case DIV:
+      if (!dwarf_strict
+	  && GET_MODE_CLASS (mode) == MODE_INT
+	  && GET_MODE_SIZE (mode) > DWARF2_ADDR_SIZE)
+	{
+	  mem_loc_result = typed_binop (DW_OP_div, rtl,
+					base_type_for_mode (mode, 0),
+					mode, mem_mode);
+	  break;
+	}
       op = DW_OP_div;
       goto do_binop;
 
@@ -14986,12 +15097,10 @@
     case MOD:
       if (GET_MODE_SIZE (mode) > DWARF2_ADDR_SIZE && !dwarf_strict)
 	{
-	  /* If MODE is wider than DWARF2_ADDR_SIZE, mem_loc_descriptor
-	     should return signed typed values and therefore DW_OP_mod
-	     won't be unsigned as it defaults for untyped stack values,
-	     but signed.  */
-	  op = DW_OP_mod;
-	  goto do_binop;
+	  mem_loc_result = typed_binop (DW_OP_mod, rtl,
+					base_type_for_mode (mode, 0),
+					mode, mem_mode);
+	  break;
 	}
 
       op0 = mem_loc_descriptor (XEXP (rtl, 0), mode, mem_mode,
@@ -15014,32 +15123,14 @@
     case UDIV:
       if (!dwarf_strict && GET_MODE_CLASS (mode) == MODE_INT)
 	{
-	  dw_die_ref type_die;
-	  dw_loc_descr_ref cvt;
-
-	  type_die = base_type_for_mode (mode, 1);
-	  if (type_die == NULL)
-	    break;
-	  op0 = mem_loc_descriptor (XEXP (rtl, 0), mode, mem_mode,
-				    VAR_INIT_STATUS_INITIALIZED);
-	  op1 = mem_loc_descriptor (XEXP (rtl, 1), mode, mem_mode,
-				    VAR_INIT_STATUS_INITIALIZED);
-	  if (op0 == 0 || op1 == 0)
-	    break;
-	  cvt = new_loc_descr (DW_OP_GNU_convert, 0, 0);
-	  cvt->dw_loc_oprnd1.val_class = dw_val_class_die_ref;
-	  cvt->dw_loc_oprnd1.v.val_die_ref.die = type_die;
-	  cvt->dw_loc_oprnd1.v.val_die_ref.external = 0;
-	  add_loc_descr (&op0, cvt);
-	  cvt = new_loc_descr (DW_OP_GNU_convert, 0, 0);
-	  cvt->dw_loc_oprnd1.val_class = dw_val_class_die_ref;
-	  cvt->dw_loc_oprnd1.v.val_die_ref.die = type_die;
-	  cvt->dw_loc_oprnd1.v.val_die_ref.external = 0;
-	  add_loc_descr (&op1, cvt);
-	  mem_loc_result = op0;
-	  add_loc_descr (&mem_loc_result, op1);
-	  add_loc_descr (&mem_loc_result, new_loc_descr (DW_OP_div, 0, 0));
-	  mem_loc_result = convert_descriptor_to_signed (mode, mem_loc_result);
+	  if (GET_MODE_CLASS (mode) > DWARF2_ADDR_SIZE)
+	    {
+	      op = DW_OP_div;
+	      goto do_binop;
+	    }
+	  mem_loc_result = typed_binop (DW_OP_div, rtl,
+					base_type_for_mode (mode, 1),
+					mode, mem_mode);
 	}
       break;
 
@@ -15082,7 +15173,7 @@
 	  && (GET_MODE_BITSIZE (mode) == HOST_BITS_PER_WIDE_INT
 	      || GET_MODE_BITSIZE (mode) == 2 * HOST_BITS_PER_WIDE_INT))
 	{
-	  dw_die_ref type_die = base_type_for_mode (mode, 0);
+	  dw_die_ref type_die = base_type_for_mode (mode, 1);
 	  if (type_die == NULL)
 	    return NULL;
 	  mem_loc_result = new_loc_descr (DW_OP_GNU_const_type, 0,
@@ -15115,7 +15206,8 @@
 	      || (GET_MODE (rtl) == VOIDmode
 		  && GET_MODE_BITSIZE (mode) != 2 * HOST_BITS_PER_WIDE_INT))
 	    break;
-	  type_die = base_type_for_mode (mode, 0);
+	  type_die = base_type_for_mode (mode,
+					 GET_MODE_CLASS (mode) == MODE_INT);
 	  if (type_die == NULL)
 	    return NULL;
 	  mem_loc_result = new_loc_descr (DW_OP_GNU_const_type, 0, 0);
@@ -15279,7 +15371,7 @@
 	  if (op0 == NULL)
 	    break;
 	  if (GET_MODE_CLASS (GET_MODE (XEXP (rtl, 0))) == MODE_INT
-	      && (GET_CODE (rtl) == UNSIGNED_FLOAT
+	      && (GET_CODE (rtl) == FLOAT
 		  || GET_MODE_SIZE (GET_MODE (XEXP (rtl, 0)))
 		     <= DWARF2_ADDR_SIZE))
 	    {
@@ -15302,10 +15394,10 @@
 	  cvt->dw_loc_oprnd1.v.val_die_ref.external = 0;
 	  add_loc_descr (&op0, cvt);
 	  if (GET_MODE_CLASS (mode) == MODE_INT
-	      && (GET_CODE (rtl) == UNSIGNED_FIX
+	      && (GET_CODE (rtl) == FIX
 		  || GET_MODE_SIZE (mode) < DWARF2_ADDR_SIZE))
 	    {
-	      op0 = convert_descriptor_to_signed (mode, op0);
+	      op0 = convert_descriptor_to_mode (mode, op0);
 	      if (op0 == NULL)
 		break;
 	    }
@@ -15377,6 +15469,7 @@
     case STRICT_LOW_PART:
     case CONST_VECTOR:
     case CONST_FIXED:
+    case CLRSB:
       /* If delegitimize_address couldn't do anything with the UNSPEC, we
 	 can't express it in the debug info.  This can happen e.g. with some
 	 TLS UNSPECs.  */
@@ -20570,7 +20663,7 @@
 		{
 		  dw_loc_descr_ref reg, val;
 		  enum machine_mode mode = GET_MODE (XEXP (XEXP (arg, 0), 1));
-		  dw_die_ref cdie;
+		  dw_die_ref cdie, tdie = NULL;
 
 		  next_arg = XEXP (arg, 1);
 		  if (REG_P (XEXP (XEXP (arg, 0), 0))
@@ -20601,6 +20694,7 @@
 		      tlocc = XEXP (XEXP (arg, 0), 1);
 		      continue;
 		    }
+		  reg = NULL;
 		  if (REG_P (XEXP (XEXP (arg, 0), 0)))
 		    reg = reg_loc_descriptor (XEXP (XEXP (arg, 0), 0),
 					      VAR_INIT_STATUS_INITIALIZED);
@@ -20612,9 +20706,20 @@
 						GET_MODE (mem),
 						VAR_INIT_STATUS_INITIALIZED);
 		    }
+		  else if (GET_CODE (XEXP (XEXP (arg, 0), 0))
+			   == DEBUG_PARAMETER_REF)
+		    {
+		      tree tdecl
+			= DEBUG_PARAMETER_REF_DECL (XEXP (XEXP (arg, 0), 0));
+		      tdie = lookup_decl_die (tdecl);
+		      if (tdie == NULL)
+			continue;
+		    }
 		  else
 		    continue;
-		  if (reg == NULL)
+		  if (reg == NULL
+		      && GET_CODE (XEXP (XEXP (arg, 0), 0))
+			 != DEBUG_PARAMETER_REF)
 		    continue;
 		  val = mem_loc_descriptor (XEXP (XEXP (arg, 0), 1), mode,
 					    VOIDmode,
@@ -20624,8 +20729,11 @@
 		  if (die == NULL)
 		    die = gen_call_site_die (decl, subr_die, ca_loc);
 		  cdie = new_die (DW_TAG_GNU_call_site_parameter, die,
-				  NULL_TREE);		
-		  add_AT_loc (cdie, DW_AT_location, reg);
+				  NULL_TREE);
+		  if (reg != NULL)
+		    add_AT_loc (cdie, DW_AT_location, reg);
+		  else if (tdie != NULL)
+		    add_AT_die_ref (cdie, DW_AT_abstract_origin, tdie);
 		  add_AT_loc (cdie, DW_AT_GNU_call_site_value, val);
 		  if (next_arg != XEXP (arg, 1))
 		    {
@@ -24041,9 +24149,12 @@
 	case DW_OP_GNU_deref_type:
 	  base_type = loc->dw_loc_oprnd2.v.val_die_ref.die;
 	  break;
-	case DW_OP_GNU_const_type:
 	case DW_OP_GNU_convert:
 	case DW_OP_GNU_reinterpret:
+	  if (loc->dw_loc_oprnd1.val_class == dw_val_class_unsigned_const)
+	    continue;
+	  /* FALLTHRU */
+	case DW_OP_GNU_const_type:
 	  base_type = loc->dw_loc_oprnd1.v.val_die_ref.die;
 	  break;
 	case DW_OP_GNU_entry_value:
@@ -24207,6 +24318,7 @@
 	  return false;
 	break;
       case DW_OP_GNU_implicit_pointer:
+      case DW_OP_GNU_parameter_ref:
 	if (loc->dw_loc_oprnd1.val_class == dw_val_class_decl_ref)
 	  {
 	    dw_die_ref ref
@@ -24231,8 +24343,14 @@
 	    if (loc->dw_loc_opc == DW_OP_GNU_regval_type
 		|| loc->dw_loc_opc == DW_OP_GNU_deref_type)
 	      base1 = loc->dw_loc_oprnd2.v.val_die_ref.die;
+	    else if (loc->dw_loc_oprnd1.val_class
+		     == dw_val_class_unsigned_const)
+	      break;
 	    else
 	      base1 = loc->dw_loc_oprnd1.v.val_die_ref.die;
+	    if (loc->dw_loc_next->dw_loc_oprnd1.val_class
+		== dw_val_class_unsigned_const)
+	      break;
 	    base2 = loc->dw_loc_next->dw_loc_oprnd1.v.val_die_ref.die;
 	    gcc_assert (base1->die_tag == DW_TAG_base_type
 			&& base2->die_tag == DW_TAG_base_type);
@@ -24259,7 +24377,7 @@
 	    /* Don't change integer DW_OP_GNU_convert after e.g. floating
 	       point typed stack entry.  */
 	    else if (enc1 != DW_ATE_unsigned && enc1 != DW_ATE_signed)
-	      keep = loc;
+	      keep = loc->dw_loc_next;
 	    break;
 	  }
 	break;
@@ -24525,6 +24643,12 @@
       break;
     case DW_OP_GNU_convert:
     case DW_OP_GNU_reinterpret:
+      if (val1->val_class == dw_val_class_unsigned_const)
+	{
+	  hash = iterative_hash_object (val1->v.val_unsigned, hash);
+	  break;
+	}
+      /* FALLTHRU */
     case DW_OP_GNU_const_type:
       {
 	unsigned int byte_size
@@ -24746,7 +24870,15 @@
 	     && valx2->v.val_die_ref.die == valy2->v.val_die_ref.die;
     case DW_OP_GNU_convert:
     case DW_OP_GNU_reinterpret:
+      if (valx1->val_class != valy1->val_class)
+	return false;
+      if (valx1->val_class == dw_val_class_unsigned_const)
+	return valx1->v.val_unsigned == valy1->v.val_unsigned;
       return valx1->v.val_die_ref.die == valy1->v.val_die_ref.die;
+    case DW_OP_GNU_parameter_ref:
+      return valx1->val_class == dw_val_class_die_ref
+	     && valx1->val_class == valy1->val_class
+	     && valx1->v.val_die_ref.die == valy1->v.val_die_ref.die;
     default:
       /* Other codes have no operands.  */
       return true;
diff --git a/gcc/expr.c b/gcc/expr.c
index bb6e3f1..176978a 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -1181,8 +1181,19 @@
   else if (may_use_call
 	   && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (x))
 	   && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (y)))
-    retval = emit_block_move_via_libcall (x, y, size,
-					  method == BLOCK_OP_TAILCALL);
+    {
+      /* Since x and y are passed to a libcall, mark the corresponding
+	 tree EXPR as addressable.  */
+      tree y_expr = MEM_EXPR (y);
+      tree x_expr = MEM_EXPR (x);
+      if (y_expr)
+	mark_addressable (y_expr);
+      if (x_expr)
+	mark_addressable (x_expr);
+      retval = emit_block_move_via_libcall (x, y, size,
+					    method == BLOCK_OP_TAILCALL);
+    }
+
   else
     emit_block_move_via_loop (x, y, size, align);
 
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 2e73625..b1f4853 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,15 @@
+2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
+
+	* trans-openmp.c: Add sync_ or SYNC__ to builtin names.
+	* trans-stmt.c: Add sync_ or SYNC__ to builtin names.
+	* trans-decl.c: Add sync_ or SYNC__ to builtin names.
+
+2011-06-21  Janus Weil  <janus@gcc.gnu.org>
+
+	PR fortran/49112
+	* class.c (gfc_find_derived_vtab): Make vtab and default initialization
+	symbols SAVE_IMPLICIT.
+
 2011-06-20  Tobias Burnus  <burnus@net-b.de>
 
 	PR fortran/18918
diff --git a/gcc/fortran/Make-lang.in b/gcc/fortran/Make-lang.in
index f20638c..a56a1f0 100644
--- a/gcc/fortran/Make-lang.in
+++ b/gcc/fortran/Make-lang.in
@@ -171,9 +171,12 @@
 lang_checks += check-gfortran
 lang_checks_parallelized += check-gfortran
 # For description see comment above check_gcc_parallelize in gcc/Makefile.in.
-check_gfortran_parallelize = dg.exp=gfortran.dg/\[a-cA-C\]* \
-			     dg.exp=gfortran.dg/\[d-mD-M\]* \
-			     dg.exp=gfortran.dg/\[n-zN-Z0-9\]*
+check_gfortran_parallelize = dg.exp=gfortran.dg/\[adAD\]* \
+			     dg.exp=gfortran.dg/\[bcBC\]* \
+			     dg.exp=gfortran.dg/\[nopNOP\]* \
+			     dg.exp=gfortran.dg/\[isuvISUV\]* \
+			     dg.exp=gfortran.dg/\[efhkqrxzEFHKQRXZ\]* \
+			     dg.exp=gfortran.dg/\[0-9gjlmtwyGJLMTWY\]*
 
 # GFORTRAN documentation.
 GFORTRAN_TEXI = \
diff --git a/gcc/fortran/class.c b/gcc/fortran/class.c
index b99930a..572011f 100644
--- a/gcc/fortran/class.c
+++ b/gcc/fortran/class.c
@@ -428,7 +428,7 @@
 	                      &gfc_current_locus) == FAILURE)
 	    goto cleanup;
 	  vtab->attr.target = 1;
-	  vtab->attr.save = SAVE_EXPLICIT;
+	  vtab->attr.save = SAVE_IMPLICIT;
 	  vtab->attr.vtab = 1;
 	  vtab->attr.access = ACCESS_PUBLIC;
 	  gfc_set_sym_referenced (vtab);
@@ -516,7 +516,7 @@
 		  sprintf (name, "__def_init_%s", tname);
 		  gfc_get_symbol (name, ns, &def_init);
 		  def_init->attr.target = 1;
-		  def_init->attr.save = SAVE_EXPLICIT;
+		  def_init->attr.save = SAVE_IMPLICIT;
 		  def_init->attr.access = ACCESS_PUBLIC;
 		  def_init->attr.flavor = FL_VARIABLE;
 		  gfc_set_sym_referenced (def_init);
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 6c6de13..cca1beb 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -4904,7 +4904,7 @@
     { 
       /* Per F2008, 8.5.1 END of the main program implies a
 	 SYNC MEMORY.  */ 
-      tmp = built_in_decls [BUILT_IN_SYNCHRONIZE];
+      tmp = built_in_decls [BUILT_IN_SYNC_SYNCHRONIZE];
       tmp = build_call_expr_loc (input_location, tmp, 0);
       gfc_add_expr_to_block (&body, tmp);
 
diff --git a/gcc/fortran/trans-openmp.c b/gcc/fortran/trans-openmp.c
index 7554889..9677659 100644
--- a/gcc/fortran/trans-openmp.c
+++ b/gcc/fortran/trans-openmp.c
@@ -1430,7 +1430,7 @@
 static tree
 gfc_trans_omp_flush (void)
 {
-  tree decl = built_in_decls [BUILT_IN_SYNCHRONIZE];
+  tree decl = built_in_decls [BUILT_IN_SYNC_SYNCHRONIZE];
   return build_call_expr_loc (input_location, decl, 0);
 }
 
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
index a5f2d9e..f3347a6 100644
--- a/gcc/fortran/trans-stmt.c
+++ b/gcc/fortran/trans-stmt.c
@@ -602,7 +602,7 @@
   if (gfc_option.coarray == GFC_FCOARRAY_LIB && !error_stop)
     {
       /* Per F2008, 8.5.1 STOP implies a SYNC MEMORY.  */
-      tmp = built_in_decls [BUILT_IN_SYNCHRONIZE];
+      tmp = built_in_decls [BUILT_IN_SYNC_SYNCHRONIZE];
       tmp = build_call_expr_loc (input_location, tmp, 0);
       gfc_add_expr_to_block (&se.pre, tmp);
 
@@ -774,7 +774,7 @@
       image control statements SYNC IMAGES and SYNC ALL.  */
    if (gfc_option.coarray == GFC_FCOARRAY_LIB)
      {
-	tmp = built_in_decls [BUILT_IN_SYNCHRONIZE];
+	tmp = built_in_decls [BUILT_IN_SYNC_SYNCHRONIZE];
 	tmp = build_call_expr_loc (input_location, tmp, 0);
 	gfc_add_expr_to_block (&se.pre, tmp);
      }
diff --git a/gcc/genopinit.c b/gcc/genopinit.c
index 35e994b..570540d 100644
--- a/gcc/genopinit.c
+++ b/gcc/genopinit.c
@@ -199,6 +199,7 @@
   "set_optab_handler (ffs_optab, $A, CODE_FOR_$(ffs$a2$))",
   "set_optab_handler (clz_optab, $A, CODE_FOR_$(clz$a2$))",
   "set_optab_handler (ctz_optab, $A, CODE_FOR_$(ctz$a2$))",
+  "set_optab_handler (clrsb_optab, $A, CODE_FOR_$(clrsb$a2$))",
   "set_optab_handler (popcount_optab, $A, CODE_FOR_$(popcount$a2$))",
   "set_optab_handler (parity_optab, $A, CODE_FOR_$(parity$a2$))",
   "set_optab_handler (mov_optab, $A, CODE_FOR_$(mov$a$))",
diff --git a/gcc/gensupport.c b/gcc/gensupport.c
index cd72e77..e56291e 100644
--- a/gcc/gensupport.c
+++ b/gcc/gensupport.c
@@ -368,6 +368,25 @@
   return e;
 }
 
+/* Build a define_attr for an binary attribute with name NAME and
+   possible values "yes" and "no", and queue it.  */
+static void
+add_define_attr (const char *name)
+{
+  struct queue_elem *e = XNEW(struct queue_elem);
+  rtx t1 = rtx_alloc (DEFINE_ATTR);
+  XSTR (t1, 0) = name;
+  XSTR (t1, 1) = "no,yes";
+  XEXP (t1, 2) = rtx_alloc (CONST_STRING);
+  XSTR (XEXP (t1, 2), 0) = "yes";
+  e->data = t1;
+  e->filename = "built-in";
+  e->lineno = -1;
+  e->next = define_attr_queue;
+  define_attr_queue = e;
+
+}
+
 /* Recursively remove constraints from an rtx.  */
 
 static void
@@ -547,17 +566,10 @@
   return predicable_default;
 
  found:
-  /* Verify that predicability does not vary on the alternative.  */
-  /* ??? It should be possible to handle this by simply eliminating
-     the non-predicable alternatives from the insn.  FRV would like
-     to do this.  Delay this until we've got the basics solid.  */
+  /* Find out which value we're looking at.  Multiple alternatives means at
+     least one is predicable.  */
   if (strchr (value, ',') != NULL)
-    {
-      error_with_line (elem->lineno, "multiple alternatives for `predicable'");
-      return 0;
-    }
-
-  /* Find out which value we're looking at.  */
+    return 1;
   if (strcmp (value, predicable_true) == 0)
     return 1;
   if (strcmp (value, predicable_false) == 0)
@@ -798,6 +810,146 @@
 			    XSTR (insn_elem->data, 2));
 }
 
+/* Modify VAL, which is an attribute expression for the "enabled" attribute,
+   to take "ce_enabled" into account.  Return the new expression.  */
+static rtx
+modify_attr_enabled_ce (rtx val)
+{
+  rtx eq_attr, str;
+  rtx ite;
+  eq_attr = rtx_alloc (EQ_ATTR);
+  ite = rtx_alloc (IF_THEN_ELSE);
+  str = rtx_alloc (CONST_STRING);
+
+  XSTR (eq_attr, 0) = "ce_enabled";
+  XSTR (eq_attr, 1) = "yes";
+  XSTR (str, 0) = "no";
+  XEXP (ite, 0) = eq_attr;
+  XEXP (ite, 1) = val;
+  XEXP (ite, 2) = str;
+
+  return ite;
+}
+
+/* Alter the attribute vector of INSN, which is a COND_EXEC variant created
+   from a define_insn pattern.  We must modify the "predicable" attribute
+   to be named "ce_enabled", and also change any "enabled" attribute that's
+   present so that it takes ce_enabled into account.
+   We rely on the fact that INSN was created with copy_rtx, and modify data
+   in-place.  */
+
+static void
+alter_attrs_for_insn (rtx insn)
+{
+  static bool global_changes_made = false;
+  rtvec vec = XVEC (insn, 4);
+  rtvec new_vec;
+  rtx val, set;
+  int num_elem;
+  int predicable_idx = -1;
+  int enabled_idx = -1;
+  int i;
+
+  if (! vec)
+    return;
+
+  num_elem = GET_NUM_ELEM (vec);
+  for (i = num_elem - 1; i >= 0; --i)
+    {
+      rtx sub = RTVEC_ELT (vec, i);
+      switch (GET_CODE (sub))
+	{
+	case SET_ATTR:
+	  if (strcmp (XSTR (sub, 0), "predicable") == 0)
+	    {
+	      predicable_idx = i;
+	      XSTR (sub, 0) = "ce_enabled";
+	    }
+	  else if (strcmp (XSTR (sub, 0), "enabled") == 0)
+	    {
+	      enabled_idx = i;
+	      XSTR (sub, 0) = "nonce_enabled";
+	    }
+	  break;
+
+	case SET_ATTR_ALTERNATIVE:
+	  if (strcmp (XSTR (sub, 0), "predicable") == 0)
+	    /* We already give an error elsewhere.  */
+	    return;
+	  else if (strcmp (XSTR (sub, 0), "enabled") == 0)
+	    {
+	      enabled_idx = i;
+	      XSTR (sub, 0) = "nonce_enabled";
+	    }
+	  break;
+
+	case SET:
+	  if (GET_CODE (SET_DEST (sub)) != ATTR)
+	    break;
+	  if (strcmp (XSTR (SET_DEST (sub), 0), "predicable") == 0)
+	    {
+	      sub = SET_SRC (sub);
+	      if (GET_CODE (sub) == CONST_STRING)
+		{
+		  predicable_idx = i;
+		  XSTR (sub, 0) = "ce_enabled";
+		}
+	      else
+		/* We already give an error elsewhere.  */
+		return;
+	      break;
+	    }
+	  if (strcmp (XSTR (SET_DEST (sub), 0), "enabled") == 0)
+	    {
+	      enabled_idx = i;
+	      XSTR (SET_DEST (sub), 0) = "nonce_enabled";
+	    }
+	  break;
+
+	default:
+	  gcc_unreachable ();
+	}
+    }
+  if (predicable_idx == -1)
+    return;
+
+  if (!global_changes_made)
+    {
+      struct queue_elem *elem;
+      
+      global_changes_made = true;
+      add_define_attr ("ce_enabled");
+      add_define_attr ("nonce_enabled");
+
+      for (elem = define_attr_queue; elem ; elem = elem->next)
+	if (strcmp (XSTR (elem->data, 0), "enabled") == 0)
+	  {
+	    XEXP (elem->data, 2)
+	      = modify_attr_enabled_ce (XEXP (elem->data, 2));
+	  }
+    }
+  if (enabled_idx == -1)
+    return;
+
+  new_vec = rtvec_alloc (num_elem + 1);
+  for (i = 0; i < num_elem; i++)
+    RTVEC_ELT (new_vec, i) = RTVEC_ELT (vec, i);
+  val = rtx_alloc (IF_THEN_ELSE);
+  XEXP (val, 0) = rtx_alloc (EQ_ATTR);
+  XEXP (val, 1) = rtx_alloc (CONST_STRING);
+  XEXP (val, 2) = rtx_alloc (CONST_STRING);
+  XSTR (XEXP (val, 0), 0) = "nonce_enabled";
+  XSTR (XEXP (val, 0), 1) = "yes";
+  XSTR (XEXP (val, 1), 0) = "yes";
+  XSTR (XEXP (val, 2), 0) = "no";
+  set = rtx_alloc (SET);
+  SET_DEST (set) = rtx_alloc (ATTR);
+  XSTR (SET_DEST (set), 0) = "enabled";
+  SET_SRC (set) = modify_attr_enabled_ce (val);
+  RTVEC_ELT (new_vec, i) = set;
+  XVEC (insn, 4) = new_vec;
+}
+
 /* Adjust all of the operand numbers in SRC to match the shift they'll
    get from an operand displacement of DISP.  Return a pointer after the
    adjusted string.  */
@@ -943,9 +1095,7 @@
       XSTR (insn, 2) = alter_test_for_insn (ce_elem, insn_elem);
       XTMPL (insn, 3) = alter_output_for_insn (ce_elem, insn_elem,
 					      alternatives, max_operand);
-
-      /* ??? Set `predicable' to false.  Not crucial since it's really
-         only used here, and we won't reprocess this new pattern.  */
+      alter_attrs_for_insn (insn);
 
       /* Put the new pattern on the `other' list so that it
 	 (a) is not reprocessed by other define_cond_exec patterns
diff --git a/gcc/gimple-pretty-print.c b/gcc/gimple-pretty-print.c
index b27b1a5..eaf3e5f 100644
--- a/gcc/gimple-pretty-print.c
+++ b/gcc/gimple-pretty-print.c
@@ -1,6 +1,6 @@
 /* Pretty formatting of GIMPLE statements and expressions.
-   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-   Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+   2011  Free Software Foundation, Inc.
    Contributed by Aldy Hernandez <aldyh@redhat.com> and
    Diego Novillo <dnovillo@google.com>
 
@@ -966,6 +966,17 @@
 			 gimple_debug_bind_get_value (gs));
       break;
 
+    case GIMPLE_DEBUG_SOURCE_BIND:
+      if (flags & TDF_RAW)
+	dump_gimple_fmt (buffer, spc, flags, "%G SRCBIND <%T, %T>", gs,
+			 gimple_debug_source_bind_get_var (gs),
+			 gimple_debug_source_bind_get_value (gs));
+      else
+	dump_gimple_fmt (buffer, spc, flags, "# DEBUG %T s=> %T",
+			 gimple_debug_source_bind_get_var (gs),
+			 gimple_debug_source_bind_get_value (gs));
+      break;
+
     default:
       gcc_unreachable ();
     }
diff --git a/gcc/gimple.c b/gcc/gimple.c
index fd97579..e3095d7 100644
--- a/gcc/gimple.c
+++ b/gcc/gimple.c
@@ -1,6 +1,6 @@
 /* Gimple IR support functions.
 
-   Copyright 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
    Contributed by Aldy Hernandez <aldyh@redhat.com>
 
 This file is part of GCC.
@@ -866,6 +866,30 @@
 }
 
 
+/* Build a new GIMPLE_DEBUG_SOURCE_BIND statement.
+
+   VAR is bound to VALUE; block and location are taken from STMT.  */
+
+gimple
+gimple_build_debug_source_bind_stat (tree var, tree value,
+				     gimple stmt MEM_STAT_DECL)
+{
+  gimple p = gimple_build_with_ops_stat (GIMPLE_DEBUG,
+					 (unsigned)GIMPLE_DEBUG_SOURCE_BIND, 2
+					 PASS_MEM_STAT);
+
+  gimple_debug_source_bind_set_var (p, var);
+  gimple_debug_source_bind_set_value (p, value);
+  if (stmt)
+    {
+      gimple_set_block (p, gimple_block (stmt));
+      gimple_set_location (p, gimple_location (stmt));
+    }
+
+  return p;
+}
+
+
 /* Build a GIMPLE_OMP_CRITICAL statement.
 
    BODY is the sequence of statements for which only one thread can execute.
diff --git a/gcc/gimple.h b/gcc/gimple.h
index 7d97adb..184c9733 100644
--- a/gcc/gimple.h
+++ b/gcc/gimple.h
@@ -1,6 +1,6 @@
 /* Gimple IR definitions.
 
-   Copyright 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
    Contributed by Aldy Hernandez <aldyh@redhat.com>
 
 This file is part of GCC.
@@ -117,12 +117,13 @@
     GF_PREDICT_TAKEN		= 1 << 15
 };
 
-/* Currently, there's only one type of gimple debug stmt.  Others are
+/* Currently, there are only two types of gimple debug stmt.  Others are
    envisioned, for example, to enable the generation of is_stmt notes
    in line number information, to mark sequence points, etc.  This
    subcode is to be used to tell them apart.  */
 enum gimple_debug_subcode {
-  GIMPLE_DEBUG_BIND = 0
+  GIMPLE_DEBUG_BIND = 0,
+  GIMPLE_DEBUG_SOURCE_BIND = 1
 };
 
 /* Masks for selecting a pass local flag (PLF) to work on.  These
@@ -823,6 +824,9 @@
 gimple gimple_build_debug_bind_stat (tree, tree, gimple MEM_STAT_DECL);
 #define gimple_build_debug_bind(var,val,stmt)			\
   gimple_build_debug_bind_stat ((var), (val), (stmt) MEM_STAT_INFO)
+gimple gimple_build_debug_source_bind_stat (tree, tree, gimple MEM_STAT_DECL);
+#define gimple_build_debug_source_bind(var,val,stmt)			\
+  gimple_build_debug_source_bind_stat ((var), (val), (stmt) MEM_STAT_INFO)
 
 gimple gimple_build_call_vec (tree, VEC(tree, heap) *);
 gimple gimple_build_call (tree, unsigned, ...);
@@ -3583,6 +3587,70 @@
 
 #undef GIMPLE_DEBUG_BIND_NOVALUE
 
+/* Return true if S is a GIMPLE_DEBUG SOURCE BIND statement.  */
+
+static inline bool
+gimple_debug_source_bind_p (const_gimple s)
+{
+  if (is_gimple_debug (s))
+    return s->gsbase.subcode == GIMPLE_DEBUG_SOURCE_BIND;
+
+  return false;
+}
+
+/* Return the variable bound in a GIMPLE_DEBUG source bind statement.  */
+
+static inline tree
+gimple_debug_source_bind_get_var (gimple dbg)
+{
+  GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
+  gcc_gimple_checking_assert (gimple_debug_source_bind_p (dbg));
+  return gimple_op (dbg, 0);
+}
+
+/* Return the value bound to the variable in a GIMPLE_DEBUG source bind
+   statement.  */
+
+static inline tree
+gimple_debug_source_bind_get_value (gimple dbg)
+{
+  GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
+  gcc_gimple_checking_assert (gimple_debug_source_bind_p (dbg));
+  return gimple_op (dbg, 1);
+}
+
+/* Return a pointer to the value bound to the variable in a
+   GIMPLE_DEBUG source bind statement.  */
+
+static inline tree *
+gimple_debug_source_bind_get_value_ptr (gimple dbg)
+{
+  GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
+  gcc_gimple_checking_assert (gimple_debug_source_bind_p (dbg));
+  return gimple_op_ptr (dbg, 1);
+}
+
+/* Set the variable bound in a GIMPLE_DEBUG source bind statement.  */
+
+static inline void
+gimple_debug_source_bind_set_var (gimple dbg, tree var)
+{
+  GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
+  gcc_gimple_checking_assert (gimple_debug_source_bind_p (dbg));
+  gimple_set_op (dbg, 0, var);
+}
+
+/* Set the value bound to the variable in a GIMPLE_DEBUG source bind
+   statement.  */
+
+static inline void
+gimple_debug_source_bind_set_value (gimple dbg, tree value)
+{
+  GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
+  gcc_gimple_checking_assert (gimple_debug_source_bind_p (dbg));
+  gimple_set_op (dbg, 1, value);
+}
+
 /* Return the body for the OMP statement GS.  */
 
 static inline gimple_seq
diff --git a/gcc/go/gofrontend/gogo-tree.cc b/gcc/go/gofrontend/gogo-tree.cc
index 94d1c4d..2b5a24c 100644
--- a/gcc/go/gofrontend/gogo-tree.cc
+++ b/gcc/go/gofrontend/gogo-tree.cc
@@ -91,22 +91,22 @@
      for ++ and --.  */
   tree t = go_type_for_size(BITS_PER_UNIT, 1);
   tree p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE));
-  define_builtin(BUILT_IN_ADD_AND_FETCH_1, "__sync_fetch_and_add_1", NULL,
+  define_builtin(BUILT_IN_SYNC_ADD_AND_FETCH_1, "__sync_fetch_and_add_1", NULL,
 		 build_function_type_list(t, p, t, NULL_TREE), false);
 
   t = go_type_for_size(BITS_PER_UNIT * 2, 1);
   p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE));
-  define_builtin (BUILT_IN_ADD_AND_FETCH_2, "__sync_fetch_and_add_2", NULL,
+  define_builtin (BUILT_IN_SYNC_ADD_AND_FETCH_2, "__sync_fetch_and_add_2", NULL,
 		  build_function_type_list(t, p, t, NULL_TREE), false);
 
   t = go_type_for_size(BITS_PER_UNIT * 4, 1);
   p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE));
-  define_builtin(BUILT_IN_ADD_AND_FETCH_4, "__sync_fetch_and_add_4", NULL,
+  define_builtin(BUILT_IN_SYNC_ADD_AND_FETCH_4, "__sync_fetch_and_add_4", NULL,
 		 build_function_type_list(t, p, t, NULL_TREE), false);
 
   t = go_type_for_size(BITS_PER_UNIT * 8, 1);
   p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE));
-  define_builtin(BUILT_IN_ADD_AND_FETCH_8, "__sync_fetch_and_add_8", NULL,
+  define_builtin(BUILT_IN_SYNC_ADD_AND_FETCH_8, "__sync_fetch_and_add_8", NULL,
 		 build_function_type_list(t, p, t, NULL_TREE), false);
 
   // We use __builtin_expect for magic import functions.
diff --git a/gcc/ipa-inline-transform.c b/gcc/ipa-inline-transform.c
index 2e13754..c329bea 100644
--- a/gcc/ipa-inline-transform.c
+++ b/gcc/ipa-inline-transform.c
@@ -348,8 +348,7 @@
 {
   unsigned int todo = 0;
   struct cgraph_edge *e;
-  bool inline_p = false;
-
+ 
   /* FIXME: Currently the pass manager is adding inline transform more than
      once to some clones.  This needs revisiting after WPA cleanups.  */
   if (cfun->after_inlining)
@@ -361,20 +360,17 @@
     save_inline_function_body (node);
 
   for (e = node->callees; e; e = e->next_callee)
-    {
-      cgraph_redirect_edge_call_stmt_to_callee (e);
-      if (!e->inline_failed || warn_inline)
-        inline_p = true;
-      /* Redirecting edges might lead to a need for vops to be recomputed.  */
-      todo |= TODO_update_ssa_only_virtuals;
-    }
+    cgraph_redirect_edge_call_stmt_to_callee (e);
 
-  if (inline_p)
-    {
-      timevar_push (TV_INTEGRATION);
-      todo = optimize_inline_calls (current_function_decl);
-      timevar_pop (TV_INTEGRATION);
-    }
+  timevar_push (TV_INTEGRATION);
+  if (node->callees)
+    todo = optimize_inline_calls (current_function_decl);
+  timevar_pop (TV_INTEGRATION);
+
+  if (!(todo & TODO_update_ssa_any))
+    /* Redirecting edges might lead to a need for vops to be recomputed.  */
+    todo |= TODO_update_ssa_only_virtuals;
+
   cfun->always_inline_functions_inlined = true;
   cfun->after_inlining = true;
   return todo | execute_fixup_cfg ();
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index ff1041b..2f57e2d 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -318,8 +318,10 @@
 			     ? callee_tree
 			     : optimization_default_node);
 
-      if ((caller_opt->x_optimize > callee_opt->x_optimize)
-	  || (caller_opt->x_optimize_size != callee_opt->x_optimize_size))
+      if (((caller_opt->x_optimize > callee_opt->x_optimize)
+	   || (caller_opt->x_optimize_size != callee_opt->x_optimize_size))
+	  /* gcc.dg/pr43564.c.  Look at forced inline even in -O0.  */
+	  && !DECL_DISREGARD_INLINE_LIMITS (e->callee->decl))
 	{
           e->inline_failed = CIF_TARGET_OPTIMIZATION_MISMATCH;
 	  inlinable = false;
@@ -1970,17 +1972,15 @@
 
 
 /* When to run IPA inlining.  Inlining of always-inline functions
-   happens during early inlining.  */
+   happens during early inlining.
+
+   Enable inlining unconditoinally at -flto.  We need size estimates to
+   drive partitioning.  */
 
 static bool
 gate_ipa_inline (void)
 {
-  /* ???  We'd like to skip this if not optimizing or not inlining as
-     all always-inline functions have been processed by early
-     inlining already.  But this at least breaks EH with C++ as
-     we need to unconditionally run fixup_cfg even at -O0.
-     So leave it on unconditionally for now.  */
-  return 1;
+  return optimize || flag_lto || flag_wpa;
 }
 
 struct ipa_opt_pass_d pass_ipa_inline =
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c
index 10c11d4..aec1920 100644
--- a/gcc/ipa-prop.c
+++ b/gcc/ipa-prop.c
@@ -1,5 +1,5 @@
 /* Interprocedural analyses.
-   Copyright (C) 2005, 2007, 2008, 2009, 2010
+   Copyright (C) 2005, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -2393,6 +2393,7 @@
 			   ipa_parm_adjustment_vec adjustments)
 {
   VEC(tree, heap) *vargs;
+  VEC(tree, gc) **debug_args = NULL;
   gimple new_stmt;
   gimple_stmt_iterator gsi;
   tree callee_decl;
@@ -2400,6 +2401,7 @@
 
   len = VEC_length (ipa_parm_adjustment_t, adjustments);
   vargs = VEC_alloc (tree, heap, len);
+  callee_decl = !cs ? gimple_call_fndecl (stmt) : cs->callee->decl;
 
   gsi = gsi_for_stmt (stmt);
   for (i = 0; i < len; i++)
@@ -2490,6 +2492,42 @@
 					   NULL, true, GSI_SAME_STMT);
 	  VEC_quick_push (tree, vargs, expr);
 	}
+      if (!adj->copy_param && MAY_HAVE_DEBUG_STMTS)
+	{
+	  unsigned int ix;
+	  tree ddecl = NULL_TREE, origin = DECL_ORIGIN (adj->base), arg;
+	  gimple def_temp;
+
+	  arg = gimple_call_arg (stmt, adj->base_index);
+	  if (!useless_type_conversion_p (TREE_TYPE (origin), TREE_TYPE (arg)))
+	    {
+	      if (!fold_convertible_p (TREE_TYPE (origin), arg))
+		continue;
+	      arg = fold_convert_loc (gimple_location (stmt),
+				      TREE_TYPE (origin), arg);
+	    }
+	  if (debug_args == NULL)
+	    debug_args = decl_debug_args_insert (callee_decl);
+	  for (ix = 0; VEC_iterate (tree, *debug_args, ix, ddecl); ix += 2)
+	    if (ddecl == origin)
+	      {
+		ddecl = VEC_index (tree, *debug_args, ix + 1);
+		break;
+	      }
+	  if (ddecl == NULL)
+	    {
+	      ddecl = make_node (DEBUG_EXPR_DECL);
+	      DECL_ARTIFICIAL (ddecl) = 1;
+	      TREE_TYPE (ddecl) = TREE_TYPE (origin);
+	      DECL_MODE (ddecl) = DECL_MODE (origin);
+
+	      VEC_safe_push (tree, gc, *debug_args, origin);
+	      VEC_safe_push (tree, gc, *debug_args, ddecl);
+	    }
+	  def_temp = gimple_build_debug_bind (ddecl, unshare_expr (arg),
+					      stmt);
+	  gsi_insert_before (&gsi, def_temp, GSI_SAME_STMT);
+	}
     }
 
   if (dump_file && (dump_flags & TDF_DETAILS))
@@ -2498,7 +2536,6 @@
       print_gimple_stmt (dump_file, gsi_stmt (gsi), 0, 0);
     }
 
-  callee_decl = !cs ? gimple_call_fndecl (stmt) : cs->callee->decl;
   new_stmt = gimple_build_call_vec (callee_decl, vargs);
   VEC_free (tree, heap, vargs);
   if (gimple_call_lhs (stmt))
diff --git a/gcc/ira.c b/gcc/ira.c
index 5cfe5c0..6cca908 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -383,6 +383,7 @@
 #include "integrate.h"
 #include "ggc.h"
 #include "ira-int.h"
+#include "dce.h"
 
 
 struct target_ira default_target_ira;
@@ -3526,6 +3527,7 @@
   int rebuild_p;
   int saved_flag_ira_share_spill_slots;
   basic_block bb;
+  bool need_dce;
 
   timevar_push (TV_IRA);
 
@@ -3717,7 +3719,7 @@
   df_set_flags (DF_NO_INSN_RESCAN);
   build_insn_chain ();
 
-  reload_completed = !reload (get_insns (), ira_conflicts_p);
+  need_dce = reload (get_insns (), ira_conflicts_p);
 
   timevar_pop (TV_RELOAD);
 
@@ -3760,7 +3762,7 @@
 #endif
 
   /* The code after the reload has changed so much that at this point
-     we might as well just rescan everything.  Not that
+     we might as well just rescan everything.  Note that
      df_rescan_all_insns is not going to help here because it does not
      touch the artificial uses and defs.  */
   df_finish_pass (true);
@@ -3772,6 +3774,9 @@
   if (optimize)
     df_analyze ();
 
+  if (need_dce && optimize)
+    run_fast_dce ();
+
   timevar_pop (TV_IRA);
 }
 
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index b88b71f..98dd104 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,8 @@
+2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
+
+	* builtins.c: Add sync_ or SYNC__ to builtin names.
+	* expr.c: Add sync_ or SYNC__ to builtin names.
+
 2011-06-07  Richard Guenther  <rguenther@suse.de>
 
 	* decl.c (java_init_decl_processing): Call build_common_nodes,
diff --git a/gcc/java/builtins.c b/gcc/java/builtins.c
index 2100f09..817f862 100644
--- a/gcc/java/builtins.c
+++ b/gcc/java/builtins.c
@@ -331,8 +331,9 @@
       (void) value_type; /* Avoid set but not used warning.  */
 
       addr = build_addr_sum (int_type_node, obj_arg, offset_arg);
-      stmt = build_call_expr (built_in_decls[BUILT_IN_BOOL_COMPARE_AND_SWAP_4],
-			      3, addr, expected_arg, value_arg);
+      stmt = build_call_expr 
+			(built_in_decls[BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_4],
+			 3, addr, expected_arg, value_arg);
 
       return build_check_this (stmt, this_arg);
     }
@@ -357,8 +358,9 @@
       (void) value_type; /* Avoid set but not used warning.  */
 
       addr = build_addr_sum (long_type_node, obj_arg, offset_arg);
-      stmt = build_call_expr (built_in_decls[BUILT_IN_BOOL_COMPARE_AND_SWAP_8],
-			      3, addr, expected_arg, value_arg);
+      stmt = build_call_expr 
+			(built_in_decls[BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_8],
+			 3, addr, expected_arg, value_arg);
 
       return build_check_this (stmt, this_arg);
     }
@@ -378,8 +380,8 @@
 
     UNMARSHAL5 (orig_call);
     builtin = (POINTER_SIZE == 32 
-	       ? BUILT_IN_BOOL_COMPARE_AND_SWAP_4 
-	       : BUILT_IN_BOOL_COMPARE_AND_SWAP_8);
+	       ? BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_4 
+	       : BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_8);
 
     addr = build_addr_sum (value_type, obj_arg, offset_arg);
     stmt = build_call_expr (built_in_decls[builtin],
@@ -402,7 +404,7 @@
     = fold_convert (build_pointer_type (build_type_variant (value_type, 0, 1)),
 		    addr);
   
-  stmt = build_call_expr (built_in_decls[BUILT_IN_SYNCHRONIZE], 0);
+  stmt = build_call_expr (built_in_decls[BUILT_IN_SYNC_SYNCHRONIZE], 0);
   modify_stmt = fold_build2 (MODIFY_EXPR, value_type,
 			     build_java_indirect_ref (value_type, addr,
 						      flag_check_references),
@@ -426,7 +428,7 @@
     = fold_convert (build_pointer_type (build_type_variant 
 					(method_return_type, 0, 1)), addr);
   
-  stmt = build_call_expr (built_in_decls[BUILT_IN_SYNCHRONIZE], 0);
+  stmt = build_call_expr (built_in_decls[BUILT_IN_SYNC_SYNCHRONIZE], 0);
   
   tmp = build_decl (BUILTINS_LOCATION, VAR_DECL, NULL, method_return_type);
   DECL_IGNORED_P (tmp) = 1;
@@ -573,21 +575,21 @@
 		  boolean_ftype_boolean_boolean,
 		  "__builtin_expect",
 		  BUILTIN_CONST | BUILTIN_NOTHROW);
-  define_builtin (BUILT_IN_BOOL_COMPARE_AND_SWAP_4, 
+  define_builtin (BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_4, 
 		  "__sync_bool_compare_and_swap_4",
 		  build_function_type_list (boolean_type_node,
 					    int_type_node, 
 					    build_pointer_type (int_type_node),
 					    int_type_node, NULL_TREE), 
 		  "__sync_bool_compare_and_swap_4", 0);
-  define_builtin (BUILT_IN_BOOL_COMPARE_AND_SWAP_8, 
+  define_builtin (BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_8, 
 		  "__sync_bool_compare_and_swap_8",
 		  build_function_type_list (boolean_type_node,
 					    long_type_node, 
 					    build_pointer_type (long_type_node),
 					    int_type_node, NULL_TREE), 
 		  "__sync_bool_compare_and_swap_8", 0);
-  define_builtin (BUILT_IN_SYNCHRONIZE, "__sync_synchronize",
+  define_builtin (BUILT_IN_SYNC_SYNCHRONIZE, "__sync_synchronize",
 		  build_function_type_list (void_type_node, NULL_TREE),
 		  "__sync_synchronize", BUILTIN_NOTHROW);
   
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index 6f43b19..3bf983a 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -2940,7 +2940,7 @@
 
       if (TREE_THIS_VOLATILE (field_decl))
 	java_add_stmt
-	  (build_call_expr (built_in_decls[BUILT_IN_SYNCHRONIZE], 0));
+	  (build_call_expr (built_in_decls[BUILT_IN_SYNC_SYNCHRONIZE], 0));
       	  
       java_add_stmt (modify_expr);
     }
@@ -2959,7 +2959,7 @@
 
       if (TREE_THIS_VOLATILE (field_decl))
 	java_add_stmt 
-	  (build_call_expr (built_in_decls[BUILT_IN_SYNCHRONIZE], 0));
+	  (build_call_expr (built_in_decls[BUILT_IN_SYNC_SYNCHRONIZE], 0));
 
       push_value (temp);
     }      
diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c
index fbf5dcc..57c40c5 100644
--- a/gcc/libgcc2.c
+++ b/gcc/libgcc2.c
@@ -762,7 +762,50 @@
   return ret + add;
 }
 #endif
+
+#ifdef L_clrsbsi2
+#undef int
+int
+__clrsbSI2 (Wtype x)
+{
+  Wtype ret;
 
+  if (x < 0)
+    x = ~x;
+  if (x == 0)
+    return W_TYPE_SIZE - 1;
+  count_leading_zeros (ret, x);
+  return ret - 1;
+}
+#endif
+
+#ifdef L_clrsbdi2
+#undef int
+int
+__clrsbDI2 (DWtype x)
+{
+  const DWunion uu = {.ll = x};
+  UWtype word;
+  Wtype ret, add;
+
+  if (uu.s.high == 0)
+    word = uu.s.low, add = W_TYPE_SIZE;
+  else if (uu.s.high == -1)
+    word = ~uu.s.low, add = W_TYPE_SIZE;
+  else if (uu.s.high >= 0)
+    word = uu.s.high, add = 0;
+  else
+    word = ~uu.s.high, add = 0;
+
+  if (word == 0)
+    ret = W_TYPE_SIZE;
+  else
+    count_leading_zeros (ret, word);
+
+  return ret + add - 1;
+}
+#endif
+
 #ifdef L_popcount_tab
 const UQItype __popcount_tab[256] =
 {
diff --git a/gcc/libgcc2.h b/gcc/libgcc2.h
index bb4e6f3..0c7d0e1 100644
--- a/gcc/libgcc2.h
+++ b/gcc/libgcc2.h
@@ -315,11 +315,13 @@
 #define __ffsSI2	__NW(ffs,2)
 #define __clzSI2	__NW(clz,2)
 #define __ctzSI2	__NW(ctz,2)
+#define __clrsbSI2	__NW(clrsb,2)
 #define __popcountSI2	__NW(popcount,2)
 #define __paritySI2	__NW(parity,2)
 #define __ffsDI2	__NDW(ffs,2)
 #define __clzDI2	__NDW(clz,2)
 #define __ctzDI2	__NDW(ctz,2)
+#define __clrsbDI2	__NDW(clrsb,2)
 #define __popcountDI2	__NDW(popcount,2)
 #define __parityDI2	__NDW(parity,2)
 
@@ -508,9 +510,11 @@
 extern int __clzDI2 (UDWtype);
 extern int __clzSI2 (UWtype);
 extern int __ctzSI2 (UWtype);
+extern int __ctzDI2 (UDWtype);
+extern int __clrsbSI2 (Wtype);
+extern int __clrsbDI2 (DWtype);
 extern int __ffsSI2 (UWtype);
 extern int __ffsDI2 (DWtype);
-extern int __ctzDI2 (UDWtype);
 extern int __popcountSI2 (UWtype);
 extern int __popcountDI2 (UDWtype);
 extern int __paritySI2 (UWtype);
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 99dedf9..05646bf 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -3,7 +3,7 @@
    marshalling to implement data sharing and copying clauses.
    Contributed by Diego Novillo <dnovillo@redhat.com>
 
-   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
+   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -4108,9 +4108,14 @@
 	else
 	  n = (adj + N2 - N1) / STEP;
 	q = n / nthreads;
-	q += (q * nthreads != n);
-	s0 = q * threadid;
-	e0 = min(s0 + q, n);
+	tt = n % nthreads;
+	if (threadid < tt) goto L3; else goto L4;
+    L3:
+	tt = 0;
+	q = q + 1;
+    L4:
+	s0 = q * threadid + tt;
+	e0 = s0 + q;
 	V = s0 * STEP + N1;
 	if (s0 >= e0) goto L2; else goto L0;
     L0:
@@ -4126,12 +4131,14 @@
 expand_omp_for_static_nochunk (struct omp_region *region,
 			       struct omp_for_data *fd)
 {
-  tree n, q, s0, e0, e, t, nthreads, threadid;
+  tree n, q, s0, e0, e, t, tt, nthreads, threadid;
   tree type, itype, vmain, vback;
-  basic_block entry_bb, exit_bb, seq_start_bb, body_bb, cont_bb;
+  basic_block entry_bb, second_bb, third_bb, exit_bb, seq_start_bb;
+  basic_block body_bb, cont_bb;
   basic_block fin_bb;
   gimple_stmt_iterator gsi;
   gimple stmt;
+  edge ep;
 
   itype = type = TREE_TYPE (fd->loop.v);
   if (POINTER_TYPE_P (type))
@@ -4185,19 +4192,39 @@
   t = fold_convert (itype, t);
   n = force_gimple_operand_gsi (&gsi, t, true, NULL_TREE, true, GSI_SAME_STMT);
 
+  q = create_tmp_var (itype, "q");
   t = fold_build2 (TRUNC_DIV_EXPR, itype, n, nthreads);
-  q = force_gimple_operand_gsi (&gsi, t, true, NULL_TREE, true, GSI_SAME_STMT);
+  t = force_gimple_operand_gsi (&gsi, t, false, NULL_TREE, true, GSI_SAME_STMT);
+  gsi_insert_before (&gsi, gimple_build_assign (q, t), GSI_SAME_STMT);
 
-  t = fold_build2 (MULT_EXPR, itype, q, nthreads);
-  t = fold_build2 (NE_EXPR, itype, t, n);
-  t = fold_build2 (PLUS_EXPR, itype, q, t);
-  q = force_gimple_operand_gsi (&gsi, t, true, NULL_TREE, true, GSI_SAME_STMT);
+  tt = create_tmp_var (itype, "tt");
+  t = fold_build2 (TRUNC_MOD_EXPR, itype, n, nthreads);
+  t = force_gimple_operand_gsi (&gsi, t, false, NULL_TREE, true, GSI_SAME_STMT);
+  gsi_insert_before (&gsi, gimple_build_assign (tt, t), GSI_SAME_STMT);
+
+  t = build2 (LT_EXPR, boolean_type_node, threadid, tt);
+  stmt = gimple_build_cond_empty (t);
+  gsi_insert_before (&gsi, stmt, GSI_SAME_STMT);
+
+  second_bb = split_block (entry_bb, stmt)->dest;
+  gsi = gsi_last_bb (second_bb);
+  gcc_assert (gimple_code (gsi_stmt (gsi)) == GIMPLE_OMP_FOR);
+
+  gsi_insert_before (&gsi, gimple_build_assign (tt, build_int_cst (itype, 0)),
+		     GSI_SAME_STMT);
+  stmt = gimple_build_assign_with_ops (PLUS_EXPR, q, q,
+				       build_int_cst (itype, 1));
+  gsi_insert_before (&gsi, stmt, GSI_SAME_STMT);
+
+  third_bb = split_block (second_bb, stmt)->dest;
+  gsi = gsi_last_bb (third_bb);
+  gcc_assert (gimple_code (gsi_stmt (gsi)) == GIMPLE_OMP_FOR);
 
   t = build2 (MULT_EXPR, itype, q, threadid);
+  t = build2 (PLUS_EXPR, itype, t, tt);
   s0 = force_gimple_operand_gsi (&gsi, t, true, NULL_TREE, true, GSI_SAME_STMT);
 
   t = fold_build2 (PLUS_EXPR, itype, s0, q);
-  t = fold_build2 (MIN_EXPR, itype, t, n);
   e0 = force_gimple_operand_gsi (&gsi, t, true, NULL_TREE, true, GSI_SAME_STMT);
 
   t = build2 (GE_EXPR, boolean_type_node, s0, e0);
@@ -4263,13 +4290,20 @@
   gsi_remove (&gsi, true);
 
   /* Connect all the blocks.  */
-  find_edge (entry_bb, seq_start_bb)->flags = EDGE_FALSE_VALUE;
-  find_edge (entry_bb, fin_bb)->flags = EDGE_TRUE_VALUE;
+  ep = make_edge (entry_bb, third_bb, EDGE_FALSE_VALUE);
+  ep->probability = REG_BR_PROB_BASE / 4 * 3;
+  ep = find_edge (entry_bb, second_bb);
+  ep->flags = EDGE_TRUE_VALUE;
+  ep->probability = REG_BR_PROB_BASE / 4;
+  find_edge (third_bb, seq_start_bb)->flags = EDGE_FALSE_VALUE;
+  find_edge (third_bb, fin_bb)->flags = EDGE_TRUE_VALUE;
 
   find_edge (cont_bb, body_bb)->flags = EDGE_TRUE_VALUE;
   find_edge (cont_bb, fin_bb)->flags = EDGE_FALSE_VALUE;
 
-  set_immediate_dominator (CDI_DOMINATORS, seq_start_bb, entry_bb);
+  set_immediate_dominator (CDI_DOMINATORS, second_bb, entry_bb);
+  set_immediate_dominator (CDI_DOMINATORS, third_bb, entry_bb);
+  set_immediate_dominator (CDI_DOMINATORS, seq_start_bb, third_bb);
   set_immediate_dominator (CDI_DOMINATORS, body_bb,
 			   recompute_dominator (CDI_DOMINATORS, body_bb));
   set_immediate_dominator (CDI_DOMINATORS, fin_bb,
@@ -4973,23 +5007,23 @@
     {
     case PLUS_EXPR:
     case POINTER_PLUS_EXPR:
-      base = BUILT_IN_FETCH_AND_ADD_N;
+      base = BUILT_IN_SYNC_FETCH_AND_ADD_N;
       optab = sync_add_optab;
       break;
     case MINUS_EXPR:
-      base = BUILT_IN_FETCH_AND_SUB_N;
+      base = BUILT_IN_SYNC_FETCH_AND_SUB_N;
       optab = sync_add_optab;
       break;
     case BIT_AND_EXPR:
-      base = BUILT_IN_FETCH_AND_AND_N;
+      base = BUILT_IN_SYNC_FETCH_AND_AND_N;
       optab = sync_and_optab;
       break;
     case BIT_IOR_EXPR:
-      base = BUILT_IN_FETCH_AND_OR_N;
+      base = BUILT_IN_SYNC_FETCH_AND_OR_N;
       optab = sync_ior_optab;
       break;
     case BIT_XOR_EXPR:
-      base = BUILT_IN_FETCH_AND_XOR_N;
+      base = BUILT_IN_SYNC_FETCH_AND_XOR_N;
       optab = sync_xor_optab;
       break;
     default:
@@ -5057,7 +5091,7 @@
   gimple phi, stmt;
   edge e;
 
-  cmpxchg = built_in_decls[BUILT_IN_VAL_COMPARE_AND_SWAP_N + index + 1];
+  cmpxchg = built_in_decls[BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_N + index + 1];
   if (cmpxchg == NULL_TREE)
     return false;
   type = TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (addr)));
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 224fb11..bf15ab4 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -1,7 +1,7 @@
 /* Expand the basic unary and binary arithmetic operations, for GNU compiler.
    Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-   Free Software Foundation, Inc.
+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+   2011  Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -2327,9 +2327,12 @@
 /* Try calculating
 	(clz:narrow x)
    as
-	(clz:wide (zero_extend:wide x)) - ((width wide) - (width narrow)).  */
+	(clz:wide (zero_extend:wide x)) - ((width wide) - (width narrow)).
+
+   A similar operation can be used for clrsb.  UNOPTAB says which operation
+   we are trying to expand.  */
 static rtx
-widen_clz (enum machine_mode mode, rtx op0, rtx target)
+widen_leading (enum machine_mode mode, rtx op0, rtx target, optab unoptab)
 {
   enum mode_class mclass = GET_MODE_CLASS (mode);
   if (CLASS_HAS_WIDER_MODES_P (mclass))
@@ -2339,7 +2342,7 @@
 	   wider_mode != VOIDmode;
 	   wider_mode = GET_MODE_WIDER_MODE (wider_mode))
 	{
-	  if (optab_handler (clz_optab, wider_mode) != CODE_FOR_nothing)
+	  if (optab_handler (unoptab, wider_mode) != CODE_FOR_nothing)
 	    {
 	      rtx xop0, temp, last;
 
@@ -2347,8 +2350,10 @@
 
 	      if (target == 0)
 		target = gen_reg_rtx (mode);
-	      xop0 = widen_operand (op0, wider_mode, mode, true, false);
-	      temp = expand_unop (wider_mode, clz_optab, xop0, NULL_RTX, true);
+	      xop0 = widen_operand (op0, wider_mode, mode,
+				    unoptab != clrsb_optab, false);
+	      temp = expand_unop (wider_mode, unoptab, xop0, NULL_RTX,
+				  unoptab != clrsb_optab);
 	      if (temp != 0)
 		temp = expand_binop (wider_mode, sub_optab, temp,
 				     GEN_INT (GET_MODE_BITSIZE (wider_mode)
@@ -2844,7 +2849,7 @@
   /* Widening (or narrowing) clz needs special treatment.  */
   if (unoptab == clz_optab)
     {
-      temp = widen_clz (mode, op0, target);
+      temp = widen_leading (mode, op0, target, unoptab);
       if (temp)
 	return temp;
 
@@ -2856,7 +2861,15 @@
 	    return temp;
 	}
 
-	goto try_libcall;
+      goto try_libcall;
+    }
+
+  if (unoptab == clrsb_optab)
+    {
+      temp = widen_leading (mode, op0, target, unoptab);
+      if (temp)
+	return temp;
+      goto try_libcall;
     }
 
   /* Widening (or narrowing) bswap needs special treatment.  */
@@ -3011,7 +3024,8 @@
       /* All of these functions return small values.  Thus we choose to
 	 have them return something that isn't a double-word.  */
       if (unoptab == ffs_optab || unoptab == clz_optab || unoptab == ctz_optab
-	  || unoptab == popcount_optab || unoptab == parity_optab)
+	  || unoptab == clrsb_optab || unoptab == popcount_optab
+	  || unoptab == parity_optab)
 	outmode
 	  = GET_MODE (hard_libcall_value (TYPE_MODE (integer_type_node),
 					  optab_libfunc (unoptab, mode)));
@@ -3063,8 +3077,9 @@
 				  unsignedp);
 
 	      /* If we are generating clz using wider mode, adjust the
-		 result.  */
-	      if (unoptab == clz_optab && temp != 0)
+		 result.  Similarly for clrsb.  */
+	      if ((unoptab == clz_optab || unoptab == clrsb_optab)
+		  && temp != 0)
 		temp = expand_binop (wider_mode, sub_optab, temp,
 				     GEN_INT (GET_MODE_BITSIZE (wider_mode)
 					      - GET_MODE_BITSIZE (mode)),
@@ -5910,6 +5925,9 @@
   init_optab (usashl_optab, US_ASHIFT);
   init_optab (ashr_optab, ASHIFTRT);
   init_optab (lshr_optab, LSHIFTRT);
+  init_optabv (vashl_optab, ASHIFT);
+  init_optabv (vashr_optab, ASHIFTRT);
+  init_optabv (vlshr_optab, LSHIFTRT);
   init_optab (rotl_optab, ROTATE);
   init_optab (rotr_optab, ROTATERT);
   init_optab (smin_optab, SMIN);
@@ -5958,6 +5976,7 @@
   init_optab (ffs_optab, FFS);
   init_optab (clz_optab, CLZ);
   init_optab (ctz_optab, CTZ);
+  init_optab (clrsb_optab, CLRSB);
   init_optab (popcount_optab, POPCOUNT);
   init_optab (parity_optab, PARITY);
   init_optab (sqrt_optab, SQRT);
@@ -6188,6 +6207,9 @@
   ctz_optab->libcall_basename = "ctz";
   ctz_optab->libcall_suffix = '2';
   ctz_optab->libcall_gen = gen_int_libfunc;
+  clrsb_optab->libcall_basename = "clrsb";
+  clrsb_optab->libcall_suffix = '2';
+  clrsb_optab->libcall_gen = gen_int_libfunc;
   popcount_optab->libcall_basename = "popcount";
   popcount_optab->libcall_suffix = '2';
   popcount_optab->libcall_gen = gen_int_libfunc;
diff --git a/gcc/optabs.h b/gcc/optabs.h
index 62bc14e..477fce3 100644
--- a/gcc/optabs.h
+++ b/gcc/optabs.h
@@ -220,6 +220,7 @@
   OTI_ffs,
   OTI_clz,
   OTI_ctz,
+  OTI_clrsb,
   OTI_popcount,
   OTI_parity,
   /* Square root */
@@ -456,6 +457,7 @@
 #define ffs_optab (&optab_table[OTI_ffs])
 #define clz_optab (&optab_table[OTI_clz])
 #define ctz_optab (&optab_table[OTI_ctz])
+#define clrsb_optab (&optab_table[OTI_clrsb])
 #define popcount_optab (&optab_table[OTI_popcount])
 #define parity_optab (&optab_table[OTI_parity])
 #define sqrt_optab (&optab_table[OTI_sqrt])
diff --git a/gcc/opts.c b/gcc/opts.c
index e9b4334..18bbe43 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -34,7 +34,6 @@
 #include "diagnostic.h"
 #include "opts-diagnostic.h"
 #include "insn-attr.h"		/* For INSN_SCHEDULING and DELAY_SLOTS.  */
-#include "target.h"
 #include "common/common-target.h"
 
 /* Parse the -femit-struct-debug-detailed option value
@@ -1269,10 +1268,6 @@
     case OPT__target_help:
       print_specific_help (CL_TARGET, CL_UNDOCUMENTED, 0, opts, lang_mask);
       opts->x_exit_after_options = true;
-
-      /* Allow the target a chance to give the user some additional information.  */
-      if (targetm.help)
-	targetm.help ();
       break;
 
     case OPT__help_:
diff --git a/gcc/params.c b/gcc/params.c
index 95af6ce..793ddef 100644
--- a/gcc/params.c
+++ b/gcc/params.c
@@ -1,5 +1,5 @@
 /* params.c - Run-time parameters.
-   Copyright (C) 2001, 2003, 2004, 2005, 2007, 2008, 2009, 2010
+   Copyright (C) 2001, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
    Written by Mark Mitchell <mark@codesourcery.com>.
 
@@ -22,7 +22,7 @@
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
-#include "tm.h"
+#include "common/common-target.h"
 #include "params.h"
 #include "diagnostic-core.h"
 
@@ -38,6 +38,14 @@
    default values determined.  */
 static bool params_finished;
 
+static const param_info lang_independent_params[] = {
+#define DEFPARAM(ENUM, OPTION, HELP, DEFAULT, MIN, MAX) \
+  { OPTION, DEFAULT, MIN, MAX, HELP },
+#include "params.def"
+#undef DEFPARAM
+  { NULL, 0, 0, 0, NULL }
+};
+
 /* Add the N PARAMS to the current list of compiler parameters.  */
 
 void
@@ -56,6 +64,16 @@
   num_compiler_params += n;
 }
 
+/* Add all parameters and default values that can be set in both the
+   driver and the compiler proper.  */
+
+void
+global_init_params (void)
+{
+  add_params (lang_independent_params, LAST_PARAM);
+  targetm_common.option_default_params ();
+}
+
 /* Note that all parameters have been added and all default values
    set.  */
 
diff --git a/gcc/params.h b/gcc/params.h
index 98a64fd..364029d 100644
--- a/gcc/params.h
+++ b/gcc/params.h
@@ -105,6 +105,11 @@
 
 extern void set_default_param_value (compiler_param num, int value);
 
+/* Add all parameters and default values that can be set in both the
+   driver and the compiler proper.  */
+
+extern void global_init_params (void);
+
 /* Note that all parameters have been added and all default values
    set.  */
 extern void finish_params (void);
diff --git a/gcc/passes.c b/gcc/passes.c
index fb9de2b..a03aa3f 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -332,7 +332,7 @@
 
 /* The root of the compilation pass tree, once constructed.  */
 struct opt_pass *all_passes, *all_small_ipa_passes, *all_lowering_passes,
-  *all_regular_ipa_passes, *all_lto_gen_passes;
+  *all_regular_ipa_passes, *all_late_ipa_passes, *all_lto_gen_passes;
 
 /* This is used by plugins, and should also be used in register_pass.  */
 #define DEF_PASS_LIST(LIST) &LIST,
@@ -617,6 +617,7 @@
   dump_pass_list (all_small_ipa_passes, 1);
   dump_pass_list (all_regular_ipa_passes, 1);
   dump_pass_list (all_lto_gen_passes, 1);
+  dump_pass_list (all_late_ipa_passes, 1);
   dump_pass_list (all_passes, 1);
 
   pop_cfun ();
@@ -1103,6 +1104,8 @@
   if (!success || all_instances)
     success |= position_pass (pass_info, &all_lto_gen_passes);
   if (!success || all_instances)
+    success |= position_pass (pass_info, &all_late_ipa_passes);
+  if (!success || all_instances)
     success |= position_pass (pass_info, &all_passes);
   if (!success)
     fatal_error
@@ -1249,7 +1252,6 @@
   NEXT_PASS (pass_ipa_inline);
   NEXT_PASS (pass_ipa_pure_const);
   NEXT_PASS (pass_ipa_reference);
-  NEXT_PASS (pass_ipa_pta);
   *p = NULL;
 
   p = &all_lto_gen_passes;
@@ -1257,9 +1259,16 @@
   NEXT_PASS (pass_ipa_lto_finish_out);  /* This must be the last LTO pass.  */
   *p = NULL;
 
+  /* Simple IPA passes executed after the regular passes.  In WHOPR mode the
+     passes are executed after partitioning and thus see just parts of the
+     compiled unit.  */
+  p = &all_late_ipa_passes;
+  NEXT_PASS (pass_ipa_pta);
+  *p = NULL;
   /* These passes are run after IPA passes on every function that is being
      output to the assembler file.  */
   p = &all_passes;
+  NEXT_PASS (pass_fixup_cfg);
   NEXT_PASS (pass_lower_eh_dispatch);
   NEXT_PASS (pass_all_optimizations);
     {
@@ -1517,6 +1526,9 @@
   register_dump_files (all_lto_gen_passes,
 		       PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh
 		       | PROP_cfg);
+  register_dump_files (all_late_ipa_passes,
+		       PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh
+		       | PROP_cfg);
   register_dump_files (all_passes,
 		       PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh
 		       | PROP_cfg);
@@ -1935,6 +1947,20 @@
     }
 }
 
+/* Callback for do_per_function to apply all IPA transforms.  */
+
+static void
+apply_ipa_transforms (void *data)
+{
+  struct cgraph_node *node = cgraph_get_node (current_function_decl);
+  if (!node->global.inlined_to && node->ipa_transforms_to_apply)
+    {
+      *(bool *)data = true;
+      execute_all_ipa_transforms();
+      rebuild_cgraph_edges ();
+    }
+}
+
 /* Check if PASS is explicitly disabled or enabled and return
    the gate status.  FUNC is the function to be processed, and
    GATE_STATUS is the gate status determined by pass manager by
@@ -1996,6 +2022,16 @@
      executed.  */
   invoke_plugin_callbacks (PLUGIN_PASS_EXECUTION, pass);
 
+  /* SIPLE IPA passes do not handle callgraphs with IPA transforms in it.
+     Apply all trnasforms first.  */
+  if (pass->type == SIMPLE_IPA_PASS)
+    {
+      bool applied = false;
+      do_per_function (apply_ipa_transforms, (void *)&applied);
+      if (applied)
+        cgraph_remove_unreachable_nodes (true, dump_file);
+    }
+
   if (!quiet_flag && !cfun)
     fprintf (stderr, " <%s>", pass->name ? pass->name : "");
 
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 53ca29c..a0ae2fa 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,15 @@
+2011-06-24  Joseph Myers  <joseph@codesourcery.com>
+
+	* de.po: Update.
+
+2011-06-23  Joseph Myers  <joseph@codesourcery.com>
+
+	* de.po: Update.
+
+2011-06-21  Joseph Myers  <joseph@codesourcery.com>
+
+	* gcc.pot: Regenerate.
+
 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
 
 	* exgettext: Handle common/ directory and subdirectories.
diff --git a/gcc/po/de.po b/gcc/po/de.po
index e4667fd..7f5742e 100644
--- a/gcc/po/de.po
+++ b/gcc/po/de.po
@@ -9,7 +9,7 @@
 "Project-Id-Version: gcc 4.6.0\n"
 "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
 "POT-Creation-Date: 2011-03-24 16:45+0000\n"
-"PO-Revision-Date: 2011-04-25 19:50+0100\n"
+"PO-Revision-Date: 2011-06-24 13:27+0100\n"
 "Last-Translator: Roland Stigge <stigge@antcom.de>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de\n"
@@ -22763,154 +22763,154 @@
 msgstr "doppeltes Attribut %qE für Adressregion in Deklaration von %qE in Zeile %d"
 
 #: config/mep/mep.c:3996
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "cannot inline interrupt function %qE"
-msgstr "va_start in Unterbrechungsfunktion kann nicht verwendet werden"
+msgstr "Interruptfunktion %qE kann nicht »inline« sein"
 
 #: config/mep/mep.c:4002
 #, gcc-internal-format
 msgid "interrupt function must have return type of void"
-msgstr ""
+msgstr "Interruptfunktion muss Rückgabetyp »void« haben"
 
 #: config/mep/mep.c:4007
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "interrupt function must have no arguments"
-msgstr "Die Option »-%c« muss ein Argument haben"
+msgstr "Interruptfunktion darf keine Argumente haben"
 
 #: config/mep/mep.c:4028
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
-msgstr "Attribut %qs benötigt eine Ganzzahlkonstante als Argument"
+msgstr "Attribut %qE erlaubt nur eine Ganzzahlkonstante als Argument"
 
 #: config/mep/mep.c:4061
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qE attribute only applies to functions, not %s"
-msgstr "Attribut %qs gilt nur für Funktionen"
+msgstr "Attribut %qE gilt nur für Funktionen, nicht %s"
 
 #: config/mep/mep.c:4071
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "to describe a pointer to a VLIW function, use syntax like this:"
-msgstr "Zeiger auf Funktion in Arithmetik verwendet"
+msgstr "um Zeiger auf VLIW-Funktion zu beschreiben, folgende Syntax verwenden:"
 
 #: config/mep/mep.c:4072
 #, gcc-internal-format
 msgid "  typedef int (__vliw *vfuncptr) ();"
-msgstr ""
+msgstr "  typedef int (__vliw *vfuncptr) ();"
 
 #: config/mep/mep.c:4079
 #, gcc-internal-format
 msgid "to describe an array of VLIW function pointers, use syntax like this:"
-msgstr ""
+msgstr "um Feld von VLIW-Funktionszeigern zu beschreiben, folgende Syntax verwenden:"
 
 #: config/mep/mep.c:4080
 #, gcc-internal-format
 msgid "  typedef int (__vliw *vfuncptr[]) ();"
-msgstr ""
+msgstr "  typedef int (__vliw *vfuncptr[]) ();"
 
 #: config/mep/mep.c:4085
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "VLIW functions are not allowed without a VLIW configuration"
-msgstr "bei einer Funktionsdefinition sind keine Attribute erlaubt"
+msgstr "VLIW-Funktionen ohne VLIW-Konfiguration sind nicht erlaubt"
 
 #: config/mep/mep.c:4233
 #, gcc-internal-format, gfc-internal-format
 msgid "\"#pragma disinterrupt %s\" not used"
-msgstr ""
+msgstr "»#pragma disinterrupt %s« nicht verwendet"
 
 #: config/mep/mep.c:4399
 #, gcc-internal-format
 msgid "__io address 0x%x is the same for %qE and %qE"
-msgstr ""
+msgstr "__io-Adresse 0x%x ist die selbe für %qE und %qE"
 
 #: config/mep/mep.c:4547
 #, gcc-internal-format, gfc-internal-format
 msgid "variable %s (%ld bytes) is too large for the %s section (%d bytes)"
-msgstr ""
+msgstr "Variable %s (%ld Bytes) ist zu groß für Abschnitt %s (%d Bytes)"
 
 #: config/mep/mep.c:4645
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "variable %D of type %<io%> must be uninitialized"
-msgstr "Objekt variabler Größe vom Typ %qT kann nicht initialisiert sein"
+msgstr "Variable %D des Typs %<io%> muss uninitialisiert sein"
 
 #: config/mep/mep.c:4650
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "variable %D of type %<cb%> must be uninitialized"
-msgstr "Objekt variabler Größe vom Typ %qT kann nicht initialisiert sein"
+msgstr "Variable %D des Typs %<cb%> muss uninitialisiert sein"
 
 #: config/mep/mep.c:6100
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "coprocessor intrinsic %qs is not available in this configuration"
-msgstr "Kommandozeilenoption %qs wird von dieser Konfiguration nicht unterstützt"
+msgstr "Koprozessor-eigenes %qs ist in dieser Konfiguration nicht verfügbar"
 
 #: config/mep/mep.c:6103
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs is not available in VLIW functions"
-msgstr "%qD ist keine Templatefunktion"
+msgstr "%qs ist in VLIW-Funktionen nicht verfügbar"
 
 #: config/mep/mep.c:6106
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs is not available in non-VLIW functions"
-msgstr "%q+D ist normalerweise eine Nicht-static-Funktion"
+msgstr "%qs ist in Nicht-VLIW-Funktionen nicht verfügbar"
 
 #: config/mep/mep.c:6268 config/mep/mep.c:6385
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "argument %d of %qE must be in the range %d...%d"
-msgstr "Argument von ATANH bei %L muss im Bereich -1 bis 1 liegen"
+msgstr "Argument %d von %qE muss im Bereich %d...%d liegen"
 
 #: config/mep/mep.c:6271
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "argument %d of %qE must be a multiple of %d"
-msgstr "Ausrichtung für %q+D muss mindestens %d sein"
+msgstr "Argument %d von %qE muss ein Vielfaches von %d sein"
 
 #: config/mep/mep.c:6324
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "too few arguments to %qE"
-msgstr "zu wenige Argumente für %s %q+#D"
+msgstr "zu wenige Argumente für %qE"
 
 #: config/mep/mep.c:6329
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "too many arguments to %qE"
-msgstr "zu viele Argumente für %s %q+#D"
+msgstr "zu viele Argumente für %qE"
 
 #: config/mep/mep.c:6347
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "argument %d of %qE must be an address"
-msgstr "Argument dim bei %L muss skalar sein"
+msgstr "Argument %d von %qE muss eine Adresse sein"
 
 #: config/mep/mep.c:7143
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "2 byte cop instructions are not allowed in 64-bit VLIW mode"
-msgstr "Angeben, wann Befehle zum Codezugriff erlaubt sind"
+msgstr "2-Byte-Cop-Anweisungen sind im 64-Bit VLIW-Modus nicht erlaubt"
 
 #: config/mep/mep.c:7149
-#, fuzzy, gcc-internal-format, gfc-internal-format
+#, gcc-internal-format, gfc-internal-format
 msgid "unexpected %d byte cop instruction"
-msgstr "angegebene Thumb-Anweisung"
+msgstr "unerwartete %d-Byte-Cop-Anweisung"
 
 #: config/microblaze/microblaze.c:1283
 #, gcc-internal-format
 msgid "-mno-clearbss is deprecated; use -fno-zero-initialized-in-bss"
-msgstr ""
+msgstr "-mno-clearbss ist veraltet; stattdessen -fno-zero-initialized-in-bss verwenden"
 
 #: config/microblaze/microblaze.c:1286
 #, gcc-internal-format
 msgid "-mxl_stack_check is deprecated; use -fstack-check"
-msgstr ""
+msgstr "-mxl_stack_check ist veraltet; stattdessen -fstack-check verwenden"
 
 #: config/microblaze/microblaze.c:1311
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs is an invalid argument to -mcpu="
-msgstr "ungültiges Argument für eingebaute Funktion"
+msgstr "%qs ist ein ungültiges Argument für -mcpu="
 
 #: config/microblaze/microblaze.c:1360
 #, gcc-internal-format
 msgid "-mxl-multiply-high can be used only with -mcpu=v6.00.a or greater"
-msgstr ""
+msgstr "-mxl-multiply-high kann nur mit -mcpu=v6.00.a oder höher verwendet werden"
 
 #: config/microblaze/microblaze.c:1364
 #, gcc-internal-format
 msgid "-mxl-multiply-high requires -mno-xl-soft-mul"
-msgstr ""
+msgstr "-mxl-multiply-high erfordert -mno-xl-soft-mul"
 
 #: config/mips/mips.c:1370 config/mips/mips.c:1372
 #, gcc-internal-format
@@ -22918,14 +22918,14 @@
 msgstr "Attribut %qs gilt nur für Funktionen"
 
 #: config/mips/mips.c:1382
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qE cannot have both %<mips16%> and %<nomips16%> attributes"
-msgstr "%qs kann nicht gleichzeitig die Attribute %<mips16%> und %<nomips16%> haben"
+msgstr "%qE kann nicht gleichzeitig die Attribute %<mips16%> und %<nomips16%> haben"
 
 #: config/mips/mips.c:1404 config/mips/mips.c:1407
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qE redeclared with conflicting %qs attributes"
-msgstr "%qs mit in Konflikt stehenden Attributen %qs redeklariert"
+msgstr "%qE mit in Konflikt stehenden Attributen %qs redeklariert"
 
 #: config/mips/mips.c:2921
 #, gcc-internal-format
@@ -23674,9 +23674,9 @@
 msgstr "Verwendung dezimaler Gleitkommatypen in AltiVec-Typen ist ungültig"
 
 #: config/rs6000/rs6000.c:25073
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without -mvsx"
-msgstr "Verwendung von %<long%> in AltiVec-Typen ist für 64-Bit-Code ungültig"
+msgstr "Verwendung von %<long%> in AltiVec-Typen ist für 64-Bit-Code ohne -mvsx ungültig"
 
 #: config/rs6000/rs6000.c:25076
 #, gcc-internal-format
@@ -23684,39 +23684,39 @@
 msgstr "Verwendung von %<long%> in AltiVec-Typen ist veraltet; %<int%> verwenden"
 
 #: config/rs6000/rs6000.c:25081
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "use of %<long long%> in AltiVec types is invalid without -mvsx"
-msgstr "Verwendung von %<long long%> in AltiVec-Typen ist ungültig"
+msgstr "Verwendung von %<long long%> in AltiVec-Typen ist ohne -mvsx ungültig"
 
 #: config/rs6000/rs6000.c:25084
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without -mvsx"
-msgstr "Verwendung von %<double%> in AltiVec-Typen ist ungültig"
+msgstr "Verwendung von %<double%> in AltiVec-Typen ist ohne -mvsx ungültig"
 
 #: config/rs6000/rs6000.c:27560
 #, gcc-internal-format, gfc-internal-format
 msgid "emitting microcode insn %s\t[%s] #%d"
-msgstr ""
+msgstr "Ausgabe der Mikrocode-Anweisung %s\t[%s] #%d"
 
 #: config/rs6000/rs6000.c:27564
 #, gcc-internal-format, gfc-internal-format
 msgid "emitting conditional microcode insn %s\t[%s] #%d"
-msgstr ""
+msgstr "Ausgabe der bedingten Mikrocode-Anweisung %s\t[%s] #%d"
 
 #: config/rs6000/rs6000.c:27767
-#, fuzzy, gcc-internal-format, gfc-internal-format
+#, gcc-internal-format, gfc-internal-format
 msgid "invalid cpu \"%s\" for %s\"%s\"%s"
-msgstr "ungültige Verwendung von »%%%c«"
+msgstr "ungültige CPU »%s« für %s\"%s\"%s"
 
 #: config/rs6000/rs6000.c:27770
-#, fuzzy, gcc-internal-format, gfc-internal-format
+#, gcc-internal-format, gfc-internal-format
 msgid "%s\"%s\"%s is not allowed"
-msgstr "»%s« ist nicht definiert"
+msgstr "%s\"%s\"%s ist nicht erlaubt"
 
 #: config/rs6000/rs6000.c:27772
-#, fuzzy, gcc-internal-format, gfc-internal-format
+#, gcc-internal-format, gfc-internal-format
 msgid "%s\"%s\"%s is invalid"
-msgstr "Spezifikation »%s« ist ungültig"
+msgstr "%s\"%s\"%s ist ungültig"
 
 #: config/rs6000/aix43.h:32 config/rs6000/aix51.h:32 config/rs6000/aix52.h:32
 #: config/rs6000/aix53.h:32 config/rs6000/aix61.h:32
@@ -23748,9 +23748,9 @@
 msgstr "AltiVec- und E500-Befehle können nicht koexistieren"
 
 #: config/rs6000/e500.h:42
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "VSX and E500 instructions cannot coexist"
-msgstr "AltiVec- und E500-Befehle können nicht koexistieren"
+msgstr "VSX- und E500-Befehle können nicht koexistieren"
 
 #: config/rs6000/e500.h:44
 #, gcc-internal-format
@@ -23773,9 +23773,9 @@
 msgstr "-m64 benötigt eine PowerPC64-CPU"
 
 #: config/rs6000/linux64.h:130
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "-mcmodel incompatible with other toc options"
-msgstr "Mit TI-Werkzeugen kompatiblen Code erzeugen"
+msgstr "-mcmodel unverträglich mit anderen TOC-Optionen"
 
 #. Definitions for __builtin_return_address and __builtin_frame_address.
 #. __builtin_return_address (0) should give link register (65), enable
@@ -23852,19 +23852,19 @@
 msgstr "-m%s wird in dieser Konfiguration nicht unterstützt"
 
 #: config/rx/rx.c:508
-#, fuzzy, gcc-internal-format, gfc-internal-format
+#, gcc-internal-format, gfc-internal-format
 msgid "unreocgnized control register number: %d - using 'psw'"
-msgstr "unbekannter Registername: \"%s\""
+msgstr "unbekannte Steuerregisterzahl: %d - 'psw' wird verwendet"
 
 #: config/rx/rx.c:2106
 #, gcc-internal-format, gfc-internal-format
 msgid "__builtin_rx_%s takes 'C', 'Z', 'S', 'O', 'I', or 'U'"
-msgstr ""
+msgstr "__builtin_rx_%s benötigt 'C', 'Z', 'S', 'O', 'I' oder 'U'"
 
 #: config/rx/rx.c:2108
 #, gcc-internal-format
 msgid "use __builtin_rx_mvtc (0, ... ) to write arbitrary values to PSW"
-msgstr ""
+msgstr "__builtin_rx_mvtc (0, ... ) verwenden, um beliebige Werte in PSW zu schreiben"
 
 #: config/rx/rx.c:2163 config/xtensa/xtensa.c:3129 config/xtensa/xtensa.c:3169
 #, gcc-internal-format
@@ -23872,19 +23872,19 @@
 msgstr "Falscher eingebauter Code"
 
 #: config/rx/rx.c:2289
-#, fuzzy, gcc-internal-format, gfc-internal-format
+#, gcc-internal-format, gfc-internal-format
 msgid "unrecognized argument '%s' to -mcpu= option"
-msgstr "belangloses Argument für »%s«-Option"
+msgstr "unbekanntes Argument »%s« für Option -mcpu="
 
 #: config/rx/rx.c:2294
 #, gcc-internal-format
 msgid "the RX200 cpu does not have FPU hardware"
-msgstr ""
+msgstr "Die RX200-CPU hat keine FPU-Hardware"
 
 #: config/rx/rx.c:2327
 #, gcc-internal-format
 msgid "RX FPU instructions do not support NaNs and infinities"
-msgstr ""
+msgstr "RX-FPU-Befehle unterstützen keine NaNs und Unendlichkeiten"
 
 #: config/s390/s390.c:1602
 #, gcc-internal-format
@@ -23907,17 +23907,17 @@
 msgstr "64-Bit-ABI nicht unterstützt im ESA/390-Modus"
 
 #: config/s390/s390.c:1669
-#, fuzzy, gcc-internal-format, gfc-internal-format
+#, gcc-internal-format, gfc-internal-format
 msgid "hardware decimal floating point instructions not available on %s"
 msgstr "Dezimale Hardware-Gleitkomma-Befehle sind auf %s nicht verfügbar"
 
 #: config/s390/s390.c:1672
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "hardware decimal floating point instructions not available in ESA/390 mode"
 msgstr "Dezimale Hardware-Gleitkomma-Befehle sind im ESA/390-Modus nicht verfügbar"
 
 #: config/s390/s390.c:1682
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "-mhard-dfp can%'t be used in conjunction with -msoft-float"
 msgstr "-mhard-dfp kann nicht in Verbindung mit -msoft-float verwendet werden"
 
@@ -23977,14 +23977,14 @@
 msgstr "__builtin_saveregs wird für dieses Teilziel nicht unterstützt"
 
 #: config/sh/sh.c:8945
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qE attribute only applies to interrupt functions"
-msgstr "Attribut %qs bezieht sich nur auf Unterbrechungsfunktionen"
+msgstr "Attribut %qE bezieht sich nur auf Interruptfunktionen"
 
 #: config/sh/sh.c:9003
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qE attribute is supported only for SH2A"
-msgstr "Attribut %qE wird auf dieser Plattform nicht unterstützt"
+msgstr "Attribut %qE wird nur auf SH2A unterstützt"
 
 #: config/sh/sh.c:9033
 #, gcc-internal-format
@@ -23992,20 +23992,20 @@
 msgstr "Attribut interrupt_handler ist mit -m5-compact unverträglich"
 
 #: config/sh/sh.c:9050
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qE attribute only applies to SH2A"
-msgstr "Attribut %qs gilt nur für Funktionen"
+msgstr "Attribut %qE gilt nur für SH2A"
 
 #: config/sh/sh.c:9072
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qE attribute argument should be between 0 to 255"
-msgstr "Argument des Attributs »%s« sollte zwischen 18 und 255 sein"
+msgstr "Argument des Attributs %qE sollte zwischen 0 und 255 sein"
 
 #. The argument must be a constant string.
 #: config/sh/sh.c:9145
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qE attribute argument not a string constant"
-msgstr "Attributargument %qs ist keine Zeichenkettenkonstante"
+msgstr "Argument des Attributs %qE ist keine Zeichenkettenkonstante"
 
 #: config/sh/sh.c:11709
 #, gcc-internal-format
@@ -24013,22 +24013,22 @@
 msgstr "r0 muss als aufrufzerstörtes Register verfügbar sein"
 
 #: config/sh/sh.c:11730
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "need a second call-clobbered general purpose register"
-msgstr "Ein zweites aufrufzerstörtes Mehrzweckregister wird benötigt"
+msgstr "ein zweites aufrufzerstörtes Mehrzweckregister wird benötigt"
 
 #: config/sh/sh.c:11738
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "need a call-clobbered target register"
-msgstr "Aufrufzerstörtes Zielregister erforderlich"
+msgstr "aufrufzerstörtes Zielregister erforderlich"
 
 #: config/sh/symbian-base.c:112
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qE declared as both exported to and imported from a DLL"
-msgstr "%qs sowohl als »exportiert in« als auch als »importiert aus DLL« deklariert"
+msgstr "%qE sowohl als »exportiert in« als auch als »importiert aus DLL« deklariert"
 
 #: config/sh/symbian-base.c:119
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "failure in redeclaration of %q+D: dllimport%'d symbol lacks external linkage"
 msgstr "Fehler in Redeklaration von %q+D: »dllimport«-iertem Symbol fehlt externe Bindung"
 
@@ -24103,39 +24103,39 @@
 msgstr "Parameterliste passt zu keiner gültigen Signatur für %s()"
 
 #: config/spu/spu.c:548
-#, fuzzy, gcc-internal-format, gfc-internal-format
+#, gcc-internal-format, gfc-internal-format
 msgid "bad value (%s) for -march= switch"
-msgstr "Falscher Wert (%s) für Schalter -masm="
+msgstr "falscher Wert (%s) für Schalter -march="
 
 #: config/spu/spu.c:559
-#, fuzzy, gcc-internal-format, gfc-internal-format
+#, gcc-internal-format, gfc-internal-format
 msgid "bad value (%s) for -mtune= switch"
-msgstr "Falscher Wert (%s) für Schalter -mtune="
+msgstr "falscher Wert (%s) für Schalter -mtune="
 
 #: config/spu/spu.c:5388 config/spu/spu.c:5391
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "creating run-time relocation for %qD"
-msgstr "Schnittstellendeklaration für %qs kann nicht gefunden werden"
+msgstr "Laufzeit-Relocation für %qD wird erzeugt"
 
 #: config/spu/spu.c:5396 config/spu/spu.c:5398
 #, gcc-internal-format
 msgid "creating run-time relocation"
-msgstr ""
+msgstr "Laufzeit-Relocation wird erzeugt"
 
 #: config/spu/spu.c:6470
-#, fuzzy, gcc-internal-format, gfc-internal-format
+#, gcc-internal-format, gfc-internal-format
 msgid "%s expects an integer literal in the range [%d, %d]"
-msgstr "%s erwartet ein Ganzzahlliteral im Bereich [%d, %d]."
+msgstr "%s erwartet ein Ganzzahlliteral im Bereich [%d, %d]"
 
 #: config/spu/spu.c:6490
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%s expects an integer literal in the range [%d, %d]. (%wd)"
-msgstr "%s erwartet ein Ganzzahlliteral im Bereich [%d, %d]. ("
+msgstr "%s erwartet ein Ganzzahlliteral im Bereich [%d, %d]. (%wd)"
 
 #: config/spu/spu.c:6519
-#, fuzzy, gcc-internal-format, gfc-internal-format
+#, gcc-internal-format, gfc-internal-format
 msgid "%d least significant bits of %s are ignored"
-msgstr "%d niederwertigste Bits von %s werden ignoriert."
+msgstr "%d niederwertigste Bits von %s werden ignoriert"
 
 #: config/stormy16/stormy16.c:1035
 #, gcc-internal-format
@@ -24193,9 +24193,9 @@
 msgstr "Ausschuss am Ende von #pragma ghs section"
 
 #: config/v850/v850-c.c:170
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "unrecognized section name %qE"
-msgstr "nicht erkannter Abschnittsname »%s«"
+msgstr "nicht erkannter Abschnittsname %qE"
 
 #: config/v850/v850-c.c:185
 #, gcc-internal-format
@@ -24243,14 +24243,14 @@
 msgstr "an %<-m%s%> übergebener Wert ist zu groß"
 
 #: config/v850/v850.c:2171
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "data area attributes cannot be specified for local variables"
-msgstr "%JDatenabschnittsattribute können nicht für lokale Variablen angegeben werden"
+msgstr "Datenbereichsattribute können nicht für lokale Variablen angegeben werden"
 
 #: config/v850/v850.c:2182
 #, gcc-internal-format
 msgid "data area of %q+D conflicts with previous declaration"
-msgstr "Datenabschnitt von %q+D in Konflikt mit vorheriger Deklaration"
+msgstr "Datenbereich von %q+D in Konflikt mit vorheriger Deklaration"
 
 #: config/v850/v850.c:2313
 #, gcc-internal-format, gfc-internal-format
@@ -24263,9 +24263,9 @@
 msgstr "Falscher Betrag der Stapelspeicherentfernung: %d"
 
 #: config/v850/v850.c:2418
-#, fuzzy, gcc-internal-format, gfc-internal-format
+#, gcc-internal-format, gfc-internal-format
 msgid "bogus JARL construction: %d"
-msgstr "nur simulierte JARL-Konstruktion: %d\n"
+msgstr "falsche JARL-Konstruktion: %d"
 
 #: config/v850/v850.c:2715
 #, gcc-internal-format, gfc-internal-format
@@ -24318,87 +24318,87 @@
 msgstr ""
 
 #: ada/gcc-interface/utils.c:5164
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs attribute requires prototypes with named arguments"
-msgstr "Attribut %qE benötigt Prototypen mit benannten Argumenten"
+msgstr "Attribut %qs benötigt Prototypen mit benannten Argumenten"
 
 #: ada/gcc-interface/utils.c:5176
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs attribute only applies to variadic functions"
-msgstr "Attribut %qE gilt nur für variadische Funktionen"
+msgstr "Attribut %qs gilt nur für variadische Funktionen"
 
 #: ada/gcc-interface/utils.c:5247
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qE attribute has no effect"
-msgstr "Attribut %qE wird ignoriert"
+msgstr "Attribut %qE hat keinen Effekt"
 
 #: ada/gcc-interface/utils.c:5359
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "invalid vector type for attribute %qs"
-msgstr "Ungültiger Vektortyp für Attribut %qE"
+msgstr "ungültiger Vektortyp für Attribut %qs"
 
 #: ada/gcc-interface/utils.c:5422
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "attribute %qs applies to array types only"
-msgstr "Attribut %qs bezieht sich nur auf Variablen"
+msgstr "Attribut %qs bezieht sich nur auf Feldtypen"
 
 #: ada/gcc-interface/utils.c:5449
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "invalid element type for attribute %qs"
-msgstr "Ungültiger Vektortyp für Attribut %qE"
+msgstr "ungültiger Elementtyp für Attribut %qs"
 
 #. Conversion of implicit `this' argument failed.
 #: cp/call.c:2960
 #, gcc-internal-format
 msgid "  no known conversion for implicit %<this%> parameter from %qT to %qT"
-msgstr ""
+msgstr "  keine bekannte Umwandlung für impliziten %<this%>-Parameter von %qT nach %qT"
 
 #: cp/call.c:2964
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  no known conversion for argument %d from %qT to %qT"
-msgstr "  für Umwandlung von %qT in %qT"
+msgstr "  keine bekannte Umwandlung für Argument %d von %qT nach %qT"
 
 #: cp/call.c:2986
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%s%D(%T, %T, %T) <built-in>"
-msgstr "%s %D(%T, %T, %T) <eingebaut>"
+msgstr "%s%D(%T, %T, %T) <eingebaut>"
 
 #: cp/call.c:2991
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%s%D(%T, %T) <built-in>"
-msgstr "%s %D(%T, %T) <eingebaut>"
+msgstr "%s%D(%T, %T) <eingebaut>"
 
 #: cp/call.c:2995
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%s%D(%T) <built-in>"
-msgstr "%s %D(%T) <eingebaut>"
+msgstr "%s%D(%T) <eingebaut>"
 
 #: cp/call.c:2999
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%s%T <conversion>"
-msgstr "%s %T <Umformung>"
+msgstr "%s%T <Umformung>"
 
 #: cp/call.c:3001
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%s%#D <near match>"
-msgstr "%s %+#D <nahe Übereinstimmung>"
+msgstr "%s%#D <nahe Übereinstimmung>"
 
 #: cp/call.c:3003
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%s%#D <deleted>"
-msgstr "%s %+#D <nahe Übereinstimmung>"
+msgstr "%s%#D <gelöscht>"
 
 #: cp/call.c:3005
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%s%#D"
-msgstr "%s %+#D"
+msgstr "%s%#D"
 
 #: cp/call.c:3015
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "  Kandidat erwartet %d Argument, %d angegeben"
+msgstr[1] "  Kandidat erwartet %d Argumente, %d angegeben"
 
 #: cp/call.c:3349
 #, gcc-internal-format
@@ -24406,9 +24406,9 @@
 msgstr "Umformung von %qT in %qT ist nicht eindeutig"
 
 #: cp/call.c:3454
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "conversion from %qT to %qT not considered for non-type template argument"
-msgstr "Umwandlung von %qT in nicht-skalaren Typen %qT angefordert"
+msgstr "Umwandlung von %qT in %qT für Nicht-Typ-Templateargument nicht betrachtet"
 
 #: cp/call.c:3564
 #, gcc-internal-format
@@ -24438,64 +24438,64 @@
 msgstr "Aufruf von %<(%T) (%A)%> ist nicht eindeutig"
 
 #: cp/call.c:3884
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "ambiguous overload for ternary %<operator?:%> in %<%E ? %E : %E%>"
-msgstr "%s für ternären %<operator?:%> in %<%E ? %E : %E%>"
+msgstr "mehrdeutiges Überladen für ternären %<operator?:%> in %<%E ? %E : %E%>"
 
 #: cp/call.c:3887
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "no match for ternary %<operator?:%> in %<%E ? %E : %E%>"
-msgstr "%s für ternären %<operator?:%> in %<%E ? %E : %E%>"
+msgstr "keine Übereinstimmung für ternären %<operator?:%> in %<%E ? %E : %E%>"
 
 #: cp/call.c:3894
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "ambiguous overload for %<operator%s%> in %<%E%s%>"
-msgstr "%s für %<operator%s%> in %<%E%s%>"
+msgstr "mehrdeutiges Überladen für %<operator%s%> in %<%E%s%>"
 
 #: cp/call.c:3897
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "no match for %<operator%s%> in %<%E%s%>"
-msgstr "%s für %<operator%s%> in %<%E%s%>"
+msgstr "keine Übereinstimmung für %<operator%s%> in %<%E%s%>"
 
 #: cp/call.c:3903
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "ambiguous overload for %<operator[]%> in %<%E[%E]%>"
-msgstr "%s für %<operator[]%> in %<%E[%E]%>"
+msgstr "mehrdeutiges Überladen für %<operator[]%> in %<%E[%E]%>"
 
 #: cp/call.c:3906
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "no match for %<operator[]%> in %<%E[%E]%>"
-msgstr "%s für %<operator[]%> in %<%E[%E]%>"
+msgstr "keine Übereinstimmung für %<operator[]%> in %<%E[%E]%>"
 
 #: cp/call.c:3913
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "ambiguous overload for %qs in %<%s %E%>"
-msgstr "%s für %qs in %<%s %E%>"
+msgstr "mehrdeutiges Überladen für %qs in %<%s %E%>"
 
 #: cp/call.c:3916
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "no match for %qs in %<%s %E%>"
-msgstr "%s für %qs in %<%s %E%>"
+msgstr "keine Übereinstimmung für %qs in %<%s %E%>"
 
 #: cp/call.c:3923
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "ambiguous overload for %<operator%s%> in %<%E %s %E%>"
-msgstr "%s für %<operator%s%> in %<%E %s %E%>"
+msgstr "mehrdeutiges Überladen für %<operator%s%> in %<%E %s %E%>"
 
 #: cp/call.c:3926
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "no match for %<operator%s%> in %<%E %s %E%>"
-msgstr "%s für %<operator%s%> in %<%E %s %E%>"
+msgstr "keine Übereinstimmung für %<operator%s%> in %<%E %s %E%>"
 
 #: cp/call.c:3930
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "ambiguous overload for %<operator%s%> in %<%s%E%>"
-msgstr "%s für %<operator%s%> in %<%s%E%>"
+msgstr "mehrdeutiges Überladen für %<operator%s%> in %<%s%E%>"
 
 #: cp/call.c:3933
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "no match for %<operator%s%> in %<%s%E%>"
-msgstr "%s für %<operator%s%> in %<%s%E%>"
+msgstr "keine Übereinstimmung für %<operator%s%> in %<%s%E%>"
 
 #: cp/call.c:4027
 #, gcc-internal-format
@@ -24533,9 +24533,9 @@
 msgstr "kein %<%D(int)%> für Suffix %qs deklariert, stattdessen wird Präfixoperator versucht"
 
 #: cp/call.c:4753
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
-msgstr "kein %<%D(int)%> für Suffix %qs deklariert, stattdessen wird Präfixoperator versucht"
+msgstr "kein %<%D(int)%> für Suffix %qs deklariert"
 
 #: cp/call.c:4847
 #, gcc-internal-format
@@ -24543,19 +24543,19 @@
 msgstr "Vergleich zwischen %q#T und %q#T"
 
 #: cp/call.c:5091
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "non-placement deallocation function %q+D"
-msgstr "keine passende Freigabefunktion für »%D«"
+msgstr "nicht-platzierende Freigabefunktion %q+D"
 
 #: cp/call.c:5092
 #, gcc-internal-format
 msgid "selected for placement delete"
-msgstr ""
+msgstr "für Platzierungs-Löschen ausgewählt"
 
 #: cp/call.c:5171
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
-msgstr "keine passende Freigabefunktion für »%D«"
+msgstr "keine passende Freigabefunktion für %qD"
 
 #: cp/call.c:5176
 #, gcc-internal-format
@@ -24598,9 +24598,9 @@
 msgstr "%<false%> wird für Argument %P von %qD in Zeigertyp umgewandelt"
 
 #: cp/call.c:5295
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "too many braces around initializer for %qT"
-msgstr "geschweifte Klammern fehlen um Initialisierung für %qT"
+msgstr "zu viele geschweifte Klammern um Initialisierung für %qT"
 
 #: cp/call.c:5317 cp/cvt.c:217
 #, gcc-internal-format
@@ -24615,17 +24615,17 @@
 #: cp/call.c:5349
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
-msgstr ""
+msgstr "Umwandlung in %qT von Initialisierungsliste würde expliziten Konstruktor %qD verwenden"
 
 #: cp/call.c:5409 cp/call.c:5525
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  initializing argument %P of %q+D"
-msgstr "  Argument %P von %qD wird initialisiert"
+msgstr "  Argument %P von %q+D wird initialisiert"
 
 #: cp/call.c:5522
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "cannot bind %qT lvalue to %qT"
-msgstr "der R-Wert %qE kann nicht mit %qT verbunden werden"
+msgstr "L-Wert %qT kann nicht mit %qT verbunden werden"
 
 #: cp/call.c:5557
 #, gcc-internal-format
@@ -24643,15 +24643,15 @@
 msgstr "der R-Wert %qE kann nicht mit %qT verbunden werden"
 
 #: cp/call.c:5699
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "cannot pass objects of non-trivially-copyable type %q#T through %<...%>"
-msgstr "Objekte des Nicht-POD-Typs %q#T können nicht über %<...%> übergeben werden; Aufruf wird zur Laufzeit abbrechen"
+msgstr "Objekte des nicht trivial kopierbaren Typs %q#T können nicht über %<...%> übergeben werden"
 
 #. conditionally-supported behavior [expr.call] 5.2.2/7.
 #: cp/call.c:5728
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "cannot receive objects of non-trivially-copyable type %q#T through %<...%>; "
-msgstr "Objekte des Nicht-POD-Typs %q#T können nicht über %<...%> empfangen werden; Aufruf wird zur Laufzeit abbrechen"
+msgstr "Objekte des nicht trivial kopierbaren Typs %q#T können nicht über %<...%> empfangen werden; "
 
 #: cp/call.c:5774
 #, gcc-internal-format
@@ -24679,19 +24679,19 @@
 msgstr "%qT ist keine erreichbare Basis von %qT"
 
 #: cp/call.c:6190
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "deducing %qT as %qT"
-msgstr "Deklaration von %qD als %s"
+msgstr "%qT ermittelt als %qT"
 
 #: cp/call.c:6193
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  in call to %q+D"
-msgstr "  in Aufruf von %qD"
+msgstr "  in Aufruf von %q+D"
 
 #: cp/call.c:6195
 #, gcc-internal-format
 msgid "  (you can disable this with -fno-deduce-init-list)"
-msgstr ""
+msgstr "  (dies kann mit -fno-deduce-init-list abgeschaltet werden)"
 
 #: cp/call.c:6465
 #, gcc-internal-format
@@ -24706,17 +24706,17 @@
 #: cp/call.c:6768 cp/typeck.c:2543
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
-msgstr ""
+msgstr "Konstruktor %<%T::%D%> kann nicht direkt aufgerufen werden"
 
 #: cp/call.c:6770
 #, gcc-internal-format
 msgid "  for a function-style cast, remove the redundant %<::%D%>"
-msgstr ""
+msgstr "  für Umwandlung im Funktions-Stil muss das überflüssige %<::%D%> entfernt werden"
 
 #: cp/call.c:6854
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
-msgstr "keine passende Funktion für Aufruf von %<%T::%s(%A)%#V%>"
+msgstr "keine passende Funktion für Aufruf von %<%T::operator %T(%A)%#V%>"
 
 #: cp/call.c:6867
 #, gcc-internal-format
@@ -24759,19 +24759,19 @@
 msgstr "  denn die Umwandlungsfolge für das Argument ist besser"
 
 #: cp/call.c:7810
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
-msgstr "Standardargument in expliziter Spezialisierung angegeben"
+msgstr "Zuordnungsfehler der Standardargumente in Überladungsauflösung"
 
 #: cp/call.c:7813
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid " candidate 1: %q+#F"
-msgstr "Kandidat ist: %+#D"
+msgstr " Kandidat 1: %q+#F"
 
 #: cp/call.c:7815
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid " candidate 2: %q+#F"
-msgstr "Kandidat ist: %+#D"
+msgstr " Kandidat 2: %q+#F"
 
 #: cp/call.c:7856
 #, gcc-internal-format
@@ -24784,9 +24784,9 @@
 msgstr "%qE konnte nicht nach %qT konvertiert werden"
 
 #: cp/call.c:8251
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "invalid initialization of non-const reference of type %qT from an rvalue of type %qT"
-msgstr "ungültige Initialisierung einer nicht-konstanten Referenz des Typs %qT von temporärem Wert des Typs %qT"
+msgstr "ungültige Initialisierung einer nicht-konstanten Referenz des Typs %qT von R-Wert des Typs %qT"
 
 #: cp/call.c:8255
 #, gcc-internal-format
@@ -25040,9 +25040,9 @@
 msgstr "Initialisierung für nicht-virtuelle Methode %q+D angegeben"
 
 #: cp/class.c:4568
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "enclosing class of %q+D is not a literal type"
-msgstr "%qE in Klasse %qT bezeichnet keinen Typen"
+msgstr "umschließende Klasse von %q+D ist kein Literaltyp"
 
 #: cp/class.c:4677
 #, gcc-internal-format
@@ -25187,7 +25187,7 @@
 msgstr ""
 
 #: cp/cvt.c:90
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "can%'t convert from incomplete type %qT to %qT"
 msgstr "unvollständiger Typ %qT kann nicht nach %qT umgewandelt werden"
 
@@ -25202,24 +25202,24 @@
 msgstr "%qE kann nicht vom Typ %qT in den Typ %qT umgewandelt werden"
 
 #: cp/cvt.c:370
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "initialization of volatile reference type %q#T from rvalue of type %qT"
-msgstr "ungültige Initialisierung einer Referenz des Typs %qT von Ausdruck des Typs %qT"
+msgstr "Initialisierung des »volatile« Referenztyps %q#T von R-Wert des Typs %qT"
 
 #: cp/cvt.c:373
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "conversion to volatile reference type %q#T from rvalue of type %qT"
-msgstr "ungültige Initialisierung einer Referenz des Typs %qT von Ausdruck des Typs %qT"
+msgstr "Umwandlung in »volatile« Referenztyp %q#T von R-Wert des Typs %qT"
 
 #: cp/cvt.c:376
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "initialization of non-const reference type %q#T from rvalue of type %qT"
-msgstr "ungültige Initialisierung einer nicht-konstanten Referenz des Typs %qT von temporärem Wert des Typs %qT"
+msgstr "Initialisierung eines nicht-konstanten Referenztyps %q#T von R-Wert des Typs %qT"
 
 #: cp/cvt.c:379
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "conversion to non-const reference type %q#T from rvalue of type %qT"
-msgstr "ungültige Initialisierung einer nicht-konstanten Referenz des Typs %qT von temporärem Wert des Typs %qT"
+msgstr "Umwandlung in nicht-konstanten Referenztyp %q#T von R-Wert des Typs %qT"
 
 #: cp/cvt.c:452
 #, gcc-internal-format
@@ -25244,7 +25244,7 @@
 #: cp/cvt.c:715
 #, gcc-internal-format
 msgid "the result of the conversion is unspecified because %qE is outside the range of type %qT"
-msgstr ""
+msgstr "das Ergebnis der Umwandlung ist nicht spezifiziert, da %qE außerhalb des Wertebereichs des Typs %qT liegt"
 
 #: cp/cvt.c:726 cp/cvt.c:751
 #, gcc-internal-format
@@ -25267,9 +25267,9 @@
 msgstr "Pseudo-Destruktor wird nicht aufgerufen"
 
 #: cp/cvt.c:961
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "conversion to void will not access object of incomplete type %qT"
-msgstr "Konvertierung in unvollständigen Typen"
+msgstr "Umwandlung in void greift nicht auf Objekt des unvollständigen Typs %qT zu"
 
 #: cp/cvt.c:965
 #, gcc-internal-format
diff --git a/gcc/po/gcc.pot b/gcc/po/gcc.pot
index 55ce4c2..e0442d8 100644
--- a/gcc/po/gcc.pot
+++ b/gcc/po/gcc.pot
@@ -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: 2011-03-24 16:41+0000\n"
+"POT-Creation-Date: 2011-06-21 10:31+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"
@@ -18,8 +18,8 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
-#: c-decl.c:4660 c-typeck.c:5851 toplev.c:1013 c-family/c-pretty-print.c:423
-#: cp/error.c:610 cp/error.c:891
+#: c-decl.c:4655 c-typeck.c:5840 toplev.c:1014 c-family/c-pretty-print.c:423
+#: cp/error.c:628 cp/error.c:910
 msgid "<anonymous>"
 msgstr ""
 
@@ -27,291 +27,190 @@
 msgid "({anonymous})"
 msgstr ""
 
-#: c-parser.c:942 cp/parser.c:20705
+#: c-parser.c:941 cp/parser.c:20980
 #, gcc-internal-format
 msgid "expected end of line"
 msgstr ""
 
-#: c-parser.c:1758 c-parser.c:1772 c-parser.c:4002 c-parser.c:4440
-#: c-parser.c:4701 c-parser.c:4859 c-parser.c:4876 c-parser.c:5041
-#: c-parser.c:6986 c-parser.c:7022 c-parser.c:7054 c-parser.c:7102
-#: c-parser.c:7282 c-parser.c:8048 c-parser.c:8118 c-parser.c:8161
-#: c-parser.c:9138 c-parser.c:9283 c-parser.c:9321 c-parser.c:2445
-#: c-parser.c:7275 cp/parser.c:20651
+#: c-parser.c:1768 c-parser.c:1782 c-parser.c:4015 c-parser.c:4453
+#: c-parser.c:4714 c-parser.c:4872 c-parser.c:4889 c-parser.c:5054
+#: c-parser.c:7019 c-parser.c:7054 c-parser.c:7085 c-parser.c:7132
+#: c-parser.c:7313 c-parser.c:8080 c-parser.c:8150 c-parser.c:8193
+#: c-parser.c:9170 c-parser.c:9315 c-parser.c:9353 c-parser.c:2461
+#: c-parser.c:7306 cp/parser.c:20926
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr ""
 
-#: c-parser.c:1802 c-parser.c:2383 c-parser.c:2673 c-parser.c:3307
-#: c-parser.c:3359 c-parser.c:3364 c-parser.c:4484 c-parser.c:4617
-#: c-parser.c:4781 c-parser.c:4977 c-parser.c:5103 c-parser.c:6184
-#: c-parser.c:6222 c-parser.c:6308 c-parser.c:6348 c-parser.c:6386
-#: c-parser.c:6401 c-parser.c:6425 c-parser.c:7572 c-parser.c:7644
-#: c-parser.c:8453 c-parser.c:8474 c-parser.c:8524 c-parser.c:8634
-#: c-parser.c:8707 c-parser.c:8775 c-parser.c:9246 c-parser.c:8597
-#: cp/parser.c:20654
+#: c-parser.c:1812 c-parser.c:2399 c-parser.c:2690 c-parser.c:3320
+#: c-parser.c:3372 c-parser.c:3377 c-parser.c:4497 c-parser.c:4630
+#: c-parser.c:4794 c-parser.c:4990 c-parser.c:5116 c-parser.c:6197
+#: c-parser.c:6235 c-parser.c:6321 c-parser.c:6361 c-parser.c:6399
+#: c-parser.c:6414 c-parser.c:6438 c-parser.c:7604 c-parser.c:7676
+#: c-parser.c:8485 c-parser.c:8506 c-parser.c:8556 c-parser.c:8666
+#: c-parser.c:8739 c-parser.c:8807 c-parser.c:9278 c-parser.c:8629
+#: cp/parser.c:20929
 #, gcc-internal-format
 msgid "expected %<(%>"
 msgstr ""
 
-#: c-parser.c:1807 c-parser.c:6192 c-parser.c:6230 c-parser.c:6315
-#: c-parser.c:6322 c-parser.c:6359 cp/parser.c:20314 cp/parser.c:20669
+#: c-parser.c:1817 c-parser.c:6205 c-parser.c:6243 c-parser.c:6328
+#: c-parser.c:6335 c-parser.c:6372 cp/parser.c:20589 cp/parser.c:20944
 #, gcc-internal-format
 msgid "expected %<,%>"
 msgstr ""
 
-#: c-parser.c:1828 c-parser.c:2398 c-parser.c:2709 c-parser.c:2917
-#: c-parser.c:3081 c-parser.c:3130 c-parser.c:3189 c-parser.c:3314
-#: c-parser.c:3485 c-parser.c:3496 c-parser.c:3505 c-parser.c:4487
-#: c-parser.c:4621 c-parser.c:4900 c-parser.c:5035 c-parser.c:5115
-#: c-parser.c:5676 c-parser.c:5863 c-parser.c:5923 c-parser.c:6129
-#: c-parser.c:6147 c-parser.c:6168 c-parser.c:6201 c-parser.c:6302
-#: c-parser.c:6330 c-parser.c:6372 c-parser.c:6394 c-parser.c:6417
-#: c-parser.c:6438 c-parser.c:6578 c-parser.c:6850 c-parser.c:7366
-#: c-parser.c:7387 c-parser.c:7595 c-parser.c:7648 c-parser.c:8020
-#: c-parser.c:8456 c-parser.c:8477 c-parser.c:8555 c-parser.c:8640
-#: c-parser.c:8756 c-parser.c:8838 c-parser.c:9174 c-parser.c:9291
-#: c-parser.c:9332 cp/parser.c:20699
+#: c-parser.c:1838 c-parser.c:2414 c-parser.c:2726 c-parser.c:2934
+#: c-parser.c:3098 c-parser.c:3151 c-parser.c:3203 c-parser.c:3327
+#: c-parser.c:3498 c-parser.c:3509 c-parser.c:3518 c-parser.c:4500
+#: c-parser.c:4634 c-parser.c:4913 c-parser.c:5048 c-parser.c:5128
+#: c-parser.c:5689 c-parser.c:5876 c-parser.c:5936 c-parser.c:6142
+#: c-parser.c:6160 c-parser.c:6181 c-parser.c:6214 c-parser.c:6315
+#: c-parser.c:6343 c-parser.c:6385 c-parser.c:6407 c-parser.c:6430
+#: c-parser.c:6451 c-parser.c:6590 c-parser.c:6862 c-parser.c:7398
+#: c-parser.c:7419 c-parser.c:7627 c-parser.c:7680 c-parser.c:8052
+#: c-parser.c:8488 c-parser.c:8509 c-parser.c:8587 c-parser.c:8672
+#: c-parser.c:8788 c-parser.c:8870 c-parser.c:9206 c-parser.c:9323
+#: c-parser.c:9364 cp/parser.c:20974
 #, gcc-internal-format
 msgid "expected %<)%>"
 msgstr ""
 
-#: c-parser.c:3000 c-parser.c:3790 c-parser.c:3824 c-parser.c:5095
-#: c-parser.c:6294 c-parser.c:6458 c-parser.c:6565 cp/parser.c:20663
+#: c-parser.c:3017 c-parser.c:3803 c-parser.c:3837 c-parser.c:5108
+#: c-parser.c:6307 c-parser.c:6471 c-parser.c:6577 cp/parser.c:20938
 #, gcc-internal-format
 msgid "expected %<]%>"
 msgstr ""
 
-#: c-parser.c:3166
+#: c-parser.c:3184
 msgid "expected %<;%>, %<,%> or %<)%>"
 msgstr ""
 
-#: c-parser.c:3653 cp/parser.c:20657 cp/parser.c:22275
+#: c-parser.c:3666 cp/parser.c:20932 cp/parser.c:22566
 #, gcc-internal-format
 msgid "expected %<}%>"
 msgstr ""
 
-#: c-parser.c:3943 c-parser.c:7615 c-parser.c:9575 c-parser.c:2265
-#: c-parser.c:2465 c-parser.c:7171 cp/parser.c:13276 cp/parser.c:20660
+#: c-parser.c:3956 c-parser.c:7647 c-parser.c:9607 c-parser.c:2279
+#: c-parser.c:2482 c-parser.c:7201 cp/parser.c:13455 cp/parser.c:20935
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr ""
 
-#: c-parser.c:4162 c-parser.c:4171 c-parser.c:4999 c-parser.c:5340
-#: c-parser.c:7380 c-parser.c:7755 c-parser.c:7812 c-parser.c:8745
-#: cp/parser.c:20693 cp/parser.c:21513
+#: c-parser.c:4175 c-parser.c:4184 c-parser.c:5012 c-parser.c:5353
+#: c-parser.c:7412 c-parser.c:7787 c-parser.c:7844 c-parser.c:8777
+#: cp/parser.c:20968 cp/parser.c:21788
 #, gcc-internal-format
 msgid "expected %<:%>"
 msgstr ""
 
-#: c-parser.c:4695 cp/parser.c:20593
+#: c-parser.c:4708 cp/parser.c:20868
 #, gcc-internal-format
 msgid "expected %<while%>"
 msgstr ""
 
-#: c-parser.c:6082
+#: c-parser.c:6095
 msgid "expected %<.%>"
 msgstr ""
 
-#: c-parser.c:6860 c-parser.c:6892 c-parser.c:7115 cp/parser.c:22061
-#: cp/parser.c:22134
+#: c-parser.c:6872 c-parser.c:6904 c-parser.c:7144 cp/parser.c:22350
+#: cp/parser.c:22424
 #, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr ""
 
-#: c-parser.c:7529 cp/parser.c:20678
+#: c-parser.c:7561 cp/parser.c:20953
 #, gcc-internal-format
 msgid "expected %<>%>"
 msgstr ""
 
-#: c-parser.c:8842 cp/parser.c:20702
+#: c-parser.c:8874 cp/parser.c:20977
 #, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr ""
 
-#: c-parser.c:9272 c-parser.c:3847 cp/parser.c:20681
+#: c-parser.c:9304 c-parser.c:3860 cp/parser.c:20956
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr ""
 
-#: c-parser.c:9632 c-parser.c:9622 cp/parser.c:24599
+#: c-parser.c:9664 c-parser.c:9654 cp/parser.c:24906
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr ""
 
-#: c-typeck.c:6494
+#: c-typeck.c:6483
 msgid "(anonymous)"
 msgstr ""
 
-#: cfgrtl.c:2036
+#: cfgrtl.c:2002
 msgid "flow control insn inside a basic block"
 msgstr ""
 
-#: cfgrtl.c:2164
+#: cfgrtl.c:2130
 msgid "wrong insn in the fallthru edge"
 msgstr ""
 
-#: cfgrtl.c:2218
+#: cfgrtl.c:2184
 msgid "insn outside basic block"
 msgstr ""
 
-#: cfgrtl.c:2225
+#: cfgrtl.c:2191
 msgid "return not followed by barrier"
 msgstr ""
 
-#: collect2.c:500
+#: collect2.c:1639
 #, c-format
-msgid "internal gcc abort in %s, at %s:%d"
+msgid "collect2 version %s\n"
 msgstr ""
 
-#: collect2.c:955
-#, c-format
-msgid "COLLECT_LTO_WRAPPER must be set"
-msgstr ""
-
-#: collect2.c:1272
-#, c-format
-msgid "no arguments"
-msgstr ""
-
-#: collect2.c:1673 collect2.c:1862 collect2.c:1897
-#, c-format
-msgid "fopen %s"
-msgstr ""
-
-#: collect2.c:1676 collect2.c:1867 collect2.c:1900
-#, c-format
-msgid "fclose %s"
-msgstr ""
-
-#: collect2.c:1685
-#, c-format
-msgid "collect2 version %s"
-msgstr ""
-
-#: collect2.c:1797
+#: collect2.c:1746
 #, c-format
 msgid "%d constructor found\n"
 msgid_plural "%d constructors found\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: collect2.c:1801
+#: collect2.c:1750
 #, c-format
 msgid "%d destructor found\n"
 msgid_plural "%d destructors found\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: collect2.c:1805
+#: collect2.c:1754
 #, c-format
 msgid "%d frame table found\n"
 msgid_plural "%d frame tables found\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: collect2.c:1964 lto-wrapper.c:203
-#, c-format
-msgid "can't get program status"
-msgstr ""
-
-#: collect2.c:2033
-#, c-format
-msgid "could not open response file %s"
-msgstr ""
-
-#: collect2.c:2038
-#, c-format
-msgid "could not write to response file %s"
-msgstr ""
-
-#: collect2.c:2043
-#, c-format
-msgid "could not close response file %s"
-msgstr ""
-
-#: collect2.c:2061
+#: collect2.c:2010
 #, c-format
 msgid "[cannot find %s]"
 msgstr ""
 
-#: collect2.c:2076
-#, c-format
-msgid "cannot find '%s'"
-msgstr ""
-
-#: collect2.c:2080 collect2.c:2621 collect2.c:2817 lto-wrapper.c:172
-#, c-format
-msgid "pex_init failed"
-msgstr ""
-
-#: collect2.c:2118
+#: collect2.c:2066
 #, c-format
 msgid "[Leaving %s]\n"
 msgstr ""
 
-#: collect2.c:2350
+#: collect2.c:2294
 #, c-format
 msgid ""
 "\n"
 "write_c_file - output name is %s, prefix is %s\n"
 msgstr ""
 
-#: collect2.c:2595
-#, c-format
-msgid "cannot find 'nm'"
-msgstr ""
-
-#: collect2.c:2643
-#, c-format
-msgid "can't open nm output"
-msgstr ""
-
-#: collect2.c:2726
-#, c-format
-msgid "init function found in object %s"
-msgstr ""
-
-#: collect2.c:2736
-#, c-format
-msgid "fini function found in object %s"
-msgstr ""
-
-#: collect2.c:2838
-#, c-format
-msgid "can't open ldd output"
-msgstr ""
-
-#: collect2.c:2841
+#: collect2.c:2785
 #, c-format
 msgid ""
 "\n"
 "ldd output with constructors/destructors.\n"
 msgstr ""
 
-#: collect2.c:2856
-#, c-format
-msgid "dynamic dependency %s not found"
-msgstr ""
-
-#: collect2.c:2868
-#, c-format
-msgid "unable to open dynamic dependency '%s'"
-msgstr ""
-
-#: collect2.c:3029
-#, c-format
-msgid "%s: not a COFF file"
-msgstr ""
-
-#: collect2.c:3159
-#, c-format
-msgid "%s: cannot open as COFF file"
-msgstr ""
-
-#: collect2.c:3217
-#, c-format
-msgid "library lib%s not found"
+#: cprop.c:1728
+msgid "const/copy propagation disabled"
 msgstr ""
 
 #: diagnostic.c:136
@@ -357,44 +256,44 @@
 msgid "Internal compiler error: Error reporting routines re-entered.\n"
 msgstr ""
 
-#: final.c:1164
+#: final.c:1165
 msgid "negative insn length"
 msgstr ""
 
-#: final.c:2645
+#: final.c:2724
 msgid "could not split insn"
 msgstr ""
 
-#: final.c:3063
+#: final.c:3142
 msgid "invalid 'asm': "
 msgstr ""
 
-#: final.c:3246
+#: final.c:3325
 #, c-format
 msgid "nested assembly dialect alternatives"
 msgstr ""
 
-#: final.c:3263 final.c:3275
+#: final.c:3342 final.c:3354
 #, c-format
 msgid "unterminated assembly dialect alternative"
 msgstr ""
 
-#: final.c:3322
+#: final.c:3401
 #, c-format
 msgid "operand number missing after %%-letter"
 msgstr ""
 
-#: final.c:3325 final.c:3366
+#: final.c:3404 final.c:3445
 #, c-format
 msgid "operand number out of range"
 msgstr ""
 
-#: final.c:3383
+#: final.c:3462
 #, c-format
 msgid "invalid %%-code"
 msgstr ""
 
-#: final.c:3413
+#: final.c:3492
 #, c-format
 msgid "'%%l' operand isn't a label"
 msgstr ""
@@ -405,273 +304,273 @@
 #. TARGET_PRINT_OPERAND must handle them.
 #. We can't handle floating point constants;
 #. PRINT_OPERAND must handle them.
-#: final.c:3554 config/i386/i386.c:13158 config/pdp11/pdp11.c:1728
+#: final.c:3633 config/i386/i386.c:12662 config/pdp11/pdp11.c:1680
 #, c-format
 msgid "floating constant misused"
 msgstr ""
 
-#: final.c:3613 config/i386/i386.c:13256 config/pdp11/pdp11.c:1769
+#: final.c:3692 config/i386/i386.c:12760 config/pdp11/pdp11.c:1721
 #, c-format
 msgid "invalid expression as operand"
 msgstr ""
 
-#: gcc.c:1320
+#: gcc.c:1321
 #, c-format
 msgid "Using built-in specs.\n"
 msgstr ""
 
-#: gcc.c:1506
+#: gcc.c:1518
 #, c-format
 msgid ""
 "Setting spec %s to '%s'\n"
 "\n"
 msgstr ""
 
-#: gcc.c:1616
+#: gcc.c:1628
 #, c-format
 msgid "Reading specs from %s\n"
 msgstr ""
 
-#: gcc.c:1741
+#: gcc.c:1753
 #, c-format
 msgid "could not find specs file %s\n"
 msgstr ""
 
-#: gcc.c:1810
+#: gcc.c:1822
 #, c-format
 msgid "rename spec %s to %s\n"
 msgstr ""
 
-#: gcc.c:1812
+#: gcc.c:1824
 #, c-format
 msgid ""
 "spec is '%s'\n"
 "\n"
 msgstr ""
 
-#: gcc.c:2229
+#: gcc.c:2241
 #, c-format
 msgid "%s\n"
 msgstr ""
 
-#: gcc.c:2585
+#: gcc.c:2597
 #, c-format
 msgid ""
 "\n"
 "Go ahead? (y or n) "
 msgstr ""
 
-#: gcc.c:2725
+#: gcc.c:2737
 #, c-format
 msgid "# %s %.2f %.2f\n"
 msgstr ""
 
-#: gcc.c:2927
+#: gcc.c:2939
 #, c-format
 msgid "Usage: %s [options] file...\n"
 msgstr ""
 
-#: gcc.c:2928
+#: gcc.c:2940
 msgid "Options:\n"
 msgstr ""
 
-#: gcc.c:2930
+#: gcc.c:2942
 msgid "  -pass-exit-codes         Exit with highest error code from a phase\n"
 msgstr ""
 
-#: gcc.c:2931
+#: gcc.c:2943
 msgid "  --help                   Display this information\n"
 msgstr ""
 
-#: gcc.c:2932
+#: gcc.c:2944
 msgid ""
 "  --target-help            Display target specific command line options\n"
 msgstr ""
 
-#: gcc.c:2933
+#: gcc.c:2945
 msgid ""
 "  --help={target|optimizers|warnings|params|[^]{joined|separate|"
 "undocumented}}[,...]\n"
 msgstr ""
 
-#: gcc.c:2934
+#: gcc.c:2946
 msgid ""
 "                           Display specific types of command line options\n"
 msgstr ""
 
-#: gcc.c:2936
+#: gcc.c:2948
 msgid "  (Use '-v --help' to display command line options of sub-processes)\n"
 msgstr ""
 
-#: gcc.c:2937
+#: gcc.c:2949
 msgid "  --version                Display compiler version information\n"
 msgstr ""
 
-#: gcc.c:2938
+#: gcc.c:2950
 msgid "  -dumpspecs               Display all of the built in spec strings\n"
 msgstr ""
 
-#: gcc.c:2939
+#: gcc.c:2951
 msgid "  -dumpversion             Display the version of the compiler\n"
 msgstr ""
 
-#: gcc.c:2940
+#: gcc.c:2952
 msgid "  -dumpmachine             Display the compiler's target processor\n"
 msgstr ""
 
-#: gcc.c:2941
+#: gcc.c:2953
 msgid ""
 "  -print-search-dirs       Display the directories in the compiler's search "
 "path\n"
 msgstr ""
 
-#: gcc.c:2942
+#: gcc.c:2954
 msgid ""
 "  -print-libgcc-file-name  Display the name of the compiler's companion "
 "library\n"
 msgstr ""
 
-#: gcc.c:2943
+#: gcc.c:2955
 msgid "  -print-file-name=<lib>   Display the full path to library <lib>\n"
 msgstr ""
 
-#: gcc.c:2944
+#: gcc.c:2956
 msgid ""
 "  -print-prog-name=<prog>  Display the full path to compiler component "
 "<prog>\n"
 msgstr ""
 
-#: gcc.c:2945
+#: gcc.c:2957
 msgid ""
 "  -print-multi-directory   Display the root directory for versions of "
 "libgcc\n"
 msgstr ""
 
-#: gcc.c:2946
+#: gcc.c:2958
 msgid ""
 "  -print-multi-lib         Display the mapping between command line options "
 "and\n"
 "                           multiple library search directories\n"
 msgstr ""
 
-#: gcc.c:2949
+#: gcc.c:2961
 msgid "  -print-multi-os-directory Display the relative path to OS libraries\n"
 msgstr ""
 
-#: gcc.c:2950
+#: gcc.c:2962
 msgid "  -print-sysroot           Display the target libraries directory\n"
 msgstr ""
 
-#: gcc.c:2951
+#: gcc.c:2963
 msgid ""
 "  -print-sysroot-headers-suffix Display the sysroot suffix used to find "
 "headers\n"
 msgstr ""
 
-#: gcc.c:2952
+#: gcc.c:2964
 msgid ""
 "  -Wa,<options>            Pass comma-separated <options> on to the "
 "assembler\n"
 msgstr ""
 
-#: gcc.c:2953
+#: gcc.c:2965
 msgid ""
 "  -Wp,<options>            Pass comma-separated <options> on to the "
 "preprocessor\n"
 msgstr ""
 
-#: gcc.c:2954
+#: gcc.c:2966
 msgid ""
 "  -Wl,<options>            Pass comma-separated <options> on to the linker\n"
 msgstr ""
 
-#: gcc.c:2955
+#: gcc.c:2967
 msgid "  -Xassembler <arg>        Pass <arg> on to the assembler\n"
 msgstr ""
 
-#: gcc.c:2956
+#: gcc.c:2968
 msgid "  -Xpreprocessor <arg>     Pass <arg> on to the preprocessor\n"
 msgstr ""
 
-#: gcc.c:2957
+#: gcc.c:2969
 msgid "  -Xlinker <arg>           Pass <arg> on to the linker\n"
 msgstr ""
 
-#: gcc.c:2958
+#: gcc.c:2970
 msgid "  -save-temps              Do not delete intermediate files\n"
 msgstr ""
 
-#: gcc.c:2959
+#: gcc.c:2971
 msgid "  -save-temps=<arg>        Do not delete intermediate files\n"
 msgstr ""
 
-#: gcc.c:2960
+#: gcc.c:2972
 msgid ""
 "  -no-canonical-prefixes   Do not canonicalize paths when building relative\n"
 "                           prefixes to other gcc components\n"
 msgstr ""
 
-#: gcc.c:2963
+#: gcc.c:2975
 msgid "  -pipe                    Use pipes rather than intermediate files\n"
 msgstr ""
 
-#: gcc.c:2964
+#: gcc.c:2976
 msgid "  -time                    Time the execution of each subprocess\n"
 msgstr ""
 
-#: gcc.c:2965
+#: gcc.c:2977
 msgid ""
 "  -specs=<file>            Override built-in specs with the contents of "
 "<file>\n"
 msgstr ""
 
-#: gcc.c:2966
+#: gcc.c:2978
 msgid ""
 "  -std=<standard>          Assume that the input sources are for <standard>\n"
 msgstr ""
 
-#: gcc.c:2967
+#: gcc.c:2979
 msgid ""
 "  --sysroot=<directory>    Use <directory> as the root directory for "
 "headers\n"
 "                           and libraries\n"
 msgstr ""
 
-#: gcc.c:2970
+#: gcc.c:2982
 msgid ""
 "  -B <directory>           Add <directory> to the compiler's search paths\n"
 msgstr ""
 
-#: gcc.c:2971
+#: gcc.c:2983
 msgid ""
 "  -v                       Display the programs invoked by the compiler\n"
 msgstr ""
 
-#: gcc.c:2972
+#: gcc.c:2984
 msgid ""
 "  -###                     Like -v but options quoted and commands not "
 "executed\n"
 msgstr ""
 
-#: gcc.c:2973
+#: gcc.c:2985
 msgid ""
 "  -E                       Preprocess only; do not compile, assemble or "
 "link\n"
 msgstr ""
 
-#: gcc.c:2974
+#: gcc.c:2986
 msgid "  -S                       Compile only; do not assemble or link\n"
 msgstr ""
 
-#: gcc.c:2975
+#: gcc.c:2987
 msgid "  -c                       Compile and assemble, but do not link\n"
 msgstr ""
 
-#: gcc.c:2976
+#: gcc.c:2988
 msgid "  -o <file>                Place the output into <file>\n"
 msgstr ""
 
-#: gcc.c:2977
+#: gcc.c:2989
 msgid ""
 "  -x <language>            Specify the language of the following input "
 "files\n"
@@ -682,7 +581,7 @@
 "extension\n"
 msgstr ""
 
-#: gcc.c:2984
+#: gcc.c:2996
 #, c-format
 msgid ""
 "\n"
@@ -691,43 +590,43 @@
 " other options on to these processes the -W<letter> options must be used.\n"
 msgstr ""
 
-#: gcc.c:5221
+#: gcc.c:5232
 #, c-format
 msgid "Processing spec %c%s%c, which is '%s'\n"
 msgstr ""
 
-#: gcc.c:6485
+#: gcc.c:6496
 #, c-format
 msgid "install: %s%s\n"
 msgstr ""
 
-#: gcc.c:6488
+#: gcc.c:6499
 #, c-format
 msgid "programs: %s\n"
 msgstr ""
 
-#: gcc.c:6490
+#: gcc.c:6501
 #, c-format
 msgid "libraries: %s\n"
 msgstr ""
 
-#: gcc.c:6565
+#: gcc.c:6576
 #, c-format
 msgid ""
 "\n"
 "For bug reporting instructions, please see:\n"
 msgstr ""
 
-#: gcc.c:6581
+#: gcc.c:6592
 #, c-format
 msgid "%s %s%s\n"
 msgstr ""
 
-#: gcc.c:6584 gcov.c:444 fortran/gfortranspec.c:302 java/jcf-dump.c:1164
+#: gcc.c:6595 gcov.c:452 fortran/gfortranspec.c:302 java/jcf-dump.c:1165
 msgid "(C)"
 msgstr ""
 
-#: gcc.c:6585 java/jcf-dump.c:1165
+#: gcc.c:6596 java/jcf-dump.c:1166
 #, c-format
 msgid ""
 "This is free software; see the source for copying conditions.  There is NO\n"
@@ -735,32 +634,32 @@
 "\n"
 msgstr ""
 
-#: gcc.c:6602
+#: gcc.c:6613
 #, c-format
 msgid "Target: %s\n"
 msgstr ""
 
-#: gcc.c:6603
+#: gcc.c:6614
 #, c-format
 msgid "Configured with: %s\n"
 msgstr ""
 
-#: gcc.c:6617
+#: gcc.c:6628
 #, c-format
 msgid "Thread model: %s\n"
 msgstr ""
 
-#: gcc.c:6628
+#: gcc.c:6639
 #, c-format
 msgid "gcc version %s %s\n"
 msgstr ""
 
-#: gcc.c:6631
+#: gcc.c:6642
 #, c-format
 msgid "gcc driver version %s %sexecuting gcc version %s\n"
 msgstr ""
 
-#: gcc.c:6882
+#: gcc.c:6889
 #, c-format
 msgid ""
 "\n"
@@ -769,14 +668,14 @@
 "\n"
 msgstr ""
 
-#: gcc.c:6883
+#: gcc.c:6890
 #, c-format
 msgid ""
 "Use \"-Wl,OPTION\" to pass \"OPTION\" to the linker.\n"
 "\n"
 msgstr ""
 
-#: gcc.c:8075
+#: gcc.c:8082
 #, c-format
 msgid ""
 "Assembler options\n"
@@ -784,97 +683,97 @@
 "\n"
 msgstr ""
 
-#: gcc.c:8076
+#: gcc.c:8083
 #, c-format
 msgid ""
 "Use \"-Wa,OPTION\" to pass \"OPTION\" to the assembler.\n"
 "\n"
 msgstr ""
 
-#: gcov.c:416
+#: gcov.c:424
 #, c-format
 msgid ""
 "Usage: gcov [OPTION]... SOURCEFILE...\n"
 "\n"
 msgstr ""
 
-#: gcov.c:417
+#: gcov.c:425
 #, c-format
 msgid ""
 "Print code coverage information.\n"
 "\n"
 msgstr ""
 
-#: gcov.c:418
+#: gcov.c:426
 #, c-format
 msgid "  -h, --help                      Print this help, then exit\n"
 msgstr ""
 
-#: gcov.c:419
+#: gcov.c:427
 #, c-format
 msgid "  -v, --version                   Print version number, then exit\n"
 msgstr ""
 
-#: gcov.c:420
+#: gcov.c:428
 #, c-format
 msgid ""
 "  -a, --all-blocks                Show information for every basic block\n"
 msgstr ""
 
-#: gcov.c:421
+#: gcov.c:429
 #, c-format
 msgid ""
 "  -b, --branch-probabilities      Include branch probabilities in output\n"
 msgstr ""
 
-#: gcov.c:422
+#: gcov.c:430
 #, c-format
 msgid ""
 "  -c, --branch-counts             Given counts of branches taken\n"
 "                                    rather than percentages\n"
 msgstr ""
 
-#: gcov.c:424
+#: gcov.c:432
 #, c-format
 msgid "  -n, --no-output                 Do not create an output file\n"
 msgstr ""
 
-#: gcov.c:425
+#: gcov.c:433
 #, c-format
 msgid ""
 "  -l, --long-file-names           Use long output file names for included\n"
 "                                    source files\n"
 msgstr ""
 
-#: gcov.c:427
+#: gcov.c:435
 #, c-format
 msgid "  -f, --function-summaries        Output summaries for each function\n"
 msgstr ""
 
-#: gcov.c:428
+#: gcov.c:436
 #, c-format
 msgid ""
 "  -o, --object-directory DIR|FILE Search for object files in DIR or called "
 "FILE\n"
 msgstr ""
 
-#: gcov.c:429
+#: gcov.c:437
 #, c-format
 msgid "  -p, --preserve-paths            Preserve all pathname components\n"
 msgstr ""
 
-#: gcov.c:430
+#: gcov.c:438
 #, c-format
 msgid ""
 "  -u, --unconditional-branches    Show unconditional branch counts too\n"
 msgstr ""
 
-#: gcov.c:431
+#: gcov.c:439
 #, c-format
 msgid "  -d, --display-progress          Display progress information\n"
 msgstr ""
 
-#: gcov.c:432
+#: gcov.c:440
 #, c-format
 msgid ""
 "\n"
@@ -882,12 +781,12 @@
 "%s.\n"
 msgstr ""
 
-#: gcov.c:442
+#: gcov.c:450
 #, c-format
 msgid "gcov %s%s\n"
 msgstr ""
 
-#: gcov.c:446
+#: gcov.c:454
 #, c-format
 msgid ""
 "This is free software; see the source for copying conditions.\n"
@@ -896,213 +795,209 @@
 "\n"
 msgstr ""
 
-#: gcov.c:546
+#: gcov.c:554
 #, c-format
 msgid "%s:no functions found\n"
 msgstr ""
 
-#: gcov.c:578 gcov.c:606
+#: gcov.c:586 gcov.c:614
 #, c-format
 msgid "\n"
 msgstr ""
 
-#: gcov.c:593
+#: gcov.c:601
 #, c-format
 msgid "%s:creating '%s'\n"
 msgstr ""
 
-#: gcov.c:597
+#: gcov.c:605
 #, c-format
 msgid "%s:error writing output file '%s'\n"
 msgstr ""
 
-#: gcov.c:602
+#: gcov.c:610
 #, c-format
 msgid "%s:could not open output file '%s'\n"
 msgstr ""
 
-#: gcov.c:751
+#: gcov.c:756
 #, c-format
 msgid "%s:source file is newer than graph file '%s'\n"
 msgstr ""
 
-#: gcov.c:756
+#: gcov.c:761
 #, c-format
 msgid "(the message is only displayed one per source file)\n"
 msgstr ""
 
-#: gcov.c:780
+#: gcov.c:785
 #, c-format
 msgid "%s:cannot open graph file\n"
 msgstr ""
 
-#: gcov.c:786
+#: gcov.c:791
 #, c-format
 msgid "%s:not a gcov graph file\n"
 msgstr ""
 
-#: gcov.c:799
+#: gcov.c:804
 #, c-format
 msgid "%s:version '%.4s', prefer '%.4s'\n"
 msgstr ""
 
-#: gcov.c:851
+#: gcov.c:859
 #, c-format
 msgid "%s:already seen blocks for '%s'\n"
 msgstr ""
 
-#: gcov.c:969
+#: gcov.c:977
 #, c-format
 msgid "%s:corrupted\n"
 msgstr ""
 
-#: gcov.c:1045
+#: gcov.c:1053
 #, c-format
 msgid "%s:cannot open data file, assuming not executed\n"
 msgstr ""
 
-#: gcov.c:1052
+#: gcov.c:1060
 #, c-format
 msgid "%s:not a gcov data file\n"
 msgstr ""
 
-#: gcov.c:1065
+#: gcov.c:1073
 #, c-format
 msgid "%s:version '%.4s', prefer version '%.4s'\n"
 msgstr ""
 
-#: gcov.c:1071
+#: gcov.c:1079
 #, c-format
 msgid "%s:stamp mismatch with graph file\n"
 msgstr ""
 
-#: gcov.c:1101
+#: gcov.c:1109
 #, c-format
 msgid "%s:unknown function '%u'\n"
 msgstr ""
 
-#: gcov.c:1115
+#: gcov.c:1124
 #, c-format
 msgid "%s:profile mismatch for '%s'\n"
 msgstr ""
 
-#: gcov.c:1134
+#: gcov.c:1143
 #, c-format
 msgid "%s:overflowed\n"
 msgstr ""
 
-#: gcov.c:1158
+#: gcov.c:1167
 #, c-format
 msgid "%s:'%s' lacks entry and/or exit blocks\n"
 msgstr ""
 
-#: gcov.c:1163
+#: gcov.c:1172
 #, c-format
 msgid "%s:'%s' has arcs to entry block\n"
 msgstr ""
 
-#: gcov.c:1171
+#: gcov.c:1180
 #, c-format
 msgid "%s:'%s' has arcs from exit block\n"
 msgstr ""
 
-#: gcov.c:1379
+#: gcov.c:1388
 #, c-format
 msgid "%s:graph is unsolvable for '%s'\n"
 msgstr ""
 
-#: gcov.c:1459
+#: gcov.c:1468
 #, c-format
 msgid "%s '%s'\n"
 msgstr ""
 
-#: gcov.c:1462
+#: gcov.c:1471
 #, c-format
 msgid "Lines executed:%s of %d\n"
 msgstr ""
 
-#: gcov.c:1466
+#: gcov.c:1475
 #, c-format
 msgid "No executable lines\n"
 msgstr ""
 
-#: gcov.c:1472
+#: gcov.c:1481
 #, c-format
 msgid "Branches executed:%s of %d\n"
 msgstr ""
 
-#: gcov.c:1476
+#: gcov.c:1485
 #, c-format
 msgid "Taken at least once:%s of %d\n"
 msgstr ""
 
-#: gcov.c:1482
+#: gcov.c:1491
 #, c-format
 msgid "No branches\n"
 msgstr ""
 
-#: gcov.c:1484
+#: gcov.c:1493
 #, c-format
 msgid "Calls executed:%s of %d\n"
 msgstr ""
 
-#: gcov.c:1488
+#: gcov.c:1497
 #, c-format
 msgid "No calls\n"
 msgstr ""
 
-#: gcov.c:1648
+#: gcov.c:1666
 #, c-format
 msgid "%s:no lines for '%s'\n"
 msgstr ""
 
-#: gcov.c:1843
+#: gcov.c:1861
 #, c-format
 msgid "call   %2d returned %s\n"
 msgstr ""
 
-#: gcov.c:1848
+#: gcov.c:1866
 #, c-format
 msgid "call   %2d never executed\n"
 msgstr ""
 
-#: gcov.c:1853
+#: gcov.c:1871
 #, c-format
 msgid "branch %2d taken %s%s\n"
 msgstr ""
 
-#: gcov.c:1857
+#: gcov.c:1875
 #, c-format
 msgid "branch %2d never executed\n"
 msgstr ""
 
-#: gcov.c:1862
+#: gcov.c:1880
 #, c-format
 msgid "unconditional %2d taken %s\n"
 msgstr ""
 
-#: gcov.c:1865
+#: gcov.c:1883
 #, c-format
 msgid "unconditional %2d never executed\n"
 msgstr ""
 
-#: gcov.c:1901
+#: gcov.c:1919
 #, c-format
 msgid "%s:cannot open source file\n"
 msgstr ""
 
-#: gcse.c:4137
+#: gcse.c:2646
 msgid "PRE disabled"
 msgstr ""
 
-#: gcse.c:4682
+#: gcse.c:3191
 msgid "GCSE disabled"
 msgstr ""
 
-#: gcse.c:5203
-msgid "const/copy propagation disabled"
-msgstr ""
-
 #: gengtype-state.c:150
 #, c-format
 msgid "%s:%d:%d: Invalid state file; %s"
@@ -1171,12 +1066,12 @@
 msgid "failed to rename %s to state file %s [%s]"
 msgstr ""
 
-#: gengtype-state.c:2395
+#: gengtype-state.c:2404
 #, c-format
 msgid "Failed to open state file %s for reading [%s]"
 msgstr ""
 
-#: gengtype-state.c:2433
+#: gengtype-state.c:2442
 #, c-format
 msgid "failed to close read state file %s [%s]"
 msgstr ""
@@ -1211,7 +1106,7 @@
 msgid "End of search list.\n"
 msgstr ""
 
-#: input.c:39 c-family/c-opts.c:1294 cp/error.c:1048 fortran/cpp.c:568
+#: input.c:39 c-family/c-opts.c:1311 cp/error.c:1067 fortran/cpp.c:568
 msgid "<built-in>"
 msgstr ""
 
@@ -1239,27 +1134,27 @@
 msgid "At top level:"
 msgstr ""
 
-#: langhooks.c:394 cp/error.c:2820
+#: langhooks.c:394 cp/error.c:2879
 #, c-format
 msgid "In member function %qs"
 msgstr ""
 
-#: langhooks.c:398 cp/error.c:2823
+#: langhooks.c:398 cp/error.c:2882
 #, c-format
 msgid "In function %qs"
 msgstr ""
 
-#: langhooks.c:449 cp/error.c:2773
+#: langhooks.c:449 cp/error.c:2832
 #, c-format
 msgid "    inlined from %qs at %s:%d:%d"
 msgstr ""
 
-#: langhooks.c:454 cp/error.c:2778
+#: langhooks.c:454 cp/error.c:2837
 #, c-format
 msgid "    inlined from %qs at %s:%d"
 msgstr ""
 
-#: langhooks.c:460 cp/error.c:2784
+#: langhooks.c:460 cp/error.c:2843
 #, c-format
 msgid "    inlined from %qs"
 msgstr ""
@@ -1280,52 +1175,62 @@
 msgid "cannot optimize loop, the loop counter may overflow"
 msgstr ""
 
-#: lto-wrapper.c:212
+#: lto-wrapper.c:173
+#, c-format
+msgid "pex_init failed"
+msgstr ""
+
+#: lto-wrapper.c:204
+#, c-format
+msgid "can't get program status"
+msgstr ""
+
+#: lto-wrapper.c:213
 #, c-format
 msgid "%s terminated with signal %d [%s], core dumped"
 msgstr ""
 
-#: lto-wrapper.c:215
+#: lto-wrapper.c:216
 #, c-format
 msgid "%s terminated with signal %d [%s]"
 msgstr ""
 
-#: lto-wrapper.c:220 collect2.c:1990
+#: lto-wrapper.c:221 collect2.c:1939
 #, gcc-internal-format, gfc-internal-format
 msgid "%s returned %d exit status"
 msgstr ""
 
-#: lto-wrapper.c:236
+#: lto-wrapper.c:237
 #, c-format
 msgid "deleting LTRANS file %s"
 msgstr ""
 
-#: lto-wrapper.c:258
+#: lto-wrapper.c:259
 #, c-format
 msgid "failed to open %s"
 msgstr ""
 
-#: lto-wrapper.c:263
+#: lto-wrapper.c:264
 #, c-format
 msgid "could not write to temporary file %s"
 msgstr ""
 
-#: lto-wrapper.c:302
+#: lto-wrapper.c:303
 #, c-format
 msgid "environment variable COLLECT_GCC must be set"
 msgstr ""
 
-#: lto-wrapper.c:307
+#: lto-wrapper.c:308
 #, c-format
 msgid "environment variable COLLECT_GCC_OPTIONS must be set"
 msgstr ""
 
-#: lto-wrapper.c:316
+#: lto-wrapper.c:317
 #, c-format
 msgid "malformed COLLECT_GCC_OPTIONS"
 msgstr ""
 
-#: lto-wrapper.c:484
+#: lto-wrapper.c:485
 #, c-format
 msgid "fopen: %s"
 msgstr ""
@@ -1335,81 +1240,81 @@
 msgid "This switch lacks documentation"
 msgstr ""
 
-#: opts.c:1007
+#: opts.c:1020
 msgid "[default]"
 msgstr ""
 
-#: opts.c:1018
+#: opts.c:1031
 msgid "[enabled]"
 msgstr ""
 
-#: opts.c:1018
+#: opts.c:1031
 msgid "[disabled]"
 msgstr ""
 
-#: opts.c:1037
+#: opts.c:1050
 #, c-format
 msgid " No options with the desired characteristics were found\n"
 msgstr ""
 
-#: opts.c:1046
+#: opts.c:1059
 #, c-format
 msgid ""
 " None found.  Use --help=%s to show *all* the options supported by the %s "
 "front-end\n"
 msgstr ""
 
-#: opts.c:1052
+#: opts.c:1065
 #, c-format
 msgid ""
 " All options with the desired characteristics have already been displayed\n"
 msgstr ""
 
-#: opts.c:1147
+#: opts.c:1160
 msgid "The following options are target specific"
 msgstr ""
 
-#: opts.c:1150
+#: opts.c:1163
 msgid "The following options control compiler warning messages"
 msgstr ""
 
-#: opts.c:1153
+#: opts.c:1166
 msgid "The following options control optimizations"
 msgstr ""
 
-#: opts.c:1156 opts.c:1195
+#: opts.c:1169 opts.c:1208
 msgid "The following options are language-independent"
 msgstr ""
 
-#: opts.c:1159
+#: opts.c:1172
 msgid "The --param option recognizes the following as parameters"
 msgstr ""
 
-#: opts.c:1165
+#: opts.c:1178
 msgid "The following options are specific to just the language "
 msgstr ""
 
-#: opts.c:1167
+#: opts.c:1180
 msgid "The following options are supported by the language "
 msgstr ""
 
-#: opts.c:1178
+#: opts.c:1191
 msgid "The following options are not documented"
 msgstr ""
 
-#: opts.c:1180
+#: opts.c:1193
 msgid "The following options take separate arguments"
 msgstr ""
 
-#: opts.c:1182
+#: opts.c:1195
 msgid "The following options take joined arguments"
 msgstr ""
 
-#: opts.c:1193
+#: opts.c:1206
 msgid "The following options are language-related"
 msgstr ""
 
-#: opts.c:2007
+#: opts.c:2034
 msgid "enabled by default"
 msgstr ""
 
@@ -1428,21 +1333,21 @@
 "you can reproduce it without enabling any plugins.\n"
 msgstr ""
 
-#: reload.c:3805
+#: reload.c:3808
 msgid "unable to generate reloads for:"
 msgstr ""
 
-#: reload1.c:2105
+#: reload1.c:2113
 msgid "this is the insn:"
 msgstr ""
 
 #. It's the compiler's fault.
-#: reload1.c:6009
+#: reload1.c:6040
 msgid "could not find a spill register"
 msgstr ""
 
 #. It's the compiler's fault.
-#: reload1.c:7852
+#: reload1.c:7860
 msgid "VOIDmode on an output"
 msgstr ""
 
@@ -1458,100 +1363,90 @@
 msgid "insn does not satisfy its constraints:"
 msgstr ""
 
-#: targhooks.c:1454
+#: targhooks.c:1396
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr ""
 
-#: targhooks.c:1456
+#: targhooks.c:1398
 msgid "out of memory"
 msgstr ""
 
-#: targhooks.c:1471
+#: targhooks.c:1413
 msgid "created and used with different settings of -fpic"
 msgstr ""
 
-#: targhooks.c:1473
+#: targhooks.c:1415
 msgid "created and used with different settings of -fpie"
 msgstr ""
 
-#: tlink.c:386
+#: tlink.c:387
 #, c-format
 msgid "collect: reading %s\n"
 msgstr ""
 
-#: tlink.c:480
-#, c-format
-msgid "removing .rpo file"
-msgstr ""
-
-#: tlink.c:482
-#, c-format
-msgid "renaming .rpo file"
-msgstr ""
-
-#: tlink.c:536
+#: tlink.c:537
 #, c-format
 msgid "collect: recompiling %s\n"
 msgstr ""
 
-#: tlink.c:743
+#: tlink.c:744
 #, c-format
 msgid "collect: tweaking %s in %s\n"
 msgstr ""
 
-#: tlink.c:793
+#: tlink.c:794
 #, c-format
 msgid "collect: relinking\n"
 msgstr ""
 
-#: toplev.c:355
+#: toplev.c:356
 #, c-format
 msgid "unrecoverable error"
 msgstr ""
 
-#: toplev.c:691
+#: toplev.c:692
 #, c-format
 msgid ""
 "%s%s%s %sversion %s (%s)\n"
 "%s\tcompiled by GNU C version %s, "
 msgstr ""
 
-#: toplev.c:693
+#: toplev.c:694
 #, c-format
 msgid "%s%s%s %sversion %s (%s) compiled by CC, "
 msgstr ""
 
-#: toplev.c:697
+#: toplev.c:698
 #, c-format
 msgid "GMP version %s, MPFR version %s, MPC version %s\n"
 msgstr ""
 
-#: toplev.c:699
+#: toplev.c:700
 #, c-format
 msgid "%s%swarning: %s header version %s differs from library version %s.\n"
 msgstr ""
 
-#: toplev.c:701
+#: toplev.c:702
 #, c-format
 msgid ""
 "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
 msgstr ""
 
-#: toplev.c:863
+#: toplev.c:864
 msgid "options passed: "
 msgstr ""
 
-#: toplev.c:891
+#: toplev.c:892
 msgid "options enabled: "
 msgstr ""
 
-#: tree-vrp.c:6815
+#: tree-vrp.c:6839
 msgid ""
 "assuming signed overflow does not occur when simplifying && or || to & or |"
 msgstr ""
 
-#: tree-vrp.c:6819
+#: tree-vrp.c:6843
 msgid ""
 "assuming signed overflow does not occur when simplifying ==, != or ! to "
 "identity or ^"
@@ -1623,19 +1518,31 @@
 msgid "target specific option mismatch"
 msgstr ""
 
-#: cif-code.def:82
+#: cif-code.def:83
+msgid "optimization level attribute mismatch"
+msgstr ""
+
+#: cif-code.def:84
 msgid "mismatched arguments"
 msgstr ""
 
-#: cif-code.def:86
+#: cif-code.def:88
 msgid "originally indirect function call not considered for inlining"
 msgstr ""
 
-#: cif-code.def:90
+#: cif-code.def:92
 msgid "indirect function call with a yet undetermined callee"
 msgstr ""
 
-#: cif-code.def:92
+#: cif-code.def:96 cif-code.def:101
+msgid "excepion handling personality mismatch"
+msgstr ""
+
+#: cif-code.def:106
+msgid "optimization mode mismatch"
+msgstr ""
+
+#: cif-code.def:108
 msgid "function body can be overwriten at linktime"
 msgstr ""
 
@@ -1899,688 +1806,697 @@
 "scheduling a loop"
 msgstr ""
 
-#: params.def:339
+#: params.def:340
+msgid ""
+"The minimum value of stage count that swing modulo scheduler will generate."
+msgstr ""
+
+#: params.def:344
 msgid ""
 "The number of cycles the swing modulo scheduler considers when checking "
 "conflicts using DFA"
 msgstr ""
 
-#: params.def:343
+#: params.def:348
 msgid ""
 "A threshold on the average loop count considered by the swing modulo "
 "scheduler"
 msgstr ""
 
-#: params.def:348
+#: params.def:353
 msgid ""
 "Select fraction of the maximal count of repetitions of basic block in "
 "program given basic block needs to have to be considered hot"
 msgstr ""
 
-#: params.def:352
+#: params.def:357
 msgid ""
 "Select fraction of the maximal frequency of executions of basic block in "
 "function given basic block needs to have to be considered hot"
 msgstr ""
 
-#: params.def:357
+#: params.def:362
 msgid ""
 "Select fraction of the maximal frequency of executions of basic block in "
 "function given basic block get alignment"
 msgstr ""
 
-#: params.def:362
+#: params.def:367
 msgid ""
 "Loops iterating at least selected number of iterations will get loop "
 "alignement."
 msgstr ""
 
-#: params.def:378
+#: params.def:383
 msgid "The maximum number of loop iterations we predict statically"
 msgstr ""
 
-#: params.def:382
+#: params.def:387
 msgid ""
 "The percentage of function, weighted by execution frequency, that must be "
 "covered by trace formation. Used when profile feedback is available"
 msgstr ""
 
-#: params.def:386
+#: params.def:391
 msgid ""
 "The percentage of function, weighted by execution frequency, that must be "
 "covered by trace formation. Used when profile feedback is not available"
 msgstr ""
 
-#: params.def:390
+#: params.def:395
 msgid "Maximal code growth caused by tail duplication (in percent)"
 msgstr ""
 
-#: params.def:394
+#: params.def:399
 msgid ""
 "Stop reverse growth if the reverse probability of best edge is less than "
 "this threshold (in percent)"
 msgstr ""
 
-#: params.def:398
+#: params.def:403
 msgid ""
 "Stop forward growth if the probability of best edge is less than this "
 "threshold (in percent). Used when profile feedback is available"
 msgstr ""
 
-#: params.def:402
+#: params.def:407
 msgid ""
 "Stop forward growth if the probability of best edge is less than this "
 "threshold (in percent). Used when profile feedback is not available"
 msgstr ""
 
-#: params.def:408
+#: params.def:413
 msgid "The maximum number of incoming edges to consider for crossjumping"
 msgstr ""
 
-#: params.def:414
+#: params.def:419
 msgid ""
 "The minimum number of matching instructions to consider for crossjumping"
 msgstr ""
 
-#: params.def:420
+#: params.def:425
 msgid "The maximum expansion factor when copying basic blocks"
 msgstr ""
 
-#: params.def:426
+#: params.def:431
 msgid ""
 "The maximum number of insns to duplicate when unfactoring computed gotos"
 msgstr ""
 
-#: params.def:432
+#: params.def:437
 msgid "The maximum length of path considered in cse"
 msgstr ""
 
-#: params.def:436
+#: params.def:441
 msgid "The maximum instructions CSE process before flushing"
 msgstr ""
 
-#: params.def:443
+#: params.def:448
 msgid ""
 "The minimum cost of an expensive expression in the loop invariant motion"
 msgstr ""
 
-#: params.def:452
+#: params.def:457
 msgid ""
 "Bound on number of candidates below that all candidates are considered in iv "
 "optimizations"
 msgstr ""
 
-#: params.def:460
+#: params.def:465
 msgid "Bound on number of iv uses in loop optimized in iv optimizations"
 msgstr ""
 
-#: params.def:468
+#: params.def:473
 msgid ""
 "If number of candidates in the set is smaller, we always try to remove "
 "unused ivs during its optimization"
 msgstr ""
 
-#: params.def:473
+#: params.def:478
 msgid "Bound on size of expressions used in the scalar evolutions analyzer"
 msgstr ""
 
-#: params.def:478
+#: params.def:483
 msgid ""
 "Bound on the complexity of the expressions in the scalar evolutions analyzer"
 msgstr ""
 
-#: params.def:483
+#: params.def:488
 msgid "Bound on the number of variables in Omega constraint systems"
 msgstr ""
 
-#: params.def:488
+#: params.def:493
 msgid "Bound on the number of inequalities in Omega constraint systems"
 msgstr ""
 
-#: params.def:493
+#: params.def:498
 msgid "Bound on the number of equalities in Omega constraint systems"
 msgstr ""
 
-#: params.def:498
+#: params.def:503
 msgid "Bound on the number of wild cards in Omega constraint systems"
 msgstr ""
 
-#: params.def:503
+#: params.def:508
 msgid "Bound on the size of the hash table in Omega constraint systems"
 msgstr ""
 
-#: params.def:508
-msgid "Bound on the number of keys in Omega constraint systems"
-msgstr ""
-
 #: params.def:513
-msgid ""
-"When set to 1, use expensive methods to eliminate all redundant constraints"
+msgid "Bound on the number of keys in Omega constraint systems"
 msgstr ""
 
 #: params.def:518
 msgid ""
-"Bound on number of runtime checks inserted by the vectorizer's loop "
-"versioning for alignment check"
+"When set to 1, use expensive methods to eliminate all redundant constraints"
 msgstr ""
 
 #: params.def:523
 msgid ""
 "Bound on number of runtime checks inserted by the vectorizer's loop "
-"versioning for alias check"
+"versioning for alignment check"
 msgstr ""
 
 #: params.def:528
+msgid ""
+"Bound on number of runtime checks inserted by the vectorizer's loop "
+"versioning for alias check"
+msgstr ""
+
+#: params.def:533
 msgid "The maximum memory locations recorded by cselib"
 msgstr ""
 
-#: params.def:541
+#: params.def:546
 msgid ""
 "Minimum heap expansion to trigger garbage collection, as a percentage of the "
 "total size of the heap"
 msgstr ""
 
-#: params.def:546
+#: params.def:551
 msgid "Minimum heap size before we start collecting garbage, in kilobytes"
 msgstr ""
 
-#: params.def:554
+#: params.def:559
 msgid ""
 "The maximum number of instructions to search backward when looking for "
 "equivalent reload"
 msgstr ""
 
-#: params.def:559 params.def:569
+#: params.def:564 params.def:574
 msgid ""
 "The maximum number of blocks in a region to be considered for interblock "
 "scheduling"
 msgstr ""
 
-#: params.def:564 params.def:574
+#: params.def:569 params.def:579
 msgid ""
 "The maximum number of insns in a region to be considered for interblock "
 "scheduling"
 msgstr ""
 
-#: params.def:579
+#: params.def:584
 msgid ""
 "The minimum probability of reaching a source block for interblock "
 "speculative scheduling"
 msgstr ""
 
-#: params.def:584
+#: params.def:589
 msgid "The maximum number of iterations through CFG to extend regions"
 msgstr ""
 
-#: params.def:589
+#: params.def:594
 msgid ""
 "The maximum conflict delay for an insn to be considered for speculative "
 "motion"
 msgstr ""
 
-#: params.def:594
+#: params.def:599
 msgid ""
 "The minimal probability of speculation success (in percents), so that "
 "speculative insn will be scheduled."
 msgstr ""
 
-#: params.def:599
+#: params.def:604
 msgid "The maximum size of the lookahead window of selective scheduling"
 msgstr ""
 
-#: params.def:604
+#: params.def:609
 msgid "Maximum number of times that an insn could be scheduled"
 msgstr ""
 
-#: params.def:609
+#: params.def:614
 msgid ""
 "Maximum number of instructions in the ready list that are considered "
 "eligible for renaming"
 msgstr ""
 
-#: params.def:614
+#: params.def:619
 msgid "Minimal distance between possibly conflicting store and load"
 msgstr ""
 
-#: params.def:619
+#: params.def:624
 msgid ""
 "The maximum number of RTL nodes that can be recorded as combiner's last value"
 msgstr ""
 
-#: params.def:627
+#: params.def:632
 msgid "The upper bound for sharing integer constants"
 msgstr ""
 
-#: params.def:646
+#: params.def:651
 msgid ""
 "Minimum number of virtual mappings to consider switching to full virtual "
 "renames"
 msgstr ""
 
-#: params.def:651
+#: params.def:656
 msgid ""
 "Ratio between virtual mappings and virtual symbols to do full virtual renames"
 msgstr ""
 
-#: params.def:656
+#: params.def:661
 msgid ""
 "The lower bound for a buffer to be considered for stack smashing protection"
 msgstr ""
 
-#: params.def:674
+#: params.def:679
 msgid ""
 "Maximum number of statements allowed in a block that needs to be duplicated "
 "when threading jumps"
 msgstr ""
 
-#: params.def:683
+#: params.def:688
 msgid ""
 "Maximum number of fields in a structure before pointer analysis treats the "
 "structure as a single variable"
 msgstr ""
 
-#: params.def:688
+#: params.def:693
 msgid ""
 "The maximum number of instructions ready to be issued to be considered by "
 "the scheduler during the first scheduling pass"
 msgstr ""
 
-#: params.def:694
+#: params.def:699
 msgid "Maximum number of active local stores in RTL dead store elimination"
 msgstr ""
 
-#: params.def:704
+#: params.def:709
 msgid "The number of insns executed before prefetch is completed"
 msgstr ""
 
-#: params.def:711
+#: params.def:716
 msgid "The number of prefetches that can run at the same time"
 msgstr ""
 
-#: params.def:718
+#: params.def:723
 msgid "The size of L1 cache"
 msgstr ""
 
-#: params.def:725
+#: params.def:730
 msgid "The size of L1 cache line"
 msgstr ""
 
-#: params.def:732
+#: params.def:737
 msgid "The size of L2 cache"
 msgstr ""
 
-#: params.def:743
+#: params.def:748
 msgid "Whether to use canonical types"
 msgstr ""
 
-#: params.def:748
+#: params.def:753
 msgid ""
 "Maximum length of partial antic set when performing tree pre optimization"
 msgstr ""
 
-#: params.def:758
+#: params.def:763
 msgid "Maximum size of a SCC before SCCVN stops processing a function"
 msgstr ""
 
-#: params.def:763
+#: params.def:768
 msgid "Max loops number for regional RA"
 msgstr ""
 
-#: params.def:768
+#: params.def:773
 msgid "Max size of conflict table in MB"
 msgstr ""
 
-#: params.def:773
+#: params.def:778
 msgid ""
 "The number of registers in each class kept unused by loop invariant motion"
 msgstr ""
 
-#: params.def:781
+#: params.def:786
 msgid ""
 "The maximum ratio between array size and switch branches for a switch "
 "conversion to take place"
 msgstr ""
 
-#: params.def:789
+#: params.def:794
 msgid "size of tiles for loop blocking"
 msgstr ""
 
-#: params.def:796
+#: params.def:801
 msgid "maximum number of parameters in a SCoP"
 msgstr ""
 
-#: params.def:803
+#: params.def:808
 msgid "maximum number of basic blocks per function to be analyzed by Graphite"
 msgstr ""
 
-#: params.def:810
+#: params.def:815
 msgid "Max basic blocks number in loop for loop invariant motion"
 msgstr ""
 
-#: params.def:816
+#: params.def:821
 msgid ""
 "Maximum number of instructions in basic block to be considered for SLP "
 "vectorization"
 msgstr ""
 
-#: params.def:821
+#: params.def:826
 msgid ""
 "Min. ratio of insns to prefetches to enable prefetching for a loop with an "
 "unknown trip count"
 msgstr ""
 
-#: params.def:827
+#: params.def:832
 msgid "Min. ratio of insns to mem ops to enable prefetching in a loop"
 msgstr ""
 
-#: params.def:834
+#: params.def:839
 msgid "Max. size of var tracking hash tables"
 msgstr ""
 
-#: params.def:841
+#: params.def:847
+msgid "Max. recursion depth for expanding var tracking expressions"
+msgstr ""
+
+#: params.def:854
 msgid "The minimum UID to be used for a nondebug insn"
 msgstr ""
 
-#: params.def:846
+#: params.def:859
 msgid ""
 "Maximum allowed growth of size of new parameters ipa-sra replaces a pointer "
 "to an aggregate with"
 msgstr ""
 
-#: params.def:852
+#: params.def:865
 msgid ""
 "Maximum size of a type list associated with each parameter for "
 "devirtualization"
 msgstr ""
 
-#: params.def:860
+#: params.def:873
 msgid "Number of partitions the program should be split to"
 msgstr ""
 
-#: params.def:865
+#: params.def:878
 msgid "Minimal size of a partition for LTO (in estimated instructions)"
 msgstr ""
 
-#: params.def:872
+#: params.def:885
 msgid ""
 "Maximum number of namespaces to search for alternatives when name lookup "
 "fails"
 msgstr ""
 
-#: params.def:879
+#: params.def:892
 msgid "Maximum number of conditional store pairs that can be sunk"
 msgstr ""
 
-#: c-family/c-format.c:368
+#: c-family/c-format.c:367
 msgid "format"
 msgstr ""
 
-#: c-family/c-format.c:369
+#: c-family/c-format.c:368
 msgid "field width specifier"
 msgstr ""
 
-#: c-family/c-format.c:370
+#: c-family/c-format.c:369
 msgid "field precision specifier"
 msgstr ""
 
-#: c-family/c-format.c:484 c-family/c-format.c:508 config/i386/msformat-c.c:49
+#: c-family/c-format.c:483 c-family/c-format.c:507 config/i386/msformat-c.c:49
 msgid "' ' flag"
 msgstr ""
 
-#: c-family/c-format.c:484 c-family/c-format.c:508 config/i386/msformat-c.c:49
+#: c-family/c-format.c:483 c-family/c-format.c:507 config/i386/msformat-c.c:49
 msgid "the ' ' printf flag"
 msgstr ""
 
-#: c-family/c-format.c:485 c-family/c-format.c:509 c-family/c-format.c:543
-#: c-family/c-format.c:606 config/i386/msformat-c.c:50
+#: c-family/c-format.c:484 c-family/c-format.c:508 c-family/c-format.c:542
+#: c-family/c-format.c:605 config/i386/msformat-c.c:50
 msgid "'+' flag"
 msgstr ""
 
-#: c-family/c-format.c:485 c-family/c-format.c:509 c-family/c-format.c:543
+#: c-family/c-format.c:484 c-family/c-format.c:508 c-family/c-format.c:542
 #: config/i386/msformat-c.c:50
 msgid "the '+' printf flag"
 msgstr ""
 
-#: c-family/c-format.c:486 c-family/c-format.c:510 c-family/c-format.c:544
-#: c-family/c-format.c:582 config/i386/msformat-c.c:51
+#: c-family/c-format.c:485 c-family/c-format.c:509 c-family/c-format.c:543
+#: c-family/c-format.c:581 config/i386/msformat-c.c:51
 #: config/i386/msformat-c.c:86
 msgid "'#' flag"
 msgstr ""
 
-#: c-family/c-format.c:486 c-family/c-format.c:510 c-family/c-format.c:544
+#: c-family/c-format.c:485 c-family/c-format.c:509 c-family/c-format.c:543
 #: config/i386/msformat-c.c:51
 msgid "the '#' printf flag"
 msgstr ""
 
-#: c-family/c-format.c:487 c-family/c-format.c:511 c-family/c-format.c:580
+#: c-family/c-format.c:486 c-family/c-format.c:510 c-family/c-format.c:579
 #: config/i386/msformat-c.c:52
 msgid "'0' flag"
 msgstr ""
 
-#: c-family/c-format.c:487 c-family/c-format.c:511 config/i386/msformat-c.c:52
+#: c-family/c-format.c:486 c-family/c-format.c:510 config/i386/msformat-c.c:52
 msgid "the '0' printf flag"
 msgstr ""
 
-#: c-family/c-format.c:488 c-family/c-format.c:512 c-family/c-format.c:579
-#: c-family/c-format.c:609 config/i386/msformat-c.c:53
+#: c-family/c-format.c:487 c-family/c-format.c:511 c-family/c-format.c:578
+#: c-family/c-format.c:608 config/i386/msformat-c.c:53
 msgid "'-' flag"
 msgstr ""
 
-#: c-family/c-format.c:488 c-family/c-format.c:512 config/i386/msformat-c.c:53
+#: c-family/c-format.c:487 c-family/c-format.c:511 config/i386/msformat-c.c:53
 msgid "the '-' printf flag"
 msgstr ""
 
-#: c-family/c-format.c:489 c-family/c-format.c:562 config/i386/msformat-c.c:54
+#: c-family/c-format.c:488 c-family/c-format.c:561 config/i386/msformat-c.c:54
 #: config/i386/msformat-c.c:74
 msgid "''' flag"
 msgstr ""
 
-#: c-family/c-format.c:489 config/i386/msformat-c.c:54
+#: c-family/c-format.c:488 config/i386/msformat-c.c:54
 msgid "the ''' printf flag"
 msgstr ""
 
-#: c-family/c-format.c:490 c-family/c-format.c:563
+#: c-family/c-format.c:489 c-family/c-format.c:562
 msgid "'I' flag"
 msgstr ""
 
-#: c-family/c-format.c:490
+#: c-family/c-format.c:489
 msgid "the 'I' printf flag"
 msgstr ""
 
-#: c-family/c-format.c:491 c-family/c-format.c:513 c-family/c-format.c:560
-#: c-family/c-format.c:583 c-family/c-format.c:610 config/sol2-c.c:44
+#: c-family/c-format.c:490 c-family/c-format.c:512 c-family/c-format.c:559
+#: c-family/c-format.c:582 c-family/c-format.c:609 config/sol2-c.c:44
 #: config/i386/msformat-c.c:55 config/i386/msformat-c.c:72
 msgid "field width"
 msgstr ""
 
-#: c-family/c-format.c:491 c-family/c-format.c:513 config/sol2-c.c:44
+#: c-family/c-format.c:490 c-family/c-format.c:512 config/sol2-c.c:44
 #: config/i386/msformat-c.c:55
 msgid "field width in printf format"
 msgstr ""
 
-#: c-family/c-format.c:492 c-family/c-format.c:514 c-family/c-format.c:546
+#: c-family/c-format.c:491 c-family/c-format.c:513 c-family/c-format.c:545
 #: config/i386/msformat-c.c:56
 msgid "precision"
 msgstr ""
 
-#: c-family/c-format.c:492 c-family/c-format.c:514 c-family/c-format.c:546
+#: c-family/c-format.c:491 c-family/c-format.c:513 c-family/c-format.c:545
 #: config/i386/msformat-c.c:56
 msgid "precision in printf format"
 msgstr ""
 
-#: c-family/c-format.c:493 c-family/c-format.c:515 c-family/c-format.c:547
-#: c-family/c-format.c:561 c-family/c-format.c:613 config/sol2-c.c:45
+#: c-family/c-format.c:492 c-family/c-format.c:514 c-family/c-format.c:546
+#: c-family/c-format.c:560 c-family/c-format.c:612 config/sol2-c.c:45
 #: config/i386/msformat-c.c:57 config/i386/msformat-c.c:73
 msgid "length modifier"
 msgstr ""
 
-#: c-family/c-format.c:493 c-family/c-format.c:515 c-family/c-format.c:547
+#: c-family/c-format.c:492 c-family/c-format.c:514 c-family/c-format.c:546
 #: config/sol2-c.c:45 config/i386/msformat-c.c:57
 msgid "length modifier in printf format"
 msgstr ""
 
-#: c-family/c-format.c:545
+#: c-family/c-format.c:544
 msgid "'q' flag"
 msgstr ""
 
-#: c-family/c-format.c:545
+#: c-family/c-format.c:544
 msgid "the 'q' diagnostic flag"
 msgstr ""
 
-#: c-family/c-format.c:557 config/i386/msformat-c.c:70
+#: c-family/c-format.c:556 config/i386/msformat-c.c:70
 msgid "assignment suppression"
 msgstr ""
 
-#: c-family/c-format.c:557 config/i386/msformat-c.c:70
+#: c-family/c-format.c:556 config/i386/msformat-c.c:70
 msgid "the assignment suppression scanf feature"
 msgstr ""
 
-#: c-family/c-format.c:558 config/i386/msformat-c.c:71
+#: c-family/c-format.c:557 config/i386/msformat-c.c:71
 msgid "'a' flag"
 msgstr ""
 
-#: c-family/c-format.c:558 config/i386/msformat-c.c:71
+#: c-family/c-format.c:557 config/i386/msformat-c.c:71
 msgid "the 'a' scanf flag"
 msgstr ""
 
-#: c-family/c-format.c:559
+#: c-family/c-format.c:558
 msgid "'m' flag"
 msgstr ""
 
-#: c-family/c-format.c:559
+#: c-family/c-format.c:558
 msgid "the 'm' scanf flag"
 msgstr ""
 
-#: c-family/c-format.c:560 config/i386/msformat-c.c:72
+#: c-family/c-format.c:559 config/i386/msformat-c.c:72
 msgid "field width in scanf format"
 msgstr ""
 
-#: c-family/c-format.c:561 config/i386/msformat-c.c:73
+#: c-family/c-format.c:560 config/i386/msformat-c.c:73
 msgid "length modifier in scanf format"
 msgstr ""
 
-#: c-family/c-format.c:562 config/i386/msformat-c.c:74
+#: c-family/c-format.c:561 config/i386/msformat-c.c:74
 msgid "the ''' scanf flag"
 msgstr ""
 
-#: c-family/c-format.c:563
+#: c-family/c-format.c:562
 msgid "the 'I' scanf flag"
 msgstr ""
 
-#: c-family/c-format.c:578
+#: c-family/c-format.c:577
 msgid "'_' flag"
 msgstr ""
 
-#: c-family/c-format.c:578
+#: c-family/c-format.c:577
 msgid "the '_' strftime flag"
 msgstr ""
 
-#: c-family/c-format.c:579
+#: c-family/c-format.c:578
 msgid "the '-' strftime flag"
 msgstr ""
 
-#: c-family/c-format.c:580
+#: c-family/c-format.c:579
 msgid "the '0' strftime flag"
 msgstr ""
 
-#: c-family/c-format.c:581 c-family/c-format.c:605
+#: c-family/c-format.c:580 c-family/c-format.c:604
 msgid "'^' flag"
 msgstr ""
 
-#: c-family/c-format.c:581
+#: c-family/c-format.c:580
 msgid "the '^' strftime flag"
 msgstr ""
 
-#: c-family/c-format.c:582 config/i386/msformat-c.c:86
+#: c-family/c-format.c:581 config/i386/msformat-c.c:86
 msgid "the '#' strftime flag"
 msgstr ""
 
-#: c-family/c-format.c:583
+#: c-family/c-format.c:582
 msgid "field width in strftime format"
 msgstr ""
 
-#: c-family/c-format.c:584
+#: c-family/c-format.c:583
 msgid "'E' modifier"
 msgstr ""
 
-#: c-family/c-format.c:584
+#: c-family/c-format.c:583
 msgid "the 'E' strftime modifier"
 msgstr ""
 
-#: c-family/c-format.c:585
+#: c-family/c-format.c:584
 msgid "'O' modifier"
 msgstr ""
 
-#: c-family/c-format.c:585
+#: c-family/c-format.c:584
 msgid "the 'O' strftime modifier"
 msgstr ""
 
-#: c-family/c-format.c:586
+#: c-family/c-format.c:585
 msgid "the 'O' modifier"
 msgstr ""
 
-#: c-family/c-format.c:604
+#: c-family/c-format.c:603
 msgid "fill character"
 msgstr ""
 
-#: c-family/c-format.c:604
+#: c-family/c-format.c:603
 msgid "fill character in strfmon format"
 msgstr ""
 
-#: c-family/c-format.c:605
+#: c-family/c-format.c:604
 msgid "the '^' strfmon flag"
 msgstr ""
 
-#: c-family/c-format.c:606
+#: c-family/c-format.c:605
 msgid "the '+' strfmon flag"
 msgstr ""
 
-#: c-family/c-format.c:607
+#: c-family/c-format.c:606
 msgid "'(' flag"
 msgstr ""
 
-#: c-family/c-format.c:607
+#: c-family/c-format.c:606
 msgid "the '(' strfmon flag"
 msgstr ""
 
-#: c-family/c-format.c:608
+#: c-family/c-format.c:607
 msgid "'!' flag"
 msgstr ""
 
-#: c-family/c-format.c:608
+#: c-family/c-format.c:607
 msgid "the '!' strfmon flag"
 msgstr ""
 
-#: c-family/c-format.c:609
+#: c-family/c-format.c:608
 msgid "the '-' strfmon flag"
 msgstr ""
 
-#: c-family/c-format.c:610
+#: c-family/c-format.c:609
 msgid "field width in strfmon format"
 msgstr ""
 
-#: c-family/c-format.c:611
+#: c-family/c-format.c:610
 msgid "left precision"
 msgstr ""
 
-#: c-family/c-format.c:611
+#: c-family/c-format.c:610
 msgid "left precision in strfmon format"
 msgstr ""
 
-#: c-family/c-format.c:612
+#: c-family/c-format.c:611
 msgid "right precision"
 msgstr ""
 
-#: c-family/c-format.c:612
+#: c-family/c-format.c:611
 msgid "right precision in strfmon format"
 msgstr ""
 
-#: c-family/c-format.c:613
+#: c-family/c-format.c:612
 msgid "length modifier in strfmon format"
 msgstr ""
 
 #. Handle deferred options from command-line.
-#: c-family/c-opts.c:1312 fortran/cpp.c:573
+#: c-family/c-opts.c:1329 fortran/cpp.c:573
 msgid "<command-line>"
 msgstr ""
 
@@ -2612,506 +2528,492 @@
 msgid "<tag-error>"
 msgstr ""
 
-#: c-family/c-pretty-print.c:1207
+#: c-family/c-pretty-print.c:1212
 msgid "<erroneous-expression>"
 msgstr ""
 
-#: c-family/c-pretty-print.c:1211 cp/cxx-pretty-print.c:153
+#: c-family/c-pretty-print.c:1216 cp/cxx-pretty-print.c:153
 msgid "<return-value>"
 msgstr ""
 
-#: config/alpha/alpha.c:5096
+#: config/alpha/alpha.c:4903
 #, c-format
 msgid "invalid %%H value"
 msgstr ""
 
-#: config/alpha/alpha.c:5117 config/bfin/bfin.c:1658
+#: config/alpha/alpha.c:4924 config/bfin/bfin.c:1422
 #, c-format
 msgid "invalid %%J value"
 msgstr ""
 
-#: config/alpha/alpha.c:5147 config/ia64/ia64.c:5171
+#: config/alpha/alpha.c:4954 config/ia64/ia64.c:5147
 #, c-format
 msgid "invalid %%r value"
 msgstr ""
 
-#: config/alpha/alpha.c:5157 config/ia64/ia64.c:5125
-#: config/rs6000/rs6000.c:16121 config/xtensa/xtensa.c:2356
+#: config/alpha/alpha.c:4964 config/ia64/ia64.c:5101
+#: config/rs6000/rs6000.c:15576 config/xtensa/xtensa.c:2350
 #, c-format
 msgid "invalid %%R value"
 msgstr ""
 
-#: config/alpha/alpha.c:5163 config/rs6000/rs6000.c:16040
-#: config/xtensa/xtensa.c:2323
+#: config/alpha/alpha.c:4970 config/rs6000/rs6000.c:15495
+#: config/xtensa/xtensa.c:2317
 #, c-format
 msgid "invalid %%N value"
 msgstr ""
 
-#: config/alpha/alpha.c:5171 config/rs6000/rs6000.c:16068
+#: config/alpha/alpha.c:4978 config/rs6000/rs6000.c:15523
 #, c-format
 msgid "invalid %%P value"
 msgstr ""
 
-#: config/alpha/alpha.c:5179
+#: config/alpha/alpha.c:4986
 #, c-format
 msgid "invalid %%h value"
 msgstr ""
 
-#: config/alpha/alpha.c:5187 config/xtensa/xtensa.c:2349
+#: config/alpha/alpha.c:4994 config/xtensa/xtensa.c:2343
 #, c-format
 msgid "invalid %%L value"
 msgstr ""
 
-#: config/alpha/alpha.c:5226 config/rs6000/rs6000.c:16022
+#: config/alpha/alpha.c:5033 config/rs6000/rs6000.c:15477
 #, c-format
 msgid "invalid %%m value"
 msgstr ""
 
-#: config/alpha/alpha.c:5234 config/rs6000/rs6000.c:16030
+#: config/alpha/alpha.c:5041 config/rs6000/rs6000.c:15485
 #, c-format
 msgid "invalid %%M value"
 msgstr ""
 
-#: config/alpha/alpha.c:5278
+#: config/alpha/alpha.c:5085
 #, c-format
 msgid "invalid %%U value"
 msgstr ""
 
-#: config/alpha/alpha.c:5290 config/alpha/alpha.c:5304
-#: config/rs6000/rs6000.c:16129
+#: config/alpha/alpha.c:5093 config/alpha/alpha.c:5104
+#: config/rs6000/rs6000.c:15584
 #, c-format
 msgid "invalid %%s value"
 msgstr ""
 
-#: config/alpha/alpha.c:5315
+#: config/alpha/alpha.c:5115
 #, c-format
 msgid "invalid %%C value"
 msgstr ""
 
-#: config/alpha/alpha.c:5352 config/rs6000/rs6000.c:15887
+#: config/alpha/alpha.c:5152 config/rs6000/rs6000.c:15342
 #, c-format
 msgid "invalid %%E value"
 msgstr ""
 
-#: config/alpha/alpha.c:5377 config/alpha/alpha.c:5425
+#: config/alpha/alpha.c:5177 config/alpha/alpha.c:5225
 #, c-format
 msgid "unknown relocation unspec"
 msgstr ""
 
-#: config/alpha/alpha.c:5386 config/rs6000/rs6000.c:16495
-#: config/spu/spu.c:1728
+#: config/alpha/alpha.c:5186 config/rs6000/rs6000.c:15950
+#: config/spu/spu.c:1726
 #, c-format
 msgid "invalid %%xn code"
 msgstr ""
 
-#: config/arm/arm.c:16041 config/arm/arm.c:16059
+#: config/arm/arm.c:15982 config/arm/arm.c:16000
 #, c-format
 msgid "predicated Thumb instruction"
 msgstr ""
 
-#: config/arm/arm.c:16047
+#: config/arm/arm.c:15988
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr ""
 
-#: config/arm/arm.c:16217
+#: config/arm/arm.c:16158
 #, c-format
 msgid "invalid shift operand"
 msgstr ""
 
-#: config/arm/arm.c:16274 config/arm/arm.c:16296 config/arm/arm.c:16306
-#: config/arm/arm.c:16316 config/arm/arm.c:16326 config/arm/arm.c:16365
-#: config/arm/arm.c:16383 config/arm/arm.c:16418 config/arm/arm.c:16437
-#: config/arm/arm.c:16452 config/arm/arm.c:16479 config/arm/arm.c:16486
-#: config/arm/arm.c:16504 config/arm/arm.c:16511 config/arm/arm.c:16519
-#: config/arm/arm.c:16540 config/arm/arm.c:16547 config/arm/arm.c:16672
-#: config/arm/arm.c:16679 config/arm/arm.c:16697 config/arm/arm.c:16704
-#: config/bfin/bfin.c:1671 config/bfin/bfin.c:1678 config/bfin/bfin.c:1685
-#: config/bfin/bfin.c:1692 config/bfin/bfin.c:1701 config/bfin/bfin.c:1708
-#: config/bfin/bfin.c:1715 config/bfin/bfin.c:1722
+#: config/arm/arm.c:16215 config/arm/arm.c:16237 config/arm/arm.c:16247
+#: config/arm/arm.c:16257 config/arm/arm.c:16267 config/arm/arm.c:16306
+#: config/arm/arm.c:16324 config/arm/arm.c:16359 config/arm/arm.c:16378
+#: config/arm/arm.c:16393 config/arm/arm.c:16420 config/arm/arm.c:16427
+#: config/arm/arm.c:16445 config/arm/arm.c:16452 config/arm/arm.c:16460
+#: config/arm/arm.c:16481 config/arm/arm.c:16488 config/arm/arm.c:16613
+#: config/arm/arm.c:16620 config/arm/arm.c:16638 config/arm/arm.c:16645
+#: config/bfin/bfin.c:1435 config/bfin/bfin.c:1442 config/bfin/bfin.c:1449
+#: config/bfin/bfin.c:1456 config/bfin/bfin.c:1465 config/bfin/bfin.c:1472
+#: config/bfin/bfin.c:1479 config/bfin/bfin.c:1486
 #, c-format
 msgid "invalid operand for code '%c'"
 msgstr ""
 
-#: config/arm/arm.c:16378
+#: config/arm/arm.c:16319
 #, c-format
 msgid "instruction never executed"
 msgstr ""
 
-#: config/arm/arm.c:16716
+#: config/arm/arm.c:16657
 #, c-format
 msgid "missing operand"
 msgstr ""
 
-#: config/arm/arm.c:19146
+#: config/arm/arm.c:19219
 msgid "function parameters cannot have __fp16 type"
 msgstr ""
 
-#: config/arm/arm.c:19156
+#: config/arm/arm.c:19229
 msgid "functions cannot return __fp16 type"
 msgstr ""
 
-#: config/avr/avr.c:1239
+#: config/avr/avr.c:1197
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr ""
 
-#: config/avr/avr.c:1365
+#: config/avr/avr.c:1325
 msgid "bad address, not a constant):"
 msgstr ""
 
-#: config/avr/avr.c:1378
+#: config/avr/avr.c:1338
 msgid "bad address, not (reg+disp):"
 msgstr ""
 
-#: config/avr/avr.c:1385
+#: config/avr/avr.c:1345
 msgid "bad address, not post_inc or pre_dec:"
 msgstr ""
 
-#: config/avr/avr.c:1396
+#: config/avr/avr.c:1356
 msgid "internal compiler error.  Bad address:"
 msgstr ""
 
-#: config/avr/avr.c:1421
+#: config/avr/avr.c:1381
 msgid "internal compiler error.  Unknown mode:"
 msgstr ""
 
-#: config/avr/avr.c:2082 config/avr/avr.c:2770
+#: config/avr/avr.c:2060 config/avr/avr.c:2748
 msgid "invalid insn:"
 msgstr ""
 
-#: config/avr/avr.c:2121 config/avr/avr.c:2207 config/avr/avr.c:2256
-#: config/avr/avr.c:2284 config/avr/avr.c:2379 config/avr/avr.c:2548
-#: config/avr/avr.c:2809 config/avr/avr.c:2921
+#: config/avr/avr.c:2099 config/avr/avr.c:2185 config/avr/avr.c:2234
+#: config/avr/avr.c:2262 config/avr/avr.c:2357 config/avr/avr.c:2526
+#: config/avr/avr.c:2787 config/avr/avr.c:2899
 msgid "incorrect insn:"
 msgstr ""
 
-#: config/avr/avr.c:2303 config/avr/avr.c:2464 config/avr/avr.c:2619
-#: config/avr/avr.c:2987
+#: config/avr/avr.c:2281 config/avr/avr.c:2442 config/avr/avr.c:2597
+#: config/avr/avr.c:2965
 msgid "unknown move insn:"
 msgstr ""
 
-#: config/avr/avr.c:3217
+#: config/avr/avr.c:3195
 msgid "bad shift insn:"
 msgstr ""
 
-#: config/avr/avr.c:3333 config/avr/avr.c:3753 config/avr/avr.c:4111
+#: config/avr/avr.c:3311 config/avr/avr.c:3731 config/avr/avr.c:4089
 msgid "internal compiler error.  Incorrect shift:"
 msgstr ""
 
-#: config/bfin/bfin.c:1620
+#: config/bfin/bfin.c:1384
 #, c-format
 msgid "invalid %%j value"
 msgstr ""
 
-#: config/bfin/bfin.c:1813
+#: config/bfin/bfin.c:1577
 #, c-format
 msgid "invalid const_double operand"
 msgstr ""
 
-#: config/cris/cris.c:577 config/moxie/moxie.c:111 final.c:3068 final.c:3070
-#: fold-const.c:281 gcc.c:4586 gcc.c:4600 loop-iv.c:2968 loop-iv.c:2977
-#: rtl-error.c:103 toplev.c:359 tree-ssa-loop-niter.c:1921 tree-vrp.c:6015
-#: cp/typeck.c:5232 java/expr.c:384 lto/lto-object.c:184 lto/lto-object.c:269
+#: config/cris/cris.c:561 config/moxie/moxie.c:111 final.c:3147 final.c:3149
+#: fold-const.c:290 gcc.c:4598 gcc.c:4612 loop-iv.c:2968 loop-iv.c:2977
+#: rtl-error.c:103 toplev.c:360 tree-ssa-loop-niter.c:1921 tree-vrp.c:6039
+#: cp/typeck.c:5248 java/expr.c:390 lto/lto-object.c:184 lto/lto-object.c:269
 #: lto/lto-object.c:326 lto/lto-object.c:350
 #, gcc-internal-format, gfc-internal-format
 msgid "%s"
 msgstr ""
 
-#: config/cris/cris.c:628
+#: config/cris/cris.c:612
 msgid "unexpected index-type in cris_print_index"
 msgstr ""
 
-#: config/cris/cris.c:645
+#: config/cris/cris.c:629
 msgid "unexpected base-type in cris_print_base"
 msgstr ""
 
-#: config/cris/cris.c:710
+#: config/cris/cris.c:694
 msgid "invalid operand for 'b' modifier"
 msgstr ""
 
-#: config/cris/cris.c:727
+#: config/cris/cris.c:711
 msgid "invalid operand for 'o' modifier"
 msgstr ""
 
-#: config/cris/cris.c:746
+#: config/cris/cris.c:730
 msgid "invalid operand for 'O' modifier"
 msgstr ""
 
-#: config/cris/cris.c:779
+#: config/cris/cris.c:763
 msgid "invalid operand for 'p' modifier"
 msgstr ""
 
-#: config/cris/cris.c:818
+#: config/cris/cris.c:802
 msgid "invalid operand for 'z' modifier"
 msgstr ""
 
-#: config/cris/cris.c:882 config/cris/cris.c:916
+#: config/cris/cris.c:866 config/cris/cris.c:900
 msgid "invalid operand for 'H' modifier"
 msgstr ""
 
-#: config/cris/cris.c:892
+#: config/cris/cris.c:876
 msgid "bad register"
 msgstr ""
 
-#: config/cris/cris.c:936
+#: config/cris/cris.c:920
 msgid "invalid operand for 'e' modifier"
 msgstr ""
 
-#: config/cris/cris.c:953
+#: config/cris/cris.c:937
 msgid "invalid operand for 'm' modifier"
 msgstr ""
 
-#: config/cris/cris.c:978
+#: config/cris/cris.c:962
 msgid "invalid operand for 'A' modifier"
 msgstr ""
 
-#: config/cris/cris.c:1001
+#: config/cris/cris.c:985
 msgid "invalid operand for 'D' modifier"
 msgstr ""
 
-#: config/cris/cris.c:1015
+#: config/cris/cris.c:999
 msgid "invalid operand for 'T' modifier"
 msgstr ""
 
-#: config/cris/cris.c:1035 config/moxie/moxie.c:181
+#: config/cris/cris.c:1019 config/moxie/moxie.c:181
 msgid "invalid operand modifier letter"
 msgstr ""
 
-#: config/cris/cris.c:1092
+#: config/cris/cris.c:1076
 msgid "unexpected multiplicative operand"
 msgstr ""
 
-#: config/cris/cris.c:1112 config/moxie/moxie.c:206
+#: config/cris/cris.c:1096 config/moxie/moxie.c:206
 msgid "unexpected operand"
 msgstr ""
 
-#: config/cris/cris.c:1151 config/cris/cris.c:1161
+#: config/cris/cris.c:1135 config/cris/cris.c:1145
 msgid "unrecognized address"
 msgstr ""
 
-#: config/cris/cris.c:2285
+#: config/cris/cris.c:2258
 msgid "unrecognized supposed constant"
 msgstr ""
 
-#: config/cris/cris.c:2716 config/cris/cris.c:2780
+#: config/cris/cris.c:2629 config/cris/cris.c:2693
 msgid "unexpected side-effects in address"
 msgstr ""
 
 #. Can't possibly get a GOT-needing-fixup for a function-call,
 #. right?
-#: config/cris/cris.c:3615
+#: config/cris/cris.c:3528
 msgid "unidentifiable call op"
 msgstr ""
 
-#: config/cris/cris.c:3667
+#: config/cris/cris.c:3580
 #, c-format
 msgid "PIC register isn't set up"
 msgstr ""
 
-#: config/fr30/fr30.c:513
+#: config/fr30/fr30.c:503
 #, c-format
 msgid "fr30_print_operand_address: unhandled address"
 msgstr ""
 
-#: config/fr30/fr30.c:537
+#: config/fr30/fr30.c:527
 #, c-format
 msgid "fr30_print_operand: unrecognized %%p code"
 msgstr ""
 
-#: config/fr30/fr30.c:557
+#: config/fr30/fr30.c:547
 #, c-format
 msgid "fr30_print_operand: unrecognized %%b code"
 msgstr ""
 
-#: config/fr30/fr30.c:578
+#: config/fr30/fr30.c:568
 #, c-format
 msgid "fr30_print_operand: unrecognized %%B code"
 msgstr ""
 
-#: config/fr30/fr30.c:586
+#: config/fr30/fr30.c:576
 #, c-format
 msgid "fr30_print_operand: invalid operand to %%A code"
 msgstr ""
 
-#: config/fr30/fr30.c:603
+#: config/fr30/fr30.c:593
 #, c-format
 msgid "fr30_print_operand: invalid %%x code"
 msgstr ""
 
-#: config/fr30/fr30.c:610
+#: config/fr30/fr30.c:600
 #, c-format
 msgid "fr30_print_operand: invalid %%F code"
 msgstr ""
 
-#: config/fr30/fr30.c:627
+#: config/fr30/fr30.c:617
 #, c-format
 msgid "fr30_print_operand: unknown code"
 msgstr ""
 
-#: config/fr30/fr30.c:655 config/fr30/fr30.c:664 config/fr30/fr30.c:675
-#: config/fr30/fr30.c:688
+#: config/fr30/fr30.c:645 config/fr30/fr30.c:654 config/fr30/fr30.c:665
+#: config/fr30/fr30.c:678
 #, c-format
 msgid "fr30_print_operand: unhandled MEM"
 msgstr ""
 
-#: config/frv/frv.c:2522
+#: config/frv/frv.c:2503
 msgid "bad insn to frv_print_operand_address:"
 msgstr ""
 
-#: config/frv/frv.c:2533
+#: config/frv/frv.c:2514
 msgid "bad register to frv_print_operand_memory_reference_reg:"
 msgstr ""
 
-#: config/frv/frv.c:2572 config/frv/frv.c:2582 config/frv/frv.c:2591
-#: config/frv/frv.c:2612 config/frv/frv.c:2617
+#: config/frv/frv.c:2553 config/frv/frv.c:2563 config/frv/frv.c:2572
+#: config/frv/frv.c:2593 config/frv/frv.c:2598
 msgid "bad insn to frv_print_operand_memory_reference:"
 msgstr ""
 
-#: config/frv/frv.c:2703
+#: config/frv/frv.c:2684
 #, c-format
 msgid "bad condition code"
 msgstr ""
 
-#: config/frv/frv.c:2779
+#: config/frv/frv.c:2760
 msgid "bad insn in frv_print_operand, bad const_double"
 msgstr ""
 
-#: config/frv/frv.c:2840
+#: config/frv/frv.c:2821
 msgid "bad insn to frv_print_operand, 'e' modifier:"
 msgstr ""
 
-#: config/frv/frv.c:2848
+#: config/frv/frv.c:2829
 msgid "bad insn to frv_print_operand, 'F' modifier:"
 msgstr ""
 
-#: config/frv/frv.c:2864
+#: config/frv/frv.c:2845
 msgid "bad insn to frv_print_operand, 'f' modifier:"
 msgstr ""
 
-#: config/frv/frv.c:2878
+#: config/frv/frv.c:2859
 msgid "bad insn to frv_print_operand, 'g' modifier:"
 msgstr ""
 
-#: config/frv/frv.c:2926
+#: config/frv/frv.c:2907
 msgid "bad insn to frv_print_operand, 'L' modifier:"
 msgstr ""
 
-#: config/frv/frv.c:2939
+#: config/frv/frv.c:2920
 msgid "bad insn to frv_print_operand, 'M/N' modifier:"
 msgstr ""
 
-#: config/frv/frv.c:2960
+#: config/frv/frv.c:2941
 msgid "bad insn to frv_print_operand, 'O' modifier:"
 msgstr ""
 
-#: config/frv/frv.c:2978
+#: config/frv/frv.c:2959
 msgid "bad insn to frv_print_operand, P modifier:"
 msgstr ""
 
-#: config/frv/frv.c:2998
+#: config/frv/frv.c:2979
 msgid "bad insn in frv_print_operand, z case"
 msgstr ""
 
-#: config/frv/frv.c:3029
+#: config/frv/frv.c:3010
 msgid "bad insn in frv_print_operand, 0 case"
 msgstr ""
 
-#: config/frv/frv.c:3034
+#: config/frv/frv.c:3015
 msgid "frv_print_operand: unknown code"
 msgstr ""
 
-#: config/frv/frv.c:4435
+#: config/frv/frv.c:4421
 msgid "bad output_move_single operand"
 msgstr ""
 
-#: config/frv/frv.c:4562
+#: config/frv/frv.c:4548
 msgid "bad output_move_double operand"
 msgstr ""
 
-#: config/frv/frv.c:4704
+#: config/frv/frv.c:4690
 msgid "bad output_condmove_single operand"
 msgstr ""
 
-#. This macro is a C statement to print on `stderr' a string describing the
-#. particular machine description choice.  Every machine description should
-#. define `TARGET_VERSION'.  For example:
-#.
-#. #ifdef MOTOROLA
-#. #define TARGET_VERSION           fprintf (stderr, " (68k, Motorola syntax)");
-#. #else
-#. #define TARGET_VERSION           fprintf (stderr, " (68k, MIT syntax)");
-#. #endif
-#: config/frv/frv.h:252
-#, c-format
-msgid " (frv)"
-msgstr ""
-
-#: config/i386/i386.c:13250
+#: config/i386/i386.c:12754
 #, c-format
 msgid "invalid UNSPEC as operand"
 msgstr ""
 
-#: config/i386/i386.c:13855
+#: config/i386/i386.c:13360
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr ""
 
-#: config/i386/i386.c:13946 config/i386/i386.c:14021
+#: config/i386/i386.c:13451 config/i386/i386.c:13526
 #, c-format
 msgid "invalid operand size for operand code '%c'"
 msgstr ""
 
-#: config/i386/i386.c:14016
+#: config/i386/i386.c:13521
 #, c-format
 msgid "invalid operand type used with operand code '%c'"
 msgstr ""
 
-#: config/i386/i386.c:14096 config/i386/i386.c:14136
+#: config/i386/i386.c:13602 config/i386/i386.c:13642
 #, c-format
 msgid "operand is not a condition code, invalid operand code 'D'"
 msgstr ""
 
-#: config/i386/i386.c:14162
+#: config/i386/i386.c:13668
 #, c-format
 msgid ""
 "operand is neither a constant nor a condition code, invalid operand code 'C'"
 msgstr ""
 
-#: config/i386/i386.c:14172
+#: config/i386/i386.c:13678
 #, c-format
 msgid ""
 "operand is neither a constant nor a condition code, invalid operand code 'F'"
 msgstr ""
 
-#: config/i386/i386.c:14190
+#: config/i386/i386.c:13696
 #, c-format
 msgid ""
 "operand is neither a constant nor a condition code, invalid operand code 'c'"
 msgstr ""
 
-#: config/i386/i386.c:14200
+#: config/i386/i386.c:13706
 #, c-format
 msgid ""
 "operand is neither a constant nor a condition code, invalid operand code 'f'"
 msgstr ""
 
-#: config/i386/i386.c:14303
+#: config/i386/i386.c:13809
 #, c-format
 msgid "operand is not a condition code, invalid operand code 'Y'"
 msgstr ""
 
-#: config/i386/i386.c:14329
+#: config/i386/i386.c:13835
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr ""
 
-#: config/i386/i386.c:14379
+#: config/i386/i386.c:13885
 #, c-format
 msgid "invalid constraints for operand"
 msgstr ""
 
-#: config/i386/i386.c:22286
+#: config/i386/i386.c:21800
 msgid "unknown insn mode"
 msgstr ""
 
@@ -3132,128 +3034,128 @@
 msgid "environment variable DJGPP points to corrupt file '%s'"
 msgstr ""
 
-#: config/ia64/ia64.c:5053
+#: config/ia64/ia64.c:5029
 #, c-format
 msgid "invalid %%G mode"
 msgstr ""
 
-#: config/ia64/ia64.c:5223
+#: config/ia64/ia64.c:5199
 #, c-format
 msgid "ia64_print_operand: unknown code"
 msgstr ""
 
-#: config/ia64/ia64.c:10898
+#: config/ia64/ia64.c:10831
 msgid "invalid conversion from %<__fpreg%>"
 msgstr ""
 
-#: config/ia64/ia64.c:10901
+#: config/ia64/ia64.c:10834
 msgid "invalid conversion to %<__fpreg%>"
 msgstr ""
 
-#: config/ia64/ia64.c:10914 config/ia64/ia64.c:10925
+#: config/ia64/ia64.c:10847 config/ia64/ia64.c:10858
 msgid "invalid operation on %<__fpreg%>"
 msgstr ""
 
-#: config/iq2000/iq2000.c:3151
+#: config/iq2000/iq2000.c:3130
 #, c-format
 msgid "invalid %%P operand"
 msgstr ""
 
-#: config/iq2000/iq2000.c:3159 config/rs6000/rs6000.c:16058
+#: config/iq2000/iq2000.c:3138 config/rs6000/rs6000.c:15513
 #, c-format
 msgid "invalid %%p value"
 msgstr ""
 
-#: config/iq2000/iq2000.c:3216
+#: config/iq2000/iq2000.c:3195
 #, c-format
 msgid "invalid use of %%d, %%x, or %%X"
 msgstr ""
 
-#: config/lm32/lm32.c:529
+#: config/lm32/lm32.c:521
 #, c-format
 msgid "only 0.0 can be loaded as an immediate"
 msgstr ""
 
-#: config/lm32/lm32.c:599
+#: config/lm32/lm32.c:591
 msgid "bad operand"
 msgstr ""
 
-#: config/lm32/lm32.c:611
+#: config/lm32/lm32.c:603
 msgid "can't use non gp relative absolute address"
 msgstr ""
 
-#: config/lm32/lm32.c:615
+#: config/lm32/lm32.c:607
 msgid "invalid addressing mode"
 msgstr ""
 
-#: config/m32r/m32r.c:2103
+#: config/m32r/m32r.c:2065
 #, c-format
 msgid "invalid operand to %%s code"
 msgstr ""
 
-#: config/m32r/m32r.c:2110
+#: config/m32r/m32r.c:2072
 #, c-format
 msgid "invalid operand to %%p code"
 msgstr ""
 
-#: config/m32r/m32r.c:2133
+#: config/m32r/m32r.c:2095
 #, c-format
 msgid "invalid operand to %%R code"
 msgstr ""
 
-#: config/m32r/m32r.c:2156
+#: config/m32r/m32r.c:2118
 #, c-format
 msgid "invalid operand to %%H/%%L code"
 msgstr ""
 
-#: config/m32r/m32r.c:2165
+#: config/m32r/m32r.c:2127
 msgid "bad insn for 'A'"
 msgstr ""
 
-#: config/m32r/m32r.c:2212
+#: config/m32r/m32r.c:2174
 #, c-format
 msgid "invalid operand to %%T/%%B code"
 msgstr ""
 
-#: config/m32r/m32r.c:2227
+#: config/m32r/m32r.c:2189
 #, c-format
 msgid "invalid operand to %%U code"
 msgstr ""
 
-#: config/m32r/m32r.c:2235
+#: config/m32r/m32r.c:2197
 #, c-format
 msgid "invalid operand to %%N code"
 msgstr ""
 
 #. Unknown flag.
 #. Undocumented flag.
-#: config/m32r/m32r.c:2254 config/sparc/sparc.c:7657
+#: config/m32r/m32r.c:2216 config/sparc/sparc.c:8047
 #, c-format
 msgid "invalid operand output code"
 msgstr ""
 
-#: config/m32r/m32r.c:2268
+#: config/m32r/m32r.c:2230
 msgid "pre-increment address is not a register"
 msgstr ""
 
-#: config/m32r/m32r.c:2275
+#: config/m32r/m32r.c:2237
 msgid "pre-decrement address is not a register"
 msgstr ""
 
-#: config/m32r/m32r.c:2282
+#: config/m32r/m32r.c:2244
 msgid "post-increment address is not a register"
 msgstr ""
 
-#: config/m32r/m32r.c:2358 config/m32r/m32r.c:2372
-#: config/rs6000/rs6000.c:25503
+#: config/m32r/m32r.c:2320 config/m32r/m32r.c:2334
+#: config/rs6000/rs6000.c:24979
 msgid "bad address"
 msgstr ""
 
-#: config/m32r/m32r.c:2377
+#: config/m32r/m32r.c:2339
 msgid "lo_sum not of register"
 msgstr ""
 
-#: config/mep/mep.c:3374
+#: config/mep/mep.c:3358
 #, c-format
 msgid "invalid %%L code"
 msgstr ""
@@ -3283,7 +3185,7 @@
 msgstr ""
 
 #: config/microblaze/microblaze.c:1840 config/microblaze/microblaze.c:2027
-#: config/xtensa/xtensa.c:2443
+#: config/xtensa/xtensa.c:2437
 msgid "invalid address"
 msgstr ""
 
@@ -3292,76 +3194,76 @@
 msgid "letter %c was found & insn was not CONST_INT"
 msgstr ""
 
-#: config/mips/mips.c:7460 config/mips/mips.c:7481 config/mips/mips.c:7601
+#: config/mips/mips.c:7386 config/mips/mips.c:7407 config/mips/mips.c:7527
 #, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr ""
 
-#: config/mips/mips.c:7538 config/mips/mips.c:7545 config/mips/mips.c:7552
-#: config/mips/mips.c:7559 config/mips/mips.c:7619 config/mips/mips.c:7633
-#: config/mips/mips.c:7646 config/mips/mips.c:7655
+#: config/mips/mips.c:7464 config/mips/mips.c:7471 config/mips/mips.c:7478
+#: config/mips/mips.c:7485 config/mips/mips.c:7545 config/mips/mips.c:7559
+#: config/mips/mips.c:7572 config/mips/mips.c:7581
 #, c-format
 msgid "invalid use of '%%%c'"
 msgstr ""
 
-#: config/mips/mips.c:7877
+#: config/mips/mips.c:7803
 msgid "mips_debugger_offset called with non stack/frame/arg pointer"
 msgstr ""
 
-#: config/mmix/mmix.c:1589 config/mmix/mmix.c:1719
+#: config/mmix/mmix.c:1586 config/mmix/mmix.c:1716
 msgid "MMIX Internal: Expected a CONST_INT, not this"
 msgstr ""
 
-#: config/mmix/mmix.c:1668
+#: config/mmix/mmix.c:1665
 msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
 msgstr ""
 
-#: config/mmix/mmix.c:1687
+#: config/mmix/mmix.c:1684
 msgid "MMIX Internal: Expected a register, not this"
 msgstr ""
 
-#: config/mmix/mmix.c:1697
+#: config/mmix/mmix.c:1694
 msgid "MMIX Internal: Expected a constant, not this"
 msgstr ""
 
 #. We need the original here.
-#: config/mmix/mmix.c:1781
+#: config/mmix/mmix.c:1778
 msgid "MMIX Internal: Cannot decode this operand"
 msgstr ""
 
-#: config/mmix/mmix.c:1838
+#: config/mmix/mmix.c:1835
 msgid "MMIX Internal: This is not a recognized address"
 msgstr ""
 
-#: config/mmix/mmix.c:2713
+#: config/mmix/mmix.c:2710
 msgid "MMIX Internal: Trying to output invalidly reversed condition:"
 msgstr ""
 
-#: config/mmix/mmix.c:2720
+#: config/mmix/mmix.c:2717
 msgid "MMIX Internal: What's the CC of this?"
 msgstr ""
 
-#: config/mmix/mmix.c:2724
+#: config/mmix/mmix.c:2721
 msgid "MMIX Internal: What is the CC of this?"
 msgstr ""
 
-#: config/mmix/mmix.c:2788
+#: config/mmix/mmix.c:2785
 msgid "MMIX Internal: This is not a constant:"
 msgstr ""
 
-#: config/picochip/picochip.c:2687
+#: config/picochip/picochip.c:2664
 msgid "picochip_print_memory_address - Operand isn't memory based"
 msgstr ""
 
-#: config/picochip/picochip.c:2946
+#: config/picochip/picochip.c:2923
 msgid "Unknown mode in print_operand (CONST_DOUBLE) :"
 msgstr ""
 
-#: config/picochip/picochip.c:2992 config/picochip/picochip.c:3024
+#: config/picochip/picochip.c:2969 config/picochip/picochip.c:3001
 msgid "Bad address, not (reg+disp):"
 msgstr ""
 
-#: config/picochip/picochip.c:3038
+#: config/picochip/picochip.c:3015
 msgid "Bad address, not register:"
 msgstr ""
 
@@ -3375,194 +3277,194 @@
 msgid "Try running '%s' in the shell to raise its limit.\n"
 msgstr ""
 
-#: config/rs6000/rs6000.c:2804
+#: config/rs6000/rs6000.c:2657
 msgid "-mvsx requires hardware floating point"
 msgstr ""
 
-#: config/rs6000/rs6000.c:2809
+#: config/rs6000/rs6000.c:2662
 msgid "-mvsx and -mpaired are incompatible"
 msgstr ""
 
-#: config/rs6000/rs6000.c:2814
+#: config/rs6000/rs6000.c:2667
 msgid "-mvsx used with little endian code"
 msgstr ""
 
-#: config/rs6000/rs6000.c:2816
+#: config/rs6000/rs6000.c:2669
 msgid "-mvsx needs indexed addressing"
 msgstr ""
 
-#: config/rs6000/rs6000.c:2820
+#: config/rs6000/rs6000.c:2673
 msgid "-mvsx and -mno-altivec are incompatible"
 msgstr ""
 
-#: config/rs6000/rs6000.c:2822
+#: config/rs6000/rs6000.c:2675
 msgid "-mno-altivec disables vsx"
 msgstr ""
 
-#: config/rs6000/rs6000.c:7895
+#: config/rs6000/rs6000.c:7303
 msgid "bad move"
 msgstr ""
 
-#: config/rs6000/rs6000.c:15868
+#: config/rs6000/rs6000.c:15323
 #, c-format
 msgid "invalid %%c value"
 msgstr ""
 
-#: config/rs6000/rs6000.c:15896
+#: config/rs6000/rs6000.c:15351
 #, c-format
 msgid "invalid %%f value"
 msgstr ""
 
-#: config/rs6000/rs6000.c:15905
+#: config/rs6000/rs6000.c:15360
 #, c-format
 msgid "invalid %%F value"
 msgstr ""
 
-#: config/rs6000/rs6000.c:15914
+#: config/rs6000/rs6000.c:15369
 #, c-format
 msgid "invalid %%G value"
 msgstr ""
 
-#: config/rs6000/rs6000.c:15949
+#: config/rs6000/rs6000.c:15404
 #, c-format
 msgid "invalid %%j code"
 msgstr ""
 
-#: config/rs6000/rs6000.c:15959
+#: config/rs6000/rs6000.c:15414
 #, c-format
 msgid "invalid %%J code"
 msgstr ""
 
-#: config/rs6000/rs6000.c:15969
+#: config/rs6000/rs6000.c:15424
 #, c-format
 msgid "invalid %%k value"
 msgstr ""
 
-#: config/rs6000/rs6000.c:15984 config/xtensa/xtensa.c:2342
+#: config/rs6000/rs6000.c:15439 config/xtensa/xtensa.c:2336
 #, c-format
 msgid "invalid %%K value"
 msgstr ""
 
-#: config/rs6000/rs6000.c:16048
+#: config/rs6000/rs6000.c:15503
 #, c-format
 msgid "invalid %%O value"
 msgstr ""
 
-#: config/rs6000/rs6000.c:16095
+#: config/rs6000/rs6000.c:15550
 #, c-format
 msgid "invalid %%q value"
 msgstr ""
 
-#: config/rs6000/rs6000.c:16139
+#: config/rs6000/rs6000.c:15594
 #, c-format
 msgid "invalid %%S value"
 msgstr ""
 
-#: config/rs6000/rs6000.c:16179
+#: config/rs6000/rs6000.c:15634
 #, c-format
 msgid "invalid %%T value"
 msgstr ""
 
-#: config/rs6000/rs6000.c:16189
+#: config/rs6000/rs6000.c:15644
 #, c-format
 msgid "invalid %%u value"
 msgstr ""
 
-#: config/rs6000/rs6000.c:16198 config/xtensa/xtensa.c:2312
+#: config/rs6000/rs6000.c:15653 config/xtensa/xtensa.c:2306
 #, c-format
 msgid "invalid %%v value"
 msgstr ""
 
-#: config/rs6000/rs6000.c:16297 config/xtensa/xtensa.c:2363
+#: config/rs6000/rs6000.c:15752 config/xtensa/xtensa.c:2357
 #, c-format
 msgid "invalid %%x value"
 msgstr ""
 
-#: config/rs6000/rs6000.c:16443
+#: config/rs6000/rs6000.c:15898
 #, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr ""
 
-#: config/rs6000/rs6000.c:27550
+#: config/rs6000/rs6000.c:27044
 msgid "AltiVec argument passed to unprototyped function"
 msgstr ""
 
-#: config/s390/s390.c:5207
+#: config/s390/s390.c:5131
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr ""
 
-#: config/s390/s390.c:5218
+#: config/s390/s390.c:5142
 #, c-format
 msgid "cannot decompose address"
 msgstr ""
 
-#: config/s390/s390.c:5277
+#: config/s390/s390.c:5201
 #, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr ""
 
-#: config/s390/s390.c:5298
+#: config/s390/s390.c:5222
 #, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr ""
 
-#: config/s390/s390.c:5312
+#: config/s390/s390.c:5236
 #, c-format
 msgid "memory reference expected for 'O' output modifier"
 msgstr ""
 
-#: config/s390/s390.c:5323
+#: config/s390/s390.c:5247
 #, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr ""
 
-#: config/s390/s390.c:5341
+#: config/s390/s390.c:5265
 #, c-format
 msgid "memory reference expected for 'R' output modifier"
 msgstr ""
 
-#: config/s390/s390.c:5352
+#: config/s390/s390.c:5276
 #, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr ""
 
-#: config/s390/s390.c:5370
+#: config/s390/s390.c:5294
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr ""
 
-#: config/s390/s390.c:5380
+#: config/s390/s390.c:5304
 #, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr ""
 
-#: config/s390/s390.c:5400
+#: config/s390/s390.c:5324
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr ""
 
-#: config/s390/s390.c:5410
+#: config/s390/s390.c:5334
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr ""
 
-#: config/s390/s390.c:5475
+#: config/s390/s390.c:5399
 #, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr ""
 
-#: config/s390/s390.c:5478
+#: config/s390/s390.c:5402
 #, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr ""
 
-#: config/s390/s390.c:5485
+#: config/s390/s390.c:5409
 #, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr ""
 
-#: config/s390/s390.c:5488
+#: config/s390/s390.c:5412
 #, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr ""
@@ -3572,368 +3474,369 @@
 msgid "invalid operand for code: '%c'"
 msgstr ""
 
-#: config/sh/sh.c:1203
+#: config/sh/sh.c:1028
 #, c-format
 msgid "invalid operand to %%R"
 msgstr ""
 
-#: config/sh/sh.c:1230
+#: config/sh/sh.c:1055
 #, c-format
 msgid "invalid operand to %%S"
 msgstr ""
 
-#: config/sh/sh.c:9273
+#: config/sh/sh.c:9128
 msgid "created and used with different architectures / ABIs"
 msgstr ""
 
-#: config/sh/sh.c:9275
+#: config/sh/sh.c:9130
 msgid "created and used with different ABIs"
 msgstr ""
 
-#: config/sh/sh.c:9277
+#: config/sh/sh.c:9132
 msgid "created and used with different endianness"
 msgstr ""
 
-#: config/sparc/sparc.c:7465 config/sparc/sparc.c:7471
+#: config/sparc/sparc.c:7855 config/sparc/sparc.c:7861
 #, c-format
 msgid "invalid %%Y operand"
 msgstr ""
 
-#: config/sparc/sparc.c:7541
+#: config/sparc/sparc.c:7931
 #, c-format
 msgid "invalid %%A operand"
 msgstr ""
 
-#: config/sparc/sparc.c:7551
+#: config/sparc/sparc.c:7941
 #, c-format
 msgid "invalid %%B operand"
 msgstr ""
 
-#: config/sparc/sparc.c:7590
+#: config/sparc/sparc.c:7980
 #, c-format
 msgid "invalid %%c operand"
 msgstr ""
 
-#: config/sparc/sparc.c:7612
+#: config/sparc/sparc.c:8002
 #, c-format
 msgid "invalid %%d operand"
 msgstr ""
 
-#: config/sparc/sparc.c:7629
+#: config/sparc/sparc.c:8019
 #, c-format
 msgid "invalid %%f operand"
 msgstr ""
 
-#: config/sparc/sparc.c:7643
+#: config/sparc/sparc.c:8033
 #, c-format
 msgid "invalid %%s operand"
 msgstr ""
 
-#: config/sparc/sparc.c:7697
+#: config/sparc/sparc.c:8087
 #, c-format
 msgid "long long constant not a valid immediate operand"
 msgstr ""
 
-#: config/sparc/sparc.c:7700
+#: config/sparc/sparc.c:8090
 #, c-format
 msgid "floating point constant not a valid immediate operand"
 msgstr ""
 
-#: config/stormy16/stormy16.c:1717 config/stormy16/stormy16.c:1788
+#: config/stormy16/stormy16.c:1721 config/stormy16/stormy16.c:1792
 #, c-format
 msgid "'B' operand is not constant"
 msgstr ""
 
-#: config/stormy16/stormy16.c:1744
+#: config/stormy16/stormy16.c:1748
 #, c-format
 msgid "'B' operand has multiple bits set"
 msgstr ""
 
-#: config/stormy16/stormy16.c:1770
+#: config/stormy16/stormy16.c:1774
 #, c-format
 msgid "'o' operand is not constant"
 msgstr ""
 
-#: config/stormy16/stormy16.c:1802
+#: config/stormy16/stormy16.c:1806
 #, c-format
 msgid "xstormy16_print_operand: unknown code"
 msgstr ""
 
-#: config/v850/v850.c:342
+#: config/v850/v850.c:260
 msgid "const_double_split got a bad insn:"
 msgstr ""
 
-#: config/v850/v850.c:924
+#: config/v850/v850.c:842
 msgid "output_move_single:"
 msgstr ""
 
-#: config/vax/vax.c:418
+#: config/vax/vax.c:416
 #, c-format
 msgid "symbol used with both base and indexed registers"
 msgstr ""
 
-#: config/vax/vax.c:427
+#: config/vax/vax.c:425
 #, c-format
 msgid "symbol with offset used in PIC mode"
 msgstr ""
 
-#: config/vax/vax.c:513
+#: config/vax/vax.c:511
 #, c-format
 msgid "symbol used as immediate operand"
 msgstr ""
 
-#: config/vax/vax.c:1536
+#: config/vax/vax.c:1534
 msgid "illegal operand detected"
 msgstr ""
 
-#: config/xtensa/xtensa.c:774 config/xtensa/xtensa.c:806
-#: config/xtensa/xtensa.c:815
+#: config/xtensa/xtensa.c:760 config/xtensa/xtensa.c:792
+#: config/xtensa/xtensa.c:801
 msgid "bad test"
 msgstr ""
 
-#: config/xtensa/xtensa.c:2300
+#: config/xtensa/xtensa.c:2294
 #, c-format
 msgid "invalid %%D value"
 msgstr ""
 
-#: config/xtensa/xtensa.c:2337
+#: config/xtensa/xtensa.c:2331
 msgid "invalid mask"
 msgstr ""
 
-#: config/xtensa/xtensa.c:2370
+#: config/xtensa/xtensa.c:2364
 #, c-format
 msgid "invalid %%d value"
 msgstr ""
 
-#: config/xtensa/xtensa.c:2391 config/xtensa/xtensa.c:2401
+#: config/xtensa/xtensa.c:2385 config/xtensa/xtensa.c:2395
 #, c-format
 msgid "invalid %%t/%%b value"
 msgstr ""
 
-#: config/xtensa/xtensa.c:2468
+#: config/xtensa/xtensa.c:2462
 msgid "no register in address"
 msgstr ""
 
-#: config/xtensa/xtensa.c:2476
+#: config/xtensa/xtensa.c:2470
 msgid "address offset not a constant"
 msgstr ""
 
-#: cp/call.c:7861
+#: cp/call.c:8190
 msgid "candidate 1:"
 msgstr ""
 
-#: cp/call.c:7862
+#: cp/call.c:8191
 msgid "candidate 2:"
 msgstr ""
 
-#: cp/cxx-pretty-print.c:172 objc/objc-act.c:5989
+#: cp/cxx-pretty-print.c:172 objc/objc-act.c:6410
 msgid "<unnamed>"
 msgstr ""
 
-#: cp/cxx-pretty-print.c:2120
+#: cp/cxx-pretty-print.c:2126
 msgid "template-parameter-"
 msgstr ""
 
-#: cp/decl2.c:725
+#: cp/decl2.c:726
 msgid "candidates are: %+#D"
 msgstr ""
 
-#: cp/decl2.c:727 cp/pt.c:1721
+#: cp/decl2.c:728 cp/pt.c:1722
 #, gcc-internal-format
 msgid "candidate is: %+#D"
 msgstr ""
 
-#: cp/error.c:298
+#: cp/error.c:301
 msgid "<missing>"
 msgstr ""
 
-#: cp/error.c:358
+#: cp/error.c:368
 msgid "<brace-enclosed initializer list>"
 msgstr ""
 
-#: cp/error.c:360
+#: cp/error.c:370
 msgid "<unresolved overloaded function type>"
 msgstr ""
 
-#: cp/error.c:512
+#: cp/error.c:530
 msgid "<type error>"
 msgstr ""
 
-#: cp/error.c:612
+#: cp/error.c:630
 #, c-format
 msgid "<anonymous %s>"
 msgstr ""
 
 #. A lambda's "type" is essentially its signature.
-#: cp/error.c:617
+#: cp/error.c:635
 msgid "<lambda"
 msgstr ""
 
-#: cp/error.c:746
+#: cp/error.c:765
 msgid "<typeprefixerror>"
 msgstr ""
 
-#: cp/error.c:858
+#: cp/error.c:877
 #, c-format
 msgid "(static initializers for %s)"
 msgstr ""
 
-#: cp/error.c:860
+#: cp/error.c:879
 #, c-format
 msgid "(static destructors for %s)"
 msgstr ""
 
-#: cp/error.c:947
+#: cp/error.c:966
 msgid "vtable for "
 msgstr ""
 
-#: cp/error.c:959
+#: cp/error.c:978
 msgid "<return value> "
 msgstr ""
 
-#: cp/error.c:972
+#: cp/error.c:991
 msgid "{anonymous}"
 msgstr ""
 
-#: cp/error.c:1087
+#: cp/error.c:1106
 msgid "<enumerator>"
 msgstr ""
 
-#: cp/error.c:1127
+#: cp/error.c:1146
 msgid "<declaration error>"
 msgstr ""
 
-#: cp/error.c:1371
+#: cp/error.c:1389 cp/error.c:2701
 msgid "with"
 msgstr ""
 
-#: cp/error.c:1543 cp/error.c:1563
+#: cp/error.c:1564 cp/error.c:1584
 msgid "<template parameter error>"
 msgstr ""
 
-#: cp/error.c:1689
+#: cp/error.c:1710
 msgid "<statement>"
 msgstr ""
 
 #. While waiting for caret diagnostics, avoid printing
 #. __cxa_allocate_exception, __cxa_throw, and the like.
-#: cp/error.c:1719
+#: cp/error.c:1740
 msgid "<throw-expression>"
 msgstr ""
 
-#: cp/error.c:2224
+#: cp/error.c:2248
 msgid "<unparsed>"
 msgstr ""
 
-#: cp/error.c:2373
+#: cp/error.c:2397
 msgid "<expression error>"
 msgstr ""
 
-#: cp/error.c:2387
+#: cp/error.c:2411
 msgid "<unknown operator>"
 msgstr ""
 
-#: cp/error.c:2600
+#: cp/error.c:2624
 msgid "<unknown>"
 msgstr ""
 
-#: cp/error.c:2620
+#: cp/error.c:2653
 msgid "{unknown}"
 msgstr ""
 
-#: cp/error.c:2704
+#: cp/error.c:2763
 msgid "At global scope:"
 msgstr ""
 
-#: cp/error.c:2810
+#: cp/error.c:2869
 #, c-format
 msgid "In static member function %qs"
 msgstr ""
 
-#: cp/error.c:2812
+#: cp/error.c:2871
 #, c-format
 msgid "In copy constructor %qs"
 msgstr ""
 
-#: cp/error.c:2814
+#: cp/error.c:2873
 #, c-format
 msgid "In constructor %qs"
 msgstr ""
 
-#: cp/error.c:2816
+#: cp/error.c:2875
 #, c-format
 msgid "In destructor %qs"
 msgstr ""
 
-#: cp/error.c:2818
+#: cp/error.c:2877
 msgid "In lambda function"
 msgstr ""
 
-#: cp/error.c:2848
+#: cp/error.c:2907
 #, c-format
 msgid "%s: In instantiation of %qs:\n"
 msgstr ""
 
-#: cp/error.c:2880
+#: cp/error.c:2932
 #, c-format
-msgid "%s:%d:%d:   recursively instantiated from %qs\n"
+msgid "%s:%d:%d:   "
 msgstr ""
 
-#: cp/error.c:2881
+#: cp/error.c:2935
 #, c-format
-msgid "%s:%d:%d:   instantiated from %qs\n"
+msgid "%s:%d:   "
 msgstr ""
 
-#: cp/error.c:2886 cp/error.c:2887
+#: cp/error.c:2943
 #, c-format
-msgid "%s:%d:   recursively instantiated from %qs\n"
+msgid "recursively required by substitution of %qS\n"
 msgstr ""
 
-#: cp/error.c:2895
+#: cp/error.c:2944
 #, c-format
-msgid "%s:%d:%d:   recursively instantiated from here"
+msgid "required by substitution of %qS\n"
 msgstr ""
 
-#: cp/error.c:2896
-#, c-format
-msgid "%s:%d:%d:   instantiated from here"
+#: cp/error.c:2949
+msgid "recursively required from %q#D\n"
 msgstr ""
 
-#: cp/error.c:2901
-#, c-format
-msgid "%s:%d:   recursively instantiated from here"
+#: cp/error.c:2950
+msgid "required from %q#D\n"
 msgstr ""
 
-#: cp/error.c:2902
-#, c-format
-msgid "%s:%d:   instantiated from here"
+#: cp/error.c:2957
+msgid "recursively required from here"
 msgstr ""
 
-#: cp/error.c:2945
+#: cp/error.c:2958
+msgid "required from here"
+msgstr ""
+
+#: cp/error.c:3000
 #, c-format
 msgid "%s:%d:%d:   [ skipping %d instantiation contexts ]\n"
 msgstr ""
 
-#: cp/error.c:2949
+#: cp/error.c:3004
 #, c-format
 msgid "%s:%d:   [ skipping %d instantiation contexts ]\n"
 msgstr ""
 
-#: cp/error.c:3011
+#: cp/error.c:3066
 #, c-format
 msgid "%s:%d:%d:   in constexpr expansion of %qs"
 msgstr ""
 
-#: cp/error.c:3015
+#: cp/error.c:3070
 #, c-format
 msgid "%s:%d:   in constexpr expansion of %qs"
 msgstr ""
 
-#: cp/pt.c:1725
+#: cp/pt.c:1726
 msgid "candidates are:"
 msgstr ""
 
-#: cp/pt.c:16583 cp/call.c:3084
+#: cp/pt.c:16851 cp/call.c:3232
 #, gcc-internal-format
 msgid "candidate is:"
 msgid_plural "candidates are:"
@@ -3980,48 +3883,48 @@
 msgid "source type is not polymorphic"
 msgstr ""
 
-#: cp/typeck.c:5004 c-typeck.c:3468
+#: cp/typeck.c:5020 c-typeck.c:3463
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr ""
 
-#: cp/typeck.c:5005 c-typeck.c:3455
+#: cp/typeck.c:5021 c-typeck.c:3450
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr ""
 
-#: cp/typeck.c:5028 c-typeck.c:3494
+#: cp/typeck.c:5044 c-typeck.c:3489
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr ""
 
-#: cp/typeck.c:5035 c-typeck.c:3502
+#: cp/typeck.c:5051 c-typeck.c:3497
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr ""
 
-#: cp/typeck.c:5043 c-typeck.c:3514
+#: cp/typeck.c:5059 c-typeck.c:3509
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr ""
 
-#: cp/typeck.c:5054
+#: cp/typeck.c:5070
 msgid "in argument to unary !"
 msgstr ""
 
-#: cp/typeck.c:5103
+#: cp/typeck.c:5119
 msgid "no pre-increment operator for type"
 msgstr ""
 
-#: cp/typeck.c:5105
+#: cp/typeck.c:5121
 msgid "no post-increment operator for type"
 msgstr ""
 
-#: cp/typeck.c:5107
+#: cp/typeck.c:5123
 msgid "no pre-decrement operator for type"
 msgstr ""
 
-#: cp/typeck.c:5109
+#: cp/typeck.c:5125
 msgid "no post-decrement operator for type"
 msgstr ""
 
@@ -4057,17 +3960,17 @@
 msgid "elemental binary operation"
 msgstr ""
 
-#: fortran/check.c:1502 fortran/check.c:2380 fortran/check.c:2434
+#: fortran/check.c:1592 fortran/check.c:2470 fortran/check.c:2524
 #, c-format
 msgid "arguments '%s' and '%s' for intrinsic %s"
 msgstr ""
 
-#: fortran/check.c:2186
+#: fortran/check.c:2276
 #, c-format
 msgid "arguments 'a%d' and 'a%d' for intrinsic '%s'"
 msgstr ""
 
-#: fortran/check.c:2662 fortran/intrinsic.c:3914
+#: fortran/check.c:2765 fortran/intrinsic.c:3932
 #, c-format
 msgid "arguments '%s' and '%s' for intrinsic '%s'"
 msgstr ""
@@ -4085,22 +3988,22 @@
 msgid "Fatal Error:"
 msgstr ""
 
-#: fortran/expr.c:607
+#: fortran/expr.c:606
 #, c-format
 msgid "Constant expression required at %C"
 msgstr ""
 
-#: fortran/expr.c:610
+#: fortran/expr.c:609
 #, c-format
 msgid "Integer expression required at %C"
 msgstr ""
 
-#: fortran/expr.c:615
+#: fortran/expr.c:614
 #, c-format
 msgid "Integer value too large in expression at %C"
 msgstr ""
 
-#: fortran/expr.c:3143
+#: fortran/expr.c:3146
 msgid "array assignment"
 msgstr ""
 
@@ -4119,7 +4022,7 @@
 msgid "Driving:"
 msgstr ""
 
-#: fortran/interface.c:2284 fortran/intrinsic.c:3623
+#: fortran/interface.c:2308 fortran/intrinsic.c:3641
 msgid "actual argument to INTENT = OUT/INOUT"
 msgstr ""
 
@@ -4180,18 +4083,18 @@
 msgid "Period required in format specifier"
 msgstr ""
 
-#: fortran/io.c:1524
+#: fortran/io.c:1533
 #, c-format
 msgid "%s tag"
 msgstr ""
 
-#: fortran/io.c:2830
+#: fortran/io.c:2840
 msgid "internal unit in WRITE"
 msgstr ""
 
 #. For INQUIRE, all tags except FILE, ID and UNIT are variable definition
 #. contexts.  Thus, use an extended RESOLVE_TAG macro for that.
-#: fortran/io.c:4025
+#: fortran/io.c:4034
 #, c-format
 msgid "%s tag with INQUIRE"
 msgstr ""
@@ -4237,7 +4140,7 @@
 msgid "Expected integer"
 msgstr ""
 
-#: fortran/module.c:1265 fortran/module.c:2158
+#: fortran/module.c:1265 fortran/module.c:2166
 msgid "Expected string"
 msgstr ""
 
@@ -4245,237 +4148,241 @@
 msgid "find_enum(): Enum not found"
 msgstr ""
 
-#: fortran/module.c:1916
+#: fortran/module.c:1919
 msgid "Expected attribute bit name"
 msgstr ""
 
-#: fortran/module.c:2808
+#: fortran/module.c:2817
 msgid "Expected integer string"
 msgstr ""
 
-#: fortran/module.c:2812
+#: fortran/module.c:2821
 msgid "Error converting integer"
 msgstr ""
 
-#: fortran/module.c:2834
+#: fortran/module.c:2843
 msgid "Expected real string"
 msgstr ""
 
-#: fortran/module.c:3051
+#: fortran/module.c:3061
 msgid "Expected expression type"
 msgstr ""
 
-#: fortran/module.c:3105
+#: fortran/module.c:3115
 msgid "Bad operator"
 msgstr ""
 
-#: fortran/module.c:3194
+#: fortran/module.c:3204
 msgid "Bad type in constant expression"
 msgstr ""
 
-#: fortran/module.c:5721
+#: fortran/module.c:5786
 msgid "Unexpected end of module"
 msgstr ""
 
-#: fortran/parse.c:1169
+#: fortran/parse.c:1175
 msgid "arithmetic IF"
 msgstr ""
 
-#: fortran/parse.c:1178
+#: fortran/parse.c:1184
 msgid "attribute declaration"
 msgstr ""
 
-#: fortran/parse.c:1214
+#: fortran/parse.c:1220
 msgid "data declaration"
 msgstr ""
 
-#: fortran/parse.c:1223
+#: fortran/parse.c:1229
 msgid "derived type declaration"
 msgstr ""
 
-#: fortran/parse.c:1317
+#: fortran/parse.c:1323
 msgid "block IF"
 msgstr ""
 
-#: fortran/parse.c:1326
+#: fortran/parse.c:1332
 msgid "implied END DO"
 msgstr ""
 
-#: fortran/parse.c:1411 fortran/resolve.c:9067
+#: fortran/parse.c:1423 fortran/resolve.c:9182
 msgid "assignment"
 msgstr ""
 
-#: fortran/parse.c:1414 fortran/resolve.c:9106 fortran/resolve.c:9108
+#: fortran/parse.c:1426 fortran/resolve.c:9221 fortran/resolve.c:9224
 msgid "pointer assignment"
 msgstr ""
 
-#: fortran/parse.c:1432
+#: fortran/parse.c:1444
 msgid "simple IF"
 msgstr ""
 
-#: fortran/resolve.c:532
+#: fortran/resolve.c:533
 msgid "module procedure"
 msgstr ""
 
-#: fortran/resolve.c:533
+#: fortran/resolve.c:534
 msgid "internal function"
 msgstr ""
 
-#: fortran/resolve.c:1920
+#: fortran/resolve.c:1925
 msgid "elemental procedure"
 msgstr ""
 
-#: fortran/resolve.c:3720
+#: fortran/resolve.c:3725
 #, c-format
 msgid "Invalid context for NULL() pointer at %%L"
 msgstr ""
 
-#: fortran/resolve.c:3736
+#: fortran/resolve.c:3741
 #, c-format
 msgid "Operand of unary numeric operator '%s' at %%L is %s"
 msgstr ""
 
-#: fortran/resolve.c:3752
+#: fortran/resolve.c:3757
 #, c-format
 msgid "Operands of binary numeric operator '%s' at %%L are %s/%s"
 msgstr ""
 
-#: fortran/resolve.c:3767
+#: fortran/resolve.c:3772
 #, c-format
 msgid "Operands of string concatenation operator at %%L are %s/%s"
 msgstr ""
 
-#: fortran/resolve.c:3786
+#: fortran/resolve.c:3791
 #, c-format
 msgid "Operands of logical operator '%s' at %%L are %s/%s"
 msgstr ""
 
-#: fortran/resolve.c:3800
+#: fortran/resolve.c:3805
 #, c-format
 msgid "Operand of .not. operator at %%L is %s"
 msgstr ""
 
-#: fortran/resolve.c:3814
+#: fortran/resolve.c:3819
 msgid "COMPLEX quantities cannot be compared at %L"
 msgstr ""
 
-#: fortran/resolve.c:3843
+#: fortran/resolve.c:3848
 #, c-format
 msgid "Logicals at %%L must be compared with %s instead of %s"
 msgstr ""
 
-#: fortran/resolve.c:3849
+#: fortran/resolve.c:3854
 #, c-format
 msgid "Operands of comparison operator '%s' at %%L are %s/%s"
 msgstr ""
 
-#: fortran/resolve.c:3857
+#: fortran/resolve.c:3862
 #, c-format
 msgid "Unknown operator '%s' at %%L"
 msgstr ""
 
-#: fortran/resolve.c:3859
+#: fortran/resolve.c:3864
 #, c-format
 msgid "Operand of user operator '%s' at %%L is %s"
 msgstr ""
 
-#: fortran/resolve.c:3863
+#: fortran/resolve.c:3868
 #, c-format
 msgid "Operands of user operator '%s' at %%L are %s/%s"
 msgstr ""
 
-#: fortran/resolve.c:3951
+#: fortran/resolve.c:3956
 #, c-format
 msgid "Inconsistent ranks for operator at %%L and %%L"
 msgstr ""
 
-#: fortran/resolve.c:6219
+#: fortran/resolve.c:6234
 msgid "Loop variable"
 msgstr ""
 
-#: fortran/resolve.c:6223
+#: fortran/resolve.c:6238
 msgid "iterator variable"
 msgstr ""
 
-#: fortran/resolve.c:6228
+#: fortran/resolve.c:6243
 msgid "Start expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.c:6232
+#: fortran/resolve.c:6247
 msgid "End expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.c:6236
+#: fortran/resolve.c:6251
 msgid "Step expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.c:6483 fortran/resolve.c:6485
+#: fortran/resolve.c:6505 fortran/resolve.c:6508
 msgid "DEALLOCATE object"
 msgstr ""
 
-#: fortran/resolve.c:6780 fortran/resolve.c:6782
+#: fortran/resolve.c:6834 fortran/resolve.c:6836
 msgid "ALLOCATE object"
 msgstr ""
 
-#: fortran/resolve.c:6955
+#: fortran/resolve.c:7012 fortran/resolve.c:8241
 msgid "STAT variable"
 msgstr ""
 
-#: fortran/resolve.c:6998
+#: fortran/resolve.c:7055 fortran/resolve.c:8253
 msgid "ERRMSG variable"
 msgstr ""
 
-#: fortran/resolve.c:8063
+#: fortran/resolve.c:8120
 msgid "item in READ"
 msgstr ""
 
-#: fortran/trans-array.c:1138
+#: fortran/resolve.c:8265
+msgid "ACQUIRED_LOCK variable"
+msgstr ""
+
+#: fortran/trans-array.c:1159
 #, c-format
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr ""
 
-#: fortran/trans-array.c:4393
+#: fortran/trans-array.c:4458
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr ""
 
-#: fortran/trans-decl.c:4356
+#: fortran/trans-decl.c:4576
 #, c-format
 msgid ""
 "Actual string length does not match the declared one for dummy argument "
 "'%s' (%ld/%ld)"
 msgstr ""
 
-#: fortran/trans-decl.c:4364
+#: fortran/trans-decl.c:4584
 #, c-format
 msgid ""
 "Actual string length is shorter than the declared one for dummy argument "
 "'%s' (%ld/%ld)"
 msgstr ""
 
-#: fortran/trans-expr.c:5216
+#: fortran/trans-expr.c:5222
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr ""
 
-#: fortran/trans-intrinsic.c:890
+#: fortran/trans-intrinsic.c:892
 #, c-format
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.c:5413
+#: fortran/trans-intrinsic.c:5934
 #, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %lld)"
 msgstr ""
 
-#: fortran/trans-intrinsic.c:5445
+#: fortran/trans-intrinsic.c:5966
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr ""
 
-#: fortran/trans-io.c:529
+#: fortran/trans-io.c:523
 msgid "Unit number in I/O statement too small"
 msgstr ""
 
-#: fortran/trans-io.c:538
+#: fortran/trans-io.c:532
 msgid "Unit number in I/O statement too large"
 msgstr ""
 
@@ -4483,16 +4390,16 @@
 msgid "Assigned label is not a target label"
 msgstr ""
 
-#: fortran/trans-stmt.c:656
+#: fortran/trans-stmt.c:768
 #, c-format
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr ""
 
-#: fortran/trans-stmt.c:1090 fortran/trans-stmt.c:1371
+#: fortran/trans-stmt.c:1320 fortran/trans-stmt.c:1601
 msgid "Loop variable has been modified"
 msgstr ""
 
-#: fortran/trans-stmt.c:1230
+#: fortran/trans-stmt.c:1460
 msgid "DO step value is zero"
 msgstr ""
 
@@ -4504,211 +4411,230 @@
 msgid "Incorrect function return value"
 msgstr ""
 
-#: fortran/trans.c:556
+#: fortran/trans.c:546
 msgid "Memory allocation failed"
 msgstr ""
 
-#: fortran/trans.c:639 fortran/trans.c:1039
+#: fortran/trans.c:629 fortran/trans.c:1030
 msgid "Allocation would exceed memory limit"
 msgstr ""
 
-#: fortran/trans.c:729
+#: fortran/trans.c:720
 #, c-format
 msgid "Attempting to allocate already allocated variable '%s'"
 msgstr ""
 
-#: fortran/trans.c:735
+#: fortran/trans.c:726
 msgid "Attempting to allocate already allocated variable"
 msgstr ""
 
-#: fortran/trans.c:848 fortran/trans.c:928
+#: fortran/trans.c:839 fortran/trans.c:919
 #, c-format
 msgid "Attempt to DEALLOCATE unallocated '%s'"
 msgstr ""
 
-#: java/jcf-dump.c:1062
+#: java/jcf-dump.c:1063
 #, c-format
 msgid "Not a valid Java .class file.\n"
 msgstr ""
 
-#: java/jcf-dump.c:1068
+#: java/jcf-dump.c:1069
 #, c-format
 msgid "error while parsing constant pool\n"
 msgstr ""
 
-#: java/jcf-dump.c:1074 java/jcf-parse.c:1433
+#: java/jcf-dump.c:1075 java/jcf-parse.c:1433
 #, gcc-internal-format, gfc-internal-format
 msgid "error in constant pool entry #%d\n"
 msgstr ""
 
-#: java/jcf-dump.c:1084
+#: java/jcf-dump.c:1085
 #, c-format
 msgid "error while parsing fields\n"
 msgstr ""
 
-#: java/jcf-dump.c:1090
+#: java/jcf-dump.c:1091
 #, c-format
 msgid "error while parsing methods\n"
 msgstr ""
 
-#: java/jcf-dump.c:1096
+#: java/jcf-dump.c:1097
 #, c-format
 msgid "error while parsing final attributes\n"
 msgstr ""
 
-#: java/jcf-dump.c:1133
+#: java/jcf-dump.c:1134
 #, c-format
 msgid "Try 'jcf-dump --help' for more information.\n"
 msgstr ""
 
-#: java/jcf-dump.c:1140
+#: java/jcf-dump.c:1141
 #, c-format
 msgid ""
 "Usage: jcf-dump [OPTION]... CLASS...\n"
 "\n"
 msgstr ""
 
-#: java/jcf-dump.c:1141
+#: java/jcf-dump.c:1142
 #, c-format
 msgid ""
 "Display contents of a class file in readable form.\n"
 "\n"
 msgstr ""
 
-#: java/jcf-dump.c:1142
+#: java/jcf-dump.c:1143
 #, c-format
 msgid "  -c                      Disassemble method bodies\n"
 msgstr ""
 
-#: java/jcf-dump.c:1143
+#: java/jcf-dump.c:1144
 #, c-format
 msgid "  --javap                 Generate output in 'javap' format\n"
 msgstr ""
 
-#: java/jcf-dump.c:1145
+#: java/jcf-dump.c:1146
 #, c-format
 msgid "  --classpath PATH        Set path to find .class files\n"
 msgstr ""
 
-#: java/jcf-dump.c:1146
+#: java/jcf-dump.c:1147
 #, c-format
 msgid "  -IDIR                   Append directory to class path\n"
 msgstr ""
 
-#: java/jcf-dump.c:1147
+#: java/jcf-dump.c:1148
 #, c-format
 msgid "  --bootclasspath PATH    Override built-in class path\n"
 msgstr ""
 
-#: java/jcf-dump.c:1148
+#: java/jcf-dump.c:1149
 #, c-format
 msgid "  --extdirs PATH          Set extensions directory path\n"
 msgstr ""
 
-#: java/jcf-dump.c:1149
+#: java/jcf-dump.c:1150
 #, c-format
 msgid "  -o FILE                 Set output file name\n"
 msgstr ""
 
-#: java/jcf-dump.c:1151
+#: java/jcf-dump.c:1152
 #, c-format
 msgid "  --help                  Print this help, then exit\n"
 msgstr ""
 
-#: java/jcf-dump.c:1152
+#: java/jcf-dump.c:1153
 #, c-format
 msgid "  --version               Print version number, then exit\n"
 msgstr ""
 
-#: java/jcf-dump.c:1153
+#: java/jcf-dump.c:1154
 #, c-format
 msgid "  -v, --verbose           Print extra information while running\n"
 msgstr ""
 
-#: java/jcf-dump.c:1155
+#: java/jcf-dump.c:1156
 #, c-format
 msgid ""
 "For bug reporting instructions, please see:\n"
 "%s.\n"
 msgstr ""
 
-#: java/jcf-dump.c:1183 java/jcf-dump.c:1251
+#: java/jcf-dump.c:1194 java/jcf-dump.c:1262
 #, c-format
 msgid "jcf-dump: no classes specified\n"
 msgstr ""
 
-#: java/jcf-dump.c:1271
+#: java/jcf-dump.c:1282
 #, c-format
 msgid "Cannot open '%s' for output.\n"
 msgstr ""
 
-#: java/jcf-dump.c:1316
+#: java/jcf-dump.c:1327
 #, c-format
 msgid "bad format of .zip/.jar archive\n"
 msgstr ""
 
-#: java/jcf-dump.c:1434
+#: java/jcf-dump.c:1445
 #, c-format
 msgid "Bad byte codes.\n"
 msgstr ""
 
-#: java/jvgenmain.c:47
+#: java/jvgenmain.c:48
 #, c-format
 msgid "Usage: %s [OPTIONS]... CLASSNAMEmain [OUTFILE]\n"
 msgstr ""
 
-#: java/jvgenmain.c:111
+#: java/jvgenmain.c:121
 #, c-format
 msgid "%s: Cannot open output file: %s\n"
 msgstr ""
 
-#: java/jvgenmain.c:157
+#: java/jvgenmain.c:167
 #, c-format
 msgid "%s: Failed to close output file %s\n"
 msgstr ""
 
-#: config/bfin/elf.h:54
+#: config/lynx.h:70
+msgid "cannot use mthreads and mlegacy-threads together"
+msgstr ""
+
+#: config/lynx.h:95
+msgid "cannot use mshared and static together"
+msgstr ""
+
+#: objc/lang-specs.h:31 objc/lang-specs.h:42
+msgid "GNU Objective C no longer supports traditional compilation"
+msgstr ""
+
+#: objc/lang-specs.h:56
+msgid ""
+"objc-cpp-output is deprecated; please use objective-c-cpp-output instead"
+msgstr ""
+
+#: config/sparc/sol2.h:152 config/sparc/sol2.h:158 config/sparc/linux64.h:148
+#: config/sparc/linux64.h:155 config/sparc/netbsd-elf.h:110
+#: config/sparc/netbsd-elf.h:119
+msgid "may not use both -m32 and -m64"
+msgstr ""
+
+#: config/rs6000/sysv4.h:772 config/ia64/freebsd.h:26 config/arm/freebsd.h:31
+#: config/i386/freebsd.h:96 config/sparc/freebsd.h:46
+#: config/alpha/freebsd.h:34
+msgid "consider using '-pg' instead of '-p' with gprof(1)"
+msgstr ""
+
+#: config/i386/mingw-w64.h:83 config/i386/mingw32.h:120
+#: config/i386/cygwin.h:114
+msgid "shared and mdll are not compatible"
+msgstr ""
+
+#: config/bfin/elf.h:55
 msgid "no processor type specified for linking"
 msgstr ""
 
-#: config/arm/arm.h:178
+#: config/sol2-bi.h:92 config/sol2-bi.h:97
+msgid "does not support multilib"
+msgstr ""
+
+#: config/arm/arm.h:171
 msgid "-mfloat-abi=soft and -mfloat-abi=hard may not be used together"
 msgstr ""
 
-#: config/arm/arm.h:180
+#: config/arm/arm.h:173
 msgid "-mbig-endian and -mlittle-endian may not be used together"
 msgstr ""
 
+#: java/jvspec.c:80 ada/gcc-interface/lang-specs.h:33 gcc.c:776
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr ""
+
 #: objcp/lang-specs.h:58
 msgid ""
 "objc++-cpp-output is deprecated; please use objective-c++-cpp-output instead"
 msgstr ""
 
-#: config/i386/nwld.h:34
-msgid "static linking is not supported"
-msgstr ""
-
-#: config/i386/cygwin.h:116 config/i386/mingw-w64.h:75
-#: config/i386/mingw32.h:101
-msgid "shared and mdll are not compatible"
-msgstr ""
-
-#: config/i386/freebsd.h:98 config/ia64/freebsd.h:26 config/arm/freebsd.h:31
-#: config/alpha/freebsd.h:34 config/sparc/freebsd.h:46
-#: config/rs6000/sysv4.h:776
-msgid "consider using '-pg' instead of '-p' with gprof(1)"
-msgstr ""
-
-#: config/sh/sh.h:423
-msgid "SH2a does not support little-endian"
-msgstr ""
-
-#: config/rx/rx.h:66
-msgid "-mas100-syntax is incompatible with -gdwarf"
-msgstr ""
-
-#: config/rx/rx.h:67
-msgid "rx200 cpu does not have FPU hardware"
+#: config/rs6000/darwin.h:96
+msgid " conflicting code gen style switches are used"
 msgstr ""
 
 #: config/pa/pa-hpux10.h:89 config/pa/pa-hpux10.h:92 config/pa/pa-hpux10.h:100
@@ -4725,8 +4651,60 @@
 msgid "  profiling support are only provided in archive format"
 msgstr ""
 
-#: config/rs6000/darwin.h:99
-msgid " conflicting code gen style switches are used"
+#: config/mips/mips.h:1150
+msgid "may not use both -EB and -EL"
+msgstr ""
+
+#: config/mips/r3900.h:38
+msgid "-mhard-float not supported"
+msgstr ""
+
+#: config/mips/r3900.h:40
+msgid "-msingle-float and -msoft-float cannot both be specified"
+msgstr ""
+
+#: config/darwin.h:252
+msgid "-current_version only allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:254
+msgid "-install_name only allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:259
+msgid "-bundle not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:260
+msgid "-bundle_loader not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:261
+msgid "-client_name not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:266
+msgid "-force_flat_namespace not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:268
+msgid "-keep_private_externs not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:269
+msgid "-private_bundle not allowed with -dynamiclib"
+msgstr ""
+
+#: config/i386/nwld.h:34
+msgid "static linking is not supported"
+msgstr ""
+
+#: fortran/lang-specs.h:55 fortran/lang-specs.h:69
+msgid "gfortran does not support -E without -cpp"
+msgstr ""
+
+#: config/sh/sh.h:420
+msgid "SH2a does not support little-endian"
 msgstr ""
 
 #: config/vxworks.h:71
@@ -4745,124 +4723,48 @@
 msgid "-femit-class-file should used along with -fsyntax-only"
 msgstr ""
 
-#: config/cris/cris.h:196
-msgid "do not specify both -march=... and -mcpu=..."
-msgstr ""
-
-#: config/s390/tpf.h:120
-msgid "static is not supported on TPF-OS"
-msgstr ""
-
-#: config/mips/mips.h:1169
-msgid "may not use both -EB and -EL"
-msgstr ""
-
-#: config/mips/r3900.h:38
-msgid "-mhard-float not supported"
-msgstr ""
-
-#: config/mips/r3900.h:40
-msgid "-msingle-float and -msoft-float cannot both be specified"
-msgstr ""
-
-#: fortran/lang-specs.h:55 fortran/lang-specs.h:69
-msgid "gfortran does not support -E without -cpp"
-msgstr ""
-
 #: config/vax/netbsd-elf.h:51
 msgid "the -shared option is not currently supported for VAX ELF"
 msgstr ""
 
-#: config/vax/vax.h:50 config/vax/vax.h:51
-msgid "profiling not supported with -mg"
+#: config/cris/cris.h:196
+msgid "do not specify both -march=... and -mcpu=..."
 msgstr ""
 
-#: config/i386/linux-unwind.h:186
-msgid "ax ; {int $0x80 | syscall"
+#: config/rx/rx.h:57
+msgid "-mas100-syntax is incompatible with -gdwarf"
 msgstr ""
 
-#: ada/gcc-interface/lang-specs.h:33 gcc.c:775 java/jvspec.c:80
-msgid "-pg and -fomit-frame-pointer are incompatible"
+#: config/rx/rx.h:58
+msgid "rx200 cpu does not have FPU hardware"
 msgstr ""
 
 #: ada/gcc-interface/lang-specs.h:34
 msgid "-c or -S required for Ada"
 msgstr ""
 
+#: config/s390/tpf.h:116
+msgid "static is not supported on TPF-OS"
+msgstr ""
+
 #: config/mcore/mcore.h:54
 msgid "the m210 does not have little endian support"
 msgstr ""
 
-#: config/lynx.h:70
-msgid "cannot use mthreads and mlegacy-threads together"
-msgstr ""
-
-#: config/lynx.h:95
-msgid "cannot use mshared and static together"
-msgstr ""
-
-#: config/sparc/linux64.h:151 config/sparc/linux64.h:158
-#: config/sparc/netbsd-elf.h:118 config/sparc/netbsd-elf.h:127
-#: config/sparc/sol2-bi.h:232 config/sparc/sol2-bi.h:238
-msgid "may not use both -m32 and -m64"
-msgstr ""
-
-#: config/sparc/sol2-bi.h:208 config/sparc/sol2-bi.h:213
-#: config/sparc/sol2-gld-bi.h:50 config/sparc/sol2-gld-bi.h:55
-msgid "does not support multilib"
-msgstr ""
-
-#: gcc.c:653
+#: gcc.c:654
 msgid "-fuse-linker-plugin is not supported in this configuration"
 msgstr ""
 
-#: gcc.c:937
+#: gcc.c:938
 msgid "GNU C no longer supports -traditional without -E"
 msgstr ""
 
-#: gcc.c:946
+#: gcc.c:947
 msgid "-E or -x required when input is from standard input"
 msgstr ""
 
-#: objc/lang-specs.h:31 objc/lang-specs.h:42
-msgid "GNU Objective C no longer supports traditional compilation"
-msgstr ""
-
-#: objc/lang-specs.h:56
-msgid ""
-"objc-cpp-output is deprecated; please use objective-c-cpp-output instead"
-msgstr ""
-
-#: config/darwin.h:251
-msgid "-current_version only allowed with -dynamiclib"
-msgstr ""
-
-#: config/darwin.h:253
-msgid "-install_name only allowed with -dynamiclib"
-msgstr ""
-
-#: config/darwin.h:258
-msgid "-bundle not allowed with -dynamiclib"
-msgstr ""
-
-#: config/darwin.h:259
-msgid "-bundle_loader not allowed with -dynamiclib"
-msgstr ""
-
-#: config/darwin.h:260
-msgid "-client_name not allowed with -dynamiclib"
-msgstr ""
-
-#: config/darwin.h:265
-msgid "-force_flat_namespace not allowed with -dynamiclib"
-msgstr ""
-
-#: config/darwin.h:267
-msgid "-keep_private_externs not allowed with -dynamiclib"
-msgstr ""
-
-#: config/darwin.h:268
-msgid "-private_bundle not allowed with -dynamiclib"
+#: config/vax/vax.h:50 config/vax/vax.h:51
+msgid "profiling not supported with -mg"
 msgstr ""
 
 #: java/lang.opt:122
@@ -4976,7 +4878,7 @@
 msgid "Set the target VM version"
 msgstr ""
 
-#: ada/gcc-interface/lang.opt:117
+#: ada/gcc-interface/lang.opt:111
 msgid "-gnat<options>\tSpecify options to GNAT"
 msgstr ""
 
@@ -5009,321 +4911,342 @@
 msgstr ""
 
 #: fortran/lang.opt:227
-msgid "Warn about calls with implicit interface"
+msgid "Warn about function call elimination"
 msgstr ""
 
 #: fortran/lang.opt:231
-msgid "Warn about called procedures not explicitly declared"
+msgid "Warn about calls with implicit interface"
 msgstr ""
 
 #: fortran/lang.opt:235
-msgid "Warn about truncated source lines"
+msgid "Warn about called procedures not explicitly declared"
 msgstr ""
 
 #: fortran/lang.opt:239
+msgid "Warn about truncated source lines"
+msgstr ""
+
+#: fortran/lang.opt:243
 msgid "Warn on intrinsics not part of the selected standard"
 msgstr ""
 
 #: fortran/lang.opt:247
-msgid "Warn about \"suspicious\" constructs"
-msgstr ""
-
-#: fortran/lang.opt:251
-msgid "Permit nonconforming uses of the tab character"
+msgid "Warn about real-literal-constants with 'q' exponent-letter"
 msgstr ""
 
 #: fortran/lang.opt:255
-msgid "Warn about underflow of numerical constant expressions"
+msgid "Warn about \"suspicious\" constructs"
 msgstr ""
 
 #: fortran/lang.opt:259
-msgid "Warn if a user-procedure has the same name as an intrinsic"
+msgid "Permit nonconforming uses of the tab character"
 msgstr ""
 
 #: fortran/lang.opt:263
-msgid "Warn about unused dummy arguments."
+msgid "Warn about underflow of numerical constant expressions"
 msgstr ""
 
 #: fortran/lang.opt:267
-msgid "Enable preprocessing"
+msgid "Warn if a user-procedure has the same name as an intrinsic"
+msgstr ""
+
+#: fortran/lang.opt:271
+msgid "Warn about unused dummy arguments."
 msgstr ""
 
 #: fortran/lang.opt:275
-msgid "Disable preprocessing"
+msgid "Enable preprocessing"
 msgstr ""
 
 #: fortran/lang.opt:283
-msgid "Eliminate multiple function invokations also for impure functions"
-msgstr ""
-
-#: fortran/lang.opt:287
-msgid "Enable alignment of COMMON blocks"
+msgid "Disable preprocessing"
 msgstr ""
 
 #: fortran/lang.opt:291
-msgid "All intrinsics procedures are available regardless of selected standard"
+msgid "Eliminate multiple function invokations also for impure functions"
+msgstr ""
+
+#: fortran/lang.opt:295
+msgid "Enable alignment of COMMON blocks"
 msgstr ""
 
 #: fortran/lang.opt:299
+msgid "All intrinsics procedures are available regardless of selected standard"
+msgstr ""
+
+#: fortran/lang.opt:307
 msgid ""
 "Do not treat local variables and COMMON blocks as if they were named in SAVE "
 "statements"
 msgstr ""
 
-#: fortran/lang.opt:303
+#: fortran/lang.opt:311
 msgid "Specify that backslash in string introduces an escape character"
 msgstr ""
 
-#: fortran/lang.opt:307
+#: fortran/lang.opt:315
 msgid "Produce a backtrace when a runtime error is encountered"
 msgstr ""
 
-#: fortran/lang.opt:311
+#: fortran/lang.opt:319
 msgid ""
 "-fblas-matmul-limit=<n>\tSize of the smallest matrix for which matmul will "
 "use BLAS"
 msgstr ""
 
-#: fortran/lang.opt:315
+#: fortran/lang.opt:323
 msgid ""
 "Produce a warning at runtime if a array temporary has been created for a "
 "procedure argument"
 msgstr ""
 
-#: fortran/lang.opt:319
+#: fortran/lang.opt:327
 msgid "Use big-endian format for unformatted files"
 msgstr ""
 
-#: fortran/lang.opt:323
+#: fortran/lang.opt:331
 msgid "Use little-endian format for unformatted files"
 msgstr ""
 
-#: fortran/lang.opt:327
+#: fortran/lang.opt:335
 msgid "Use native format for unformatted files"
 msgstr ""
 
-#: fortran/lang.opt:331
+#: fortran/lang.opt:339
 msgid "Swap endianness for unformatted files"
 msgstr ""
 
-#: fortran/lang.opt:335
+#: fortran/lang.opt:343
 msgid "Use the Cray Pointer extension"
 msgstr ""
 
-#: fortran/lang.opt:339
+#: fortran/lang.opt:347
 msgid "Ignore 'D' in column one in fixed form"
 msgstr ""
 
-#: fortran/lang.opt:343
+#: fortran/lang.opt:351
 msgid "Treat lines with 'D' in column one as comments"
 msgstr ""
 
-#: fortran/lang.opt:347
+#: fortran/lang.opt:355
 msgid "Set the default double precision kind to an 8 byte wide type"
 msgstr ""
 
-#: fortran/lang.opt:351
+#: fortran/lang.opt:359
 msgid "Set the default integer kind to an 8 byte wide type"
 msgstr ""
 
-#: fortran/lang.opt:355
+#: fortran/lang.opt:363
 msgid "Set the default real kind to an 8 byte wide type"
 msgstr ""
 
-#: fortran/lang.opt:359
+#: fortran/lang.opt:367
 msgid "Allow dollar signs in entity names"
 msgstr ""
 
-#: fortran/lang.opt:363
-msgid "Dump a core file when a runtime error occurs"
-msgstr ""
-
-#: fortran/lang.opt:367
-msgid "Display the code tree after parsing"
-msgstr ""
-
-#: fortran/lang.opt:371
-msgid "Display the code tree after front end optimization"
+#: fortran/lang.opt:371 common.opt:648 common.opt:808 common.opt:812
+#: common.opt:816 common.opt:820 common.opt:1293
+msgid "Does nothing. Preserved for backward compatibility."
 msgstr ""
 
 #: fortran/lang.opt:375
-msgid "Display the code tree after parsing; deprecated option"
+msgid "Display the code tree after parsing"
 msgstr ""
 
 #: fortran/lang.opt:379
+msgid "Display the code tree after front end optimization"
+msgstr ""
+
+#: fortran/lang.opt:383
+msgid "Display the code tree after parsing; deprecated option"
+msgstr ""
+
+#: fortran/lang.opt:387
 msgid ""
 "Specify that an external BLAS library should be used for matmul calls on "
 "large-size arrays"
 msgstr ""
 
-#: fortran/lang.opt:383
+#: fortran/lang.opt:391
 msgid "Use f2c calling convention"
 msgstr ""
 
-#: fortran/lang.opt:387
+#: fortran/lang.opt:395
 msgid "Assume that the source file is fixed form"
 msgstr ""
 
-#: fortran/lang.opt:391
+#: fortran/lang.opt:399
 msgid "Specify where to find the compiled intrinsic modules"
 msgstr ""
 
-#: fortran/lang.opt:395
+#: fortran/lang.opt:403
 msgid "Allow arbitrary character line width in fixed mode"
 msgstr ""
 
-#: fortran/lang.opt:399
+#: fortran/lang.opt:407
 msgid "-ffixed-line-length-<n>\tUse n as character line width in fixed mode"
 msgstr ""
 
-#: fortran/lang.opt:403
+#: fortran/lang.opt:411
 msgid "-ffpe-trap=[...]\tStop on following floating point exceptions"
 msgstr ""
 
-#: fortran/lang.opt:407
+#: fortran/lang.opt:415
 msgid "Assume that the source file is free form"
 msgstr ""
 
-#: fortran/lang.opt:411
+#: fortran/lang.opt:419
 msgid "Allow arbitrary character line width in free mode"
 msgstr ""
 
-#: fortran/lang.opt:415
+#: fortran/lang.opt:423
 msgid "-ffree-line-length-<n>\tUse n as character line width in free mode"
 msgstr ""
 
-#: fortran/lang.opt:419
+#: fortran/lang.opt:427
+msgid "Enable front end optimization"
+msgstr ""
+
+#: fortran/lang.opt:431
 msgid ""
 "Specify that no implicit typing is allowed, unless overridden by explicit "
 "IMPLICIT statements"
 msgstr ""
 
-#: fortran/lang.opt:423
+#: fortran/lang.opt:435
 msgid ""
 "-finit-character=<n>\tInitialize local character variables to ASCII value n"
 msgstr ""
 
-#: fortran/lang.opt:427
+#: fortran/lang.opt:439
 msgid "-finit-integer=<n>\tInitialize local integer variables to n"
 msgstr ""
 
-#: fortran/lang.opt:431
+#: fortran/lang.opt:443
 msgid "Initialize local variables to zero (from g77)"
 msgstr ""
 
-#: fortran/lang.opt:435
+#: fortran/lang.opt:447
 msgid "-finit-logical=<true|false>\tInitialize local logical variables"
 msgstr ""
 
-#: fortran/lang.opt:439
+#: fortran/lang.opt:451
 msgid "-finit-real=<zero|nan|inf|-inf>\tInitialize local real variables"
 msgstr ""
 
-#: fortran/lang.opt:443
+#: fortran/lang.opt:455
 msgid ""
 "-fmax-array-constructor=<n>\tMaximum number of objects in an array "
 "constructor"
 msgstr ""
 
-#: fortran/lang.opt:447
+#: fortran/lang.opt:459
 msgid "-fmax-identifier-length=<n>\tMaximum identifier length"
 msgstr ""
 
-#: fortran/lang.opt:451
+#: fortran/lang.opt:463
 msgid "-fmax-subrecord-length=<n>\tMaximum length for subrecords"
 msgstr ""
 
-#: fortran/lang.opt:455
+#: fortran/lang.opt:467
 msgid ""
 "-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be "
 "put on the stack"
 msgstr ""
 
-#: fortran/lang.opt:459
-msgid "Set default accessibility of module entities to PRIVATE."
-msgstr ""
-
-#: fortran/lang.opt:467
-msgid "Try to lay out derived types as compactly as possible"
+#: fortran/lang.opt:471
+msgid "Put all local arrays on stack."
 msgstr ""
 
 #: fortran/lang.opt:475
-msgid "Protect parentheses in expressions"
-msgstr ""
-
-#: fortran/lang.opt:479
-msgid "Enable range checking during compilation"
+msgid "Set default accessibility of module entities to PRIVATE."
 msgstr ""
 
 #: fortran/lang.opt:483
-msgid "Reallocate the LHS in assignments"
-msgstr ""
-
-#: fortran/lang.opt:487
-msgid "Use a 4-byte record marker for unformatted files"
+msgid "Try to lay out derived types as compactly as possible"
 msgstr ""
 
 #: fortran/lang.opt:491
-msgid "Use an 8-byte record marker for unformatted files"
+msgid "Protect parentheses in expressions"
 msgstr ""
 
 #: fortran/lang.opt:495
-msgid "Allocate local variables on the stack to allow indirect recursion"
+msgid "Enable range checking during compilation"
 msgstr ""
 
 #: fortran/lang.opt:499
-msgid "Copy array sections into a contiguous block on procedure entry"
+msgid "Reallocate the LHS in assignments"
 msgstr ""
 
 #: fortran/lang.opt:503
-msgid "-fcoarray=[...]\tSpecify which coarray parallelization should be used"
+msgid "Use a 4-byte record marker for unformatted files"
 msgstr ""
 
 #: fortran/lang.opt:507
-msgid "-fcheck=[...]\tSpecify which runtime checks are to be performed"
+msgid "Use an 8-byte record marker for unformatted files"
 msgstr ""
 
 #: fortran/lang.opt:511
-msgid "Append a second underscore if the name already contains an underscore"
+msgid "Allocate local variables on the stack to allow indirect recursion"
+msgstr ""
+
+#: fortran/lang.opt:515
+msgid "Copy array sections into a contiguous block on procedure entry"
 msgstr ""
 
 #: fortran/lang.opt:519
-msgid "Apply negative sign to zero values"
+msgid "-fcoarray=[...]\tSpecify which coarray parallelization should be used"
 msgstr ""
 
 #: fortran/lang.opt:523
-msgid "Append underscores to externally visible names"
+msgid "-fcheck=[...]\tSpecify which runtime checks are to be performed"
 msgstr ""
 
 #: fortran/lang.opt:527
+msgid "Append a second underscore if the name already contains an underscore"
+msgstr ""
+
+#: fortran/lang.opt:535
+msgid "Apply negative sign to zero values"
+msgstr ""
+
+#: fortran/lang.opt:539
+msgid "Append underscores to externally visible names"
+msgstr ""
+
+#: fortran/lang.opt:543
 msgid "Compile all program units at once and check all interfaces"
 msgstr ""
 
-#: fortran/lang.opt:567
+#: fortran/lang.opt:583
 msgid "Statically link the GNU Fortran helper library (libgfortran)"
 msgstr ""
 
-#: fortran/lang.opt:571
+#: fortran/lang.opt:587
 msgid "Conform to the ISO Fortran 2003 standard"
 msgstr ""
 
-#: fortran/lang.opt:575
+#: fortran/lang.opt:591
 msgid "Conform to the ISO Fortran 2008 standard"
 msgstr ""
 
-#: fortran/lang.opt:579
+#: fortran/lang.opt:595
+msgid "Conform to the ISO Fortran 2008 standard including TR 29113"
+msgstr ""
+
+#: fortran/lang.opt:599
 msgid "Conform to the ISO Fortran 95 standard"
 msgstr ""
 
-#: fortran/lang.opt:583
+#: fortran/lang.opt:603
 msgid "Conform to nothing in particular"
 msgstr ""
 
-#: fortran/lang.opt:587
+#: fortran/lang.opt:607
 msgid "Accept extensions to support legacy code"
 msgstr ""
 
-#: config/alpha/alpha.opt:23 config/i386/i386.opt:214
+#: config/alpha/alpha.opt:23 config/i386/i386.opt:275
 msgid "Do not use hardware fp"
 msgstr ""
 
@@ -5434,7 +5357,7 @@
 msgstr ""
 
 #: config/alpha/alpha.opt:134 config/ia64/ia64.opt:119
-#: config/rs6000/sysv4.opt:32
+#: config/rs6000/sysv4.opt:33
 msgid "Specify bit size of immediate TLS offsets"
 msgstr ""
 
@@ -5520,7 +5443,7 @@
 msgid "Enable use of GPREL for read-only data in FDPIC"
 msgstr ""
 
-#: config/frv/frv.opt:158 config/rs6000/rs6000.opt:216
+#: config/frv/frv.opt:158 config/rs6000/rs6000.opt:180
 #: config/pdp11/pdp11.opt:67
 msgid "Use hardware floating point"
 msgstr ""
@@ -5613,7 +5536,7 @@
 msgid "Target the AM34 processor"
 msgstr ""
 
-#: config/mn10300/mn10300.opt:42 config/arm/arm.opt:154
+#: config/mn10300/mn10300.opt:42 config/arm/arm.opt:220
 msgid "Tune code for the given processor"
 msgstr ""
 
@@ -5633,6 +5556,10 @@
 msgid "Allow gcc to generate LIW instructions"
 msgstr ""
 
+#: config/mn10300/mn10300.opt:67
+msgid "Allow gcc to generate the SETLB and Lcc instructions"
+msgstr ""
+
 #: config/s390/tpf.opt:23
 msgid "Enable TPF-OS tracing code"
 msgstr ""
@@ -5649,7 +5576,7 @@
 msgid "64 bit ABI"
 msgstr ""
 
-#: config/s390/s390.opt:47 config/i386/i386.opt:107 config/spu/spu.opt:80
+#: config/s390/s390.opt:47 config/i386/i386.opt:106 config/spu/spu.opt:80
 msgid "Generate code for given CPU"
 msgstr ""
 
@@ -5697,8 +5624,8 @@
 "exceeds the given limit"
 msgstr ""
 
-#: config/s390/s390.opt:126 config/ia64/ia64.opt:123 config/sparc/sparc.opt:91
-#: config/i386/i386.opt:242 config/spu/spu.opt:84
+#: config/s390/s390.opt:126 config/ia64/ia64.opt:123 config/sparc/sparc.opt:98
+#: config/i386/i386.opt:338 config/spu/spu.opt:84
 msgid "Schedule code for given CPU"
 msgstr ""
 
@@ -5932,75 +5859,79 @@
 msgid "Generate code for big-endian"
 msgstr ""
 
-#: config/sparc/sparc.opt:23 config/sparc/sparc.opt:27
+#: config/sparc/sparc.opt:26 config/sparc/sparc.opt:30
 msgid "Use hardware FP"
 msgstr ""
 
-#: config/sparc/sparc.opt:31
+#: config/sparc/sparc.opt:34
 msgid "Do not use hardware FP"
 msgstr ""
 
-#: config/sparc/sparc.opt:35
+#: config/sparc/sparc.opt:38
+msgid "Use flat register window model"
+msgstr ""
+
+#: config/sparc/sparc.opt:42
 msgid "Assume possible double misalignment"
 msgstr ""
 
-#: config/sparc/sparc.opt:39
+#: config/sparc/sparc.opt:46
 msgid "Use ABI reserved registers"
 msgstr ""
 
-#: config/sparc/sparc.opt:43
+#: config/sparc/sparc.opt:50
 msgid "Use hardware quad FP instructions"
 msgstr ""
 
-#: config/sparc/sparc.opt:47
+#: config/sparc/sparc.opt:54
 msgid "Do not use hardware quad fp instructions"
 msgstr ""
 
-#: config/sparc/sparc.opt:51
+#: config/sparc/sparc.opt:58
 msgid "Compile for V8+ ABI"
 msgstr ""
 
-#: config/sparc/sparc.opt:55
+#: config/sparc/sparc.opt:62
 msgid "Use UltraSPARC Visual Instruction Set extensions"
 msgstr ""
 
-#: config/sparc/sparc.opt:59
+#: config/sparc/sparc.opt:66
 msgid "Pointers are 64-bit"
 msgstr ""
 
-#: config/sparc/sparc.opt:63
+#: config/sparc/sparc.opt:70
 msgid "Pointers are 32-bit"
 msgstr ""
 
-#: config/sparc/sparc.opt:67
+#: config/sparc/sparc.opt:74
 msgid "Use 64-bit ABI"
 msgstr ""
 
-#: config/sparc/sparc.opt:71
+#: config/sparc/sparc.opt:78
 msgid "Use 32-bit ABI"
 msgstr ""
 
-#: config/sparc/sparc.opt:75
+#: config/sparc/sparc.opt:82
 msgid "Use stack bias"
 msgstr ""
 
-#: config/sparc/sparc.opt:79
+#: config/sparc/sparc.opt:86
 msgid "Use structs on stronger alignment for double-word copies"
 msgstr ""
 
-#: config/sparc/sparc.opt:83
+#: config/sparc/sparc.opt:90
 msgid "Optimize tail call instructions in assembler and linker"
 msgstr ""
 
-#: config/sparc/sparc.opt:87
+#: config/sparc/sparc.opt:94
 msgid "Use features of and schedule code for given CPU"
 msgstr ""
 
-#: config/sparc/sparc.opt:95
+#: config/sparc/sparc.opt:156
 msgid "Use given SPARC-V9 code model"
 msgstr ""
 
-#: config/sparc/sparc.opt:99
+#: config/sparc/sparc.opt:160
 msgid "Enable strict 32-bit psABI struct return checking."
 msgstr ""
 
@@ -6064,521 +5995,578 @@
 msgid "Small data area: none, sdata, use"
 msgstr ""
 
-#: config/m68k/m68k.opt:23
+#: config/m68k/m68k.opt:31
 msgid "Generate code for a 520X"
 msgstr ""
 
-#: config/m68k/m68k.opt:27
+#: config/m68k/m68k.opt:35
 msgid "Generate code for a 5206e"
 msgstr ""
 
-#: config/m68k/m68k.opt:31
+#: config/m68k/m68k.opt:39
 msgid "Generate code for a 528x"
 msgstr ""
 
-#: config/m68k/m68k.opt:35
+#: config/m68k/m68k.opt:43
 msgid "Generate code for a 5307"
 msgstr ""
 
-#: config/m68k/m68k.opt:39
+#: config/m68k/m68k.opt:47
 msgid "Generate code for a 5407"
 msgstr ""
 
-#: config/m68k/m68k.opt:43 config/m68k/m68k.opt:104
+#: config/m68k/m68k.opt:51 config/m68k/m68k.opt:112
 msgid "Generate code for a 68000"
 msgstr ""
 
-#: config/m68k/m68k.opt:47
+#: config/m68k/m68k.opt:55
 msgid "Generate code for a 68010"
 msgstr ""
 
-#: config/m68k/m68k.opt:51 config/m68k/m68k.opt:108
+#: config/m68k/m68k.opt:59 config/m68k/m68k.opt:116
 msgid "Generate code for a 68020"
 msgstr ""
 
-#: config/m68k/m68k.opt:55
+#: config/m68k/m68k.opt:63
 msgid "Generate code for a 68040, without any new instructions"
 msgstr ""
 
-#: config/m68k/m68k.opt:59
+#: config/m68k/m68k.opt:67
 msgid "Generate code for a 68060, without any new instructions"
 msgstr ""
 
-#: config/m68k/m68k.opt:63
+#: config/m68k/m68k.opt:71
 msgid "Generate code for a 68030"
 msgstr ""
 
-#: config/m68k/m68k.opt:67
+#: config/m68k/m68k.opt:75
 msgid "Generate code for a 68040"
 msgstr ""
 
-#: config/m68k/m68k.opt:71
+#: config/m68k/m68k.opt:79
 msgid "Generate code for a 68060"
 msgstr ""
 
-#: config/m68k/m68k.opt:75
+#: config/m68k/m68k.opt:83
 msgid "Generate code for a 68302"
 msgstr ""
 
-#: config/m68k/m68k.opt:79
+#: config/m68k/m68k.opt:87
 msgid "Generate code for a 68332"
 msgstr ""
 
-#: config/m68k/m68k.opt:84
+#: config/m68k/m68k.opt:92
 msgid "Generate code for a 68851"
 msgstr ""
 
-#: config/m68k/m68k.opt:88
+#: config/m68k/m68k.opt:96
 msgid "Generate code that uses 68881 floating-point instructions"
 msgstr ""
 
-#: config/m68k/m68k.opt:92
+#: config/m68k/m68k.opt:100
 msgid "Align variables on a 32-bit boundary"
 msgstr ""
 
-#: config/m68k/m68k.opt:96 config/arm/arm.opt:49 config/score/score.opt:47
+#: config/m68k/m68k.opt:104 config/arm/arm.opt:71 config/score/score.opt:47
 msgid "Specify the name of the target architecture"
 msgstr ""
 
-#: config/m68k/m68k.opt:100
+#: config/m68k/m68k.opt:108
 msgid "Use the bit-field instructions"
 msgstr ""
 
-#: config/m68k/m68k.opt:112
+#: config/m68k/m68k.opt:120
 msgid "Generate code for a ColdFire v4e"
 msgstr ""
 
-#: config/m68k/m68k.opt:116
+#: config/m68k/m68k.opt:124
 msgid "Specify the target CPU"
 msgstr ""
 
-#: config/m68k/m68k.opt:120
+#: config/m68k/m68k.opt:128
 msgid "Generate code for a cpu32"
 msgstr ""
 
-#: config/m68k/m68k.opt:124
+#: config/m68k/m68k.opt:132
 msgid "Use hardware division instructions on ColdFire"
 msgstr ""
 
-#: config/m68k/m68k.opt:128
+#: config/m68k/m68k.opt:136
 msgid "Generate code for a Fido A"
 msgstr ""
 
-#: config/m68k/m68k.opt:132
+#: config/m68k/m68k.opt:140
 msgid "Generate code which uses hardware floating point instructions"
 msgstr ""
 
-#: config/m68k/m68k.opt:136
+#: config/m68k/m68k.opt:144
 msgid "Enable ID based shared library"
 msgstr ""
 
-#: config/m68k/m68k.opt:140
+#: config/m68k/m68k.opt:148
 msgid "Do not use the bit-field instructions"
 msgstr ""
 
-#: config/m68k/m68k.opt:144
+#: config/m68k/m68k.opt:152
 msgid "Use normal calling convention"
 msgstr ""
 
-#: config/m68k/m68k.opt:148
+#: config/m68k/m68k.opt:156
 msgid "Consider type 'int' to be 32 bits wide"
 msgstr ""
 
-#: config/m68k/m68k.opt:152
+#: config/m68k/m68k.opt:160
 msgid "Generate pc-relative code"
 msgstr ""
 
-#: config/m68k/m68k.opt:156
+#: config/m68k/m68k.opt:164
 msgid "Use different calling convention using 'rtd'"
 msgstr ""
 
-#: config/m68k/m68k.opt:160 config/bfin/bfin.opt:78
+#: config/m68k/m68k.opt:168 config/bfin/bfin.opt:78
 msgid "Enable separate data segment"
 msgstr ""
 
-#: config/m68k/m68k.opt:164 config/bfin/bfin.opt:74
+#: config/m68k/m68k.opt:172 config/bfin/bfin.opt:74
 msgid "ID of shared library to build"
 msgstr ""
 
-#: config/m68k/m68k.opt:168
+#: config/m68k/m68k.opt:176
 msgid "Consider type 'int' to be 16 bits wide"
 msgstr ""
 
-#: config/m68k/m68k.opt:172
+#: config/m68k/m68k.opt:180
 msgid "Generate code with library calls for floating point"
 msgstr ""
 
-#: config/m68k/m68k.opt:176
+#: config/m68k/m68k.opt:184
 msgid "Do not use unaligned memory references"
 msgstr ""
 
-#: config/m68k/m68k.opt:180
+#: config/m68k/m68k.opt:188
 msgid "Tune for the specified target CPU or architecture"
 msgstr ""
 
-#: config/m68k/m68k.opt:184
+#: config/m68k/m68k.opt:192
 msgid "Support more than 8192 GOT entries on ColdFire"
 msgstr ""
 
-#: config/m68k/m68k.opt:188
+#: config/m68k/m68k.opt:196
 msgid "Support TLS segment larger than 64K"
 msgstr ""
 
-#: config/m68k/ieee.opt:24 config/i386/i386.opt:150
+#: config/m68k/ieee.opt:24 config/i386/i386.opt:203
 msgid "Use IEEE math for fp comparisons"
 msgstr ""
 
+#: config/m68k/m68k-tables.opt:25
+msgid "Known M68K CPUs (for use with the -mcpu= option):"
+msgstr ""
+
+#: config/m68k/m68k-tables.opt:347
+msgid "Known M68K microarchitectures (for use with the -mtune= option):"
+msgstr ""
+
+#: config/m68k/m68k-tables.opt:393
+msgid "Known M68K ISAs (for use with the -march= option):"
+msgstr ""
+
 #: config/i386/djgpp.opt:25
 msgid "Ignored (obsolete)"
 msgstr ""
 
-#: config/i386/mingw.opt:23
+#: config/i386/mingw.opt:29
 msgid "Warn about none ISO msvcrt scanf/printf width extensions"
 msgstr ""
 
-#: config/i386/mingw.opt:27
+#: config/i386/mingw.opt:33
 msgid "For nested functions on stack executable permission is set."
 msgstr ""
 
-#: config/i386/i386.opt:71
+#: config/i386/i386.opt:70
 msgid "sizeof(long double) is 16"
 msgstr ""
 
-#: config/i386/i386.opt:75 config/i386/i386.opt:146
+#: config/i386/i386.opt:74 config/i386/i386.opt:199
 msgid "Use hardware fp"
 msgstr ""
 
-#: config/i386/i386.opt:79
+#: config/i386/i386.opt:78
 msgid "sizeof(long double) is 12"
 msgstr ""
 
-#: config/i386/i386.opt:83 config/sh/sh.opt:206
+#: config/i386/i386.opt:82 config/sh/sh.opt:206
 msgid "Reserve space for outgoing arguments in the function prologue"
 msgstr ""
 
-#: config/i386/i386.opt:87
+#: config/i386/i386.opt:86
 msgid "Align some doubles on dword boundary"
 msgstr ""
 
-#: config/i386/i386.opt:91
+#: config/i386/i386.opt:90
 msgid "Function starts are aligned to this power of 2"
 msgstr ""
 
-#: config/i386/i386.opt:95
+#: config/i386/i386.opt:94
 msgid "Jump targets are aligned to this power of 2"
 msgstr ""
 
-#: config/i386/i386.opt:99
+#: config/i386/i386.opt:98
 msgid "Loop code aligned to this power of 2"
 msgstr ""
 
-#: config/i386/i386.opt:103
+#: config/i386/i386.opt:102
 msgid "Align destination of the string operations"
 msgstr ""
 
-#: config/i386/i386.opt:111
+#: config/i386/i386.opt:110
 msgid "Use given assembler dialect"
 msgstr ""
 
-#: config/i386/i386.opt:115
+#: config/i386/i386.opt:114
+msgid "Known assembler dialects (for use with the -masm-dialect= option):"
+msgstr ""
+
+#: config/i386/i386.opt:124
 msgid "Branches are this expensive (1-5, arbitrary units)"
 msgstr ""
 
-#: config/i386/i386.opt:119
+#: config/i386/i386.opt:128
 msgid ""
 "Data greater than given threshold will go into .ldata section in x86-64 "
 "medium model"
 msgstr ""
 
-#: config/i386/i386.opt:123
+#: config/i386/i386.opt:132
 msgid "Use given x86-64 code model"
 msgstr ""
 
-#: config/i386/i386.opt:126
-msgid "%<-mcpu=%> is deprecated; use %<-mtune=%> or %<-march=%> instead"
-msgstr ""
-
-#: config/i386/i386.opt:130
-msgid "Generate sin, cos, sqrt for FPU"
-msgstr ""
-
-#: config/i386/i386.opt:134
-msgid "Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack"
-msgstr ""
-
-#: config/i386/i386.opt:138
-msgid "Return values of functions in FPU registers"
-msgstr ""
-
-#: config/i386/i386.opt:142
-msgid "Generate floating point mathematics using given instruction set"
+#: config/i386/i386.opt:136 config/rs6000/linux64.opt:32
+msgid "Known code models (for use with the -mcmodel= option):"
 msgstr ""
 
 #: config/i386/i386.opt:154
-msgid "Inline all known string operations"
+msgid "%<-mcpu=%> is deprecated; use %<-mtune=%> or %<-march=%> instead"
 msgstr ""
 
 #: config/i386/i386.opt:158
+msgid "Generate sin, cos, sqrt for FPU"
+msgstr ""
+
+#: config/i386/i386.opt:162
+msgid "Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack"
+msgstr ""
+
+#: config/i386/i386.opt:166
+msgid "Return values of functions in FPU registers"
+msgstr ""
+
+#: config/i386/i386.opt:170
+msgid "Generate floating point mathematics using given instruction set"
+msgstr ""
+
+#: config/i386/i386.opt:174
+msgid "Valid arguments to -mfpmath=:"
+msgstr ""
+
+#: config/i386/i386.opt:207
+msgid "Inline all known string operations"
+msgstr ""
+
+#: config/i386/i386.opt:211
 msgid ""
 "Inline memset/memcpy string operations, but perform inline version only for "
 "small blocks"
 msgstr ""
 
-#: config/i386/i386.opt:161
+#: config/i386/i386.opt:214
 msgid ""
 "%<-mintel-syntax%> and %<-mno-intel-syntax%> are deprecated; use %<-"
 "masm=intel%> and %<-masm=att%> instead"
 msgstr ""
 
-#: config/i386/i386.opt:166
+#: config/i386/i386.opt:219
 msgid "Use native (MS) bitfield layout"
 msgstr ""
 
-#: config/i386/i386.opt:182
+#: config/i386/i386.opt:235
 msgid "Omit the frame pointer in leaf functions"
 msgstr ""
 
-#: config/i386/i386.opt:186
-msgid "Set 80387 floating-point precision (-mpc32, -mpc64, -mpc80)"
+#: config/i386/i386.opt:239
+msgid "Set 80387 floating-point precision to 32-bit"
 msgstr ""
 
-#: config/i386/i386.opt:190
+#: config/i386/i386.opt:243
+msgid "Set 80387 floating-point precision to 64-bit"
+msgstr ""
+
+#: config/i386/i386.opt:247
+msgid "Set 80387 floating-point precision to 80-bit"
+msgstr ""
+
+#: config/i386/i386.opt:251
 msgid "Attempt to keep stack aligned to this power of 2"
 msgstr ""
 
-#: config/i386/i386.opt:194
+#: config/i386/i386.opt:255
 msgid "Assume incoming stack aligned to this power of 2"
 msgstr ""
 
-#: config/i386/i386.opt:198
+#: config/i386/i386.opt:259
 msgid "Use push instructions to save outgoing arguments"
 msgstr ""
 
-#: config/i386/i386.opt:202
+#: config/i386/i386.opt:263
 msgid "Use red-zone in the x86-64 code"
 msgstr ""
 
-#: config/i386/i386.opt:206
+#: config/i386/i386.opt:267
 msgid "Number of registers used to pass integer arguments"
 msgstr ""
 
-#: config/i386/i386.opt:210
+#: config/i386/i386.opt:271
 msgid "Alternate calling convention"
 msgstr ""
 
-#: config/i386/i386.opt:218
+#: config/i386/i386.opt:279
 msgid "Use SSE register passing conventions for SF and DF mode"
 msgstr ""
 
-#: config/i386/i386.opt:222
+#: config/i386/i386.opt:283
 msgid "Realign stack in prologue"
 msgstr ""
 
-#: config/i386/i386.opt:226
+#: config/i386/i386.opt:287
 msgid "Enable stack probing"
 msgstr ""
 
-#: config/i386/i386.opt:230
+#: config/i386/i386.opt:291
 msgid "Chose strategy to generate stringop using"
 msgstr ""
 
-#: config/i386/i386.opt:234
+#: config/i386/i386.opt:295
+msgid "Valid arguments to -mstringop-strategy=:"
+msgstr ""
+
+#: config/i386/i386.opt:320
 msgid "Use given thread-local storage dialect"
 msgstr ""
 
-#: config/i386/i386.opt:238
+#: config/i386/i386.opt:324
+msgid "Known TLS dialects (for use with the -mtls-dialect= option):"
+msgstr ""
+
+#: config/i386/i386.opt:334
 #, c-format
 msgid "Use direct references against %gs when accessing tls data"
 msgstr ""
 
-#: config/i386/i386.opt:246
+#: config/i386/i386.opt:342
 msgid "Generate code that conforms to the given ABI"
 msgstr ""
 
-#: config/i386/i386.opt:250 config/rs6000/rs6000.opt:228
+#: config/i386/i386.opt:346
+msgid "Known ABIs (for use with the -mabi= option):"
+msgstr ""
+
+#: config/i386/i386.opt:356 config/rs6000/rs6000.opt:192
 msgid "Vector library ABI to use"
 msgstr ""
 
-#: config/i386/i386.opt:254
+#: config/i386/i386.opt:360
+msgid ""
+"Known vectorization library ABIs (for use with the -mveclibabi= option):"
+msgstr ""
+
+#: config/i386/i386.opt:370
 msgid "Return 8-byte vectors in memory"
 msgstr ""
 
-#: config/i386/i386.opt:258
+#: config/i386/i386.opt:374
 msgid "Generate reciprocals instead of divss and sqrtss."
 msgstr ""
 
-#: config/i386/i386.opt:262
+#: config/i386/i386.opt:378
 msgid "Generate cld instruction in the function prologue."
 msgstr ""
 
-#: config/i386/i386.opt:266
+#: config/i386/i386.opt:382
 msgid ""
 "Generate vzeroupper instruction before a transfer of control flow out of"
 msgstr ""
 
-#: config/i386/i386.opt:271
+#: config/i386/i386.opt:387
 msgid "Do dispatch scheduling if processor is bdver1 and Haifa scheduling"
 msgstr ""
 
-#: config/i386/i386.opt:276
+#: config/i386/i386.opt:392
 msgid ""
 "Use 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-"
 "vectorizer."
 msgstr ""
 
-#: config/i386/i386.opt:282
+#: config/i386/i386.opt:398
 msgid "Generate 32bit i386 code"
 msgstr ""
 
-#: config/i386/i386.opt:286
+#: config/i386/i386.opt:402
 msgid "Generate 64bit x86-64 code"
 msgstr ""
 
-#: config/i386/i386.opt:290
+#: config/i386/i386.opt:406
 msgid "Support MMX built-in functions"
 msgstr ""
 
-#: config/i386/i386.opt:294
+#: config/i386/i386.opt:410
 msgid "Support 3DNow! built-in functions"
 msgstr ""
 
-#: config/i386/i386.opt:298
+#: config/i386/i386.opt:414
 msgid "Support Athlon 3Dnow! built-in functions"
 msgstr ""
 
-#: config/i386/i386.opt:302
+#: config/i386/i386.opt:418
 msgid "Support MMX and SSE built-in functions and code generation"
 msgstr ""
 
-#: config/i386/i386.opt:306
+#: config/i386/i386.opt:422
 msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
 msgstr ""
 
-#: config/i386/i386.opt:310
+#: config/i386/i386.opt:426
 msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
 msgstr ""
 
-#: config/i386/i386.opt:314
+#: config/i386/i386.opt:430
 msgid ""
 "Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation"
 msgstr ""
 
-#: config/i386/i386.opt:318
+#: config/i386/i386.opt:434
 msgid ""
 "Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code "
 "generation"
 msgstr ""
 
-#: config/i386/i386.opt:322 config/i386/i386.opt:326
+#: config/i386/i386.opt:438 config/i386/i386.opt:442
 msgid ""
 "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions "
 "and code generation"
 msgstr ""
 
-#: config/i386/i386.opt:330
+#: config/i386/i386.opt:446
 msgid "Do not support SSE4.1 and SSE4.2 built-in functions and code generation"
 msgstr ""
 
-#: config/i386/i386.opt:333
+#: config/i386/i386.opt:449
 msgid "%<-msse5%> was removed"
 msgstr ""
 
-#: config/i386/i386.opt:338
+#: config/i386/i386.opt:454
 msgid ""
 "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in "
 "functions and code generation"
 msgstr ""
 
-#: config/i386/i386.opt:342
+#: config/i386/i386.opt:458
 msgid ""
 "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in "
 "functions and code generation"
 msgstr ""
 
-#: config/i386/i386.opt:346
+#: config/i386/i386.opt:462
 msgid ""
 "Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation"
 msgstr ""
 
-#: config/i386/i386.opt:350
+#: config/i386/i386.opt:466
 msgid "Support FMA4 built-in functions and code generation "
 msgstr ""
 
-#: config/i386/i386.opt:354
+#: config/i386/i386.opt:470
 msgid "Support XOP built-in functions and code generation "
 msgstr ""
 
-#: config/i386/i386.opt:358
+#: config/i386/i386.opt:474
 msgid "Support LWP built-in functions and code generation "
 msgstr ""
 
-#: config/i386/i386.opt:362
+#: config/i386/i386.opt:478
 msgid ""
 "Support code generation of Advanced Bit Manipulation (ABM) instructions."
 msgstr ""
 
-#: config/i386/i386.opt:366
+#: config/i386/i386.opt:482
 msgid "Support code generation of popcnt instruction."
 msgstr ""
 
-#: config/i386/i386.opt:370
+#: config/i386/i386.opt:486
 msgid "Support BMI built-in functions and code generation"
 msgstr ""
 
-#: config/i386/i386.opt:374
+#: config/i386/i386.opt:490
 msgid "Support TBM built-in functions and code generation"
 msgstr ""
 
-#: config/i386/i386.opt:378
+#: config/i386/i386.opt:494
 msgid "Support code generation of cmpxchg16b instruction."
 msgstr ""
 
-#: config/i386/i386.opt:382
+#: config/i386/i386.opt:498
 msgid "Support code generation of sahf instruction in 64bit x86-64 code."
 msgstr ""
 
-#: config/i386/i386.opt:386
+#: config/i386/i386.opt:502
 msgid "Support code generation of movbe instruction."
 msgstr ""
 
-#: config/i386/i386.opt:390
+#: config/i386/i386.opt:506
 msgid "Support code generation of crc32 instruction."
 msgstr ""
 
-#: config/i386/i386.opt:394
+#: config/i386/i386.opt:510
 msgid "Support AES built-in functions and code generation"
 msgstr ""
 
-#: config/i386/i386.opt:398
+#: config/i386/i386.opt:514
 msgid "Support PCLMUL built-in functions and code generation"
 msgstr ""
 
-#: config/i386/i386.opt:402
+#: config/i386/i386.opt:518
 msgid "Encode SSE instructions with VEX prefix"
 msgstr ""
 
-#: config/i386/i386.opt:406
+#: config/i386/i386.opt:522
 msgid "Support FSGSBASE built-in functions and code generation"
 msgstr ""
 
-#: config/i386/i386.opt:410
+#: config/i386/i386.opt:526
 msgid "Support RDRND built-in functions and code generation"
 msgstr ""
 
-#: config/i386/i386.opt:414
+#: config/i386/i386.opt:530
 msgid "Support F16C built-in functions and code generation"
 msgstr ""
 
-#: config/i386/i386.opt:418
+#: config/i386/i386.opt:534
 msgid "Emit profiling counter call at function entry before prologue."
 msgstr ""
 
-#: config/i386/i386.opt:422
+#: config/i386/i386.opt:538
 msgid ""
 "Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-"
 "time check"
 msgstr ""
 
+#: config/i386/i386.opt:542
+msgid "Split 32-byte AVX unaligned load"
+msgstr ""
+
+#: config/i386/i386.opt:546
+msgid "Split 32-byte AVX unaligned store"
+msgstr ""
+
 #: config/i386/cygming.opt:23
 msgid "Create console application"
 msgstr ""
@@ -6617,296 +6605,344 @@
 msgid "Use unicode startup and define UNICODE macro"
 msgstr ""
 
-#: config/rs6000/darwin.opt:38 config/rs6000/sysv4.opt:129
+#: config/rs6000/darwin.opt:38 config/rs6000/sysv4.opt:142
 msgid "Generate 64-bit code"
 msgstr ""
 
-#: config/rs6000/darwin.opt:42 config/rs6000/sysv4.opt:133
+#: config/rs6000/darwin.opt:42 config/rs6000/sysv4.opt:146
 msgid "Generate 32-bit code"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:128
+#: config/rs6000/rs6000.opt:92
 msgid "Use POWER instruction set"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:132
+#: config/rs6000/rs6000.opt:96
 msgid "Do not use POWER instruction set"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:136
+#: config/rs6000/rs6000.opt:100
 msgid "Use POWER2 instruction set"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:140
+#: config/rs6000/rs6000.opt:104
 msgid "Use PowerPC instruction set"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:144
+#: config/rs6000/rs6000.opt:108
 msgid "Do not use PowerPC instruction set"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:148
+#: config/rs6000/rs6000.opt:112
 msgid "Use PowerPC-64 instruction set"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:152
+#: config/rs6000/rs6000.opt:116
 msgid "Use PowerPC General Purpose group optional instructions"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:156
+#: config/rs6000/rs6000.opt:120
 msgid "Use PowerPC Graphics group optional instructions"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:160
+#: config/rs6000/rs6000.opt:124
 msgid "Use PowerPC V2.01 single field mfcr instruction"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:164
+#: config/rs6000/rs6000.opt:128
 msgid "Use PowerPC V2.02 popcntb instruction"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:168
+#: config/rs6000/rs6000.opt:132
 msgid "Use PowerPC V2.02 floating point rounding instructions"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:172
+#: config/rs6000/rs6000.opt:136
 msgid "Use PowerPC V2.05 compare bytes instruction"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:176
+#: config/rs6000/rs6000.opt:140
 msgid "Use extended PowerPC V2.05 move floating point to/from GPR instructions"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:180
+#: config/rs6000/rs6000.opt:144
 msgid "Use AltiVec instructions"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:184
+#: config/rs6000/rs6000.opt:148
 msgid "Use decimal floating point instructions"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:188
+#: config/rs6000/rs6000.opt:152
 msgid "Use 4xx half-word multiply instructions"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:192
+#: config/rs6000/rs6000.opt:156
 msgid "Use 4xx string-search dlmzb instruction"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:196
+#: config/rs6000/rs6000.opt:160
 msgid "Generate load/store multiple instructions"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:200
+#: config/rs6000/rs6000.opt:164
 msgid "Generate string instructions for block moves"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:204
+#: config/rs6000/rs6000.opt:168
 msgid "Use new mnemonics for PowerPC architecture"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:208
+#: config/rs6000/rs6000.opt:172
 msgid "Use old mnemonics for PowerPC architecture"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:212 config/pdp11/pdp11.opt:79
+#: config/rs6000/rs6000.opt:176 config/pdp11/pdp11.opt:79
 msgid "Do not use hardware floating point"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:220
+#: config/rs6000/rs6000.opt:184
 msgid "Use PowerPC V2.06 popcntd instruction"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:224
+#: config/rs6000/rs6000.opt:188
 msgid ""
 "Under -ffast-math, generate a FRIZ instruction for (double)(long long) "
 "conversions"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:232
+#: config/rs6000/rs6000.opt:196
 msgid "Use vector/scalar (VSX) instructions"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:272
+#: config/rs6000/rs6000.opt:236
 msgid "Do not generate load/store with update instructions"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:276
+#: config/rs6000/rs6000.opt:240
 msgid "Generate load/store with update instructions"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:280 config/arm/arm.opt:122
+#: config/rs6000/rs6000.opt:244 config/arm/arm.opt:176
 msgid "Do not load the PIC register in function prologues"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:284
+#: config/rs6000/rs6000.opt:248
 msgid "Avoid generation of indexed load/store instructions when possible"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:288
+#: config/rs6000/rs6000.opt:252
 msgid "Mark __tls_get_addr calls with argument info"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:295
+#: config/rs6000/rs6000.opt:259
 msgid "Schedule the start and end of the procedure"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:299
+#: config/rs6000/rs6000.opt:263
 msgid "Return all structures in memory (AIX default)"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:303
+#: config/rs6000/rs6000.opt:267
 msgid "Return small structures in registers (SVR4 default)"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:307
+#: config/rs6000/rs6000.opt:271
 msgid "Conform more closely to IBM XLC semantics"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:311 config/rs6000/rs6000.opt:315
+#: config/rs6000/rs6000.opt:275 config/rs6000/rs6000.opt:279
 msgid ""
 "Generate software reciprocal divide and square root for better throughput."
 msgstr ""
 
-#: config/rs6000/rs6000.opt:319
+#: config/rs6000/rs6000.opt:283
 msgid "Assume that the reciprocal estimate instructions provide more accuracy."
 msgstr ""
 
-#: config/rs6000/rs6000.opt:323
+#: config/rs6000/rs6000.opt:287
 msgid "Do not place floating point constants in TOC"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:327
+#: config/rs6000/rs6000.opt:291
 msgid "Place floating point constants in TOC"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:331
+#: config/rs6000/rs6000.opt:295
 msgid "Do not place symbol+offset constants in TOC"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:335
+#: config/rs6000/rs6000.opt:299
 msgid "Place symbol+offset constants in TOC"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:346
+#: config/rs6000/rs6000.opt:310
 msgid "Use only one TOC entry per procedure"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:350
+#: config/rs6000/rs6000.opt:314
 msgid "Put everything in the regular TOC"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:354
+#: config/rs6000/rs6000.opt:318
 msgid "Generate VRSAVE instructions when generating AltiVec code"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:358
-msgid "-mvrsave=yes/no\tDeprecated option.  Use -mvrsave/-mno-vrsave instead"
+#: config/rs6000/rs6000.opt:322
+msgid "Deprecated option.  Use -mno-vrsave instead"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:362
+#: config/rs6000/rs6000.opt:326
+msgid "Deprecated option.  Use -mvrsave instead"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:330
 msgid ""
 "Specify how many bytes should be moved inline before calling out to memcpy/"
 "memmove"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:366
+#: config/rs6000/rs6000.opt:334
 msgid "Generate isel instructions"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:370
-msgid "-misel=yes/no\tDeprecated option.  Use -misel/-mno-isel instead"
+#: config/rs6000/rs6000.opt:338
+msgid "Deprecated option.  Use -mno-isel instead"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:374
+#: config/rs6000/rs6000.opt:342
+msgid "Deprecated option.  Use -misel instead"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:346
 msgid "Generate SPE SIMD instructions on E500"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:378
+#: config/rs6000/rs6000.opt:350
 msgid "Generate PPC750CL paired-single instructions"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:382
-msgid "-mspe=yes/no\tDeprecated option.  Use -mspe/-mno-spe instead"
+#: config/rs6000/rs6000.opt:354
+msgid "Deprecated option.  Use -mno-spe instead"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:386
+#: config/rs6000/rs6000.opt:358
+msgid "Deprecated option.  Use -mspe instead"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:362
 msgid "-mdebug=\tEnable debug output"
 msgstr ""
 
-#: config/rs6000/rs6000.opt:390
-msgid "-mabi=\tSpecify ABI to use"
+#: config/rs6000/rs6000.opt:366
+msgid "Use the AltiVec ABI extensions"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:370
+msgid "Do not use the AltiVec ABI extensions"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:374
+msgid "Use the SPE ABI extensions"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:378
+msgid "Do not use the SPE ABI extensions"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:385
+msgid "using darwin64 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:388
+msgid "using old darwin ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:391
+msgid "using IEEE extended precision long double"
 msgstr ""
 
 #: config/rs6000/rs6000.opt:394
-msgid "-mcpu=\tUse features of and schedule code for given CPU"
+msgid "using IBM extended precision long double"
 msgstr ""
 
 #: config/rs6000/rs6000.opt:398
-msgid "-mtune=\tSchedule code for given CPU"
+msgid "-mcpu=\tUse features of and schedule code for given CPU"
 msgstr ""
 
 #: config/rs6000/rs6000.opt:402
-msgid "-mtraceback=\tSelect full, part, or no traceback table"
+msgid "-mtune=\tSchedule code for given CPU"
 msgstr ""
 
 #: config/rs6000/rs6000.opt:406
-msgid "Avoid all range limits on call instructions"
-msgstr ""
-
-#: config/rs6000/rs6000.opt:410
-msgid "Generate Cell microcode"
-msgstr ""
-
-#: config/rs6000/rs6000.opt:414
-msgid "Warn when a Cell microcoded instruction is emitted"
-msgstr ""
-
-#: config/rs6000/rs6000.opt:418
-msgid "Warn about deprecated 'vector long ...' AltiVec type usage"
+msgid "-mtraceback=\tSelect full, part, or no traceback table"
 msgstr ""
 
 #: config/rs6000/rs6000.opt:422
-msgid "-mfloat-gprs=\tSelect GPR floating point method"
+msgid "Avoid all range limits on call instructions"
 msgstr ""
 
 #: config/rs6000/rs6000.opt:426
-msgid "-mlong-double-<n>\tSpecify size of long double (64 or 128 bits)"
+msgid "Generate Cell microcode"
 msgstr ""
 
 #: config/rs6000/rs6000.opt:430
-msgid "Determine which dependences between insns are considered costly"
+msgid "Warn when a Cell microcoded instruction is emitted"
 msgstr ""
 
 #: config/rs6000/rs6000.opt:434
-msgid "Specify which post scheduling nop insertion scheme to apply"
+msgid "Warn about deprecated 'vector long ...' AltiVec type usage"
 msgstr ""
 
 #: config/rs6000/rs6000.opt:438
-msgid "Specify alignment of structure fields default/natural"
+msgid "-mfloat-gprs=\tSelect GPR floating point method"
 msgstr ""
 
 #: config/rs6000/rs6000.opt:442
-msgid "Specify scheduling priority for dispatch slot restricted insns"
-msgstr ""
-
-#: config/rs6000/rs6000.opt:446
-msgid "Single-precision floating point unit"
-msgstr ""
-
-#: config/rs6000/rs6000.opt:450
-msgid "Double-precision floating point unit"
-msgstr ""
-
-#: config/rs6000/rs6000.opt:454
-msgid "Floating point unit does not support divide & sqrt"
+msgid "Valid arguments to -mfloat-gprs=:"
 msgstr ""
 
 #: config/rs6000/rs6000.opt:458
-msgid "-mfpu=\tSpecify FP (sp, dp, sp-lite, dp-lite) (implies -mxilinx-fpu)"
+msgid "-mlong-double-<n>\tSpecify size of long double (64 or 128 bits)"
 msgstr ""
 
 #: config/rs6000/rs6000.opt:462
+msgid "Determine which dependences between insns are considered costly"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:466
+msgid "Specify which post scheduling nop insertion scheme to apply"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:470
+msgid "Specify alignment of structure fields default/natural"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:474
+msgid "Valid arguments to -malign-:"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:484
+msgid "Specify scheduling priority for dispatch slot restricted insns"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:488
+msgid "Single-precision floating point unit"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:492
+msgid "Double-precision floating point unit"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:496
+msgid "Floating point unit does not support divide & sqrt"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:500
+msgid "-mfpu=\tSpecify FP (sp, dp, sp-lite, dp-lite) (implies -mxilinx-fpu)"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:522
 msgid "Specify Xilinx FPU."
 msgstr ""
 
@@ -6930,84 +6966,88 @@
 msgid "Select code model"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:24
+#: config/rs6000/sysv4.opt:25
 msgid "Select ABI calling convention"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:28
+#: config/rs6000/sysv4.opt:29
 msgid "Select method for sdata handling"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:36 config/rs6000/sysv4.opt:40
+#: config/rs6000/sysv4.opt:49 config/rs6000/sysv4.opt:53
 msgid "Align to the base type of the bit-field"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:45 config/rs6000/sysv4.opt:49
+#: config/rs6000/sysv4.opt:58 config/rs6000/sysv4.opt:62
 msgid "Produce code relocatable at runtime"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:53 config/rs6000/sysv4.opt:57
+#: config/rs6000/sysv4.opt:66 config/rs6000/sysv4.opt:70
 msgid "Produce little endian code"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:61 config/rs6000/sysv4.opt:65
+#: config/rs6000/sysv4.opt:74 config/rs6000/sysv4.opt:78
 msgid "Produce big endian code"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:70 config/rs6000/sysv4.opt:74
-#: config/rs6000/sysv4.opt:83 config/rs6000/sysv4.opt:125
-#: config/rs6000/sysv4.opt:137
+#: config/rs6000/sysv4.opt:83 config/rs6000/sysv4.opt:87
+#: config/rs6000/sysv4.opt:96 config/rs6000/sysv4.opt:138
+#: config/rs6000/sysv4.opt:150
 msgid "no description yet"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:78
+#: config/rs6000/sysv4.opt:91
 msgid "Assume all variable arg functions are prototyped"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:87
+#: config/rs6000/sysv4.opt:100
 msgid "Use EABI"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:91
+#: config/rs6000/sysv4.opt:104
 msgid "Allow bit-fields to cross word boundaries"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:95
+#: config/rs6000/sysv4.opt:108
 msgid "Use alternate register names"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:101
+#: config/rs6000/sysv4.opt:114
 msgid "Use default method for sdata handling"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:105
+#: config/rs6000/sysv4.opt:118
 msgid "Link with libsim.a, libc.a and sim-crt0.o"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:109
+#: config/rs6000/sysv4.opt:122
 msgid "Link with libads.a, libc.a and crt0.o"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:113
+#: config/rs6000/sysv4.opt:126
 msgid "Link with libyk.a, libc.a and crt0.o"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:117
+#: config/rs6000/sysv4.opt:130
 msgid "Link with libmvme.a, libc.a and crt0.o"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:121
+#: config/rs6000/sysv4.opt:134
 msgid "Set the PPC_EMB bit in the ELF flags header"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:141
+#: config/rs6000/sysv4.opt:154
 msgid "Generate code to use a non-exec PLT and GOT"
 msgstr ""
 
-#: config/rs6000/sysv4.opt:145
+#: config/rs6000/sysv4.opt:158
 msgid "Generate code for old exec BSS PLT"
 msgstr ""
 
+#: config/rs6000/rs6000-tables.opt:24
+msgid "Known CPUs (for use with the -mcpu= and -mtune= options):"
+msgstr ""
+
 #: config/spu/spu.opt:20
 msgid "Emit warnings when run-time relocations are generated"
 msgstr ""
@@ -7435,124 +7475,136 @@
 msgid "Runtime name."
 msgstr ""
 
-#: config/arm/arm.opt:23
+#: config/arm/arm.opt:26
 msgid "Specify an ABI"
 msgstr ""
 
-#: config/arm/arm.opt:27
+#: config/arm/arm.opt:30
+msgid "Known ARM ABIs (for use with the -mabi= option):"
+msgstr ""
+
+#: config/arm/arm.opt:49
 msgid "Generate a call to abort if a noreturn function returns"
 msgstr ""
 
-#: config/arm/arm.opt:34
+#: config/arm/arm.opt:56
 msgid "Pass FP arguments in FP registers"
 msgstr ""
 
-#: config/arm/arm.opt:38
+#: config/arm/arm.opt:60
 msgid "Generate APCS conformant stack frames"
 msgstr ""
 
-#: config/arm/arm.opt:42
+#: config/arm/arm.opt:64
 msgid "Generate re-entrant, PIC code"
 msgstr ""
 
-#: config/arm/arm.opt:56
+#: config/arm/arm.opt:75
+msgid "Generate code in 32 bit ARM state."
+msgstr ""
+
+#: config/arm/arm.opt:79
 msgid "Assume target CPU is configured as big endian"
 msgstr ""
 
-#: config/arm/arm.opt:60
+#: config/arm/arm.opt:83
 msgid "Thumb: Assume non-static functions may be called from ARM code"
 msgstr ""
 
-#: config/arm/arm.opt:64
+#: config/arm/arm.opt:87
 msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
 msgstr ""
 
-#: config/arm/arm.opt:68
+#: config/arm/arm.opt:91
 msgid "Cirrus: Place NOPs to avoid invalid instruction combinations"
 msgstr ""
 
-#: config/arm/arm.opt:72 config/bfin/bfin.opt:44
+#: config/arm/arm.opt:95 config/bfin/bfin.opt:44
 msgid "Specify the name of the target CPU"
 msgstr ""
 
-#: config/arm/arm.opt:76
+#: config/arm/arm.opt:99
 msgid "Specify if floating point hardware should be used"
 msgstr ""
 
-#: config/arm/arm.opt:83
+#: config/arm/arm.opt:103
+msgid "Known floating-point ABIs (for use with the -mfloat-abi= option):"
+msgstr ""
+
+#: config/arm/arm.opt:122
 msgid "Specify the __fp16 floating-point format"
 msgstr ""
 
-#: config/arm/arm.opt:94
+#: config/arm/arm.opt:126
+msgid "Known __fp16 formats (for use with the -mfp16-format= option):"
+msgstr ""
+
+#: config/arm/arm.opt:149
 msgid "Specify the name of the target floating point hardware/format"
 msgstr ""
 
-#: config/arm/arm.opt:98
-msgid "Alias for -mfloat-abi=hard"
-msgstr ""
-
-#: config/arm/arm.opt:102
+#: config/arm/arm.opt:156
 msgid "Assume target CPU is configured as little endian"
 msgstr ""
 
-#: config/arm/arm.opt:106
+#: config/arm/arm.opt:160
 msgid "Generate call insns as indirect calls, if necessary"
 msgstr ""
 
-#: config/arm/arm.opt:110
+#: config/arm/arm.opt:164
 msgid "Specify the register to be used for PIC addressing"
 msgstr ""
 
-#: config/arm/arm.opt:114
+#: config/arm/arm.opt:168
 msgid "Store function names in object code"
 msgstr ""
 
-#: config/arm/arm.opt:118
+#: config/arm/arm.opt:172
 msgid "Permit scheduling of a function's prologue sequence"
 msgstr ""
 
-#: config/arm/arm.opt:126
-msgid "Alias for -mfloat-abi=soft"
-msgstr ""
-
-#: config/arm/arm.opt:130
+#: config/arm/arm.opt:183
 msgid "Specify the minimum bit alignment of structures"
 msgstr ""
 
-#: config/arm/arm.opt:134
-msgid "Compile for the Thumb not the ARM"
+#: config/arm/arm.opt:187
+msgid "Generate code for Thumb state"
 msgstr ""
 
-#: config/arm/arm.opt:138
+#: config/arm/arm.opt:191
 msgid "Support calls between Thumb and ARM instruction sets"
 msgstr ""
 
-#: config/arm/arm.opt:142
+#: config/arm/arm.opt:195
 msgid "Specify how to access the thread pointer"
 msgstr ""
 
-#: config/arm/arm.opt:146
+#: config/arm/arm.opt:199
+msgid "Valid arguments to -mtp=:"
+msgstr ""
+
+#: config/arm/arm.opt:212
 msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
 msgstr ""
 
-#: config/arm/arm.opt:150
+#: config/arm/arm.opt:216
 msgid "Thumb: Generate (leaf) stack frames even if not needed"
 msgstr ""
 
-#: config/arm/arm.opt:158
+#: config/arm/arm.opt:224
 msgid "Assume big endian bytes, little endian words"
 msgstr ""
 
-#: config/arm/arm.opt:162
+#: config/arm/arm.opt:228
 msgid ""
 "Use Neon quad-word (rather than double-word) registers for vectorization"
 msgstr ""
 
-#: config/arm/arm.opt:166
+#: config/arm/arm.opt:232
 msgid "Only generate absolute relocations on word sized values."
 msgstr ""
 
-#: config/arm/arm.opt:170
+#: config/arm/arm.opt:236
 msgid ""
 "Avoid overlapping destination and address registers on LDRD instructions"
 msgstr ""
@@ -7561,6 +7613,18 @@
 msgid "Ignore dllimport attribute for functions"
 msgstr ""
 
+#: config/arm/arm-tables.opt:25
+msgid "Known ARM CPUs (for use with the -mcpu= and -mtune= options):"
+msgstr ""
+
+#: config/arm/arm-tables.opt:269
+msgid "Known ARM architectures (for use with the -march= option):"
+msgstr ""
+
+#: config/arm/arm-tables.opt:348
+msgid "Known ARM FPUs (for use with the -mfpu= option):"
+msgstr ""
+
 #: config/pdp11/pdp11.opt:23
 msgid "Generate code for an 11/10"
 msgstr ""
@@ -7655,12 +7719,16 @@
 "occurs."
 msgstr ""
 
+#: config/avr/avr-tables.opt:24
+msgid "Known MCU names:"
+msgstr ""
+
 #: config/pa/pa-hpux.opt:27
 msgid "Generate cpp defines for server IO"
 msgstr ""
 
 #: config/pa/pa-hpux.opt:31 config/pa/pa-hpux1010.opt:23
-#: config/pa/pa-hpux1111.opt:23
+#: config/pa/pa-hpux1111.opt:23 config/pa/pa-hpux1131.opt:23
 msgid "Specify UNIX standard for predefines and linking"
 msgstr ""
 
@@ -7772,295 +7840,315 @@
 msgid "Provide libraries for the simulator"
 msgstr ""
 
-#: config/mips/mips.opt:29
+#: config/mips/mips.opt:32
 msgid "-mabi=ABI\tGenerate code that conforms to the given ABI"
 msgstr ""
 
-#: config/mips/mips.opt:33
+#: config/mips/mips.opt:36
+msgid "Known MIPS ABIs (for use with the -mabi= option):"
+msgstr ""
+
+#: config/mips/mips.opt:55
 msgid "Generate code that can be used in SVR4-style dynamic objects"
 msgstr ""
 
-#: config/mips/mips.opt:37
+#: config/mips/mips.opt:59
 msgid "Use PMC-style 'mad' instructions"
 msgstr ""
 
-#: config/mips/mips.opt:41
+#: config/mips/mips.opt:63
 msgid "-march=ISA\tGenerate code for the given ISA"
 msgstr ""
 
-#: config/mips/mips.opt:45
+#: config/mips/mips.opt:67
 msgid ""
 "-mbranch-cost=COST\tSet the cost of branches to roughly COST instructions"
 msgstr ""
 
-#: config/mips/mips.opt:49
+#: config/mips/mips.opt:71
 msgid "Use Branch Likely instructions, overriding the architecture default"
 msgstr ""
 
-#: config/mips/mips.opt:53
+#: config/mips/mips.opt:75
 msgid "Switch on/off MIPS16 ASE on alternating functions for compiler testing"
 msgstr ""
 
-#: config/mips/mips.opt:57
+#: config/mips/mips.opt:79
 msgid "Trap on integer divide by zero"
 msgstr ""
 
-#: config/mips/mips.opt:61
+#: config/mips/mips.opt:83
 msgid ""
 "-mcode-readable=SETTING\tSpecify when instructions are allowed to access code"
 msgstr ""
 
-#: config/mips/mips.opt:65
+#: config/mips/mips.opt:87
+msgid "Valid arguments to -mcode-readable=:"
+msgstr ""
+
+#: config/mips/mips.opt:100
 msgid "Use branch-and-break sequences to check for integer divide by zero"
 msgstr ""
 
-#: config/mips/mips.opt:69
+#: config/mips/mips.opt:104
 msgid "Use trap instructions to check for integer divide by zero"
 msgstr ""
 
-#: config/mips/mips.opt:73
+#: config/mips/mips.opt:108
 msgid "Allow the use of MDMX instructions"
 msgstr ""
 
-#: config/mips/mips.opt:77
+#: config/mips/mips.opt:112
 msgid ""
 "Allow hardware floating-point instructions to cover both 32-bit and 64-bit "
 "operations"
 msgstr ""
 
-#: config/mips/mips.opt:81
+#: config/mips/mips.opt:116
 msgid "Use MIPS-DSP instructions"
 msgstr ""
 
-#: config/mips/mips.opt:85
+#: config/mips/mips.opt:120
 msgid "Use MIPS-DSP REV 2 instructions"
 msgstr ""
 
-#: config/mips/mips.opt:95 config/mep/mep.opt:82
+#: config/mips/mips.opt:130 config/mep/mep.opt:82
 msgid "Use big-endian byte order"
 msgstr ""
 
-#: config/mips/mips.opt:99 config/mep/mep.opt:86
+#: config/mips/mips.opt:134 config/mep/mep.opt:86
 msgid "Use little-endian byte order"
 msgstr ""
 
-#: config/mips/mips.opt:103 config/iq2000/iq2000.opt:61
+#: config/mips/mips.opt:138 config/iq2000/iq2000.opt:61
 msgid "Use ROM instead of RAM"
 msgstr ""
 
-#: config/mips/mips.opt:107
+#: config/mips/mips.opt:142
 msgid "Use NewABI-style %reloc() assembly operators"
 msgstr ""
 
-#: config/mips/mips.opt:111
+#: config/mips/mips.opt:146
 msgid "Use -G for data that is not defined by the current object"
 msgstr ""
 
-#: config/mips/mips.opt:115
+#: config/mips/mips.opt:150
+msgid "Work around certain 24K errata"
+msgstr ""
+
+#: config/mips/mips.opt:154
 msgid "Work around certain R4000 errata"
 msgstr ""
 
-#: config/mips/mips.opt:119
+#: config/mips/mips.opt:158
 msgid "Work around certain R4400 errata"
 msgstr ""
 
-#: config/mips/mips.opt:123
+#: config/mips/mips.opt:162
 msgid "Work around certain R10000 errata"
 msgstr ""
 
-#: config/mips/mips.opt:127
+#: config/mips/mips.opt:166
 msgid "Work around errata for early SB-1 revision 2 cores"
 msgstr ""
 
-#: config/mips/mips.opt:131
+#: config/mips/mips.opt:170
 msgid "Work around certain VR4120 errata"
 msgstr ""
 
-#: config/mips/mips.opt:135
+#: config/mips/mips.opt:174
 msgid "Work around VR4130 mflo/mfhi errata"
 msgstr ""
 
-#: config/mips/mips.opt:139
+#: config/mips/mips.opt:178
 msgid "Work around an early 4300 hardware bug"
 msgstr ""
 
-#: config/mips/mips.opt:143
+#: config/mips/mips.opt:182
 msgid "FP exceptions are enabled"
 msgstr ""
 
-#: config/mips/mips.opt:147
+#: config/mips/mips.opt:186
 msgid "Use 32-bit floating-point registers"
 msgstr ""
 
-#: config/mips/mips.opt:151
+#: config/mips/mips.opt:190
 msgid "Use 64-bit floating-point registers"
 msgstr ""
 
-#: config/mips/mips.opt:155
+#: config/mips/mips.opt:194
 msgid ""
 "-mflush-func=FUNC\tUse FUNC to flush the cache before calling stack "
 "trampolines"
 msgstr ""
 
-#: config/mips/mips.opt:159
+#: config/mips/mips.opt:198
 msgid "Generate floating-point multiply-add instructions"
 msgstr ""
 
-#: config/mips/mips.opt:163
+#: config/mips/mips.opt:202
 msgid "Use 32-bit general registers"
 msgstr ""
 
-#: config/mips/mips.opt:167
+#: config/mips/mips.opt:206
 msgid "Use 64-bit general registers"
 msgstr ""
 
-#: config/mips/mips.opt:171
+#: config/mips/mips.opt:210
 msgid "Use GP-relative addressing to access small data"
 msgstr ""
 
-#: config/mips/mips.opt:175
+#: config/mips/mips.opt:214
 msgid ""
 "When generating -mabicalls code, allow executables to use PLTs and copy "
 "relocations"
 msgstr ""
 
-#: config/mips/mips.opt:179
+#: config/mips/mips.opt:218
 msgid "Allow the use of hardware floating-point ABI and instructions"
 msgstr ""
 
-#: config/mips/mips.opt:183
+#: config/mips/mips.opt:222
 msgid "Generate code that can be safely linked with MIPS16 code."
 msgstr ""
 
-#: config/mips/mips.opt:187
+#: config/mips/mips.opt:226
 msgid "-mipsN\tGenerate code for ISA level N"
 msgstr ""
 
-#: config/mips/mips.opt:191
+#: config/mips/mips.opt:230
 msgid "Generate MIPS16 code"
 msgstr ""
 
-#: config/mips/mips.opt:195
+#: config/mips/mips.opt:234
 msgid "Use MIPS-3D instructions"
 msgstr ""
 
-#: config/mips/mips.opt:199
+#: config/mips/mips.opt:238
 msgid "Use ll, sc and sync instructions"
 msgstr ""
 
-#: config/mips/mips.opt:203
+#: config/mips/mips.opt:242
 msgid "Use -G for object-local data"
 msgstr ""
 
-#: config/mips/mips.opt:207
+#: config/mips/mips.opt:246
 msgid "Use indirect calls"
 msgstr ""
 
-#: config/mips/mips.opt:211
+#: config/mips/mips.opt:250
 msgid "Use a 32-bit long type"
 msgstr ""
 
-#: config/mips/mips.opt:215
+#: config/mips/mips.opt:254
 msgid "Use a 64-bit long type"
 msgstr ""
 
-#: config/mips/mips.opt:219
+#: config/mips/mips.opt:258
 msgid "Pass the address of the ra save location to _mcount in $12"
 msgstr ""
 
-#: config/mips/mips.opt:223
+#: config/mips/mips.opt:262
 msgid "Don't optimize block moves"
 msgstr ""
 
-#: config/mips/mips.opt:227
-msgid "Use the mips-tfile postpass"
-msgstr ""
-
-#: config/mips/mips.opt:231
+#: config/mips/mips.opt:266
 msgid "Allow the use of MT instructions"
 msgstr ""
 
-#: config/mips/mips.opt:235
+#: config/mips/mips.opt:270
 msgid "Prevent the use of all floating-point operations"
 msgstr ""
 
-#: config/mips/mips.opt:239
+#: config/mips/mips.opt:274
 msgid "Do not use a cache-flushing function before calling stack trampolines"
 msgstr ""
 
-#: config/mips/mips.opt:243
+#: config/mips/mips.opt:278
 msgid "Do not use MDMX instructions"
 msgstr ""
 
-#: config/mips/mips.opt:247
+#: config/mips/mips.opt:282
 msgid "Generate normal-mode code"
 msgstr ""
 
-#: config/mips/mips.opt:251
+#: config/mips/mips.opt:286
 msgid "Do not use MIPS-3D instructions"
 msgstr ""
 
-#: config/mips/mips.opt:255
+#: config/mips/mips.opt:290
 msgid "Use paired-single floating-point instructions"
 msgstr ""
 
-#: config/mips/mips.opt:259
+#: config/mips/mips.opt:294
 msgid ""
 "-mr10k-cache-barrier=SETTING\tSpecify when r10k cache barriers should be "
 "inserted"
 msgstr ""
 
-#: config/mips/mips.opt:263
+#: config/mips/mips.opt:298
+msgid "Valid arguments to -mr10k-cache-barrier=:"
+msgstr ""
+
+#: config/mips/mips.opt:311
 msgid "Try to allow the linker to turn PIC calls into direct calls"
 msgstr ""
 
-#: config/mips/mips.opt:267
+#: config/mips/mips.opt:315
 msgid ""
 "When generating -mabicalls code, make the code suitable for use in shared "
 "libraries"
 msgstr ""
 
-#: config/mips/mips.opt:271
+#: config/mips/mips.opt:319
 msgid ""
 "Restrict the use of hardware floating-point instructions to 32-bit operations"
 msgstr ""
 
-#: config/mips/mips.opt:275
+#: config/mips/mips.opt:323
 msgid "Use SmartMIPS instructions"
 msgstr ""
 
-#: config/mips/mips.opt:279
+#: config/mips/mips.opt:327
 msgid "Prevent the use of all hardware floating-point instructions"
 msgstr ""
 
-#: config/mips/mips.opt:283
+#: config/mips/mips.opt:331
 msgid "Optimize lui/addiu address loads"
 msgstr ""
 
-#: config/mips/mips.opt:287
+#: config/mips/mips.opt:335
 msgid "Assume all symbols have 32-bit values"
 msgstr ""
 
-#: config/mips/mips.opt:291
+#: config/mips/mips.opt:339
 msgid "Use synci instruction to invalidate i-cache"
 msgstr ""
 
-#: config/mips/mips.opt:295
+#: config/mips/mips.opt:343
 msgid "-mtune=PROCESSOR\tOptimize the output for PROCESSOR"
 msgstr ""
 
-#: config/mips/mips.opt:299 config/iq2000/iq2000.opt:74
+#: config/mips/mips.opt:347 config/iq2000/iq2000.opt:74
 msgid "Put uninitialized constants in ROM (needs -membedded-data)"
 msgstr ""
 
-#: config/mips/mips.opt:303
+#: config/mips/mips.opt:351
 msgid "Perform VR4130-specific alignment optimizations"
 msgstr ""
 
-#: config/mips/mips.opt:307
+#: config/mips/mips.opt:355
 msgid "Lift restrictions on GOT size"
 msgstr ""
 
+#: config/mips/mips-tables.opt:24
+msgid "Known MIPS CPUs (for use with the -march= and -mtune= options):"
+msgstr ""
+
+#: config/mips/mips-tables.opt:28
+msgid "Known MIPS ISA levels (for use with the -mips option):"
+msgstr ""
+
 #: config/fr30/fr30.opt:23
 msgid "Assume small address space"
 msgstr ""
@@ -8477,51 +8565,51 @@
 msgid "Assume the VxWorks vThreads environment"
 msgstr ""
 
-#: config/darwin.opt:50 c-family/c.opt:71 c-family/c.opt:74 c-family/c.opt:77
+#: config/darwin.opt:53 c-family/c.opt:71 c-family/c.opt:74 c-family/c.opt:77
 #: c-family/c.opt:80 c-family/c.opt:179 c-family/c.opt:182 c-family/c.opt:220
-#: c-family/c.opt:224 c-family/c.opt:236 c-family/c.opt:1069
-#: c-family/c.opt:1077 common.opt:290 common.opt:293 common.opt:2198
+#: c-family/c.opt:224 c-family/c.opt:236 c-family/c.opt:1077
+#: c-family/c.opt:1085 common.opt:294 common.opt:297 common.opt:2238
 #, c-format
 msgid "missing filename after %qs"
 msgstr ""
 
-#: config/darwin.opt:111
+#: config/darwin.opt:114
 msgid "Generate compile-time CFString objects"
 msgstr ""
 
-#: config/darwin.opt:205
+#: config/darwin.opt:208
 msgid "Warn if constant CFString objects contain non-portable characters"
 msgstr ""
 
-#: config/darwin.opt:210
+#: config/darwin.opt:213
 msgid "Generate AT&T-style stubs for Mach-O"
 msgstr ""
 
-#: config/darwin.opt:214
+#: config/darwin.opt:217
 msgid "Generate code suitable for executables (NOT shared libs)"
 msgstr ""
 
-#: config/darwin.opt:218
+#: config/darwin.opt:221
 msgid "Generate code suitable for fast turn around debugging"
 msgstr ""
 
-#: config/darwin.opt:227
+#: config/darwin.opt:230
 msgid "The earliest MacOS X version on which this program will run"
 msgstr ""
 
-#: config/darwin.opt:231
+#: config/darwin.opt:234
 msgid "Set sizeof(bool) to 1"
 msgstr ""
 
-#: config/darwin.opt:235
+#: config/darwin.opt:238
 msgid "Generate code for darwin loadable kernel extensions"
 msgstr ""
 
-#: config/darwin.opt:239
+#: config/darwin.opt:242
 msgid "Generate code for the kernel or loadable kernel extensions"
 msgstr ""
 
-#: config/darwin.opt:243
+#: config/darwin.opt:246
 msgid ""
 "-iframework <dir>\tAdd <dir> to the end of the system framework include path"
 msgstr ""
@@ -8690,64 +8778,64 @@
 msgid "Set name of main routine for the debugger"
 msgstr ""
 
-#: config/rx/rx.opt:26
+#: config/rx/rx.opt:29
 msgid "Store doubles in 64 bits."
 msgstr ""
 
-#: config/rx/rx.opt:30
+#: config/rx/rx.opt:33
 msgid "Stores doubles in 32 bits.  This is the default."
 msgstr ""
 
-#: config/rx/rx.opt:34
+#: config/rx/rx.opt:37
 msgid "Disable the use of RX FPU instructions.  "
 msgstr ""
 
-#: config/rx/rx.opt:41
+#: config/rx/rx.opt:44
 msgid "Enable the use of RX FPU instructions.  This is the default."
 msgstr ""
 
-#: config/rx/rx.opt:47
+#: config/rx/rx.opt:50
 msgid "Specify the target RX cpu type."
 msgstr ""
 
-#: config/rx/rx.opt:53
+#: config/rx/rx.opt:68
 msgid "Data is stored in big-endian format."
 msgstr ""
 
-#: config/rx/rx.opt:57
+#: config/rx/rx.opt:72
 msgid "Data is stored in little-endian format.  (Default)."
 msgstr ""
 
-#: config/rx/rx.opt:63
+#: config/rx/rx.opt:78
 msgid ""
 "Maximum size of global and static variables which can be placed into the "
 "small data area."
 msgstr ""
 
-#: config/rx/rx.opt:69
+#: config/rx/rx.opt:84
 msgid "Use the simulator runtime."
 msgstr ""
 
-#: config/rx/rx.opt:75
+#: config/rx/rx.opt:90
 msgid ""
 "Generate assembler output that is compatible with the Renesas AS100 "
 "assembler.  This may restrict some of the compiler's capabilities.  The "
 "default is to generate GAS compatable syntax."
 msgstr ""
 
-#: config/rx/rx.opt:81
+#: config/rx/rx.opt:96
 msgid "Enable linker relaxation."
 msgstr ""
 
-#: config/rx/rx.opt:87
+#: config/rx/rx.opt:102
 msgid "Maximum size in bytes of constant values allowed as operands."
 msgstr ""
 
-#: config/rx/rx.opt:93
+#: config/rx/rx.opt:108
 msgid "Specifies the number of registers to reserve for interrupt handlers."
 msgstr ""
 
-#: config/rx/rx.opt:99
+#: config/rx/rx.opt:114
 msgid ""
 "Specifies whether interrupt functions should save and restore the "
 "accumulator register."
@@ -8865,7 +8953,7 @@
 "special section (on some targets)"
 msgstr ""
 
-#: config/sol2.opt:35
+#: config/sol2.opt:32
 msgid "Pass -z text to linker"
 msgstr ""
 
@@ -8885,8 +8973,8 @@
 msgstr ""
 
 #: c-family/c.opt:86 c-family/c.opt:89 c-family/c.opt:92 c-family/c.opt:95
-#: c-family/c.opt:204 c-family/c.opt:212 c-family/c.opt:1065
-#: c-family/c.opt:1085 c-family/c.opt:1089 c-family/c.opt:1093
+#: c-family/c.opt:204 c-family/c.opt:212 c-family/c.opt:1073
+#: c-family/c.opt:1093 c-family/c.opt:1097 c-family/c.opt:1101
 #, c-format
 msgid "missing path after %qs"
 msgstr ""
@@ -9053,842 +9141,848 @@
 msgstr ""
 
 #: c-family/c.opt:336
-msgid "Warn if a deprecated compiler feature, class, method, or field is used"
+msgid "Warn about deleting polymorphic objects with non-virtual destructors"
 msgstr ""
 
 #: c-family/c.opt:340
-msgid "Warn about compile-time integer division by zero"
+msgid "Warn if a deprecated compiler feature, class, method, or field is used"
 msgstr ""
 
 #: c-family/c.opt:344
-msgid "Warn about violations of Effective C++ style rules"
+msgid "Warn about compile-time integer division by zero"
 msgstr ""
 
 #: c-family/c.opt:348
-msgid "Warn about an empty body in an if or else statement"
+msgid "Warn about violations of Effective C++ style rules"
 msgstr ""
 
 #: c-family/c.opt:352
-msgid "Warn about stray tokens after #elif and #endif"
+msgid "Warn about an empty body in an if or else statement"
 msgstr ""
 
 #: c-family/c.opt:356
+msgid "Warn about stray tokens after #elif and #endif"
+msgstr ""
+
+#: c-family/c.opt:360
 msgid "Warn about comparison of different enum types"
 msgstr ""
 
-#: c-family/c.opt:364
+#: c-family/c.opt:368
 msgid ""
 "This switch is deprecated; use -Werror=implicit-function-declaration instead"
 msgstr ""
 
-#: c-family/c.opt:368
+#: c-family/c.opt:372
 msgid "Warn if testing floating point numbers for equality"
 msgstr ""
 
-#: c-family/c.opt:372
+#: c-family/c.opt:376
 msgid "Warn about printf/scanf/strftime/strfmon format string anomalies"
 msgstr ""
 
-#: c-family/c.opt:376
+#: c-family/c.opt:380
 msgid "Warn if passing too many arguments to a function for its format string"
 msgstr ""
 
-#: c-family/c.opt:380
+#: c-family/c.opt:384
 msgid "Warn about format strings that are not literals"
 msgstr ""
 
-#: c-family/c.opt:384
+#: c-family/c.opt:388
 msgid "Warn about format strings that contain NUL bytes"
 msgstr ""
 
-#: c-family/c.opt:388
+#: c-family/c.opt:392
 msgid "Warn about possible security problems with format functions"
 msgstr ""
 
-#: c-family/c.opt:392
+#: c-family/c.opt:396
 msgid "Warn about strftime formats yielding 2-digit years"
 msgstr ""
 
-#: c-family/c.opt:396
+#: c-family/c.opt:400
 msgid "Warn about zero-length formats"
 msgstr ""
 
-#: c-family/c.opt:403
+#: c-family/c.opt:407
 msgid "Warn whenever type qualifiers are ignored."
 msgstr ""
 
-#: c-family/c.opt:407
+#: c-family/c.opt:411
 msgid "Warn about variables which are initialized to themselves"
 msgstr ""
 
-#: c-family/c.opt:411
+#: c-family/c.opt:415
 msgid "Warn about implicit declarations"
 msgstr ""
 
-#: c-family/c.opt:415
+#: c-family/c.opt:419
 msgid "Warn about implicit conversions from \"float\" to \"double\""
 msgstr ""
 
-#: c-family/c.opt:419
+#: c-family/c.opt:423
 msgid "Warn about implicit function declarations"
 msgstr ""
 
-#: c-family/c.opt:423
+#: c-family/c.opt:427
 msgid "Warn when a declaration does not specify a type"
 msgstr ""
 
-#: c-family/c.opt:430
+#: c-family/c.opt:434
 msgid ""
 "Warn when there is a cast to a pointer from an integer of a different size"
 msgstr ""
 
-#: c-family/c.opt:434
+#: c-family/c.opt:438
 msgid "Warn about invalid uses of the \"offsetof\" macro"
 msgstr ""
 
-#: c-family/c.opt:438
+#: c-family/c.opt:442
 msgid "Warn about PCH files that are found but not used"
 msgstr ""
 
-#: c-family/c.opt:442
+#: c-family/c.opt:446
 msgid "Warn when a jump misses a variable initialization"
 msgstr ""
 
-#: c-family/c.opt:446
+#: c-family/c.opt:450
 msgid ""
 "Warn when a logical operator is suspiciously always evaluating to true or "
 "false"
 msgstr ""
 
-#: c-family/c.opt:450
+#: c-family/c.opt:454
 msgid "Do not warn about using \"long long\" when -pedantic"
 msgstr ""
 
-#: c-family/c.opt:454
+#: c-family/c.opt:458
 msgid "Warn about suspicious declarations of \"main\""
 msgstr ""
 
-#: c-family/c.opt:458
+#: c-family/c.opt:462
 msgid "Warn about possibly missing braces around initializers"
 msgstr ""
 
-#: c-family/c.opt:462
+#: c-family/c.opt:466
 msgid "Warn about global functions without previous declarations"
 msgstr ""
 
-#: c-family/c.opt:466
+#: c-family/c.opt:470
 msgid "Warn about missing fields in struct initializers"
 msgstr ""
 
-#: c-family/c.opt:470
+#: c-family/c.opt:474
 msgid "Warn about functions which might be candidates for format attributes"
 msgstr ""
 
-#: c-family/c.opt:474
+#: c-family/c.opt:478
 msgid "Warn about user-specified include directories that do not exist"
 msgstr ""
 
-#: c-family/c.opt:478
+#: c-family/c.opt:482
 msgid ""
 "Warn about function parameters declared without a type specifier in K&R-"
 "style functions"
 msgstr ""
 
-#: c-family/c.opt:482
+#: c-family/c.opt:486
 msgid "Warn about global functions without prototypes"
 msgstr ""
 
-#: c-family/c.opt:486
+#: c-family/c.opt:490
 msgid "Warn about use of multi-character character constants"
 msgstr ""
 
-#: c-family/c.opt:490
+#: c-family/c.opt:494
 msgid "Warn about \"extern\" declarations not at file scope"
 msgstr ""
 
-#: c-family/c.opt:494
+#: c-family/c.opt:498
 msgid ""
 "Warn when a noexcept expression evaluates to false even though the "
 "expression can't actually throw"
 msgstr ""
 
-#: c-family/c.opt:498
+#: c-family/c.opt:502
 msgid ""
 "Warn when non-templatized friend functions are declared within a template"
 msgstr ""
 
-#: c-family/c.opt:502
+#: c-family/c.opt:506
 msgid "Warn about non-virtual destructors"
 msgstr ""
 
-#: c-family/c.opt:506
+#: c-family/c.opt:510
 msgid ""
 "Warn about NULL being passed to argument slots marked as requiring non-NULL"
 msgstr ""
 
-#: c-family/c.opt:510
+#: c-family/c.opt:514
 msgid "-Wnormalized=<id|nfc|nfkc>\tWarn about non-normalised Unicode strings"
 msgstr ""
 
-#: c-family/c.opt:514
+#: c-family/c.opt:518
 msgid "Warn if a C-style cast is used in a program"
 msgstr ""
 
-#: c-family/c.opt:518
+#: c-family/c.opt:522
 msgid "Warn for obsolescent usage in a declaration"
 msgstr ""
 
-#: c-family/c.opt:522
+#: c-family/c.opt:526
 msgid "Warn if an old-style parameter definition is used"
 msgstr ""
 
-#: c-family/c.opt:526
+#: c-family/c.opt:530
 msgid ""
 "Warn if a string is longer than the maximum portable length specified by the "
 "standard"
 msgstr ""
 
-#: c-family/c.opt:530
+#: c-family/c.opt:534
 msgid "Warn about overloaded virtual function names"
 msgstr ""
 
-#: c-family/c.opt:534
+#: c-family/c.opt:538
 msgid "Warn about overriding initializers without side effects"
 msgstr ""
 
-#: c-family/c.opt:538
+#: c-family/c.opt:542
 msgid "Warn about packed bit-fields whose offset changed in GCC 4.4"
 msgstr ""
 
-#: c-family/c.opt:542
+#: c-family/c.opt:546
 msgid "Warn about possibly missing parentheses"
 msgstr ""
 
-#: c-family/c.opt:546
+#: c-family/c.opt:550
 msgid "Warn when converting the type of pointers to member functions"
 msgstr ""
 
-#: c-family/c.opt:550
+#: c-family/c.opt:554
 msgid "Warn about function pointer arithmetic"
 msgstr ""
 
-#: c-family/c.opt:554
+#: c-family/c.opt:558
 msgid "Warn when a pointer is cast to an integer of a different size"
 msgstr ""
 
-#: c-family/c.opt:558
+#: c-family/c.opt:562
 msgid "Warn about misuses of pragmas"
 msgstr ""
 
-#: c-family/c.opt:562
+#: c-family/c.opt:566
 msgid ""
 "Warn if a property for an Objective-C object has no assign semantics "
 "specified"
 msgstr ""
 
-#: c-family/c.opt:566
+#: c-family/c.opt:570
 msgid "Warn if inherited methods are unimplemented"
 msgstr ""
 
-#: c-family/c.opt:570
+#: c-family/c.opt:574
 msgid "Warn about multiple declarations of the same object"
 msgstr ""
 
-#: c-family/c.opt:574
+#: c-family/c.opt:578
 msgid "Warn when the compiler reorders code"
 msgstr ""
 
-#: c-family/c.opt:578
+#: c-family/c.opt:582
 msgid ""
 "Warn whenever a function's return type defaults to \"int\" (C), or about "
 "inconsistent return types (C++)"
 msgstr ""
 
-#: c-family/c.opt:582
+#: c-family/c.opt:586
 msgid "Warn if a selector has multiple methods"
 msgstr ""
 
-#: c-family/c.opt:586
+#: c-family/c.opt:590
 msgid "Warn about possible violations of sequence point rules"
 msgstr ""
 
-#: c-family/c.opt:590
+#: c-family/c.opt:594
 msgid "Warn about signed-unsigned comparisons"
 msgstr ""
 
-#: c-family/c.opt:594
+#: c-family/c.opt:598
 msgid "Warn when overload promotes from unsigned to signed"
 msgstr ""
 
-#: c-family/c.opt:598
+#: c-family/c.opt:602
 msgid "Warn about uncasted NULL used as sentinel"
 msgstr ""
 
-#: c-family/c.opt:602
+#: c-family/c.opt:606
 msgid "Warn about unprototyped function declarations"
 msgstr ""
 
-#: c-family/c.opt:606
+#: c-family/c.opt:610
 msgid "Warn if type signatures of candidate methods do not match exactly"
 msgstr ""
 
-#: c-family/c.opt:610
+#: c-family/c.opt:614
 msgid ""
 "Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions "
 "are used"
 msgstr ""
 
-#: c-family/c.opt:614
+#: c-family/c.opt:618
 msgid "Deprecated.  This switch has no effect"
 msgstr ""
 
-#: c-family/c.opt:622
+#: c-family/c.opt:626
 msgid "Warn about features not present in traditional C"
 msgstr ""
 
-#: c-family/c.opt:626
+#: c-family/c.opt:630
 msgid ""
 "Warn of prototypes causing type conversions different from what would happen "
 "in the absence of prototype"
 msgstr ""
 
-#: c-family/c.opt:630
+#: c-family/c.opt:634
 msgid ""
 "Warn if trigraphs are encountered that might affect the meaning of the "
 "program"
 msgstr ""
 
-#: c-family/c.opt:634
+#: c-family/c.opt:638
 msgid "Warn about @selector()s without previously declared methods"
 msgstr ""
 
-#: c-family/c.opt:638
+#: c-family/c.opt:642
 msgid "Warn if an undefined macro is used in an #if directive"
 msgstr ""
 
-#: c-family/c.opt:642
+#: c-family/c.opt:646
 msgid "Warn about unrecognized pragmas"
 msgstr ""
 
-#: c-family/c.opt:646
+#: c-family/c.opt:650
 msgid "Warn about unsuffixed float constants"
 msgstr ""
 
-#: c-family/c.opt:650
+#: c-family/c.opt:654
 msgid "Warn about macros defined in the main file that are not used"
 msgstr ""
 
-#: c-family/c.opt:654
+#: c-family/c.opt:658
 msgid ""
 "Warn if a caller of a function, marked with attribute warn_unused_result, "
 "does not use its return value"
 msgstr ""
 
-#: c-family/c.opt:658
+#: c-family/c.opt:662
 msgid "Do not warn about using variadic macros when -pedantic"
 msgstr ""
 
-#: c-family/c.opt:662
+#: c-family/c.opt:666
 msgid "Warn if a variable length array is used"
 msgstr ""
 
-#: c-family/c.opt:666
+#: c-family/c.opt:670
 msgid "Warn when a register variable is declared volatile"
 msgstr ""
 
-#: c-family/c.opt:670
+#: c-family/c.opt:674
 msgid ""
 "In C++, nonzero means warn about deprecated conversion from string literals "
 "to 'char *'.  In C, similar warning, except that the conversion is of course "
 "not deprecated by the ISO C standard."
 msgstr ""
 
-#: c-family/c.opt:674
+#: c-family/c.opt:678
 msgid "Warn when a pointer differs in signedness in an assignment"
 msgstr ""
 
-#: c-family/c.opt:678
+#: c-family/c.opt:682
 msgid "A synonym for -std=c89 (for C) or -std=c++98 (for C++)"
 msgstr ""
 
-#: c-family/c.opt:686
+#: c-family/c.opt:690
 msgid "Enforce class member access control semantics"
 msgstr ""
 
-#: c-family/c.opt:689 c-family/c.opt:692 c-family/c.opt:750 c-family/c.opt:766
-#: c-family/c.opt:789 c-family/c.opt:795 c-family/c.opt:802 c-family/c.opt:826
-#: c-family/c.opt:837 c-family/c.opt:840 c-family/c.opt:854 c-family/c.opt:965
-#: c-family/c.opt:976 c-family/c.opt:990 c-family/c.opt:1021
-#: c-family/c.opt:1025 c-family/c.opt:1041 c-family/c-opts.c:561
+#: c-family/c.opt:693 c-family/c.opt:696 c-family/c.opt:758 c-family/c.opt:774
+#: c-family/c.opt:797 c-family/c.opt:803 c-family/c.opt:810 c-family/c.opt:834
+#: c-family/c.opt:845 c-family/c.opt:848 c-family/c.opt:862 c-family/c.opt:973
+#: c-family/c.opt:984 c-family/c.opt:998 c-family/c.opt:1029
+#: c-family/c.opt:1033 c-family/c.opt:1049 c-family/c-opts.c:568
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr ""
 
-#: c-family/c.opt:693 c-family/c.opt:803 c-family/c.opt:1022
-#: c-family/c.opt:1026 c-family/c.opt:1042
+#: c-family/c.opt:697 c-family/c.opt:811 c-family/c.opt:1030
+#: c-family/c.opt:1034 c-family/c.opt:1050
 msgid "No longer supported"
 msgstr ""
 
-#: c-family/c.opt:697
+#: c-family/c.opt:701
 msgid "Recognize the \"asm\" keyword"
 msgstr ""
 
-#: c-family/c.opt:701
+#: c-family/c.opt:709
 msgid "Recognize built-in functions"
 msgstr ""
 
-#: c-family/c.opt:708
+#: c-family/c.opt:716
 msgid "Check the return value of new"
 msgstr ""
 
-#: c-family/c.opt:712
+#: c-family/c.opt:720
 msgid "Allow the arguments of the '?' operator to have different types"
 msgstr ""
 
-#: c-family/c.opt:716
+#: c-family/c.opt:724
 msgid "Reduce the size of object files"
 msgstr ""
 
-#: c-family/c.opt:719
+#: c-family/c.opt:727
 #, c-format
 msgid "no class name specified with %qs"
 msgstr ""
 
-#: c-family/c.opt:720
+#: c-family/c.opt:728
 msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
 msgstr ""
 
-#: c-family/c.opt:724
+#: c-family/c.opt:732
 msgid "-fconstexpr-depth=<number>\tSpecify maximum constexpr recursion depth"
 msgstr ""
 
-#: c-family/c.opt:728
+#: c-family/c.opt:736
 msgid ""
 "-fno-deduce-init-list\tdisable deduction of std::initializer_list for a "
 "template type parameter from a brace-enclosed initializer-list"
 msgstr ""
 
-#: c-family/c.opt:732 c-family/c.opt:907 common.opt:895 common.opt:1053
-#: common.opt:1323 common.opt:1589 common.opt:1625 common.opt:1710
-#: common.opt:1781 common.opt:1859 common.opt:1875 common.opt:1951
+#: c-family/c.opt:740 c-family/c.opt:915 common.opt:919 common.opt:1093
+#: common.opt:1363 common.opt:1629 common.opt:1665 common.opt:1750
+#: common.opt:1821 common.opt:1899 common.opt:1915 common.opt:1991
 msgid "Does nothing.  Preserved for backward compatibility."
 msgstr ""
 
-#: c-family/c.opt:736
+#: c-family/c.opt:744
 msgid "Preprocess directives only."
 msgstr ""
 
-#: c-family/c.opt:740
+#: c-family/c.opt:748
 msgid "Permit '$' as an identifier character"
 msgstr ""
 
-#: c-family/c.opt:747
+#: c-family/c.opt:755
 msgid "Generate code to check exception specifications"
 msgstr ""
 
-#: c-family/c.opt:754
+#: c-family/c.opt:762
 msgid ""
 "-fexec-charset=<cset>\tConvert all strings and character constants to "
 "character set <cset>"
 msgstr ""
 
-#: c-family/c.opt:758
+#: c-family/c.opt:766
 msgid "Permit universal character names (\\u and \\U) in identifiers"
 msgstr ""
 
-#: c-family/c.opt:762
+#: c-family/c.opt:770
 msgid ""
 "-finput-charset=<cset>\tSpecify the default character set for source files"
 msgstr ""
 
-#: c-family/c.opt:770
+#: c-family/c.opt:778
 msgid "Scope of for-init-statement variables is local to the loop"
 msgstr ""
 
-#: c-family/c.opt:774
+#: c-family/c.opt:782
 msgid "Do not assume that standard C libraries and \"main\" exist"
 msgstr ""
 
-#: c-family/c.opt:778
+#: c-family/c.opt:786
 msgid "Recognize GNU-defined keywords"
 msgstr ""
 
-#: c-family/c.opt:782
+#: c-family/c.opt:790
 msgid "Generate code for GNU runtime environment"
 msgstr ""
 
-#: c-family/c.opt:786
+#: c-family/c.opt:794
 msgid "Use traditional GNU semantics for inline functions"
 msgstr ""
 
-#: c-family/c.opt:792
+#: c-family/c.opt:800
 msgid ""
 "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
 msgstr ""
 
-#: c-family/c.opt:799
+#: c-family/c.opt:807
 msgid "Assume normal C execution environment"
 msgstr ""
 
-#: c-family/c.opt:807
+#: c-family/c.opt:815
 msgid "Export functions even if they can be inlined"
 msgstr ""
 
-#: c-family/c.opt:811
+#: c-family/c.opt:819
 msgid "Emit implicit instantiations of inline templates"
 msgstr ""
 
-#: c-family/c.opt:815
+#: c-family/c.opt:823
 msgid "Emit implicit instantiations of templates"
 msgstr ""
 
-#: c-family/c.opt:819
+#: c-family/c.opt:827
 msgid "Inject friend functions into enclosing namespace"
 msgstr ""
 
-#: c-family/c.opt:823
+#: c-family/c.opt:831
 msgid "Don't emit dllexported inline functions unless needed"
 msgstr ""
 
-#: c-family/c.opt:830
+#: c-family/c.opt:838
 msgid ""
 "Allow implicit conversions between vectors with differing numbers of "
 "subparts and/or differing element types."
 msgstr ""
 
-#: c-family/c.opt:834
+#: c-family/c.opt:842
 msgid "Don't warn about uses of Microsoft extensions"
 msgstr ""
 
-#: c-family/c.opt:844
+#: c-family/c.opt:852
 msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
 msgstr ""
 
-#: c-family/c.opt:848
+#: c-family/c.opt:856
 msgid "Assume that receivers of Objective-C messages may be nil"
 msgstr ""
 
-#: c-family/c.opt:858
+#: c-family/c.opt:866
 msgid ""
 "Treat a throw() exception specification as noexcept to improve code size"
 msgstr ""
 
-#: c-family/c.opt:862
+#: c-family/c.opt:870
 msgid ""
 "Specify which ABI to use for Objective-C family code and meta-data "
 "generation."
 msgstr ""
 
-#: c-family/c.opt:868
+#: c-family/c.opt:876
 msgid ""
 "Generate special Objective-C methods to initialize/destroy non-POD C++ "
 "ivars, if needed"
 msgstr ""
 
-#: c-family/c.opt:872
+#: c-family/c.opt:880
 msgid "Allow fast jumps to the message dispatcher"
 msgstr ""
 
-#: c-family/c.opt:878
+#: c-family/c.opt:886
 msgid "Enable Objective-C exception and synchronization syntax"
 msgstr ""
 
-#: c-family/c.opt:882
+#: c-family/c.opt:890
 msgid "Enable garbage collection (GC) in Objective-C/Objective-C++ programs"
 msgstr ""
 
-#: c-family/c.opt:886
+#: c-family/c.opt:894
 msgid ""
 "Enable inline checks for nil receivers with the NeXT runtime and ABI version "
 "2."
 msgstr ""
 
-#: c-family/c.opt:891
+#: c-family/c.opt:899
 msgid "Enable Objective-C setjmp exception handling runtime"
 msgstr ""
 
-#: c-family/c.opt:895
+#: c-family/c.opt:903
 msgid "Conform to the Objective-C 1.0 language as implemented in GCC 4.0"
 msgstr ""
 
-#: c-family/c.opt:899
+#: c-family/c.opt:907
 msgid "Enable OpenMP (implies -frecursive in Fortran)"
 msgstr ""
 
-#: c-family/c.opt:903
+#: c-family/c.opt:911
 msgid "Recognize C++ keywords like \"compl\" and \"xor\""
 msgstr ""
 
-#: c-family/c.opt:914
+#: c-family/c.opt:922
 msgid "Look for and use PCH files even when preprocessing"
 msgstr ""
 
-#: c-family/c.opt:918
+#: c-family/c.opt:926
 msgid "Downgrade conformance errors to warnings"
 msgstr ""
 
-#: c-family/c.opt:922
+#: c-family/c.opt:930
 msgid "Enable Plan 9 language extensions"
 msgstr ""
 
-#: c-family/c.opt:926
+#: c-family/c.opt:934
 msgid "Treat the input file as already preprocessed"
 msgstr ""
 
-#: c-family/c.opt:930
+#: c-family/c.opt:938
 msgid ""
 "-fno-pretty-templates Do not pretty-print template specializations as the "
 "template signature followed by the arguments"
 msgstr ""
 
-#: c-family/c.opt:934
+#: c-family/c.opt:942
 msgid ""
 "Used in Fix-and-Continue mode to indicate that object files may be swapped "
 "in at runtime"
 msgstr ""
 
-#: c-family/c.opt:938
+#: c-family/c.opt:946
 msgid "Enable automatic template instantiation"
 msgstr ""
 
-#: c-family/c.opt:942
+#: c-family/c.opt:950
 msgid "Generate run time type descriptor information"
 msgstr ""
 
-#: c-family/c.opt:946
+#: c-family/c.opt:954
 msgid "Use the same size for double as for float"
 msgstr ""
 
-#: c-family/c.opt:950
+#: c-family/c.opt:958
 msgid "Use the narrowest integer type possible for enumeration types"
 msgstr ""
 
-#: c-family/c.opt:954
+#: c-family/c.opt:962
 msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\""
 msgstr ""
 
-#: c-family/c.opt:958
+#: c-family/c.opt:966
 msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed"
 msgstr ""
 
-#: c-family/c.opt:962
+#: c-family/c.opt:970
 msgid "Make \"char\" signed by default"
 msgstr ""
 
-#: c-family/c.opt:969
+#: c-family/c.opt:977
 msgid "Display statistics accumulated during compilation"
 msgstr ""
 
-#: c-family/c.opt:973
+#: c-family/c.opt:981
 msgid ""
 "Assume that values of enumeration type are always within the minimum range "
 "of that type"
 msgstr ""
 
-#: c-family/c.opt:980
+#: c-family/c.opt:988
 msgid "-ftabstop=<number>\tDistance between tab stops for column reporting"
 msgstr ""
 
-#: c-family/c.opt:987
+#: c-family/c.opt:995
 msgid "-ftemplate-depth=<number>\tSpecify maximum template instantiation depth"
 msgstr ""
 
-#: c-family/c.opt:994
+#: c-family/c.opt:1002
 msgid ""
 "-fno-threadsafe-statics\tDo not generate thread-safe code for initializing "
 "local statics"
 msgstr ""
 
-#: c-family/c.opt:998
+#: c-family/c.opt:1006
 msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
 msgstr ""
 
-#: c-family/c.opt:1002
+#: c-family/c.opt:1010
 msgid "Make \"char\" unsigned by default"
 msgstr ""
 
-#: c-family/c.opt:1006
+#: c-family/c.opt:1014
 msgid "Use __cxa_atexit to register destructors"
 msgstr ""
 
-#: c-family/c.opt:1010
+#: c-family/c.opt:1018
 msgid "Use __cxa_get_exception_ptr in exception handling"
 msgstr ""
 
-#: c-family/c.opt:1014
+#: c-family/c.opt:1022
 msgid "Marks all inlined methods as having hidden visibility"
 msgstr ""
 
-#: c-family/c.opt:1018
+#: c-family/c.opt:1026
 msgid "Changes visibility to match Microsoft Visual Studio by default"
 msgstr ""
 
-#: c-family/c.opt:1030
+#: c-family/c.opt:1038
 msgid "Emit common-like symbols as weak symbols"
 msgstr ""
 
-#: c-family/c.opt:1034
+#: c-family/c.opt:1042
 msgid ""
 "-fwide-exec-charset=<cset>\tConvert all wide strings and character constants "
 "to character set <cset>"
 msgstr ""
 
-#: c-family/c.opt:1038
+#: c-family/c.opt:1046
 msgid "Generate a #line directive pointing at the current working directory"
 msgstr ""
 
-#: c-family/c.opt:1046
+#: c-family/c.opt:1054
 msgid ""
 "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
 msgstr ""
 
-#: c-family/c.opt:1050
+#: c-family/c.opt:1058
 msgid "Dump declarations to a .decl file"
 msgstr ""
 
-#: c-family/c.opt:1054
+#: c-family/c.opt:1062
 msgid "-femit-struct-debug-baseonly\tAggressive reduced debug info for structs"
 msgstr ""
 
-#: c-family/c.opt:1058
+#: c-family/c.opt:1066
 msgid ""
 "-femit-struct-debug-reduced\tConservative reduced debug info for structs"
 msgstr ""
 
-#: c-family/c.opt:1062
+#: c-family/c.opt:1070
 msgid ""
 "-femit-struct-debug-detailed=<spec-list>\tDetailed reduced debug info for "
 "structs"
 msgstr ""
 
-#: c-family/c.opt:1066
+#: c-family/c.opt:1074
 msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
 msgstr ""
 
-#: c-family/c.opt:1070
+#: c-family/c.opt:1078
 msgid "-imacros <file>\tAccept definition of macros in <file>"
 msgstr ""
 
-#: c-family/c.opt:1074
+#: c-family/c.opt:1082
 msgid "-imultilib <dir>\tSet <dir> to be the multilib include subdirectory"
 msgstr ""
 
-#: c-family/c.opt:1078
+#: c-family/c.opt:1086
 msgid "-include <file>\tInclude the contents of <file> before other files"
 msgstr ""
 
-#: c-family/c.opt:1082
+#: c-family/c.opt:1090
 msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
 msgstr ""
 
-#: c-family/c.opt:1086
+#: c-family/c.opt:1094
 msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
 msgstr ""
 
-#: c-family/c.opt:1090
+#: c-family/c.opt:1098
 msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
 msgstr ""
 
-#: c-family/c.opt:1094
+#: c-family/c.opt:1102
 msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path"
 msgstr ""
 
-#: c-family/c.opt:1098
+#: c-family/c.opt:1106
 msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
 msgstr ""
 
-#: c-family/c.opt:1102
+#: c-family/c.opt:1110
 msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
 msgstr ""
 
-#: c-family/c.opt:1112
+#: c-family/c.opt:1120
 msgid ""
 "Do not search standard system include directories (those specified with -"
 "isystem will still be used)"
 msgstr ""
 
-#: c-family/c.opt:1116
+#: c-family/c.opt:1124
 msgid "Do not search standard system include directories for C++"
 msgstr ""
 
-#: c-family/c.opt:1132
+#: c-family/c.opt:1140
 msgid "Generate C header of platform-specific features"
 msgstr ""
 
-#: c-family/c.opt:1136
+#: c-family/c.opt:1144
 msgid "Remap file names when including files"
 msgstr ""
 
-#: c-family/c.opt:1140
-msgid "Conform to the ISO 1998 C++ standard"
+#: c-family/c.opt:1148 c-family/c.opt:1152
+msgid ""
+"Conform to the ISO 1998 C++ standard revised by the 2003 technical "
+"corrigendum"
 msgstr ""
 
-#: c-family/c.opt:1144
+#: c-family/c.opt:1156
 msgid ""
 "Conform to the ISO 1998 C++ standard, with extensions that are likely to"
 msgstr ""
 
-#: c-family/c.opt:1151
+#: c-family/c.opt:1163
 msgid ""
 "Conform to the ISO 201X C standard draft (experimental and incomplete "
 "support)"
 msgstr ""
 
-#: c-family/c.opt:1155 c-family/c.opt:1159 c-family/c.opt:1202
+#: c-family/c.opt:1167 c-family/c.opt:1171 c-family/c.opt:1214
 msgid "Conform to the ISO 1990 C standard"
 msgstr ""
 
-#: c-family/c.opt:1163 c-family/c.opt:1210
+#: c-family/c.opt:1175 c-family/c.opt:1222
 msgid "Conform to the ISO 1999 C standard"
 msgstr ""
 
-#: c-family/c.opt:1167
+#: c-family/c.opt:1179
 msgid "Deprecated in favor of -std=c99"
 msgstr ""
 
-#: c-family/c.opt:1171
+#: c-family/c.opt:1183
 msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
 msgstr ""
 
-#: c-family/c.opt:1175
+#: c-family/c.opt:1187
 msgid "Conform to the ISO 1998 C++ standard, with GNU extensions and"
 msgstr ""
 
-#: c-family/c.opt:1182
+#: c-family/c.opt:1194
 msgid ""
 "Conform to the ISO 201X C standard draft with GNU extensions (experimental "
 "and incomplete support)"
 msgstr ""
 
-#: c-family/c.opt:1186 c-family/c.opt:1190
+#: c-family/c.opt:1198 c-family/c.opt:1202
 msgid "Conform to the ISO 1990 C standard with GNU extensions"
 msgstr ""
 
-#: c-family/c.opt:1194
+#: c-family/c.opt:1206
 msgid "Conform to the ISO 1999 C standard with GNU extensions"
 msgstr ""
 
-#: c-family/c.opt:1198
+#: c-family/c.opt:1210
 msgid "Deprecated in favor of -std=gnu99"
 msgstr ""
 
-#: c-family/c.opt:1206
+#: c-family/c.opt:1218
 msgid "Conform to the ISO 1990 C standard as amended in 1994"
 msgstr ""
 
-#: c-family/c.opt:1214
+#: c-family/c.opt:1226
 msgid "Deprecated in favor of -std=iso9899:1999"
 msgstr ""
 
-#: c-family/c.opt:1221
+#: c-family/c.opt:1233
 msgid "Enable traditional preprocessing"
 msgstr ""
 
-#: c-family/c.opt:1225
+#: c-family/c.opt:1237
 msgid "-trigraphs\tSupport ISO C trigraphs"
 msgstr ""
 
-#: c-family/c.opt:1229
+#: c-family/c.opt:1241
 msgid "Do not predefine system-specific and GCC-specific macros"
 msgstr ""
 
@@ -9920,1871 +10014,1892 @@
 msgid "The resolution file"
 msgstr ""
 
-#: common.opt:259
+#: common.opt:263
 msgid "Display this information"
 msgstr ""
 
-#: common.opt:263
+#: common.opt:267
 msgid ""
 "--help=<class>\tDisplay descriptions of a specific class of options.  "
 "<class> is one or more of optimizers, target, warnings, undocumented, params"
 msgstr ""
 
-#: common.opt:375
+#: common.opt:379
 msgid "Alias for --help=target"
 msgstr ""
 
-#: common.opt:400
+#: common.opt:404
 msgid ""
 "--param <param>=<value>\tSet parameter <param> to value.  See below for a "
 "complete list of parameters"
 msgstr ""
 
-#: common.opt:428
+#: common.opt:432
 msgid "-O<number>\tSet optimization level to <number>"
 msgstr ""
 
-#: common.opt:432
+#: common.opt:436
 msgid "Optimize for space rather than speed"
 msgstr ""
 
-#: common.opt:436
+#: common.opt:440
 msgid "Optimize for speed disregarding exact standards compliance"
 msgstr ""
 
-#: common.opt:467
+#: common.opt:480
 msgid "This switch is deprecated; use -Wextra instead"
 msgstr ""
 
-#: common.opt:480
+#: common.opt:493
 msgid "Warn about returning structures, unions or arrays"
 msgstr ""
 
-#: common.opt:484
+#: common.opt:497
 msgid "Warn if an array is accessed out of bounds"
 msgstr ""
 
-#: common.opt:488
+#: common.opt:501
 msgid "Warn about inappropriate attribute usage"
 msgstr ""
 
-#: common.opt:492
+#: common.opt:505
 msgid "Warn about pointer casts which increase alignment"
 msgstr ""
 
-#: common.opt:496
+#: common.opt:509
 msgid "Warn when a #warning directive is encountered"
 msgstr ""
 
-#: common.opt:500
+#: common.opt:513
 msgid "Warn about uses of __attribute__((deprecated)) declarations"
 msgstr ""
 
-#: common.opt:504
+#: common.opt:517
 msgid "Warn when an optimization pass is disabled"
 msgstr ""
 
-#: common.opt:508
+#: common.opt:521
 msgid "Treat all warnings as errors"
 msgstr ""
 
-#: common.opt:512
+#: common.opt:525
 msgid "Treat specified warning as error"
 msgstr ""
 
-#: common.opt:516
+#: common.opt:529
 msgid "Print extra (possibly unwanted) warnings"
 msgstr ""
 
-#: common.opt:520
+#: common.opt:533
 msgid "Exit on the first error occurred"
 msgstr ""
 
-#: common.opt:524
+#: common.opt:537
 msgid ""
 "-Wframe-larger-than=<number>\tWarn if a function's stack frame requires more "
 "than <number> bytes"
 msgstr ""
 
-#: common.opt:528
+#: common.opt:541
 msgid "Warn when an inlined function cannot be inlined"
 msgstr ""
 
-#: common.opt:535
+#: common.opt:548
 msgid "-Wlarger-than=<number>\tWarn if an object is larger than <number> bytes"
 msgstr ""
 
-#: common.opt:539
+#: common.opt:552
 msgid "Warn if the loop cannot be optimized due to nontrivial assumptions."
 msgstr ""
 
-#: common.opt:543 common.opt:595
+#: common.opt:556 common.opt:612
 msgid ""
 "Warn about functions which might be candidates for __attribute__((noreturn))"
 msgstr ""
 
-#: common.opt:547
+#: common.opt:560
 msgid "Warn about constructs not instrumented by -fmudflap"
 msgstr ""
 
-#: common.opt:551
+#: common.opt:564
 msgid "Warn about overflow in arithmetic expressions"
 msgstr ""
 
-#: common.opt:555
+#: common.opt:568
 msgid "Warn when the packed attribute has no effect on struct layout"
 msgstr ""
 
-#: common.opt:559
+#: common.opt:572
 msgid "Warn when padding is required to align structure members"
 msgstr ""
 
-#: common.opt:563
+#: common.opt:576
 msgid "Warn when one local variable shadows another"
 msgstr ""
 
-#: common.opt:567
+#: common.opt:580
 msgid "Warn when not issuing stack smashing protection for some reason"
 msgstr ""
 
-#: common.opt:571 common.opt:575
+#: common.opt:584
+msgid "Warn if stack usage might be larger than specified amount"
+msgstr ""
+
+#: common.opt:588 common.opt:592
 msgid "Warn about code which might break strict aliasing rules"
 msgstr ""
 
-#: common.opt:579 common.opt:583
+#: common.opt:596 common.opt:600
 msgid "Warn about optimizations that assume that signed overflow is undefined"
 msgstr ""
 
-#: common.opt:587
+#: common.opt:604
 msgid ""
 "Warn about functions which might be candidates for __attribute__((const))"
 msgstr ""
 
-#: common.opt:591
+#: common.opt:608
 msgid ""
 "Warn about functions which might be candidates for __attribute__((pure))"
 msgstr ""
 
-#: common.opt:599
+#: common.opt:616
 msgid "Warn about enumerated switches, with no default, missing a case"
 msgstr ""
 
-#: common.opt:603
+#: common.opt:620
 msgid "Warn about enumerated switches missing a \"default:\" statement"
 msgstr ""
 
-#: common.opt:607
+#: common.opt:624
 msgid "Warn about all enumerated switches missing a specific case"
 msgstr ""
 
-#: common.opt:611
+#: common.opt:628
 msgid "Do not suppress warnings from system headers"
 msgstr ""
 
-#: common.opt:615
+#: common.opt:632
 msgid "Warn whenever a trampoline is generated"
 msgstr ""
 
-#: common.opt:619
+#: common.opt:636
 msgid ""
 "Warn if a comparison is always true or always false due to the limited range "
 "of the data type"
 msgstr ""
 
-#: common.opt:623
+#: common.opt:640
 msgid "Warn about uninitialized automatic variables"
 msgstr ""
 
-#: common.opt:627 common.opt:784 common.opt:788 common.opt:792 common.opt:796
-#: common.opt:1253
-msgid "Does nothing. Preserved for backward compatibility."
+#: common.opt:644
+msgid "Warn about maybe uninitialized automatic variables"
 msgstr ""
 
-#: common.opt:631
+#: common.opt:652
 msgid "Enable all -Wunused- warnings"
 msgstr ""
 
-#: common.opt:635
+#: common.opt:656
 msgid "Warn when a function parameter is only set, otherwise unused"
 msgstr ""
 
-#: common.opt:639
+#: common.opt:660
 msgid "Warn when a variable is only set, otherwise unused"
 msgstr ""
 
-#: common.opt:643
+#: common.opt:664
 msgid "Warn when a function is unused"
 msgstr ""
 
-#: common.opt:647
+#: common.opt:668
 msgid "Warn when a label is unused"
 msgstr ""
 
-#: common.opt:651
+#: common.opt:672
 msgid "Warn when a function parameter is unused"
 msgstr ""
 
-#: common.opt:655
+#: common.opt:676
 msgid "Warn when an expression value is unused"
 msgstr ""
 
-#: common.opt:659
+#: common.opt:680
 msgid "Warn when a variable is unused"
 msgstr ""
 
-#: common.opt:663
+#: common.opt:684
 msgid "Warn in case profiles in -fprofile-use do not match"
 msgstr ""
 
-#: common.opt:679
+#: common.opt:700
 msgid "-aux-info <file>\tEmit declaration information into <file>"
 msgstr ""
 
-#: common.opt:698
+#: common.opt:719
 msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
 msgstr ""
 
-#: common.opt:702
+#: common.opt:723
 msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
 msgstr ""
 
-#: common.opt:706
+#: common.opt:727
 msgid "-dumpdir <dir>\tSet the directory name to be used for dumps"
 msgstr ""
 
-#: common.opt:756
+#: common.opt:780
 msgid "Align the start of functions"
 msgstr ""
 
-#: common.opt:763
+#: common.opt:787
 msgid "Align labels which are only reached by jumping"
 msgstr ""
 
-#: common.opt:770
+#: common.opt:794
 msgid "Align all labels"
 msgstr ""
 
-#: common.opt:777
+#: common.opt:801
 msgid "Align the start of loops"
 msgstr ""
 
-#: common.opt:800
+#: common.opt:824
 msgid "Generate unwind tables that are exact at each instruction boundary"
 msgstr ""
 
-#: common.opt:804
+#: common.opt:828
 msgid "Generate auto-inc/dec instructions"
 msgstr ""
 
-#: common.opt:812
+#: common.opt:836
 msgid "Generate code to check bounds before indexing arrays"
 msgstr ""
 
-#: common.opt:816
+#: common.opt:840
 msgid "Replace add, compare, branch with branch on count register"
 msgstr ""
 
-#: common.opt:820
+#: common.opt:844
 msgid "Use profiling information for branch probabilities"
 msgstr ""
 
-#: common.opt:824
+#: common.opt:848
 msgid ""
 "Perform branch target load optimization before prologue / epilogue threading"
 msgstr ""
 
-#: common.opt:828
+#: common.opt:852
 msgid ""
 "Perform branch target load optimization after prologue / epilogue threading"
 msgstr ""
 
-#: common.opt:832
+#: common.opt:856
 msgid ""
 "Restrict target load migration not to re-use registers in any basic block"
 msgstr ""
 
-#: common.opt:836
+#: common.opt:860
 msgid ""
 "-fcall-saved-<register>\tMark <register> as being preserved across functions"
 msgstr ""
 
-#: common.opt:840
+#: common.opt:864
 msgid ""
 "-fcall-used-<register>\tMark <register> as being corrupted by function calls"
 msgstr ""
 
-#: common.opt:847
+#: common.opt:871
 msgid "Save registers around function calls"
 msgstr ""
 
-#: common.opt:851
+#: common.opt:875
 msgid "Compare the results of several data dependence analyzers."
 msgstr ""
 
-#: common.opt:855
+#: common.opt:879
 msgid ""
 "Looks for opportunities to reduce stack adjustments and stack references."
 msgstr ""
 
-#: common.opt:859
+#: common.opt:883
 msgid "Do not put uninitialized globals in the common section"
 msgstr ""
 
-#: common.opt:867
+#: common.opt:891
 msgid ""
 "-fcompare-debug[=<opts>]\tCompile with and without e.g. -gtoggle, and "
 "compare the final-insns dump"
 msgstr ""
 
-#: common.opt:871
+#: common.opt:895
 msgid "Run only the second compilation of -fcompare-debug"
 msgstr ""
 
-#: common.opt:875
+#: common.opt:899
 msgid "Perform comparison elimination after register allocation has finished"
 msgstr ""
 
-#: common.opt:879
+#: common.opt:903
 msgid "Do not perform optimizations increasing noticeably stack usage"
 msgstr ""
 
-#: common.opt:883
+#: common.opt:907
 msgid "Perform a register copy-propagation optimization pass"
 msgstr ""
 
-#: common.opt:887
+#: common.opt:911
 msgid "Perform cross-jumping optimization"
 msgstr ""
 
-#: common.opt:891
+#: common.opt:915
 msgid "When running CSE, follow jumps to their targets"
 msgstr ""
 
-#: common.opt:899
+#: common.opt:923
 msgid "Omit range reduction step when performing complex division"
 msgstr ""
 
-#: common.opt:903
+#: common.opt:927
 msgid "Complex multiplication and division follow Fortran rules"
 msgstr ""
 
-#: common.opt:907
+#: common.opt:931
 msgid "Place data items into their own section"
 msgstr ""
 
-#: common.opt:911
+#: common.opt:935
 msgid "List all available debugging counters with their limits and counts."
 msgstr ""
 
-#: common.opt:915
+#: common.opt:939
 msgid ""
 "-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...]\tSet the debug counter "
 "limit.   "
 msgstr ""
 
-#: common.opt:919
+#: common.opt:943
 msgid "Map one directory name to another in debug information"
 msgstr ""
 
-#: common.opt:925
+#: common.opt:947
+msgid "Output .debug_types section when using DWARF v4 debuginfo."
+msgstr ""
+
+#: common.opt:953
 msgid "Defer popping functions args from stack until later"
 msgstr ""
 
-#: common.opt:929
+#: common.opt:957
 msgid "Attempt to fill delay slots of branch instructions"
 msgstr ""
 
-#: common.opt:933
+#: common.opt:961
 msgid "Delete useless null pointer checks"
 msgstr ""
 
-#: common.opt:937
+#: common.opt:965
 msgid "Try to convert virtual calls to direct ones."
 msgstr ""
 
-#: common.opt:941
+#: common.opt:969
 msgid ""
 "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source "
 "location at the beginning of line-wrapped diagnostics"
 msgstr ""
 
-#: common.opt:958
+#: common.opt:986
 msgid ""
 "Amend appropriate diagnostic messages with the command line option that "
 "controls them"
 msgstr ""
 
-#: common.opt:962
+#: common.opt:990
+msgid ""
+"-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass"
+msgstr ""
+
+#: common.opt:994
+msgid ""
+"-fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass"
+msgstr ""
+
+#: common.opt:998
 msgid "-fdump-<type>\tDump various compiler internals to a file"
 msgstr ""
 
-#: common.opt:969
+#: common.opt:1005
 msgid ""
 "-fdump-final-insns=filename\tDump to filename the insns at the end of "
 "translation"
 msgstr ""
 
-#: common.opt:973
+#: common.opt:1009
 msgid "-fdump-go-spec=filename\tWrite all declarations to file as Go code"
 msgstr ""
 
-#: common.opt:977
+#: common.opt:1013
 msgid "Suppress output of addresses in debugging dumps"
 msgstr ""
 
-#: common.opt:981
+#: common.opt:1017
+msgid "Dump optimization passes"
+msgstr ""
+
+#: common.opt:1021
 msgid ""
 "Suppress output of instruction numbers, line number notes and addresses in "
 "debugging dumps"
 msgstr ""
 
-#: common.opt:985
+#: common.opt:1025
 msgid "Suppress output of previous and next insn numbers in debugging dumps"
 msgstr ""
 
-#: common.opt:989
+#: common.opt:1029
 msgid "Enable CFI tables via GAS assembler directives."
 msgstr ""
 
-#: common.opt:993
+#: common.opt:1033
 msgid "Perform early inlining"
 msgstr ""
 
-#: common.opt:997
+#: common.opt:1037
 msgid "Perform DWARF2 duplicate elimination"
 msgstr ""
 
-#: common.opt:1001
+#: common.opt:1041
 msgid "Perform interprocedural reduction of aggregates"
 msgstr ""
 
-#: common.opt:1005 common.opt:1009
+#: common.opt:1045 common.opt:1049
 msgid "Perform unused type elimination in debug info"
 msgstr ""
 
-#: common.opt:1013
+#: common.opt:1053
 msgid "Do not suppress C++ class debug information."
 msgstr ""
 
-#: common.opt:1017
+#: common.opt:1057
 msgid "Enable exception handling"
 msgstr ""
 
-#: common.opt:1021
+#: common.opt:1061
 msgid "Perform a number of minor, expensive optimizations"
 msgstr ""
 
-#: common.opt:1025
+#: common.opt:1065
 msgid ""
 "-fexcess-precision=[fast|standard]\tSpecify handling of excess floating-"
 "point precision"
 msgstr ""
 
-#: common.opt:1028
+#: common.opt:1068
 #, c-format
 msgid "unknown excess precision style %qs"
 msgstr ""
 
-#: common.opt:1041
+#: common.opt:1081
 msgid "Assume no NaNs or infinities are generated"
 msgstr ""
 
-#: common.opt:1045
+#: common.opt:1085
 msgid ""
 "-ffixed-<register>\tMark <register> as being unavailable to the compiler"
 msgstr ""
 
-#: common.opt:1049
+#: common.opt:1089
 msgid "Don't allocate floats and doubles in extended-precision registers"
 msgstr ""
 
-#: common.opt:1057
-msgid "Perform a forward propagation pass on RTL"
-msgstr ""
-
-#: common.opt:1061
-msgid ""
-"-ffp-contract=[off|on|fast] Perform floating-point expression contraction."
-msgstr ""
-
-#: common.opt:1064
-#, c-format
-msgid "unknown floating point contraction style %qs"
-msgstr ""
-
-#: common.opt:1081
-msgid "Allow function addresses to be held in registers"
-msgstr ""
-
-#: common.opt:1085
-msgid "Place each function into its own section"
-msgstr ""
-
-#: common.opt:1089
-msgid "Perform global common subexpression elimination"
-msgstr ""
-
-#: common.opt:1093
-msgid ""
-"Perform enhanced load motion during global common subexpression elimination"
-msgstr ""
-
 #: common.opt:1097
-msgid "Perform store motion after global common subexpression elimination"
+msgid "Perform a forward propagation pass on RTL"
 msgstr ""
 
 #: common.opt:1101
 msgid ""
+"-ffp-contract=[off|on|fast] Perform floating-point expression contraction."
+msgstr ""
+
+#: common.opt:1104
+#, c-format
+msgid "unknown floating point contraction style %qs"
+msgstr ""
+
+#: common.opt:1121
+msgid "Allow function addresses to be held in registers"
+msgstr ""
+
+#: common.opt:1125
+msgid "Place each function into its own section"
+msgstr ""
+
+#: common.opt:1129
+msgid "Perform global common subexpression elimination"
+msgstr ""
+
+#: common.opt:1133
+msgid ""
+"Perform enhanced load motion during global common subexpression elimination"
+msgstr ""
+
+#: common.opt:1137
+msgid "Perform store motion after global common subexpression elimination"
+msgstr ""
+
+#: common.opt:1141
+msgid ""
 "Perform redundant load after store elimination in global common subexpression"
 msgstr ""
 
-#: common.opt:1106
+#: common.opt:1146
 msgid ""
 "Perform global common subexpression elimination after register allocation"
 msgstr ""
 
-#: common.opt:1112
+#: common.opt:1152
 msgid "Enable in and out of Graphite representation"
 msgstr ""
 
-#: common.opt:1116
+#: common.opt:1156
 msgid "Enable Graphite Identity transformation"
 msgstr ""
 
-#: common.opt:1120
+#: common.opt:1160
 msgid "Mark all loops as parallel"
 msgstr ""
 
-#: common.opt:1124
+#: common.opt:1164
 msgid "Enable Loop Strip Mining transformation"
 msgstr ""
 
-#: common.opt:1128
+#: common.opt:1168
 msgid "Enable Loop Interchange transformation"
 msgstr ""
 
-#: common.opt:1132
+#: common.opt:1172
 msgid "Enable Loop Blocking transformation"
 msgstr ""
 
-#: common.opt:1136
+#: common.opt:1176
 msgid "Enable Loop Flattening transformation"
 msgstr ""
 
-#: common.opt:1140
+#: common.opt:1180
 msgid "Force bitfield accesses to match their type width"
 msgstr ""
 
-#: common.opt:1144
+#: common.opt:1184
 msgid "Enable guessing of branch probabilities"
 msgstr ""
 
-#: common.opt:1152
+#: common.opt:1192
 msgid "Process #ident directives"
 msgstr ""
 
-#: common.opt:1156
+#: common.opt:1196
 msgid "Perform conversion of conditional jumps to branchless equivalents"
 msgstr ""
 
-#: common.opt:1160
+#: common.opt:1200
 msgid "Perform conversion of conditional jumps to conditional execution"
 msgstr ""
 
-#: common.opt:1164
+#: common.opt:1204
 msgid "Convert conditional jumps in innermost loops to branchless equivalents"
 msgstr ""
 
-#: common.opt:1168
+#: common.opt:1208
 msgid "Also if-convert conditional jumps containing memory writes"
 msgstr ""
 
-#: common.opt:1176
+#: common.opt:1216
 msgid "Do not generate .size directives"
 msgstr ""
 
-#: common.opt:1180
+#: common.opt:1220
 msgid "Perform indirect inlining"
 msgstr ""
 
-#: common.opt:1189
+#: common.opt:1229
 msgid "Pay attention to the \"inline\" keyword"
 msgstr ""
 
-#: common.opt:1193
+#: common.opt:1233
 msgid ""
 "Integrate simple functions into their callers when code size is known to not "
 "growth"
 msgstr ""
 
-#: common.opt:1197
+#: common.opt:1237
 msgid "Integrate simple functions into their callers"
 msgstr ""
 
-#: common.opt:1201
+#: common.opt:1241
 msgid "Integrate functions called once into their callers"
 msgstr ""
 
-#: common.opt:1208
+#: common.opt:1248
 msgid ""
 "-finline-limit=<number>\tLimit the size of inlined functions to <number>"
 msgstr ""
 
-#: common.opt:1212
+#: common.opt:1252
 msgid "Instrument function entry and exit with profiling calls"
 msgstr ""
 
-#: common.opt:1216
+#: common.opt:1256
 msgid ""
 "-finstrument-functions-exclude-function-list=name,...  Do not instrument "
 "listed functions"
 msgstr ""
 
-#: common.opt:1220
+#: common.opt:1260
 msgid ""
 "-finstrument-functions-exclude-file-list=filename,...  Do not instrument "
 "functions listed in files"
 msgstr ""
 
-#: common.opt:1224
+#: common.opt:1264
 msgid "Perform Interprocedural constant propagation"
 msgstr ""
 
-#: common.opt:1228
+#: common.opt:1268
 msgid "Perform cloning to make Interprocedural constant propagation stronger"
 msgstr ""
 
-#: common.opt:1232
+#: common.opt:1272
 msgid "Perform interprocedural profile propagation"
 msgstr ""
 
-#: common.opt:1236
+#: common.opt:1276
 msgid "Perform interprocedural points-to analysis"
 msgstr ""
 
-#: common.opt:1240
+#: common.opt:1280
 msgid "Discover pure and const functions"
 msgstr ""
 
-#: common.opt:1244
+#: common.opt:1284
 msgid "Discover readonly and non addressable static variables"
 msgstr ""
 
-#: common.opt:1248
+#: common.opt:1288
 msgid "Perform matrix layout flattening and transposing based"
 msgstr ""
 
-#: common.opt:1257
+#: common.opt:1297
 msgid "-fira-algorithm=[CB|priority] Set the used IRA algorithm"
 msgstr ""
 
-#: common.opt:1260
+#: common.opt:1300
 #, c-format
 msgid "unknown IRA algorithm %qs"
 msgstr ""
 
-#: common.opt:1270
+#: common.opt:1310
 msgid "-fira-region=[one|all|mixed] Set regions for IRA"
 msgstr ""
 
-#: common.opt:1273
+#: common.opt:1313
 #, c-format
 msgid "unknown IRA region %qs"
 msgstr ""
 
-#: common.opt:1286
+#: common.opt:1326
 msgid "Use IRA based register pressure calculation"
 msgstr ""
 
-#: common.opt:1291
+#: common.opt:1331
 msgid "Share slots for saving different hard registers."
 msgstr ""
 
-#: common.opt:1295
+#: common.opt:1335
 msgid "Share stack slots for spilled pseudo-registers."
 msgstr ""
 
-#: common.opt:1299
+#: common.opt:1339
 msgid "-fira-verbose=<number>\tControl IRA's level of diagnostic messages."
 msgstr ""
 
-#: common.opt:1303
+#: common.opt:1343
 msgid "Optimize induction variables on trees"
 msgstr ""
 
-#: common.opt:1307
+#: common.opt:1347
 msgid "Use jump tables for sufficiently large switch statements"
 msgstr ""
 
-#: common.opt:1311
+#: common.opt:1351
 msgid "Generate code for functions even if they are fully inlined"
 msgstr ""
 
-#: common.opt:1315
+#: common.opt:1355
 msgid "Emit static const variables even if they are not used"
 msgstr ""
 
-#: common.opt:1319
+#: common.opt:1359
 msgid "Give external symbols a leading underscore"
 msgstr ""
 
-#: common.opt:1327
+#: common.opt:1367
 msgid "Enable link-time optimization."
 msgstr ""
 
-#: common.opt:1331
+#: common.opt:1371
 msgid "Link-time optimization with number of parallel jobs or jobserver."
 msgstr ""
 
-#: common.opt:1335
+#: common.opt:1375
 msgid ""
 "Partition functions and vars at linktime based on object files they "
 "originate from"
 msgstr ""
 
-#: common.opt:1339
+#: common.opt:1379
 msgid ""
 "Partition functions and vars at linktime into approximately same sized "
 "buckets"
 msgstr ""
 
-#: common.opt:1343
+#: common.opt:1383
 msgid "Disable partioning and streaming"
 msgstr ""
 
-#: common.opt:1348
+#: common.opt:1388
 msgid ""
 "-flto-compression-level=<number>\tUse zlib compression level <number> for IL"
 msgstr ""
 
-#: common.opt:1352
+#: common.opt:1392
 msgid "Report various link-time optimization statistics"
 msgstr ""
 
-#: common.opt:1356
+#: common.opt:1396
 msgid "Set errno after built-in math functions"
 msgstr ""
 
-#: common.opt:1360
+#: common.opt:1400
 msgid "-fmax-errors=<number>\tMaximum number of errors to report"
 msgstr ""
 
-#: common.opt:1364
+#: common.opt:1404
 msgid "Report on permanent memory allocation"
 msgstr ""
 
-#: common.opt:1371
+#: common.opt:1411
 msgid "Attempt to merge identical constants and constant variables"
 msgstr ""
 
-#: common.opt:1375
+#: common.opt:1415
 msgid "Attempt to merge identical constants across compilation units"
 msgstr ""
 
-#: common.opt:1379
+#: common.opt:1419
 msgid "Attempt to merge identical debug strings across compilation units"
 msgstr ""
 
-#: common.opt:1383
+#: common.opt:1423
 msgid ""
 "-fmessage-length=<number>\tLimit diagnostics to <number> characters per "
 "line.  0 suppresses line-wrapping"
 msgstr ""
 
-#: common.opt:1387
+#: common.opt:1427
 msgid "Perform SMS based modulo scheduling before the first scheduling pass"
 msgstr ""
 
-#: common.opt:1391
+#: common.opt:1431
 msgid "Perform SMS based modulo scheduling with register moves allowed"
 msgstr ""
 
-#: common.opt:1395
+#: common.opt:1435
 msgid "Move loop invariant computations out of loops"
 msgstr ""
 
-#: common.opt:1399
+#: common.opt:1439
 msgid "Add mudflap bounds-checking instrumentation for single-threaded program"
 msgstr ""
 
-#: common.opt:1403
+#: common.opt:1443
 msgid "Add mudflap bounds-checking instrumentation for multi-threaded program"
 msgstr ""
 
-#: common.opt:1407
+#: common.opt:1447
 msgid "Ignore read operations when inserting mudflap instrumentation"
 msgstr ""
 
-#: common.opt:1411
+#: common.opt:1451
 msgid "Use the RTL dead code elimination pass"
 msgstr ""
 
-#: common.opt:1415
+#: common.opt:1455
 msgid "Use the RTL dead store elimination pass"
 msgstr ""
 
-#: common.opt:1419
+#: common.opt:1459
 msgid ""
 "Enable/Disable the traditional scheduling in loops that already passed "
 "modulo scheduling"
 msgstr ""
 
-#: common.opt:1423
+#: common.opt:1463
 msgid "Support synchronous non-call exceptions"
 msgstr ""
 
-#: common.opt:1427
+#: common.opt:1467
 msgid "When possible do not generate stack frames"
 msgstr ""
 
-#: common.opt:1431
+#: common.opt:1471
 msgid "Do the full register move optimization pass"
 msgstr ""
 
-#: common.opt:1435
+#: common.opt:1475
 msgid "Optimize sibling and tail recursive calls"
 msgstr ""
 
-#: common.opt:1439
+#: common.opt:1479
 msgid "Perform partial inlining"
 msgstr ""
 
-#: common.opt:1443 common.opt:1447
+#: common.opt:1483 common.opt:1487
 msgid "Report on memory allocation before interprocedural optimization"
 msgstr ""
 
-#: common.opt:1451
+#: common.opt:1491
 msgid "Pack structure members together without holes"
 msgstr ""
 
-#: common.opt:1455
+#: common.opt:1495
 msgid "-fpack-struct=<number>\tSet initial maximum structure member alignment"
 msgstr ""
 
-#: common.opt:1459
+#: common.opt:1499
 msgid "Return small aggregates in memory, not registers"
 msgstr ""
 
-#: common.opt:1463
+#: common.opt:1503
 msgid "Perform loop peeling"
 msgstr ""
 
-#: common.opt:1467
+#: common.opt:1507
 msgid "Enable machine specific peephole optimizations"
 msgstr ""
 
-#: common.opt:1471
+#: common.opt:1511
 msgid "Enable an RTL peephole pass before sched2"
 msgstr ""
 
-#: common.opt:1475
+#: common.opt:1515
 msgid "Generate position-independent code if possible (large mode)"
 msgstr ""
 
-#: common.opt:1479
+#: common.opt:1519
 msgid ""
 "Generate position-independent code for executables if possible (large mode)"
 msgstr ""
 
-#: common.opt:1483
+#: common.opt:1523
 msgid "Generate position-independent code if possible (small mode)"
 msgstr ""
 
-#: common.opt:1487
+#: common.opt:1527
 msgid ""
 "Generate position-independent code for executables if possible (small mode)"
 msgstr ""
 
-#: common.opt:1491
+#: common.opt:1531
 msgid "Specify a plugin to load"
 msgstr ""
 
-#: common.opt:1495
+#: common.opt:1535
 msgid ""
 "-fplugin-arg-<name>-<key>[=<value>]\tSpecify argument <key>=<value> for "
 "plugin <name>"
 msgstr ""
 
-#: common.opt:1499
+#: common.opt:1539
 msgid "Run predictive commoning optimization."
 msgstr ""
 
-#: common.opt:1503
+#: common.opt:1543
 msgid "Generate prefetch instructions, if available, for arrays in loops"
 msgstr ""
 
-#: common.opt:1507
+#: common.opt:1547
 msgid "Enable basic program profiling code"
 msgstr ""
 
-#: common.opt:1511
+#: common.opt:1551
 msgid "Insert arc-based program profiling code"
 msgstr ""
 
-#: common.opt:1515
+#: common.opt:1555
 msgid "Set the top-level directory for storing the profile data."
 msgstr ""
 
-#: common.opt:1520
+#: common.opt:1560
 msgid "Enable correction of flow inconsistent profile data input"
 msgstr ""
 
-#: common.opt:1524
+#: common.opt:1564
 msgid ""
 "Enable common options for generating profile info for profile feedback "
 "directed optimizations"
 msgstr ""
 
-#: common.opt:1528
+#: common.opt:1568
 msgid ""
 "Enable common options for generating profile info for profile feedback "
 "directed optimizations, and set -fprofile-dir="
 msgstr ""
 
-#: common.opt:1532
+#: common.opt:1572
 msgid ""
 "Enable common options for performing profile feedback directed optimizations"
 msgstr ""
 
-#: common.opt:1536
+#: common.opt:1576
 msgid ""
 "Enable common options for performing profile feedback directed "
 "optimizations, and set -fprofile-dir="
 msgstr ""
 
-#: common.opt:1540
+#: common.opt:1580
 msgid "Insert code to profile values of expressions"
 msgstr ""
 
-#: common.opt:1547
+#: common.opt:1587
 msgid "-frandom-seed=<string>\tMake compile reproducible using <string>"
 msgstr ""
 
-#: common.opt:1557
+#: common.opt:1597
 msgid "Record gcc command line switches in the object file."
 msgstr ""
 
-#: common.opt:1561
+#: common.opt:1601
 msgid "Return small aggregates in registers"
 msgstr ""
 
-#: common.opt:1565
+#: common.opt:1605
 msgid "Enables a register move optimization"
 msgstr ""
 
-#: common.opt:1569
+#: common.opt:1609
 msgid "Perform a register renaming optimization pass"
 msgstr ""
 
-#: common.opt:1573
+#: common.opt:1613
 msgid "Reorder basic blocks to improve code placement"
 msgstr ""
 
-#: common.opt:1577
+#: common.opt:1617
 msgid "Reorder basic blocks and partition into hot and cold sections"
 msgstr ""
 
-#: common.opt:1581
+#: common.opt:1621
 msgid "Reorder functions to improve code placement"
 msgstr ""
 
-#: common.opt:1585
+#: common.opt:1625
 msgid "Add a common subexpression elimination pass after loop optimizations"
 msgstr ""
 
-#: common.opt:1593
+#: common.opt:1633
 msgid "Disable optimizations that assume default FP rounding behavior"
 msgstr ""
 
-#: common.opt:1597
+#: common.opt:1637
 msgid "Enable scheduling across basic blocks"
 msgstr ""
 
-#: common.opt:1601
+#: common.opt:1641
 msgid "Enable register pressure sensitive insn scheduling"
 msgstr ""
 
-#: common.opt:1605
+#: common.opt:1645
 msgid "Allow speculative motion of non-loads"
 msgstr ""
 
-#: common.opt:1609
+#: common.opt:1649
 msgid "Allow speculative motion of some loads"
 msgstr ""
 
-#: common.opt:1613
+#: common.opt:1653
 msgid "Allow speculative motion of more loads"
 msgstr ""
 
-#: common.opt:1617
+#: common.opt:1657
 msgid "-fsched-verbose=<number>\tSet the verbosity level of the scheduler"
 msgstr ""
 
-#: common.opt:1621
+#: common.opt:1661
 msgid "If scheduling post reload, do superblock scheduling"
 msgstr ""
 
-#: common.opt:1629
+#: common.opt:1669
 msgid "Reschedule instructions before register allocation"
 msgstr ""
 
-#: common.opt:1633
+#: common.opt:1673
 msgid "Reschedule instructions after register allocation"
 msgstr ""
 
-#: common.opt:1640
+#: common.opt:1680
 msgid "Schedule instructions using selective scheduling algorithm"
 msgstr ""
 
-#: common.opt:1644
+#: common.opt:1684
 msgid "Run selective scheduling after reload"
 msgstr ""
 
-#: common.opt:1648
+#: common.opt:1688
 msgid "Perform software pipelining of inner loops during selective scheduling"
 msgstr ""
 
-#: common.opt:1652
+#: common.opt:1692
 msgid "Perform software pipelining of outer loops during selective scheduling"
 msgstr ""
 
-#: common.opt:1656
+#: common.opt:1696
 msgid "Reschedule pipelined regions without pipelining"
 msgstr ""
 
-#: common.opt:1662
+#: common.opt:1702
 msgid "Allow premature scheduling of queued insns"
 msgstr ""
 
-#: common.opt:1666
+#: common.opt:1706
 msgid ""
 "-fsched-stalled-insns=<number>\tSet number of queued insns that can be "
 "prematurely scheduled"
 msgstr ""
 
-#: common.opt:1674
+#: common.opt:1714
 msgid ""
 "Set dependence distance checking in premature scheduling of queued insns"
 msgstr ""
 
-#: common.opt:1678
+#: common.opt:1718
 msgid ""
 "-fsched-stalled-insns-dep=<number>\tSet dependence distance checking in "
 "premature scheduling of queued insns"
 msgstr ""
 
-#: common.opt:1682
+#: common.opt:1722
 msgid "Enable the group heuristic in the scheduler"
 msgstr ""
 
-#: common.opt:1686
+#: common.opt:1726
 msgid "Enable the critical path heuristic in the scheduler"
 msgstr ""
 
-#: common.opt:1690
+#: common.opt:1730
 msgid "Enable the speculative instruction heuristic in the scheduler"
 msgstr ""
 
-#: common.opt:1694
+#: common.opt:1734
 msgid "Enable the rank heuristic in the scheduler"
 msgstr ""
 
-#: common.opt:1698
+#: common.opt:1738
 msgid "Enable the last instruction heuristic in the scheduler"
 msgstr ""
 
-#: common.opt:1702
+#: common.opt:1742
 msgid "Enable the dependent count heuristic in the scheduler"
 msgstr ""
 
-#: common.opt:1706
+#: common.opt:1746
 msgid "Access data in the same section from shared anchor points"
 msgstr ""
 
-#: common.opt:1714
+#: common.opt:1754
 msgid ""
 "Eliminate redundant zero extensions on targets that support implicit "
 "extensions."
 msgstr ""
 
-#: common.opt:1718
+#: common.opt:1758
 msgid "Show column numbers in diagnostics, when available.  Default on"
 msgstr ""
 
-#: common.opt:1722
+#: common.opt:1762
 msgid "Disable optimizations observable by IEEE signaling NaNs"
 msgstr ""
 
-#: common.opt:1726
+#: common.opt:1766
 msgid ""
 "Disable floating point optimizations that ignore the IEEE signedness of zero"
 msgstr ""
 
-#: common.opt:1730
+#: common.opt:1770
 msgid "Convert floating point constants to single precision constants"
 msgstr ""
 
-#: common.opt:1734
+#: common.opt:1774
 msgid "Split lifetimes of induction variables when loops are unrolled"
 msgstr ""
 
-#: common.opt:1738
+#: common.opt:1778
 msgid "Generate discontiguous stack frames"
 msgstr ""
 
-#: common.opt:1742
+#: common.opt:1782
 msgid "Split wide types into independent registers"
 msgstr ""
 
-#: common.opt:1746
+#: common.opt:1786
 msgid "Apply variable expansion when loops are unrolled"
 msgstr ""
 
-#: common.opt:1750
+#: common.opt:1790
 msgid ""
 "-fstack-check=[no|generic|specific]\tInsert stack checking code into the "
 "program"
 msgstr ""
 
-#: common.opt:1754
+#: common.opt:1794
 msgid ""
 "Insert stack checking code into the program.  Same as -fstack-check=specific"
 msgstr ""
 
-#: common.opt:1761
+#: common.opt:1801
 msgid ""
 "-fstack-limit-register=<register>\tTrap if the stack goes past <register>"
 msgstr ""
 
-#: common.opt:1765
+#: common.opt:1805
 msgid "-fstack-limit-symbol=<name>\tTrap if the stack goes past symbol <name>"
 msgstr ""
 
-#: common.opt:1769
+#: common.opt:1809
 msgid "Use propolice as a stack protection method"
 msgstr ""
 
-#: common.opt:1773
+#: common.opt:1813
 msgid "Use a stack protection method for every function"
 msgstr ""
 
-#: common.opt:1777
+#: common.opt:1817
 msgid "Output stack usage information on a per-function basis"
 msgstr ""
 
-#: common.opt:1789
+#: common.opt:1829
 msgid "Assume strict aliasing rules apply"
 msgstr ""
 
-#: common.opt:1793
+#: common.opt:1833
 msgid "Treat signed overflow as undefined"
 msgstr ""
 
-#: common.opt:1797
+#: common.opt:1837
 msgid "Check for syntax errors, then stop"
 msgstr ""
 
-#: common.opt:1801
+#: common.opt:1841
 msgid "Create data files needed by \"gcov\""
 msgstr ""
 
-#: common.opt:1805
+#: common.opt:1845
 msgid "Perform jump threading optimizations"
 msgstr ""
 
-#: common.opt:1809
+#: common.opt:1849
 msgid "Report the time taken by each compiler pass"
 msgstr ""
 
-#: common.opt:1813
+#: common.opt:1853
 msgid ""
 "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the "
 "default thread-local storage code generation model"
 msgstr ""
 
-#: common.opt:1816
+#: common.opt:1856
 #, c-format
 msgid "unknown TLS model %qs"
 msgstr ""
 
-#: common.opt:1832
+#: common.opt:1872
 msgid "Reorder top level functions, variables, and asms"
 msgstr ""
 
-#: common.opt:1836
+#: common.opt:1876
 msgid "Perform superblock formation via tail duplication"
 msgstr ""
 
-#: common.opt:1843
+#: common.opt:1883
 msgid "Assume floating-point operations can trap"
 msgstr ""
 
-#: common.opt:1847
+#: common.opt:1887
 msgid "Trap for signed overflow in addition, subtraction and multiplication"
 msgstr ""
 
-#: common.opt:1851
+#: common.opt:1891
 msgid "Enable SSA-CCP optimization on trees"
 msgstr ""
 
-#: common.opt:1855
+#: common.opt:1895
 msgid "Enable SSA-BIT-CCP optimization on trees"
 msgstr ""
 
-#: common.opt:1863
+#: common.opt:1903
 msgid "Enable loop header copying on trees"
 msgstr ""
 
-#: common.opt:1867
+#: common.opt:1907
 msgid "Replace SSA temporaries with better names in copies"
 msgstr ""
 
-#: common.opt:1871
+#: common.opt:1911
 msgid "Enable copy propagation on trees"
 msgstr ""
 
-#: common.opt:1879
+#: common.opt:1919
 msgid "Transform condition stores into unconditional ones"
 msgstr ""
 
-#: common.opt:1883
+#: common.opt:1923
 msgid "Perform conversions of switch initializations."
 msgstr ""
 
-#: common.opt:1887
+#: common.opt:1927
 msgid "Enable SSA dead code elimination optimization on trees"
 msgstr ""
 
-#: common.opt:1891
+#: common.opt:1931
 msgid "Enable dominator optimizations"
 msgstr ""
 
-#: common.opt:1895
+#: common.opt:1935
 msgid "Enable dead store elimination"
 msgstr ""
 
-#: common.opt:1899
+#: common.opt:1939
 msgid "Enable forward propagation on trees"
 msgstr ""
 
-#: common.opt:1903
+#: common.opt:1943
 msgid "Enable Full Redundancy Elimination (FRE) on trees"
 msgstr ""
 
-#: common.opt:1907
+#: common.opt:1947
 msgid "Enable loop distribution on trees"
 msgstr ""
 
-#: common.opt:1911
+#: common.opt:1951
 msgid "Enable loop distribution for patterns transformed into a library call"
 msgstr ""
 
-#: common.opt:1915
+#: common.opt:1955
 msgid "Enable loop invariant motion on trees"
 msgstr ""
 
-#: common.opt:1919
+#: common.opt:1959
 msgid "Enable loop interchange transforms.  Same as -floop-interchange"
 msgstr ""
 
-#: common.opt:1923
+#: common.opt:1963
 msgid "Create canonical induction variables in loops"
 msgstr ""
 
-#: common.opt:1927
+#: common.opt:1967
 msgid "Enable loop optimizations on tree level"
 msgstr ""
 
-#: common.opt:1931
+#: common.opt:1971
 msgid "Enable automatic parallelization of loops"
 msgstr ""
 
-#: common.opt:1935
+#: common.opt:1975
 msgid "Enable hoisting loads from conditional pointers."
 msgstr ""
 
-#: common.opt:1939
+#: common.opt:1979
 msgid "Enable SSA-PRE optimization on trees"
 msgstr ""
 
-#: common.opt:1943
+#: common.opt:1983
 msgid "Perform function-local points-to analysis on trees."
 msgstr ""
 
-#: common.opt:1947
+#: common.opt:1987
 msgid "Enable reassociation on tree level"
 msgstr ""
 
-#: common.opt:1955
+#: common.opt:1995
 msgid "Enable SSA code sinking on trees"
 msgstr ""
 
-#: common.opt:1959
+#: common.opt:1999
 msgid "Perform scalar replacement of aggregates"
 msgstr ""
 
-#: common.opt:1963
+#: common.opt:2003
 msgid "Replace temporary expressions in the SSA->normal pass"
 msgstr ""
 
-#: common.opt:1967
+#: common.opt:2007
 msgid "Perform live range splitting during the SSA->normal pass"
 msgstr ""
 
-#: common.opt:1971
+#: common.opt:2011
 msgid "Perform Value Range Propagation on trees"
 msgstr ""
 
-#: common.opt:1975
+#: common.opt:2015
 msgid "Compile whole compilation unit at a time"
 msgstr ""
 
-#: common.opt:1979
+#: common.opt:2019
 msgid "Perform loop unrolling when iteration count is known"
 msgstr ""
 
-#: common.opt:1983
+#: common.opt:2023
 msgid "Perform loop unrolling for all loops"
 msgstr ""
 
-#: common.opt:1990
+#: common.opt:2030
 msgid "Allow loop optimizations to assume that the loops behave in normal way"
 msgstr ""
 
-#: common.opt:1994
+#: common.opt:2034
 msgid "Allow optimization for floating-point arithmetic which may change the"
 msgstr ""
 
-#: common.opt:1999
+#: common.opt:2039
 msgid "Same as -fassociative-math for expressions which include division."
 msgstr ""
 
-#: common.opt:2007
+#: common.opt:2047
 msgid "Allow math optimizations that may violate IEEE or ISO standards"
 msgstr ""
 
-#: common.opt:2011
+#: common.opt:2051
 msgid "Perform loop unswitching"
 msgstr ""
 
-#: common.opt:2015
+#: common.opt:2055
 msgid "Just generate unwind tables for exception handling"
 msgstr ""
 
-#: common.opt:2027
+#: common.opt:2067
 msgid "Perform variable tracking"
 msgstr ""
 
-#: common.opt:2035
+#: common.opt:2075
 msgid "Perform variable tracking by annotating assignments"
 msgstr ""
 
-#: common.opt:2041
+#: common.opt:2081
 msgid "Toggle -fvar-tracking-assignments"
 msgstr ""
 
-#: common.opt:2045
+#: common.opt:2085
 msgid "Perform variable tracking and also tag variables that are uninitialized"
 msgstr ""
 
-#: common.opt:2049
+#: common.opt:2089
 msgid "Enable loop vectorization on trees"
 msgstr ""
 
-#: common.opt:2053
+#: common.opt:2093
 msgid "Enable basic block vectorization (SLP) on trees"
 msgstr ""
 
-#: common.opt:2057
+#: common.opt:2097
 msgid "Enable use of cost model in vectorization"
 msgstr ""
 
-#: common.opt:2061
+#: common.opt:2101
 msgid "Enable loop versioning when doing loop vectorization on trees"
 msgstr ""
 
-#: common.opt:2065
+#: common.opt:2105
 msgid ""
 "-ftree-vectorizer-verbose=<number>\tSet the verbosity level of the vectorizer"
 msgstr ""
 
-#: common.opt:2069
+#: common.opt:2109
 msgid "Enable copy propagation of scalar-evolution information."
 msgstr ""
 
-#: common.opt:2079
+#: common.opt:2119
 msgid "Add extra commentary to assembler output"
 msgstr ""
 
-#: common.opt:2083
+#: common.opt:2123
 msgid ""
 "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol "
 "visibility"
 msgstr ""
 
-#: common.opt:2086
+#: common.opt:2126
 #, c-format
 msgid "unrecognized visibility value %qs"
 msgstr ""
 
-#: common.opt:2102
+#: common.opt:2142
 msgid "Use expression value profiles in optimizations"
 msgstr ""
 
-#: common.opt:2106
+#: common.opt:2146
 msgid "Construct webs and split unrelated uses of single variable"
 msgstr ""
 
-#: common.opt:2110
+#: common.opt:2150
 msgid "Enable conditional dead code elimination for builtin calls"
 msgstr ""
 
-#: common.opt:2114
+#: common.opt:2154
 msgid "Perform whole program optimizations"
 msgstr ""
 
-#: common.opt:2118
+#: common.opt:2158
 msgid "Assume signed arithmetic overflow wraps around"
 msgstr ""
 
-#: common.opt:2122
+#: common.opt:2162
 msgid "Put zero initialized data in the bss section"
 msgstr ""
 
-#: common.opt:2126
+#: common.opt:2166
 msgid "Generate debug information in default format"
 msgstr ""
 
-#: common.opt:2130
+#: common.opt:2170
 msgid "Generate debug information in COFF format"
 msgstr ""
 
-#: common.opt:2134
+#: common.opt:2174
 msgid "Generate debug information in DWARF v2 (or later) format"
 msgstr ""
 
-#: common.opt:2138
+#: common.opt:2178
 msgid "Generate debug information in default extended format"
 msgstr ""
 
-#: common.opt:2142
+#: common.opt:2182
 msgid "Generate debug information in STABS format"
 msgstr ""
 
-#: common.opt:2146
+#: common.opt:2186
 msgid "Generate debug information in extended STABS format"
 msgstr ""
 
-#: common.opt:2150
+#: common.opt:2190
 msgid "Emit DWARF additions beyond selected version"
 msgstr ""
 
-#: common.opt:2154
+#: common.opt:2194
 msgid "Don't emit DWARF additions beyond selected version"
 msgstr ""
 
-#: common.opt:2158
+#: common.opt:2198
 msgid "Toggle debug information generation"
 msgstr ""
 
-#: common.opt:2162
+#: common.opt:2202
 msgid "Generate debug information in VMS format"
 msgstr ""
 
-#: common.opt:2166
+#: common.opt:2206
 msgid "Generate debug information in XCOFF format"
 msgstr ""
 
-#: common.opt:2170
+#: common.opt:2210
 msgid "Generate debug information in extended XCOFF format"
 msgstr ""
 
-#: common.opt:2177
+#: common.opt:2217
 msgid "-iplugindir=<dir>\tSet <dir> to be the default plugin directory"
 msgstr ""
 
-#: common.opt:2199
+#: common.opt:2239
 msgid "-o <file>\tPlace output into <file>"
 msgstr ""
 
-#: common.opt:2203
+#: common.opt:2243
 msgid "Enable function profiling"
 msgstr ""
 
-#: common.opt:2210
+#: common.opt:2250
 msgid "Issue warnings needed for strict compliance to the standard"
 msgstr ""
 
-#: common.opt:2214
+#: common.opt:2254
 msgid "Like -pedantic but issue them as errors"
 msgstr ""
 
-#: common.opt:2251
+#: common.opt:2291
 msgid "Do not display functions compiled or elapsed time"
 msgstr ""
 
-#: common.opt:2283
+#: common.opt:2323
 msgid "Enable verbose output"
 msgstr ""
 
-#: common.opt:2287
+#: common.opt:2327
 msgid "Display the compiler's version"
 msgstr ""
 
-#: common.opt:2291
+#: common.opt:2331
 msgid "Suppress warnings"
 msgstr ""
 
-#: common.opt:2301
+#: common.opt:2341
 msgid "Create a shared library"
 msgstr ""
 
-#: common.opt:2334
+#: common.opt:2374
 msgid "Create a position independent executable"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:882
+#: go/gofrontend/expressions.cc:887
 msgid "invalid use of type"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:1992 go/gofrontend/expressions.cc:2686
+#: go/gofrontend/expressions.cc:2040 go/gofrontend/expressions.cc:2728
 msgid "floating point constant truncated to integer"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:2566 go/gofrontend/expressions.cc:2636
-#: go/gofrontend/expressions.cc:2652
+#: go/gofrontend/expressions.cc:2608 go/gofrontend/expressions.cc:2678
+#: go/gofrontend/expressions.cc:2694
 msgid "constant refers to itself"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:4043
+#: go/gofrontend/expressions.cc:4214
 msgid "expected numeric type"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:4050
+#: go/gofrontend/expressions.cc:4221
 msgid "expected integer or boolean type"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:4055
+#: go/gofrontend/expressions.cc:4226
 msgid "invalid operand for unary %<&%>"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:4063
+#: go/gofrontend/expressions.cc:4234
 msgid "expected pointer"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:5456 go/gofrontend/expressions.cc:5707
-#: go/gofrontend/expressions.cc:5723
+#: go/gofrontend/expressions.cc:5627 go/gofrontend/expressions.cc:5878
+#: go/gofrontend/expressions.cc:5894
 msgid "incompatible types in binary expression"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:5736
+#: go/gofrontend/expressions.cc:5907
 msgid "shift of non-integer operand"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:5741
+#: go/gofrontend/expressions.cc:5912
 msgid "shift count not unsigned integer"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:5750
+#: go/gofrontend/expressions.cc:5922
 msgid "negative shift count"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:6433
+#: go/gofrontend/expressions.cc:6613
 msgid "object is not a method"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:6442
+#: go/gofrontend/expressions.cc:6622
 msgid "method type does not match object type"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:6690 go/gofrontend/expressions.cc:6709
-#: go/gofrontend/expressions.cc:7348 go/gofrontend/expressions.cc:7487
-#: go/gofrontend/expressions.cc:7530 go/gofrontend/expressions.cc:7568
-#: go/gofrontend/expressions.cc:8603 go/gofrontend/expressions.cc:8624
+#: go/gofrontend/expressions.cc:6874
+msgid "invalid use of %<...%> with builtin function"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:6882 go/gofrontend/expressions.cc:6993
+#: go/gofrontend/expressions.cc:7672 go/gofrontend/expressions.cc:7809
+#: go/gofrontend/expressions.cc:7852 go/gofrontend/expressions.cc:7890
+#: go/gofrontend/expressions.cc:8917 go/gofrontend/expressions.cc:8938
 msgid "not enough arguments"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:6692 go/gofrontend/expressions.cc:7353
-#: go/gofrontend/expressions.cc:7470 go/gofrontend/expressions.cc:7492
-#: go/gofrontend/expressions.cc:7535 go/gofrontend/expressions.cc:7570
-#: go/gofrontend/expressions.cc:8357 go/gofrontend/expressions.cc:8606
-#: go/gofrontend/expressions.cc:8617
+#: go/gofrontend/expressions.cc:6884 go/gofrontend/expressions.cc:7677
+#: go/gofrontend/expressions.cc:7792 go/gofrontend/expressions.cc:7814
+#: go/gofrontend/expressions.cc:7857 go/gofrontend/expressions.cc:7892
+#: go/gofrontend/expressions.cc:8670 go/gofrontend/expressions.cc:8920
+#: go/gofrontend/expressions.cc:8931
 msgid "too many arguments"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:7395
-msgid "argument must be array or slice or channel"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:7405
-msgid "argument must be string or array or slice or map or channel"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:7446
-msgid "unsupported argument type to builtin function"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:7458
-msgid "argument must be channel"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:7478
-msgid "argument must be a field reference"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:7505
-msgid "left argument must be a slice"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:7516
-msgid "right argument must be a slice or a string"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:7521
-msgid "element types must be the same"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:7543
-msgid "arguments 1 and 2 have different types"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:7560
-msgid "argument must have complex type"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:7578
-msgid "complex arguments must have identical types"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:7580
-msgid "complex arguments must have floating-point type"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:8560
-msgid "expected function"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:8571
-msgid "method call without object"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:8584
-msgid "incompatible type for receiver"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:8982 go/gofrontend/expressions.cc:8995
-msgid "number of results does not match number of values"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:9246 go/gofrontend/expressions.cc:9625
-msgid "index must be integer"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:9250 go/gofrontend/expressions.cc:9629
-msgid "slice end must be integer"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:9305
-msgid "array is not addressable"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:9844
-msgid "incompatible type for map index"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:10163
-msgid "expected interface or pointer to interface"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:10468
-msgid "invalid new of function type"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:10573
+#: go/gofrontend/expressions.cc:7019
 msgid "invalid type for make function"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:10732
+#: go/gofrontend/expressions.cc:7029
+msgid "length required when allocating a slice"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7043
+msgid "bad size for make"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7055
+msgid "bad capacity when making slice"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7063
+msgid "too many arguments to make"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7718
+msgid "argument must be array or slice or channel"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7728
+msgid "argument must be string or array or slice or map or channel"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7769
+msgid "unsupported argument type to builtin function"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7780
+msgid "argument must be channel"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7800
+msgid "argument must be a field reference"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7827
+msgid "left argument must be a slice"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7838
+msgid "right argument must be a slice or a string"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7843
+msgid "element types must be the same"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7865
+msgid "arguments 1 and 2 have different types"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7882
+msgid "argument must have complex type"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7900
+msgid "complex arguments must have identical types"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7902
+msgid "complex arguments must have floating-point type"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:8873
+msgid "expected function"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:8884
+msgid "method call without object"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:8898
+msgid "incompatible type for receiver"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:9297 go/gofrontend/expressions.cc:9310
+msgid "number of results does not match number of values"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:9561 go/gofrontend/expressions.cc:9946
+msgid "index must be integer"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:9565 go/gofrontend/expressions.cc:9950
+msgid "slice end must be integer"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:9620
+msgid "array is not addressable"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:10165
+msgid "incompatible type for map index"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:10489
+msgid "expected interface or pointer to interface"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:10968
 msgid "too many expressions for struct"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:10745
+#: go/gofrontend/expressions.cc:10981
 msgid "too few expressions for struct"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:11009
+#: go/gofrontend/expressions.cc:11250
 msgid "too many elements in composite literal"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:12139 go/gofrontend/expressions.cc:12147
+#: go/gofrontend/expressions.cc:12389 go/gofrontend/expressions.cc:12397
 msgid "invalid unsafe.Pointer conversion"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:12152 go/gofrontend/statements.cc:1353
+#: go/gofrontend/expressions.cc:12402 go/gofrontend/statements.cc:1267
 msgid "type assertion only valid for interface types"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:12164
+#: go/gofrontend/expressions.cc:12414
 msgid "impossible type assertion: type does not implement interface"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:12320 go/gofrontend/statements.cc:1203
+#: go/gofrontend/expressions.cc:12572 go/gofrontend/statements.cc:1135
 msgid "expected channel"
 msgstr ""
 
-#: go/gofrontend/expressions.cc:12325 go/gofrontend/statements.cc:1208
+#: go/gofrontend/expressions.cc:12577 go/gofrontend/statements.cc:1140
 msgid "invalid receive on send-only channel"
 msgstr ""
 
-#: go/gofrontend/statements.cc:521
+#: go/gofrontend/statements.cc:497
 msgid "invalid left hand side of assignment"
 msgstr ""
 
-#: go/gofrontend/statements.cc:932
+#: go/gofrontend/statements.cc:892
 msgid "expected map index on right hand side"
 msgstr ""
 
-#: go/gofrontend/statements.cc:1078
+#: go/gofrontend/statements.cc:1018
 msgid "expected map index on left hand side"
 msgstr ""
 
-#: go/gofrontend/statements.cc:1814
+#: go/gofrontend/statements.cc:1680
 msgid "no object for method call"
 msgstr ""
 
-#: go/gofrontend/statements.cc:2584
+#: go/gofrontend/statements.cc:2287 go/gofrontend/statements.cc:2316
+msgid "not enough arguments to return"
+msgstr ""
+
+#: go/gofrontend/statements.cc:2295
 msgid "return with value in function with no return type"
 msgstr ""
 
-#: go/gofrontend/statements.cc:2597
+#: go/gofrontend/statements.cc:2322
 msgid "too many values in return statement"
 msgstr ""
 
-#: go/gofrontend/statements.cc:2626
-msgid "not enough values in return statement"
-msgstr ""
-
-#: go/gofrontend/statements.cc:2993
+#: go/gofrontend/statements.cc:2698
 msgid "expected boolean expression"
 msgstr ""
 
-#: go/gofrontend/statements.cc:4027
+#: go/gofrontend/statements.cc:3713
 msgid "incompatible types in send"
 msgstr ""
 
-#: go/gofrontend/statements.cc:4032
+#: go/gofrontend/statements.cc:3718
 msgid "invalid send on receive-only channel"
 msgstr ""
 
-#: go/gofrontend/statements.cc:4723
+#: go/gofrontend/statements.cc:4531
 msgid "too many variables for range clause with channel"
 msgstr ""
 
-#: go/gofrontend/statements.cc:4730
-msgid "range clause must have array, slice, setring, map, or channel type"
+#: go/gofrontend/statements.cc:4538
+msgid "range clause must have array, slice, string, map, or channel type"
 msgstr ""
 
-#: go/gofrontend/types.cc:575
+#: go/gofrontend/types.cc:580
 msgid "need explicit conversion"
 msgstr ""
 
-#: go/gofrontend/types.cc:577
+#: go/gofrontend/types.cc:582
 msgid "multiple value function call in single value context"
 msgstr ""
 
-#: go/gofrontend/types.cc:585
+#: go/gofrontend/types.cc:590
 #, c-format
 msgid "cannot use type %s as type %s"
 msgstr ""
 
-#: go/gofrontend/types.cc:2491
+#: go/gofrontend/types.cc:2486
 msgid "different receiver types"
 msgstr ""
 
-#: go/gofrontend/types.cc:2511 go/gofrontend/types.cc:2524
-#: go/gofrontend/types.cc:2539
+#: go/gofrontend/types.cc:2506 go/gofrontend/types.cc:2519
+#: go/gofrontend/types.cc:2534
 msgid "different number of parameters"
 msgstr ""
 
-#: go/gofrontend/types.cc:2532
+#: go/gofrontend/types.cc:2527
 msgid "different parameter types"
 msgstr ""
 
-#: go/gofrontend/types.cc:2547
+#: go/gofrontend/types.cc:2542
 msgid "different varargs"
 msgstr ""
 
-#: go/gofrontend/types.cc:2556 go/gofrontend/types.cc:2569
-#: go/gofrontend/types.cc:2584
+#: go/gofrontend/types.cc:2551 go/gofrontend/types.cc:2564
+#: go/gofrontend/types.cc:2579
 msgid "different number of results"
 msgstr ""
 
-#: go/gofrontend/types.cc:2577
+#: go/gofrontend/types.cc:2572
 msgid "different result types"
 msgstr ""
 
-#: go/gofrontend/types.cc:3558
+#: go/gofrontend/types.cc:3524
 #, c-format
 msgid "implicit assignment of %s%s%s hidden field %s%s%s"
 msgstr ""
 
-#: go/gofrontend/types.cc:4398
-msgid "bad length when making slice"
-msgstr ""
-
-#: go/gofrontend/types.cc:4404
-msgid "bad capacity when making slice"
-msgstr ""
-
-#: go/gofrontend/types.cc:5102
-msgid "bad size when making map"
-msgstr ""
-
-#: go/gofrontend/types.cc:5387
-msgid "bad buffer size when making channel"
-msgstr ""
-
-#: go/gofrontend/types.cc:5882
+#: go/gofrontend/types.cc:5450
 #, c-format
 msgid "need explicit conversion; missing method %s%s%s"
 msgstr ""
 
-#: go/gofrontend/types.cc:5899 go/gofrontend/types.cc:6034
+#: go/gofrontend/types.cc:5467 go/gofrontend/types.cc:5602
 #, c-format
 msgid "incompatible type for method %s%s%s"
 msgstr ""
 
-#: go/gofrontend/types.cc:5903 go/gofrontend/types.cc:6038
+#: go/gofrontend/types.cc:5471 go/gofrontend/types.cc:5606
 #, c-format
 msgid "incompatible type for method %s%s%s (%s)"
 msgstr ""
 
-#: go/gofrontend/types.cc:5975 go/gofrontend/types.cc:5988
+#: go/gofrontend/types.cc:5543 go/gofrontend/types.cc:5556
 msgid "pointer to interface type has no methods"
 msgstr ""
 
-#: go/gofrontend/types.cc:5977 go/gofrontend/types.cc:5990
+#: go/gofrontend/types.cc:5545 go/gofrontend/types.cc:5558
 msgid "type has no methods"
 msgstr ""
 
-#: go/gofrontend/types.cc:6011
+#: go/gofrontend/types.cc:5579
 #, c-format
 msgid "ambiguous method %s%s%s"
 msgstr ""
 
-#: go/gofrontend/types.cc:6014
+#: go/gofrontend/types.cc:5582
 #, c-format
 msgid "missing method %s%s%s"
 msgstr ""
 
-#: go/gofrontend/types.cc:6054
+#: go/gofrontend/types.cc:5622
 #, c-format
 msgid "method %s%s%s requires a pointer"
 msgstr ""
 
 #. Warn about and ignore all others for now, but store them.
-#: attribs.c:306 objc/objc-act.c:4799 objc/objc-act.c:6692
-#: objc/objc-act.c:7878 objc/objc-act.c:7933
+#: attribs.c:306 objc/objc-act.c:5088 objc/objc-act.c:7156
+#: objc/objc-act.c:8343 objc/objc-act.c:8394
 #, gcc-internal-format
 msgid "%qE attribute directive ignored"
 msgstr ""
@@ -11814,141 +11929,141 @@
 msgid "multiple hot/cold transitions found (bb %i)"
 msgstr ""
 
-#: bt-load.c:1547
+#: bt-load.c:1546
 #, gcc-internal-format
 msgid ""
 "branch target register load optimization is not intended to be run twice"
 msgstr ""
 
-#: builtins.c:552
+#: builtins.c:565
 #, gcc-internal-format
 msgid "offset outside bounds of constant string"
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1106
 #, gcc-internal-format
 msgid "second argument to %<__builtin_prefetch%> must be a constant"
 msgstr ""
 
-#: builtins.c:1124
+#: builtins.c:1113
 #, gcc-internal-format
 msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
 msgstr ""
 
-#: builtins.c:1132
+#: builtins.c:1121
 #, gcc-internal-format
 msgid "third argument to %<__builtin_prefetch%> must be a constant"
 msgstr ""
 
-#: builtins.c:1139
+#: builtins.c:1128
 #, gcc-internal-format
 msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
 msgstr ""
 
-#: builtins.c:4626 gimplify.c:2339
+#: builtins.c:4157 gimplify.c:2338
 #, gcc-internal-format
 msgid "too few arguments to function %<va_start%>"
 msgstr ""
 
-#: builtins.c:4788
+#: builtins.c:4319
 #, gcc-internal-format
 msgid "first argument to %<va_arg%> not of type %<va_list%>"
 msgstr ""
 
-#: builtins.c:4804
+#: builtins.c:4335
 #, gcc-internal-format
 msgid "%qT is promoted to %qT when passed through %<...%>"
 msgstr ""
 
-#: builtins.c:4809
+#: builtins.c:4340
 #, 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:4816 c-typeck.c:2775
+#: builtins.c:4347 c-typeck.c:2771
 #, gcc-internal-format
 msgid "if this code is reached, the program will abort"
 msgstr ""
 
-#: builtins.c:4943
+#: builtins.c:4474
 #, gcc-internal-format
 msgid "invalid argument to %<__builtin_frame_address%>"
 msgstr ""
 
-#: builtins.c:4945
+#: builtins.c:4476
 #, gcc-internal-format
 msgid "invalid argument to %<__builtin_return_address%>"
 msgstr ""
 
-#: builtins.c:4958
+#: builtins.c:4489
 #, gcc-internal-format
 msgid "unsupported argument to %<__builtin_frame_address%>"
 msgstr ""
 
-#: builtins.c:4960
+#: builtins.c:4491
 #, gcc-internal-format
 msgid "unsupported argument to %<__builtin_return_address%>"
 msgstr ""
 
-#: builtins.c:5194
+#: builtins.c:4725
 #, gcc-internal-format
 msgid "both arguments to %<__builtin___clear_cache%> must be pointers"
 msgstr ""
 
-#: builtins.c:5289
+#: builtins.c:4820
 #, gcc-internal-format
 msgid "trampoline generated for nested function %qD"
 msgstr ""
 
-#: builtins.c:5566 builtins.c:5580
+#: builtins.c:5096 builtins.c:5110
 #, 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:5970 expr.c:9301
+#: builtins.c:5495 expr.c:9326
 #, gcc-internal-format
 msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>"
 msgstr ""
 
 #. All valid uses of __builtin_va_arg_pack_len () are removed during
 #. inlining.
-#: builtins.c:5976
+#: builtins.c:5501
 #, gcc-internal-format
 msgid "%Kinvalid use of %<__builtin_va_arg_pack_len ()%>"
 msgstr ""
 
-#: builtins.c:6206
+#: builtins.c:5731
 #, gcc-internal-format
 msgid "%<__builtin_longjmp%> second argument must be 1"
 msgstr ""
 
-#: builtins.c:6801
+#: builtins.c:6326
 #, gcc-internal-format
 msgid "target format does not support infinity"
 msgstr ""
 
-#: builtins.c:11711
+#: builtins.c:11235
 #, gcc-internal-format
 msgid "%<va_start%> used in function with fixed args"
 msgstr ""
 
-#: builtins.c:11719
+#: builtins.c:11243
 #, 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:11732
+#: builtins.c:11256
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr ""
 
-#: builtins.c:11737
+#: builtins.c:11261
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr ""
@@ -11958,44 +12073,44 @@
 #. 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:11767
+#: builtins.c:11291
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr ""
 
-#: builtins.c:11777
+#: builtins.c:11301
 #, gcc-internal-format
 msgid ""
 "undefined behaviour when second parameter of %<va_start%> is declared with "
 "%<register%> storage"
 msgstr ""
 
-#: builtins.c:12013
+#: builtins.c:11537
 #, gcc-internal-format
 msgid "%Kfirst argument of %D must be a pointer, second integer constant"
 msgstr ""
 
-#: builtins.c:12026
+#: builtins.c:11550
 #, gcc-internal-format
 msgid "%Klast argument of %D is not integer constant between 0 and 3"
 msgstr ""
 
-#: builtins.c:12071 builtins.c:12223 builtins.c:12280
+#: builtins.c:11595 builtins.c:11747 builtins.c:11804
 #, gcc-internal-format
 msgid "%Kcall to %D will always overflow destination buffer"
 msgstr ""
 
-#: builtins.c:12213
+#: builtins.c:11737
 #, gcc-internal-format
 msgid "%Kcall to %D might overflow destination buffer"
 msgstr ""
 
-#: builtins.c:12301
+#: builtins.c:11825
 #, gcc-internal-format
 msgid "%Kattempt to free a non-heap object %qD"
 msgstr ""
 
-#: builtins.c:12304
+#: builtins.c:11828
 #, gcc-internal-format
 msgid "%Kattempt to free a non-heap object"
 msgstr ""
@@ -12005,8 +12120,8 @@
 #. an unprototyped function, it is compile-time undefined;
 #. making it a constraint in that case was rejected in
 #. DR#252.
-#: c-convert.c:101 c-typeck.c:1976 c-typeck.c:5224 c-typeck.c:10274
-#: cp/typeck.c:1829 cp/typeck.c:6524 cp/typeck.c:7203 fortran/convert.c:88
+#: c-convert.c:101 c-typeck.c:1972 c-typeck.c:5211 c-typeck.c:10283
+#: cp/typeck.c:1840 cp/typeck.c:6572 cp/typeck.c:7251 fortran/convert.c:88
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr ""
@@ -12016,131 +12131,131 @@
 msgid "conversion to non-scalar type requested"
 msgstr ""
 
-#: c-decl.c:720
+#: c-decl.c:718
 #, gcc-internal-format
 msgid "array %q+D assumed to have one element"
 msgstr ""
 
-#: c-decl.c:761
+#: c-decl.c:759
 #, gcc-internal-format
 msgid "%qD is static but used in inline function %qD which is not static"
 msgstr ""
 
-#: c-decl.c:766
+#: c-decl.c:764
 #, gcc-internal-format
 msgid "%q+D is static but declared in inline function %qD which is not static"
 msgstr ""
 
-#: c-decl.c:953
+#: c-decl.c:949
 #, gcc-internal-format, gfc-internal-format
 msgid "GCC supports only %u nested scopes"
 msgstr ""
 
-#: c-decl.c:1105 cp/decl.c:372
+#: c-decl.c:1101 cp/decl.c:373
 #, gcc-internal-format
 msgid "label %q+D used but not defined"
 msgstr ""
 
-#: c-decl.c:1150
+#: c-decl.c:1146
 #, gcc-internal-format
 msgid "nested function %q+D declared but never defined"
 msgstr ""
 
-#: c-decl.c:1162
+#: c-decl.c:1158
 #, gcc-internal-format
 msgid "inline function %q+D declared but never defined"
 msgstr ""
 
-#: c-decl.c:1179 cp/decl.c:627
+#: c-decl.c:1175 cp/decl.c:628
 #, gcc-internal-format
 msgid "unused variable %q+D"
 msgstr ""
 
-#: c-decl.c:1183
+#: c-decl.c:1179
 #, gcc-internal-format
 msgid "variable %qD set but not used"
 msgstr ""
 
-#: c-decl.c:1188
+#: c-decl.c:1184
 #, gcc-internal-format
 msgid "type of array %q+D completed incompatibly with implicit initialization"
 msgstr ""
 
-#: c-decl.c:1467 c-decl.c:5788 c-decl.c:6585 c-decl.c:7293
+#: c-decl.c:1463 c-decl.c:5751 c-decl.c:6551 c-decl.c:7263
 #, gcc-internal-format
 msgid "originally defined here"
 msgstr ""
 
-#: c-decl.c:1537
+#: c-decl.c:1533
 #, gcc-internal-format
 msgid ""
 "a parameter list with an ellipsis can%'t match an empty parameter name list "
 "declaration"
 msgstr ""
 
-#: c-decl.c:1544
+#: c-decl.c:1540
 #, gcc-internal-format
 msgid ""
 "an argument type that has a default promotion can%'t match an empty "
 "parameter name list declaration"
 msgstr ""
 
-#: c-decl.c:1585
+#: c-decl.c:1581
 #, gcc-internal-format
 msgid ""
 "prototype for %q+D declares more arguments than previous old-style definition"
 msgstr ""
 
-#: c-decl.c:1591
+#: c-decl.c:1587
 #, gcc-internal-format
 msgid ""
 "prototype for %q+D declares fewer arguments than previous old-style "
 "definition"
 msgstr ""
 
-#: c-decl.c:1600
+#: c-decl.c:1596
 #, gcc-internal-format
 msgid "prototype for %q+D declares argument %d with incompatible type"
 msgstr ""
 
 #. If we get here, no errors were found, but do issue a warning
 #. for this poor-style construct.
-#: c-decl.c:1613
+#: c-decl.c:1609
 #, gcc-internal-format
 msgid "prototype for %q+D follows non-prototype definition"
 msgstr ""
 
-#: c-decl.c:1628
+#: c-decl.c:1624
 #, gcc-internal-format
 msgid "previous definition of %q+D was here"
 msgstr ""
 
-#: c-decl.c:1630
+#: c-decl.c:1626
 #, gcc-internal-format
 msgid "previous implicit declaration of %q+D was here"
 msgstr ""
 
-#: c-decl.c:1632
+#: c-decl.c:1628
 #, gcc-internal-format
 msgid "previous declaration of %q+D was here"
 msgstr ""
 
-#: c-decl.c:1672
+#: c-decl.c:1668
 #, gcc-internal-format
 msgid "%q+D redeclared as different kind of symbol"
 msgstr ""
 
-#: c-decl.c:1676
+#: c-decl.c:1672
 #, gcc-internal-format
 msgid "built-in function %q+D declared as non-function"
 msgstr ""
 
-#: c-decl.c:1679 c-decl.c:1852 c-decl.c:2542
+#: c-decl.c:1675 c-decl.c:1848 c-decl.c:2538
 #, gcc-internal-format
 msgid "declaration of %q+D shadows a built-in function"
 msgstr ""
 
-#: c-decl.c:1688
+#: c-decl.c:1684
 #, gcc-internal-format
 msgid "redeclaration of enumerator %q+D"
 msgstr ""
@@ -12148,323 +12263,323 @@
 #. If types don't match for a built-in, throw away the
 #. built-in.  No point in calling locate_old_decl here, it
 #. won't print anything.
-#: c-decl.c:1709
+#: c-decl.c:1705
 #, gcc-internal-format
 msgid "conflicting types for built-in function %q+D"
 msgstr ""
 
-#: c-decl.c:1734 c-decl.c:1747 c-decl.c:1783
+#: c-decl.c:1730 c-decl.c:1743 c-decl.c:1779
 #, gcc-internal-format
 msgid "conflicting types for %q+D"
 msgstr ""
 
-#: c-decl.c:1763
+#: c-decl.c:1759
 #, gcc-internal-format
 msgid "conflicting named address spaces (generic vs %s) for %q+D"
 msgstr ""
 
-#: c-decl.c:1767
+#: c-decl.c:1763
 #, gcc-internal-format
 msgid "conflicting named address spaces (%s vs generic) for %q+D"
 msgstr ""
 
-#: c-decl.c:1771
+#: c-decl.c:1767
 #, gcc-internal-format
 msgid "conflicting named address spaces (%s vs %s) for %q+D"
 msgstr ""
 
-#: c-decl.c:1780
+#: c-decl.c:1776
 #, gcc-internal-format
 msgid "conflicting type qualifiers for %q+D"
 msgstr ""
 
-#: c-decl.c:1805
+#: c-decl.c:1801
 #, gcc-internal-format
 msgid "redefinition of typedef %q+D with different type"
 msgstr ""
 
-#: c-decl.c:1818
+#: c-decl.c:1814
 #, gcc-internal-format
 msgid "redefinition of typedef %q+D with variably modified type"
 msgstr ""
 
-#: c-decl.c:1825
+#: c-decl.c:1821
 #, gcc-internal-format
 msgid "redefinition of typedef %q+D"
 msgstr ""
 
-#: c-decl.c:1878 c-decl.c:1981
+#: c-decl.c:1874 c-decl.c:1977
 #, gcc-internal-format
 msgid "redefinition of %q+D"
 msgstr ""
 
-#: c-decl.c:1913 c-decl.c:2019
+#: c-decl.c:1909 c-decl.c:2015
 #, gcc-internal-format
 msgid "static declaration of %q+D follows non-static declaration"
 msgstr ""
 
-#: c-decl.c:1923 c-decl.c:1931 c-decl.c:2009 c-decl.c:2016
+#: c-decl.c:1919 c-decl.c:1927 c-decl.c:2005 c-decl.c:2012
 #, gcc-internal-format
 msgid "non-static declaration of %q+D follows static declaration"
 msgstr ""
 
-#: c-decl.c:1947
+#: c-decl.c:1943
 #, gcc-internal-format
 msgid "%<gnu_inline%> attribute present on %q+D"
 msgstr ""
 
-#: c-decl.c:1950
+#: c-decl.c:1946
 #, gcc-internal-format
 msgid "but not here"
 msgstr ""
 
-#: c-decl.c:1968
+#: c-decl.c:1964
 #, gcc-internal-format
 msgid "thread-local declaration of %q+D follows non-thread-local declaration"
 msgstr ""
 
-#: c-decl.c:1971
+#: c-decl.c:1967
 #, gcc-internal-format
 msgid "non-thread-local declaration of %q+D follows thread-local declaration"
 msgstr ""
 
-#: c-decl.c:2001
+#: c-decl.c:1997
 #, gcc-internal-format
 msgid "extern declaration of %q+D follows declaration with no linkage"
 msgstr ""
 
-#: c-decl.c:2037
+#: c-decl.c:2033
 #, gcc-internal-format
 msgid "declaration of %q+D with no linkage follows extern declaration"
 msgstr ""
 
-#: c-decl.c:2043
+#: c-decl.c:2039
 #, gcc-internal-format
 msgid "redeclaration of %q+D with no linkage"
 msgstr ""
 
-#: c-decl.c:2069
+#: c-decl.c:2065
 #, gcc-internal-format
 msgid ""
 "redeclaration of %q+D with different visibility (old visibility preserved)"
 msgstr ""
 
-#: c-decl.c:2080
+#: c-decl.c:2076
 #, gcc-internal-format
 msgid "inline declaration of %qD follows declaration with attribute noinline"
 msgstr ""
 
-#: c-decl.c:2087
+#: c-decl.c:2083
 #, gcc-internal-format
 msgid "declaration of %q+D with attribute noinline follows inline declaration "
 msgstr ""
 
-#: c-decl.c:2105
+#: c-decl.c:2101
 #, gcc-internal-format
 msgid "redefinition of parameter %q+D"
 msgstr ""
 
-#: c-decl.c:2132
+#: c-decl.c:2128
 #, gcc-internal-format
 msgid "redundant redeclaration of %q+D"
 msgstr ""
 
-#: c-decl.c:2529
+#: c-decl.c:2525
 #, gcc-internal-format
 msgid "declaration of %q+D shadows previous non-variable"
 msgstr ""
 
-#: c-decl.c:2534
+#: c-decl.c:2530
 #, gcc-internal-format
 msgid "declaration of %q+D shadows a parameter"
 msgstr ""
 
-#: c-decl.c:2537
+#: c-decl.c:2533
 #, gcc-internal-format
 msgid "declaration of %q+D shadows a global declaration"
 msgstr ""
 
-#: c-decl.c:2547
+#: c-decl.c:2543
 #, gcc-internal-format
 msgid "declaration of %q+D shadows a previous local"
 msgstr ""
 
-#: c-decl.c:2551 cp/name-lookup.c:1089 cp/name-lookup.c:1131
+#: c-decl.c:2547 cp/name-lookup.c:1101 cp/name-lookup.c:1143
 #, gcc-internal-format
 msgid "shadowed declaration is here"
 msgstr ""
 
-#: c-decl.c:2678
+#: c-decl.c:2674
 #, gcc-internal-format
 msgid "nested extern declaration of %qD"
 msgstr ""
 
-#: c-decl.c:2846 c-decl.c:2849
+#: c-decl.c:2842 c-decl.c:2845
 #, gcc-internal-format
 msgid "implicit declaration of function %qE"
 msgstr ""
 
-#: c-decl.c:2912
+#: c-decl.c:2908
 #, gcc-internal-format
 msgid "incompatible implicit declaration of built-in function %qD"
 msgstr ""
 
-#: c-decl.c:2921
+#: c-decl.c:2917
 #, gcc-internal-format
 msgid "incompatible implicit declaration of function %qD"
 msgstr ""
 
-#: c-decl.c:2974
+#: c-decl.c:2970
 #, gcc-internal-format
 msgid "%qE undeclared here (not in a function)"
 msgstr ""
 
-#: c-decl.c:2980
+#: c-decl.c:2976
 #, gcc-internal-format
 msgid "%qE undeclared (first use in this function)"
 msgstr ""
 
-#: c-decl.c:2983
+#: c-decl.c:2979
 #, gcc-internal-format
 msgid ""
 "each undeclared identifier is reported only once for each function it "
 "appears in"
 msgstr ""
 
-#: c-decl.c:3033 cp/decl.c:2534
+#: c-decl.c:3029 cp/decl.c:2552
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr ""
 
-#: c-decl.c:3069
+#: c-decl.c:3065
 #, gcc-internal-format
 msgid "jump into scope of identifier with variably modified type"
 msgstr ""
 
-#: c-decl.c:3072
+#: c-decl.c:3068
 #, gcc-internal-format
 msgid "jump skips variable initialization"
 msgstr ""
 
-#: c-decl.c:3073 c-decl.c:3129 c-decl.c:3218
+#: c-decl.c:3069 c-decl.c:3125 c-decl.c:3214
 #, gcc-internal-format
 msgid "label %qD defined here"
 msgstr ""
 
-#: c-decl.c:3074 c-decl.c:3346
+#: c-decl.c:3070 c-decl.c:3342
 #, gcc-internal-format
 msgid "%qD declared here"
 msgstr ""
 
-#: c-decl.c:3128 c-decl.c:3217
+#: c-decl.c:3124 c-decl.c:3213
 #, gcc-internal-format
 msgid "jump into statement expression"
 msgstr ""
 
-#: c-decl.c:3150
+#: c-decl.c:3146
 #, gcc-internal-format
 msgid "duplicate label declaration %qE"
 msgstr ""
 
-#: c-decl.c:3248 cp/decl.c:2844
+#: c-decl.c:3244 cp/decl.c:2874
 #, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr ""
 
-#: c-decl.c:3279
+#: c-decl.c:3275
 #, gcc-internal-format
 msgid ""
 "traditional C lacks a separate namespace for labels, identifier %qE conflicts"
 msgstr ""
 
-#: c-decl.c:3344
+#: c-decl.c:3340
 #, gcc-internal-format
 msgid "switch jumps over variable initialization"
 msgstr ""
 
-#: c-decl.c:3345 c-decl.c:3356
+#: c-decl.c:3341 c-decl.c:3352
 #, gcc-internal-format
 msgid "switch starts here"
 msgstr ""
 
-#: c-decl.c:3355
+#: c-decl.c:3351
 #, gcc-internal-format
 msgid "switch jumps into statement expression"
 msgstr ""
 
-#: c-decl.c:3426
+#: c-decl.c:3422
 #, gcc-internal-format
 msgid "%qE defined as wrong kind of tag"
 msgstr ""
 
-#: c-decl.c:3648 c-typeck.c:10675 c-family/c-common.c:4041
+#: c-decl.c:3644 c-typeck.c:10684 c-family/c-common.c:4084
 #, gcc-internal-format
 msgid "invalid use of %<restrict%>"
 msgstr ""
 
-#: c-decl.c:3658
+#: c-decl.c:3654
 #, gcc-internal-format
 msgid "unnamed struct/union that defines no instances"
 msgstr ""
 
-#: c-decl.c:3668
+#: c-decl.c:3664
 #, gcc-internal-format
 msgid "empty declaration with storage class specifier does not redeclare tag"
 msgstr ""
 
-#: c-decl.c:3682
+#: c-decl.c:3678
 #, gcc-internal-format
 msgid "empty declaration with type qualifier does not redeclare tag"
 msgstr ""
 
-#: c-decl.c:3704 c-decl.c:3711
+#: c-decl.c:3700 c-decl.c:3707
 #, gcc-internal-format
 msgid "useless type name in empty declaration"
 msgstr ""
 
-#: c-decl.c:3719
+#: c-decl.c:3715
 #, gcc-internal-format
 msgid "%<inline%> in empty declaration"
 msgstr ""
 
-#: c-decl.c:3725
+#: c-decl.c:3721
 #, gcc-internal-format
 msgid "%<auto%> in file-scope empty declaration"
 msgstr ""
 
-#: c-decl.c:3731
+#: c-decl.c:3727
 #, gcc-internal-format
 msgid "%<register%> in file-scope empty declaration"
 msgstr ""
 
-#: c-decl.c:3737
+#: c-decl.c:3733
 #, gcc-internal-format
 msgid "useless storage class specifier in empty declaration"
 msgstr ""
 
-#: c-decl.c:3743
+#: c-decl.c:3739
 #, gcc-internal-format
 msgid "useless %<__thread%> in empty declaration"
 msgstr ""
 
-#: c-decl.c:3752
+#: c-decl.c:3748
 #, gcc-internal-format
 msgid "useless type qualifier in empty declaration"
 msgstr ""
 
-#: c-decl.c:3759 c-parser.c:1470
+#: c-decl.c:3755 c-parser.c:1470
 #, gcc-internal-format
 msgid "empty declaration"
 msgstr ""
 
-#: c-decl.c:3830
+#: c-decl.c:3826
 #, gcc-internal-format
 msgid ""
 "ISO C90 does not support %<static%> or type qualifiers in parameter array "
 "declarators"
 msgstr ""
 
-#: c-decl.c:3834
+#: c-decl.c:3830
 #, gcc-internal-format
 msgid "ISO C90 does not support %<[*]%> array declarators"
 msgstr ""
@@ -12472,28 +12587,28 @@
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c-decl.c:3841 c-decl.c:6156
+#: c-decl.c:3837 c-decl.c:6119
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr ""
 
-#: c-decl.c:3954
+#: c-decl.c:3950
 #, gcc-internal-format
 msgid "%q+D is usually a function"
 msgstr ""
 
-#: c-decl.c:3963
+#: c-decl.c:3959
 #, gcc-internal-format
 msgid "typedef %qD is initialized (use __typeof__ instead)"
 msgstr ""
 
-#: c-decl.c:3968
+#: c-decl.c:3964
 #, gcc-internal-format
 msgid "function %qD is initialized like a variable"
 msgstr ""
 
 #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:3974
+#: c-decl.c:3970
 #, gcc-internal-format
 msgid "parameter %qD is initialized"
 msgstr ""
@@ -12502,272 +12617,272 @@
 #. 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-decl.c:3993 c-decl.c:4008 c-typeck.c:6281
+#: c-decl.c:3989 c-decl.c:4004 c-typeck.c:6270
 #, gcc-internal-format
 msgid "variable-sized object may not be initialized"
 msgstr ""
 
-#: c-decl.c:3999
+#: c-decl.c:3995
 #, gcc-internal-format
 msgid "variable %qD has initializer but incomplete type"
 msgstr ""
 
-#: c-decl.c:4088 cp/decl.c:4290 cp/decl.c:12124
+#: c-decl.c:4084 cp/decl.c:4355 cp/decl.c:12458
 #, gcc-internal-format
 msgid "inline function %q+D given attribute noinline"
 msgstr ""
 
-#: c-decl.c:4139
+#: c-decl.c:4135
 #, gcc-internal-format
 msgid "uninitialized const member in %qT is invalid in C++"
 msgstr ""
 
-#: c-decl.c:4141 cp/init.c:1919 cp/init.c:1934
+#: c-decl.c:4137 cp/init.c:1945 cp/init.c:1960
 #, gcc-internal-format
 msgid "%qD should be initialized"
 msgstr ""
 
-#: c-decl.c:4219
+#: c-decl.c:4215
 #, gcc-internal-format
 msgid "initializer fails to determine size of %q+D"
 msgstr ""
 
-#: c-decl.c:4224
+#: c-decl.c:4220
 #, gcc-internal-format
 msgid "array size missing in %q+D"
 msgstr ""
 
-#: c-decl.c:4236
+#: c-decl.c:4232
 #, gcc-internal-format
 msgid "zero or negative size array %q+D"
 msgstr ""
 
-#: c-decl.c:4291 varasm.c:1964
+#: c-decl.c:4287 varasm.c:1957
 #, gcc-internal-format
 msgid "storage size of %q+D isn%'t known"
 msgstr ""
 
-#: c-decl.c:4302
+#: c-decl.c:4298
 #, gcc-internal-format
 msgid "storage size of %q+D isn%'t constant"
 msgstr ""
 
-#: c-decl.c:4352
+#: c-decl.c:4348
 #, gcc-internal-format
 msgid "ignoring asm-specifier for non-static local variable %q+D"
 msgstr ""
 
-#: c-decl.c:4380
+#: c-decl.c:4376
 #, gcc-internal-format
 msgid "cannot put object with volatile field into register"
 msgstr ""
 
-#: c-decl.c:4473
+#: c-decl.c:4463
 #, gcc-internal-format
 msgid "uninitialized const %qD is invalid in C++"
 msgstr ""
 
-#: c-decl.c:4524
+#: c-decl.c:4519
 #, gcc-internal-format
 msgid "ISO C forbids forward parameter declarations"
 msgstr ""
 
-#: c-decl.c:4614
+#: c-decl.c:4609
 #, gcc-internal-format
 msgid "defining a type in a compound literal is invalid in C++"
 msgstr ""
 
-#: c-decl.c:4666 c-decl.c:4681
+#: c-decl.c:4661 c-decl.c:4676
 #, gcc-internal-format
 msgid "bit-field %qs width not an integer constant"
 msgstr ""
 
-#: c-decl.c:4676
+#: c-decl.c:4671
 #, gcc-internal-format
 msgid "bit-field %qs width not an integer constant expression"
 msgstr ""
 
-#: c-decl.c:4687
+#: c-decl.c:4682
 #, gcc-internal-format
 msgid "negative width in bit-field %qs"
 msgstr ""
 
-#: c-decl.c:4692
+#: c-decl.c:4687
 #, gcc-internal-format
 msgid "zero width for bit-field %qs"
 msgstr ""
 
-#: c-decl.c:4702
+#: c-decl.c:4697
 #, gcc-internal-format
 msgid "bit-field %qs has invalid type"
 msgstr ""
 
-#: c-decl.c:4712
+#: c-decl.c:4707
 #, gcc-internal-format
 msgid "type of bit-field %qs is a GCC extension"
 msgstr ""
 
-#: c-decl.c:4718
+#: c-decl.c:4713
 #, gcc-internal-format
 msgid "width of %qs exceeds its type"
 msgstr ""
 
-#: c-decl.c:4731
+#: c-decl.c:4726
 #, gcc-internal-format
 msgid "%qs is narrower than values of its type"
 msgstr ""
 
-#: c-decl.c:4750
+#: c-decl.c:4745
 #, gcc-internal-format
 msgid "ISO C90 forbids array %qE whose size can%'t be evaluated"
 msgstr ""
 
-#: c-decl.c:4754
+#: c-decl.c:4749
 #, gcc-internal-format
 msgid "ISO C90 forbids array whose size can%'t be evaluated"
 msgstr ""
 
-#: c-decl.c:4761
+#: c-decl.c:4756
 #, gcc-internal-format
 msgid "ISO C90 forbids variable length array %qE"
 msgstr ""
 
-#: c-decl.c:4764
+#: c-decl.c:4759
 #, gcc-internal-format
 msgid "ISO C90 forbids variable length array"
 msgstr ""
 
-#: c-decl.c:4773
+#: c-decl.c:4768
 #, gcc-internal-format
 msgid "the size of array %qE can%'t be evaluated"
 msgstr ""
 
-#: c-decl.c:4777
+#: c-decl.c:4772
 #, gcc-internal-format
 msgid "the size of array can %'t be evaluated"
 msgstr ""
 
-#: c-decl.c:4783
+#: c-decl.c:4778
 #, gcc-internal-format
 msgid "variable length array %qE is used"
 msgstr ""
 
-#: c-decl.c:4787 cp/decl.c:7649
+#: c-decl.c:4782 cp/decl.c:7913
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr ""
 
-#: c-decl.c:4973 c-decl.c:5321 c-decl.c:5331
+#: c-decl.c:4940 c-decl.c:5288 c-decl.c:5298
 #, gcc-internal-format
 msgid "variably modified %qE at file scope"
 msgstr ""
 
-#: c-decl.c:4975
+#: c-decl.c:4942
 #, gcc-internal-format
 msgid "variably modified field at file scope"
 msgstr ""
 
-#: c-decl.c:4995
+#: c-decl.c:4962
 #, gcc-internal-format
 msgid "type defaults to %<int%> in declaration of %qE"
 msgstr ""
 
-#: c-decl.c:4999
+#: c-decl.c:4966
 #, gcc-internal-format
 msgid "type defaults to %<int%> in type name"
 msgstr ""
 
-#: c-decl.c:5032
+#: c-decl.c:4999
 #, gcc-internal-format
 msgid "duplicate %<const%>"
 msgstr ""
 
-#: c-decl.c:5034
+#: c-decl.c:5001
 #, gcc-internal-format
 msgid "duplicate %<restrict%>"
 msgstr ""
 
-#: c-decl.c:5036
+#: c-decl.c:5003
 #, gcc-internal-format
 msgid "duplicate %<volatile%>"
 msgstr ""
 
-#: c-decl.c:5040
+#: c-decl.c:5007
 #, gcc-internal-format, gfc-internal-format
 msgid "conflicting named address spaces (%s vs %s)"
 msgstr ""
 
-#: c-decl.c:5064
+#: c-decl.c:5031
 #, gcc-internal-format
 msgid "function definition declared %<auto%>"
 msgstr ""
 
-#: c-decl.c:5066
+#: c-decl.c:5033
 #, gcc-internal-format
 msgid "function definition declared %<register%>"
 msgstr ""
 
-#: c-decl.c:5068
+#: c-decl.c:5035
 #, gcc-internal-format
 msgid "function definition declared %<typedef%>"
 msgstr ""
 
-#: c-decl.c:5070
+#: c-decl.c:5037
 #, gcc-internal-format
 msgid "function definition declared %<__thread%>"
 msgstr ""
 
-#: c-decl.c:5087
+#: c-decl.c:5054
 #, gcc-internal-format
 msgid "storage class specified for structure field %qE"
 msgstr ""
 
-#: c-decl.c:5090
+#: c-decl.c:5057
 #, gcc-internal-format
 msgid "storage class specified for structure field"
 msgstr ""
 
-#: c-decl.c:5094
+#: c-decl.c:5061
 #, gcc-internal-format
 msgid "storage class specified for parameter %qE"
 msgstr ""
 
-#: c-decl.c:5097
+#: c-decl.c:5064
 #, gcc-internal-format
 msgid "storage class specified for unnamed parameter"
 msgstr ""
 
-#: c-decl.c:5100 cp/decl.c:8592
+#: c-decl.c:5067 cp/decl.c:8878
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr ""
 
-#: c-decl.c:5117
+#: c-decl.c:5084
 #, gcc-internal-format
 msgid "%qE initialized and declared %<extern%>"
 msgstr ""
 
-#: c-decl.c:5121
+#: c-decl.c:5088
 #, gcc-internal-format
 msgid "%qE has both %<extern%> and initializer"
 msgstr ""
 
-#: c-decl.c:5126
+#: c-decl.c:5093
 #, gcc-internal-format
 msgid "file-scope declaration of %qE specifies %<auto%>"
 msgstr ""
 
-#: c-decl.c:5130
+#: c-decl.c:5097
 #, gcc-internal-format
 msgid "file-scope declaration of %qE specifies %<register%>"
 msgstr ""
 
-#: c-decl.c:5135
+#: c-decl.c:5102
 #, gcc-internal-format
 msgid "nested function %qE declared %<extern%>"
 msgstr ""
 
-#: c-decl.c:5138
+#: c-decl.c:5105
 #, gcc-internal-format
 msgid "function-scope %qE implicitly auto and declared %<__thread%>"
 msgstr ""
@@ -12775,584 +12890,584 @@
 #. Only the innermost declarator (making a parameter be of
 #. array type which is converted to pointer type)
 #. may have static or type qualifiers.
-#: c-decl.c:5185 c-decl.c:5517
+#: c-decl.c:5152 c-decl.c:5482
 #, gcc-internal-format
 msgid "static or type qualifiers in non-parameter array declarator"
 msgstr ""
 
-#: c-decl.c:5233
+#: c-decl.c:5200
 #, gcc-internal-format
 msgid "declaration of %qE as array of voids"
 msgstr ""
 
-#: c-decl.c:5235
+#: c-decl.c:5202
 #, gcc-internal-format
 msgid "declaration of type name as array of voids"
 msgstr ""
 
-#: c-decl.c:5242
+#: c-decl.c:5209
 #, gcc-internal-format
 msgid "declaration of %qE as array of functions"
 msgstr ""
 
-#: c-decl.c:5245
+#: c-decl.c:5212
 #, gcc-internal-format
 msgid "declaration of type name as array of functions"
 msgstr ""
 
-#: c-decl.c:5252 c-decl.c:7077
+#: c-decl.c:5219 c-decl.c:7047
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr ""
 
-#: c-decl.c:5278
+#: c-decl.c:5245
 #, gcc-internal-format
 msgid "size of array %qE has non-integer type"
 msgstr ""
 
-#: c-decl.c:5282
+#: c-decl.c:5249
 #, gcc-internal-format
 msgid "size of unnamed array has non-integer type"
 msgstr ""
 
-#: c-decl.c:5292
+#: c-decl.c:5259
 #, gcc-internal-format
 msgid "ISO C forbids zero-size array %qE"
 msgstr ""
 
-#: c-decl.c:5295
+#: c-decl.c:5262
 #, gcc-internal-format
 msgid "ISO C forbids zero-size array"
 msgstr ""
 
-#: c-decl.c:5304
+#: c-decl.c:5271
 #, gcc-internal-format
 msgid "size of array %qE is negative"
 msgstr ""
 
-#: c-decl.c:5306
+#: c-decl.c:5273
 #, gcc-internal-format
 msgid "size of unnamed array is negative"
 msgstr ""
 
-#: c-decl.c:5382 c-decl.c:5747
+#: c-decl.c:5347 c-decl.c:5710
 #, gcc-internal-format
 msgid "size of array %qE is too large"
 msgstr ""
 
-#: c-decl.c:5385 c-decl.c:5749
+#: c-decl.c:5350 c-decl.c:5712
 #, gcc-internal-format
 msgid "size of unnamed array is too large"
 msgstr ""
 
-#: c-decl.c:5422
+#: c-decl.c:5387
 #, gcc-internal-format
 msgid "ISO C90 does not support flexible array members"
 msgstr ""
 
 #. C99 6.7.5.2p4
-#: c-decl.c:5443
+#: c-decl.c:5408
 #, gcc-internal-format
 msgid "%<[*]%> not in a declaration"
 msgstr ""
 
-#: c-decl.c:5456
+#: c-decl.c:5421
 #, gcc-internal-format
 msgid "array type has incomplete element type"
 msgstr ""
 
-#: c-decl.c:5550
+#: c-decl.c:5515
 #, gcc-internal-format
 msgid "%qE declared as function returning a function"
 msgstr ""
 
-#: c-decl.c:5553
+#: c-decl.c:5518
 #, gcc-internal-format
 msgid "type name declared as function returning a function"
 msgstr ""
 
-#: c-decl.c:5560
+#: c-decl.c:5525
 #, gcc-internal-format
 msgid "%qE declared as function returning an array"
 msgstr ""
 
-#: c-decl.c:5563
+#: c-decl.c:5528
 #, gcc-internal-format
 msgid "type name declared as function returning an array"
 msgstr ""
 
-#: c-decl.c:5593
+#: c-decl.c:5556
 #, gcc-internal-format
 msgid "function definition has qualified void return type"
 msgstr ""
 
-#: c-decl.c:5596 cp/decl.c:8698
+#: c-decl.c:5559 cp/decl.c:8984
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr ""
 
-#: c-decl.c:5625 c-decl.c:5763 c-decl.c:5873 c-decl.c:5966
+#: c-decl.c:5588 c-decl.c:5726 c-decl.c:5836 c-decl.c:5929
 #, gcc-internal-format
 msgid "ISO C forbids qualified function types"
 msgstr ""
 
-#: c-decl.c:5692
+#: c-decl.c:5655
 #, gcc-internal-format
 msgid "%qs combined with %<auto%> qualifier for %qE"
 msgstr ""
 
-#: c-decl.c:5696
+#: c-decl.c:5659
 #, gcc-internal-format
 msgid "%qs combined with %<register%> qualifier for %qE"
 msgstr ""
 
-#: c-decl.c:5702
+#: c-decl.c:5665
 #, gcc-internal-format
 msgid "%qs specified for auto variable %qE"
 msgstr ""
 
-#: c-decl.c:5718
+#: c-decl.c:5681
 #, gcc-internal-format
 msgid "%qs specified for parameter %qE"
 msgstr ""
 
-#: c-decl.c:5721
+#: c-decl.c:5684
 #, gcc-internal-format
 msgid "%qs specified for unnamed parameter"
 msgstr ""
 
-#: c-decl.c:5727
+#: c-decl.c:5690
 #, gcc-internal-format
 msgid "%qs specified for structure field %qE"
 msgstr ""
 
-#: c-decl.c:5730
+#: c-decl.c:5693
 #, gcc-internal-format
 msgid "%qs specified for structure field"
 msgstr ""
 
-#: c-decl.c:5771
+#: c-decl.c:5734
 #, gcc-internal-format
 msgid "typedef %q+D declared %<inline%>"
 msgstr ""
 
-#: c-decl.c:5807
+#: c-decl.c:5770
 #, gcc-internal-format
 msgid "ISO C forbids const or volatile function types"
 msgstr ""
 
 #. C99 6.7.2.1p8
-#: c-decl.c:5817
+#: c-decl.c:5780
 #, gcc-internal-format
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr ""
 
-#: c-decl.c:5834 cp/decl.c:7871
+#: c-decl.c:5797 cp/decl.c:8141
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr ""
 
-#: c-decl.c:5865
+#: c-decl.c:5828
 #, gcc-internal-format
 msgid "attributes in parameter array declarator ignored"
 msgstr ""
 
-#: c-decl.c:5899
+#: c-decl.c:5862
 #, gcc-internal-format
 msgid "parameter %q+D declared %<inline%>"
 msgstr ""
 
-#: c-decl.c:5912
+#: c-decl.c:5875
 #, gcc-internal-format
 msgid "field %qE declared as a function"
 msgstr ""
 
-#: c-decl.c:5919
+#: c-decl.c:5882
 #, gcc-internal-format
 msgid "field %qE has incomplete type"
 msgstr ""
 
-#: c-decl.c:5921
+#: c-decl.c:5884
 #, gcc-internal-format
 msgid "unnamed field has incomplete type"
 msgstr ""
 
-#: c-decl.c:5938 c-decl.c:5949 c-decl.c:5952
+#: c-decl.c:5901 c-decl.c:5912 c-decl.c:5915
 #, gcc-internal-format
 msgid "invalid storage class for function %qE"
 msgstr ""
 
-#: c-decl.c:6002
+#: c-decl.c:5965
 #, gcc-internal-format
 msgid "cannot inline function %<main%>"
 msgstr ""
 
-#: c-decl.c:6031
+#: c-decl.c:5994
 #, gcc-internal-format
 msgid "variable previously declared %<static%> redeclared %<extern%>"
 msgstr ""
 
-#: c-decl.c:6041
+#: c-decl.c:6004
 #, gcc-internal-format
 msgid "variable %q+D declared %<inline%>"
 msgstr ""
 
-#: c-decl.c:6076
+#: c-decl.c:6039
 #, gcc-internal-format
 msgid "non-nested function with variably modified type"
 msgstr ""
 
-#: c-decl.c:6078
+#: c-decl.c:6041
 #, gcc-internal-format
 msgid "object with variably modified type must have no linkage"
 msgstr ""
 
-#: c-decl.c:6161 c-decl.c:7713
+#: c-decl.c:6124 c-decl.c:7683
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr ""
 
-#: c-decl.c:6170
+#: c-decl.c:6133
 #, gcc-internal-format
 msgid "parameter names (without types) in function declaration"
 msgstr ""
 
-#: c-decl.c:6208
+#: c-decl.c:6171
 #, gcc-internal-format
 msgid "parameter %u (%q+D) has incomplete type"
 msgstr ""
 
-#: c-decl.c:6212
+#: c-decl.c:6175
 #, gcc-internal-format, gfc-internal-format
 msgid "parameter %u has incomplete type"
 msgstr ""
 
-#: c-decl.c:6223
+#: c-decl.c:6186
 #, gcc-internal-format
 msgid "parameter %u (%q+D) has void type"
 msgstr ""
 
-#: c-decl.c:6227
+#: c-decl.c:6190
 #, gcc-internal-format, gfc-internal-format
 msgid "parameter %u has void type"
 msgstr ""
 
-#: c-decl.c:6309
+#: c-decl.c:6275
 #, gcc-internal-format
 msgid "%<void%> as only parameter may not be qualified"
 msgstr ""
 
-#: c-decl.c:6313 c-decl.c:6348
+#: c-decl.c:6279 c-decl.c:6314
 #, gcc-internal-format
 msgid "%<void%> must be the only parameter"
 msgstr ""
 
-#: c-decl.c:6342
+#: c-decl.c:6308
 #, gcc-internal-format
 msgid "parameter %q+D has just a forward declaration"
 msgstr ""
 
 #. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:6387
+#: c-decl.c:6353
 #, gcc-internal-format
 msgid "%<%s %E%> declared inside parameter list"
 msgstr ""
 
 #. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:6391
+#: c-decl.c:6357
 #, gcc-internal-format, gfc-internal-format
 msgid "anonymous %s declared inside parameter list"
 msgstr ""
 
-#: c-decl.c:6396
+#: c-decl.c:6362
 #, gcc-internal-format
 msgid ""
 "its scope is only this definition or declaration, which is probably not what "
 "you want"
 msgstr ""
 
-#: c-decl.c:6496
+#: c-decl.c:6462
 #, gcc-internal-format
 msgid "enum type defined here"
 msgstr ""
 
-#: c-decl.c:6502
+#: c-decl.c:6468
 #, gcc-internal-format
 msgid "struct defined here"
 msgstr ""
 
-#: c-decl.c:6508
+#: c-decl.c:6474
 #, gcc-internal-format
 msgid "union defined here"
 msgstr ""
 
-#: c-decl.c:6581
+#: c-decl.c:6547
 #, gcc-internal-format
 msgid "redefinition of %<union %E%>"
 msgstr ""
 
-#: c-decl.c:6583
+#: c-decl.c:6549
 #, gcc-internal-format
 msgid "redefinition of %<struct %E%>"
 msgstr ""
 
-#: c-decl.c:6592
+#: c-decl.c:6558
 #, gcc-internal-format
 msgid "nested redefinition of %<union %E%>"
 msgstr ""
 
-#: c-decl.c:6594
+#: c-decl.c:6560
 #, gcc-internal-format
 msgid "nested redefinition of %<struct %E%>"
 msgstr ""
 
-#: c-decl.c:6626 c-decl.c:7311
+#: c-decl.c:6592 c-decl.c:7281
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr ""
 
-#: c-decl.c:6695 cp/decl.c:4028
+#: c-decl.c:6661 cp/decl.c:4093
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr ""
 
-#: c-decl.c:6702
+#: c-decl.c:6668
 #, gcc-internal-format
 msgid "ISO C99 doesn%'t support unnamed structs/unions"
 msgstr ""
 
-#: c-decl.c:6705
+#: c-decl.c:6671
 #, gcc-internal-format
 msgid "ISO C90 doesn%'t support unnamed structs/unions"
 msgstr ""
 
-#: c-decl.c:6797 c-decl.c:6816 c-decl.c:6875 objcp/objcp-decl.c:91
+#: c-decl.c:6763 c-decl.c:6782 c-decl.c:6845
 #, gcc-internal-format
 msgid "duplicate member %q+D"
 msgstr ""
 
-#: c-decl.c:6985
+#: c-decl.c:6955
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr ""
 
-#: c-decl.c:6987
+#: c-decl.c:6957
 #, gcc-internal-format
 msgid "union has no members"
 msgstr ""
 
-#: c-decl.c:6992
+#: c-decl.c:6962
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr ""
 
-#: c-decl.c:6994
+#: c-decl.c:6964
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr ""
 
-#: c-decl.c:7057
+#: c-decl.c:7027
 #, gcc-internal-format
 msgid "flexible array member in union"
 msgstr ""
 
-#: c-decl.c:7063
+#: c-decl.c:7033
 #, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr ""
 
-#: c-decl.c:7069
+#: c-decl.c:7039
 #, gcc-internal-format
 msgid "flexible array member in otherwise empty struct"
 msgstr ""
 
-#: c-decl.c:7188
+#: c-decl.c:7158
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr ""
 
-#: c-decl.c:7284
+#: c-decl.c:7254
 #, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr ""
 
 #. This enum is a named one that has been declared already.
-#: c-decl.c:7291
+#: c-decl.c:7261
 #, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr ""
 
-#: c-decl.c:7366
+#: c-decl.c:7336
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr ""
 
-#: c-decl.c:7383
+#: c-decl.c:7353
 #, gcc-internal-format
 msgid "specified mode too small for enumeral values"
 msgstr ""
 
-#: c-decl.c:7488 c-decl.c:7504
+#: c-decl.c:7458 c-decl.c:7474
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr ""
 
-#: c-decl.c:7499
+#: c-decl.c:7469
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr ""
 
-#: c-decl.c:7523
+#: c-decl.c:7493
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr ""
 
-#: c-decl.c:7531
+#: c-decl.c:7501
 #, gcc-internal-format
 msgid "ISO C restricts enumerator values to range of %<int%>"
 msgstr ""
 
-#: c-decl.c:7615
+#: c-decl.c:7585
 #, gcc-internal-format
 msgid "inline function %qD given attribute noinline"
 msgstr ""
 
-#: c-decl.c:7633
+#: c-decl.c:7603
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr ""
 
-#: c-decl.c:7643
+#: c-decl.c:7613
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr ""
 
-#: c-decl.c:7721
+#: c-decl.c:7691
 #, gcc-internal-format
 msgid "no previous prototype for %qD"
 msgstr ""
 
-#: c-decl.c:7730
+#: c-decl.c:7700
 #, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr ""
 
-#: c-decl.c:7737
+#: c-decl.c:7707
 #, gcc-internal-format
 msgid "no previous declaration for %qD"
 msgstr ""
 
-#: c-decl.c:7747
+#: c-decl.c:7717
 #, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr ""
 
-#: c-decl.c:7766
+#: c-decl.c:7736
 #, gcc-internal-format
 msgid "return type of %qD is not %<int%>"
 msgstr ""
 
-#: c-decl.c:7772
+#: c-decl.c:7742
 #, gcc-internal-format
 msgid "%qD is normally a non-static function"
 msgstr ""
 
-#: c-decl.c:7809
+#: c-decl.c:7779
 #, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr ""
 
-#: c-decl.c:7823
+#: c-decl.c:7793
 #, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr ""
 
-#: c-decl.c:7839
+#: c-decl.c:7809
 #, gcc-internal-format
 msgid "parameter name omitted"
 msgstr ""
 
-#: c-decl.c:7876
+#: c-decl.c:7846
 #, gcc-internal-format
 msgid "old-style function definition"
 msgstr ""
 
-#: c-decl.c:7885
+#: c-decl.c:7855
 #, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr ""
 
-#: c-decl.c:7900
+#: c-decl.c:7870
 #, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr ""
 
-#: c-decl.c:7906
+#: c-decl.c:7876
 #, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr ""
 
-#: c-decl.c:7915
+#: c-decl.c:7885
 #, gcc-internal-format
 msgid "parameter %qD declared with void type"
 msgstr ""
 
-#: c-decl.c:7944 c-decl.c:7948
+#: c-decl.c:7914 c-decl.c:7918
 #, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr ""
 
-#: c-decl.c:7968
+#: c-decl.c:7938
 #, gcc-internal-format
 msgid "parameter %qD has incomplete type"
 msgstr ""
 
-#: c-decl.c:7975
+#: c-decl.c:7945
 #, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr ""
 
-#: c-decl.c:8027
+#: c-decl.c:7997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr ""
 
-#: c-decl.c:8038
+#: c-decl.c:8008
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr ""
 
-#: c-decl.c:8041 c-decl.c:8083 c-decl.c:8097
+#: c-decl.c:8011 c-decl.c:8053 c-decl.c:8067
 #, gcc-internal-format
 msgid "prototype declaration"
 msgstr ""
 
-#: c-decl.c:8075
+#: c-decl.c:8045
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr ""
 
-#: c-decl.c:8080
+#: c-decl.c:8050
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr ""
 
-#: c-decl.c:8090
+#: c-decl.c:8060
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr ""
 
-#: c-decl.c:8095
+#: c-decl.c:8065
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr ""
 
-#: c-decl.c:8287 cp/decl.c:13001
+#: c-decl.c:8245 cp/decl.c:13327
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr ""
 
-#: c-decl.c:8307
+#: c-decl.c:8265
 #, gcc-internal-format
 msgid "parameter %qD set but not used"
 msgstr ""
@@ -13360,173 +13475,173 @@
 #. If we get here, declarations have been used in a for loop without
 #. the C99 for loop scope.  This doesn't make much sense, so don't
 #. allow it.
-#: c-decl.c:8386
+#: c-decl.c:8344
 #, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 mode"
 msgstr ""
 
-#: c-decl.c:8391
+#: c-decl.c:8349
 #, gcc-internal-format
 msgid "use option -std=c99 or -std=gnu99 to compile your code"
 msgstr ""
 
-#: c-decl.c:8425
+#: c-decl.c:8383
 #, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr ""
 
-#: c-decl.c:8429
+#: c-decl.c:8387
 #, gcc-internal-format
 msgid ""
 "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr ""
 
-#: c-decl.c:8436
+#: c-decl.c:8394
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr ""
 
-#: c-decl.c:8441
+#: c-decl.c:8399
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr ""
 
-#: c-decl.c:8445
+#: c-decl.c:8403
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr ""
 
-#: c-decl.c:8449
+#: c-decl.c:8407
 #, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr ""
 
-#: c-decl.c:8699
+#: c-decl.c:8659
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr ""
 
-#: c-decl.c:8738 c-decl.c:9049 c-decl.c:9438
+#: c-decl.c:8698 c-decl.c:9009 c-decl.c:9398
 #, gcc-internal-format
 msgid "duplicate %qE"
 msgstr ""
 
-#: c-decl.c:8764 c-decl.c:9060 c-decl.c:9317
+#: c-decl.c:8724 c-decl.c:9020 c-decl.c:9277
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr ""
 
-#: c-decl.c:8776 cp/parser.c:2197
+#: c-decl.c:8736 cp/parser.c:2207
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr ""
 
-#: c-decl.c:8789
+#: c-decl.c:8749
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr ""
 
-#: c-decl.c:8955
+#: c-decl.c:8915
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr ""
 
-#: c-decl.c:8994
+#: c-decl.c:8954
 #, gcc-internal-format
 msgid "ISO C does not support saturating types"
 msgstr ""
 
-#: c-decl.c:9068
+#: c-decl.c:9028
 #, gcc-internal-format
 msgid "%<__int128%> is not supported for this target"
 msgstr ""
 
-#: c-decl.c:9073
+#: c-decl.c:9033
 #, gcc-internal-format
 msgid "ISO C does not support %<__int128%> type"
 msgstr ""
 
-#: c-decl.c:9276
+#: c-decl.c:9236
 #, gcc-internal-format
 msgid "ISO C does not support decimal floating point"
 msgstr ""
 
-#: c-decl.c:9298 c-decl.c:9503 c-parser.c:6035
+#: c-decl.c:9258 c-decl.c:9463 c-parser.c:6048
 #, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr ""
 
-#: c-decl.c:9300
+#: c-decl.c:9260
 #, gcc-internal-format
 msgid "ISO C does not support fixed-point types"
 msgstr ""
 
-#: c-decl.c:9334
+#: c-decl.c:9294
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr ""
 
-#: c-decl.c:9347
+#: c-decl.c:9307
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr ""
 
-#: c-decl.c:9389
+#: c-decl.c:9349
 #, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr ""
 
-#: c-decl.c:9403
+#: c-decl.c:9363
 #, gcc-internal-format
 msgid "%<__thread%> used with %<auto%>"
 msgstr ""
 
-#: c-decl.c:9405
+#: c-decl.c:9365
 #, gcc-internal-format
 msgid "%<__thread%> used with %<register%>"
 msgstr ""
 
-#: c-decl.c:9407
+#: c-decl.c:9367
 #, gcc-internal-format
 msgid "%<__thread%> used with %<typedef%>"
 msgstr ""
 
-#: c-decl.c:9418
+#: c-decl.c:9378
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr ""
 
-#: c-decl.c:9427
+#: c-decl.c:9387
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr ""
 
-#: c-decl.c:9443
+#: c-decl.c:9403
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr ""
 
-#: c-decl.c:9450
+#: c-decl.c:9410
 #, gcc-internal-format
 msgid "%<__thread%> used with %qE"
 msgstr ""
 
-#: c-decl.c:9501
+#: c-decl.c:9461
 #, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr ""
 
-#: c-decl.c:9515
+#: c-decl.c:9475
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr ""
 
-#: c-decl.c:9560 c-decl.c:9573 c-decl.c:9599
+#: c-decl.c:9520 c-decl.c:9533 c-decl.c:9559
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr ""
 
-#: c-decl.c:9753 toplev.c:497
+#: c-decl.c:9713 toplev.c:498
 #, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr ""
@@ -13541,27 +13656,27 @@
 msgid "ISO C forbids an empty translation unit"
 msgstr ""
 
-#: c-parser.c:1312 c-parser.c:7218
+#: c-parser.c:1312 c-parser.c:7248
 #, gcc-internal-format
 msgid "ISO C does not allow extra %<;%> outside of a function"
 msgstr ""
 
-#: c-parser.c:1438 c-parser.c:2003 c-parser.c:3216
+#: c-parser.c:1438 c-parser.c:2013 c-parser.c:3229
 #, gcc-internal-format
 msgid "unknown type name %qE"
 msgstr ""
 
-#: c-parser.c:1458 c-parser.c:8236 cp/parser.c:24992
+#: c-parser.c:1458 c-parser.c:8268 cp/parser.c:25299
 #, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr ""
 
-#: c-parser.c:1483 c-parser.c:2576
+#: c-parser.c:1483 c-parser.c:2593
 #, gcc-internal-format
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr ""
 
-#: c-parser.c:1501 cp/parser.c:22050 cp/parser.c:22123
+#: c-parser.c:1501 cp/parser.c:22339 cp/parser.c:22413
 #, gcc-internal-format
 msgid "prefix attributes are ignored for methods"
 msgstr ""
@@ -13576,12 +13691,12 @@
 msgid "unexpected attribute"
 msgstr ""
 
-#: c-parser.c:1599
+#: c-parser.c:1600
 #, gcc-internal-format
 msgid "data definition has no type or storage class"
 msgstr ""
 
-#: c-parser.c:1674 cp/parser.c:9498
+#: c-parser.c:1675 cp/parser.c:9661
 #, gcc-internal-format
 msgid "expected %<,%> or %<;%>"
 msgstr ""
@@ -13589,207 +13704,207 @@
 #. This can appear in many cases looking nothing like a
 #. function definition, so we don't give a more specific
 #. error suggesting there was one.
-#: c-parser.c:1681 c-parser.c:1697
+#: c-parser.c:1682 c-parser.c:1698
 #, gcc-internal-format
 msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgstr ""
 
-#: c-parser.c:1689
+#: c-parser.c:1690
 #, gcc-internal-format
 msgid "ISO C forbids nested functions"
 msgstr ""
 
-#: c-parser.c:1796
+#: c-parser.c:1806
 #, gcc-internal-format
 msgid "ISO C99 does not support %<_Static_assert%>"
 msgstr ""
 
-#: c-parser.c:1799
+#: c-parser.c:1809
 #, gcc-internal-format
 msgid "ISO C90 does not support %<_Static_assert%>"
 msgstr ""
 
-#: c-parser.c:1824 c-parser.c:3283 c-parser.c:8291 cp/parser.c:24879
+#: c-parser.c:1834 c-parser.c:3296 c-parser.c:8323 cp/parser.c:25186
 #, gcc-internal-format
 msgid "expected string literal"
 msgstr ""
 
-#: c-parser.c:1832
+#: c-parser.c:1842
 #, gcc-internal-format
 msgid "expression in static assertion is not an integer"
 msgstr ""
 
-#: c-parser.c:1839
+#: c-parser.c:1849
 #, gcc-internal-format
 msgid "expression in static assertion is not an integer constant expression"
 msgstr ""
 
-#: c-parser.c:1844
+#: c-parser.c:1854
 #, gcc-internal-format
 msgid "expression in static assertion is not constant"
 msgstr ""
 
 #. Report the error.
-#: c-parser.c:1849 cp/semantics.c:4690
+#: c-parser.c:1859 cp/semantics.c:4796
 #, gcc-internal-format
 msgid "static assertion failed: %E"
 msgstr ""
 
-#: c-parser.c:2210 c-parser.c:3066 c-parser.c:3715 c-parser.c:3989
-#: c-parser.c:5090 c-parser.c:5181 c-parser.c:5806 c-parser.c:6089
-#: c-parser.c:6278 c-parser.c:6300 c-parser.c:6408 c-parser.c:6606
-#: c-parser.c:6635 c-parser.c:6820 c-parser.c:6869 c-parser.c:7009
-#: c-parser.c:7040 c-parser.c:7048 c-parser.c:7077 c-parser.c:7091
-#: c-parser.c:7394 c-parser.c:7518 c-parser.c:7945 c-parser.c:7980
-#: c-parser.c:8033 c-parser.c:8086 c-parser.c:8102 c-parser.c:8148
-#: c-parser.c:8410 c-parser.c:9177 cp/parser.c:20708 cp/parser.c:22879
-#: cp/parser.c:22909 cp/parser.c:22975
+#: c-parser.c:2223 c-parser.c:3083 c-parser.c:3728 c-parser.c:4002
+#: c-parser.c:5103 c-parser.c:5194 c-parser.c:5819 c-parser.c:6102
+#: c-parser.c:6291 c-parser.c:6313 c-parser.c:6421 c-parser.c:6618
+#: c-parser.c:6647 c-parser.c:6832 c-parser.c:6881 c-parser.c:7041
+#: c-parser.c:7071 c-parser.c:7079 c-parser.c:7108 c-parser.c:7121
+#: c-parser.c:7426 c-parser.c:7550 c-parser.c:7977 c-parser.c:8012
+#: c-parser.c:8065 c-parser.c:8118 c-parser.c:8134 c-parser.c:8180
+#: c-parser.c:8442 c-parser.c:9209 cp/parser.c:20983 cp/parser.c:23183
+#: cp/parser.c:23213 cp/parser.c:23283
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr ""
 
-#: c-parser.c:2243 cp/parser.c:13466
+#: c-parser.c:2256 cp/parser.c:13647
 #, gcc-internal-format
 msgid "comma at end of enumerator list"
 msgstr ""
 
-#: c-parser.c:2249
+#: c-parser.c:2262
 #, gcc-internal-format
 msgid "expected %<,%> or %<}%>"
 msgstr ""
 
-#: c-parser.c:2279
+#: c-parser.c:2293
 #, gcc-internal-format
 msgid "ISO C forbids forward references to %<enum%> types"
 msgstr ""
 
-#: c-parser.c:2393
+#: c-parser.c:2409
 #, gcc-internal-format
 msgid "expected class name"
 msgstr ""
 
-#: c-parser.c:2412 c-parser.c:6936
+#: c-parser.c:2428
 #, gcc-internal-format
 msgid "extra semicolon in struct or union specified"
 msgstr ""
 
-#: c-parser.c:2441
+#: c-parser.c:2457
 #, gcc-internal-format
 msgid "no semicolon at end of struct or union"
 msgstr ""
 
-#: c-parser.c:2538 c-parser.c:3529
+#: c-parser.c:2555 c-parser.c:3542
 #, gcc-internal-format
 msgid "expected specifier-qualifier-list"
 msgstr ""
 
-#: c-parser.c:2549
+#: c-parser.c:2566
 #, gcc-internal-format
 msgid "ISO C forbids member declarations with no members"
 msgstr ""
 
-#: c-parser.c:2639
+#: c-parser.c:2656
 #, gcc-internal-format
 msgid "expected %<,%>, %<;%> or %<}%>"
 msgstr ""
 
-#: c-parser.c:2646
+#: c-parser.c:2663
 #, gcc-internal-format
 msgid "expected %<:%>, %<,%>, %<;%>, %<}%> or %<__attribute__%>"
 msgstr ""
 
-#: c-parser.c:2699
+#: c-parser.c:2716
 #, gcc-internal-format
 msgid "%<typeof%> applied to a bit-field"
 msgstr ""
 
-#: c-parser.c:2925
+#: c-parser.c:2942
 #, gcc-internal-format
 msgid "expected identifier or %<(%>"
 msgstr ""
 
-#: c-parser.c:3120
+#: c-parser.c:3141
 #, gcc-internal-format
 msgid "ISO C requires a named argument before %<...%>"
 msgstr ""
 
-#: c-parser.c:3223
+#: c-parser.c:3236
 #, gcc-internal-format
 msgid "expected declaration specifiers or %<...%>"
 msgstr ""
 
-#: c-parser.c:3277
+#: c-parser.c:3290
 #, gcc-internal-format
 msgid "wide string literal in %<asm%>"
 msgstr ""
 
-#: c-parser.c:3629
+#: c-parser.c:3642
 #, gcc-internal-format
 msgid "ISO C forbids empty initializer braces"
 msgstr ""
 
-#: c-parser.c:3680
+#: c-parser.c:3693
 #, gcc-internal-format
 msgid "obsolete use of designated initializer with %<:%>"
 msgstr ""
 
-#: c-parser.c:3820
+#: c-parser.c:3833
 #, gcc-internal-format
 msgid "ISO C forbids specifying range of elements to initialize"
 msgstr ""
 
-#: c-parser.c:3833
+#: c-parser.c:3846
 #, gcc-internal-format
 msgid "ISO C90 forbids specifying subobject to initialize"
 msgstr ""
 
-#: c-parser.c:3840
+#: c-parser.c:3853
 #, gcc-internal-format
 msgid "obsolete use of designated initializer without %<=%>"
 msgstr ""
 
-#: c-parser.c:4004
+#: c-parser.c:4017
 #, gcc-internal-format
 msgid "ISO C forbids label declarations"
 msgstr ""
 
-#: c-parser.c:4010 c-parser.c:4091
+#: c-parser.c:4023 c-parser.c:4104
 #, gcc-internal-format
 msgid "expected declaration or statement"
 msgstr ""
 
-#: c-parser.c:4042 c-parser.c:4072
+#: c-parser.c:4055 c-parser.c:4085
 #, gcc-internal-format
 msgid "ISO C90 forbids mixed declarations and code"
 msgstr ""
 
-#: c-parser.c:4099
+#: c-parser.c:4112
 #, gcc-internal-format
 msgid "expected %<}%> before %<else%>"
 msgstr ""
 
-#: c-parser.c:4104 cp/parser.c:8162
+#: c-parser.c:4117 cp/parser.c:8239
 #, gcc-internal-format
 msgid "%<else%> without a previous %<if%>"
 msgstr ""
 
-#: c-parser.c:4121
+#: c-parser.c:4134
 #, gcc-internal-format
 msgid "label at end of compound statement"
 msgstr ""
 
-#: c-parser.c:4166
+#: c-parser.c:4179
 #, gcc-internal-format
 msgid "expected %<:%> or %<...%>"
 msgstr ""
 
-#: c-parser.c:4197
+#: c-parser.c:4210
 #, gcc-internal-format
 msgid ""
 "a label can only be part of a statement and a declaration is not a statement"
 msgstr ""
 
-#: c-parser.c:4365
+#: c-parser.c:4378
 #, gcc-internal-format
 msgid "expected identifier or %<*%>"
 msgstr ""
@@ -13798,289 +13913,294 @@
 #. c_parser_skip_until_found stops at a closing nesting
 #. delimiter without consuming it, but here we need to consume
 #. it to proceed further.
-#: c-parser.c:4430 cp/parser.c:7894
+#: c-parser.c:4443 cp/parser.c:7967
 #, gcc-internal-format
 msgid "expected statement"
 msgstr ""
 
-#: c-parser.c:4528 cp/parser.c:8244
+#: c-parser.c:4541 cp/parser.c:8321
 #, gcc-internal-format
 msgid "suggest braces around empty body in an %<if%> statement"
 msgstr ""
 
-#: c-parser.c:4556 cp/parser.c:8267
+#: c-parser.c:4569 cp/parser.c:8344
 #, gcc-internal-format
 msgid "suggest braces around empty body in an %<else%> statement"
 msgstr ""
 
-#: c-parser.c:4687
+#: c-parser.c:4700
 #, gcc-internal-format
 msgid "suggest braces around empty body in %<do%> statement"
 msgstr ""
 
-#: c-parser.c:4803 c-parser.c:4833
+#: c-parser.c:4816 c-parser.c:4846
 #, gcc-internal-format
 msgid "multiple iterating variables in fast enumeration"
 msgstr ""
 
-#: c-parser.c:4853
+#: c-parser.c:4866
 #, gcc-internal-format
 msgid "invalid iterating variable in fast enumeration"
 msgstr ""
 
-#: c-parser.c:4886
+#: c-parser.c:4899
 #, gcc-internal-format
 msgid "missing collection in fast enumeration"
 msgstr ""
 
-#: c-parser.c:4957
+#: c-parser.c:4970
 #, gcc-internal-format
 msgid "%E qualifier ignored on asm"
 msgstr ""
 
-#: c-parser.c:5311
+#: c-parser.c:5324
 #, gcc-internal-format
 msgid "ISO C forbids omitting the middle term of a ?: expression"
 msgstr ""
 
-#: c-parser.c:5771
+#: c-parser.c:5784
 #, gcc-internal-format
 msgid "traditional C rejects the unary plus operator"
 msgstr ""
 
-#: c-parser.c:5896
+#: c-parser.c:5909
 #, gcc-internal-format
 msgid "%<sizeof%> applied to a bit-field"
 msgstr ""
 
-#: c-parser.c:6100 c-parser.c:6445 c-parser.c:6465
+#: c-parser.c:6113 c-parser.c:6458 c-parser.c:6477
 #, gcc-internal-format
 msgid "expected expression"
 msgstr ""
 
-#: c-parser.c:6118
+#: c-parser.c:6131
 #, gcc-internal-format
 msgid "braced-group within expression allowed only inside a function"
 msgstr ""
 
-#: c-parser.c:6131
+#: c-parser.c:6144
 #, gcc-internal-format
 msgid "ISO C forbids braced-groups within expressions"
 msgstr ""
 
-#: c-parser.c:6340
+#: c-parser.c:6353
 #, gcc-internal-format
 msgid "first argument to %<__builtin_choose_expr%> not a constant"
 msgstr ""
 
-#: c-parser.c:6500
+#: c-parser.c:6512
 #, gcc-internal-format
 msgid "compound literal has variable size"
 msgstr ""
 
-#: c-parser.c:6511
+#: c-parser.c:6523
 #, gcc-internal-format
 msgid "compound literal qualified by address-space qualifier"
 msgstr ""
 
-#: c-parser.c:6516
+#: c-parser.c:6528
 #, gcc-internal-format
 msgid "ISO C90 forbids compound literals"
 msgstr ""
 
-#: c-parser.c:6840
+#: c-parser.c:6852
 #, gcc-internal-format
 msgid "expected identifier or %<)%>"
 msgstr ""
 
-#: c-parser.c:7166
+#: c-parser.c:6948
+#, gcc-internal-format
+msgid "extra semicolon"
+msgstr ""
+
+#: c-parser.c:7196
 #, gcc-internal-format
 msgid "extra semicolon in method definition specified"
 msgstr ""
 
-#: c-parser.c:7297
+#: c-parser.c:7328
 #, gcc-internal-format
 msgid "method attributes must be specified at the end only"
 msgstr ""
 
-#: c-parser.c:7317
+#: c-parser.c:7348
 #, gcc-internal-format
 msgid "expected %<;%> or %<{%> after method attribute definition"
 msgstr ""
 
-#: c-parser.c:7437
+#: c-parser.c:7469
 #, gcc-internal-format
 msgid "objective-c method declaration is expected"
 msgstr ""
 
-#: c-parser.c:7859
+#: c-parser.c:7891
 #, gcc-internal-format
 msgid "no type or storage class may be specified here,"
 msgstr ""
 
-#: c-parser.c:7949 c-parser.c:8006 cp/parser.c:22935
+#: c-parser.c:7981 c-parser.c:8038 cp/parser.c:23243
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr ""
 
-#: c-parser.c:7970 cp/parser.c:22899
+#: c-parser.c:8002 cp/parser.c:23203
 #, gcc-internal-format
 msgid "missing %<=%> (after %<getter%> attribute)"
 msgstr ""
 
-#: c-parser.c:7973 cp/parser.c:22902
+#: c-parser.c:8005 cp/parser.c:23206
 #, gcc-internal-format
 msgid "missing %<=%> (after %<setter%> attribute)"
 msgstr ""
 
-#: c-parser.c:7987 cp/parser.c:22916
+#: c-parser.c:8019 cp/parser.c:23221
 #, gcc-internal-format
 msgid "the %<setter%> attribute may only be specified once"
 msgstr ""
 
-#: c-parser.c:7992 cp/parser.c:22921
+#: c-parser.c:8024 cp/parser.c:23227
 #, gcc-internal-format
 msgid "setter name must terminate with %<:%>"
 msgstr ""
 
-#: c-parser.c:7999 cp/parser.c:22928
+#: c-parser.c:8031 cp/parser.c:23235
 #, gcc-internal-format
 msgid "the %<getter%> attribute may only be specified once"
 msgstr ""
 
-#: c-parser.c:8185 cp/parser.c:24923
+#: c-parser.c:8217 cp/parser.c:25230
 #, gcc-internal-format
 msgid "%<#pragma omp barrier%> may only be used in compound statements"
 msgstr ""
 
-#: c-parser.c:8196 cp/parser.c:24938
+#: c-parser.c:8228 cp/parser.c:25245
 #, gcc-internal-format
 msgid "%<#pragma omp flush%> may only be used in compound statements"
 msgstr ""
 
-#: c-parser.c:8207 cp/parser.c:24954
+#: c-parser.c:8239 cp/parser.c:25261
 #, gcc-internal-format
 msgid "%<#pragma omp taskwait%> may only be used in compound statements"
 msgstr ""
 
-#: c-parser.c:8220 cp/parser.c:24982
+#: c-parser.c:8252 cp/parser.c:25289
 #, gcc-internal-format
 msgid ""
 "%<#pragma omp section%> may only be used in %<#pragma omp sections%> "
 "construct"
 msgstr ""
 
-#: c-parser.c:8226 cp/parser.c:24913
+#: c-parser.c:8258 cp/parser.c:25220
 #, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr ""
 
-#: c-parser.c:8385 cp/parser.c:23177
+#: c-parser.c:8417 cp/parser.c:23485
 #, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr ""
 
-#: c-parser.c:8487 cp/parser.c:23292
+#: c-parser.c:8519 cp/parser.c:23600
 #, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr ""
 
-#: c-parser.c:8553 cp/parser.c:23343
+#: c-parser.c:8585 cp/parser.c:23651
 #, gcc-internal-format
 msgid "expected %<none%> or %<shared%>"
 msgstr ""
 
-#: c-parser.c:8644 c-parser.c:8836
+#: c-parser.c:8676 c-parser.c:8868
 #, gcc-internal-format
 msgid "expected integer expression"
 msgstr ""
 
-#: c-parser.c:8656
+#: c-parser.c:8688
 #, gcc-internal-format
 msgid "%<num_threads%> value must be positive"
 msgstr ""
 
-#: c-parser.c:8739 cp/parser.c:23495
+#: c-parser.c:8771 cp/parser.c:23803
 #, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, or %<||%>"
 msgstr ""
 
-#: c-parser.c:8827 cp/parser.c:23580
+#: c-parser.c:8859 cp/parser.c:23888
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c-parser.c:8831 cp/parser.c:23583
+#: c-parser.c:8863 cp/parser.c:23891
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c-parser.c:8849 cp/parser.c:23599
+#: c-parser.c:8881 cp/parser.c:23907
 #, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr ""
 
-#: c-parser.c:8969 cp/parser.c:23722
+#: c-parser.c:9001 cp/parser.c:24030
 #, gcc-internal-format
 msgid "expected %<#pragma omp%> clause"
 msgstr ""
 
-#: c-parser.c:8978 cp/parser.c:23731
+#: c-parser.c:9010 cp/parser.c:24039
 #, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr ""
 
-#: c-parser.c:9118 cp/parser.c:23882
+#: c-parser.c:9150 cp/parser.c:24190
 #, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr ""
 
-#: c-parser.c:9180 c-parser.c:9201
+#: c-parser.c:9212 c-parser.c:9233
 #, gcc-internal-format
 msgid "expected %<(%> or end of line"
 msgstr ""
 
-#: c-parser.c:9236 cp/parser.c:24121
+#: c-parser.c:9268 cp/parser.c:24427
 #, gcc-internal-format
 msgid "for statement expected"
 msgstr ""
 
-#: c-parser.c:9289 cp/semantics.c:4386 cp/semantics.c:4456
+#: c-parser.c:9321 cp/semantics.c:4492 cp/semantics.c:4562
 #, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr ""
 
-#: c-parser.c:9369
+#: c-parser.c:9401
 #, gcc-internal-format
 msgid "not enough perfectly nested loops"
 msgstr ""
 
-#: c-parser.c:9422 cp/parser.c:24462
+#: c-parser.c:9454 cp/parser.c:24769
 #, gcc-internal-format
 msgid "collapsed loops not perfectly nested"
 msgstr ""
 
-#: c-parser.c:9460 cp/parser.c:24306 cp/parser.c:24344 cp/pt.c:11892
+#: c-parser.c:9492 cp/parser.c:24612 cp/parser.c:24650 cp/pt.c:11984
 #, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr ""
 
-#: c-parser.c:9905
+#: c-parser.c:9937
 #, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr ""
 
-#: c-parser.c:9907 cp/semantics.c:4011
+#: c-parser.c:9939 cp/semantics.c:4117
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr ""
 
-#: c-parser.c:9909 cp/semantics.c:4013
+#: c-parser.c:9941 cp/semantics.c:4119
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr ""
 
-#: c-parser.c:9913 cp/semantics.c:4015
+#: c-parser.c:9945 cp/semantics.c:4121
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr ""
@@ -14090,7 +14210,7 @@
 msgid "%qD has an incomplete type"
 msgstr ""
 
-#: c-typeck.c:227 cp/call.c:3488
+#: c-typeck.c:227 c-typeck.c:8506 c-typeck.c:8538 cp/call.c:3664
 #, gcc-internal-format
 msgid "invalid use of void expression"
 msgstr ""
@@ -14100,7 +14220,7 @@
 msgid "invalid use of flexible array member"
 msgstr ""
 
-#: c-typeck.c:241 cp/typeck2.c:415
+#: c-typeck.c:241 cp/typeck2.c:423
 #, gcc-internal-format
 msgid "invalid use of array with unspecified bounds"
 msgstr ""
@@ -14121,102 +14241,102 @@
 msgid "%qT and %qT are in disjoint named address spaces"
 msgstr ""
 
-#: c-typeck.c:561 c-typeck.c:586
+#: c-typeck.c:558 c-typeck.c:583
 #, gcc-internal-format
 msgid "function types not truly compatible in ISO C"
 msgstr ""
 
-#: c-typeck.c:730
+#: c-typeck.c:726
 #, gcc-internal-format
 msgid "can%'t mix operands of decimal float and vector types"
 msgstr ""
 
-#: c-typeck.c:735
+#: c-typeck.c:731
 #, gcc-internal-format
 msgid "can%'t mix operands of decimal float and complex types"
 msgstr ""
 
-#: c-typeck.c:740
+#: c-typeck.c:736
 #, gcc-internal-format
 msgid "can%'t mix operands of decimal float and other float types"
 msgstr ""
 
-#: c-typeck.c:1216
+#: c-typeck.c:1212
 #, gcc-internal-format
 msgid "types are not quite compatible"
 msgstr ""
 
-#: c-typeck.c:1220
+#: c-typeck.c:1216
 #, gcc-internal-format
 msgid "pointer target types incompatible in C++"
 msgstr ""
 
-#: c-typeck.c:1552
+#: c-typeck.c:1548
 #, gcc-internal-format
 msgid "function return types not compatible due to %<volatile%>"
 msgstr ""
 
-#: c-typeck.c:1728 c-typeck.c:3380
+#: c-typeck.c:1724 c-typeck.c:3375
 #, gcc-internal-format
 msgid "arithmetic on pointer to an incomplete type"
 msgstr ""
 
-#: c-typeck.c:2144
+#: c-typeck.c:2140
 #, gcc-internal-format
 msgid "%qT has no member named %qE"
 msgstr ""
 
-#: c-typeck.c:2198
+#: c-typeck.c:2194
 #, gcc-internal-format
 msgid "request for member %qE in something not a structure or union"
 msgstr ""
 
-#: c-typeck.c:2247
+#: c-typeck.c:2243
 #, gcc-internal-format
 msgid "dereferencing pointer to incomplete type"
 msgstr ""
 
-#: c-typeck.c:2251
+#: c-typeck.c:2247
 #, gcc-internal-format
 msgid "dereferencing %<void *%> pointer"
 msgstr ""
 
-#: c-typeck.c:2307
+#: c-typeck.c:2303
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr ""
 
-#: c-typeck.c:2319 cp/typeck.c:2857 cp/typeck.c:2951
+#: c-typeck.c:2315 cp/typeck.c:2870 cp/typeck.c:2964
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr ""
 
-#: c-typeck.c:2325
+#: c-typeck.c:2321
 #, gcc-internal-format
 msgid "subscripted value is pointer to function"
 msgstr ""
 
-#: c-typeck.c:2350
+#: c-typeck.c:2346
 #, gcc-internal-format
 msgid "index value is out of bound"
 msgstr ""
 
-#: c-typeck.c:2394
+#: c-typeck.c:2390
 #, gcc-internal-format
 msgid "ISO C forbids subscripting %<register%> array"
 msgstr ""
 
-#: c-typeck.c:2397
+#: c-typeck.c:2393
 #, gcc-internal-format
 msgid "ISO C90 forbids subscripting non-lvalue array"
 msgstr ""
 
-#: c-typeck.c:2505
+#: c-typeck.c:2501
 #, gcc-internal-format
 msgid "enum constant defined here"
 msgstr ""
 
-#: c-typeck.c:2736
+#: c-typeck.c:2732
 #, gcc-internal-format
 msgid "called object %qE is not a function"
 msgstr ""
@@ -14224,358 +14344,358 @@
 #. This situation leads to run-time undefined behavior.  We can't,
 #. therefore, simply error unless we can prove that all possible
 #. executions of the program must execute the code.
-#: c-typeck.c:2772
+#: c-typeck.c:2768
 #, gcc-internal-format
 msgid "function called through a non-compatible type"
 msgstr ""
 
-#: c-typeck.c:2786 c-typeck.c:2840
+#: c-typeck.c:2782 c-typeck.c:2835
 #, gcc-internal-format
 msgid "function with qualified void return type called"
 msgstr ""
 
-#: c-typeck.c:2930
+#: c-typeck.c:2925
 #, gcc-internal-format
 msgid "too many arguments to method %qE"
 msgstr ""
 
-#: c-typeck.c:2933 c-family/c-common.c:8055
+#: c-typeck.c:2928 c-family/c-common.c:8085
 #, gcc-internal-format
 msgid "too many arguments to function %qE"
 msgstr ""
 
-#: c-typeck.c:2936 c-typeck.c:3170 cp/decl2.c:4190 cp/typeck.c:3307
+#: c-typeck.c:2931 c-typeck.c:3165 cp/decl2.c:4205 cp/typeck.c:3319
 #, gcc-internal-format
 msgid "declared here"
 msgstr ""
 
-#: c-typeck.c:2971
+#: c-typeck.c:2966
 #, gcc-internal-format, gfc-internal-format
 msgid "type of formal parameter %d is incomplete"
 msgstr ""
 
-#: c-typeck.c:2986
+#: c-typeck.c:2981
 #, gcc-internal-format
 msgid ""
 "passing argument %d of %qE as integer rather than floating due to prototype"
 msgstr ""
 
-#: c-typeck.c:2991
+#: c-typeck.c:2986
 #, gcc-internal-format
 msgid ""
 "passing argument %d of %qE as integer rather than complex due to prototype"
 msgstr ""
 
-#: c-typeck.c:2996
+#: c-typeck.c:2991
 #, gcc-internal-format
 msgid ""
 "passing argument %d of %qE as complex rather than floating due to prototype"
 msgstr ""
 
-#: c-typeck.c:3001
+#: c-typeck.c:2996
 #, gcc-internal-format
 msgid ""
 "passing argument %d of %qE as floating rather than integer due to prototype"
 msgstr ""
 
-#: c-typeck.c:3006
+#: c-typeck.c:3001
 #, gcc-internal-format
 msgid ""
 "passing argument %d of %qE as complex rather than integer due to prototype"
 msgstr ""
 
-#: c-typeck.c:3011
+#: c-typeck.c:3006
 #, gcc-internal-format
 msgid ""
 "passing argument %d of %qE as floating rather than complex due to prototype"
 msgstr ""
 
-#: c-typeck.c:3024
+#: c-typeck.c:3019
 #, gcc-internal-format
 msgid ""
 "passing argument %d of %qE as %<float%> rather than %<double%> due to "
 "prototype"
 msgstr ""
 
-#: c-typeck.c:3049
+#: c-typeck.c:3044
 #, gcc-internal-format
 msgid "passing argument %d of %qE as %qT rather than %qT due to prototype"
 msgstr ""
 
-#: c-typeck.c:3071
+#: c-typeck.c:3066
 #, gcc-internal-format
 msgid "passing argument %d of %qE with different width due to prototype"
 msgstr ""
 
-#: c-typeck.c:3095
+#: c-typeck.c:3090
 #, gcc-internal-format
 msgid "passing argument %d of %qE as unsigned due to prototype"
 msgstr ""
 
-#: c-typeck.c:3100
+#: c-typeck.c:3095
 #, gcc-internal-format
 msgid "passing argument %d of %qE as signed due to prototype"
 msgstr ""
 
-#: c-typeck.c:3135 cp/call.c:5666
+#: c-typeck.c:3130 cp/call.c:5932
 #, gcc-internal-format
 msgid "implicit conversion from %qT to %qT when passing argument to function"
 msgstr ""
 
-#: c-typeck.c:3168 c-family/c-common.c:8893 c-family/c-common.c:8942
+#: c-typeck.c:3163 c-family/c-common.c:8925 c-family/c-common.c:8980
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr ""
 
-#: c-typeck.c:3250 c-typeck.c:3255
+#: c-typeck.c:3245 c-typeck.c:3250
 #, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr ""
 
-#: c-typeck.c:3269
+#: c-typeck.c:3264
 #, gcc-internal-format
 msgid "comparison between %qT and %qT"
 msgstr ""
 
-#: c-typeck.c:3321
+#: c-typeck.c:3316
 #, gcc-internal-format
 msgid "pointer of type %<void *%> used in subtraction"
 msgstr ""
 
-#: c-typeck.c:3324
+#: c-typeck.c:3319
 #, gcc-internal-format
 msgid "pointer to a function used in subtraction"
 msgstr ""
 
-#: c-typeck.c:3488
+#: c-typeck.c:3483
 #, gcc-internal-format
 msgid "ISO C does not support %<~%> for complex conjugation"
 msgstr ""
 
-#: c-typeck.c:3527
+#: c-typeck.c:3522
 #, gcc-internal-format
 msgid "wrong type argument to unary exclamation mark"
 msgstr ""
 
-#: c-typeck.c:3578
+#: c-typeck.c:3573
 #, gcc-internal-format
 msgid "increment of enumeration value is invalid in C++"
 msgstr ""
 
-#: c-typeck.c:3581
+#: c-typeck.c:3576
 #, gcc-internal-format
 msgid "decrement of enumeration value is invalid in C++"
 msgstr ""
 
-#: c-typeck.c:3594
+#: c-typeck.c:3589
 #, gcc-internal-format
 msgid "ISO C does not support %<++%> and %<--%> on complex types"
 msgstr ""
 
-#: c-typeck.c:3613 c-typeck.c:3645
+#: c-typeck.c:3608 c-typeck.c:3640
 #, gcc-internal-format
 msgid "wrong type argument to increment"
 msgstr ""
 
-#: c-typeck.c:3615 c-typeck.c:3648
+#: c-typeck.c:3610 c-typeck.c:3643
 #, gcc-internal-format
 msgid "wrong type argument to decrement"
 msgstr ""
 
-#: c-typeck.c:3635
+#: c-typeck.c:3630
 #, gcc-internal-format
 msgid "increment of pointer to unknown structure"
 msgstr ""
 
-#: c-typeck.c:3638
+#: c-typeck.c:3633
 #, gcc-internal-format
 msgid "decrement of pointer to unknown structure"
 msgstr ""
 
-#: c-typeck.c:3722
+#: c-typeck.c:3717
 #, gcc-internal-format
 msgid "taking address of expression of type %<void%>"
 msgstr ""
 
-#: c-typeck.c:3892 c-family/c-common.c:8649
+#: c-typeck.c:3879 c-family/c-common.c:8679
 #, gcc-internal-format
 msgid "assignment of read-only location %qE"
 msgstr ""
 
-#: c-typeck.c:3895 c-family/c-common.c:8650
+#: c-typeck.c:3882 c-family/c-common.c:8680
 #, gcc-internal-format
 msgid "increment of read-only location %qE"
 msgstr ""
 
-#: c-typeck.c:3898 c-family/c-common.c:8651
+#: c-typeck.c:3885 c-family/c-common.c:8681
 #, gcc-internal-format
 msgid "decrement of read-only location %qE"
 msgstr ""
 
-#: c-typeck.c:3939
+#: c-typeck.c:3926
 #, gcc-internal-format
 msgid "cannot take address of bit-field %qD"
 msgstr ""
 
-#: c-typeck.c:3967
+#: c-typeck.c:3954
 #, gcc-internal-format
 msgid "global register variable %qD used in nested function"
 msgstr ""
 
-#: c-typeck.c:3970
+#: c-typeck.c:3957
 #, gcc-internal-format
 msgid "register variable %qD used in nested function"
 msgstr ""
 
-#: c-typeck.c:3975
+#: c-typeck.c:3962
 #, gcc-internal-format
 msgid "address of global register variable %qD requested"
 msgstr ""
 
-#: c-typeck.c:3977
+#: c-typeck.c:3964
 #, gcc-internal-format
 msgid "address of register variable %qD requested"
 msgstr ""
 
-#: c-typeck.c:4071
+#: c-typeck.c:4058
 #, gcc-internal-format
 msgid "non-lvalue array in conditional expression"
 msgstr ""
 
-#: c-typeck.c:4127 cp/call.c:4337
+#: c-typeck.c:4114 cp/call.c:4549
 #, gcc-internal-format
 msgid ""
 "implicit conversion from %qT to %qT to match other result of conditional"
 msgstr ""
 
-#: c-typeck.c:4201
+#: c-typeck.c:4188
 #, gcc-internal-format
 msgid "ISO C forbids conditional expr with only one void side"
 msgstr ""
 
-#: c-typeck.c:4218
+#: c-typeck.c:4205
 #, gcc-internal-format
 msgid "pointers to disjoint address spaces used in conditional expression"
 msgstr ""
 
-#: c-typeck.c:4226 c-typeck.c:4235
+#: c-typeck.c:4213 c-typeck.c:4222
 #, gcc-internal-format
 msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
 msgstr ""
 
-#: c-typeck.c:4248
+#: c-typeck.c:4235
 #, gcc-internal-format
 msgid "pointer type mismatch in conditional expression"
 msgstr ""
 
-#: c-typeck.c:4257 c-typeck.c:4268
+#: c-typeck.c:4244 c-typeck.c:4255
 #, gcc-internal-format
 msgid "pointer/integer type mismatch in conditional expression"
 msgstr ""
 
-#: c-typeck.c:4282
+#: c-typeck.c:4269
 #, gcc-internal-format
 msgid "type mismatch in conditional expression"
 msgstr ""
 
-#: c-typeck.c:4376
+#: c-typeck.c:4363
 #, gcc-internal-format
 msgid "left-hand operand of comma expression has no effect"
 msgstr ""
 
-#: c-typeck.c:4446
+#: c-typeck.c:4433
 msgid "cast adds %q#v qualifier to function type"
 msgstr ""
 
-#: c-typeck.c:4452
+#: c-typeck.c:4439
 msgid "cast discards %q#v qualifier from pointer target type"
 msgstr ""
 
-#: c-typeck.c:4487
+#: c-typeck.c:4474
 #, gcc-internal-format
 msgid ""
 "to be safe all intermediate pointers in cast from %qT to %qT must be %<const"
 "%> qualified"
 msgstr ""
 
-#: c-typeck.c:4524
+#: c-typeck.c:4511
 #, gcc-internal-format
 msgid "cast specifies array type"
 msgstr ""
 
-#: c-typeck.c:4530
+#: c-typeck.c:4517
 #, gcc-internal-format
 msgid "cast specifies function type"
 msgstr ""
 
-#: c-typeck.c:4546
+#: c-typeck.c:4533
 #, gcc-internal-format
 msgid "ISO C forbids casting nonscalar to the same type"
 msgstr ""
 
-#: c-typeck.c:4563
+#: c-typeck.c:4550
 #, gcc-internal-format
 msgid "ISO C forbids casts to union type"
 msgstr ""
 
-#: c-typeck.c:4573
+#: c-typeck.c:4560
 #, gcc-internal-format
 msgid "cast to union type from type not present in union"
 msgstr ""
 
-#: c-typeck.c:4608
+#: c-typeck.c:4595
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "cast to %s address space pointer from disjoint generic address space pointer"
 msgstr ""
 
-#: c-typeck.c:4613
+#: c-typeck.c:4600
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "cast to generic address space pointer from disjoint %s address space pointer"
 msgstr ""
 
-#: c-typeck.c:4618
+#: c-typeck.c:4605
 #, gcc-internal-format, gfc-internal-format
 msgid "cast to %s address space pointer from disjoint %s address space pointer"
 msgstr ""
 
-#: c-typeck.c:4638
+#: c-typeck.c:4625
 #, gcc-internal-format
 msgid "cast increases required alignment of target type"
 msgstr ""
 
-#: c-typeck.c:4649
+#: c-typeck.c:4636
 #, gcc-internal-format
 msgid "cast from pointer to integer of different size"
 msgstr ""
 
-#: c-typeck.c:4654
+#: c-typeck.c:4641
 #, gcc-internal-format
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr ""
 
-#: c-typeck.c:4663 cp/typeck.c:6379
+#: c-typeck.c:4650 cp/typeck.c:6427
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr ""
 
-#: c-typeck.c:4677
+#: c-typeck.c:4664
 #, gcc-internal-format
 msgid "ISO C forbids conversion of function pointer to object pointer type"
 msgstr ""
 
-#: c-typeck.c:4686
+#: c-typeck.c:4673
 #, gcc-internal-format
 msgid "ISO C forbids conversion of object pointer to function pointer type"
 msgstr ""
 
-#: c-typeck.c:4769
+#: c-typeck.c:4756
 #, gcc-internal-format
 msgid "defining a type in a cast is invalid in C++"
 msgstr ""
 
-#: c-typeck.c:4908 c-typeck.c:5205
+#: c-typeck.c:4895 c-typeck.c:5192
 #, gcc-internal-format
 msgid "enum conversion in assignment is invalid in C++"
 msgstr ""
@@ -14587,694 +14707,694 @@
 #. strings are complete sentences, visible to gettext and checked at
 #. compile time.  It is the same as WARN_FOR_ASSIGNMENT but with an
 #. extra parameter to enumerate qualifiers.
-#: c-typeck.c:5113 c-typeck.c:5143 c-typeck.c:5670
+#: c-typeck.c:5100 c-typeck.c:5130 c-typeck.c:5657
 #, gcc-internal-format
 msgid "expected %qT but argument is of type %qT"
 msgstr ""
 
-#: c-typeck.c:5203
+#: c-typeck.c:5190
 #, gcc-internal-format
 msgid "enum conversion when passing argument %d of %qE is invalid in C++"
 msgstr ""
 
-#: c-typeck.c:5207 c-typeck.c:7762
+#: c-typeck.c:5194 c-typeck.c:7759
 #, gcc-internal-format
 msgid "enum conversion in initialization is invalid in C++"
 msgstr ""
 
-#: c-typeck.c:5209
+#: c-typeck.c:5196
 #, gcc-internal-format
 msgid "enum conversion in return is invalid in C++"
 msgstr ""
 
-#: c-typeck.c:5238
+#: c-typeck.c:5225
 #, gcc-internal-format
 msgid "cannot pass rvalue to reference parameter"
 msgstr ""
 
-#: c-typeck.c:5368 c-typeck.c:5591
+#: c-typeck.c:5355 c-typeck.c:5578
 msgid ""
 "passing argument %d of %qE makes %q#v qualified function pointer from "
 "unqualified"
 msgstr ""
 
-#: c-typeck.c:5371 c-typeck.c:5594
+#: c-typeck.c:5358 c-typeck.c:5581
 msgid "assignment makes %q#v qualified function pointer from unqualified"
 msgstr ""
 
-#: c-typeck.c:5374 c-typeck.c:5596
+#: c-typeck.c:5361 c-typeck.c:5583
 msgid "initialization makes %q#v qualified function pointer from unqualified"
 msgstr ""
 
-#: c-typeck.c:5377 c-typeck.c:5598
+#: c-typeck.c:5364 c-typeck.c:5585
 msgid "return makes %q#v qualified function pointer from unqualified"
 msgstr ""
 
-#: c-typeck.c:5384 c-typeck.c:5554
+#: c-typeck.c:5371 c-typeck.c:5541
 msgid ""
 "passing argument %d of %qE discards %qv qualifier from pointer target type"
 msgstr ""
 
-#: c-typeck.c:5386 c-typeck.c:5556
+#: c-typeck.c:5373 c-typeck.c:5543
 msgid "assignment discards %qv qualifier from pointer target type"
 msgstr ""
 
-#: c-typeck.c:5388 c-typeck.c:5558
+#: c-typeck.c:5375 c-typeck.c:5545
 msgid "initialization discards %qv qualifier from pointer target type"
 msgstr ""
 
-#: c-typeck.c:5390 c-typeck.c:5560
+#: c-typeck.c:5377 c-typeck.c:5547
 msgid "return discards %qv qualifier from pointer target type"
 msgstr ""
 
-#: c-typeck.c:5399
+#: c-typeck.c:5386
 #, gcc-internal-format
 msgid "ISO C prohibits argument conversion to union type"
 msgstr ""
 
-#: c-typeck.c:5454
+#: c-typeck.c:5441
 #, gcc-internal-format
 msgid "request for implicit conversion from %qT to %qT not permitted in C++"
 msgstr ""
 
-#: c-typeck.c:5466
+#: c-typeck.c:5453
 #, gcc-internal-format
 msgid "passing argument %d of %qE from pointer to non-enclosed address space"
 msgstr ""
 
-#: c-typeck.c:5470
+#: c-typeck.c:5457
 #, gcc-internal-format
 msgid "assignment from pointer to non-enclosed address space"
 msgstr ""
 
-#: c-typeck.c:5474
+#: c-typeck.c:5461
 #, gcc-internal-format
 msgid "initialization from pointer to non-enclosed address space"
 msgstr ""
 
-#: c-typeck.c:5478
+#: c-typeck.c:5465
 #, gcc-internal-format
 msgid "return from pointer to non-enclosed address space"
 msgstr ""
 
-#: c-typeck.c:5496
+#: c-typeck.c:5483
 #, gcc-internal-format
 msgid "argument %d of %qE might be a candidate for a format attribute"
 msgstr ""
 
-#: c-typeck.c:5502
+#: c-typeck.c:5489
 #, gcc-internal-format
 msgid "assignment left-hand side might be a candidate for a format attribute"
 msgstr ""
 
-#: c-typeck.c:5507
+#: c-typeck.c:5494
 #, gcc-internal-format
 msgid ""
 "initialization left-hand side might be a candidate for a format attribute"
 msgstr ""
 
-#: c-typeck.c:5512 cp/typeck.c:7337
+#: c-typeck.c:5499 cp/typeck.c:7385
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr ""
 
-#: c-typeck.c:5536
+#: c-typeck.c:5523
 #, gcc-internal-format
 msgid ""
 "ISO C forbids passing argument %d of %qE between function pointer and %<void "
 "*%>"
 msgstr ""
 
-#: c-typeck.c:5539
+#: c-typeck.c:5526
 #, gcc-internal-format
 msgid "ISO C forbids assignment between function pointer and %<void *%>"
 msgstr ""
 
-#: c-typeck.c:5541
+#: c-typeck.c:5528
 #, gcc-internal-format
 msgid "ISO C forbids initialization between function pointer and %<void *%>"
 msgstr ""
 
-#: c-typeck.c:5543
+#: c-typeck.c:5530
 #, gcc-internal-format
 msgid "ISO C forbids return between function pointer and %<void *%>"
 msgstr ""
 
-#: c-typeck.c:5572
+#: c-typeck.c:5559
 #, gcc-internal-format
 msgid "pointer targets in passing argument %d of %qE differ in signedness"
 msgstr ""
 
-#: c-typeck.c:5574
+#: c-typeck.c:5561
 #, gcc-internal-format
 msgid "pointer targets in assignment differ in signedness"
 msgstr ""
 
-#: c-typeck.c:5576
+#: c-typeck.c:5563
 #, gcc-internal-format
 msgid "pointer targets in initialization differ in signedness"
 msgstr ""
 
-#: c-typeck.c:5578
+#: c-typeck.c:5565
 #, gcc-internal-format
 msgid "pointer targets in return differ in signedness"
 msgstr ""
 
-#: c-typeck.c:5607
+#: c-typeck.c:5594
 #, gcc-internal-format
 msgid "passing argument %d of %qE from incompatible pointer type"
 msgstr ""
 
-#: c-typeck.c:5609
+#: c-typeck.c:5596
 #, gcc-internal-format
 msgid "assignment from incompatible pointer type"
 msgstr ""
 
-#: c-typeck.c:5610
+#: c-typeck.c:5597
 #, gcc-internal-format
 msgid "initialization from incompatible pointer type"
 msgstr ""
 
-#: c-typeck.c:5612
+#: c-typeck.c:5599
 #, gcc-internal-format
 msgid "return from incompatible pointer type"
 msgstr ""
 
 #. ??? This should not be an error when inlining calls to
 #. unprototyped functions.
-#: c-typeck.c:5620 c-typeck.c:6170 cp/typeck.c:1855
+#: c-typeck.c:5607 c-typeck.c:6159 cp/typeck.c:1866
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr ""
 
-#: c-typeck.c:5630
+#: c-typeck.c:5617
 #, gcc-internal-format
 msgid "passing argument %d of %qE makes pointer from integer without a cast"
 msgstr ""
 
-#: c-typeck.c:5632
+#: c-typeck.c:5619
 #, gcc-internal-format
 msgid "assignment makes pointer from integer without a cast"
 msgstr ""
 
-#: c-typeck.c:5634
+#: c-typeck.c:5621
 #, gcc-internal-format
 msgid "initialization makes pointer from integer without a cast"
 msgstr ""
 
-#: c-typeck.c:5636
+#: c-typeck.c:5623
 #, gcc-internal-format
 msgid "return makes pointer from integer without a cast"
 msgstr ""
 
-#: c-typeck.c:5644
+#: c-typeck.c:5631
 #, gcc-internal-format
 msgid "passing argument %d of %qE makes integer from pointer without a cast"
 msgstr ""
 
-#: c-typeck.c:5646
+#: c-typeck.c:5633
 #, gcc-internal-format
 msgid "assignment makes integer from pointer without a cast"
 msgstr ""
 
-#: c-typeck.c:5648
+#: c-typeck.c:5635
 #, gcc-internal-format
 msgid "initialization makes integer from pointer without a cast"
 msgstr ""
 
-#: c-typeck.c:5650
+#: c-typeck.c:5637
 #, gcc-internal-format
 msgid "return makes integer from pointer without a cast"
 msgstr ""
 
-#: c-typeck.c:5667 c-family/c-common.c:8910 config/mep/mep.c:6331
+#: c-typeck.c:5654 c-family/c-common.c:8942 config/mep/mep.c:6320
 #, gcc-internal-format
 msgid "incompatible type for argument %d of %qE"
 msgstr ""
 
-#: c-typeck.c:5673
+#: c-typeck.c:5660
 #, gcc-internal-format
 msgid "incompatible types when assigning to type %qT from type %qT"
 msgstr ""
 
-#: c-typeck.c:5678
+#: c-typeck.c:5665
 #, gcc-internal-format
 msgid "incompatible types when initializing type %qT using type %qT"
 msgstr ""
 
-#: c-typeck.c:5683
+#: c-typeck.c:5670
 #, gcc-internal-format
 msgid "incompatible types when returning type %qT but %qT was expected"
 msgstr ""
 
-#: c-typeck.c:5747
+#: c-typeck.c:5734
 #, gcc-internal-format
 msgid "traditional C rejects automatic aggregate initialization"
 msgstr ""
 
-#: c-typeck.c:5921 c-typeck.c:5938 c-typeck.c:5956
+#: c-typeck.c:5910 c-typeck.c:5927 c-typeck.c:5945
 #, gcc-internal-format
 msgid "(near initialization for %qs)"
 msgstr ""
 
-#: c-typeck.c:5971
+#: c-typeck.c:5960
 #, gcc-internal-format
 msgid "array initialized from parenthesized string constant"
 msgstr ""
 
-#: c-typeck.c:6044 c-typeck.c:6919
+#: c-typeck.c:6033 c-typeck.c:6908
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr ""
 
-#: c-typeck.c:6054 cp/typeck2.c:818
+#: c-typeck.c:6043 cp/typeck2.c:838
 #, gcc-internal-format
 msgid "char-array initialized from wide string"
 msgstr ""
 
-#: c-typeck.c:6062
+#: c-typeck.c:6051
 #, gcc-internal-format
 msgid "wide character array initialized from non-wide string"
 msgstr ""
 
-#: c-typeck.c:6068
+#: c-typeck.c:6057
 #, gcc-internal-format
 msgid "wide character array initialized from incompatible wide string"
 msgstr ""
 
-#: c-typeck.c:6102
+#: c-typeck.c:6091
 #, gcc-internal-format
 msgid "array of inappropriate type initialized from string constant"
 msgstr ""
 
-#: c-typeck.c:6196
+#: c-typeck.c:6185
 #, gcc-internal-format
 msgid "array initialized from non-constant array expression"
 msgstr ""
 
-#: c-typeck.c:6210 c-typeck.c:6213 c-typeck.c:6221 c-typeck.c:6260
-#: c-typeck.c:7735
+#: c-typeck.c:6199 c-typeck.c:6202 c-typeck.c:6210 c-typeck.c:6249
+#: c-typeck.c:7732
 #, gcc-internal-format
 msgid "initializer element is not constant"
 msgstr ""
 
-#: c-typeck.c:6226 c-typeck.c:6272 c-typeck.c:7745
+#: c-typeck.c:6215 c-typeck.c:6261 c-typeck.c:7742
 #, gcc-internal-format
 msgid "initializer element is not a constant expression"
 msgstr ""
 
-#: c-typeck.c:6267 c-typeck.c:7740
+#: c-typeck.c:6256 c-typeck.c:7737
 #, gcc-internal-format
 msgid "initializer element is not computable at load time"
 msgstr ""
 
-#: c-typeck.c:6285
+#: c-typeck.c:6274
 #, gcc-internal-format
 msgid "invalid initializer"
 msgstr ""
 
-#: c-typeck.c:6559 cp/decl.c:5357
+#: c-typeck.c:6548 cp/decl.c:5471
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr ""
 
-#: c-typeck.c:6774
+#: c-typeck.c:6763
 #, gcc-internal-format
 msgid "extra brace group at end of initializer"
 msgstr ""
 
-#: c-typeck.c:6795
+#: c-typeck.c:6784
 #, gcc-internal-format
 msgid "missing braces around initializer"
 msgstr ""
 
-#: c-typeck.c:6856
+#: c-typeck.c:6845
 #, gcc-internal-format
 msgid "braces around scalar initializer"
 msgstr ""
 
-#: c-typeck.c:6916
+#: c-typeck.c:6905
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr ""
 
-#: c-typeck.c:6947
+#: c-typeck.c:6944
 #, gcc-internal-format
 msgid "missing initializer"
 msgstr ""
 
-#: c-typeck.c:6969
+#: c-typeck.c:6966
 #, gcc-internal-format
 msgid "empty scalar initializer"
 msgstr ""
 
-#: c-typeck.c:6974
+#: c-typeck.c:6971
 #, gcc-internal-format
 msgid "extra elements in scalar initializer"
 msgstr ""
 
-#: c-typeck.c:7085 c-typeck.c:7166
+#: c-typeck.c:7082 c-typeck.c:7163
 #, gcc-internal-format
 msgid "array index in non-array initializer"
 msgstr ""
 
-#: c-typeck.c:7090 c-typeck.c:7222
+#: c-typeck.c:7087 c-typeck.c:7219
 #, gcc-internal-format
 msgid "field name not in record or union initializer"
 msgstr ""
 
-#: c-typeck.c:7139
+#: c-typeck.c:7136
 #, gcc-internal-format
 msgid "array index in initializer not of integer type"
 msgstr ""
 
-#: c-typeck.c:7148 c-typeck.c:7157
+#: c-typeck.c:7145 c-typeck.c:7154
 #, gcc-internal-format
 msgid "array index in initializer is not an integer constant expression"
 msgstr ""
 
-#: c-typeck.c:7162 c-typeck.c:7164
+#: c-typeck.c:7159 c-typeck.c:7161
 #, gcc-internal-format
 msgid "nonconstant array index in initializer"
 msgstr ""
 
-#: c-typeck.c:7168 c-typeck.c:7171
+#: c-typeck.c:7165 c-typeck.c:7168
 #, gcc-internal-format
 msgid "array index in initializer exceeds array bounds"
 msgstr ""
 
-#: c-typeck.c:7185
+#: c-typeck.c:7182
 #, gcc-internal-format
 msgid "empty index range in initializer"
 msgstr ""
 
-#: c-typeck.c:7194
+#: c-typeck.c:7191
 #, gcc-internal-format
 msgid "array index range in initializer exceeds array bounds"
 msgstr ""
 
-#: c-typeck.c:7229
+#: c-typeck.c:7226
 #, gcc-internal-format
 msgid "unknown field %qE specified in initializer"
 msgstr ""
 
-#: c-typeck.c:7281 c-typeck.c:7308 c-typeck.c:7836
+#: c-typeck.c:7278 c-typeck.c:7305 c-typeck.c:7833
 #, gcc-internal-format
 msgid "initialized field with side-effects overwritten"
 msgstr ""
 
-#: c-typeck.c:7283 c-typeck.c:7310 c-typeck.c:7838
+#: c-typeck.c:7280 c-typeck.c:7307 c-typeck.c:7835
 #, gcc-internal-format
 msgid "initialized field overwritten"
 msgstr ""
 
-#: c-typeck.c:8055
+#: c-typeck.c:8052
 #, gcc-internal-format
 msgid "excess elements in char array initializer"
 msgstr ""
 
-#: c-typeck.c:8062 c-typeck.c:8123
+#: c-typeck.c:8059 c-typeck.c:8120
 #, gcc-internal-format
 msgid "excess elements in struct initializer"
 msgstr ""
 
-#: c-typeck.c:8138
+#: c-typeck.c:8135
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr ""
 
-#: c-typeck.c:8209
+#: c-typeck.c:8206
 #, gcc-internal-format
 msgid "excess elements in union initializer"
 msgstr ""
 
-#: c-typeck.c:8231
+#: c-typeck.c:8228
 #, gcc-internal-format
 msgid "traditional C rejects initialization of unions"
 msgstr ""
 
-#: c-typeck.c:8299
+#: c-typeck.c:8296
 #, gcc-internal-format
 msgid "excess elements in array initializer"
 msgstr ""
 
-#: c-typeck.c:8333
+#: c-typeck.c:8330
 #, gcc-internal-format
 msgid "excess elements in vector initializer"
 msgstr ""
 
-#: c-typeck.c:8365
+#: c-typeck.c:8362
 #, gcc-internal-format
 msgid "excess elements in scalar initializer"
 msgstr ""
 
-#: c-typeck.c:8577
+#: c-typeck.c:8586
 #, gcc-internal-format
 msgid "ISO C forbids %<goto *expr;%>"
 msgstr ""
 
-#: c-typeck.c:8599 cp/typeck.c:7550
+#: c-typeck.c:8608 cp/typeck.c:7598
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr ""
 
-#: c-typeck.c:8622
+#: c-typeck.c:8631
 #, gcc-internal-format
 msgid "%<return%> with no value, in function returning non-void"
 msgstr ""
 
-#: c-typeck.c:8632
+#: c-typeck.c:8641
 #, gcc-internal-format
 msgid "%<return%> with a value, in function returning void"
 msgstr ""
 
-#: c-typeck.c:8634
+#: c-typeck.c:8643
 #, gcc-internal-format
 msgid "ISO C forbids %<return%> with expression, in function returning void"
 msgstr ""
 
-#: c-typeck.c:8695
+#: c-typeck.c:8704
 #, gcc-internal-format
 msgid "function returns address of local variable"
 msgstr ""
 
-#: c-typeck.c:8768 cp/semantics.c:1038
+#: c-typeck.c:8777 cp/semantics.c:1036
 #, gcc-internal-format
 msgid "switch quantity not an integer"
 msgstr ""
 
-#: c-typeck.c:8781
+#: c-typeck.c:8790
 #, gcc-internal-format
 msgid "%<long%> switch expression not converted to %<int%> in ISO C"
 msgstr ""
 
-#: c-typeck.c:8817 c-typeck.c:8825
+#: c-typeck.c:8826 c-typeck.c:8834
 #, gcc-internal-format
 msgid "case label is not an integer constant expression"
 msgstr ""
 
-#: c-typeck.c:8831 cp/parser.c:7997
+#: c-typeck.c:8840 cp/parser.c:8070
 #, gcc-internal-format
 msgid "case label not within a switch statement"
 msgstr ""
 
-#: c-typeck.c:8833
+#: c-typeck.c:8842
 #, gcc-internal-format
 msgid "%<default%> label not within a switch statement"
 msgstr ""
 
-#: c-typeck.c:8916 cp/parser.c:8293
+#: c-typeck.c:8925 cp/parser.c:8370
 #, gcc-internal-format
 msgid "suggest explicit braces to avoid ambiguous %<else%>"
 msgstr ""
 
-#: c-typeck.c:9025 cp/cp-gimplify.c:91 cp/parser.c:8885
+#: c-typeck.c:9034 cp/cp-gimplify.c:92 cp/parser.c:9048
 #, gcc-internal-format
 msgid "break statement not within loop or switch"
 msgstr ""
 
-#: c-typeck.c:9027 cp/parser.c:8906
+#: c-typeck.c:9036 cp/parser.c:9069
 #, gcc-internal-format
 msgid "continue statement not within a loop"
 msgstr ""
 
-#: c-typeck.c:9032 cp/parser.c:8896
+#: c-typeck.c:9041 cp/parser.c:9059
 #, gcc-internal-format
 msgid "break statement used with OpenMP for loop"
 msgstr ""
 
-#: c-typeck.c:9058 cp/cp-gimplify.c:411
+#: c-typeck.c:9067 cp/cp-gimplify.c:412
 #, gcc-internal-format
 msgid "statement with no effect"
 msgstr ""
 
-#: c-typeck.c:9084
+#: c-typeck.c:9093
 #, gcc-internal-format
 msgid "expression statement has incomplete type"
 msgstr ""
 
-#: c-typeck.c:9686 cp/typeck.c:3860
+#: c-typeck.c:9695 cp/typeck.c:3872
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr ""
 
-#: c-typeck.c:9697 cp/typeck.c:3867
+#: c-typeck.c:9706 cp/typeck.c:3879
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr ""
 
-#: c-typeck.c:9738 cp/typeck.c:3889
+#: c-typeck.c:9747 cp/typeck.c:3901
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr ""
 
-#: c-typeck.c:9745 cp/typeck.c:3895
+#: c-typeck.c:9754 cp/typeck.c:3907
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr ""
 
-#: c-typeck.c:9766 cp/typeck.c:3941
+#: c-typeck.c:9775 cp/typeck.c:3953
 #, gcc-internal-format
 msgid "comparing floating point with == or != is unsafe"
 msgstr ""
 
-#: c-typeck.c:9783 c-typeck.c:9803
+#: c-typeck.c:9792 c-typeck.c:9812
 #, gcc-internal-format
 msgid ""
 "the comparison will always evaluate as %<false%> for the address of %qD will "
 "never be NULL"
 msgstr ""
 
-#: c-typeck.c:9789 c-typeck.c:9809
+#: c-typeck.c:9798 c-typeck.c:9818
 #, gcc-internal-format
 msgid ""
 "the comparison will always evaluate as %<true%> for the address of %qD will "
 "never be NULL"
 msgstr ""
 
-#: c-typeck.c:9830 c-typeck.c:9905
+#: c-typeck.c:9839 c-typeck.c:9914
 #, gcc-internal-format
 msgid "comparison of pointers to disjoint address spaces"
 msgstr ""
 
-#: c-typeck.c:9837 c-typeck.c:9843
+#: c-typeck.c:9846 c-typeck.c:9852
 #, gcc-internal-format
 msgid "ISO C forbids comparison of %<void *%> with function pointer"
 msgstr ""
 
-#: c-typeck.c:9850 c-typeck.c:9915
+#: c-typeck.c:9859 c-typeck.c:9924
 #, gcc-internal-format
 msgid "comparison of distinct pointer types lacks a cast"
 msgstr ""
 
-#: c-typeck.c:9862 c-typeck.c:9867 c-typeck.c:9941 c-typeck.c:9946
+#: c-typeck.c:9871 c-typeck.c:9876 c-typeck.c:9950 c-typeck.c:9955
 #, gcc-internal-format
 msgid "comparison between pointer and integer"
 msgstr ""
 
-#: c-typeck.c:9893
+#: c-typeck.c:9902
 #, gcc-internal-format
 msgid "comparison of complete and incomplete pointers"
 msgstr ""
 
-#: c-typeck.c:9895
+#: c-typeck.c:9904
 #, gcc-internal-format
 msgid "ISO C forbids ordered comparisons of pointers to functions"
 msgstr ""
 
-#: c-typeck.c:9900
+#: c-typeck.c:9909
 #, gcc-internal-format
 msgid "ordered comparison of pointer with null pointer"
 msgstr ""
 
-#: c-typeck.c:9923 c-typeck.c:9926 c-typeck.c:9933 c-typeck.c:9936
+#: c-typeck.c:9932 c-typeck.c:9935 c-typeck.c:9942 c-typeck.c:9945
 #, gcc-internal-format
 msgid "ordered comparison of pointer with integer zero"
 msgstr ""
 
-#: c-typeck.c:9980 cp/typeck.c:4254
+#: c-typeck.c:9989 cp/typeck.c:4266
 #, gcc-internal-format
 msgid ""
 "implicit conversion from %qT to %qT to match other operand of binary "
 "expression"
 msgstr ""
 
-#: c-typeck.c:10262
+#: c-typeck.c:10271
 #, gcc-internal-format
 msgid "used array that cannot be converted to pointer where scalar is required"
 msgstr ""
 
-#: c-typeck.c:10266
+#: c-typeck.c:10275
 #, gcc-internal-format
 msgid "used struct type value where scalar is required"
 msgstr ""
 
-#: c-typeck.c:10270
+#: c-typeck.c:10279
 #, gcc-internal-format
 msgid "used union type value where scalar is required"
 msgstr ""
 
-#: c-typeck.c:10431 cp/semantics.c:3894
+#: c-typeck.c:10440 cp/semantics.c:3998
 #, gcc-internal-format
 msgid "%qE has invalid type for %<reduction%>"
 msgstr ""
 
-#: c-typeck.c:10466 cp/semantics.c:3907
+#: c-typeck.c:10475 cp/semantics.c:4011
 #, gcc-internal-format
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr ""
 
-#: c-typeck.c:10483 cp/semantics.c:3917
+#: c-typeck.c:10492 cp/semantics.c:4021
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr ""
 
-#: c-typeck.c:10493 cp/semantics.c:3714
+#: c-typeck.c:10502 cp/semantics.c:3818
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr ""
 
-#: c-typeck.c:10501 c-typeck.c:10523 c-typeck.c:10545
+#: c-typeck.c:10510 c-typeck.c:10532 c-typeck.c:10554
 #, gcc-internal-format
 msgid "%qE appears more than once in data clauses"
 msgstr ""
 
-#: c-typeck.c:10516 cp/semantics.c:3737
+#: c-typeck.c:10525 cp/semantics.c:3841
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr ""
 
-#: c-typeck.c:10538 cp/semantics.c:3759
+#: c-typeck.c:10547 cp/semantics.c:3863
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr ""
 
-#: c-typeck.c:10600 cp/semantics.c:3958
+#: c-typeck.c:10609 cp/semantics.c:4063
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr ""
 
-#: c-typeck.c:10689
+#: c-typeck.c:10698
 #, gcc-internal-format
 msgid "C++ requires promoted type, not enum type, in %<va_arg%>"
 msgstr ""
 
-#: calls.c:2076
+#: calls.c:2089
 #, gcc-internal-format
 msgid "function call has aggregate value"
 msgstr ""
 
-#: cfgexpand.c:1106 function.c:1018 varasm.c:1990
+#: cfgexpand.c:1070 function.c:1018 varasm.c:1983
 #, gcc-internal-format
 msgid "size of variable %q+D is too large"
 msgstr ""
 
-#: cfgexpand.c:4049
+#: cfgexpand.c:4041
 #, gcc-internal-format
 msgid "stack protector not protecting local variables: variable length buffer"
 msgstr ""
 
-#: cfgexpand.c:4053
+#: cfgexpand.c:4045
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "stack protector not protecting function: all local arrays are less than %d "
@@ -15366,7 +15486,7 @@
 msgid "%s does not support can_remove_branch_p"
 msgstr ""
 
-#: cfghooks.c:394
+#: cfghooks.c:393
 #, gcc-internal-format, gfc-internal-format
 msgid "%s does not support redirect_edge_and_branch_force"
 msgstr ""
@@ -15421,27 +15541,32 @@
 msgid "%s does not support make_forwarder_block"
 msgstr ""
 
-#: cfghooks.c:881
+#: cfghooks.c:889
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support force_nonfallthru"
+msgstr ""
+
+#: cfghooks.c:917
 #, gcc-internal-format, gfc-internal-format
 msgid "%s does not support can_duplicate_block_p"
 msgstr ""
 
-#: cfghooks.c:903
+#: cfghooks.c:939
 #, gcc-internal-format, gfc-internal-format
 msgid "%s does not support duplicate_block"
 msgstr ""
 
-#: cfghooks.c:978
+#: cfghooks.c:1014
 #, gcc-internal-format, gfc-internal-format
 msgid "%s does not support block_ends_with_call_p"
 msgstr ""
 
-#: cfghooks.c:989
+#: cfghooks.c:1025
 #, gcc-internal-format, gfc-internal-format
 msgid "%s does not support block_ends_with_condjump_p"
 msgstr ""
 
-#: cfghooks.c:1007
+#: cfghooks.c:1043
 #, gcc-internal-format, gfc-internal-format
 msgid "%s does not support flow_call_edges_add"
 msgstr ""
@@ -15541,375 +15666,515 @@
 msgid "%d exits recorded for loop %d (having %d exits)"
 msgstr ""
 
-#: cfgrtl.c:1840
+#: cfgrtl.c:1806
 #, gcc-internal-format, gfc-internal-format
 msgid "BB_RTL flag not set for block %d"
 msgstr ""
 
-#: cfgrtl.c:1847
+#: cfgrtl.c:1813
 #, gcc-internal-format, gfc-internal-format
 msgid "insn %d basic block pointer is %d, should be %d"
 msgstr ""
 
-#: cfgrtl.c:1858
+#: cfgrtl.c:1824
 #, gcc-internal-format, gfc-internal-format
 msgid "insn %d in header of bb %d has non-NULL basic block"
 msgstr ""
 
-#: cfgrtl.c:1866
+#: cfgrtl.c:1832
 #, gcc-internal-format, gfc-internal-format
 msgid "insn %d in footer of bb %d has non-NULL basic block"
 msgstr ""
 
-#: cfgrtl.c:1888
+#: cfgrtl.c:1854
 #, gcc-internal-format
 msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
 msgstr ""
 
-#: cfgrtl.c:1903
+#: cfgrtl.c:1869
 #, gcc-internal-format, gfc-internal-format
 msgid "fallthru edge crosses section boundary (bb %i)"
 msgstr ""
 
-#: cfgrtl.c:1927
+#: cfgrtl.c:1893
 #, gcc-internal-format, gfc-internal-format
 msgid "missing REG_EH_REGION note in the end of bb %i"
 msgstr ""
 
-#: cfgrtl.c:1932
+#: cfgrtl.c:1898
 #, gcc-internal-format, gfc-internal-format
 msgid "too many eh edges %i"
 msgstr ""
 
-#: cfgrtl.c:1940
+#: cfgrtl.c:1906
 #, gcc-internal-format, gfc-internal-format
 msgid "too many outgoing branch edges from bb %i"
 msgstr ""
 
-#: cfgrtl.c:1945
+#: cfgrtl.c:1911
 #, gcc-internal-format, gfc-internal-format
 msgid "fallthru edge after unconditional jump %i"
 msgstr ""
 
-#: cfgrtl.c:1950
+#: cfgrtl.c:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of branch edges after unconditional jump %i"
 msgstr ""
 
-#: cfgrtl.c:1957
+#: cfgrtl.c:1923
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong amount of branch edges after conditional jump %i"
 msgstr ""
 
-#: cfgrtl.c:1963
+#: cfgrtl.c:1929
 #, gcc-internal-format, gfc-internal-format
 msgid "call edges for non-call insn in bb %i"
 msgstr ""
 
-#: cfgrtl.c:1972
+#: cfgrtl.c:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "abnormal edges for no purpose in bb %i"
 msgstr ""
 
-#: cfgrtl.c:1984
+#: cfgrtl.c:1950
 #, gcc-internal-format, gfc-internal-format
 msgid "insn %d inside basic block %d but block_for_insn is NULL"
 msgstr ""
 
-#: cfgrtl.c:1988
+#: cfgrtl.c:1954
 #, gcc-internal-format, gfc-internal-format
 msgid "insn %d inside basic block %d but block_for_insn is %i"
 msgstr ""
 
-#: cfgrtl.c:2002 cfgrtl.c:2012
+#: cfgrtl.c:1968 cfgrtl.c:1978
 #, gcc-internal-format, gfc-internal-format
 msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
 msgstr ""
 
-#: cfgrtl.c:2025
+#: cfgrtl.c:1991
 #, gcc-internal-format, gfc-internal-format
 msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
 msgstr ""
 
-#: cfgrtl.c:2035
+#: cfgrtl.c:2001
 #, gcc-internal-format, gfc-internal-format
 msgid "in basic block %d:"
 msgstr ""
 
-#: cfgrtl.c:2087 cfgrtl.c:2177
+#: cfgrtl.c:2053 cfgrtl.c:2143
 #, gcc-internal-format, gfc-internal-format
 msgid "insn %d outside of basic blocks has non-NULL bb field"
 msgstr ""
 
-#: cfgrtl.c:2095
+#: cfgrtl.c:2061
 #, gcc-internal-format, gfc-internal-format
 msgid "end insn %d for block %d not found in the insn stream"
 msgstr ""
 
-#: cfgrtl.c:2108
+#: cfgrtl.c:2074
 #, gcc-internal-format, gfc-internal-format
 msgid "insn %d is in multiple basic blocks (%d and %d)"
 msgstr ""
 
-#: cfgrtl.c:2120
+#: cfgrtl.c:2086
 #, gcc-internal-format, gfc-internal-format
 msgid "head insn %d for block %d not found in the insn stream"
 msgstr ""
 
-#: cfgrtl.c:2137
+#: cfgrtl.c:2103
 #, gcc-internal-format, gfc-internal-format
 msgid "missing barrier after block %i"
 msgstr ""
 
-#: cfgrtl.c:2153
+#: cfgrtl.c:2119
 #, gcc-internal-format, gfc-internal-format
 msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
 msgstr ""
 
-#: cfgrtl.c:2162
+#: cfgrtl.c:2128
 #, gcc-internal-format, gfc-internal-format
 msgid "verify_flow_info: Incorrect fallthru %i->%i"
 msgstr ""
 
-#: cfgrtl.c:2195
+#: cfgrtl.c:2161
 #, gcc-internal-format
 msgid "basic blocks not laid down consecutively"
 msgstr ""
 
-#: cfgrtl.c:2232
+#: cfgrtl.c:2198
 #, gcc-internal-format, gfc-internal-format
 msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
 msgstr ""
 
-#: cgraph.c:2052
+#: cgraph.c:1974
 #, gcc-internal-format
 msgid "%D renamed after being referenced in assembly"
 msgstr ""
 
-#: cgraphunit.c:416
+#: cgraphunit.c:410
 #, gcc-internal-format
 msgid "caller edge count is negative"
 msgstr ""
 
-#: cgraphunit.c:421
+#: cgraphunit.c:415
 #, gcc-internal-format
 msgid "caller edge frequency is negative"
 msgstr ""
 
-#: cgraphunit.c:426
+#: cgraphunit.c:420
 #, gcc-internal-format
 msgid "caller edge frequency is too large"
 msgstr ""
 
-#: cgraphunit.c:435
+#: cgraphunit.c:434
 #, gcc-internal-format, gfc-internal-format
 msgid "caller edge frequency %i does not match BB frequency %i"
 msgstr ""
 
-#: cgraphunit.c:471
+#: cgraphunit.c:470
 #, gcc-internal-format, gfc-internal-format
 msgid "aux field set for edge %s->%s"
 msgstr ""
 
-#: cgraphunit.c:478
+#: cgraphunit.c:477
 #, gcc-internal-format
 msgid "execution count is negative"
 msgstr ""
 
-#: cgraphunit.c:483
+#: cgraphunit.c:482
 #, gcc-internal-format
 msgid "externally visible inline clone"
 msgstr ""
 
-#: cgraphunit.c:488
+#: cgraphunit.c:487
 #, gcc-internal-format
 msgid "inline clone with address taken"
 msgstr ""
 
-#: cgraphunit.c:493
+#: cgraphunit.c:492
 #, gcc-internal-format
 msgid "inline clone is needed"
 msgstr ""
 
-#: cgraphunit.c:500
+#: cgraphunit.c:499
 #, gcc-internal-format, gfc-internal-format
 msgid "aux field set for indirect edge from %s"
 msgstr ""
 
-#: cgraphunit.c:507
+#: cgraphunit.c:506
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "An indirect edge from %s is not marked as indirect or has associated "
 "indirect_info, the corresponding statement is: "
 msgstr ""
 
-#: cgraphunit.c:524
+#: cgraphunit.c:523
 #, gcc-internal-format
 msgid "inlined_to pointer is wrong"
 msgstr ""
 
-#: cgraphunit.c:529
+#: cgraphunit.c:528
 #, gcc-internal-format
 msgid "multiple inline callers"
 msgstr ""
 
-#: cgraphunit.c:536
+#: cgraphunit.c:535
 #, gcc-internal-format
 msgid "inlined_to pointer set for noninline callers"
 msgstr ""
 
-#: cgraphunit.c:545
+#: cgraphunit.c:544
 #, gcc-internal-format
 msgid "inlined_to pointer is set but no predecessors found"
 msgstr ""
 
-#: cgraphunit.c:550
+#: cgraphunit.c:549
 #, gcc-internal-format
 msgid "inlined_to pointer refers to itself"
 msgstr ""
 
-#: cgraphunit.c:556
+#: cgraphunit.c:555
 #, gcc-internal-format
 msgid "node not found in cgraph_hash"
 msgstr ""
 
-#: cgraphunit.c:568
+#: cgraphunit.c:567
 #, gcc-internal-format
 msgid "node has wrong clone_of"
 msgstr ""
 
-#: cgraphunit.c:580
+#: cgraphunit.c:579
 #, gcc-internal-format
 msgid "node has wrong clone list"
 msgstr ""
 
-#: cgraphunit.c:586
+#: cgraphunit.c:585
 #, gcc-internal-format
 msgid "node is in clone list but it is not clone"
 msgstr ""
 
-#: cgraphunit.c:591
+#: cgraphunit.c:590
 #, gcc-internal-format
 msgid "node has wrong prev_clone pointer"
 msgstr ""
 
-#: cgraphunit.c:596
+#: cgraphunit.c:595
 #, gcc-internal-format
 msgid "double linked list of clones corrupted"
 msgstr ""
 
-#: cgraphunit.c:605
+#: cgraphunit.c:604
 #, gcc-internal-format
 msgid "non-DECL_ONE_ONLY node in a same_comdat_group list"
 msgstr ""
 
-#: cgraphunit.c:610
+#: cgraphunit.c:609
 #, gcc-internal-format
 msgid "node is alone in a comdat group"
 msgstr ""
 
-#: cgraphunit.c:617
+#: cgraphunit.c:616
 #, gcc-internal-format
 msgid "same_comdat_group is not a circular list"
 msgstr ""
 
-#: cgraphunit.c:652
+#: cgraphunit.c:633
+#, gcc-internal-format
+msgid "Alias has call edges"
+msgstr ""
+
+#: cgraphunit.c:639
+#, gcc-internal-format
+msgid "Alias has non-alias refernece"
+msgstr ""
+
+#: cgraphunit.c:644
+#, gcc-internal-format
+msgid "Alias has more than one alias reference"
+msgstr ""
+
+#: cgraphunit.c:651
+#, gcc-internal-format
+msgid "Analyzed alias has no reference"
+msgstr ""
+
+#: cgraphunit.c:659
+#, gcc-internal-format
+msgid "No edge out of thunk node"
+msgstr ""
+
+#: cgraphunit.c:664
+#, gcc-internal-format
+msgid "More than one edge out of thunk node"
+msgstr ""
+
+#: cgraphunit.c:669
+#, gcc-internal-format
+msgid "Thunk is not supposed to have body"
+msgstr ""
+
+#: cgraphunit.c:699
 #, gcc-internal-format
 msgid "shared call_stmt:"
 msgstr ""
 
-#: cgraphunit.c:662
-#, gcc-internal-format
-msgid "edge points to same body alias:"
-msgstr ""
-
-#: cgraphunit.c:674
+#: cgraphunit.c:717
 #, gcc-internal-format
 msgid "edge points to wrong declaration:"
 msgstr ""
 
-#: cgraphunit.c:685
-#, gcc-internal-format
-msgid "a call to thunk improperly represented in the call graph:"
-msgstr ""
-
-#: cgraphunit.c:693
+#: cgraphunit.c:726
 #, gcc-internal-format
 msgid ""
 "an indirect edge with unknown callee corresponding to a call_stmt with a "
 "known declaration:"
 msgstr ""
 
-#: cgraphunit.c:703
+#: cgraphunit.c:736
 #, gcc-internal-format
 msgid "missing callgraph edge for call stmt:"
 msgstr ""
 
-#: cgraphunit.c:719
+#: cgraphunit.c:752
 #, gcc-internal-format, gfc-internal-format
 msgid "edge %s->%s has no corresponding call_stmt"
 msgstr ""
 
-#: cgraphunit.c:731
+#: cgraphunit.c:764
 #, gcc-internal-format, gfc-internal-format
 msgid "an indirect edge from %s has no corresponding call_stmt"
 msgstr ""
 
-#: cgraphunit.c:742
+#: cgraphunit.c:775
 #, gcc-internal-format
 msgid "verify_cgraph_node failed"
 msgstr ""
 
-#: cgraphunit.c:817
+#: cgraphunit.c:919
 #, gcc-internal-format
 msgid "%<weakref%> attribute should be accompanied with an %<alias%> attribute"
 msgstr ""
 
-#: cgraphunit.c:872 cgraphunit.c:909
+#: cgraphunit.c:974 cgraphunit.c:1019
 #, gcc-internal-format
 msgid "%<externally_visible%> attribute have effect only on public objects"
 msgstr ""
 
-#: cgraphunit.c:881
+#: cgraphunit.c:983
 #, gcc-internal-format
 msgid "%<weakref%> attribute ignored because function is defined"
 msgstr ""
 
-#: cgraphunit.c:919
+#: cgraphunit.c:995
+#, gcc-internal-format
+msgid "always_inline function might not be inlinable"
+msgstr ""
+
+#: cgraphunit.c:1029
 #, gcc-internal-format
 msgid "%<weakref%> attribute ignored because variable is initialized"
 msgstr ""
 
-#: cgraphunit.c:1167 cgraphunit.c:1193
+#: cgraphunit.c:1368
 #, gcc-internal-format
 msgid "failed to reclaim unneeded function"
 msgstr ""
 
-#: cgraphunit.c:1931
+#: cgraphunit.c:1394
+#, gcc-internal-format
+msgid "failed to reclaim unneeded functionin same comdat group"
+msgstr ""
+
+#: cgraphunit.c:2145
 #, gcc-internal-format
 msgid "nodes with unreleased memory found"
 msgstr ""
 
-#: collect2.c:1489 opts.c:792
+#: collect2.c:901
+#, gcc-internal-format
+msgid "COLLECT_LTO_WRAPPER must be set"
+msgstr ""
+
+#: collect2.c:1227
+#, gcc-internal-format
+msgid "no arguments"
+msgstr ""
+
+#: collect2.c:1444 opts.c:780
 #, gcc-internal-format
 msgid "LTO support has not been enabled in this configuration"
 msgstr ""
 
-#: collect2.c:1577
+#: collect2.c:1532
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown demangling style '%s'"
 msgstr ""
 
-#: collect2.c:1972
+#: collect2.c:1628 collect2.c:1811 collect2.c:1846
+#, gcc-internal-format
+msgid "fopen %s: %m"
+msgstr ""
+
+#: collect2.c:1631 collect2.c:1816 collect2.c:1849
+#, gcc-internal-format
+msgid "fclose %s: %m"
+msgstr ""
+
+#: collect2.c:1913
+#, gcc-internal-format
+msgid "can't get program status: %m"
+msgstr ""
+
+#: collect2.c:1921
 #, gcc-internal-format, gfc-internal-format
 msgid "%s terminated with signal %d [%s]%s"
 msgstr ""
 
-#: collect2.c:2792
+#: collect2.c:1982
+#, gcc-internal-format, gfc-internal-format
+msgid "could not open response file %s"
+msgstr ""
+
+#: collect2.c:1987
+#, gcc-internal-format, gfc-internal-format
+msgid "could not write to response file %s"
+msgstr ""
+
+#: collect2.c:1992
+#, gcc-internal-format, gfc-internal-format
+msgid "could not close response file %s"
+msgstr ""
+
+#: collect2.c:2025
+#, gcc-internal-format, gfc-internal-format
+msgid "cannot find '%s'"
+msgstr ""
+
+#: collect2.c:2029 collect2.c:2565 collect2.c:2761 gcc.c:2642
+#, gcc-internal-format
+msgid "pex_init failed: %m"
+msgstr ""
+
+#: collect2.c:2038 collect2.c:2574 collect2.c:2769 gcc.c:7019
+#, gcc-internal-format
+msgid "%s: %m"
+msgstr ""
+
+#: collect2.c:2539
+#, gcc-internal-format
+msgid "cannot find 'nm'"
+msgstr ""
+
+#: collect2.c:2587
+#, gcc-internal-format
+msgid "can't open nm output: %m"
+msgstr ""
+
+#: collect2.c:2670
+#, gcc-internal-format, gfc-internal-format
+msgid "init function found in object %s"
+msgstr ""
+
+#: collect2.c:2680
+#, gcc-internal-format, gfc-internal-format
+msgid "fini function found in object %s"
+msgstr ""
+
+#: collect2.c:2736
 #, gcc-internal-format
 msgid "cannot find 'ldd'"
 msgstr ""
 
+#: collect2.c:2782
+#, gcc-internal-format
+msgid "can't open ldd output: %m"
+msgstr ""
+
+#: collect2.c:2800
+#, gcc-internal-format, gfc-internal-format
+msgid "dynamic dependency %s not found"
+msgstr ""
+
+#: collect2.c:2812
+#, gcc-internal-format, gfc-internal-format
+msgid "unable to open dynamic dependency '%s'"
+msgstr ""
+
+#: collect2.c:2973
+#, gcc-internal-format, gfc-internal-format
+msgid "%s: not a COFF file"
+msgstr ""
+
+#: collect2.c:3103
+#, gcc-internal-format, gfc-internal-format
+msgid "%s: cannot open as COFF file"
+msgstr ""
+
+#: collect2.c:3161
+#, gcc-internal-format, gfc-internal-format
+msgid "library lib%s not found"
+msgstr ""
+
 #: convert.c:88
 #, gcc-internal-format
 msgid "cannot convert to a pointer type"
@@ -15960,77 +16225,93 @@
 msgid "aggregate value used where a fixed-point was expected"
 msgstr ""
 
-#: coverage.c:184
+#: coverage.c:187
 #, gcc-internal-format
 msgid "%qs is not a gcov data file"
 msgstr ""
 
-#: coverage.c:195
+#: coverage.c:198
 #, gcc-internal-format
 msgid "%qs is version %q.*s, expected version %q.*s"
 msgstr ""
 
-#: coverage.c:275 coverage.c:283
+#: coverage.c:281 coverage.c:290
 #, gcc-internal-format, gfc-internal-format
-msgid "coverage mismatch for function %u while reading execution counters"
+msgid "Profile data for function %u is corrupted"
 msgstr ""
 
-#: coverage.c:277 coverage.c:369
+#: coverage.c:282
 #, gcc-internal-format
-msgid "checksum is %x instead of %x"
-msgstr ""
-
-#: coverage.c:285 coverage.c:372
-#, gcc-internal-format, gfc-internal-format
-msgid "number of counters is %d instead of %d"
+msgid "checksum is (%x,%x) instead of (%x,%x)"
 msgstr ""
 
 #: coverage.c:291
 #, gcc-internal-format, gfc-internal-format
+msgid "number of counters is %d instead of %d"
+msgstr ""
+
+#: coverage.c:297
+#, gcc-internal-format, gfc-internal-format
 msgid "cannot merge separate %s counters for function %u"
 msgstr ""
 
-#: coverage.c:312
+#: coverage.c:318
 #, gcc-internal-format
 msgid "%qs has overflowed"
 msgstr ""
 
-#: coverage.c:349
+#: coverage.c:355
 #, gcc-internal-format
 msgid "no coverage for function %qE found"
 msgstr ""
 
-#: coverage.c:364
+#: coverage.c:369
 #, gcc-internal-format
-msgid "coverage mismatch for function %qE while reading counter %qs"
+msgid ""
+"The control flow of function %qE does not match its profile data (counter "
+"%qs)"
 msgstr ""
 
-#: coverage.c:378
+#: coverage.c:373
+#, gcc-internal-format
+msgid ""
+"Use -Wno-error=coverage-mismatch to tolerate the mismatch but performance "
+"may drop if the function is hot"
+msgstr ""
+
+#: coverage.c:379
 #, gcc-internal-format
 msgid "coverage mismatch ignored"
 msgstr ""
 
-#: coverage.c:380
+#: coverage.c:381
 #, gcc-internal-format
 msgid "execution counts estimated"
 msgstr ""
 
-#: coverage.c:381
+#: coverage.c:382
 #, gcc-internal-format
 msgid "execution counts assumed to be zero"
 msgstr ""
 
-#: coverage.c:384
+#: coverage.c:385
 #, gcc-internal-format
 msgid "this can result in poorly optimized code"
 msgstr ""
 
-#: coverage.c:568
+#: coverage.c:393
+#, gcc-internal-format
+msgid ""
+"Source location for function %qE have changed, the profile data may be out "
+"of date"
+msgstr ""
+
+#: coverage.c:605
 #, gcc-internal-format, gfc-internal-format
 msgid "cannot open %s"
 msgstr ""
 
-#: coverage.c:603
+#: coverage.c:642
 #, gcc-internal-format
 msgid "error writing %qs"
 msgstr ""
@@ -16045,6 +16326,16 @@
 msgid "too many input files"
 msgstr ""
 
+#: cprop.c:1696 gcse.c:3680
+#, gcc-internal-format, gfc-internal-format
+msgid "%s: %d basic blocks and %d edges/basic block"
+msgstr ""
+
+#: cprop.c:1709 gcse.c:3693
+#, gcc-internal-format, gfc-internal-format
+msgid "%s: %d basic blocks and %d registers"
+msgstr ""
+
 #: dbgcnt.c:135
 #, gcc-internal-format
 msgid "cannot find a valid counter:value pair:"
@@ -16060,7 +16351,7 @@
 msgid "          %s"
 msgstr ""
 
-#: dbxout.c:3262
+#: dbxout.c:3363
 #, gcc-internal-format
 msgid "common symbol debug info is not structured as symbol+offset"
 msgstr ""
@@ -16080,39 +16371,39 @@
 msgid "dominator of %d should be %d, not %d"
 msgstr ""
 
-#: dwarf2out.c:4171
+#: dwarf2out.c:4156
 #, gcc-internal-format
 msgid ""
 "multiple EH personalities are supported only with assemblers supporting ."
 "cfi_personality directive"
 msgstr ""
 
-#: dwarf2out.c:5750
+#: dwarf2out.c:5902
 #, gcc-internal-format, gfc-internal-format
 msgid "DW_LOC_OP %s not implemented"
 msgstr ""
 
-#: dwarf2out.c:13620
+#: dwarf2out.c:13761
 #, gcc-internal-format, gfc-internal-format
 msgid "non-delegitimized UNSPEC %s (%d) found in variable location"
 msgstr ""
 
-#: emit-rtl.c:2480
+#: emit-rtl.c:2484
 #, gcc-internal-format
 msgid "invalid rtl sharing found in the insn"
 msgstr ""
 
-#: emit-rtl.c:2482
+#: emit-rtl.c:2486
 #, gcc-internal-format
 msgid "shared rtx"
 msgstr ""
 
-#: emit-rtl.c:2484
+#: emit-rtl.c:2488
 #, gcc-internal-format
 msgid "internal consistency failure"
 msgstr ""
 
-#: emit-rtl.c:3587
+#: emit-rtl.c:3613
 #, gcc-internal-format
 msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
 msgstr ""
@@ -16177,34 +16468,34 @@
 msgid "verify_eh_tree failed"
 msgstr ""
 
-#: explow.c:1420
+#: explow.c:1411
 #, gcc-internal-format
 msgid "stack limits not supported on this target"
 msgstr ""
 
-#: expmed.c:1678
+#: expmed.c:1688
 #, gcc-internal-format
 msgid ""
 "multiple accesses to volatile structure member because of packed attribute"
 msgstr ""
 
-#: expmed.c:1682
+#: expmed.c:1692
 #, gcc-internal-format
 msgid ""
 "multiple accesses to volatile structure bitfield because of packed attribute"
 msgstr ""
 
-#: expmed.c:1692
+#: expmed.c:1702
 #, gcc-internal-format
 msgid "mis-aligned access used for structure member"
 msgstr ""
 
-#: expmed.c:1695
+#: expmed.c:1705
 #, gcc-internal-format
 msgid "mis-aligned access used for structure bitfield"
 msgstr ""
 
-#: expmed.c:1701
+#: expmed.c:1711
 #, gcc-internal-format
 msgid ""
 "when a volatile object spans multiple type-sized locations, the compiler "
@@ -16213,32 +16504,32 @@
 "code may fail at runtime if the hardware does not allow this access"
 msgstr ""
 
-#: expr.c:9308
+#: expr.c:9333
 #, gcc-internal-format
 msgid "%Kcall to %qs declared with attribute error: %s"
 msgstr ""
 
-#: expr.c:9315
+#: expr.c:9340
 #, gcc-internal-format
 msgid "%Kcall to %qs declared with attribute warning: %s"
 msgstr ""
 
-#: final.c:1471
+#: final.c:1472
 #, gcc-internal-format
 msgid "invalid argument %qs to -fdebug-prefix-map"
 msgstr ""
 
-#: final.c:1584
+#: final.c:1585
 #, gcc-internal-format
 msgid "the frame size of %wd bytes is larger than %wd bytes"
 msgstr ""
 
-#: final.c:4360 toplev.c:1407 tree-optimize.c:171
+#: final.c:4358 toplev.c:1403 tree-optimize.c:171
 #, gcc-internal-format
 msgid "could not open final insn dump file %qs: %m"
 msgstr ""
 
-#: final.c:4425 tree-optimize.c:187
+#: final.c:4411 tree-optimize.c:187
 #, gcc-internal-format
 msgid "could not close final insn dump file %qs: %m"
 msgstr ""
@@ -16248,57 +16539,57 @@
 msgid "large fixed-point constant implicitly truncated to fixed-point type"
 msgstr ""
 
-#: fold-const.c:655
+#: fold-const.c:664
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when negating a division"
 msgstr ""
 
-#: fold-const.c:3493 fold-const.c:3505
+#: fold-const.c:3461 fold-const.c:3473
 #, gcc-internal-format, gfc-internal-format
 msgid "comparison is always %d due to width of bit-field"
 msgstr ""
 
-#: fold-const.c:4842
+#: fold-const.c:4810
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr ""
 
-#: fold-const.c:5288 fold-const.c:5302
+#: fold-const.c:5256 fold-const.c:5270
 #, gcc-internal-format, gfc-internal-format
 msgid "comparison is always %d"
 msgstr ""
 
-#: fold-const.c:5435
+#: fold-const.c:5403
 #, gcc-internal-format
 msgid "%<or%> of unmatched not-equal tests is always 1"
 msgstr ""
 
-#: fold-const.c:5440
+#: fold-const.c:5408
 #, gcc-internal-format
 msgid "%<and%> of mutually exclusive equal-tests is always 0"
 msgstr ""
 
-#: fold-const.c:8411
+#: fold-const.c:8380
 #, gcc-internal-format
 msgid ""
 "assuming signed overflow does not occur when reducing constant in comparison"
 msgstr ""
 
-#: fold-const.c:8576
+#: fold-const.c:8545
 #, gcc-internal-format
 msgid ""
 "assuming signed overflow does not occur when changing X +- C1 cmp C2 to X "
 "cmp C1 +- C2"
 msgstr ""
 
-#: fold-const.c:8815
+#: fold-const.c:8784
 #, gcc-internal-format
 msgid ""
 "assuming signed overflow does not occur when combining constants around a "
 "comparison"
 msgstr ""
 
-#: fold-const.c:13771
+#: fold-const.c:13772
 #, gcc-internal-format
 msgid "fold check: original tree changed by fold"
 msgstr ""
@@ -16308,162 +16599,157 @@
 msgid "total size of local objects too large"
 msgstr ""
 
-#: function.c:1740 gimplify.c:5077
+#: function.c:1740 gimplify.c:5063
 #, gcc-internal-format
 msgid "impossible constraint in %<asm%>"
 msgstr ""
 
-#: function.c:3987
+#: function.c:3976
 #, gcc-internal-format
 msgid "variable %q+D might be clobbered by %<longjmp%> or %<vfork%>"
 msgstr ""
 
-#: function.c:4008
+#: function.c:3997
 #, gcc-internal-format
 msgid "argument %q+D might be clobbered by %<longjmp%> or %<vfork%>"
 msgstr ""
 
-#: function.c:4494
+#: function.c:4519
 #, gcc-internal-format
 msgid "function returns an aggregate"
 msgstr ""
 
-#: function.c:4888
+#: function.c:4912
 #, gcc-internal-format
 msgid "unused parameter %q+D"
 msgstr ""
 
-#: gcc.c:1712 gcc.c:1732
+#: gcc.c:1724 gcc.c:1744
 #, gcc-internal-format, gfc-internal-format
 msgid "specs %%include syntax malformed after %ld characters"
 msgstr ""
 
-#: gcc.c:1758 gcc.c:1767 gcc.c:1777 gcc.c:1787
+#: gcc.c:1770 gcc.c:1779 gcc.c:1789 gcc.c:1799
 #, gcc-internal-format, gfc-internal-format
 msgid "specs %%rename syntax malformed after %ld characters"
 msgstr ""
 
-#: gcc.c:1797
+#: gcc.c:1809
 #, gcc-internal-format, gfc-internal-format
 msgid "specs %s spec was not found to be renamed"
 msgstr ""
 
-#: gcc.c:1804
+#: gcc.c:1816
 #, gcc-internal-format
 msgid "%s: attempt to rename spec %qs to already defined spec %qs"
 msgstr ""
 
-#: gcc.c:1825
+#: gcc.c:1837
 #, gcc-internal-format, gfc-internal-format
 msgid "specs unknown %% command after %ld characters"
 msgstr ""
 
-#: gcc.c:1836 gcc.c:1849
+#: gcc.c:1848 gcc.c:1861
 #, gcc-internal-format, gfc-internal-format
 msgid "specs file malformed after %ld characters"
 msgstr ""
 
-#: gcc.c:1901
+#: gcc.c:1913
 #, gcc-internal-format
 msgid "spec file has no spec for linking"
 msgstr ""
 
-#: gcc.c:2430
+#: gcc.c:2442
 #, gcc-internal-format
 msgid "system path %qs is not absolute"
 msgstr ""
 
-#: gcc.c:2507
+#: gcc.c:2519
 #, gcc-internal-format
 msgid "-pipe not supported"
 msgstr ""
 
-#: gcc.c:2630
-#, gcc-internal-format
-msgid "pex_init failed: %m"
-msgstr ""
-
-#: gcc.c:2669
+#: gcc.c:2681
 #, gcc-internal-format
 msgid "failed to get exit status: %m"
 msgstr ""
 
-#: gcc.c:2675
+#: gcc.c:2687
 #, gcc-internal-format
 msgid "failed to get process times: %m"
 msgstr ""
 
-#: gcc.c:2701
+#: gcc.c:2713
 #, gcc-internal-format, gfc-internal-format
 msgid "%s (program %s)"
 msgstr ""
 
-#: gcc.c:3118 opts-common.c:958 opts-common.c:1030
+#: gcc.c:3130 opts-common.c:987 opts-common.c:1059
 #, gcc-internal-format
 msgid "unrecognized command line option %qs"
 msgstr ""
 
-#: gcc.c:3381
+#: gcc.c:3393
 #, gcc-internal-format
 msgid "%qs is an unknown -save-temps option"
 msgstr ""
 
-#: gcc.c:3839
+#: gcc.c:3851
 #, gcc-internal-format
 msgid "-pipe ignored because -save-temps specified"
 msgstr ""
 
-#: gcc.c:3925
+#: gcc.c:3937
 #, gcc-internal-format
 msgid "%<-x %s%> after last input file has no effect"
 msgstr ""
 
-#: gcc.c:4092
+#: gcc.c:4104
 #, gcc-internal-format
 msgid "unable to locate default linker script %qs in the library search paths"
 msgstr ""
 
-#: gcc.c:4295
+#: gcc.c:4307
 #, gcc-internal-format
 msgid "switch %qs does not start with %<-%>"
 msgstr ""
 
-#: gcc.c:4298
+#: gcc.c:4310
 #, gcc-internal-format
 msgid "spec-generated switch is just %<-%>"
 msgstr ""
 
-#: gcc.c:4389
+#: gcc.c:4401
 #, gcc-internal-format, gfc-internal-format
 msgid "could not open temporary response file %s"
 msgstr ""
 
-#: gcc.c:4395
+#: gcc.c:4407
 #, gcc-internal-format, gfc-internal-format
 msgid "could not write to temporary response file %s"
 msgstr ""
 
-#: gcc.c:4401
+#: gcc.c:4413
 #, gcc-internal-format, gfc-internal-format
 msgid "could not close temporary response file %s"
 msgstr ""
 
-#: gcc.c:4524
+#: gcc.c:4536
 #, gcc-internal-format
 msgid "spec %qs invalid"
 msgstr ""
 
-#: gcc.c:4673
+#: gcc.c:4685
 #, gcc-internal-format
 msgid "spec %qs has invalid %<%%0%c%>"
 msgstr ""
 
-#: gcc.c:4984
+#: gcc.c:4995
 #, gcc-internal-format
 msgid "spec %qs has invalid %<%%W%c%>"
 msgstr ""
 
-#: gcc.c:5006
+#: gcc.c:5017
 #, gcc-internal-format
 msgid "spec %qs has invalid %<%%x%c%>"
 msgstr ""
@@ -16471,234 +16757,219 @@
 #. Catch the case where a spec string contains something like
 #. '%{foo:%*}'.  i.e. there is no * in the pattern on the left
 #. hand side of the :.
-#: gcc.c:5194
+#: gcc.c:5205
 #, gcc-internal-format
 msgid "spec failure: %<%%*%> has not been initialized by pattern match"
 msgstr ""
 
-#: gcc.c:5203
+#: gcc.c:5214
 #, gcc-internal-format, gfc-internal-format
 msgid "use of obsolete %%[ operator in specs"
 msgstr ""
 
-#: gcc.c:5284
+#: gcc.c:5295
 #, gcc-internal-format
 msgid "spec failure: unrecognized spec option %qc"
 msgstr ""
 
-#: gcc.c:5344
+#: gcc.c:5355
 #, gcc-internal-format
 msgid "unknown spec function %qs"
 msgstr ""
 
-#: gcc.c:5362
+#: gcc.c:5373
 #, gcc-internal-format
 msgid "error in args to spec function %qs"
 msgstr ""
 
-#: gcc.c:5410
+#: gcc.c:5421
 #, gcc-internal-format
 msgid "malformed spec function name"
 msgstr ""
 
 #. )
-#: gcc.c:5413
+#: gcc.c:5424
 #, gcc-internal-format
 msgid "no arguments for spec function"
 msgstr ""
 
-#: gcc.c:5432
+#: gcc.c:5443
 #, gcc-internal-format
 msgid "malformed spec function arguments"
 msgstr ""
 
-#: gcc.c:5678
+#: gcc.c:5689
 #, gcc-internal-format
 msgid "braced spec %qs is invalid at %qc"
 msgstr ""
 
-#: gcc.c:5766
+#: gcc.c:5777
 #, gcc-internal-format
 msgid "braced spec body %qs is invalid"
 msgstr ""
 
-#: gcc.c:6015
+#: gcc.c:6026
 #, gcc-internal-format, gfc-internal-format
 msgid "%s: could not determine length of compare-debug file %s"
 msgstr ""
 
-#: gcc.c:6026
+#: gcc.c:6037
 #, gcc-internal-format, gfc-internal-format
 msgid "%s: -fcompare-debug failure (length)"
 msgstr ""
 
-#: gcc.c:6036 gcc.c:6077
+#: gcc.c:6047 gcc.c:6088
 #, gcc-internal-format, gfc-internal-format
 msgid "%s: could not open compare-debug file %s"
 msgstr ""
 
-#: gcc.c:6056 gcc.c:6093
+#: gcc.c:6067 gcc.c:6104
 #, gcc-internal-format, gfc-internal-format
 msgid "%s: -fcompare-debug failure"
 msgstr ""
 
-#: gcc.c:6167
+#: gcc.c:6178
 #, gcc-internal-format
 msgid "atexit failed"
 msgstr ""
 
-#: gcc.c:6346
+#: gcc.c:6357
 #, gcc-internal-format
 msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC"
 msgstr ""
 
-#: gcc.c:6369
+#: gcc.c:6380
 #, gcc-internal-format
 msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC"
 msgstr ""
 
-#: gcc.c:6479
+#: gcc.c:6490
 #, gcc-internal-format
 msgid "unrecognized option %<-%s%>"
 msgstr ""
 
 #. The error status indicates that only one set of fixed
 #. headers should be built.
-#: gcc.c:6556
+#: gcc.c:6567
 #, gcc-internal-format
 msgid "not configured with sysroot headers suffix"
 msgstr ""
 
-#: gcc.c:6639
+#: gcc.c:6650
 #, gcc-internal-format
 msgid "no input files"
 msgstr ""
 
-#: gcc.c:6688
+#: gcc.c:6699
 #, gcc-internal-format
 msgid "cannot specify -o with -c, -S or -E with multiple files"
 msgstr ""
 
-#: gcc.c:6718
+#: gcc.c:6729
 #, gcc-internal-format, gfc-internal-format
 msgid "%s: %s compiler not installed on this system"
 msgstr ""
 
-#: gcc.c:6742
+#: gcc.c:6751
 #, gcc-internal-format
 msgid "recompiling with -fcompare-debug"
 msgstr ""
 
-#: gcc.c:6758
+#: gcc.c:6767
 #, gcc-internal-format
 msgid "during -fcompare-debug recompilation"
 msgstr ""
 
-#: gcc.c:6767
+#: gcc.c:6776
 #, gcc-internal-format
 msgid "comparing final insns dumps"
 msgstr ""
 
-#: gcc.c:6870
+#: gcc.c:6877
 #, gcc-internal-format
 msgid "-fuse-linker-plugin, but "
 msgstr ""
 
-#: gcc.c:6900
+#: gcc.c:6907
 #, gcc-internal-format, gfc-internal-format
 msgid "%s: linker input file unused because linking not done"
 msgstr ""
 
-#: gcc.c:6941
+#: gcc.c:6948
 #, gcc-internal-format, gfc-internal-format
 msgid "language %s not recognized"
 msgstr ""
 
-#: gcc.c:7012
-#, gcc-internal-format
-msgid "%s: %m"
-msgstr ""
-
-#: gcc.c:7167
+#: gcc.c:7174
 #, gcc-internal-format
 msgid "multilib spec %qs is invalid"
 msgstr ""
 
-#: gcc.c:7359
+#: gcc.c:7366
 #, gcc-internal-format
 msgid "multilib exclusions %qs is invalid"
 msgstr ""
 
-#: gcc.c:7417 gcc.c:7558
+#: gcc.c:7424 gcc.c:7565
 #, gcc-internal-format
 msgid "multilib select %qs is invalid"
 msgstr ""
 
-#: gcc.c:7596
+#: gcc.c:7603
 #, gcc-internal-format
 msgid "multilib exclusion %qs is invalid"
 msgstr ""
 
-#: gcc.c:7802
+#: gcc.c:7809
 #, gcc-internal-format
 msgid "environment variable %qs not defined"
 msgstr ""
 
-#: gcc.c:7914 gcc.c:7919
+#: gcc.c:7921 gcc.c:7926
 #, gcc-internal-format
 msgid "invalid version number %qs"
 msgstr ""
 
-#: gcc.c:7962
+#: gcc.c:7969
 #, gcc-internal-format, gfc-internal-format
 msgid "too few arguments to %%:version-compare"
 msgstr ""
 
-#: gcc.c:7968
+#: gcc.c:7975
 #, gcc-internal-format, gfc-internal-format
 msgid "too many arguments to %%:version-compare"
 msgstr ""
 
-#: gcc.c:8009
+#: gcc.c:8016
 #, gcc-internal-format
 msgid "unknown operator %qs in %%:version-compare"
 msgstr ""
 
-#: gcc.c:8122
+#: gcc.c:8129
 #, gcc-internal-format, gfc-internal-format
 msgid "too many arguments to %%:compare-debug-dump-opt"
 msgstr ""
 
-#: gcc.c:8190
+#: gcc.c:8197
 #, gcc-internal-format, gfc-internal-format
 msgid "too many arguments to %%:compare-debug-self-opt"
 msgstr ""
 
-#: gcc.c:8225
+#: gcc.c:8232
 #, gcc-internal-format, gfc-internal-format
 msgid "too few arguments to %%:compare-debug-auxbase-opt"
 msgstr ""
 
-#: gcc.c:8228
+#: gcc.c:8235
 #, gcc-internal-format, gfc-internal-format
 msgid "too many arguments to %%:compare-debug-auxbase-opt"
 msgstr ""
 
-#: gcc.c:8235
+#: gcc.c:8242
 #, gcc-internal-format, gfc-internal-format
 msgid "argument to %%:compare-debug-auxbase-opt does not end in .gk"
 msgstr ""
 
-#: gcse.c:5171
-#, gcc-internal-format, gfc-internal-format
-msgid "%s: %d basic blocks and %d edges/basic block"
-msgstr ""
-
-#: gcse.c:5184
-#, gcc-internal-format, gfc-internal-format
-msgid "%s: %d basic blocks and %d registers"
-msgstr ""
-
 #: ggc-common.c:467 ggc-common.c:475 ggc-common.c:549 ggc-common.c:568
 #: ggc-page.c:2170 ggc-page.c:2201 ggc-page.c:2208 ggc-zone.c:2420
 #: ggc-zone.c:2431 ggc-zone.c:2435
@@ -16742,94 +17013,94 @@
 msgid "can%'t seek PCH file: %m"
 msgstr ""
 
-#: gimple.c:1071
+#: gimple.c:1125
 #, gcc-internal-format, gfc-internal-format
 msgid "gimple check: expected %s(%s), have %s(%s) in %s, at %s:%d"
 msgstr ""
 
-#: gimplify.c:2441
+#: gimplify.c:2443
 #, gcc-internal-format
 msgid "using result of function returning %<void%>"
 msgstr ""
 
-#: gimplify.c:4962
+#: gimplify.c:4948
 #, gcc-internal-format, gfc-internal-format
 msgid "invalid lvalue in asm output %d"
 msgstr ""
 
-#: gimplify.c:5078
+#: gimplify.c:5064
 #, gcc-internal-format, gfc-internal-format
 msgid "non-memory input %d must stay in memory"
 msgstr ""
 
-#: gimplify.c:5100
+#: gimplify.c:5086
 #, gcc-internal-format, gfc-internal-format
 msgid "memory input %d is not directly addressable"
 msgstr ""
 
-#: gimplify.c:5568
+#: gimplify.c:5553
 #, gcc-internal-format
 msgid "threadprivate variable %qE used in untied task"
 msgstr ""
 
-#: gimplify.c:5569 gimplify.c:5631
+#: gimplify.c:5555 gimplify.c:5617
 #, gcc-internal-format
 msgid "enclosing task"
 msgstr ""
 
-#: gimplify.c:5628
+#: gimplify.c:5614
 #, gcc-internal-format
 msgid "%qE not specified in enclosing parallel"
 msgstr ""
 
-#: gimplify.c:5633
+#: gimplify.c:5619
 #, gcc-internal-format
 msgid "enclosing parallel"
 msgstr ""
 
-#: gimplify.c:5738
+#: gimplify.c:5724
 #, gcc-internal-format
 msgid "iteration variable %qE should be private"
 msgstr ""
 
-#: gimplify.c:5752
+#: gimplify.c:5738
 #, gcc-internal-format
 msgid "iteration variable %qE should not be firstprivate"
 msgstr ""
 
-#: gimplify.c:5755
+#: gimplify.c:5741
 #, gcc-internal-format
 msgid "iteration variable %qE should not be reduction"
 msgstr ""
 
-#: gimplify.c:5918
+#: gimplify.c:5904
 #, gcc-internal-format
 msgid "%s variable %qE is private in outer context"
 msgstr ""
 
-#: gimplify.c:7511
+#: gimplify.c:7545
 #, gcc-internal-format
 msgid "gimplification failed"
 msgstr ""
 
-#: godump.c:1040
+#: godump.c:1117
 #, gcc-internal-format
 msgid "could not close Go dump file: %m"
 msgstr ""
 
-#: godump.c:1052
+#: godump.c:1129
 #, gcc-internal-format
 msgid "could not open Go dump file %qs: %m"
 msgstr ""
 
-#: graph.c:411 toplev.c:1517 java/jcf-parse.c:1751 java/jcf-parse.c:1890
-#: objc/objc-act.c:477
+#: graph.c:411 toplev.c:1513 java/jcf-parse.c:1751 java/jcf-parse.c:1889
+#: objc/objc-act.c:476
 #, gcc-internal-format
 msgid "can%'t open %s: %m"
 msgstr ""
 
-#: graphite-clast-to-gimple.c:1228 graphite-poly.c:691 toplev.c:928
-#: toplev.c:1115
+#: graphite-clast-to-gimple.c:1227 graphite-poly.c:691 toplev.c:929
+#: toplev.c:1134
 #, gcc-internal-format
 msgid "can%'t open %s for writing: %m"
 msgstr ""
@@ -16876,57 +17147,65 @@
 #. Fatal error here.  We do not want to support compiling ltrans units with
 #. different version of compiler or different flags than the WPA unit, so
 #. this should never happen.
-#: ipa-reference.c:1198
+#: ipa-inline-analysis.c:2457
+#, gcc-internal-format
+msgid "ipa inline summary is missing in input file"
+msgstr ""
+
+#. Fatal error here.  We do not want to support compiling ltrans units with
+#. different version of compiler or different flags than the WPA unit, so
+#. this should never happen.
+#: ipa-reference.c:1207
 #, gcc-internal-format
 msgid "ipa reference summary is missing in ltrans unit"
 msgstr ""
 
-#: ira.c:1377 ira.c:1390 ira.c:1404
+#: ira.c:1815 ira.c:1828 ira.c:1842
 #, gcc-internal-format, gfc-internal-format
 msgid "%s cannot be used in asm here"
 msgstr ""
 
-#: lto-cgraph.c:1070
+#: lto-cgraph.c:996
 #, gcc-internal-format, gfc-internal-format
 msgid "bytecode stream: found multiple instances of cgraph node %d"
 msgstr ""
 
-#: lto-cgraph.c:1223
+#: lto-cgraph.c:1127
 #, gcc-internal-format
 msgid "bytecode stream: no caller found while reading edge"
 msgstr ""
 
-#: lto-cgraph.c:1229
+#: lto-cgraph.c:1133
 #, gcc-internal-format
 msgid "bytecode stream: no callee found while reading edge"
 msgstr ""
 
-#: lto-cgraph.c:1295
+#: lto-cgraph.c:1197
 #, gcc-internal-format
 msgid "bytecode stream: found empty cgraph node"
 msgstr ""
 
-#: lto-cgraph.c:1469
+#: lto-cgraph.c:1371
 #, gcc-internal-format, gfc-internal-format
 msgid "At most %i profile runs is supported. Perhaps corrupted profile?"
 msgstr ""
 
-#: lto-cgraph.c:1516
+#: lto-cgraph.c:1419
 #, gcc-internal-format, gfc-internal-format
 msgid "Profile information in %s corrupted"
 msgstr ""
 
-#: lto-cgraph.c:1551
+#: lto-cgraph.c:1454
 #, gcc-internal-format, gfc-internal-format
 msgid "cannot find LTO cgraph in %s"
 msgstr ""
 
-#: lto-cgraph.c:1561
+#: lto-cgraph.c:1464
 #, gcc-internal-format, gfc-internal-format
 msgid "cannot find LTO varpool in %s"
 msgstr ""
 
-#: lto-cgraph.c:1569
+#: lto-cgraph.c:1472
 #, gcc-internal-format, gfc-internal-format
 msgid "cannot find LTO section refs in %s"
 msgstr ""
@@ -16937,12 +17216,17 @@
 msgid "compressed stream: %s"
 msgstr ""
 
-#: lto-section-in.c:68
+#: lto-section-in.c:531
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "bytecode stream: trying to read %d bytes after the end of the input buffer"
 msgstr ""
 
+#: lto-section-in.c:541
+#, gcc-internal-format, gfc-internal-format
+msgid "%s out of range: Range is %i to %i, value is %i"
+msgstr ""
+
 #: lto-streamer-in.c:80
 #, gcc-internal-format, gfc-internal-format
 msgid "bytecode stream: unexpected tag %s"
@@ -16958,213 +17242,203 @@
 msgid "bytecode stream: expected tag %s instead of %s"
 msgstr ""
 
-#: lto-streamer-in.c:152
+#: lto-streamer-in.c:155
 #, gcc-internal-format
 msgid "bytecode stream: string too long for the string table"
 msgstr ""
 
-#: lto-streamer-in.c:226
+#: lto-streamer-in.c:231
 #, gcc-internal-format
 msgid "bytecode stream: found non-null terminated string"
 msgstr ""
 
-#: lto-streamer-in.c:1003
+#: lto-streamer-in.c:1053
 #, gcc-internal-format
 msgid "use of type %<%E%> with two mismatching declarations at field %<%E%>"
 msgstr ""
 
-#: lto-streamer-in.c:1009
+#: lto-streamer-in.c:1059
 #, gcc-internal-format
 msgid "original type declared here"
 msgstr ""
 
-#: lto-streamer-in.c:1011
+#: lto-streamer-in.c:1061
 #, gcc-internal-format
 msgid "field in mismatching type declared here"
 msgstr ""
 
-#: lto-streamer-in.c:1017
+#: lto-streamer-in.c:1067
 #, gcc-internal-format
 msgid "type of field declared here"
 msgstr ""
 
-#: lto-streamer-in.c:1024
+#: lto-streamer-in.c:1074
 #, gcc-internal-format
 msgid "type of mismatching field declared here"
 msgstr ""
 
-#: lto-streamer-in.c:1045
+#: lto-streamer-in.c:1103
 #, gcc-internal-format, gfc-internal-format
 msgid "bytecode stream: unknown GIMPLE statement tag %s"
 msgstr ""
 
-#: lto-streamer-in.c:2317
+#: lto-streamer-in.c:1743 lto-streamer-in.c:2456
 #, gcc-internal-format
-msgid "cl_target_option size mismatch in LTO reader and writer"
+msgid "machine independent builtin code out of range"
 msgstr ""
 
-#: lto-streamer-in.c:2411
-#, gcc-internal-format
-msgid "optimization options not supported yet"
-msgstr ""
-
-#: lto-streamer-in.c:2561
-#, gcc-internal-format
-msgid "bytecode stream: tried to jump backwards in the stream"
-msgstr ""
-
-#: lto-streamer-in.c:2605
+#: lto-streamer-in.c:1748 lto-streamer-in.c:2464
 #, gcc-internal-format
 msgid "target specific builtin not available"
 msgstr ""
 
-#: lto-streamer-out.c:1234
+#: lto-streamer-in.c:2331
 #, gcc-internal-format
-msgid "gimple bytecode streams do not support the optimization attribute"
+msgid "cl_target_option size mismatch in LTO reader and writer"
 msgstr ""
 
-#: lto-streamer-out.c:1258
+#: lto-streamer-out.c:1271
 #, gcc-internal-format
-msgid "tree code %qs is not supported in gimple streams"
+msgid "tree code %qs is not supported in %s streams"
 msgstr ""
 
-#: lto-streamer-out.c:1302
+#: lto-streamer-out.c:1319
 #, gcc-internal-format
 msgid ""
 "gimple bytecode streams do not support machine specific builtin functions on "
 "this target"
 msgstr ""
 
-#: lto-streamer.c:161
+#: lto-streamer.c:164
 #, gcc-internal-format, gfc-internal-format
 msgid "bytecode stream: unexpected LTO section %s"
 msgstr ""
 
-#: lto-streamer.c:795
+#: lto-streamer.c:714
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "bytecode stream generated with LTO version %d.%d instead of the expected %d."
 "%d"
 msgstr ""
 
-#: lto-symtab.c:542
+#: lto-symtab.c:472
 #, gcc-internal-format
 msgid "%qD has already been defined"
 msgstr ""
 
-#: lto-symtab.c:544
+#: lto-symtab.c:474
 #, gcc-internal-format
 msgid "previously defined here"
 msgstr ""
 
-#: lto-symtab.c:626
+#: lto-symtab.c:555
 #, gcc-internal-format
 msgid "type of %qD does not match original declaration"
 msgstr ""
 
-#: lto-symtab.c:633
+#: lto-symtab.c:562
 #, gcc-internal-format
 msgid "alignment of %qD is bigger than original declaration"
 msgstr ""
 
-#: lto-symtab.c:639 lto-symtab.c:745
+#: lto-symtab.c:568 lto-symtab.c:674
 #, gcc-internal-format
 msgid "previously declared here"
 msgstr ""
 
-#: lto-symtab.c:670
+#: lto-symtab.c:599
 #, gcc-internal-format
 msgid "multiple prevailing defs for %qE"
 msgstr ""
 
-#: lto-symtab.c:728
+#: lto-symtab.c:657
 #, gcc-internal-format
 msgid "variable %qD redeclared as function"
 msgstr ""
 
-#: lto-symtab.c:734
+#: lto-symtab.c:663
 #, gcc-internal-format
 msgid "function %qD redeclared as variable"
 msgstr ""
 
-#: omp-low.c:1830
+#: omp-low.c:1831
 #, gcc-internal-format
 msgid ""
 "barrier region may not be closely nested inside of work-sharing, critical, "
 "ordered, master or explicit task region"
 msgstr ""
 
-#: omp-low.c:1835
+#: omp-low.c:1836
 #, gcc-internal-format
 msgid ""
 "work-sharing region may not be closely nested inside of work-sharing, "
 "critical, ordered, master or explicit task region"
 msgstr ""
 
-#: omp-low.c:1853
+#: omp-low.c:1854
 #, gcc-internal-format
 msgid ""
 "master region may not be closely nested inside of work-sharing or explicit "
 "task region"
 msgstr ""
 
-#: omp-low.c:1868
+#: omp-low.c:1869
 #, gcc-internal-format
 msgid ""
 "ordered region may not be closely nested inside of critical or explicit task "
 "region"
 msgstr ""
 
-#: omp-low.c:1874
+#: omp-low.c:1875
 #, gcc-internal-format
 msgid ""
 "ordered region must be closely nested inside a loop region with an ordered "
 "clause"
 msgstr ""
 
-#: omp-low.c:1889
+#: omp-low.c:1890
 #, gcc-internal-format
 msgid ""
 "critical region may not be nested inside a critical region with the same name"
 msgstr ""
 
-#: omp-low.c:6781 cp/decl.c:2808 cp/parser.c:8893 cp/parser.c:8913
+#: omp-low.c:6785 cp/decl.c:2838 cp/parser.c:9056 cp/parser.c:9076
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
 msgstr ""
 
-#: omp-low.c:6783 omp-low.c:6788
+#: omp-low.c:6787 omp-low.c:6792
 #, gcc-internal-format
 msgid "invalid entry to OpenMP structured block"
 msgstr ""
 
 #. Otherwise, be vague and lazy, but efficient.
-#: omp-low.c:6791
+#: omp-low.c:6795
 #, gcc-internal-format
 msgid "invalid branch to/from an OpenMP structured block"
 msgstr ""
 
-#: opts-common.c:969
+#: opts-common.c:998
 #, gcc-internal-format
 msgid "command line option %qs is not supported by this configuration"
 msgstr ""
 
-#: opts-common.c:979
+#: opts-common.c:1008
 #, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr ""
 
-#: opts-common.c:985 opts.c:539
+#: opts-common.c:1014 opts.c:535
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer"
 msgstr ""
 
-#: opts-common.c:1000
+#: opts-common.c:1029
 #, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr ""
 
-#: opts-common.c:1016
+#: opts-common.c:1045
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s"
 msgstr ""
@@ -17185,17 +17459,17 @@
 msgid "unrecognized command line option \"%s\""
 msgstr ""
 
-#: opts-global.c:375
+#: opts-global.c:370
 #, gcc-internal-format
 msgid "unrecognized command line option %<-fdump-%s%>"
 msgstr ""
 
-#: opts-global.c:387 opts-global.c:395
+#: opts-global.c:390 opts-global.c:398
 #, gcc-internal-format
 msgid "plugin support is disabled; configure with --enable-plugin"
 msgstr ""
 
-#: opts-global.c:419
+#: opts-global.c:422
 #, gcc-internal-format
 msgid "unrecognized register name %qs"
 msgstr ""
@@ -17217,131 +17491,126 @@
 "femit-struct-debug-detailed=ind:...%>"
 msgstr ""
 
-#: opts.c:653
+#: opts.c:649
 #, gcc-internal-format
 msgid "section anchors must be disabled when unit-at-a-time is disabled"
 msgstr ""
 
-#: opts.c:657
+#: opts.c:653
 #, gcc-internal-format
 msgid "toplevel reorder must be disabled when unit-at-a-time is disabled"
 msgstr ""
 
-#: opts.c:679
+#: opts.c:675
 #, gcc-internal-format
 msgid "section anchors must be disabled when toplevel reorder is disabled"
 msgstr ""
 
-#: opts.c:714 config/darwin.c:2900 config/sh/sh.c:981
+#: opts.c:710 config/darwin.c:2900 config/sh/sh.c:806
 #, gcc-internal-format
 msgid ""
 "-freorder-blocks-and-partition does not work with exceptions on this "
 "architecture"
 msgstr ""
 
-#: opts.c:729 config/sh/sh.c:989
+#: opts.c:725 config/sh/sh.c:814
 #, gcc-internal-format
 msgid ""
 "-freorder-blocks-and-partition does not support unwind info on this "
 "architecture"
 msgstr ""
 
-#: opts.c:746 config/pa/pa.c:568
+#: opts.c:742 config/pa/pa.c:522
 #, gcc-internal-format
 msgid "-freorder-blocks-and-partition does not work on this architecture"
 msgstr ""
 
-#: opts.c:765
-#, gcc-internal-format
-msgid "-fira-algorithm=CB does not work on this architecture"
-msgstr ""
-
-#: opts.c:801
+#: opts.c:789
 #, gcc-internal-format
 msgid "only one -flto-partition value can be specified"
 msgstr ""
 
-#: opts.c:812
+#: opts.c:800
 #, gcc-internal-format
 msgid "%<-fsplit-stack%> is not supported by this compiler configuration"
 msgstr ""
 
-#: opts.c:1185
+#: opts.c:1198
 #, gcc-internal-format
 msgid "unrecognized include_flags 0x%x passed to print_specific_help"
 msgstr ""
 
-#: opts.c:1360
+#: opts.c:1369
 #, gcc-internal-format
 msgid "--help argument %q.*s is ambiguous, please be more specific"
 msgstr ""
 
-#: opts.c:1369
+#: opts.c:1378
 #, gcc-internal-format
 msgid "unrecognized argument to --help= option: %q.*s"
 msgstr ""
 
-#: opts.c:1506
+#: opts.c:1520
 #, gcc-internal-format, gfc-internal-format
 msgid "structure alignment must be a small power of two, not %d"
 msgstr ""
 
-#: opts.c:1619
+#: opts.c:1633
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown stack check parameter \"%s\""
 msgstr ""
 
-#: opts.c:1649
+#: opts.c:1668
 #, gcc-internal-format, gfc-internal-format
 msgid "dwarf version %d is not supported"
 msgstr ""
 
-#: opts.c:1717
+#: opts.c:1741
 #, gcc-internal-format, gfc-internal-format
 msgid "%s: --param arguments should be of the form NAME=VALUE"
 msgstr ""
 
-#: opts.c:1723
+#: opts.c:1747
 #, gcc-internal-format
 msgid "invalid --param value %qs"
 msgstr ""
 
-#: opts.c:1841
+#: opts.c:1865
 #, gcc-internal-format
 msgid "target system does not support debug output"
 msgstr ""
 
-#: opts.c:1850
+#: opts.c:1874
 #, gcc-internal-format, gfc-internal-format
 msgid "debug format \"%s\" conflicts with prior selection"
 msgstr ""
 
-#: opts.c:1866
+#: opts.c:1890
 #, gcc-internal-format, gfc-internal-format
 msgid "unrecognised debug output level \"%s\""
 msgstr ""
 
-#: opts.c:1868
+#: opts.c:1892
 #, gcc-internal-format, gfc-internal-format
 msgid "debug output level %s is too high"
 msgstr ""
 
-#: opts.c:1888
+#: opts.c:1912
 #, gcc-internal-format
 msgid "getting core file size maximum limit: %m"
 msgstr ""
 
-#: opts.c:1891
+#: opts.c:1915
 #, gcc-internal-format
 msgid "setting core file size limit to maximum: %m"
 msgstr ""
 
-#: opts.c:1939
+#: opts.c:1963
 #, gcc-internal-format, gfc-internal-format
 msgid "unrecognized gcc debugging option: %c"
 msgstr ""
 
-#: opts.c:1965
+#: opts.c:1989
 #, gcc-internal-format, gfc-internal-format
 msgid "-Werror=%s: no option -%s"
 msgstr ""
@@ -17362,27 +17631,72 @@
 msgid "invalid parameter %qs"
 msgstr ""
 
-#: passes.c:592
+#: passes.c:693
+#, gcc-internal-format
+msgid "unrecognized option -fenable"
+msgstr ""
+
+#: passes.c:695
+#, gcc-internal-format
+msgid "unrecognized option -fdisable"
+msgstr ""
+
+#: passes.c:703
+#, gcc-internal-format, gfc-internal-format
+msgid "unknown pass %s specified in -fenable"
+msgstr ""
+
+#: passes.c:705
+#, gcc-internal-format, gfc-internal-format
+msgid "unknown pass %s specified in -fdisble"
+msgstr ""
+
+#: passes.c:732 passes.c:822
+#, gcc-internal-format, gfc-internal-format
+msgid "enable pass %s for functions in the range of [%u, %u]"
+msgstr ""
+
+#: passes.c:735 passes.c:833
+#, gcc-internal-format, gfc-internal-format
+msgid "disable pass %s for functions in the range of [%u, %u]"
+msgstr ""
+
+#: passes.c:771 passes.c:799
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid range %s in option %s"
+msgstr ""
+
+#: passes.c:818
+#, gcc-internal-format, gfc-internal-format
+msgid "enable pass %s for function %s"
+msgstr ""
+
+#: passes.c:829
+#, gcc-internal-format, gfc-internal-format
+msgid "disable pass %s for function %s"
+msgstr ""
+
+#: passes.c:1042
 #, gcc-internal-format
 msgid "invalid pass positioning operation"
 msgstr ""
 
-#: passes.c:634
+#: passes.c:1084
 #, gcc-internal-format
 msgid "plugin cannot register a missing pass"
 msgstr ""
 
-#: passes.c:637
+#: passes.c:1087
 #, gcc-internal-format
 msgid "plugin cannot register an unnamed pass"
 msgstr ""
 
-#: passes.c:641
+#: passes.c:1091
 #, gcc-internal-format
 msgid "plugin cannot register pass %qs without reference pass name"
 msgstr ""
 
-#: passes.c:659
+#: passes.c:1109
 #, gcc-internal-format
 msgid "pass %qs not found but is referenced by new pass %qs"
 msgstr ""
@@ -17457,44 +17771,44 @@
 msgid "-iplugindir <dir> option not passed from the gcc driver"
 msgstr ""
 
-#: profile.c:417
+#: profile.c:413
 #, gcc-internal-format
 msgid "corrupted profile info: edge count exceeds maximal count"
 msgstr ""
 
-#: profile.c:421
+#: profile.c:417
 #, gcc-internal-format, gfc-internal-format
 msgid "corrupted profile info: edge from %i to %i exceeds maximal count"
 msgstr ""
 
-#: profile.c:465
+#: profile.c:463
 #, gcc-internal-format
 msgid "corrupted profile info: run_max * runs < sum_max"
 msgstr ""
 
-#: profile.c:471
+#: profile.c:469
 #, gcc-internal-format
 msgid "corrupted profile info: sum_all is smaller than sum_max"
 msgstr ""
 
-#: profile.c:637
+#: profile.c:635
 #, gcc-internal-format
 msgid "correcting inconsistent profile data"
 msgstr ""
 
-#: profile.c:647
+#: profile.c:645
 #, gcc-internal-format
 msgid "corrupted profile info: profile data is not flow-consistent"
 msgstr ""
 
-#: profile.c:664
+#: profile.c:662
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "corrupted profile info: number of iterations for basic block %d thought to "
 "be %i"
 msgstr ""
 
-#: profile.c:685
+#: profile.c:683
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "corrupted profile info: number of executions for edge %d-%d thought to be %i"
@@ -17545,149 +17859,154 @@
 msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
 msgstr ""
 
-#: reginfo.c:779
+#: reginfo.c:783
 #, gcc-internal-format
 msgid "can%'t use %qs as a call-saved register"
 msgstr ""
 
-#: reginfo.c:783
+#: reginfo.c:787
 #, gcc-internal-format
 msgid "can%'t use %qs as a call-used register"
 msgstr ""
 
-#: reginfo.c:795
+#: reginfo.c:799
 #, gcc-internal-format
 msgid "can%'t use %qs as a fixed register"
 msgstr ""
 
-#: reginfo.c:821 config/ia64/ia64.c:5624 config/ia64/ia64.c:5631
-#: config/pa/pa.c:436 config/pa/pa.c:443 config/sh/sh.c:8880
-#: config/sh/sh.c:8887 config/spu/spu.c:5122 config/spu/spu.c:5129
+#: reginfo.c:825 config/ia64/ia64.c:5597 config/ia64/ia64.c:5604
+#: config/pa/pa.c:425 config/pa/pa.c:432 config/sh/sh.c:8735
+#: config/sh/sh.c:8742 config/spu/spu.c:5129 config/spu/spu.c:5136
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown register name: %s"
 msgstr ""
 
-#: reginfo.c:832
+#: reginfo.c:838
 #, gcc-internal-format
 msgid "stack register used for global register variable"
 msgstr ""
 
-#: reginfo.c:838
+#: reginfo.c:844
 #, gcc-internal-format
 msgid "global register variable follows a function definition"
 msgstr ""
 
-#: reginfo.c:842
+#: reginfo.c:849
 #, gcc-internal-format
-msgid "register used for two global register variables"
+msgid "register of %qD used for multiple global register variables"
 msgstr ""
 
-#: reginfo.c:847
+#: reginfo.c:852
+#, gcc-internal-format
+msgid "conflicts with %qD"
+msgstr ""
+
+#: reginfo.c:857
 #, gcc-internal-format
 msgid "call-clobbered register used for global register variable"
 msgstr ""
 
-#: reload.c:1269
+#: reload.c:1273
 #, gcc-internal-format
 msgid "cannot reload integer constant operand in %<asm%>"
 msgstr ""
 
-#: reload.c:1283
+#: reload.c:1287
 #, gcc-internal-format
 msgid "impossible register constraint in %<asm%>"
 msgstr ""
 
-#: reload.c:3630
+#: reload.c:3633
 #, gcc-internal-format
 msgid "%<&%> constraint used with no register class"
 msgstr ""
 
-#: reload.c:3806 reload.c:4066
+#: reload.c:3809 reload.c:4068
 #, gcc-internal-format
 msgid "inconsistent operand constraints in an %<asm%>"
 msgstr ""
 
-#: reload1.c:1256
+#: reload1.c:1253
 #, gcc-internal-format
 msgid "%<asm%> operand has impossible constraints"
 msgstr ""
 
-#: reload1.c:1276
+#: reload1.c:1273
 #, gcc-internal-format
 msgid "frame size too large for reliable stack checking"
 msgstr ""
 
-#: reload1.c:1279
+#: reload1.c:1276
 #, gcc-internal-format
 msgid "try reducing the number of local variables"
 msgstr ""
 
-#: reload1.c:2092
+#: reload1.c:2100
 #, gcc-internal-format
 msgid "can%'t find a register in class %qs while reloading %<asm%>"
 msgstr ""
 
-#: reload1.c:2097
+#: reload1.c:2105
 #, gcc-internal-format
 msgid "unable to find a register to spill in class %qs"
 msgstr ""
 
-#: reload1.c:4625
+#: reload1.c:4659
 #, gcc-internal-format
 msgid "%<asm%> operand requires impossible reload"
 msgstr ""
 
-#: reload1.c:6014
+#: reload1.c:6045
 #, gcc-internal-format
 msgid "%<asm%> operand constraint incompatible with operand size"
 msgstr ""
 
-#: reload1.c:7853
+#: reload1.c:7861
 #, gcc-internal-format
 msgid "output operand is constant in %<asm%>"
 msgstr ""
 
-#: rtl.c:737
+#: rtl.c:738
 #, gcc-internal-format, gfc-internal-format
 msgid "RTL check: access of elt %d of '%s' with last elt %d in %s, at %s:%d"
 msgstr ""
 
-#: rtl.c:747
+#: rtl.c:748
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
 msgstr ""
 
-#: rtl.c:757
+#: rtl.c:758
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at "
 "%s:%d"
 msgstr ""
 
-#: rtl.c:766
+#: rtl.c:767
 #, gcc-internal-format, gfc-internal-format
 msgid "RTL check: expected code '%s', have '%s' in %s, at %s:%d"
 msgstr ""
 
-#: rtl.c:776
+#: rtl.c:777
 #, gcc-internal-format, gfc-internal-format
 msgid "RTL check: expected code '%s' or '%s', have '%s' in %s, at %s:%d"
 msgstr ""
 
-#: rtl.c:803
+#: rtl.c:804
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "RTL check: attempt to treat non-block symbol as a block symbol in %s, at %s:"
 "%d"
 msgstr ""
 
-#: rtl.c:813
+#: rtl.c:814
 #, gcc-internal-format, gfc-internal-format
 msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
 msgstr ""
 
-#: rtl.c:824
+#: rtl.c:825
 #, gcc-internal-format, gfc-internal-format
 msgid "RTL flag check: %s used with unexpected rtx code '%s' in %s, at %s:%d"
 msgstr ""
@@ -17807,77 +18126,67 @@
 msgid "undefined named operand %qs"
 msgstr ""
 
-#: stmt.c:1566 cp/cvt.c:1098 cp/cvt.c:1342
+#: stmt.c:1566 cp/cvt.c:1109 cp/cvt.c:1353
 #, gcc-internal-format
 msgid "value computed is not used"
 msgstr ""
 
-#: stor-layout.c:158
-#, gcc-internal-format
-msgid "type size can%'t be explicitly evaluated"
-msgstr ""
-
-#: stor-layout.c:160
-#, gcc-internal-format
-msgid "variable-size type declared outside of any function"
-msgstr ""
-
-#: stor-layout.c:748
+#: stor-layout.c:710
 #, gcc-internal-format
 msgid "size of %q+D is %d bytes"
 msgstr ""
 
-#: stor-layout.c:750
+#: stor-layout.c:712
 #, gcc-internal-format
 msgid "size of %q+D is larger than %wd bytes"
 msgstr ""
 
-#: stor-layout.c:1167
+#: stor-layout.c:1129
 #, gcc-internal-format
 msgid "packed attribute causes inefficient alignment for %q+D"
 msgstr ""
 
-#: stor-layout.c:1171
+#: stor-layout.c:1133
 #, gcc-internal-format
 msgid "packed attribute is unnecessary for %q+D"
 msgstr ""
 
-#: stor-layout.c:1189
+#: stor-layout.c:1151
 #, gcc-internal-format
 msgid "padding struct to align %q+D"
 msgstr ""
 
-#: stor-layout.c:1250
+#: stor-layout.c:1212
 #, gcc-internal-format
 msgid "offset of packed bit-field %qD has changed in GCC 4.4"
 msgstr ""
 
-#: stor-layout.c:1556
+#: stor-layout.c:1518
 #, gcc-internal-format
 msgid "padding struct size to alignment boundary"
 msgstr ""
 
-#: stor-layout.c:1584
+#: stor-layout.c:1546
 #, gcc-internal-format
 msgid "packed attribute causes inefficient alignment for %qE"
 msgstr ""
 
-#: stor-layout.c:1588
+#: stor-layout.c:1550
 #, gcc-internal-format
 msgid "packed attribute is unnecessary for %qE"
 msgstr ""
 
-#: stor-layout.c:1594
+#: stor-layout.c:1556
 #, gcc-internal-format
 msgid "packed attribute causes inefficient alignment"
 msgstr ""
 
-#: stor-layout.c:1596
+#: stor-layout.c:1558
 #, gcc-internal-format
 msgid "packed attribute is unnecessary"
 msgstr ""
 
-#: stor-layout.c:2068
+#: stor-layout.c:2025
 #, gcc-internal-format
 msgid "alignment of array elements is greater than element size"
 msgstr ""
@@ -17897,59 +18206,84 @@
 msgid "nested function trampolines not supported on this target"
 msgstr ""
 
-#: targhooks.c:1178
+#: targhooks.c:1161
 #, gcc-internal-format
 msgid "target attribute is not supported on this machine"
 msgstr ""
 
-#: targhooks.c:1188
+#: targhooks.c:1171
 #, gcc-internal-format
 msgid "#pragma GCC target is not supported for this machine"
 msgstr ""
 
-#: tlink.c:486
+#: tlink.c:481
+#, gcc-internal-format
+msgid "removing .rpo file: %m"
+msgstr ""
+
+#: tlink.c:483
+#, gcc-internal-format
+msgid "renaming .rpo file: %m"
+msgstr ""
+
+#: tlink.c:487
 #, gcc-internal-format, gfc-internal-format
 msgid "repository file '%s' does not contain command-line arguments"
 msgstr ""
 
-#: tlink.c:734
+#: tlink.c:735
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' was assigned to '%s', but was not defined during recompilation, or vice "
 "versa"
 msgstr ""
 
-#: tlink.c:804
+#: tlink.c:805
 #, gcc-internal-format, gfc-internal-format
 msgid "ld returned %d exit status"
 msgstr ""
 
-#: toplev.c:499
+#: toplev.c:500
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr ""
 
-#: toplev.c:527
+#: toplev.c:528
 #, gcc-internal-format
 msgid "%q+D defined but not used"
 msgstr ""
 
-#: toplev.c:949
+#: toplev.c:950
 #, gcc-internal-format
 msgid "-frecord-gcc-switches is not supported by the current target"
 msgstr ""
 
-#: toplev.c:1058
+#: toplev.c:1057
 #, gcc-internal-format
-msgid "-fstack-usage not supported for this target"
+msgid "stack usage computation not supported for this target"
 msgstr ""
 
-#: toplev.c:1295
+#: toplev.c:1111
+#, gcc-internal-format
+msgid "stack usage might be unbounded"
+msgstr ""
+
+#: toplev.c:1115
+#, gcc-internal-format
+msgid "stack usage might be %wd bytes"
+msgstr ""
+
+#: toplev.c:1118
+#, gcc-internal-format
+msgid "stack usage is %wd bytes"
+msgstr ""
+
+#: toplev.c:1291
 #, gcc-internal-format
 msgid "this target does not support %qs"
 msgstr ""
 
-#: toplev.c:1323
+#: toplev.c:1319
 #, gcc-internal-format
 msgid ""
 "Graphite loop optimizations cannot be used (-fgraphite, -fgraphite-identity, "
@@ -17957,821 +18291,821 @@
 "parallelize-all, and -ftree-loop-linear)"
 msgstr ""
 
-#: toplev.c:1352
+#: toplev.c:1348
 #, gcc-internal-format
 msgid "instruction scheduling not supported on this target machine"
 msgstr ""
 
-#: toplev.c:1356
+#: toplev.c:1352
 #, gcc-internal-format
 msgid "this target machine does not have delayed branches"
 msgstr ""
 
-#: toplev.c:1370
+#: toplev.c:1366
 #, gcc-internal-format, gfc-internal-format
 msgid "-f%sleading-underscore not supported on this target machine"
 msgstr ""
 
-#: toplev.c:1413
+#: toplev.c:1409
 #, gcc-internal-format
 msgid "could not close zeroed insn dump file %qs: %m"
 msgstr ""
 
-#: toplev.c:1452
+#: toplev.c:1448
 #, gcc-internal-format, gfc-internal-format
 msgid "target system does not support the \"%s\" debug format"
 msgstr ""
 
-#: toplev.c:1464
+#: toplev.c:1460
 #, gcc-internal-format
 msgid "variable tracking requested, but useless unless producing debug info"
 msgstr ""
 
-#: toplev.c:1467
+#: toplev.c:1463
 #, gcc-internal-format
 msgid "variable tracking requested, but not supported by this debug format"
 msgstr ""
 
-#: toplev.c:1501
+#: toplev.c:1497
 #, gcc-internal-format
 msgid "var-tracking-assignments changes selective scheduling"
 msgstr ""
 
-#: toplev.c:1524
+#: toplev.c:1520
 #, gcc-internal-format
 msgid "-ffunction-sections not supported for this target"
 msgstr ""
 
-#: toplev.c:1529
+#: toplev.c:1525
 #, gcc-internal-format
 msgid "-fdata-sections not supported for this target"
 msgstr ""
 
-#: toplev.c:1536
+#: toplev.c:1532
 #, gcc-internal-format
 msgid "-ffunction-sections disabled; it makes profiling impossible"
 msgstr ""
 
-#: toplev.c:1543
+#: toplev.c:1539
 #, gcc-internal-format
 msgid "-fprefetch-loop-arrays not supported for this target"
 msgstr ""
 
-#: toplev.c:1549
+#: toplev.c:1545
 #, gcc-internal-format
 msgid ""
 "-fprefetch-loop-arrays not supported for this target (try -march switches)"
 msgstr ""
 
-#: toplev.c:1558
+#: toplev.c:1554
 #, gcc-internal-format
 msgid "-fprefetch-loop-arrays is not supported with -Os"
 msgstr ""
 
-#: toplev.c:1569
+#: toplev.c:1565
 #, gcc-internal-format
 msgid "-fassociative-math disabled; other options take precedence"
 msgstr ""
 
-#: toplev.c:1585
+#: toplev.c:1581
 #, gcc-internal-format
 msgid "-fstack-protector not supported for this target"
 msgstr ""
 
-#: toplev.c:1598
+#: toplev.c:1594
 #, gcc-internal-format
 msgid "unwind tables currently require a frame pointer for correctness"
 msgstr ""
 
-#: toplev.c:1848
+#: toplev.c:1859
 #, gcc-internal-format
 msgid "error writing to %s: %m"
 msgstr ""
 
-#: toplev.c:1850 java/jcf-parse.c:1770
+#: toplev.c:1861 java/jcf-parse.c:1770
 #, gcc-internal-format
 msgid "error closing %s: %m"
 msgstr ""
 
-#: tree-cfg.c:2554
+#: tree-cfg.c:2550
 #, gcc-internal-format
 msgid "constant not recomputed when ADDR_EXPR changed"
 msgstr ""
 
-#: tree-cfg.c:2559
+#: tree-cfg.c:2555
 #, gcc-internal-format
 msgid "side effects not recomputed when ADDR_EXPR changed"
 msgstr ""
 
-#: tree-cfg.c:2570
+#: tree-cfg.c:2566
 #, gcc-internal-format
 msgid "DECL_GIMPLE_REG_P set on a variable with address taken"
 msgstr ""
 
-#: tree-cfg.c:2599
+#: tree-cfg.c:2595
 #, gcc-internal-format
 msgid "SSA name in freelist but still referenced"
 msgstr ""
 
-#: tree-cfg.c:2605 tree-cfg.c:3740
+#: tree-cfg.c:2601 tree-cfg.c:3765
 #, gcc-internal-format
 msgid "INDIRECT_REF in gimple IL"
 msgstr ""
 
-#: tree-cfg.c:2613
+#: tree-cfg.c:2609
 #, gcc-internal-format
 msgid "invalid first operand of MEM_REF"
 msgstr ""
 
-#: tree-cfg.c:2619
+#: tree-cfg.c:2615
 #, gcc-internal-format
 msgid "invalid offset operand of MEM_REF"
 msgstr ""
 
-#: tree-cfg.c:2632
+#: tree-cfg.c:2628
 #, gcc-internal-format
 msgid "ASSERT_EXPR with an always-false condition"
 msgstr ""
 
-#: tree-cfg.c:2638
+#: tree-cfg.c:2634
 #, gcc-internal-format
 msgid "MODIFY_EXPR not expected while having tuples"
 msgstr ""
 
-#: tree-cfg.c:2665 tree-ssa.c:836
+#: tree-cfg.c:2661 tree-ssa.c:871
 #, gcc-internal-format
 msgid "address taken, but ADDRESSABLE bit not set"
 msgstr ""
 
-#: tree-cfg.c:2676
+#: tree-cfg.c:2672
 #, gcc-internal-format
 msgid "non-integral used in condition"
 msgstr ""
 
-#: tree-cfg.c:2681
+#: tree-cfg.c:2677
 #, gcc-internal-format
 msgid "invalid conditional operand"
 msgstr ""
 
-#: tree-cfg.c:2728
+#: tree-cfg.c:2724
 #, gcc-internal-format
 msgid "invalid position or size operand to BIT_FIELD_REF"
 msgstr ""
 
-#: tree-cfg.c:2735
+#: tree-cfg.c:2731
 #, gcc-internal-format
 msgid ""
 "integral result type precision does not match field size of BIT_FIELD_REF"
 msgstr ""
 
-#: tree-cfg.c:2743
+#: tree-cfg.c:2739
 #, gcc-internal-format
 msgid ""
 "mode precision of non-integral result does not match field size of "
 "BIT_FIELD_REF"
 msgstr ""
 
-#: tree-cfg.c:2754
+#: tree-cfg.c:2750
 #, gcc-internal-format
 msgid "invalid reference prefix"
 msgstr ""
 
-#: tree-cfg.c:2765
+#: tree-cfg.c:2761
 #, gcc-internal-format
 msgid "invalid operand to plus/minus, type is a pointer"
 msgstr ""
 
-#: tree-cfg.c:2776
+#: tree-cfg.c:2772
 #, gcc-internal-format
 msgid "invalid operand to pointer plus, first operand is not a pointer"
 msgstr ""
 
-#: tree-cfg.c:2784
+#: tree-cfg.c:2780
 #, gcc-internal-format
 msgid ""
 "invalid operand to pointer plus, second operand is not an integer with type "
 "of sizetype"
 msgstr ""
 
-#: tree-cfg.c:2855
+#: tree-cfg.c:2831
+#, gcc-internal-format
+msgid "invalid CASE_CHAIN"
+msgstr ""
+
+#: tree-cfg.c:2859
 #, gcc-internal-format
 msgid "invalid expression for min lvalue"
 msgstr ""
 
-#: tree-cfg.c:2866
+#: tree-cfg.c:2870
 #, gcc-internal-format
 msgid "invalid operand in indirect reference"
 msgstr ""
 
-#: tree-cfg.c:2895
+#: tree-cfg.c:2899
 #, gcc-internal-format
 msgid "invalid operands to array reference"
 msgstr ""
 
-#: tree-cfg.c:2906
+#: tree-cfg.c:2910
 #, gcc-internal-format
 msgid "type mismatch in array reference"
 msgstr ""
 
-#: tree-cfg.c:2915
+#: tree-cfg.c:2919
 #, gcc-internal-format
 msgid "type mismatch in array range reference"
 msgstr ""
 
-#: tree-cfg.c:2926
+#: tree-cfg.c:2930
 #, gcc-internal-format
 msgid "type mismatch in real/imagpart reference"
 msgstr ""
 
-#: tree-cfg.c:2936
+#: tree-cfg.c:2940
 #, gcc-internal-format
 msgid "type mismatch in component reference"
 msgstr ""
 
-#: tree-cfg.c:2953
+#: tree-cfg.c:2957
 #, gcc-internal-format
 msgid "conversion of an SSA_NAME on the left hand side"
 msgstr ""
 
-#: tree-cfg.c:2960
+#: tree-cfg.c:2964
 #, gcc-internal-format
 msgid "conversion of register to a different size"
 msgstr ""
 
-#: tree-cfg.c:2975
+#: tree-cfg.c:2979
 #, gcc-internal-format
 msgid "invalid address operand in MEM_REF"
 msgstr ""
 
-#: tree-cfg.c:2982
+#: tree-cfg.c:2986
 #, gcc-internal-format
 msgid "invalid offset operand in MEM_REF"
 msgstr ""
 
-#: tree-cfg.c:2992
+#: tree-cfg.c:2996
 #, gcc-internal-format
-msgid "invalid address operand in in TARGET_MEM_REF"
+msgid "invalid address operand in TARGET_MEM_REF"
 msgstr ""
 
-#: tree-cfg.c:2999
+#: tree-cfg.c:3003
 #, gcc-internal-format
 msgid "invalid offset operand in TARGET_MEM_REF"
 msgstr ""
 
-#: tree-cfg.c:3052
+#: tree-cfg.c:3057
+#, gcc-internal-format
+msgid "gimple call has two targets"
+msgstr ""
+
+#: tree-cfg.c:3066
+#, gcc-internal-format
+msgid "gimple call has no target"
+msgstr ""
+
+#: tree-cfg.c:3073
 #, gcc-internal-format
 msgid "invalid function in gimple call"
 msgstr ""
 
-#: tree-cfg.c:3061
+#: tree-cfg.c:3083
 #, gcc-internal-format
 msgid "non-function in gimple call"
 msgstr ""
 
-#: tree-cfg.c:3069
-#, gcc-internal-format
-msgid "invalid LHS in gimple call"
-msgstr ""
-
-#: tree-cfg.c:3075
-#, gcc-internal-format
-msgid "LHS in noreturn call"
-msgstr ""
-
-#: tree-cfg.c:3091
-#, gcc-internal-format
-msgid "invalid conversion in gimple call"
-msgstr ""
-
-#: tree-cfg.c:3100
-#, gcc-internal-format
-msgid "invalid static chain in gimple call"
-msgstr ""
-
-#: tree-cfg.c:3111
-#, gcc-internal-format
-msgid "static chain in indirect gimple call"
-msgstr ""
-
-#: tree-cfg.c:3118
-#, gcc-internal-format
-msgid "static chain with function that doesn%'t use one"
-msgstr ""
-
-#: tree-cfg.c:3136
-#, gcc-internal-format
-msgid "invalid argument to gimple call"
-msgstr ""
-
-#: tree-cfg.c:3156
-#, gcc-internal-format
-msgid "invalid operands in gimple comparison"
-msgstr ""
-
-#: tree-cfg.c:3174
-#, gcc-internal-format
-msgid "type mismatch in comparison expression"
-msgstr ""
-
-#: tree-cfg.c:3200
-#, gcc-internal-format
-msgid "non-register as LHS of unary operation"
-msgstr ""
-
-#: tree-cfg.c:3206
-#, gcc-internal-format
-msgid "invalid operand in unary operation"
-msgstr ""
-
-#: tree-cfg.c:3241
-#, gcc-internal-format
-msgid "invalid types in nop conversion"
-msgstr ""
-
-#: tree-cfg.c:3256
-#, gcc-internal-format
-msgid "invalid types in address space conversion"
-msgstr ""
-
-#: tree-cfg.c:3270
-#, gcc-internal-format
-msgid "invalid types in fixed-point conversion"
-msgstr ""
-
-#: tree-cfg.c:3283
-#, gcc-internal-format
-msgid "invalid types in conversion to floating point"
-msgstr ""
-
-#: tree-cfg.c:3296
-#, gcc-internal-format
-msgid "invalid types in conversion to integer"
-msgstr ""
-
-#: tree-cfg.c:3331
-#, gcc-internal-format
-msgid "non-trivial conversion in unary operation"
-msgstr ""
-
-#: tree-cfg.c:3358
-#, gcc-internal-format
-msgid "non-register as LHS of binary operation"
-msgstr ""
-
-#: tree-cfg.c:3365
-#, gcc-internal-format
-msgid "invalid operands in binary operation"
-msgstr ""
-
-#: tree-cfg.c:3380
-#, gcc-internal-format
-msgid "type mismatch in complex expression"
-msgstr ""
-
-#: tree-cfg.c:3409
-#, gcc-internal-format
-msgid "type mismatch in shift expression"
-msgstr ""
-
-#: tree-cfg.c:3432
-#, gcc-internal-format
-msgid "type mismatch in vector shift expression"
-msgstr ""
-
-#: tree-cfg.c:3445
-#, gcc-internal-format
-msgid "non-element sized vector shift of floating point vector"
-msgstr ""
-
-#: tree-cfg.c:3464
-#, gcc-internal-format
-msgid "invalid non-vector operands to vector valued plus"
-msgstr ""
-
-#: tree-cfg.c:3484
-#, gcc-internal-format
-msgid "invalid (pointer) operands to plus/minus"
-msgstr ""
-
-#: tree-cfg.c:3499
-#, gcc-internal-format
-msgid "type mismatch in pointer plus expression"
-msgstr ""
-
-#: tree-cfg.c:3522
-#, gcc-internal-format
-msgid "type mismatch in binary truth expression"
-msgstr ""
-
-#: tree-cfg.c:3595
-#, gcc-internal-format
-msgid "type mismatch in binary expression"
-msgstr ""
-
-#: tree-cfg.c:3625
-#, gcc-internal-format
-msgid "non-register as LHS of ternary operation"
-msgstr ""
-
-#: tree-cfg.c:3633
-#, gcc-internal-format
-msgid "invalid operands in ternary operation"
-msgstr ""
-
-#: tree-cfg.c:3649
-#, gcc-internal-format
-msgid "type mismatch in widening multiply-accumulate expression"
-msgstr ""
-
-#: tree-cfg.c:3663
-#, gcc-internal-format
-msgid "type mismatch in fused multiply-add expression"
-msgstr ""
-
-#: tree-cfg.c:3698
-#, gcc-internal-format
-msgid "non-trivial conversion at assignment"
-msgstr ""
-
-#: tree-cfg.c:3715
-#, gcc-internal-format
-msgid "invalid operand in unary expression"
-msgstr ""
-
-#: tree-cfg.c:3729
-#, gcc-internal-format
-msgid "type mismatch in address expression"
-msgstr ""
-
-#: tree-cfg.c:3755 tree-cfg.c:3781
-#, gcc-internal-format
-msgid "invalid rhs for gimple memory store"
-msgstr ""
-
-#: tree-cfg.c:3797
-#, gcc-internal-format
-msgid "invalid COND_EXPR in gimple assignment"
-msgstr ""
-
-#: tree-cfg.c:3859
-#, gcc-internal-format
-msgid "invalid operand in return statement"
-msgstr ""
-
-#: tree-cfg.c:3873
-#, gcc-internal-format
-msgid "invalid conversion in return statement"
-msgstr ""
-
-#: tree-cfg.c:3897
-#, gcc-internal-format
-msgid "goto destination is neither a label nor a pointer"
-msgstr ""
-
-#: tree-cfg.c:3912
-#, gcc-internal-format
-msgid "invalid operand to switch statement"
-msgstr ""
-
-#: tree-cfg.c:3932
-#, gcc-internal-format
-msgid "invalid PHI result"
-msgstr ""
-
-#: tree-cfg.c:3944
-#, gcc-internal-format
-msgid "invalid PHI argument"
-msgstr ""
-
-#: tree-cfg.c:3950
-#, gcc-internal-format, gfc-internal-format
-msgid "incompatible types in PHI argument %u"
-msgstr ""
-
-#: tree-cfg.c:3997
-#, gcc-internal-format
-msgid "invalid comparison code in gimple cond"
-msgstr ""
-
-#: tree-cfg.c:4005
-#, gcc-internal-format
-msgid "invalid labels in gimple cond"
-msgstr ""
-
-#: tree-cfg.c:4104
-#, gcc-internal-format
-msgid "verify_gimple failed"
-msgstr ""
-
-#: tree-cfg.c:4139
-#, gcc-internal-format
-msgid "invalid function in call statement"
-msgstr ""
-
-#: tree-cfg.c:4150
+#: tree-cfg.c:3094
 #, gcc-internal-format
 msgid "invalid pure const state for function"
 msgstr ""
 
-#: tree-cfg.c:4163 tree-ssa.c:1013 tree-ssa.c:1023
+#: tree-cfg.c:3102
 #, gcc-internal-format
-msgid "in statement"
+msgid "invalid LHS in gimple call"
 msgstr ""
 
-#: tree-cfg.c:4178
+#: tree-cfg.c:3108
 #, gcc-internal-format
-msgid "statement marked for throw, but doesn%'t"
+msgid "LHS in noreturn call"
 msgstr ""
 
-#: tree-cfg.c:4183
+#: tree-cfg.c:3125
 #, gcc-internal-format
-msgid "statement marked for throw in middle of block"
+msgid "invalid conversion in gimple call"
 msgstr ""
 
-#: tree-cfg.c:4255
+#: tree-cfg.c:3134
 #, gcc-internal-format
-msgid "dead STMT in EH table"
+msgid "invalid static chain in gimple call"
 msgstr ""
 
-#: tree-cfg.c:4293
+#: tree-cfg.c:3145
 #, gcc-internal-format
-msgid "gimple_bb (phi) is set to a wrong basic block"
+msgid "static chain in indirect gimple call"
 msgstr ""
 
-#: tree-cfg.c:4304
+#: tree-cfg.c:3152
 #, gcc-internal-format
-msgid "missing PHI def"
+msgid "static chain with function that doesn%'t use one"
 msgstr ""
 
-#: tree-cfg.c:4315
+#: tree-cfg.c:3170
 #, gcc-internal-format
-msgid "PHI argument is not a GIMPLE value"
+msgid "invalid argument to gimple call"
 msgstr ""
 
-#: tree-cfg.c:4324 tree-cfg.c:4397
+#: tree-cfg.c:3190
 #, gcc-internal-format
-msgid "incorrect sharing of tree nodes"
+msgid "invalid operands in gimple comparison"
 msgstr ""
 
-#: tree-cfg.c:4347
+#: tree-cfg.c:3208
 #, gcc-internal-format
-msgid "invalid GIMPLE statement"
+msgid "type mismatch in comparison expression"
 msgstr ""
 
-#: tree-cfg.c:4356
+#: tree-cfg.c:3232
 #, gcc-internal-format
-msgid "gimple_bb (stmt) is set to a wrong basic block"
+msgid "non-register as LHS of unary operation"
 msgstr ""
 
-#: tree-cfg.c:4369
+#: tree-cfg.c:3238
+#, gcc-internal-format
+msgid "invalid operand in unary operation"
+msgstr ""
+
+#: tree-cfg.c:3273
+#, gcc-internal-format
+msgid "invalid types in nop conversion"
+msgstr ""
+
+#: tree-cfg.c:3288
+#, gcc-internal-format
+msgid "invalid types in address space conversion"
+msgstr ""
+
+#: tree-cfg.c:3302
+#, gcc-internal-format
+msgid "invalid types in fixed-point conversion"
+msgstr ""
+
+#: tree-cfg.c:3315
+#, gcc-internal-format
+msgid "invalid types in conversion to floating point"
+msgstr ""
+
+#: tree-cfg.c:3328
+#, gcc-internal-format
+msgid "invalid types in conversion to integer"
+msgstr ""
+
+#: tree-cfg.c:3353
+#, gcc-internal-format
+msgid "invalid types in truth not"
+msgstr ""
+
+#: tree-cfg.c:3375
+#, gcc-internal-format
+msgid "non-trivial conversion in unary operation"
+msgstr ""
+
+#: tree-cfg.c:3400
+#, gcc-internal-format
+msgid "non-register as LHS of binary operation"
+msgstr ""
+
+#: tree-cfg.c:3407
+#, gcc-internal-format
+msgid "invalid operands in binary operation"
+msgstr ""
+
+#: tree-cfg.c:3422
+#, gcc-internal-format
+msgid "type mismatch in complex expression"
+msgstr ""
+
+#: tree-cfg.c:3451
+#, gcc-internal-format
+msgid "type mismatch in shift expression"
+msgstr ""
+
+#: tree-cfg.c:3474
+#, gcc-internal-format
+msgid "type mismatch in vector shift expression"
+msgstr ""
+
+#: tree-cfg.c:3487
+#, gcc-internal-format
+msgid "non-element sized vector shift of floating point vector"
+msgstr ""
+
+#: tree-cfg.c:3506
+#, gcc-internal-format
+msgid "invalid non-vector operands to vector valued plus"
+msgstr ""
+
+#: tree-cfg.c:3526
+#, gcc-internal-format
+msgid "invalid (pointer) operands to plus/minus"
+msgstr ""
+
+#: tree-cfg.c:3541
+#, gcc-internal-format
+msgid "type mismatch in pointer plus expression"
+msgstr ""
+
+#: tree-cfg.c:3622
+#, gcc-internal-format
+msgid "type mismatch in binary expression"
+msgstr ""
+
+#: tree-cfg.c:3650
+#, gcc-internal-format
+msgid "non-register as LHS of ternary operation"
+msgstr ""
+
+#: tree-cfg.c:3658
+#, gcc-internal-format
+msgid "invalid operands in ternary operation"
+msgstr ""
+
+#: tree-cfg.c:3674
+#, gcc-internal-format
+msgid "type mismatch in widening multiply-accumulate expression"
+msgstr ""
+
+#: tree-cfg.c:3688
+#, gcc-internal-format
+msgid "type mismatch in fused multiply-add expression"
+msgstr ""
+
+#: tree-cfg.c:3723
+#, gcc-internal-format
+msgid "non-trivial conversion at assignment"
+msgstr ""
+
+#: tree-cfg.c:3740
+#, gcc-internal-format
+msgid "invalid operand in unary expression"
+msgstr ""
+
+#: tree-cfg.c:3754
+#, gcc-internal-format
+msgid "type mismatch in address expression"
+msgstr ""
+
+#: tree-cfg.c:3780 tree-cfg.c:3806
+#, gcc-internal-format
+msgid "invalid rhs for gimple memory store"
+msgstr ""
+
+#: tree-cfg.c:3822
+#, gcc-internal-format
+msgid "invalid COND_EXPR in gimple assignment"
+msgstr ""
+
+#: tree-cfg.c:3884
+#, gcc-internal-format
+msgid "invalid operand in return statement"
+msgstr ""
+
+#: tree-cfg.c:3898
+#, gcc-internal-format
+msgid "invalid conversion in return statement"
+msgstr ""
+
+#: tree-cfg.c:3922
+#, gcc-internal-format
+msgid "goto destination is neither a label nor a pointer"
+msgstr ""
+
+#: tree-cfg.c:3937
+#, gcc-internal-format
+msgid "invalid operand to switch statement"
+msgstr ""
+
+#: tree-cfg.c:3980
 #, gcc-internal-format
 msgid "incorrect entry in label_to_block_map"
 msgstr ""
 
-#: tree-cfg.c:4379
+#: tree-cfg.c:3990
 #, gcc-internal-format
 msgid "incorrect setting of landing pad number"
 msgstr ""
 
-#: tree-cfg.c:4413
+#: tree-cfg.c:4018
 #, gcc-internal-format
-msgid "verify_stmts failed"
+msgid "invalid comparison code in gimple cond"
 msgstr ""
 
-#: tree-cfg.c:4436
+#: tree-cfg.c:4026
+#, gcc-internal-format
+msgid "invalid labels in gimple cond"
+msgstr ""
+
+#: tree-cfg.c:4084 tree-cfg.c:4093
+#, gcc-internal-format
+msgid "invalid PHI result"
+msgstr ""
+
+#: tree-cfg.c:4103
+#, gcc-internal-format
+msgid "missing PHI def"
+msgstr ""
+
+#: tree-cfg.c:4117
+#, gcc-internal-format
+msgid "invalid PHI argument"
+msgstr ""
+
+#: tree-cfg.c:4124
+#, gcc-internal-format, gfc-internal-format
+msgid "incompatible types in PHI argument %u"
+msgstr ""
+
+#: tree-cfg.c:4187 tree-cfg.c:4383
+#, gcc-internal-format
+msgid "verify_gimple failed"
+msgstr ""
+
+#: tree-cfg.c:4248
+#, gcc-internal-format
+msgid "dead STMT in EH table"
+msgstr ""
+
+#: tree-cfg.c:4282
+#, gcc-internal-format
+msgid "gimple_bb (phi) is set to a wrong basic block"
+msgstr ""
+
+#: tree-cfg.c:4294 tree-cfg.c:4328
+#, gcc-internal-format
+msgid "incorrect sharing of tree nodes"
+msgstr ""
+
+#: tree-cfg.c:4317
+#, gcc-internal-format
+msgid "gimple_bb (stmt) is set to a wrong basic block"
+msgstr ""
+
+#: tree-cfg.c:4343 tree-ssa.c:1048 tree-ssa.c:1058
+#, gcc-internal-format
+msgid "in statement"
+msgstr ""
+
+#: tree-cfg.c:4358
+#, gcc-internal-format
+msgid "statement marked for throw, but doesn%'t"
+msgstr ""
+
+#: tree-cfg.c:4365
+#, gcc-internal-format
+msgid "statement marked for throw in middle of block"
+msgstr ""
+
+#: tree-cfg.c:4406
 #, gcc-internal-format
 msgid "ENTRY_BLOCK has IL associated with it"
 msgstr ""
 
-#: tree-cfg.c:4442
+#: tree-cfg.c:4412
 #, gcc-internal-format
 msgid "EXIT_BLOCK has IL associated with it"
 msgstr ""
 
-#: tree-cfg.c:4449
+#: tree-cfg.c:4419
 #, gcc-internal-format, gfc-internal-format
 msgid "fallthru to exit from bb %d"
 msgstr ""
 
-#: tree-cfg.c:4473
+#: tree-cfg.c:4443
 #, gcc-internal-format
 msgid "nonlocal label "
 msgstr ""
 
-#: tree-cfg.c:4482
+#: tree-cfg.c:4452
 #, gcc-internal-format
 msgid "EH landing pad label "
 msgstr ""
 
-#: tree-cfg.c:4491 tree-cfg.c:4500 tree-cfg.c:4525
+#: tree-cfg.c:4461 tree-cfg.c:4470 tree-cfg.c:4495
 #, gcc-internal-format
 msgid "label "
 msgstr ""
 
-#: tree-cfg.c:4515
+#: tree-cfg.c:4485
 #, gcc-internal-format, gfc-internal-format
 msgid "control flow in the middle of basic block %d"
 msgstr ""
 
-#: tree-cfg.c:4548
+#: tree-cfg.c:4518
 #, gcc-internal-format, gfc-internal-format
 msgid "fallthru edge after a control statement in bb %d"
 msgstr ""
 
-#: tree-cfg.c:4561
+#: tree-cfg.c:4531
 #, gcc-internal-format, gfc-internal-format
 msgid "true/false edge after a non-GIMPLE_COND in bb %d"
 msgstr ""
 
-#: tree-cfg.c:4584 tree-cfg.c:4606 tree-cfg.c:4623 tree-cfg.c:4692
+#: tree-cfg.c:4554 tree-cfg.c:4576 tree-cfg.c:4593 tree-cfg.c:4662
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong outgoing edge flags at end of bb %d"
 msgstr ""
 
-#: tree-cfg.c:4594
+#: tree-cfg.c:4564
 #, gcc-internal-format, gfc-internal-format
 msgid "explicit goto at end of bb %d"
 msgstr ""
 
-#: tree-cfg.c:4628
+#: tree-cfg.c:4598
 #, gcc-internal-format, gfc-internal-format
 msgid "return edge does not point to exit in bb %d"
 msgstr ""
 
-#: tree-cfg.c:4658
+#: tree-cfg.c:4628
 #, gcc-internal-format
 msgid "found default case not at the start of case vector"
 msgstr ""
 
-#: tree-cfg.c:4666
+#: tree-cfg.c:4636
 #, gcc-internal-format
 msgid "case labels not sorted: "
 msgstr ""
 
-#: tree-cfg.c:4683
+#: tree-cfg.c:4653
 #, gcc-internal-format, gfc-internal-format
 msgid "extra outgoing edge %d->%d"
 msgstr ""
 
-#: tree-cfg.c:4706
+#: tree-cfg.c:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "missing edge %i->%i"
 msgstr ""
 
-#: tree-cfg.c:7346
+#: tree-cfg.c:7336
 #, gcc-internal-format
 msgid "%<noreturn%> function does return"
 msgstr ""
 
-#: tree-cfg.c:7366
+#: tree-cfg.c:7356
 #, gcc-internal-format
 msgid "control reaches end of non-void function"
 msgstr ""
 
-#: tree-cfg.c:7502
+#: tree-cfg.c:7494
 #, gcc-internal-format
 msgid ""
 "ignoring return value of %qD, declared with attribute warn_unused_result"
 msgstr ""
 
-#: tree-cfg.c:7507
+#: tree-cfg.c:7499
 #, gcc-internal-format
 msgid ""
 "ignoring return value of function declared with attribute warn_unused_result"
 msgstr ""
 
-#: tree-dump.c:935
+#: tree-dump.c:931
 #, gcc-internal-format
 msgid "could not open dump file %qs: %m"
 msgstr ""
 
-#: tree-dump.c:1068
+#: tree-dump.c:1064
 #, gcc-internal-format
 msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
 msgstr ""
 
-#: tree-eh.c:4035
+#: tree-eh.c:4045
 #, gcc-internal-format, gfc-internal-format
 msgid "BB %i has multiple EH edges"
 msgstr ""
 
-#: tree-eh.c:4047
+#: tree-eh.c:4057
 #, gcc-internal-format, gfc-internal-format
 msgid "BB %i can not throw but has an EH edge"
 msgstr ""
 
-#: tree-eh.c:4055
+#: tree-eh.c:4065
 #, gcc-internal-format, gfc-internal-format
 msgid "BB %i last statement has incorrectly set lp"
 msgstr ""
 
-#: tree-eh.c:4061
+#: tree-eh.c:4071
 #, gcc-internal-format, gfc-internal-format
 msgid "BB %i is missing an EH edge"
 msgstr ""
 
-#: tree-eh.c:4067
+#: tree-eh.c:4077
 #, gcc-internal-format, gfc-internal-format
 msgid "Incorrect EH edge %i->%i"
 msgstr ""
 
-#: tree-eh.c:4101 tree-eh.c:4120
+#: tree-eh.c:4111 tree-eh.c:4130
 #, gcc-internal-format, gfc-internal-format
 msgid "BB %i is missing an edge"
 msgstr ""
 
-#: tree-eh.c:4137
+#: tree-eh.c:4147
 #, gcc-internal-format, gfc-internal-format
 msgid "BB %i too many fallthru edges"
 msgstr ""
 
-#: tree-eh.c:4146
+#: tree-eh.c:4156
 #, gcc-internal-format, gfc-internal-format
 msgid "BB %i has incorrect edge"
 msgstr ""
 
-#: tree-eh.c:4152
+#: tree-eh.c:4162
 #, gcc-internal-format, gfc-internal-format
 msgid "BB %i has incorrect fallthru edge"
 msgstr ""
 
-#: tree-inline.c:2954
+#: tree-inline.c:2958
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr ""
 
-#: tree-inline.c:2968
+#: tree-inline.c:2972
 #, gcc-internal-format
 msgid ""
 "function %q+F can never be copied because it saves address of local label in "
 "a static variable"
 msgstr ""
 
-#: tree-inline.c:3005
+#: tree-inline.c:3012
 #, gcc-internal-format
 msgid ""
 "function %q+F can never be inlined because it uses alloca (override using "
 "the always_inline attribute)"
 msgstr ""
 
-#: tree-inline.c:3019
+#: tree-inline.c:3026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr ""
 
-#: tree-inline.c:3033
+#: tree-inline.c:3040
 #, gcc-internal-format
 msgid ""
 "function %q+F can never be inlined because it uses variable argument lists"
 msgstr ""
 
-#: tree-inline.c:3045
+#: tree-inline.c:3052
 #, gcc-internal-format
 msgid ""
 "function %q+F can never be inlined because it uses setjmp-longjmp exception "
 "handling"
 msgstr ""
 
-#: tree-inline.c:3053
+#: tree-inline.c:3060
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr ""
 
-#: tree-inline.c:3065
+#: tree-inline.c:3072
 #, gcc-internal-format
 msgid ""
 "function %q+F can never be inlined because it uses __builtin_return or "
 "__builtin_apply_args"
 msgstr ""
 
-#: tree-inline.c:3085
+#: tree-inline.c:3092
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr ""
 
-#: tree-inline.c:3188
+#: tree-inline.c:3172
 #, gcc-internal-format
 msgid ""
 "function %q+F can never be inlined because it is suppressed using -fno-inline"
 msgstr ""
 
-#: tree-inline.c:3196
+#: tree-inline.c:3180
 #, gcc-internal-format
 msgid ""
 "function %q+F can never be inlined because it uses attributes conflicting "
 "with inlining"
 msgstr ""
 
-#: tree-inline.c:3812 tree-inline.c:3823
+#: tree-inline.c:3749
 #, gcc-internal-format
-msgid "inlining failed in call to %q+F: %s"
+msgid "inlining failed in call to always_inline %q+F: %s"
 msgstr ""
 
-#: tree-inline.c:3814 tree-inline.c:3825
+#: tree-inline.c:3751 tree-inline.c:3766
 #, gcc-internal-format
 msgid "called from here"
 msgstr ""
 
+#: tree-inline.c:3764
+#, gcc-internal-format
+msgid "inlining failed in call to %q+F: %s"
+msgstr ""
+
 #: tree-mudflap.c:895
 #, gcc-internal-format
 msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
@@ -18792,600 +19126,610 @@
 msgid "mudflap: this language is not supported"
 msgstr ""
 
-#: tree-optimize.c:450
+#: tree-optimize.c:444
 #, gcc-internal-format
 msgid "size of return value of %q+D is %u bytes"
 msgstr ""
 
-#: tree-optimize.c:453
+#: tree-optimize.c:447
 #, gcc-internal-format
 msgid "size of return value of %q+D is larger than %wd bytes"
 msgstr ""
 
-#: tree-outof-ssa.c:783 tree-outof-ssa.c:840 tree-ssa-coalesce.c:952
-#: tree-ssa-coalesce.c:967 tree-ssa-coalesce.c:1189 tree-ssa-live.c:1302
+#: tree-outof-ssa.c:783 tree-outof-ssa.c:840 tree-ssa-coalesce.c:951
+#: tree-ssa-coalesce.c:966 tree-ssa-coalesce.c:1188 tree-ssa-live.c:1296
 #, gcc-internal-format
 msgid "SSA corruption"
 msgstr ""
 
-#: tree-profile.c:397
+#: tree-profile.c:408
 #, gcc-internal-format
 msgid "unimplemented functionality"
 msgstr ""
 
-#: tree-ssa-uninit.c:1959 tree-ssa.c:1737
+#: tree-ssa-uninit.c:1959 tree-ssa.c:1771
 #, gcc-internal-format
 msgid "%qD may be used uninitialized in this function"
 msgstr ""
 
-#: tree-ssa.c:584
+#: tree-ssa.c:619
 #, gcc-internal-format
 msgid "expected an SSA_NAME object"
 msgstr ""
 
-#: tree-ssa.c:590
+#: tree-ssa.c:625
 #, gcc-internal-format
 msgid "type mismatch between an SSA_NAME and its symbol"
 msgstr ""
 
-#: tree-ssa.c:596
+#: tree-ssa.c:631
 #, gcc-internal-format
 msgid "found an SSA_NAME that had been released into the free pool"
 msgstr ""
 
-#: tree-ssa.c:602
+#: tree-ssa.c:637
 #, gcc-internal-format
 msgid "found a virtual definition for a GIMPLE register"
 msgstr ""
 
-#: tree-ssa.c:608
+#: tree-ssa.c:643
 #, gcc-internal-format
 msgid "virtual SSA name for non-VOP decl"
 msgstr ""
 
-#: tree-ssa.c:614
+#: tree-ssa.c:649
 #, gcc-internal-format
 msgid "found a real definition for a non-register"
 msgstr ""
 
-#: tree-ssa.c:621
+#: tree-ssa.c:656
 #, gcc-internal-format
 msgid "found a default name with a non-empty defining statement"
 msgstr ""
 
-#: tree-ssa.c:650
+#: tree-ssa.c:685
 #, gcc-internal-format
 msgid "RESULT_DECL should be read only when DECL_BY_REFERENCE is set"
 msgstr ""
 
-#: tree-ssa.c:656
+#: tree-ssa.c:691
 #, gcc-internal-format, gfc-internal-format
 msgid "SSA_NAME created in two different blocks %i and %i"
 msgstr ""
 
-#: tree-ssa.c:665 tree-ssa.c:1054
+#: tree-ssa.c:700 tree-ssa.c:1089
 #, gcc-internal-format
 msgid "SSA_NAME_DEF_STMT is wrong"
 msgstr ""
 
-#: tree-ssa.c:717
+#: tree-ssa.c:752
 #, gcc-internal-format
 msgid "missing definition"
 msgstr ""
 
-#: tree-ssa.c:723
+#: tree-ssa.c:758
 #, gcc-internal-format, gfc-internal-format
 msgid "definition in block %i does not dominate use in block %i"
 msgstr ""
 
-#: tree-ssa.c:731
+#: tree-ssa.c:766
 #, gcc-internal-format, gfc-internal-format
 msgid "definition in block %i follows the use"
 msgstr ""
 
-#: tree-ssa.c:738
+#: tree-ssa.c:773
 #, gcc-internal-format
 msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
 msgstr ""
 
-#: tree-ssa.c:746
+#: tree-ssa.c:781
 #, gcc-internal-format
 msgid "no immediate_use list"
 msgstr ""
 
-#: tree-ssa.c:758
+#: tree-ssa.c:793
 #, gcc-internal-format
 msgid "wrong immediate use list"
 msgstr ""
 
-#: tree-ssa.c:792
+#: tree-ssa.c:827
 #, gcc-internal-format
 msgid "incoming edge count does not match number of PHI arguments"
 msgstr ""
 
-#: tree-ssa.c:806
+#: tree-ssa.c:841
 #, gcc-internal-format, gfc-internal-format
 msgid "PHI argument is missing for edge %d->%d"
 msgstr ""
 
-#: tree-ssa.c:815
+#: tree-ssa.c:850
 #, gcc-internal-format
 msgid "PHI argument is not SSA_NAME, or invariant"
 msgstr ""
 
-#: tree-ssa.c:843
+#: tree-ssa.c:878
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong edge %d->%d for PHI argument"
 msgstr ""
 
-#: tree-ssa.c:924
+#: tree-ssa.c:959
 #, gcc-internal-format, gfc-internal-format
 msgid "AUX pointer initialized for edge %d->%d"
 msgstr ""
 
-#: tree-ssa.c:952
+#: tree-ssa.c:987
 #, gcc-internal-format
 msgid "stmt (%p) marked modified after optimization pass: "
 msgstr ""
 
-#: tree-ssa.c:971
+#: tree-ssa.c:1006
 #, gcc-internal-format
 msgid "statement makes a memory store, but has no VDEFS"
 msgstr ""
 
-#: tree-ssa.c:986
+#: tree-ssa.c:1021
 #, gcc-internal-format
 msgid "statement has VDEF operand not in defs list"
 msgstr ""
 
-#: tree-ssa.c:991
+#: tree-ssa.c:1026
 #, gcc-internal-format
 msgid "statement has VDEF but no VUSE operand"
 msgstr ""
 
-#: tree-ssa.c:997
+#: tree-ssa.c:1032
 #, gcc-internal-format
 msgid "VDEF and VUSE do not use the same symbol"
 msgstr ""
 
-#: tree-ssa.c:1006
+#: tree-ssa.c:1041
 #, gcc-internal-format
 msgid "statement has VUSE operand not in uses list"
 msgstr ""
 
-#: tree-ssa.c:1035
+#: tree-ssa.c:1070
 #, gcc-internal-format
 msgid "number of operands and imm-links don%'t agree in statement"
 msgstr ""
 
-#: tree-ssa.c:1083
+#: tree-ssa.c:1118
 #, gcc-internal-format
 msgid "verify_ssa failed"
 msgstr ""
 
-#: tree-ssa.c:1661
+#: tree-ssa.c:1693 varasm.c:321
 #, gcc-internal-format
 msgid "%qD was declared here"
 msgstr ""
 
-#: tree-ssa.c:1734
+#: tree-ssa.c:1767
 #, gcc-internal-format
 msgid "%qD is used uninitialized in this function"
 msgstr ""
 
-#: tree-vrp.c:5271
+#: tree-vrp.c:5295
 #, gcc-internal-format
 msgid "array subscript is outside array bounds"
 msgstr ""
 
-#: tree-vrp.c:5283 tree-vrp.c:5370
+#: tree-vrp.c:5307 tree-vrp.c:5394
 #, gcc-internal-format
 msgid "array subscript is above array bounds"
 msgstr ""
 
-#: tree-vrp.c:5290 tree-vrp.c:5358
+#: tree-vrp.c:5314 tree-vrp.c:5382
 #, gcc-internal-format
 msgid "array subscript is below array bounds"
 msgstr ""
 
-#: tree-vrp.c:5997
+#: tree-vrp.c:6021
 #, gcc-internal-format
 msgid ""
 "assuming signed overflow does not occur when simplifying conditional to "
 "constant"
 msgstr ""
 
-#: tree-vrp.c:6003
+#: tree-vrp.c:6027
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying conditional"
 msgstr ""
 
-#: tree-vrp.c:6047
+#: tree-vrp.c:6071
 #, gcc-internal-format
 msgid "comparison always false due to limited range of data type"
 msgstr ""
 
-#: tree-vrp.c:6049
+#: tree-vrp.c:6073
 #, gcc-internal-format
 msgid "comparison always true due to limited range of data type"
 msgstr ""
 
-#: tree-vrp.c:6901
+#: tree-vrp.c:6925
 #, gcc-internal-format
 msgid ""
 "assuming signed overflow does not occur when simplifying %</%> or %<%%%> to "
 "%<>>%> or %<&%>"
 msgstr ""
 
-#: tree-vrp.c:6983
+#: tree-vrp.c:7007
 #, gcc-internal-format
 msgid ""
 "assuming signed overflow does not occur when simplifying %<abs (X)%> to %<X"
 "%> or %<-X%>"
 msgstr ""
 
-#: tree.c:4241
+#: tree.c:4230
 #, gcc-internal-format
 msgid "ignoring attributes applied to %qT after definition"
 msgstr ""
 
-#: tree.c:5381
+#: tree.c:5416
 #, gcc-internal-format
 msgid "%q+D already declared with dllexport attribute: dllimport ignored"
 msgstr ""
 
-#: tree.c:5393
+#: tree.c:5428
 #, gcc-internal-format
 msgid ""
 "%q+D redeclared without dllimport attribute after being referenced with dll "
 "linkage"
 msgstr ""
 
-#: tree.c:5408
+#: tree.c:5443
 #, gcc-internal-format
 msgid "%q+D redeclared without dllimport attribute: previous dllimport ignored"
 msgstr ""
 
-#: tree.c:5468 tree.c:5480 tree.c:5490 c-family/c-common.c:5728
-#: c-family/c-common.c:5747 c-family/c-common.c:5765 c-family/c-common.c:5793
-#: c-family/c-common.c:5820 c-family/c-common.c:5846 c-family/c-common.c:5865
-#: c-family/c-common.c:5882 c-family/c-common.c:5906 c-family/c-common.c:5929
-#: c-family/c-common.c:5946 c-family/c-common.c:5974 c-family/c-common.c:5995
-#: c-family/c-common.c:6016 c-family/c-common.c:6042 c-family/c-common.c:6073
-#: c-family/c-common.c:6110 c-family/c-common.c:6137 c-family/c-common.c:6181
-#: c-family/c-common.c:6265 c-family/c-common.c:6295 c-family/c-common.c:6349
-#: c-family/c-common.c:6695 c-family/c-common.c:6713 c-family/c-common.c:6775
-#: c-family/c-common.c:6818 c-family/c-common.c:6889 c-family/c-common.c:7017
-#: c-family/c-common.c:7085 c-family/c-common.c:7143 c-family/c-common.c:7191
-#: c-family/c-common.c:7270 c-family/c-common.c:7294 c-family/c-common.c:7580
-#: c-family/c-common.c:7603 c-family/c-common.c:7642 c-family/c-common.c:7731
-#: c-family/c-common.c:7880 config/darwin.c:1897 config/arm/arm.c:4825
-#: config/arm/arm.c:4853 config/arm/arm.c:4870 config/avr/avr.c:5070
-#: config/h8300/h8300.c:5424 config/h8300/h8300.c:5448 config/i386/i386.c:5345
-#: config/i386/i386.c:29677 config/ia64/ia64.c:731
-#: config/rs6000/rs6000.c:25290 config/spu/spu.c:3959
-#: ada/gcc-interface/utils.c:5291 lto/lto-lang.c:203
+#: tree.c:5503 tree.c:5515 tree.c:5525 c-family/c-common.c:5766
+#: c-family/c-common.c:5785 c-family/c-common.c:5803 c-family/c-common.c:5831
+#: c-family/c-common.c:5858 c-family/c-common.c:5884 c-family/c-common.c:5903
+#: c-family/c-common.c:5920 c-family/c-common.c:5944 c-family/c-common.c:5967
+#: c-family/c-common.c:5984 c-family/c-common.c:6012 c-family/c-common.c:6033
+#: c-family/c-common.c:6054 c-family/c-common.c:6080 c-family/c-common.c:6111
+#: c-family/c-common.c:6148 c-family/c-common.c:6175 c-family/c-common.c:6219
+#: c-family/c-common.c:6303 c-family/c-common.c:6333 c-family/c-common.c:6387
+#: c-family/c-common.c:6733 c-family/c-common.c:6751 c-family/c-common.c:6813
+#: c-family/c-common.c:6856 c-family/c-common.c:6927 c-family/c-common.c:7055
+#: c-family/c-common.c:7123 c-family/c-common.c:7181 c-family/c-common.c:7229
+#: c-family/c-common.c:7308 c-family/c-common.c:7332 c-family/c-common.c:7623
+#: c-family/c-common.c:7646 c-family/c-common.c:7685 c-family/c-common.c:7763
+#: c-family/c-common.c:7912 config/darwin.c:1897 config/arm/arm.c:4594
+#: config/arm/arm.c:4622 config/arm/arm.c:4639 config/avr/avr.c:5048
+#: config/h8300/h8300.c:5397 config/h8300/h8300.c:5421 config/i386/i386.c:4741
+#: config/i386/i386.c:29223 config/ia64/ia64.c:713
+#: config/rs6000/rs6000.c:24766 config/spu/spu.c:3963
+#: ada/gcc-interface/utils.c:5355 lto/lto-lang.c:203
 #, gcc-internal-format
 msgid "%qE attribute ignored"
 msgstr ""
 
-#: tree.c:5508
+#: tree.c:5543
 #, gcc-internal-format
 msgid "inline function %q+D declared as  dllimport: attribute ignored"
 msgstr ""
 
-#: tree.c:5516
+#: tree.c:5551
 #, gcc-internal-format
 msgid "function %q+D definition is marked dllimport"
 msgstr ""
 
-#: tree.c:5524
+#: tree.c:5559
 #, gcc-internal-format
 msgid "variable %q+D definition is marked dllimport"
 msgstr ""
 
-#: tree.c:5552
+#: tree.c:5587
 #, gcc-internal-format
 msgid "external linkage required for symbol %q+D because of %qE attribute"
 msgstr ""
 
-#: tree.c:5566
+#: tree.c:5601
 #, gcc-internal-format
 msgid ""
 "%qE implies default visibility, but %qD has already been declared with a "
 "different visibility"
 msgstr ""
 
-#: tree.c:7266
+#: tree.c:7294
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr ""
 
-#: tree.c:7424
+#: tree.c:7461
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr ""
 
-#: tree.c:8656 tree.c:8741 tree.c:8802
+#: tree.c:8743 tree.c:8828 tree.c:8889
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr ""
 
-#: tree.c:8693
+#: tree.c:8780
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr ""
 
-#: tree.c:8706
+#: tree.c:8793
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr ""
 
-#: tree.c:8755
+#: tree.c:8842
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr ""
 
-#: tree.c:8768
+#: tree.c:8855
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected omp_clause %s, have %s in %s, at %s:%d"
 msgstr ""
 
-#: tree.c:8828
+#: tree.c:8915
 #, gcc-internal-format
 msgid ""
 "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:"
 "%d"
 msgstr ""
 
-#: tree.c:8842
+#: tree.c:8929
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
 msgstr ""
 
-#: tree.c:8855
+#: tree.c:8942
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr ""
 
-#: tree.c:8868
+#: tree.c:8955
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "tree check: accessed operand %d of omp_clause %s with %d operands in %s, at "
 "%s:%d"
 msgstr ""
 
-#: tree.c:11087
+#: tree.c:11148
 #, gcc-internal-format
 msgid "%qD is deprecated (declared at %s:%d): %s"
 msgstr ""
 
-#: tree.c:11091
+#: tree.c:11152
 #, gcc-internal-format
 msgid "%qD is deprecated (declared at %s:%d)"
 msgstr ""
 
-#: tree.c:11116
+#: tree.c:11177
 #, gcc-internal-format
 msgid "%qE is deprecated (declared at %s:%d): %s"
 msgstr ""
 
-#: tree.c:11120
+#: tree.c:11181
 #, gcc-internal-format
 msgid "%qE is deprecated (declared at %s:%d)"
 msgstr ""
 
-#: tree.c:11127
+#: tree.c:11188
 #, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated (declared at %s:%d): %s"
 msgstr ""
 
-#: tree.c:11131
+#: tree.c:11192
 #, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated (declared at %s:%d)"
 msgstr ""
 
-#: tree.c:11140
+#: tree.c:11201
 #, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr ""
 
-#: tree.c:11143
+#: tree.c:11204
 #, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr ""
 
-#: tree.c:11148
+#: tree.c:11209
 #, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr ""
 
-#: tree.c:11151
+#: tree.c:11212
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr ""
 
-#: value-prof.c:375
+#: value-prof.c:376
 #, gcc-internal-format
 msgid "dead histogram"
 msgstr ""
 
-#: value-prof.c:406
+#: value-prof.c:407
 #, gcc-internal-format
 msgid ""
 "Histogram value statement does not correspond to the statement it is "
 "associated with"
 msgstr ""
 
-#: value-prof.c:419
+#: value-prof.c:420
 #, gcc-internal-format
 msgid "verify_histograms failed"
 msgstr ""
 
-#: value-prof.c:466
+#: value-prof.c:467
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "correcting inconsistent value profile: %s profiler overall count (%d) does "
 "not match BB count (%d)"
 msgstr ""
 
-#: value-prof.c:476
+#: value-prof.c:477
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "corrupted value profile: %s profile counter (%d out of %d) inconsistent with "
 "basic-block count (%d)"
 msgstr ""
 
-#: var-tracking.c:6472
+#: value-prof.c:1105 value-prof.c:1107
+#, gcc-internal-format, gfc-internal-format
+msgid "Inconsistent profile: indirect call target (%d) does not exist"
+msgstr ""
+
+#: value-prof.c:1129
+#, gcc-internal-format, gfc-internal-format
+msgid "Skipping target %s with mismatching types for icall "
+msgstr ""
+
+#: var-tracking.c:6484
 #, gcc-internal-format
 msgid ""
 "variable tracking size limit exceeded with -fvar-tracking-assignments, "
 "retrying without"
 msgstr ""
 
-#: var-tracking.c:6476
+#: var-tracking.c:6488
 #, gcc-internal-format
 msgid "variable tracking size limit exceeded"
 msgstr ""
 
-#: varasm.c:320
+#: varasm.c:317
 #, gcc-internal-format
-msgid "%+D causes a section type conflict"
+msgid "%+D causes a section type conflict with %D"
 msgstr ""
 
-#: varasm.c:980
+#: varasm.c:956
 #, gcc-internal-format
 msgid ""
 "alignment of %q+D is greater than maximum object file alignment.  Using %d"
 msgstr ""
 
-#: varasm.c:1218 varasm.c:1226
+#: varasm.c:1194 varasm.c:1202
 #, gcc-internal-format
 msgid "register name not specified for %q+D"
 msgstr ""
 
-#: varasm.c:1228
+#: varasm.c:1204
 #, gcc-internal-format
 msgid "invalid register name for %q+D"
 msgstr ""
 
-#: varasm.c:1230
+#: varasm.c:1206
 #, gcc-internal-format
 msgid "data type of %q+D isn%'t suitable for a register"
 msgstr ""
 
-#: varasm.c:1233
+#: varasm.c:1209
 #, gcc-internal-format
 msgid "register specified for %q+D isn%'t suitable for data type"
 msgstr ""
 
-#: varasm.c:1243
+#: varasm.c:1219
 #, gcc-internal-format
 msgid "global register variable has initial value"
 msgstr ""
 
-#: varasm.c:1247
+#: varasm.c:1223
 #, gcc-internal-format
 msgid "optimization may eliminate reads and/or writes to register variables"
 msgstr ""
 
-#: varasm.c:1285
+#: varasm.c:1261
 #, gcc-internal-format
 msgid "register name given for non-register variable %q+D"
 msgstr ""
 
-#: varasm.c:1402
+#: varasm.c:1378
 #, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr ""
 
-#: varasm.c:1468
+#: varasm.c:1444
 #, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr ""
 
-#: varasm.c:1848
+#: varasm.c:1841
 #, gcc-internal-format
 msgid "thread-local COMMON data not implemented"
 msgstr ""
 
-#: varasm.c:1877
+#: varasm.c:1870
 #, gcc-internal-format
 msgid ""
 "requested alignment for %q+D is greater than implemented alignment of %wu"
 msgstr ""
 
-#: varasm.c:4556
+#: varasm.c:4548
 #, gcc-internal-format
 msgid "initializer for integer/fixed-point value is too complicated"
 msgstr ""
 
-#: varasm.c:4561
+#: varasm.c:4553
 #, gcc-internal-format
 msgid "initializer for floating value is not a floating constant"
 msgstr ""
 
-#: varasm.c:4867
+#: varasm.c:4858
 #, gcc-internal-format
 msgid "invalid initial value for member %qE"
 msgstr ""
 
-#: varasm.c:5215
+#: varasm.c:5206
 #, gcc-internal-format
 msgid "weak declaration of %q+D must be public"
 msgstr ""
 
-#: varasm.c:5217
+#: varasm.c:5208
 #, gcc-internal-format
 msgid "weak declaration of %q+D not supported"
 msgstr ""
 
-#: varasm.c:5246 varasm.c:5825
+#: varasm.c:5237 varasm.c:5816
 #, gcc-internal-format
 msgid "only weak aliases are supported in this configuration"
 msgstr ""
 
-#: varasm.c:5465
+#: varasm.c:5456
 #, gcc-internal-format
 msgid "weakref is not supported in this configuration"
 msgstr ""
 
-#: varasm.c:5488 varasm.c:5822
+#: varasm.c:5479 varasm.c:5813
 #, gcc-internal-format
 msgid "ifunc is not supported in this configuration"
 msgstr ""
 
-#: varasm.c:5742
+#: varasm.c:5733
 #, gcc-internal-format
 msgid "%q+D aliased to undefined symbol %qE"
 msgstr ""
 
-#: varasm.c:5756
+#: varasm.c:5747
 #, gcc-internal-format
 msgid "%q+D aliased to external symbol %qE"
 msgstr ""
 
-#: varasm.c:5799
+#: varasm.c:5790
 #, gcc-internal-format
 msgid "weakref %q+D ultimately targets itself"
 msgstr ""
 
-#: varasm.c:5808
+#: varasm.c:5799
 #, gcc-internal-format
 msgid "weakref %q+D must have static linkage"
 msgstr ""
 
-#: varasm.c:5815
+#: varasm.c:5806
 #, gcc-internal-format
 msgid "alias definitions not supported in this configuration"
 msgstr ""
 
-#: varasm.c:5883 config/sol2.c:153 config/i386/winnt.c:247
+#: varasm.c:5874 config/sol2.c:155 config/i386/winnt.c:254
 #, gcc-internal-format
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr ""
 
-#: vec.c:524
+#: vec.c:516
 #, gcc-internal-format, gfc-internal-format
 msgid "vector %s %s domain error, in %s at %s:%u"
 msgstr ""
@@ -19396,1410 +19740,1410 @@
 msgid "no sclass for %s stab (0x%x)"
 msgstr ""
 
-#: c-family/c-common.c:878
+#: c-family/c-common.c:884
 #, gcc-internal-format
 msgid "%qD is not defined outside of function scope"
 msgstr ""
 
-#: c-family/c-common.c:928
+#: c-family/c-common.c:934
 #, gcc-internal-format
 msgid ""
 "string length %qd is greater than the length %qd ISO C%d compilers are "
 "required to support"
 msgstr ""
 
-#: c-family/c-common.c:1422 c-family/c-common.c:1434 cp/semantics.c:6092
-#: cp/semantics.c:7258
+#: c-family/c-common.c:1428 c-family/c-common.c:1440 cp/semantics.c:6162
+#: cp/semantics.c:7505
 #, gcc-internal-format
 msgid "overflow in constant expression"
 msgstr ""
 
-#: c-family/c-common.c:1457
+#: c-family/c-common.c:1463
 #, gcc-internal-format
 msgid "integer overflow in expression"
 msgstr ""
 
-#: c-family/c-common.c:1462
+#: c-family/c-common.c:1468
 #, gcc-internal-format
 msgid "floating point overflow in expression"
 msgstr ""
 
-#: c-family/c-common.c:1466
+#: c-family/c-common.c:1472
 #, gcc-internal-format
 msgid "fixed-point overflow in expression"
 msgstr ""
 
-#: c-family/c-common.c:1470
+#: c-family/c-common.c:1476
 #, gcc-internal-format
 msgid "vector overflow in expression"
 msgstr ""
 
-#: c-family/c-common.c:1476
+#: c-family/c-common.c:1482
 #, gcc-internal-format
 msgid "complex integer overflow in expression"
 msgstr ""
 
-#: c-family/c-common.c:1479
+#: c-family/c-common.c:1485
 #, gcc-internal-format
 msgid "complex floating point overflow in expression"
 msgstr ""
 
-#: c-family/c-common.c:1522
+#: c-family/c-common.c:1528
 #, gcc-internal-format
 msgid "logical %<or%> applied to non-boolean constant"
 msgstr ""
 
-#: c-family/c-common.c:1525
+#: c-family/c-common.c:1531
 #, gcc-internal-format
 msgid "logical %<and%> applied to non-boolean constant"
 msgstr ""
 
-#: c-family/c-common.c:1570
+#: c-family/c-common.c:1576
 #, gcc-internal-format
 msgid "logical %<or%> of collectively exhaustive tests is always true"
 msgstr ""
 
-#: c-family/c-common.c:1574
+#: c-family/c-common.c:1580
 #, gcc-internal-format
 msgid "logical %<and%> of mutually exclusive tests is always false"
 msgstr ""
 
-#: c-family/c-common.c:1609
+#: c-family/c-common.c:1615
 #, gcc-internal-format
 msgid "type-punning to incomplete type might break strict-aliasing rules"
 msgstr ""
 
-#: c-family/c-common.c:1624
+#: c-family/c-common.c:1630
 #, gcc-internal-format
 msgid "dereferencing type-punned pointer will break strict-aliasing rules"
 msgstr ""
 
-#: c-family/c-common.c:1631 c-family/c-common.c:1649
+#: c-family/c-common.c:1637 c-family/c-common.c:1655
 #, gcc-internal-format
 msgid "dereferencing type-punned pointer might break strict-aliasing rules"
 msgstr ""
 
-#: c-family/c-common.c:1680
+#: c-family/c-common.c:1686
 #, gcc-internal-format
 msgid "first argument of %q+D should be %<int%>"
 msgstr ""
 
-#: c-family/c-common.c:1689
+#: c-family/c-common.c:1695
 #, gcc-internal-format
 msgid "second argument of %q+D should be %<char **%>"
 msgstr ""
 
-#: c-family/c-common.c:1698
+#: c-family/c-common.c:1704
 #, gcc-internal-format
 msgid "third argument of %q+D should probably be %<char **%>"
 msgstr ""
 
-#: c-family/c-common.c:1708
+#: c-family/c-common.c:1715
 #, gcc-internal-format
 msgid "%q+D takes only zero or two arguments"
 msgstr ""
 
-#: c-family/c-common.c:1757
+#: c-family/c-common.c:1764
 #, gcc-internal-format
 msgid ""
 "use -flax-vector-conversions to permit conversions between vectors with "
 "differing element types or numbers of subparts"
 msgstr ""
 
-#: c-family/c-common.c:1913
+#: c-family/c-common.c:1943
 #, gcc-internal-format
 msgid "conversion to %qT from boolean expression"
 msgstr ""
 
-#: c-family/c-common.c:1934
+#: c-family/c-common.c:1964
 #, gcc-internal-format
 msgid "negative integer implicitly converted to unsigned type"
 msgstr ""
 
-#: c-family/c-common.c:1937
+#: c-family/c-common.c:1967
 #, gcc-internal-format
 msgid "conversion of unsigned constant value to negative integer"
 msgstr ""
 
-#: c-family/c-common.c:1964
+#: c-family/c-common.c:1994
 #, gcc-internal-format
 msgid "conversion to %qT alters %qT constant value"
 msgstr ""
 
-#: c-family/c-common.c:2056
+#: c-family/c-common.c:2086
 #, gcc-internal-format
 msgid "conversion to %qT from %qT may change the sign of the result"
 msgstr ""
 
-#: c-family/c-common.c:2093
+#: c-family/c-common.c:2123
 #, gcc-internal-format
 msgid "conversion to %qT from %qT may alter its value"
 msgstr ""
 
-#: c-family/c-common.c:2121
+#: c-family/c-common.c:2151
 #, gcc-internal-format
 msgid "large integer implicitly truncated to unsigned type"
 msgstr ""
 
-#: c-family/c-common.c:2127 c-family/c-common.c:2134 c-family/c-common.c:2142
+#: c-family/c-common.c:2157 c-family/c-common.c:2164 c-family/c-common.c:2172
 #, gcc-internal-format
 msgid "overflow in implicit constant conversion"
 msgstr ""
 
-#: c-family/c-common.c:2314
+#: c-family/c-common.c:2344
 #, gcc-internal-format
 msgid "operation on %qE may be undefined"
 msgstr ""
 
-#: c-family/c-common.c:2622
+#: c-family/c-common.c:2655
 #, gcc-internal-format
 msgid "case label does not reduce to an integer constant"
 msgstr ""
 
-#: c-family/c-common.c:2662
+#: c-family/c-common.c:2695
 #, gcc-internal-format
 msgid "case label value is less than minimum value for type"
 msgstr ""
 
-#: c-family/c-common.c:2670
+#: c-family/c-common.c:2703
 #, gcc-internal-format
 msgid "case label value exceeds maximum value for type"
 msgstr ""
 
-#: c-family/c-common.c:2678
+#: c-family/c-common.c:2711
 #, gcc-internal-format
 msgid "lower value in case label range less than minimum value for type"
 msgstr ""
 
-#: c-family/c-common.c:2687
+#: c-family/c-common.c:2720
 #, gcc-internal-format
 msgid "upper value in case label range exceeds maximum value for type"
 msgstr ""
 
-#: c-family/c-common.c:2766
+#: c-family/c-common.c:2799
 #, gcc-internal-format
 msgid ""
 "GCC cannot support operators with integer types and fixed-point types that "
 "have too many integral and fractional bits together"
 msgstr ""
 
-#: c-family/c-common.c:3268
+#: c-family/c-common.c:3301
 #, gcc-internal-format
 msgid "invalid operands to binary %s (have %qT and %qT)"
 msgstr ""
 
-#: c-family/c-common.c:3517
+#: c-family/c-common.c:3550
 #, gcc-internal-format
 msgid "comparison is always false due to limited range of data type"
 msgstr ""
 
-#: c-family/c-common.c:3519
+#: c-family/c-common.c:3552
 #, gcc-internal-format
 msgid "comparison is always true due to limited range of data type"
 msgstr ""
 
-#: c-family/c-common.c:3598
+#: c-family/c-common.c:3631
 #, gcc-internal-format
 msgid "comparison of unsigned expression >= 0 is always true"
 msgstr ""
 
-#: c-family/c-common.c:3608
+#: c-family/c-common.c:3641
 #, gcc-internal-format
 msgid "comparison of unsigned expression < 0 is always false"
 msgstr ""
 
-#: c-family/c-common.c:3650
+#: c-family/c-common.c:3683
 #, gcc-internal-format
 msgid "pointer of type %<void *%> used in arithmetic"
 msgstr ""
 
-#: c-family/c-common.c:3656
+#: c-family/c-common.c:3689
 #, gcc-internal-format
 msgid "pointer to a function used in arithmetic"
 msgstr ""
 
-#: c-family/c-common.c:3662
+#: c-family/c-common.c:3695
 #, gcc-internal-format
 msgid "pointer to member function used in arithmetic"
 msgstr ""
 
-#: c-family/c-common.c:3874
+#: c-family/c-common.c:3907
 #, gcc-internal-format
 msgid "the address of %qD will always evaluate as %<true%>"
 msgstr ""
 
-#: c-family/c-common.c:3959 cp/semantics.c:610 cp/typeck.c:7362
+#: c-family/c-common.c:4002 cp/semantics.c:605 cp/typeck.c:7410
 #, gcc-internal-format
 msgid "suggest parentheses around assignment used as truth value"
 msgstr ""
 
-#: c-family/c-common.c:4234
+#: c-family/c-common.c:4277
 #, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a function type"
 msgstr ""
 
-#: c-family/c-common.c:4247
+#: c-family/c-common.c:4290
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr ""
 
-#: c-family/c-common.c:4255
+#: c-family/c-common.c:4298
 #, gcc-internal-format
 msgid "invalid application of %qs to incomplete type %qT "
 msgstr ""
 
-#: c-family/c-common.c:4297
+#: c-family/c-common.c:4340
 #, gcc-internal-format
 msgid "%<__alignof%> applied to a bit-field"
 msgstr ""
 
-#: c-family/c-common.c:5013
+#: c-family/c-common.c:5051
 #, gcc-internal-format
 msgid "cannot disable built-in function %qs"
 msgstr ""
 
-#: c-family/c-common.c:5205
+#: c-family/c-common.c:5243
 #, gcc-internal-format
 msgid "pointers are not permitted as case values"
 msgstr ""
 
-#: c-family/c-common.c:5212
+#: c-family/c-common.c:5250
 #, gcc-internal-format
 msgid "range expressions in switch statements are non-standard"
 msgstr ""
 
-#: c-family/c-common.c:5238
+#: c-family/c-common.c:5276
 #, gcc-internal-format
 msgid "empty range specified"
 msgstr ""
 
-#: c-family/c-common.c:5298
+#: c-family/c-common.c:5336
 #, gcc-internal-format
 msgid "duplicate (or overlapping) case value"
 msgstr ""
 
-#: c-family/c-common.c:5300
+#: c-family/c-common.c:5338
 #, gcc-internal-format
 msgid "this is the first entry overlapping that value"
 msgstr ""
 
-#: c-family/c-common.c:5304
+#: c-family/c-common.c:5342
 #, gcc-internal-format
 msgid "duplicate case value"
 msgstr ""
 
-#: c-family/c-common.c:5305
+#: c-family/c-common.c:5343
 #, gcc-internal-format
 msgid "previously used here"
 msgstr ""
 
-#: c-family/c-common.c:5309
+#: c-family/c-common.c:5347
 #, gcc-internal-format
 msgid "multiple default labels in one switch"
 msgstr ""
 
-#: c-family/c-common.c:5311
+#: c-family/c-common.c:5349
 #, gcc-internal-format
 msgid "this is the first default label"
 msgstr ""
 
-#: c-family/c-common.c:5363
+#: c-family/c-common.c:5401
 #, gcc-internal-format
 msgid "case value %qs not in enumerated type"
 msgstr ""
 
-#: c-family/c-common.c:5368
+#: c-family/c-common.c:5406
 #, gcc-internal-format
 msgid "case value %qs not in enumerated type %qT"
 msgstr ""
 
-#: c-family/c-common.c:5427
+#: c-family/c-common.c:5465
 #, gcc-internal-format
 msgid "switch missing default case"
 msgstr ""
 
-#: c-family/c-common.c:5499
+#: c-family/c-common.c:5537
 #, gcc-internal-format
 msgid "enumeration value %qE not handled in switch"
 msgstr ""
 
-#: c-family/c-common.c:5525
+#: c-family/c-common.c:5563
 #, gcc-internal-format
 msgid "taking the address of a label is non-standard"
 msgstr ""
 
-#: c-family/c-common.c:5717
+#: c-family/c-common.c:5755
 #, gcc-internal-format
 msgid "%qE attribute ignored for field of type %qT"
 msgstr ""
 
-#: c-family/c-common.c:5811 c-family/c-common.c:5837
+#: c-family/c-common.c:5849 c-family/c-common.c:5875
 #, gcc-internal-format
 msgid "%qE attribute conflicts with attribute %s"
 msgstr ""
 
-#: c-family/c-common.c:5951 lto/lto-lang.c:208
+#: c-family/c-common.c:5989 lto/lto-lang.c:208
 #, gcc-internal-format
 msgid "%qE attribute has no effect on unit local functions"
 msgstr ""
 
-#: c-family/c-common.c:6104
+#: c-family/c-common.c:6142
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr ""
 
-#: c-family/c-common.c:6202
+#: c-family/c-common.c:6240
 #, gcc-internal-format
 msgid "destructor priorities are not supported"
 msgstr ""
 
-#: c-family/c-common.c:6204
+#: c-family/c-common.c:6242
 #, gcc-internal-format
 msgid "constructor priorities are not supported"
 msgstr ""
 
-#: c-family/c-common.c:6221
+#: c-family/c-common.c:6259
 #, gcc-internal-format, gfc-internal-format
 msgid "destructor priorities from 0 to %d are reserved for the implementation"
 msgstr ""
 
-#: c-family/c-common.c:6226
+#: c-family/c-common.c:6264
 #, gcc-internal-format, gfc-internal-format
 msgid "constructor priorities from 0 to %d are reserved for the implementation"
 msgstr ""
 
-#: c-family/c-common.c:6234
+#: c-family/c-common.c:6272
 #, gcc-internal-format, gfc-internal-format
 msgid "destructor priorities must be integers from 0 to %d inclusive"
 msgstr ""
 
-#: c-family/c-common.c:6237
+#: c-family/c-common.c:6275
 #, gcc-internal-format, gfc-internal-format
 msgid "constructor priorities must be integers from 0 to %d inclusive"
 msgstr ""
 
-#: c-family/c-common.c:6393
+#: c-family/c-common.c:6431
 #, gcc-internal-format
 msgid "unknown machine mode %qE"
 msgstr ""
 
-#: c-family/c-common.c:6422
+#: c-family/c-common.c:6460
 #, gcc-internal-format
 msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
 msgstr ""
 
-#: c-family/c-common.c:6425
+#: c-family/c-common.c:6463
 #, gcc-internal-format
 msgid "use __attribute__ ((vector_size)) instead"
 msgstr ""
 
-#: c-family/c-common.c:6434
+#: c-family/c-common.c:6472
 #, gcc-internal-format
 msgid "unable to emulate %qs"
 msgstr ""
 
-#: c-family/c-common.c:6445
+#: c-family/c-common.c:6483
 #, gcc-internal-format
 msgid "invalid pointer mode %qs"
 msgstr ""
 
-#: c-family/c-common.c:6462
+#: c-family/c-common.c:6500
 #, gcc-internal-format
 msgid "signedness of type and machine mode %qs don%'t match"
 msgstr ""
 
-#: c-family/c-common.c:6473
+#: c-family/c-common.c:6511
 #, gcc-internal-format
 msgid "no data type for mode %qs"
 msgstr ""
 
-#: c-family/c-common.c:6483
+#: c-family/c-common.c:6521
 #, gcc-internal-format
 msgid "cannot use mode %qs for enumeral types"
 msgstr ""
 
-#: c-family/c-common.c:6510
+#: c-family/c-common.c:6548
 #, gcc-internal-format
 msgid "mode %qs applied to inappropriate type"
 msgstr ""
 
-#: c-family/c-common.c:6542
+#: c-family/c-common.c:6580
 #, gcc-internal-format
 msgid "section attribute cannot be specified for local variables"
 msgstr ""
 
-#: c-family/c-common.c:6553 config/bfin/bfin.c:5656 config/bfin/bfin.c:5707
-#: config/bfin/bfin.c:5734 config/bfin/bfin.c:5747
+#: c-family/c-common.c:6591 config/bfin/bfin.c:5336 config/bfin/bfin.c:5387
+#: config/bfin/bfin.c:5414 config/bfin/bfin.c:5427
 #, gcc-internal-format
 msgid "section of %q+D conflicts with previous declaration"
 msgstr ""
 
-#: c-family/c-common.c:6561
+#: c-family/c-common.c:6599
 #, gcc-internal-format
 msgid "section of %q+D cannot be overridden"
 msgstr ""
 
-#: c-family/c-common.c:6569
+#: c-family/c-common.c:6607
 #, gcc-internal-format
 msgid "section attribute not allowed for %q+D"
 msgstr ""
 
-#: c-family/c-common.c:6576
+#: c-family/c-common.c:6614
 #, gcc-internal-format
 msgid "section attributes are not supported for this target"
 msgstr ""
 
-#: c-family/c-common.c:6608
+#: c-family/c-common.c:6646
 #, gcc-internal-format
 msgid "requested alignment is not a constant"
 msgstr ""
 
-#: c-family/c-common.c:6613
+#: c-family/c-common.c:6651
 #, gcc-internal-format
 msgid "requested alignment is not a power of 2"
 msgstr ""
 
-#: c-family/c-common.c:6618
+#: c-family/c-common.c:6656
 #, gcc-internal-format
 msgid "requested alignment is too large"
 msgstr ""
 
-#: c-family/c-common.c:6646
+#: c-family/c-common.c:6684
 #, gcc-internal-format
 msgid "alignment may not be specified for %q+D"
 msgstr ""
 
-#: c-family/c-common.c:6653
+#: c-family/c-common.c:6691
 #, gcc-internal-format
 msgid ""
 "alignment for %q+D was previously specified as %d and may not be decreased"
 msgstr ""
 
-#: c-family/c-common.c:6657
+#: c-family/c-common.c:6695
 #, gcc-internal-format
 msgid "alignment for %q+D must be at least %d"
 msgstr ""
 
-#: c-family/c-common.c:6682
+#: c-family/c-common.c:6720
 #, gcc-internal-format
 msgid "inline function %q+D declared weak"
 msgstr ""
 
-#: c-family/c-common.c:6687
+#: c-family/c-common.c:6725
 #, gcc-internal-format
 msgid "indirect function %q+D cannot be declared weak"
 msgstr ""
 
-#: c-family/c-common.c:6724
+#: c-family/c-common.c:6762
 #, gcc-internal-format
 msgid "%q+D defined both normally and as %qE attribute"
 msgstr ""
 
-#: c-family/c-common.c:6732
+#: c-family/c-common.c:6770
 #, gcc-internal-format
 msgid "weak %q+D cannot be defined %qE"
 msgstr ""
 
-#: c-family/c-common.c:6749
+#: c-family/c-common.c:6787
 #, gcc-internal-format
 msgid "attribute %qE argument not a string"
 msgstr ""
 
-#: c-family/c-common.c:6825
+#: c-family/c-common.c:6863
 #, gcc-internal-format
 msgid "indirect function %q+D cannot be declared weakref"
 msgstr ""
 
-#: c-family/c-common.c:6847
+#: c-family/c-common.c:6885
 #, gcc-internal-format
 msgid "weakref attribute must appear before alias attribute"
 msgstr ""
 
-#: c-family/c-common.c:6876
+#: c-family/c-common.c:6914
 #, gcc-internal-format
 msgid "%qE attribute ignored on non-class types"
 msgstr ""
 
-#: c-family/c-common.c:6882
+#: c-family/c-common.c:6920
 #, gcc-internal-format
 msgid "%qE attribute ignored because %qT is already defined"
 msgstr ""
 
-#: c-family/c-common.c:6895
+#: c-family/c-common.c:6933
 #, gcc-internal-format
 msgid "visibility argument not a string"
 msgstr ""
 
-#: c-family/c-common.c:6907
+#: c-family/c-common.c:6945
 #, gcc-internal-format
 msgid "%qE attribute ignored on types"
 msgstr ""
 
-#: c-family/c-common.c:6923
+#: c-family/c-common.c:6961
 #, gcc-internal-format
 msgid ""
 "visibility argument must be one of \"default\", \"hidden\", \"protected\" or "
 "\"internal\""
 msgstr ""
 
-#: c-family/c-common.c:6934
+#: c-family/c-common.c:6972
 #, gcc-internal-format
 msgid "%qD redeclared with different visibility"
 msgstr ""
 
-#: c-family/c-common.c:6937 c-family/c-common.c:6941
+#: c-family/c-common.c:6975 c-family/c-common.c:6979
 #, gcc-internal-format
 msgid "%qD was declared %qs which implies default visibility"
 msgstr ""
 
-#: c-family/c-common.c:7025
+#: c-family/c-common.c:7063
 #, gcc-internal-format
 msgid "tls_model argument not a string"
 msgstr ""
 
-#: c-family/c-common.c:7038
+#: c-family/c-common.c:7076
 #, gcc-internal-format
 msgid ""
 "tls_model argument must be one of \"local-exec\", \"initial-exec\", \"local-"
 "dynamic\" or \"global-dynamic\""
 msgstr ""
 
-#: c-family/c-common.c:7058 c-family/c-common.c:7164 c-family/c-common.c:7922
-#: config/m32c/m32c.c:3157
+#: c-family/c-common.c:7096 c-family/c-common.c:7202 c-family/c-common.c:7954
+#: config/m32c/m32c.c:3147
 #, gcc-internal-format
 msgid "%qE attribute applies only to functions"
 msgstr ""
 
-#: c-family/c-common.c:7064 c-family/c-common.c:7170 c-family/c-common.c:7928
+#: c-family/c-common.c:7102 c-family/c-common.c:7208 c-family/c-common.c:7960
 #, gcc-internal-format
 msgid "can%'t set %qE attribute after definition"
 msgstr ""
 
-#: c-family/c-common.c:7110
+#: c-family/c-common.c:7148
 #, gcc-internal-format
 msgid "alloc_size parameter outside range"
 msgstr ""
 
-#: c-family/c-common.c:7227
+#: c-family/c-common.c:7265
 #, gcc-internal-format
 msgid "deprecated message is not a string"
 msgstr ""
 
-#: c-family/c-common.c:7268
+#: c-family/c-common.c:7306
 #, gcc-internal-format
 msgid "%qE attribute ignored for %qE"
 msgstr ""
 
-#: c-family/c-common.c:7328
+#: c-family/c-common.c:7366
 #, gcc-internal-format
 msgid "invalid vector type for attribute %qE"
 msgstr ""
 
-#: c-family/c-common.c:7334 ada/gcc-interface/utils.c:5415
-#: ada/gcc-interface/utils.c:5509
+#: c-family/c-common.c:7372 ada/gcc-interface/utils.c:5473
+#: ada/gcc-interface/utils.c:5567
 #, gcc-internal-format
 msgid "vector size not an integral multiple of component size"
 msgstr ""
 
-#: c-family/c-common.c:7340 ada/gcc-interface/utils.c:5421
-#: ada/gcc-interface/utils.c:5515
+#: c-family/c-common.c:7378 ada/gcc-interface/utils.c:5479
+#: ada/gcc-interface/utils.c:5573
 #, gcc-internal-format
 msgid "zero vector size"
 msgstr ""
 
-#: c-family/c-common.c:7348 ada/gcc-interface/utils.c:5429
-#: ada/gcc-interface/utils.c:5522
+#: c-family/c-common.c:7386 ada/gcc-interface/utils.c:5487
+#: ada/gcc-interface/utils.c:5580
 #, gcc-internal-format
 msgid "number of components of the vector not a power of two"
 msgstr ""
 
-#: c-family/c-common.c:7376 ada/gcc-interface/utils.c:5147
+#: c-family/c-common.c:7414 ada/gcc-interface/utils.c:5214
 #, gcc-internal-format
 msgid "nonnull attribute without arguments on a non-prototype"
 msgstr ""
 
-#: c-family/c-common.c:7391 ada/gcc-interface/utils.c:5162
+#: c-family/c-common.c:7428 ada/gcc-interface/utils.c:5228
 #, gcc-internal-format, gfc-internal-format
 msgid "nonnull argument has invalid operand number (argument %lu)"
 msgstr ""
 
-#: c-family/c-common.c:7410 ada/gcc-interface/utils.c:5181
+#: c-family/c-common.c:7450 ada/gcc-interface/utils.c:5250
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
 msgstr ""
 
-#: c-family/c-common.c:7418 ada/gcc-interface/utils.c:5190
+#: c-family/c-common.c:7458 ada/gcc-interface/utils.c:5259
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
 msgstr ""
 
-#: c-family/c-common.c:7494
+#: c-family/c-common.c:7537
 #, gcc-internal-format
 msgid "not enough variable arguments to fit a sentinel"
 msgstr ""
 
-#: c-family/c-common.c:7508
+#: c-family/c-common.c:7551
 #, gcc-internal-format
 msgid "missing sentinel in function call"
 msgstr ""
 
-#: c-family/c-common.c:7549
+#: c-family/c-common.c:7592
 #, gcc-internal-format, gfc-internal-format
 msgid "null argument where non-null required (argument %lu)"
 msgstr ""
 
-#: c-family/c-common.c:7614
+#: c-family/c-common.c:7657
 #, gcc-internal-format
 msgid "cleanup argument not an identifier"
 msgstr ""
 
-#: c-family/c-common.c:7621
+#: c-family/c-common.c:7664
 #, gcc-internal-format
 msgid "cleanup argument not a function"
 msgstr ""
 
-#: c-family/c-common.c:7660
+#: c-family/c-common.c:7701
 #, gcc-internal-format
 msgid "%qE attribute requires prototypes with named arguments"
 msgstr ""
 
-#: c-family/c-common.c:7671
+#: c-family/c-common.c:7709
 #, gcc-internal-format
 msgid "%qE attribute only applies to variadic functions"
 msgstr ""
 
-#: c-family/c-common.c:7683 ada/gcc-interface/utils.c:5237
+#: c-family/c-common.c:7721 ada/gcc-interface/utils.c:5301
 #, gcc-internal-format
 msgid "requested position is not an integer constant"
 msgstr ""
 
-#: c-family/c-common.c:7691 ada/gcc-interface/utils.c:5244
+#: c-family/c-common.c:7729 ada/gcc-interface/utils.c:5308
 #, gcc-internal-format
 msgid "requested position is less than zero"
 msgstr ""
 
-#: c-family/c-common.c:7817
+#: c-family/c-common.c:7849
 #, gcc-internal-format, gfc-internal-format
 msgid "bad option %s to optimize attribute"
 msgstr ""
 
-#: c-family/c-common.c:7820
+#: c-family/c-common.c:7852
 #, gcc-internal-format, gfc-internal-format
 msgid "bad option %s to pragma attribute"
 msgstr ""
 
-#: c-family/c-common.c:8049
+#: c-family/c-common.c:8079
 #, gcc-internal-format
 msgid "not enough arguments to function %qE"
 msgstr ""
 
-#: c-family/c-common.c:8085 c-family/c-common.c:8131
+#: c-family/c-common.c:8115 c-family/c-common.c:8161
 #, gcc-internal-format
 msgid "non-floating-point argument in call to function %qE"
 msgstr ""
 
-#: c-family/c-common.c:8108
+#: c-family/c-common.c:8138
 #, gcc-internal-format
 msgid "non-floating-point arguments in call to function %qE"
 msgstr ""
 
-#: c-family/c-common.c:8124
+#: c-family/c-common.c:8154
 #, gcc-internal-format
 msgid "non-const integer argument %u in call to function %qE"
 msgstr ""
 
-#: c-family/c-common.c:8460
+#: c-family/c-common.c:8490
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to static data member %qD"
 msgstr ""
 
-#: c-family/c-common.c:8465
+#: c-family/c-common.c:8495
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> when %<operator[]%> is overloaded"
 msgstr ""
 
-#: c-family/c-common.c:8472
+#: c-family/c-common.c:8502
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to a non constant address"
 msgstr ""
 
-#: c-family/c-common.c:8485 cp/typeck.c:4918
+#: c-family/c-common.c:8515 cp/typeck.c:4934
 #, gcc-internal-format
 msgid "attempt to take address of bit-field structure member %qD"
 msgstr ""
 
-#: c-family/c-common.c:8544
+#: c-family/c-common.c:8574
 #, gcc-internal-format
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr ""
 
-#: c-family/c-common.c:8580
+#: c-family/c-common.c:8610
 #, gcc-internal-format
 msgid ""
 "the omitted middle operand in ?: will always be %<true%>, suggest explicit "
 "middle operand"
 msgstr ""
 
-#: c-family/c-common.c:8601
+#: c-family/c-common.c:8631
 #, gcc-internal-format
 msgid "assignment of member %qD in read-only object"
 msgstr ""
 
-#: c-family/c-common.c:8603
+#: c-family/c-common.c:8633
 #, gcc-internal-format
 msgid "increment of member %qD in read-only object"
 msgstr ""
 
-#: c-family/c-common.c:8605
+#: c-family/c-common.c:8635
 #, gcc-internal-format
 msgid "decrement of member %qD in read-only object"
 msgstr ""
 
-#: c-family/c-common.c:8607
+#: c-family/c-common.c:8637
 #, gcc-internal-format
 msgid "member %qD in read-only object used as %<asm%> output"
 msgstr ""
 
-#: c-family/c-common.c:8611
+#: c-family/c-common.c:8641
 #, gcc-internal-format
 msgid "assignment of read-only member %qD"
 msgstr ""
 
-#: c-family/c-common.c:8612
+#: c-family/c-common.c:8642
 #, gcc-internal-format
 msgid "increment of read-only member %qD"
 msgstr ""
 
-#: c-family/c-common.c:8613
+#: c-family/c-common.c:8643
 #, gcc-internal-format
 msgid "decrement of read-only member %qD"
 msgstr ""
 
-#: c-family/c-common.c:8614
+#: c-family/c-common.c:8644
 #, gcc-internal-format
 msgid "read-only member %qD used as %<asm%> output"
 msgstr ""
 
-#: c-family/c-common.c:8618
+#: c-family/c-common.c:8648
 #, gcc-internal-format
 msgid "assignment of read-only variable %qD"
 msgstr ""
 
-#: c-family/c-common.c:8619
+#: c-family/c-common.c:8649
 #, gcc-internal-format
 msgid "increment of read-only variable %qD"
 msgstr ""
 
-#: c-family/c-common.c:8620
+#: c-family/c-common.c:8650
 #, gcc-internal-format
 msgid "decrement of read-only variable %qD"
 msgstr ""
 
-#: c-family/c-common.c:8621
+#: c-family/c-common.c:8651
 #, gcc-internal-format
 msgid "read-only variable %qD used as %<asm%> output"
 msgstr ""
 
-#: c-family/c-common.c:8624
+#: c-family/c-common.c:8654
 #, gcc-internal-format
 msgid "assignment of read-only parameter %qD"
 msgstr ""
 
-#: c-family/c-common.c:8625
+#: c-family/c-common.c:8655
 #, gcc-internal-format
 msgid "increment of read-only parameter %qD"
 msgstr ""
 
-#: c-family/c-common.c:8626
+#: c-family/c-common.c:8656
 #, gcc-internal-format
 msgid "decrement of read-only parameter %qD"
 msgstr ""
 
-#: c-family/c-common.c:8627
+#: c-family/c-common.c:8657
 #, gcc-internal-format
 msgid "read-only parameter %qD use as %<asm%> output"
 msgstr ""
 
-#: c-family/c-common.c:8632
+#: c-family/c-common.c:8662
 #, gcc-internal-format
 msgid "assignment of read-only named return value %qD"
 msgstr ""
 
-#: c-family/c-common.c:8634
+#: c-family/c-common.c:8664
 #, gcc-internal-format
 msgid "increment of read-only named return value %qD"
 msgstr ""
 
-#: c-family/c-common.c:8636
+#: c-family/c-common.c:8666
 #, gcc-internal-format
 msgid "decrement of read-only named return value %qD"
 msgstr ""
 
-#: c-family/c-common.c:8638
+#: c-family/c-common.c:8668
 #, gcc-internal-format
 msgid "read-only named return value %qD used as %<asm%>output"
 msgstr ""
 
-#: c-family/c-common.c:8643
+#: c-family/c-common.c:8673
 #, gcc-internal-format
 msgid "assignment of function %qD"
 msgstr ""
 
-#: c-family/c-common.c:8644
+#: c-family/c-common.c:8674
 #, gcc-internal-format
 msgid "increment of function %qD"
 msgstr ""
 
-#: c-family/c-common.c:8645
+#: c-family/c-common.c:8675
 #, gcc-internal-format
 msgid "decrement of function %qD"
 msgstr ""
 
-#: c-family/c-common.c:8646
+#: c-family/c-common.c:8676
 #, gcc-internal-format
 msgid "function %qD used as %<asm%> output"
 msgstr ""
 
-#: c-family/c-common.c:8652
+#: c-family/c-common.c:8682
 #, gcc-internal-format
 msgid "read-only location %qE used as %<asm%> output"
 msgstr ""
 
-#: c-family/c-common.c:8666
+#: c-family/c-common.c:8696
 #, gcc-internal-format
 msgid "lvalue required as left operand of assignment"
 msgstr ""
 
-#: c-family/c-common.c:8669
+#: c-family/c-common.c:8699
 #, gcc-internal-format
 msgid "lvalue required as increment operand"
 msgstr ""
 
-#: c-family/c-common.c:8672
+#: c-family/c-common.c:8702
 #, gcc-internal-format
 msgid "lvalue required as decrement operand"
 msgstr ""
 
-#: c-family/c-common.c:8675
+#: c-family/c-common.c:8705
 #, gcc-internal-format
 msgid "lvalue required as unary %<&%> operand"
 msgstr ""
 
-#: c-family/c-common.c:8678
+#: c-family/c-common.c:8708
 #, gcc-internal-format
 msgid "lvalue required in asm statement"
 msgstr ""
 
-#: c-family/c-common.c:8695
+#: c-family/c-common.c:8725
 #, gcc-internal-format
 msgid "invalid type argument (have %qT)"
 msgstr ""
 
-#: c-family/c-common.c:8699
+#: c-family/c-common.c:8729
 #, gcc-internal-format
 msgid "invalid type argument of array indexing (have %qT)"
 msgstr ""
 
-#: c-family/c-common.c:8704
+#: c-family/c-common.c:8734
 #, gcc-internal-format
 msgid "invalid type argument of unary %<*%> (have %qT)"
 msgstr ""
 
-#: c-family/c-common.c:8709
+#: c-family/c-common.c:8739
 #, gcc-internal-format
 msgid "invalid type argument of %<->%> (have %qT)"
 msgstr ""
 
-#: c-family/c-common.c:8714
+#: c-family/c-common.c:8744
 #, gcc-internal-format
 msgid "invalid type argument of implicit conversion (have %qT)"
 msgstr ""
 
-#: c-family/c-common.c:8845
+#: c-family/c-common.c:8877
 #, gcc-internal-format
 msgid "size of array is too large"
 msgstr ""
 
-#: c-family/c-common.c:9104
+#: c-family/c-common.c:9142
 #, gcc-internal-format
 msgid "array subscript has type %<char%>"
 msgstr ""
 
-#: c-family/c-common.c:9139
+#: c-family/c-common.c:9177
 #, gcc-internal-format
 msgid "suggest parentheses around %<+%> inside %<<<%>"
 msgstr ""
 
-#: c-family/c-common.c:9142
+#: c-family/c-common.c:9180
 #, gcc-internal-format
 msgid "suggest parentheses around %<-%> inside %<<<%>"
 msgstr ""
 
-#: c-family/c-common.c:9148
+#: c-family/c-common.c:9186
 #, gcc-internal-format
 msgid "suggest parentheses around %<+%> inside %<>>%>"
 msgstr ""
 
-#: c-family/c-common.c:9151
+#: c-family/c-common.c:9189
 #, gcc-internal-format
 msgid "suggest parentheses around %<-%> inside %<>>%>"
 msgstr ""
 
-#: c-family/c-common.c:9157
+#: c-family/c-common.c:9195
 #, gcc-internal-format
 msgid "suggest parentheses around %<&&%> within %<||%>"
 msgstr ""
 
-#: c-family/c-common.c:9166
+#: c-family/c-common.c:9204
 #, gcc-internal-format
 msgid "suggest parentheses around arithmetic in operand of %<|%>"
 msgstr ""
 
-#: c-family/c-common.c:9171
+#: c-family/c-common.c:9209
 #, gcc-internal-format
 msgid "suggest parentheses around comparison in operand of %<|%>"
 msgstr ""
 
-#: c-family/c-common.c:9175
+#: c-family/c-common.c:9213
 #, gcc-internal-format
 msgid ""
 "suggest parentheses around operand of %<!%> or change %<|%> to %<||%> or %<!"
 "%> to %<~%>"
 msgstr ""
 
-#: c-family/c-common.c:9185
+#: c-family/c-common.c:9223
 #, gcc-internal-format
 msgid "suggest parentheses around arithmetic in operand of %<^%>"
 msgstr ""
 
-#: c-family/c-common.c:9190
+#: c-family/c-common.c:9228
 #, gcc-internal-format
 msgid "suggest parentheses around comparison in operand of %<^%>"
 msgstr ""
 
-#: c-family/c-common.c:9196
+#: c-family/c-common.c:9234
 #, gcc-internal-format
 msgid "suggest parentheses around %<+%> in operand of %<&%>"
 msgstr ""
 
-#: c-family/c-common.c:9199
+#: c-family/c-common.c:9237
 #, gcc-internal-format
 msgid "suggest parentheses around %<-%> in operand of %<&%>"
 msgstr ""
 
-#: c-family/c-common.c:9204
+#: c-family/c-common.c:9242
 #, gcc-internal-format
 msgid "suggest parentheses around comparison in operand of %<&%>"
 msgstr ""
 
-#: c-family/c-common.c:9208
+#: c-family/c-common.c:9246
 #, gcc-internal-format
 msgid ""
 "suggest parentheses around operand of %<!%> or change %<&%> to %<&&%> or %<!"
 "%> to %<~%>"
 msgstr ""
 
-#: c-family/c-common.c:9216
+#: c-family/c-common.c:9254
 #, gcc-internal-format
 msgid "suggest parentheses around comparison in operand of %<==%>"
 msgstr ""
 
-#: c-family/c-common.c:9222
+#: c-family/c-common.c:9260
 #, gcc-internal-format
 msgid "suggest parentheses around comparison in operand of %<!=%>"
 msgstr ""
 
-#: c-family/c-common.c:9233
+#: c-family/c-common.c:9271
 #, gcc-internal-format
 msgid "comparisons like %<X<=Y<=Z%> do not have their mathematical meaning"
 msgstr ""
 
-#: c-family/c-common.c:9248
+#: c-family/c-common.c:9286
 #, gcc-internal-format
 msgid "label %q+D defined but not used"
 msgstr ""
 
-#: c-family/c-common.c:9250
+#: c-family/c-common.c:9288
 #, gcc-internal-format
 msgid "label %q+D declared but not defined"
 msgstr ""
 
-#: c-family/c-common.c:9270
+#: c-family/c-common.c:9304
 #, gcc-internal-format
 msgid "division by zero"
 msgstr ""
 
-#: c-family/c-common.c:9302
+#: c-family/c-common.c:9336
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr ""
 
-#: c-family/c-common.c:9353
+#: c-family/c-common.c:9387
 #, gcc-internal-format
 msgid "comparison between signed and unsigned integer expressions"
 msgstr ""
 
-#: c-family/c-common.c:9404
+#: c-family/c-common.c:9438
 #, gcc-internal-format
 msgid "promoted ~unsigned is always non-zero"
 msgstr ""
 
-#: c-family/c-common.c:9407
+#: c-family/c-common.c:9441
 #, gcc-internal-format
 msgid "comparison of promoted ~unsigned with constant"
 msgstr ""
 
-#: c-family/c-common.c:9417
+#: c-family/c-common.c:9451
 #, gcc-internal-format
 msgid "comparison of promoted ~unsigned with unsigned"
 msgstr ""
 
-#: c-family/c-format.c:127 c-family/c-format.c:314
+#: c-family/c-format.c:126 c-family/c-format.c:313
 #, gcc-internal-format
 msgid "format string has invalid operand number"
 msgstr ""
 
-#: c-family/c-format.c:144
+#: c-family/c-format.c:142
 #, gcc-internal-format
 msgid "function does not return string type"
 msgstr ""
 
-#: c-family/c-format.c:177
+#: c-family/c-format.c:176
 #, gcc-internal-format
 msgid "format string argument is not a string type"
 msgstr ""
 
-#: c-family/c-format.c:203
+#: c-family/c-format.c:202
 #, gcc-internal-format
 msgid "found a %<%s%> reference but the format argument should be a string"
 msgstr ""
 
-#: c-family/c-format.c:206
+#: c-family/c-format.c:205
 #, gcc-internal-format
 msgid "found a %qT but the format argument should be a string"
 msgstr ""
 
-#: c-family/c-format.c:216
+#: c-family/c-format.c:215
 #, gcc-internal-format
 msgid "format argument should be a %<%s%> reference but a string was found"
 msgstr ""
 
-#: c-family/c-format.c:238
+#: c-family/c-format.c:237
 #, gcc-internal-format
 msgid "format argument should be a %<%s%> reference"
 msgstr ""
 
-#: c-family/c-format.c:282
+#: c-family/c-format.c:281
 #, gcc-internal-format
 msgid "unrecognized format specifier"
 msgstr ""
 
-#: c-family/c-format.c:297
+#: c-family/c-format.c:296
 #, gcc-internal-format
 msgid "%qE is only allowed in Objective-C dialects"
 msgstr ""
 
-#: c-family/c-format.c:306
+#: c-family/c-format.c:305
 #, gcc-internal-format
 msgid "%qE is an unrecognized format function type"
 msgstr ""
 
-#: c-family/c-format.c:320
+#: c-family/c-format.c:319
 #, gcc-internal-format
 msgid "%<...%> has invalid operand number"
 msgstr ""
 
-#: c-family/c-format.c:327
+#: c-family/c-format.c:326
 #, gcc-internal-format
 msgid "format string argument follows the args to be formatted"
 msgstr ""
 
-#: c-family/c-format.c:1066
+#: c-family/c-format.c:1065
 #, gcc-internal-format
 msgid "function might be possible candidate for %qs format attribute"
 msgstr ""
 
-#: c-family/c-format.c:1158 c-family/c-format.c:1179 c-family/c-format.c:2224
+#: c-family/c-format.c:1155 c-family/c-format.c:1176 c-family/c-format.c:2221
 #, gcc-internal-format
 msgid "missing $ operand number in format"
 msgstr ""
 
-#: c-family/c-format.c:1188
+#: c-family/c-format.c:1185
 #, gcc-internal-format, gfc-internal-format
 msgid "%s does not support %%n$ operand number formats"
 msgstr ""
 
-#: c-family/c-format.c:1195
+#: c-family/c-format.c:1192
 #, gcc-internal-format
 msgid "operand number out of range in format"
 msgstr ""
 
-#: c-family/c-format.c:1218
+#: c-family/c-format.c:1215
 #, gcc-internal-format, gfc-internal-format
 msgid "format argument %d used more than once in %s format"
 msgstr ""
 
-#: c-family/c-format.c:1250
+#: c-family/c-format.c:1247
 #, gcc-internal-format
 msgid "$ operand number used after format without operand number"
 msgstr ""
 
-#: c-family/c-format.c:1281
+#: c-family/c-format.c:1278
 #, gcc-internal-format, gfc-internal-format
 msgid "format argument %d unused before used argument %d in $-style format"
 msgstr ""
 
-#: c-family/c-format.c:1376
+#: c-family/c-format.c:1373
 #, gcc-internal-format
 msgid "format not a string literal, format string not checked"
 msgstr ""
 
-#: c-family/c-format.c:1391 c-family/c-format.c:1394
+#: c-family/c-format.c:1388 c-family/c-format.c:1391
 #, gcc-internal-format
 msgid "format not a string literal and no format arguments"
 msgstr ""
 
-#: c-family/c-format.c:1397
+#: c-family/c-format.c:1394
 #, gcc-internal-format
 msgid "format not a string literal, argument types not checked"
 msgstr ""
 
-#: c-family/c-format.c:1410
+#: c-family/c-format.c:1407
 #, gcc-internal-format
 msgid "too many arguments for format"
 msgstr ""
 
-#: c-family/c-format.c:1413
+#: c-family/c-format.c:1410
 #, gcc-internal-format
 msgid "unused arguments in $-style format"
 msgstr ""
 
-#: c-family/c-format.c:1416
+#: c-family/c-format.c:1413
 #, gcc-internal-format, gfc-internal-format
 msgid "zero-length %s format string"
 msgstr ""
 
-#: c-family/c-format.c:1420
+#: c-family/c-format.c:1417
 #, gcc-internal-format
 msgid "format is a wide character string"
 msgstr ""
 
-#: c-family/c-format.c:1423
+#: c-family/c-format.c:1420
 #, gcc-internal-format
 msgid "unterminated format string"
 msgstr ""
 
-#: c-family/c-format.c:1667
+#: c-family/c-format.c:1664
 #, gcc-internal-format
 msgid "spurious trailing %<%%%> in format"
 msgstr ""
 
-#: c-family/c-format.c:1711 c-family/c-format.c:1991
+#: c-family/c-format.c:1708 c-family/c-format.c:1988
 #, gcc-internal-format, gfc-internal-format
 msgid "repeated %s in format"
 msgstr ""
 
-#: c-family/c-format.c:1724
+#: c-family/c-format.c:1721
 #, gcc-internal-format
 msgid "missing fill character at end of strfmon format"
 msgstr ""
 
-#: c-family/c-format.c:1812
+#: c-family/c-format.c:1809
 #, gcc-internal-format, gfc-internal-format
 msgid "zero width in %s format"
 msgstr ""
 
-#: c-family/c-format.c:1830
+#: c-family/c-format.c:1827
 #, gcc-internal-format, gfc-internal-format
 msgid "empty left precision in %s format"
 msgstr ""
 
-#: c-family/c-format.c:1906
+#: c-family/c-format.c:1903
 #, gcc-internal-format, gfc-internal-format
 msgid "empty precision in %s format"
 msgstr ""
 
-#: c-family/c-format.c:1975
+#: c-family/c-format.c:1972
 #, gcc-internal-format
 msgid "%s does not support the %qs %s length modifier"
 msgstr ""
 
-#: c-family/c-format.c:2008
+#: c-family/c-format.c:2005
 #, gcc-internal-format
 msgid "conversion lacks type at end of format"
 msgstr ""
 
-#: c-family/c-format.c:2019
+#: c-family/c-format.c:2016
 #, gcc-internal-format
 msgid "unknown conversion type character %qc in format"
 msgstr ""
 
-#: c-family/c-format.c:2022
+#: c-family/c-format.c:2019
 #, gcc-internal-format
 msgid "unknown conversion type character 0x%x in format"
 msgstr ""
 
-#: c-family/c-format.c:2029
+#: c-family/c-format.c:2026
 #, gcc-internal-format
 msgid "%s does not support the %<%%%c%> %s format"
 msgstr ""
 
-#: c-family/c-format.c:2045
+#: c-family/c-format.c:2042
 #, gcc-internal-format
 msgid "%s used with %<%%%c%> %s format"
 msgstr ""
 
-#: c-family/c-format.c:2054
+#: c-family/c-format.c:2051
 #, gcc-internal-format, gfc-internal-format
 msgid "%s does not support %s"
 msgstr ""
 
-#: c-family/c-format.c:2064
+#: c-family/c-format.c:2061
 #, gcc-internal-format
 msgid "%s does not support %s with the %<%%%c%> %s format"
 msgstr ""
 
-#: c-family/c-format.c:2100
+#: c-family/c-format.c:2097
 #, gcc-internal-format
 msgid "%s ignored with %s and %<%%%c%> %s format"
 msgstr ""
 
-#: c-family/c-format.c:2104
+#: c-family/c-format.c:2101
 #, gcc-internal-format, gfc-internal-format
 msgid "%s ignored with %s in %s format"
 msgstr ""
 
-#: c-family/c-format.c:2111
+#: c-family/c-format.c:2108
 #, gcc-internal-format
 msgid "use of %s and %s together with %<%%%c%> %s format"
 msgstr ""
 
-#: c-family/c-format.c:2115
+#: c-family/c-format.c:2112
 #, gcc-internal-format, gfc-internal-format
 msgid "use of %s and %s together in %s format"
 msgstr ""
 
-#: c-family/c-format.c:2134
+#: c-family/c-format.c:2131
 #, gcc-internal-format
 msgid "%<%%%c%> yields only last 2 digits of year in some locales"
 msgstr ""
 
-#: c-family/c-format.c:2137
+#: c-family/c-format.c:2134
 #, gcc-internal-format
 msgid "%<%%%c%> yields only last 2 digits of year"
 msgstr ""
 
 #. The end of the format string was reached.
-#: c-family/c-format.c:2154
+#: c-family/c-format.c:2151
 #, gcc-internal-format
 msgid "no closing %<]%> for %<%%[%> format"
 msgstr ""
 
-#: c-family/c-format.c:2168
+#: c-family/c-format.c:2165
 #, gcc-internal-format
 msgid "use of %qs length modifier with %qc type character"
 msgstr ""
 
-#: c-family/c-format.c:2186
+#: c-family/c-format.c:2183
 #, gcc-internal-format
 msgid "%s does not support the %<%%%s%c%> %s format"
 msgstr ""
 
-#: c-family/c-format.c:2203
+#: c-family/c-format.c:2200
 #, gcc-internal-format
 msgid "operand number specified with suppressed assignment"
 msgstr ""
 
-#: c-family/c-format.c:2206
+#: c-family/c-format.c:2203
 #, gcc-internal-format
 msgid "operand number specified for format taking no argument"
 msgstr ""
 
-#: c-family/c-format.c:2291
+#: c-family/c-format.c:2288
 #, gcc-internal-format
 msgid "embedded %<\\0%> in format"
 msgstr ""
 
-#: c-family/c-format.c:2360
+#: c-family/c-format.c:2357
 #, gcc-internal-format, gfc-internal-format
 msgid "writing through null pointer (argument %d)"
 msgstr ""
 
-#: c-family/c-format.c:2368
+#: c-family/c-format.c:2365
 #, gcc-internal-format, gfc-internal-format
 msgid "reading through null pointer (argument %d)"
 msgstr ""
 
-#: c-family/c-format.c:2388
+#: c-family/c-format.c:2385
 #, gcc-internal-format, gfc-internal-format
 msgid "writing into constant object (argument %d)"
 msgstr ""
 
-#: c-family/c-format.c:2399
+#: c-family/c-format.c:2396
 #, gcc-internal-format, gfc-internal-format
 msgid "extra type qualifiers in format argument (argument %d)"
 msgstr ""
 
-#: c-family/c-format.c:2515
+#: c-family/c-format.c:2512
 #, gcc-internal-format
 msgid ""
 "%s %<%s%.*s%> expects argument of type %<%s%s%>, but argument %d has type %qT"
 msgstr ""
 
-#: c-family/c-format.c:2522
+#: c-family/c-format.c:2519
 #, gcc-internal-format
 msgid "%s %<%s%.*s%> expects a matching %<%s%s%> argument"
 msgstr ""
 
-#: c-family/c-format.c:2530
+#: c-family/c-format.c:2527
 #, gcc-internal-format
 msgid ""
 "%s %<%s%.*s%> expects argument of type %<%T%s%>, but argument %d has type %qT"
 msgstr ""
 
-#: c-family/c-format.c:2537
+#: c-family/c-format.c:2534
 #, gcc-internal-format
 msgid "%s %<%s%.*s%> expects a matching %<%T%s%> argument"
 msgstr ""
 
-#: c-family/c-format.c:2597 c-family/c-format.c:2603 c-family/c-format.c:2754
+#: c-family/c-format.c:2594 c-family/c-format.c:2600 c-family/c-format.c:2751
 #, gcc-internal-format
 msgid "%<__gcc_host_wide_int__%> is not defined as a type"
 msgstr ""
 
-#: c-family/c-format.c:2610 c-family/c-format.c:2764
+#: c-family/c-format.c:2607 c-family/c-format.c:2761
 #, gcc-internal-format
 msgid "%<__gcc_host_wide_int__%> is not defined as %<long%> or %<long long%>"
 msgstr ""
 
-#: c-family/c-format.c:2660
+#: c-family/c-format.c:2657
 #, gcc-internal-format
 msgid "%<locus%> is not defined as a type"
 msgstr ""
 
-#: c-family/c-format.c:2713
+#: c-family/c-format.c:2710
 #, gcc-internal-format
 msgid "%<location_t%> is not defined as a type"
 msgstr ""
 
-#: c-family/c-format.c:2730
+#: c-family/c-format.c:2727
 #, gcc-internal-format
 msgid "%<tree%> is not defined as a type"
 msgstr ""
 
-#: c-family/c-format.c:2735
+#: c-family/c-format.c:2732
 #, gcc-internal-format
 msgid "%<tree%> is not defined as a pointer type"
 msgstr ""
 
-#: c-family/c-format.c:3008
+#: c-family/c-format.c:3005
 #, gcc-internal-format
 msgid "args to be formatted is not %<...%>"
 msgstr ""
 
-#: c-family/c-format.c:3020
+#: c-family/c-format.c:3017
 #, gcc-internal-format
 msgid "strftime formats cannot format arguments"
 msgstr ""
@@ -20885,7 +21229,7 @@
 msgid "repeated %<@%> before Objective-C string"
 msgstr ""
 
-#: c-family/c-lex.c:964 cp/parser.c:3113
+#: c-family/c-lex.c:964 cp/parser.c:3123
 #, gcc-internal-format
 msgid "unsupported non-standard concatenation of string literals"
 msgstr ""
@@ -20900,7 +21244,7 @@
 msgid "invalid expression type for %<#pragma omp atomic%>"
 msgstr ""
 
-#: c-family/c-omp.c:256 cp/semantics.c:4481
+#: c-family/c-omp.c:256 cp/semantics.c:4587
 #, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr ""
@@ -20910,137 +21254,137 @@
 msgid "%qE is not initialized"
 msgstr ""
 
-#: c-family/c-omp.c:286 cp/semantics.c:4396
+#: c-family/c-omp.c:286 cp/semantics.c:4502
 #, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr ""
 
-#: c-family/c-omp.c:368 cp/semantics.c:4153
+#: c-family/c-omp.c:368 cp/semantics.c:4259
 #, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr ""
 
-#: c-family/c-omp.c:375 cp/semantics.c:4402
+#: c-family/c-omp.c:375 cp/semantics.c:4508
 #, gcc-internal-format
 msgid "missing increment expression"
 msgstr ""
 
-#: c-family/c-omp.c:444 cp/semantics.c:4258
+#: c-family/c-omp.c:444 cp/semantics.c:4364
 #, gcc-internal-format
 msgid "invalid increment expression"
 msgstr ""
 
-#: c-family/c-opts.c:303
+#: c-family/c-opts.c:308
 #, gcc-internal-format
 msgid "-I- specified twice"
 msgstr ""
 
-#: c-family/c-opts.c:306
+#: c-family/c-opts.c:311
 #, gcc-internal-format
 msgid "obsolete option -I- used, please use -iquote instead"
 msgstr ""
 
-#: c-family/c-opts.c:486
+#: c-family/c-opts.c:493
 #, gcc-internal-format
 msgid "-Werror=normalized=: set -Wnormalized=nfc"
 msgstr ""
 
-#: c-family/c-opts.c:500
+#: c-family/c-opts.c:507
 #, gcc-internal-format
 msgid "argument %qs to %<-Wnormalized%> not recognized"
 msgstr ""
 
-#: c-family/c-opts.c:723 fortran/cpp.c:347
+#: c-family/c-opts.c:730 fortran/cpp.c:347
 #, gcc-internal-format
 msgid "output filename specified twice"
 msgstr ""
 
-#: c-family/c-opts.c:852
+#: c-family/c-opts.c:869
 #, gcc-internal-format
 msgid "-fexcess-precision=standard for C++"
 msgstr ""
 
-#: c-family/c-opts.c:865
+#: c-family/c-opts.c:882
 #, gcc-internal-format
 msgid "-fno-gnu89-inline is only supported in GNU99 or C99 mode"
 msgstr ""
 
-#: c-family/c-opts.c:944
+#: c-family/c-opts.c:961
 #, gcc-internal-format
 msgid "-Wformat-y2k ignored without -Wformat"
 msgstr ""
 
-#: c-family/c-opts.c:946
+#: c-family/c-opts.c:963
 #, gcc-internal-format
 msgid "-Wformat-extra-args ignored without -Wformat"
 msgstr ""
 
-#: c-family/c-opts.c:948
+#: c-family/c-opts.c:965
 #, gcc-internal-format
 msgid "-Wformat-zero-length ignored without -Wformat"
 msgstr ""
 
-#: c-family/c-opts.c:950
+#: c-family/c-opts.c:967
 #, gcc-internal-format
 msgid "-Wformat-nonliteral ignored without -Wformat"
 msgstr ""
 
-#: c-family/c-opts.c:952
+#: c-family/c-opts.c:969
 #, gcc-internal-format
 msgid "-Wformat-contains-nul ignored without -Wformat"
 msgstr ""
 
-#: c-family/c-opts.c:954
+#: c-family/c-opts.c:971
 #, gcc-internal-format
 msgid "-Wformat-security ignored without -Wformat"
 msgstr ""
 
-#: c-family/c-opts.c:984
+#: c-family/c-opts.c:1001
 #, gcc-internal-format
 msgid "opening output file %s: %m"
 msgstr ""
 
-#: c-family/c-opts.c:989
+#: c-family/c-opts.c:1006
 #, gcc-internal-format, gfc-internal-format
 msgid "too many filenames given.  Type %s --help for usage"
 msgstr ""
 
-#: c-family/c-opts.c:1112
+#: c-family/c-opts.c:1129
 #, gcc-internal-format
 msgid "opening dependency file %s: %m"
 msgstr ""
 
-#: c-family/c-opts.c:1122
+#: c-family/c-opts.c:1139
 #, gcc-internal-format
 msgid "closing dependency file %s: %m"
 msgstr ""
 
-#: c-family/c-opts.c:1125
+#: c-family/c-opts.c:1142
 #, gcc-internal-format
 msgid "when writing output to %s: %m"
 msgstr ""
 
-#: c-family/c-opts.c:1205
+#: c-family/c-opts.c:1222
 #, gcc-internal-format
 msgid "to generate dependencies you must specify either -M or -MM"
 msgstr ""
 
-#: c-family/c-opts.c:1228
+#: c-family/c-opts.c:1245
 #, gcc-internal-format
 msgid "-MG may only be used with -M or -MM"
 msgstr ""
 
-#: c-family/c-opts.c:1258
+#: c-family/c-opts.c:1275
 #, gcc-internal-format
 msgid "-fdirectives-only is incompatible with -Wunused_macros"
 msgstr ""
 
-#: c-family/c-opts.c:1260
+#: c-family/c-opts.c:1277
 #, gcc-internal-format
 msgid "-fdirectives-only is incompatible with -traditional"
 msgstr ""
 
-#: c-family/c-opts.c:1411
+#: c-family/c-opts.c:1428
 #, gcc-internal-format
 msgid "too late for # directive to set debug directory"
 msgstr ""
@@ -21388,11 +21732,121 @@
 msgid "ISO C does not support %<#pragma STDC FLOAT_CONST_DECIMAL64%>"
 msgstr ""
 
-#: c-family/c-semantics.c:167
+#: c-family/c-semantics.c:159
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong type argument to %s"
 msgstr ""
 
+#: common/config/alpha/alpha-common.c:65
+#, gcc-internal-format
+msgid "bad value %qs for -mtls-size switch"
+msgstr ""
+
+#: common/config/bfin/bfin-common.c:305 common/config/m68k/m68k-common.c:58
+#, gcc-internal-format, gfc-internal-format
+msgid "-mshared-library-id=%s is not between 0 and %d"
+msgstr ""
+
+#: common/config/bfin/bfin-common.c:324
+#, gcc-internal-format, gfc-internal-format
+msgid "-mcpu=%s is not valid"
+msgstr ""
+
+#: common/config/bfin/bfin-common.c:360
+#, gcc-internal-format, gfc-internal-format
+msgid "-mcpu=%s has invalid silicon revision"
+msgstr ""
+
+#: common/config/i386/i386-common.c:528
+#, gcc-internal-format
+msgid "-malign-loops is obsolete, use -falign-loops"
+msgstr ""
+
+#: common/config/i386/i386-common.c:530
+#, gcc-internal-format, gfc-internal-format
+msgid "-malign-loops=%d is not between 0 and %d"
+msgstr ""
+
+#: common/config/i386/i386-common.c:537
+#, gcc-internal-format
+msgid "-malign-jumps is obsolete, use -falign-jumps"
+msgstr ""
+
+#: common/config/i386/i386-common.c:539
+#, gcc-internal-format, gfc-internal-format
+msgid "-malign-jumps=%d is not between 0 and %d"
+msgstr ""
+
+#: common/config/i386/i386-common.c:547
+#, gcc-internal-format
+msgid "-malign-functions is obsolete, use -falign-functions"
+msgstr ""
+
+#: common/config/i386/i386-common.c:549
+#, gcc-internal-format, gfc-internal-format
+msgid "-malign-functions=%d is not between 0 and %d"
+msgstr ""
+
+#: common/config/i386/i386-common.c:558
+#, gcc-internal-format, gfc-internal-format
+msgid "-mbranch-cost=%d is not between 0 and 5"
+msgstr ""
+
+#: common/config/i386/i386-common.c:606
+#, gcc-internal-format
+msgid "%<-fsplit-stack%> currently only supported on GNU/Linux"
+msgstr ""
+
+#: common/config/i386/i386-common.c:612
+#, gcc-internal-format
+msgid "%<-fsplit-stack%> requires assembler support for CFI directives"
+msgstr ""
+
+#: common/config/ia64/ia64-common.c:59
+#, gcc-internal-format
+msgid "bad value %<%s%> for -mtls-size= switch"
+msgstr ""
+
+#: common/config/rs6000/rs6000-common.c:196
+#, gcc-internal-format, gfc-internal-format
+msgid "unknown -mdebug-%s switch"
+msgstr ""
+
+#: common/config/rs6000/rs6000-common.c:242
+#, gcc-internal-format, gfc-internal-format
+msgid "unknown switch -mlong-double-%s"
+msgstr ""
+
+#: common/config/rs6000/rs6000-common.c:252
+#, gcc-internal-format
+msgid "-msingle-float option equivalent to -mhard-float"
+msgstr ""
+
+#: common/config/rs6000/rs6000-common.c:268
+#, gcc-internal-format
+msgid "-msimple-fpu option ignored"
+msgstr ""
+
+#: common/config/rx/rx-common.c:60
+#, gcc-internal-format
+msgid "the RX200 cpu does not have FPU hardware"
+msgstr ""
+
+#: common/config/s390/s390-common.c:94
+#, gcc-internal-format
+msgid "stack guard value must be an exact power of 2"
+msgstr ""
+
+#: common/config/s390/s390-common.c:99
+#, gcc-internal-format
+msgid "stack size must be an exact power of 2"
+msgstr ""
+
+#: common/config/v850/v850-common.c:48
+#, gcc-internal-format
+msgid "value passed in %qs is too large"
+msgstr ""
+
 #: config/darwin-c.c:85
 #, gcc-internal-format
 msgid "too many #pragma options align=reset"
@@ -21589,7 +22043,7 @@
 msgid "junk at end of %<#pragma fini%>"
 msgstr ""
 
-#: config/sol2.c:54
+#: config/sol2.c:56
 #, gcc-internal-format
 msgid "ignoring %<#pragma align%> for explicitly aligned %q+D"
 msgstr ""
@@ -21613,7 +22067,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:440
+#: config/darwin.h:441
 #, gcc-internal-format
 msgid "alias definitions not supported in Mach-O; ignored"
 msgstr ""
@@ -21624,317 +22078,282 @@
 msgid "profiler support for VxWorks"
 msgstr ""
 
-#: config/alpha/alpha.c:239 config/rs6000/rs6000.c:4429
-#, gcc-internal-format
-msgid "bad value %qs for -mtls-size switch"
-msgstr ""
-
-#: config/alpha/alpha.c:318
+#: config/alpha/alpha.c:275
 #, gcc-internal-format
 msgid "bad value %qs for -mtrap-precision switch"
 msgstr ""
 
-#: config/alpha/alpha.c:332
+#: config/alpha/alpha.c:289
 #, gcc-internal-format
 msgid "bad value %qs for -mfp-rounding-mode switch"
 msgstr ""
 
-#: config/alpha/alpha.c:347
+#: config/alpha/alpha.c:304
 #, gcc-internal-format
 msgid "bad value %qs for -mfp-trap-mode switch"
 msgstr ""
 
-#: config/alpha/alpha.c:361
+#: config/alpha/alpha.c:318
 #, gcc-internal-format
 msgid "bad value %qs for -mcpu switch"
 msgstr ""
 
-#: config/alpha/alpha.c:373
+#: config/alpha/alpha.c:330
 #, gcc-internal-format
 msgid "bad value %qs for -mtune switch"
 msgstr ""
 
-#: config/alpha/alpha.c:381
+#: config/alpha/alpha.c:338
 #, gcc-internal-format
 msgid "fp software completion requires -mtrap-precision=i"
 msgstr ""
 
-#: config/alpha/alpha.c:397
+#: config/alpha/alpha.c:354
 #, gcc-internal-format
 msgid "rounding mode not supported for VAX floats"
 msgstr ""
 
-#: config/alpha/alpha.c:402
+#: config/alpha/alpha.c:359
 #, gcc-internal-format
 msgid "trap mode not supported for VAX floats"
 msgstr ""
 
-#: config/alpha/alpha.c:406
+#: config/alpha/alpha.c:363
 #, gcc-internal-format
 msgid "128-bit long double not supported for VAX floats"
 msgstr ""
 
-#: config/alpha/alpha.c:434
+#: config/alpha/alpha.c:391
 #, gcc-internal-format, gfc-internal-format
 msgid "L%d cache latency unknown for %s"
 msgstr ""
 
-#: config/alpha/alpha.c:449
+#: config/alpha/alpha.c:406
 #, gcc-internal-format
 msgid "bad value %qs for -mmemory-latency"
 msgstr ""
 
-#: config/alpha/alpha.c:6640 config/alpha/alpha.c:6643 config/s390/s390.c:9204
-#: config/s390/s390.c:9207
+#: config/alpha/alpha.c:6444 config/alpha/alpha.c:6447 config/s390/s390.c:9132
+#: config/s390/s390.c:9135
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr ""
 
-#: config/arm/arm.c:1338 config/sparc/sparc.c:868
-#, gcc-internal-format, gfc-internal-format
-msgid "bad value (%s) for %s switch"
-msgstr ""
-
-#: config/arm/arm.c:1477
+#: config/arm/arm.c:1308
 #, gcc-internal-format, gfc-internal-format
 msgid "switch -mcpu=%s conflicts with -march=%s switch"
 msgstr ""
 
-#: config/arm/arm.c:1602
-#, gcc-internal-format, gfc-internal-format
-msgid "invalid __fp16 format option: -mfp16-format=%s"
-msgstr ""
-
-#: config/arm/arm.c:1619
-#, gcc-internal-format, gfc-internal-format
-msgid "invalid ABI option: -mabi=%s"
-msgstr ""
-
-#: config/arm/arm.c:1627
+#: config/arm/arm.c:1425
 #, gcc-internal-format
 msgid "target CPU does not support ARM mode"
 msgstr ""
 
-#: config/arm/arm.c:1633
+#: config/arm/arm.c:1431
 #, gcc-internal-format
 msgid "target CPU does not support interworking"
 msgstr ""
 
-#: config/arm/arm.c:1639
+#: config/arm/arm.c:1437
 #, gcc-internal-format
 msgid "target CPU does not support THUMB instructions"
 msgstr ""
 
-#: config/arm/arm.c:1657
+#: config/arm/arm.c:1455
 #, gcc-internal-format
 msgid ""
 "enabling backtrace support is only meaningful when compiling for the Thumb"
 msgstr ""
 
-#: config/arm/arm.c:1660
+#: config/arm/arm.c:1458
 #, gcc-internal-format
 msgid ""
 "enabling callee interworking support is only meaningful when compiling for "
 "the Thumb"
 msgstr ""
 
-#: config/arm/arm.c:1664
+#: config/arm/arm.c:1462
 #, gcc-internal-format
 msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
 msgstr ""
 
-#: config/arm/arm.c:1672
+#: config/arm/arm.c:1470
 #, gcc-internal-format
 msgid "-fpic and -mapcs-reent are incompatible"
 msgstr ""
 
-#: config/arm/arm.c:1675
+#: config/arm/arm.c:1473
 #, gcc-internal-format
 msgid "APCS reentrant code not supported.  Ignored"
 msgstr ""
 
-#: config/arm/arm.c:1683
+#: config/arm/arm.c:1481
 #, gcc-internal-format
 msgid "-g with -mno-apcs-frame may not give sensible debugging"
 msgstr ""
 
-#: config/arm/arm.c:1686
+#: config/arm/arm.c:1484
 #, gcc-internal-format
 msgid "passing floating point arguments in fp regs not yet supported"
 msgstr ""
 
-#: config/arm/arm.c:1746
+#: config/arm/arm.c:1545
 #, gcc-internal-format
 msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
 msgstr ""
 
-#: config/arm/arm.c:1749
+#: config/arm/arm.c:1548
 #, gcc-internal-format
 msgid "iwmmxt abi requires an iwmmxt capable cpu"
 msgstr ""
 
-#: config/arm/arm.c:1758
-#, gcc-internal-format, gfc-internal-format
-msgid "invalid floating point emulation option: -mfpe=%s"
-msgstr ""
-
-#: config/arm/arm.c:1786
-#, gcc-internal-format, gfc-internal-format
-msgid "invalid floating point option: -mfpu=%s"
-msgstr ""
-
-#: config/arm/arm.c:1825
-#, gcc-internal-format, gfc-internal-format
-msgid "invalid floating point abi: -mfloat-abi=%s"
-msgstr ""
-
-#: config/arm/arm.c:1833
+#: config/arm/arm.c:1596
 #, gcc-internal-format
 msgid "FPA is unsupported in the AAPCS"
 msgstr ""
 
-#: config/arm/arm.c:1838
+#: config/arm/arm.c:1601
 #, gcc-internal-format
 msgid "AAPCS does not support -mcaller-super-interworking"
 msgstr ""
 
-#: config/arm/arm.c:1841
+#: config/arm/arm.c:1604
 #, gcc-internal-format
 msgid "AAPCS does not support -mcallee-super-interworking"
 msgstr ""
 
-#: config/arm/arm.c:1848
+#: config/arm/arm.c:1611
 #, gcc-internal-format
 msgid "iWMMXt and hardware floating point"
 msgstr ""
 
-#: config/arm/arm.c:1852
+#: config/arm/arm.c:1615
 #, gcc-internal-format
 msgid "Thumb-2 iWMMXt"
 msgstr ""
 
-#: config/arm/arm.c:1856
+#: config/arm/arm.c:1619
 #, gcc-internal-format
 msgid "__fp16 and no ldrh"
 msgstr ""
 
-#: config/arm/arm.c:1876
+#: config/arm/arm.c:1639
 #, gcc-internal-format
 msgid "-mfloat-abi=hard and VFP"
 msgstr ""
 
-#: config/arm/arm.c:1900
-#, gcc-internal-format, gfc-internal-format
-msgid "invalid thread pointer option: -mtp=%s"
-msgstr ""
-
-#: config/arm/arm.c:1913
+#: config/arm/arm.c:1664
 #, gcc-internal-format
 msgid "can not use -mtp=cp15 with 16-bit Thumb"
 msgstr ""
 
-#: config/arm/arm.c:1927
-#, gcc-internal-format, gfc-internal-format
-msgid "structure size boundary can only be set to %s"
+#: config/arm/arm.c:1680
+#, gcc-internal-format
+msgid "structure size boundary can only be set to 8, 32 or 64"
 msgstr ""
 
-#: config/arm/arm.c:1933
+#: config/arm/arm.c:1682
+#, gcc-internal-format
+msgid "structure size boundary can only be set to 8 or 32"
+msgstr ""
+
+#: config/arm/arm.c:1690
 #, gcc-internal-format
 msgid "RTP PIC is incompatible with Thumb"
 msgstr ""
 
-#: config/arm/arm.c:1942
+#: config/arm/arm.c:1699
 #, gcc-internal-format
 msgid "RTP PIC is incompatible with -msingle-pic-base"
 msgstr ""
 
-#: config/arm/arm.c:1954
+#: config/arm/arm.c:1711
 #, gcc-internal-format
 msgid "-mpic-register= is useless without -fpic"
 msgstr ""
 
-#: config/arm/arm.c:1963
+#: config/arm/arm.c:1720
 #, gcc-internal-format, gfc-internal-format
 msgid "unable to use '%s' for PIC register"
 msgstr ""
 
-#: config/arm/arm.c:2002
+#: config/arm/arm.c:1754
 #, gcc-internal-format
 msgid "-freorder-blocks-and-partition not supported on this architecture"
 msgstr ""
 
-#: config/arm/arm.c:3869
+#: config/arm/arm.c:3634
 #, gcc-internal-format
 msgid "non-AAPCS derived PCS variant"
 msgstr ""
 
-#: config/arm/arm.c:3871
+#: config/arm/arm.c:3636
 #, gcc-internal-format
 msgid "variadic functions must use the base AAPCS variant"
 msgstr ""
 
-#: config/arm/arm.c:3890
+#: config/arm/arm.c:3655
 #, gcc-internal-format
 msgid "PCS variant"
 msgstr ""
 
-#: config/arm/arm.c:4085
+#: config/arm/arm.c:3850
 #, gcc-internal-format
 msgid "Thumb-1 hard-float VFP ABI"
 msgstr ""
 
-#: config/arm/arm.c:4793 config/arm/arm.c:4811 config/avr/avr.c:5090
-#: config/avr/avr.c:5106 config/bfin/bfin.c:5555 config/bfin/bfin.c:5616
-#: config/bfin/bfin.c:5645 config/h8300/h8300.c:5400 config/i386/i386.c:5300
-#: config/i386/i386.c:29571 config/i386/i386.c:29622 config/i386/i386.c:29702
-#: config/m68k/m68k.c:835 config/mcore/mcore.c:3092 config/mep/mep.c:4029
-#: config/mep/mep.c:4043 config/mep/mep.c:4117 config/rs6000/rs6000.c:25216
-#: config/rx/rx.c:2226 config/sh/sh.c:9021 config/sh/sh.c:9039
-#: config/sh/sh.c:9068 config/sh/sh.c:9150 config/sh/sh.c:9173
-#: config/spu/spu.c:3901 config/stormy16/stormy16.c:2195
-#: config/v850/v850.c:2138
+#: config/arm/arm.c:4562 config/arm/arm.c:4580 config/avr/avr.c:5068
+#: config/avr/avr.c:5084 config/bfin/bfin.c:5235 config/bfin/bfin.c:5296
+#: config/bfin/bfin.c:5325 config/h8300/h8300.c:5373 config/i386/i386.c:4696
+#: config/i386/i386.c:29117 config/i386/i386.c:29168 config/i386/i386.c:29248
+#: config/m68k/m68k.c:698 config/mcore/mcore.c:3075 config/mep/mep.c:4016
+#: config/mep/mep.c:4030 config/mep/mep.c:4104 config/rs6000/rs6000.c:24692
+#: config/rx/rx.c:2260 config/sh/sh.c:8876 config/sh/sh.c:8894
+#: config/sh/sh.c:8923 config/sh/sh.c:9005 config/sh/sh.c:9028
+#: config/spu/spu.c:3905 config/stormy16/stormy16.c:2199
+#: config/v850/v850.c:2056
 #, gcc-internal-format
 msgid "%qE attribute only applies to functions"
 msgstr ""
 
-#: config/arm/arm.c:17801
+#: config/arm/arm.c:17742
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr ""
 
-#: config/arm/arm.c:19383
+#: config/arm/arm.c:19478
 #, gcc-internal-format
 msgid "argument must be a constant"
 msgstr ""
 
 #. @@@ better error message
-#: config/arm/arm.c:19691 config/arm/arm.c:19728
+#: config/arm/arm.c:19801 config/arm/arm.c:19838
 #, gcc-internal-format
 msgid "selector must be an immediate"
 msgstr ""
 
 #. @@@ better error message
-#: config/arm/arm.c:19771
+#: config/arm/arm.c:19881
 #, gcc-internal-format
 msgid "mask must be an immediate"
 msgstr ""
 
-#: config/arm/arm.c:20547
+#: config/arm/arm.c:20657
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr ""
 
-#: config/arm/arm.c:20772
+#: config/arm/arm.c:20882
 #, gcc-internal-format
 msgid "interrupt Service Routines cannot be coded in Thumb mode"
 msgstr ""
 
-#: config/arm/arm.c:23053
+#: config/arm/arm.c:23154
 #, gcc-internal-format
 msgid "the mangling of %<va_list%> has changed in GCC 4.4"
 msgstr ""
 
-#: config/arm/pe.c:158 config/mcore/mcore.c:2967
+#: config/arm/pe.c:158 config/mcore/mcore.c:2950
 #, gcc-internal-format
 msgid "initialized variable %q+D is marked dllimport"
 msgstr ""
@@ -21944,134 +22363,136 @@
 msgid "static variable %q+D is marked dllimport"
 msgstr ""
 
-#: config/avr/avr.c:271
-#, gcc-internal-format
-msgid "unrecognized argument to -mmcu= option: %qs"
-msgstr ""
-
-#: config/avr/avr.c:272
-#, gcc-internal-format
-msgid "See --target-help for supported MCUs"
-msgstr ""
-
-#: config/avr/avr.c:514
+#: config/avr/avr.c:472
 #, gcc-internal-format
 msgid "'builtin_return_address' contains only 2 bytes of address"
 msgstr ""
 
-#: config/avr/avr.c:1311
+#: config/avr/avr.c:1271
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr ""
 
-#: config/avr/avr.c:1368
+#: config/avr/avr.c:1328
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr ""
 
-#: config/avr/avr.c:1408
+#: config/avr/avr.c:1368
 #, gcc-internal-format
 msgid "accessing program  memory with data memory address"
 msgstr ""
 
-#: config/avr/avr.c:4904
+#: config/avr/avr.c:1748
+#, gcc-internal-format, gfc-internal-format
+msgid "Register %s is needed to pass a parameter but is fixed"
+msgstr ""
+
+#: config/avr/avr.c:4882
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled interrupt handler"
 msgstr ""
 
-#: config/avr/avr.c:4913
+#: config/avr/avr.c:4891
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled signal handler"
 msgstr ""
 
-#: config/avr/avr.c:5063
+#: config/avr/avr.c:5041
 #, gcc-internal-format
 msgid "only initialized variables can be placed into program memory area"
 msgstr ""
 
-#: config/avr/avr.c:5197
+#: config/avr/avr.c:5140
+#, gcc-internal-format
+msgid ""
+"variable %q+D must be const in order to be put into read-only section by "
+"means of %<__attribute__((progmem))%>"
+msgstr ""
+
+#: config/avr/avr.c:5255
 #, gcc-internal-format
 msgid "only uninitialized variables can be placed in the .noinit section"
 msgstr ""
 
-#: config/avr/avr.c:5211
+#: config/avr/avr.c:5271
 #, gcc-internal-format
 msgid "MCU %qs supported for assembler only"
 msgstr ""
 
-#: config/bfin/bfin.c:2561 config/m68k/m68k.c:559
-#, gcc-internal-format, gfc-internal-format
-msgid "-mshared-library-id=%s is not between 0 and %d"
+#: config/avr/avr.c:6800
+#, gcc-internal-format
+msgid "__builtin_avr_delay_cycles expects a compile time integer constant."
 msgstr ""
 
-#: config/bfin/bfin.c:2580
-#, gcc-internal-format, gfc-internal-format
-msgid "-mcpu=%s is not valid"
+#: config/bfin/bfin.c:2350
+#, gcc-internal-format
+msgid "-mfdpic is not supported, please use a bfin-linux-uclibc target"
 msgstr ""
 
-#: config/bfin/bfin.c:2616
-#, gcc-internal-format, gfc-internal-format
-msgid "-mcpu=%s has invalid silicon revision"
-msgstr ""
-
-#: config/bfin/bfin.c:2677
+#: config/bfin/bfin.c:2355
 #, gcc-internal-format
 msgid "-mshared-library-id= specified without -mid-shared-library"
 msgstr ""
 
-#: config/bfin/bfin.c:2680
+#: config/bfin/bfin.c:2359
+#, gcc-internal-format
+msgid "-fstack-limit- options are ignored with -mfdpic; use -mstack-check-l1"
+msgstr ""
+
+#: config/bfin/bfin.c:2364
 #, gcc-internal-format
 msgid "can%'t use multiple stack checking methods together"
 msgstr ""
 
-#: config/bfin/bfin.c:2683
+#: config/bfin/bfin.c:2367
 #, gcc-internal-format
 msgid "ID shared libraries and FD-PIC mode can%'t be used together"
 msgstr ""
 
-#: config/bfin/bfin.c:2688 config/m68k/m68k.c:660
+#: config/bfin/bfin.c:2372 config/m68k/m68k.c:523
 #, gcc-internal-format
 msgid "cannot specify both -msep-data and -mid-shared-library"
 msgstr ""
 
-#: config/bfin/bfin.c:2708
+#: config/bfin/bfin.c:2392
 #, gcc-internal-format
 msgid "-mmulticore can only be used with BF561"
 msgstr ""
 
-#: config/bfin/bfin.c:2711
+#: config/bfin/bfin.c:2395
 #, gcc-internal-format
 msgid "-mcorea should be used with -mmulticore"
 msgstr ""
 
-#: config/bfin/bfin.c:2714
+#: config/bfin/bfin.c:2398
 #, gcc-internal-format
 msgid "-mcoreb should be used with -mmulticore"
 msgstr ""
 
-#: config/bfin/bfin.c:2717
+#: config/bfin/bfin.c:2401
 #, gcc-internal-format
 msgid "-mcorea and -mcoreb can%'t be used together"
 msgstr ""
 
-#: config/bfin/bfin.c:5560
+#: config/bfin/bfin.c:5240
 #, gcc-internal-format
 msgid "multiple function type attributes specified"
 msgstr ""
 
-#: config/bfin/bfin.c:5627
+#: config/bfin/bfin.c:5307
 #, gcc-internal-format
 msgid ""
 "can%'t apply both longcall and shortcall attributes to the same function"
 msgstr ""
 
-#: config/bfin/bfin.c:5677 config/i386/winnt.c:61 config/mep/mep.c:3933
-#: config/mep/mep.c:4071
+#: config/bfin/bfin.c:5357 config/i386/winnt.c:61 config/mep/mep.c:3920
+#: config/mep/mep.c:4058
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables"
 msgstr ""
 
-#: config/bfin/bfin.c:5684
+#: config/bfin/bfin.c:5364
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr ""
@@ -22080,83 +22501,83 @@
 #. an operator, for immediate output.  If that ever happens for
 #. MULT, we need to apply TARGET_MUL_BUG in the caller.  Make sure
 #. we notice.
-#: config/cris/cris.c:520
+#: config/cris/cris.c:504
 #, gcc-internal-format
 msgid "MULT case in cris_op_str"
 msgstr ""
 
-#: config/cris/cris.c:859
+#: config/cris/cris.c:843
 #, gcc-internal-format
 msgid "invalid use of ':' modifier"
 msgstr ""
 
-#: config/cris/cris.c:1046 config/moxie/moxie.c:189
+#: config/cris/cris.c:1030 config/moxie/moxie.c:189
 #, gcc-internal-format, gfc-internal-format
 msgid "internal error: bad register: %d"
 msgstr ""
 
-#: config/cris/cris.c:1634
+#: config/cris/cris.c:1607
 #, gcc-internal-format
 msgid "internal error: sideeffect-insn affecting main effect"
 msgstr ""
 
-#: config/cris/cris.c:1731
+#: config/cris/cris.c:1704
 #, gcc-internal-format
 msgid "unknown cc_attr value"
 msgstr ""
 
 #. If we get here, the caller got its initial tests wrong.
-#: config/cris/cris.c:2116
+#: config/cris/cris.c:2089
 #, gcc-internal-format
 msgid "internal error: cris_side_effect_mode_ok with bad operands"
 msgstr ""
 
-#: config/cris/cris.c:2410
+#: config/cris/cris.c:2323
 #, gcc-internal-format, gfc-internal-format
 msgid "-max-stackframe=%d is not usable, not between 0 and %d"
 msgstr ""
 
-#: config/cris/cris.c:2438
+#: config/cris/cris.c:2351
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
 msgstr ""
 
-#: config/cris/cris.c:2474
+#: config/cris/cris.c:2387
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown CRIS cpu version specification in -mtune= : %s"
 msgstr ""
 
-#: config/cris/cris.c:2495
+#: config/cris/cris.c:2408
 #, gcc-internal-format
 msgid "-fPIC and -fpic are not supported in this configuration"
 msgstr ""
 
-#: config/cris/cris.c:2510
+#: config/cris/cris.c:2423
 #, gcc-internal-format
 msgid "that particular -g option is invalid with -maout and -melinux"
 msgstr ""
 
-#: config/cris/cris.c:2736
+#: config/cris/cris.c:2649
 #, gcc-internal-format
 msgid "unknown src"
 msgstr ""
 
-#: config/cris/cris.c:2797
+#: config/cris/cris.c:2710
 #, gcc-internal-format
 msgid "unknown dest"
 msgstr ""
 
-#: config/cris/cris.c:3082
+#: config/cris/cris.c:2995
 #, gcc-internal-format, gfc-internal-format
 msgid "stackframe too big: %d bytes"
 msgstr ""
 
-#: config/cris/cris.c:3574 config/cris/cris.c:3602
+#: config/cris/cris.c:3487 config/cris/cris.c:3515
 #, gcc-internal-format
 msgid "expand_binop failed in movsi got"
 msgstr ""
 
-#: config/cris/cris.c:3684
+#: config/cris/cris.c:3597
 #, gcc-internal-format
 msgid "emitting PIC operand, but PIC register isn%'t set up"
 msgstr ""
@@ -22210,77 +22631,77 @@
 #. See cris.c for TARGET_ASM_FUNCTION_PROLOGUE and
 #. TARGET_ASM_FUNCTION_EPILOGUE.
 #. Node: Profiling
-#: config/cris/cris.h:876
+#: config/cris/cris.h:879
 #, gcc-internal-format
 msgid "no FUNCTION_PROFILER for CRIS"
 msgstr ""
 
-#: config/frv/frv.c:8667
+#: config/frv/frv.c:8625
 #, gcc-internal-format
 msgid "accumulator is not a constant integer"
 msgstr ""
 
-#: config/frv/frv.c:8672
+#: config/frv/frv.c:8630
 #, gcc-internal-format
 msgid "accumulator number is out of bounds"
 msgstr ""
 
-#: config/frv/frv.c:8683
+#: config/frv/frv.c:8641
 #, gcc-internal-format
 msgid "inappropriate accumulator for %qs"
 msgstr ""
 
-#: config/frv/frv.c:8759
+#: config/frv/frv.c:8717
 #, gcc-internal-format
 msgid "invalid IACC argument"
 msgstr ""
 
-#: config/frv/frv.c:8782
+#: config/frv/frv.c:8740
 #, gcc-internal-format
 msgid "%qs expects a constant argument"
 msgstr ""
 
-#: config/frv/frv.c:8787
+#: config/frv/frv.c:8745
 #, gcc-internal-format
 msgid "constant argument out of range for %qs"
 msgstr ""
 
-#: config/frv/frv.c:9268
+#: config/frv/frv.c:9226
 #, gcc-internal-format
 msgid "media functions are not available unless -mmedia is used"
 msgstr ""
 
-#: config/frv/frv.c:9280
+#: config/frv/frv.c:9238
 #, gcc-internal-format
 msgid "this media function is only available on the fr500"
 msgstr ""
 
-#: config/frv/frv.c:9308
+#: config/frv/frv.c:9266
 #, gcc-internal-format
 msgid "this media function is only available on the fr400 and fr550"
 msgstr ""
 
-#: config/frv/frv.c:9327
+#: config/frv/frv.c:9285
 #, gcc-internal-format
 msgid "this builtin function is only available on the fr405 and fr450"
 msgstr ""
 
-#: config/frv/frv.c:9336
+#: config/frv/frv.c:9294
 #, gcc-internal-format
 msgid "this builtin function is only available on the fr500 and fr550"
 msgstr ""
 
-#: config/frv/frv.c:9348
+#: config/frv/frv.c:9306
 #, gcc-internal-format
 msgid "this builtin function is only available on the fr450"
 msgstr ""
 
-#: config/h8300/h8300.c:343
+#: config/h8300/h8300.c:338
 #, gcc-internal-format
 msgid "-ms2600 is used without -ms"
 msgstr ""
 
-#: config/h8300/h8300.c:349
+#: config/h8300/h8300.c:344
 #, gcc-internal-format
 msgid "-mn is used without -mh or -ms"
 msgstr ""
@@ -22295,361 +22716,293 @@
 msgid "can%'t set position in PCH file: %m"
 msgstr ""
 
-#: config/i386/i386.c:3517 config/i386/i386.c:3806
+#: config/i386/i386.c:3002 config/i386/i386.c:3291
 #, gcc-internal-format, gfc-internal-format
 msgid "bad value (%s) for %stune=%s %s"
 msgstr ""
 
-#: config/i386/i386.c:3520
+#: config/i386/i386.c:3005
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%stune=x86-64%s is deprecated; use %stune=k8%s or %stune=generic%s instead "
 "as appropriate"
 msgstr ""
 
-#: config/i386/i386.c:3566
-#, gcc-internal-format, gfc-internal-format
-msgid "bad value (%s) for %sstringop-strategy=%s %s"
+#. rep; movq isn't available in 32-bit code.
+#: config/i386/i386.c:3035
+#, gcc-internal-format
+msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386.c:3583
-#, gcc-internal-format, gfc-internal-format
-msgid "unknown ABI (%s) for %sabi=%s %s"
-msgstr ""
-
-#: config/i386/i386.c:3598
-#, gcc-internal-format, gfc-internal-format
-msgid "code model %s does not support PIC mode"
-msgstr ""
-
-#: config/i386/i386.c:3604
-#, gcc-internal-format, gfc-internal-format
-msgid "bad value (%s) for %scmodel=%s %s"
-msgstr ""
-
-#: config/i386/i386.c:3628
-#, gcc-internal-format, gfc-internal-format
-msgid "bad value (%s) for %sasm=%s %s"
-msgstr ""
-
-#: config/i386/i386.c:3632
+#: config/i386/i386.c:3056 config/i386/i386.c:3065 config/i386/i386.c:3074
+#: config/i386/i386.c:3082 config/i386/i386.c:3093
 #, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr ""
 
-#: config/i386/i386.c:3635
+#: config/i386/i386.c:3080 config/i386/i386.c:3089
+#, gcc-internal-format, gfc-internal-format
+msgid "code model %s does not support PIC mode"
+msgstr ""
+
+#: config/i386/i386.c:3116
+#, gcc-internal-format
+msgid "-masm=intel not supported in this configuration"
+msgstr ""
+
+#: config/i386/i386.c:3120
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr ""
 
-#: config/i386/i386.c:3647 config/i386/i386.c:3768
+#: config/i386/i386.c:3132 config/i386/i386.c:3253
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr ""
 
-#: config/i386/i386.c:3738
+#: config/i386/i386.c:3223
 #, gcc-internal-format, gfc-internal-format
 msgid "generic CPU can be used only for %stune=%s %s"
 msgstr ""
 
-#: config/i386/i386.c:3741
+#: config/i386/i386.c:3226
 #, gcc-internal-format, gfc-internal-format
 msgid "bad value (%s) for %sarch=%s %s"
 msgstr ""
 
-#: config/i386/i386.c:3856
-#, gcc-internal-format, gfc-internal-format
-msgid "%sregparm%s is ignored in 64-bit mode"
+#: config/i386/i386.c:3341
+#, gcc-internal-format
+msgid "-mregparm is ignored in 64-bit mode"
 msgstr ""
 
-#: config/i386/i386.c:3859
+#: config/i386/i386.c:3344
 #, gcc-internal-format, gfc-internal-format
-msgid "%sregparm=%d%s is not between 0 and %d"
+msgid "-mregparm=%d is not between 0 and %d"
 msgstr ""
 
-#: config/i386/i386.c:3872
-#, gcc-internal-format, gfc-internal-format
-msgid "%salign-loops%s is obsolete, use -falign-loops%s"
-msgstr ""
-
-#: config/i386/i386.c:3878 config/i386/i386.c:3893 config/i386/i386.c:3908
-#, gcc-internal-format, gfc-internal-format
-msgid "%salign-loops=%d%s is not between 0 and %d"
-msgstr ""
-
-#: config/i386/i386.c:3887
-#, gcc-internal-format, gfc-internal-format
-msgid "%salign-jumps%s is obsolete, use -falign-jumps%s"
-msgstr ""
-
-#: config/i386/i386.c:3902
-#, gcc-internal-format, gfc-internal-format
-msgid "%salign-functions%s is obsolete, use -falign-functions%s"
-msgstr ""
-
-#: config/i386/i386.c:3937
-#, gcc-internal-format, gfc-internal-format
-msgid "%sbranch-cost=%d%s is not between 0 and 5"
-msgstr ""
-
-#: config/i386/i386.c:3945
-#, gcc-internal-format, gfc-internal-format
-msgid "%slarge-data-threshold=%d%s is negative"
-msgstr ""
-
-#: config/i386/i386.c:3957
-#, gcc-internal-format, gfc-internal-format
-msgid "bad value (%s) for %stls-dialect=%s %s"
-msgstr ""
-
-#: config/i386/i386.c:3965
-#, gcc-internal-format, gfc-internal-format
-msgid "pc%d is not valid precision setting (32, 64 or 80)"
-msgstr ""
-
-#: config/i386/i386.c:3981
+#: config/i386/i386.c:3385
 #, gcc-internal-format, gfc-internal-format
 msgid "%srtd%s is ignored in 64bit mode"
 msgstr ""
 
-#: config/i386/i386.c:4041
-#, gcc-internal-format, gfc-internal-format
-msgid "%spreferred-stack-boundary%s is not supported for this target"
+#: config/i386/i386.c:3445
+#, gcc-internal-format
+msgid "-mpreferred-stack-boundary is not supported for this target"
 msgstr ""
 
-#: config/i386/i386.c:4044
+#: config/i386/i386.c:3448
 #, gcc-internal-format, gfc-internal-format
-msgid "%spreferred-stack-boundary=%d%s is not between %d and %d"
+msgid "-mpreferred-stack-boundary=%d is not between %d and %d"
 msgstr ""
 
-#: config/i386/i386.c:4064
+#: config/i386/i386.c:3469
 #, gcc-internal-format, gfc-internal-format
 msgid "-mincoming-stack-boundary=%d is not between %d and 12"
 msgstr ""
 
-#: config/i386/i386.c:4077
+#: config/i386/i386.c:3483
 #, gcc-internal-format, gfc-internal-format
 msgid "%ssseregparm%s used without SSE enabled"
 msgstr ""
 
-#: config/i386/i386.c:4088 config/i386/i386.c:4102
+#: config/i386/i386.c:3491
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr ""
 
-#: config/i386/i386.c:4107
+#: config/i386/i386.c:3496
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr ""
 
-#: config/i386/i386.c:4114
-#, gcc-internal-format, gfc-internal-format
-msgid "bad value (%s) for %sfpmath=%s %s"
-msgstr ""
-
-#: config/i386/i386.c:4130
-#, gcc-internal-format, gfc-internal-format
-msgid "unknown vectorization library ABI type (%s) for %sveclibabi=%s %s"
-msgstr ""
-
-#: config/i386/i386.c:4151
+#: config/i386/i386.c:3540
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "unwind tables currently require either a frame pointer or %saccumulate-"
 "outgoing-args%s for correctness"
 msgstr ""
 
-#: config/i386/i386.c:4164
+#: config/i386/i386.c:3553
 #, gcc-internal-format, gfc-internal-format
 msgid "stack probing requires %saccumulate-outgoing-args%s for correctness"
 msgstr ""
 
-#: config/i386/i386.c:4250
+#: config/i386/i386.c:3640
 #, gcc-internal-format
 msgid "-mfentry isn%'t supported for 32-bit in combination with -fpic"
 msgstr ""
 
-#: config/i386/i386.c:4257
+#: config/i386/i386.c:3647
 #, gcc-internal-format
 msgid "-mno-fentry isn%'t compatible with SEH"
 msgstr ""
 
-#: config/i386/i386.c:4671
+#: config/i386/i386.c:4073 config/i386/i386.c:4120
 #, gcc-internal-format, gfc-internal-format
 msgid "attribute(target(\"%s\")) is unknown"
 msgstr ""
 
-#: config/i386/i386.c:4699
+#: config/i386/i386.c:4101
 #, gcc-internal-format, gfc-internal-format
 msgid "option(\"%s\") was already specified"
 msgstr ""
 
-#: config/i386/i386.c:5313 config/i386/i386.c:5364
+#: config/i386/i386.c:4709 config/i386/i386.c:4760
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386.c:5318
+#: config/i386/i386.c:4714
 #, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386.c:5325 config/i386/i386.c:29591
+#: config/i386/i386.c:4721 config/i386/i386.c:29137
 #, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr ""
 
-#: config/i386/i386.c:5331
+#: config/i386/i386.c:4727
 #, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr ""
 
-#: config/i386/i386.c:5356 config/i386/i386.c:5399
+#: config/i386/i386.c:4752 config/i386/i386.c:4795
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386.c:5360
+#: config/i386/i386.c:4756
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386.c:5368 config/i386/i386.c:5417
+#: config/i386/i386.c:4764 config/i386/i386.c:4813
 #, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386.c:5378 config/i386/i386.c:5395
+#: config/i386/i386.c:4774 config/i386/i386.c:4791
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386.c:5382
+#: config/i386/i386.c:4778
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386.c:5386 config/i386/i386.c:5413
+#: config/i386/i386.c:4782 config/i386/i386.c:4809
 #, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386.c:5403 config/i386/i386.c:5421
+#: config/i386/i386.c:4799 config/i386/i386.c:4817
 #, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386.c:5409
+#: config/i386/i386.c:4805
 #, gcc-internal-format
 msgid "%qE attribute is used for none class-method"
 msgstr ""
 
-#: config/i386/i386.c:5563
+#: config/i386/i386.c:4997
 #, gcc-internal-format
 msgid "calling %qD with attribute sseregparm without SSE/SSE2 enabled"
 msgstr ""
 
-#: config/i386/i386.c:5566
+#: config/i386/i386.c:5000
 #, gcc-internal-format
 msgid "calling %qT with attribute sseregparm without SSE/SSE2 enabled"
 msgstr ""
 
-#: config/i386/i386.c:5783
+#: config/i386/i386.c:5215
 #, gcc-internal-format
 msgid "ms_hook_prologue is not compatible with nested function"
 msgstr ""
 
-#: config/i386/i386.c:5935
+#: config/i386/i386.c:5367
 #, gcc-internal-format
 msgid ""
 "ms_abi attribute requires -maccumulate-outgoing-args or subtarget "
 "optimization implying it"
 msgstr ""
 
-#: config/i386/i386.c:6058
+#: config/i386/i386.c:5491
 #, gcc-internal-format
 msgid "AVX vector argument without AVX enabled changes the ABI"
 msgstr ""
 
-#: config/i386/i386.c:6240
+#: config/i386/i386.c:5673
 #, 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:6356
+#: config/i386/i386.c:5789
 #, gcc-internal-format
 msgid "the ABI of passing union with long double has changed in GCC 4.4"
 msgstr ""
 
-#: config/i386/i386.c:6471
+#: config/i386/i386.c:5904
 #, gcc-internal-format
 msgid ""
 "the ABI of passing structure with complex float member has changed in GCC 4.4"
 msgstr ""
 
-#: config/i386/i386.c:6617
+#: config/i386/i386.c:6050
 #, gcc-internal-format
 msgid "SSE register return with SSE disabled"
 msgstr ""
 
-#: config/i386/i386.c:6623
+#: config/i386/i386.c:6056
 #, gcc-internal-format
 msgid "SSE register argument with SSE disabled"
 msgstr ""
 
-#: config/i386/i386.c:6639
+#: config/i386/i386.c:6072
 #, gcc-internal-format
 msgid "x87 register return with x87 disabled"
 msgstr ""
 
-#: config/i386/i386.c:7017
+#: config/i386/i386.c:6451
 #, gcc-internal-format
 msgid "SSE vector argument without SSE enabled changes the ABI"
 msgstr ""
 
-#: config/i386/i386.c:7055
+#: config/i386/i386.c:6489
 #, gcc-internal-format
 msgid "MMX vector argument without MMX enabled changes the ABI"
 msgstr ""
 
-#: config/i386/i386.c:7427
+#: config/i386/i386.c:6864
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "The ABI for passing parameters with %d-byte alignment has changed in GCC 4.6"
 msgstr ""
 
-#: config/i386/i386.c:7736
+#: config/i386/i386.c:7173
 #, gcc-internal-format
 msgid "SSE vector return without SSE enabled changes the ABI"
 msgstr ""
 
-#: config/i386/i386.c:7746
+#: config/i386/i386.c:7183
 #, gcc-internal-format
 msgid "MMX vector return without MMX enabled changes the ABI"
 msgstr ""
 
-#: config/i386/i386.c:9172
-#, gcc-internal-format
-msgid "%<-fsplit-stack%> currently only supported on GNU/Linux"
-msgstr ""
-
-#: config/i386/i386.c:9178
-#, gcc-internal-format
-msgid "%<-fsplit-stack%> requires assembler support for CFI directives"
-msgstr ""
-
-#: config/i386/i386.c:10339
+#: config/i386/i386.c:9765
 #, gcc-internal-format
 msgid "ms_hook_prologue attribute isn%'t compatible with -mfentry for 32-bit"
 msgstr ""
 
-#: config/i386/i386.c:11307
+#: config/i386/i386.c:10733
 #, gcc-internal-format
 msgid "-fsplit-stack does not support fastcall with nested function"
 msgstr ""
 
-#: config/i386/i386.c:11321
+#: config/i386/i386.c:10747
 #, gcc-internal-format
 msgid ""
 "-fsplit-stack does not support 2 register  parameters for a nested function"
@@ -22657,142 +23010,142 @@
 
 #. FIXME: We could make this work by pushing a register
 #. around the addition and comparison.
-#: config/i386/i386.c:11332
+#: config/i386/i386.c:10758
 #, gcc-internal-format
 msgid "-fsplit-stack does not support 3 register parameters"
 msgstr ""
 
-#: config/i386/i386.c:13693
+#: config/i386/i386.c:13197
 #, gcc-internal-format
 msgid "extended registers have no high halves"
 msgstr ""
 
-#: config/i386/i386.c:13708
+#: config/i386/i386.c:13212
 #, gcc-internal-format
 msgid "unsupported operand size for extended register"
 msgstr ""
 
-#: config/i386/i386.c:13953
+#: config/i386/i386.c:13458
 #, gcc-internal-format, gfc-internal-format
 msgid "non-integer operand used with operand code '%c'"
 msgstr ""
 
-#: config/i386/i386.c:26067 config/i386/i386.c:27488
-#, gcc-internal-format
-msgid "last argument must be an immediate"
-msgstr ""
-
-#: config/i386/i386.c:26397
-#, gcc-internal-format
-msgid "the fifth argument must be a 8-bit immediate"
-msgstr ""
-
-#: config/i386/i386.c:26492
-#, gcc-internal-format
-msgid "the third argument must be a 8-bit immediate"
-msgstr ""
-
-#: config/i386/i386.c:26854
-#, gcc-internal-format
-msgid "the last argument must be a 4-bit immediate"
-msgstr ""
-
-#: config/i386/i386.c:26863
+#: config/i386/i386.c:25588 config/i386/i386.c:26422
 #, gcc-internal-format
 msgid "the last argument must be a 2-bit immediate"
 msgstr ""
 
-#: config/i386/i386.c:26872
+#: config/i386/i386.c:25956
+#, gcc-internal-format
+msgid "the fifth argument must be an 8-bit immediate"
+msgstr ""
+
+#: config/i386/i386.c:26051
+#, gcc-internal-format
+msgid "the third argument must be an 8-bit immediate"
+msgstr ""
+
+#: config/i386/i386.c:26413
+#, gcc-internal-format
+msgid "the last argument must be a 4-bit immediate"
+msgstr ""
+
+#: config/i386/i386.c:26431
 #, gcc-internal-format
 msgid "the last argument must be a 1-bit immediate"
 msgstr ""
 
-#: config/i386/i386.c:26881
+#: config/i386/i386.c:26440
 #, gcc-internal-format
 msgid "the last argument must be a 5-bit immediate"
 msgstr ""
 
-#: config/i386/i386.c:26890
+#: config/i386/i386.c:26449
 #, gcc-internal-format
 msgid "the next to last argument must be an 8-bit immediate"
 msgstr ""
 
-#: config/i386/i386.c:26894 config/i386/i386.c:27105
+#: config/i386/i386.c:26453 config/i386/i386.c:26664
 #, gcc-internal-format
 msgid "the last argument must be an 8-bit immediate"
 msgstr ""
 
-#: config/i386/i386.c:27103
+#: config/i386/i386.c:26662
 #, gcc-internal-format
 msgid "the last argument must be a 32-bit immediate"
 msgstr ""
 
-#: config/i386/i386.c:27169 config/rs6000/rs6000.c:11694
+#: config/i386/i386.c:26728 config/rs6000/rs6000.c:11102
 #, gcc-internal-format
 msgid "selector must be an integer constant in the range 0..%wi"
 msgstr ""
 
-#: config/i386/i386.c:27312
+#: config/i386/i386.c:26871
 #, gcc-internal-format
 msgid "%qE needs unknown isa option"
 msgstr ""
 
-#: config/i386/i386.c:27316
+#: config/i386/i386.c:26875
 #, gcc-internal-format
 msgid "%qE needs isa option %s"
 msgstr ""
 
-#: config/i386/i386.c:29578
+#: config/i386/i386.c:27047
+#, gcc-internal-format
+msgid "last argument must be an immediate"
+msgstr ""
+
+#: config/i386/i386.c:29124
 #, gcc-internal-format
 msgid "%qE attribute only available for 32-bit"
 msgstr ""
 
-#: config/i386/i386.c:29599
+#: config/i386/i386.c:29145
 #, gcc-internal-format
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr ""
 
-#: config/i386/i386.c:29629
+#: config/i386/i386.c:29175
 #, gcc-internal-format
 msgid "%qE attribute only available for 64-bit"
 msgstr ""
 
-#: config/i386/i386.c:29640 config/i386/i386.c:29649
+#: config/i386/i386.c:29186 config/i386/i386.c:29195
 #, gcc-internal-format
 msgid "ms_abi and sysv_abi attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386.c:29687 config/rs6000/rs6000.c:25299
+#: config/i386/i386.c:29233 config/rs6000/rs6000.c:24775
 #, gcc-internal-format
 msgid "%qE incompatible attribute ignored"
 msgstr ""
 
-#: config/i386/i386.c:33863
+#: config/i386/i386.c:33426
 #, gcc-internal-format
 msgid "vector permutation requires vector constant"
 msgstr ""
 
-#: config/i386/i386.c:33873
+#: config/i386/i386.c:33436
 #, gcc-internal-format
 msgid "invalid vector permutation constant"
 msgstr ""
 
-#: config/i386/i386.c:33921
+#: config/i386/i386.c:33484
 #, gcc-internal-format, gfc-internal-format
 msgid "vector permutation (%d %d)"
 msgstr ""
 
-#: config/i386/i386.c:33924
+#: config/i386/i386.c:33487
 #, gcc-internal-format, gfc-internal-format
 msgid "vector permutation (%d %d %d %d)"
 msgstr ""
 
-#: config/i386/i386.c:33928
+#: config/i386/i386.c:33491
 #, gcc-internal-format, gfc-internal-format
 msgid "vector permutation (%d %d %d %d %d %d %d %d)"
 msgstr ""
 
-#: config/i386/i386.c:33933
+#: config/i386/i386.c:33496
 #, gcc-internal-format, gfc-internal-format
 msgid "vector permutation (%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d)"
 msgstr ""
@@ -22808,39 +23161,39 @@
 msgid "definition of static data member %q+D of dllimport%'d class"
 msgstr ""
 
-#: config/i386/winnt.c:324
+#: config/i386/winnt.c:331
 #, gcc-internal-format
 msgid "%q+D:'selectany' attribute applies only to initialized objects"
 msgstr ""
 
-#: config/i386/winnt.c:468
+#: config/i386/winnt.c:475
 #, gcc-internal-format
 msgid "%q+D causes a section type conflict"
 msgstr ""
 
-#: config/i386/cygming.h:200
+#: config/i386/cygming.h:197
 #, gcc-internal-format
 msgid "-fPIC ignored for target (all code is position independent)"
 msgstr ""
 
-#: config/i386/cygming.h:206
+#: config/i386/cygming.h:203
 #, gcc-internal-format, gfc-internal-format
 msgid "-f%s ignored for target (all code is position independent)"
 msgstr ""
 
-#: config/i386/djgpp.h:175
+#: config/i386/djgpp.h:166
 #, gcc-internal-format
 msgid "-mbnu210 is ignored (option is obsolete)"
 msgstr ""
 
-#: config/i386/i386-interix.h:253
+#: config/i386/i386-interix.h:251
 #, gcc-internal-format
 msgid "ms-bitfields not supported for objc"
 msgstr ""
 
 #. Don't allow flag_pic to propagate since invalid relocations will
 #. result otherwise.
-#: config/i386/netware.h:83
+#: config/i386/netware.h:81
 #, gcc-internal-format
 msgid "-fPIC and -fpic are not supported for this target"
 msgstr ""
@@ -22850,74 +23203,69 @@
 msgid "malformed #pragma builtin"
 msgstr ""
 
-#: config/ia64/ia64.c:697
+#: config/ia64/ia64.c:679
 #, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr ""
 
-#: config/ia64/ia64.c:710
+#: config/ia64/ia64.c:692
 #, gcc-internal-format
 msgid "an address area attribute cannot be specified for local variables"
 msgstr ""
 
-#: config/ia64/ia64.c:717
+#: config/ia64/ia64.c:699
 #, gcc-internal-format
 msgid "address area of %q+D conflicts with previous declaration"
 msgstr ""
 
-#: config/ia64/ia64.c:725
+#: config/ia64/ia64.c:707
 #, gcc-internal-format
 msgid "address area attribute cannot be specified for functions"
 msgstr ""
 
-#: config/ia64/ia64.c:766
+#: config/ia64/ia64.c:748
 #, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr ""
 
-#: config/ia64/ia64.c:5612 config/pa/pa.c:424 config/sh/sh.c:8869
-#: config/spu/spu.c:5111
+#: config/ia64/ia64.c:5585 config/pa/pa.c:413 config/sh/sh.c:8724
+#: config/spu/spu.c:5118
 #, gcc-internal-format
 msgid "value of -mfixed-range must have form REG1-REG2"
 msgstr ""
 
-#: config/ia64/ia64.c:5639 config/pa/pa.c:451 config/sh/sh.c:8895
-#: config/spu/spu.c:5137
+#: config/ia64/ia64.c:5612 config/pa/pa.c:440 config/sh/sh.c:8750
+#: config/spu/spu.c:5144
 #, gcc-internal-format, gfc-internal-format
 msgid "%s-%s is an empty range"
 msgstr ""
 
-#: config/ia64/ia64.c:5670
-#, gcc-internal-format
-msgid "bad value %<%s%> for -mtls-size= switch"
-msgstr ""
-
-#: config/ia64/ia64.c:10959
+#: config/ia64/ia64.c:10892
 #, gcc-internal-format
 msgid "version attribute is not a string"
 msgstr ""
 
-#: config/iq2000/iq2000.c:1837
+#: config/iq2000/iq2000.c:1833
 #, gcc-internal-format, gfc-internal-format
 msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
 msgstr ""
 
-#: config/iq2000/iq2000.c:2616
+#: config/iq2000/iq2000.c:2594
 #, gcc-internal-format
 msgid "argument %qd is not a constant"
 msgstr ""
 
-#: config/iq2000/iq2000.c:2918 config/xtensa/xtensa.c:2438
+#: config/iq2000/iq2000.c:2897 config/xtensa/xtensa.c:2432
 #, gcc-internal-format
 msgid "PRINT_OPERAND_ADDRESS, null pointer"
 msgstr ""
 
-#: config/iq2000/iq2000.c:3073
+#: config/iq2000/iq2000.c:3052
 #, gcc-internal-format, gfc-internal-format
 msgid "PRINT_OPERAND: Unknown punctuation '%c'"
 msgstr ""
 
-#: config/iq2000/iq2000.c:3082 config/xtensa/xtensa.c:2292
+#: config/iq2000/iq2000.c:3061 config/xtensa/xtensa.c:2286
 #, gcc-internal-format
 msgid "PRINT_OPERAND null pointer"
 msgstr ""
@@ -22952,68 +23300,68 @@
 msgid "invalid target memregs value '%d'"
 msgstr ""
 
-#: config/m32c/m32c.c:3149
+#: config/m32c/m32c.c:3139
 #, gcc-internal-format
 msgid "%qE attribute is not supported for R8C target"
 msgstr ""
 
 #. The argument must be a constant integer.
-#: config/m32c/m32c.c:3165 config/sh/sh.c:9076 config/sh/sh.c:9182
+#: config/m32c/m32c.c:3155 config/sh/sh.c:8931 config/sh/sh.c:9037
 #, gcc-internal-format
 msgid "%qE attribute argument not an integer constant"
 msgstr ""
 
-#: config/m32c/m32c.c:3174
+#: config/m32c/m32c.c:3164
 #, gcc-internal-format
 msgid "%qE attribute argument should be between 18 to 255"
 msgstr ""
 
-#: config/m32c/m32c.c:4433
+#: config/m32c/m32c.c:4423
 #, gcc-internal-format
 msgid "%<bank_switch%> has no effect on non-interrupt functions"
 msgstr ""
 
-#: config/m32c/m32c.c:4534
+#: config/m32c/m32c.c:4527
 #, gcc-internal-format
 msgid "%<fast_interrupt%> attribute directive ignored"
 msgstr ""
 
-#: config/m32r/m32r.c:426
+#: config/m32r/m32r.c:383
 #, gcc-internal-format
 msgid "invalid argument of %qs attribute"
 msgstr ""
 
-#: config/m68k/m68k.c:601
+#: config/m68k/m68k.c:464
 #, gcc-internal-format, gfc-internal-format
 msgid "-mcpu=%s conflicts with -march=%s"
 msgstr ""
 
-#: config/m68k/m68k.c:672
+#: config/m68k/m68k.c:535
 #, gcc-internal-format
 msgid "-mpcrel -fPIC is not currently supported on selected cpu"
 msgstr ""
 
-#: config/m68k/m68k.c:734
+#: config/m68k/m68k.c:597
 #, gcc-internal-format, gfc-internal-format
 msgid "-falign-labels=%d is not supported"
 msgstr ""
 
-#: config/m68k/m68k.c:739
+#: config/m68k/m68k.c:602
 #, gcc-internal-format, gfc-internal-format
 msgid "-falign-loops=%d is not supported"
 msgstr ""
 
-#: config/m68k/m68k.c:842
+#: config/m68k/m68k.c:705
 #, gcc-internal-format
 msgid "multiple interrupt attributes not allowed"
 msgstr ""
 
-#: config/m68k/m68k.c:849
+#: config/m68k/m68k.c:712
 #, gcc-internal-format
 msgid "interrupt_thread is available only on fido"
 msgstr ""
 
-#: config/m68k/m68k.c:1178 config/rs6000/rs6000.c:19682
+#: config/m68k/m68k.c:1045 config/rs6000/rs6000.c:19157
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr ""
@@ -23093,469 +23441,458 @@
 msgid "malformed #pragma call"
 msgstr ""
 
-#: config/mep/mep.c:370
+#: config/mep/mep.c:353
 #, gcc-internal-format
 msgid "-fpic is not supported"
 msgstr ""
 
-#: config/mep/mep.c:372
+#: config/mep/mep.c:355
 #, gcc-internal-format
 msgid "-fPIC is not supported"
 msgstr ""
 
-#: config/mep/mep.c:374
+#: config/mep/mep.c:357
 #, gcc-internal-format
 msgid "only one of -ms and -mm may be given"
 msgstr ""
 
-#: config/mep/mep.c:376
+#: config/mep/mep.c:359
 #, gcc-internal-format
 msgid "only one of -ms and -ml may be given"
 msgstr ""
 
-#: config/mep/mep.c:378
+#: config/mep/mep.c:361
 #, gcc-internal-format
 msgid "only one of -mm and -ml may be given"
 msgstr ""
 
-#: config/mep/mep.c:380
+#: config/mep/mep.c:363
 #, gcc-internal-format
 msgid "only one of -ms and -mtiny= may be given"
 msgstr ""
 
-#: config/mep/mep.c:382
+#: config/mep/mep.c:365
 #, gcc-internal-format
 msgid "only one of -mm and -mtiny= may be given"
 msgstr ""
 
-#: config/mep/mep.c:384
+#: config/mep/mep.c:367
 #, gcc-internal-format
 msgid "-mclip currently has no effect without -mminmax"
 msgstr ""
 
-#: config/mep/mep.c:391
+#: config/mep/mep.c:374
 #, gcc-internal-format
 msgid "-mc= must be -mc=tiny, -mc=near, or -mc=far"
 msgstr ""
 
-#: config/mep/mep.c:1518
+#: config/mep/mep.c:1502
 #, gcc-internal-format
 msgid "unusual TP-relative address"
 msgstr ""
 
-#: config/mep/mep.c:3490
+#: config/mep/mep.c:3474
 #, gcc-internal-format
 msgid "unconvertible operand %c %qs"
 msgstr ""
 
-#: config/mep/mep.c:3940 config/mep/mep.c:4003
+#: config/mep/mep.c:3927 config/mep/mep.c:3990
 #, gcc-internal-format
 msgid "address region attributes not allowed with auto storage class"
 msgstr ""
 
-#: config/mep/mep.c:3946 config/mep/mep.c:4009
+#: config/mep/mep.c:3933 config/mep/mep.c:3996
 #, gcc-internal-format
 msgid "address region attributes on pointed-to types ignored"
 msgstr ""
 
-#: config/mep/mep.c:3995
+#: config/mep/mep.c:3982
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables and functions"
 msgstr ""
 
-#: config/mep/mep.c:4015 config/mep/mep.c:4329
+#: config/mep/mep.c:4002 config/mep/mep.c:4318
 #, gcc-internal-format
 msgid "duplicate address region attribute %qE in declaration of %qE on line %d"
 msgstr ""
 
-#: config/mep/mep.c:4049
+#: config/mep/mep.c:4036
 #, gcc-internal-format
 msgid "cannot inline interrupt function %qE"
 msgstr ""
 
-#: config/mep/mep.c:4055
+#: config/mep/mep.c:4042
 #, gcc-internal-format
 msgid "interrupt function must have return type of void"
 msgstr ""
 
-#: config/mep/mep.c:4060
+#: config/mep/mep.c:4047
 #, gcc-internal-format
 msgid "interrupt function must have no arguments"
 msgstr ""
 
-#: config/mep/mep.c:4081
+#: config/mep/mep.c:4068
 #, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
 msgstr ""
 
-#: config/mep/mep.c:4114
+#: config/mep/mep.c:4101
 #, gcc-internal-format
 msgid "%qE attribute only applies to functions, not %s"
 msgstr ""
 
-#: config/mep/mep.c:4124
-#, gcc-internal-format
-msgid "to describe a pointer to a VLIW function, use syntax like this:"
+#: config/mep/mep.c:4112
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"to describe a pointer to a VLIW function, use syntax like this:\n"
+"%s"
 msgstr ""
 
-#: config/mep/mep.c:4125
-#, gcc-internal-format
-msgid "  typedef int (__vliw *vfuncptr) ();"
+#: config/mep/mep.c:4121
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"to describe an array of VLIW function pointers, use syntax like this:\n"
+"%s"
 msgstr ""
 
-#: config/mep/mep.c:4132
-#, gcc-internal-format
-msgid "to describe an array of VLIW function pointers, use syntax like this:"
-msgstr ""
-
-#: config/mep/mep.c:4133
-#, gcc-internal-format
-msgid "  typedef int (__vliw *vfuncptr[]) ();"
-msgstr ""
-
-#: config/mep/mep.c:4138
+#: config/mep/mep.c:4127
 #, gcc-internal-format
 msgid "VLIW functions are not allowed without a VLIW configuration"
 msgstr ""
 
-#: config/mep/mep.c:4288
+#: config/mep/mep.c:4277
 #, gcc-internal-format, gfc-internal-format
 msgid "\"#pragma disinterrupt %s\" not used"
 msgstr ""
 
-#: config/mep/mep.c:4454
+#: config/mep/mep.c:4443
 #, gcc-internal-format
 msgid "__io address 0x%x is the same for %qE and %qE"
 msgstr ""
 
-#: config/mep/mep.c:4602
+#: config/mep/mep.c:4591
 #, gcc-internal-format, gfc-internal-format
 msgid "variable %s (%ld bytes) is too large for the %s section (%d bytes)"
 msgstr ""
 
-#: config/mep/mep.c:4700
+#: config/mep/mep.c:4689
 #, gcc-internal-format
 msgid "variable %D of type %<io%> must be uninitialized"
 msgstr ""
 
-#: config/mep/mep.c:4705
+#: config/mep/mep.c:4694
 #, gcc-internal-format
 msgid "variable %D of type %<cb%> must be uninitialized"
 msgstr ""
 
-#: config/mep/mep.c:6155
+#: config/mep/mep.c:6144
 #, gcc-internal-format
 msgid "coprocessor intrinsic %qs is not available in this configuration"
 msgstr ""
 
-#: config/mep/mep.c:6158
+#: config/mep/mep.c:6147
 #, gcc-internal-format
 msgid "%qs is not available in VLIW functions"
 msgstr ""
 
-#: config/mep/mep.c:6161
+#: config/mep/mep.c:6150
 #, gcc-internal-format
 msgid "%qs is not available in non-VLIW functions"
 msgstr ""
 
-#: config/mep/mep.c:6323 config/mep/mep.c:6440
+#: config/mep/mep.c:6312 config/mep/mep.c:6429
 #, gcc-internal-format
 msgid "argument %d of %qE must be in the range %d...%d"
 msgstr ""
 
-#: config/mep/mep.c:6326
+#: config/mep/mep.c:6315
 #, gcc-internal-format
 msgid "argument %d of %qE must be a multiple of %d"
 msgstr ""
 
-#: config/mep/mep.c:6379
+#: config/mep/mep.c:6368
 #, gcc-internal-format
 msgid "too few arguments to %qE"
 msgstr ""
 
-#: config/mep/mep.c:6384
+#: config/mep/mep.c:6373
 #, gcc-internal-format
 msgid "too many arguments to %qE"
 msgstr ""
 
-#: config/mep/mep.c:6402
+#: config/mep/mep.c:6391
 #, gcc-internal-format
 msgid "argument %d of %qE must be an address"
 msgstr ""
 
-#: config/mep/mep.c:7198
+#: config/mep/mep.c:7187
 #, gcc-internal-format
 msgid "2 byte cop instructions are not allowed in 64-bit VLIW mode"
 msgstr ""
 
-#: config/mep/mep.c:7204
+#: config/mep/mep.c:7193
 #, gcc-internal-format, gfc-internal-format
 msgid "unexpected %d byte cop instruction"
 msgstr ""
 
-#: config/microblaze/microblaze.c:1297
+#: config/microblaze/microblaze.c:1304
 #, gcc-internal-format
 msgid "%qs is an invalid argument to -mcpu="
 msgstr ""
 
-#: config/microblaze/microblaze.c:1346
+#: config/microblaze/microblaze.c:1353
 #, gcc-internal-format
 msgid "-mxl-multiply-high can be used only with -mcpu=v6.00.a or greater"
 msgstr ""
 
-#: config/microblaze/microblaze.c:1350
+#: config/microblaze/microblaze.c:1357
 #, gcc-internal-format
 msgid "-mxl-multiply-high requires -mno-xl-soft-mul"
 msgstr ""
 
-#: config/mips/mips.c:1372 config/mips/mips.c:1374
+#: config/mips/mips.c:1244 config/mips/mips.c:1246
 #, gcc-internal-format
 msgid "%qs attribute only applies to functions"
 msgstr ""
 
-#: config/mips/mips.c:1384
+#: config/mips/mips.c:1256
 #, gcc-internal-format
 msgid "%qE cannot have both %<mips16%> and %<nomips16%> attributes"
 msgstr ""
 
-#: config/mips/mips.c:1406 config/mips/mips.c:1409
+#: config/mips/mips.c:1278 config/mips/mips.c:1281
 #, gcc-internal-format
 msgid "%qE redeclared with conflicting %qs attributes"
 msgstr ""
 
-#: config/mips/mips.c:2923
+#: config/mips/mips.c:2803
 #, gcc-internal-format
 msgid "MIPS16 TLS"
 msgstr ""
 
-#: config/mips/mips.c:6414
+#: config/mips/mips.c:6340
 #, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr ""
 
-#: config/mips/mips.c:9229
+#: config/mips/mips.c:9160
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor"
 msgstr ""
 
-#: config/mips/mips.c:9231
+#: config/mips/mips.c:9162
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires %<-msoft-float%>"
 msgstr ""
 
-#: config/mips/mips.c:9233
+#: config/mips/mips.c:9164
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr ""
 
-#: config/mips/mips.c:13216
+#: config/mips/mips.c:13124
 #, gcc-internal-format
 msgid "invalid argument to built-in function"
 msgstr ""
 
-#: config/mips/mips.c:13457
+#: config/mips/mips.c:13324
 #, gcc-internal-format
 msgid "built-in function %qE not supported for MIPS16"
 msgstr ""
 
-#: config/mips/mips.c:14047
+#: config/mips/mips.c:13914
 #, gcc-internal-format
 msgid "%qs does not support MIPS16 code"
 msgstr ""
 
-#: config/mips/mips.c:15268
+#: config/mips/mips.c:15157
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.c:15271
+#: config/mips/mips.c:15160
 #, gcc-internal-format
 msgid "MIPS16 -mxgot code"
 msgstr ""
 
-#: config/mips/mips.c:15274
+#: config/mips/mips.c:15163
 #, gcc-internal-format
 msgid "hard-float MIPS16 code for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.c:15410
-#, gcc-internal-format
-msgid "CPU names must be lower case"
-msgstr ""
-
-#: config/mips/mips.c:15571
+#: config/mips/mips.c:15353
 #, gcc-internal-format
 msgid ""
 "%<-%s%> conflicts with the other architecture options, which specify a %s "
 "processor"
 msgstr ""
 
-#: config/mips/mips.c:15587
+#: config/mips/mips.c:15363
 #, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr ""
 
-#: config/mips/mips.c:15602
+#: config/mips/mips.c:15378
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr ""
 
-#: config/mips/mips.c:15604
+#: config/mips/mips.c:15380
 #, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr ""
 
-#: config/mips/mips.c:15606
+#: config/mips/mips.c:15382
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr ""
 
-#: config/mips/mips.c:15622 config/mips/mips.c:15624 config/mips/mips.c:15691
+#: config/mips/mips.c:15398 config/mips/mips.c:15400 config/mips/mips.c:15467
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr ""
 
-#: config/mips/mips.c:15628
+#: config/mips/mips.c:15404
 #, gcc-internal-format
 msgid ""
 "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the "
 "mfhc1 and mthc1 instructions"
 msgstr ""
 
-#: config/mips/mips.c:15631
+#: config/mips/mips.c:15407
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr ""
 
-#: config/mips/mips.c:15685
+#: config/mips/mips.c:15461
 #, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr ""
 
-#: config/mips/mips.c:15725
+#: config/mips/mips.c:15501
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.c:15733 config/mips/mips.c:15736
+#: config/mips/mips.c:15509 config/mips/mips.c:15512
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr ""
 
-#: config/mips/mips.c:15750
+#: config/mips/mips.c:15526
 #, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr ""
 
-#: config/mips/mips.c:15759
+#: config/mips/mips.c:15535
 #, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr ""
 
-#: config/mips/mips.c:15766
+#: config/mips/mips.c:15542
 #, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr ""
 
-#: config/mips/mips.c:15772
+#: config/mips/mips.c:15548
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr ""
 
-#: config/mips/mips.c:15877
+#: config/mips/mips.c:15653
 #, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr ""
 
-#: config/mips/mips.c:15881
+#: config/mips/mips.c:15657
 #, gcc-internal-format
 msgid "the %qs architecture does not support the synci instruction"
 msgstr ""
 
-#: config/mips/mips.c:16353
+#: config/mips/mips.c:16122
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr ""
 
-#: config/mmix/mmix.c:286
+#: config/mmix/mmix.c:276
 #, gcc-internal-format, gfc-internal-format
 msgid "-f%s not supported: ignored"
 msgstr ""
 
-#: config/mmix/mmix.c:773
+#: config/mmix/mmix.c:768
 #, gcc-internal-format
 msgid "support for mode %qs"
 msgstr ""
 
-#: config/mmix/mmix.c:787
+#: config/mmix/mmix.c:782
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "too large function value type, needs %d registers, have only %d registers "
 "for this"
 msgstr ""
 
-#: config/mmix/mmix.c:966
+#: config/mmix/mmix.c:961
 #, gcc-internal-format
 msgid "function_profiler support for MMIX"
 msgstr ""
 
-#: config/mmix/mmix.c:988
+#: config/mmix/mmix.c:985
 #, gcc-internal-format
 msgid "MMIX Internal: Last named vararg would not fit in a register"
 msgstr ""
 
-#: config/mmix/mmix.c:1597 config/mmix/mmix.c:1621 config/mmix/mmix.c:1737
+#: config/mmix/mmix.c:1594 config/mmix/mmix.c:1618 config/mmix/mmix.c:1734
 #, gcc-internal-format, gfc-internal-format
 msgid "MMIX Internal: Bad register: %d"
 msgstr ""
 
 #. Presumably there's a missing case above if we get here.
-#: config/mmix/mmix.c:1729
+#: config/mmix/mmix.c:1726
 #, gcc-internal-format
 msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
 msgstr ""
 
-#: config/mmix/mmix.c:2015
+#: config/mmix/mmix.c:2012
 #, gcc-internal-format
 msgid "stack frame not a multiple of 8 bytes: %wd"
 msgstr ""
 
-#: config/mmix/mmix.c:2249
+#: config/mmix/mmix.c:2246
 #, gcc-internal-format
 msgid "stack frame not a multiple of octabyte: %wd"
 msgstr ""
 
-#: config/mmix/mmix.c:2533 config/mmix/mmix.c:2597
+#: config/mmix/mmix.c:2530 config/mmix/mmix.c:2594
 #, gcc-internal-format, gfc-internal-format
 msgid "MMIX Internal: %s is not a shiftable int"
 msgstr ""
 
-#: config/mn10300/mn10300.c:149
+#: config/mn10300/mn10300.c:111
 #, gcc-internal-format
 msgid "-mtune= expects mn10300, am33, am33-2, or am34"
 msgstr ""
 
-#: config/pa/pa.c:543
+#: config/pa/pa.c:497
 #, gcc-internal-format
 msgid "PIC code generation is not supported in the portable runtime model"
 msgstr ""
 
-#: config/pa/pa.c:548
+#: config/pa/pa.c:502
 #, gcc-internal-format
 msgid "PIC code generation is not compatible with fast indirect calls"
 msgstr ""
 
-#: config/pa/pa.c:553
+#: config/pa/pa.c:507
 #, gcc-internal-format
 msgid "-g is only supported when using GAS on this processor,"
 msgstr ""
 
-#: config/pa/pa.c:554
+#: config/pa/pa.c:508
 #, gcc-internal-format
 msgid "-g option disabled"
 msgstr ""
 
-#: config/pa/pa.c:8658
+#: config/pa/pa.c:8573
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "alignment (%u) for %s exceeds maximum alignment for global common data.  "
@@ -23567,98 +23904,98 @@
 msgid "-munix=98 option required for C89 Amendment 1 features.\n"
 msgstr ""
 
-#: config/picochip/picochip.c:438
+#: config/picochip/picochip.c:421
 #, gcc-internal-format, gfc-internal-format
 msgid "invalid AE type specified (%s)"
 msgstr ""
 
-#: config/picochip/picochip.c:461
+#: config/picochip/picochip.c:444
 #, gcc-internal-format, gfc-internal-format
 msgid "invalid mul type specified (%s) - expected mac, mul or none"
 msgstr ""
 
-#: config/picochip/picochip.c:756
+#: config/picochip/picochip.c:738
 #, gcc-internal-format, gfc-internal-format
 msgid "unexpected mode %s encountered in picochip_emit_save_register"
 msgstr ""
 
-#: config/picochip/picochip.c:923
+#: config/picochip/picochip.c:906
 #, gcc-internal-format, gfc-internal-format
 msgid "defaulting to stack for %s register creation"
 msgstr ""
 
-#: config/picochip/picochip.c:1607
+#: config/picochip/picochip.c:1591
 #, gcc-internal-format
 msgid "LCFI labels have already been deferred"
 msgstr ""
 
-#: config/picochip/picochip.c:1670
+#: config/picochip/picochip.c:1654
 #, gcc-internal-format
 msgid "LM label has already been deferred"
 msgstr ""
 
-#: config/picochip/picochip.c:1680
+#: config/picochip/picochip.c:1664
 #, gcc-internal-format
 msgid "LCFI labels have already been deferred."
 msgstr ""
 
-#: config/picochip/picochip.c:1962
+#: config/picochip/picochip.c:1939
 #, gcc-internal-format, gfc-internal-format
 msgid "picochip_asm_output_opcode - Found multiple lines in VLIW packet %s"
 msgstr ""
 
-#: config/picochip/picochip.c:2065
+#: config/picochip/picochip.c:2042
 #, gcc-internal-format
 msgid "picochip_asm_output_opcode - can%'t output unknown operator %c"
 msgstr ""
 
-#: config/picochip/picochip.c:2316 config/picochip/picochip.c:2376
+#: config/picochip/picochip.c:2293 config/picochip/picochip.c:2353
 #, gcc-internal-format
 msgid "%s: at least one operand can%'t be handled"
 msgstr ""
 
-#: config/picochip/picochip.c:2457
+#: config/picochip/picochip.c:2434
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown short branch in %s (type %d)"
 msgstr ""
 
-#: config/picochip/picochip.c:2494
+#: config/picochip/picochip.c:2471
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown long branch in %s (type %d)"
 msgstr ""
 
-#: config/picochip/picochip.c:2534 config/picochip/picochip.c:2602
+#: config/picochip/picochip.c:2511 config/picochip/picochip.c:2579
 #, gcc-internal-format, gfc-internal-format
 msgid "PUT uses port array index %d, which is out of range [%d..%d)"
 msgstr ""
 
-#: config/picochip/picochip.c:2568
+#: config/picochip/picochip.c:2545
 #, gcc-internal-format, gfc-internal-format
 msgid "GET uses port array index %d, which is out of range [%d..%d)"
 msgstr ""
 
-#: config/picochip/picochip.c:3439
+#: config/picochip/picochip.c:3424
 #, gcc-internal-format, gfc-internal-format
 msgid "too many ALU instructions emitted (%d)"
 msgstr ""
 
-#: config/picochip/picochip.c:4071 config/picochip/picochip.c:4164
+#: config/picochip/picochip.c:4056 config/picochip/picochip.c:4149
 #, gcc-internal-format, gfc-internal-format
 msgid "%s: Second source operand is not a constant"
 msgstr ""
 
-#: config/picochip/picochip.c:4074 config/picochip/picochip.c:4125
-#: config/picochip/picochip.c:4167
+#: config/picochip/picochip.c:4059 config/picochip/picochip.c:4110
+#: config/picochip/picochip.c:4152
 #, gcc-internal-format, gfc-internal-format
 msgid "%s: Third source operand is not a constant"
 msgstr ""
 
-#: config/picochip/picochip.c:4128
+#: config/picochip/picochip.c:4113
 #, gcc-internal-format, gfc-internal-format
 msgid "%s: Fourth source operand is not a constant"
 msgstr ""
 
-#: config/picochip/picochip.c:4423
+#: config/picochip/picochip.c:4411
 #, gcc-internal-format, gfc-internal-format
 msgid "%s (disable warning using -mno-inefficient-warnings)"
 msgstr ""
@@ -23722,416 +24059,330 @@
 msgid "junk at end of #pragma longcall"
 msgstr ""
 
-#: config/rs6000/rs6000-c.c:3473
+#: config/rs6000/rs6000-c.c:3476
 #, gcc-internal-format, gfc-internal-format
 msgid "%s only accepts %d arguments"
 msgstr ""
 
-#: config/rs6000/rs6000-c.c:3478
+#: config/rs6000/rs6000-c.c:3481
 #, gcc-internal-format, gfc-internal-format
 msgid "%s only accepts 1 argument"
 msgstr ""
 
-#: config/rs6000/rs6000-c.c:3483
+#: config/rs6000/rs6000-c.c:3486
 #, gcc-internal-format, gfc-internal-format
 msgid "%s only accepts 2 arguments"
 msgstr ""
 
-#: config/rs6000/rs6000-c.c:3548
+#: config/rs6000/rs6000-c.c:3551
 #, gcc-internal-format
 msgid "vec_extract only accepts 2 arguments"
 msgstr ""
 
-#: config/rs6000/rs6000-c.c:3624
+#: config/rs6000/rs6000-c.c:3627
 #, gcc-internal-format
 msgid "vec_insert only accepts 3 arguments"
 msgstr ""
 
-#: config/rs6000/rs6000-c.c:3727
+#: config/rs6000/rs6000-c.c:3730
 #, gcc-internal-format
 msgid "passing arg %d of %qE discards qualifiers frompointer target type"
 msgstr ""
 
-#: config/rs6000/rs6000-c.c:3770
+#: config/rs6000/rs6000-c.c:3773
 #, gcc-internal-format
 msgid "invalid parameter combination for AltiVec intrinsic"
 msgstr ""
 
-#: config/rs6000/rs6000.c:2533
+#: config/rs6000/rs6000.c:2370
 #, gcc-internal-format
 msgid "-mrecip requires -ffinite-math or -ffast-math"
 msgstr ""
 
-#: config/rs6000/rs6000.c:2535
+#: config/rs6000/rs6000.c:2372
 #, gcc-internal-format
 msgid "-mrecip requires -fno-trapping-math or -ffast-math"
 msgstr ""
 
-#: config/rs6000/rs6000.c:2537
+#: config/rs6000/rs6000.c:2374
 #, gcc-internal-format
 msgid "-mrecip requires -freciprocal-math or -ffast-math"
 msgstr ""
 
-#: config/rs6000/rs6000.c:2631
+#: config/rs6000/rs6000.c:2468
 #, gcc-internal-format
 msgid "-m64 requires PowerPC64 architecture, enabling"
 msgstr ""
 
-#: config/rs6000/rs6000.c:2756
-#, gcc-internal-format
-msgid "AltiVec not supported in this target"
-msgstr ""
-
-#: config/rs6000/rs6000.c:2758
-#, gcc-internal-format
-msgid "SPE not supported in this target"
-msgstr ""
-
-#: config/rs6000/rs6000.c:2785
-#, gcc-internal-format
-msgid "-mmultiple is not supported on little endian systems"
-msgstr ""
-
-#: config/rs6000/rs6000.c:2792
-#, gcc-internal-format
-msgid "-mstring is not supported on little endian systems"
-msgstr ""
-
-#: config/rs6000/rs6000.c:2898
-#, gcc-internal-format, gfc-internal-format
-msgid "unknown vectorization library ABI type (%s) for -mveclibabi= switch"
-msgstr ""
-
-#: config/rs6000/rs6000.c:2910
-#, gcc-internal-format
-msgid "target attribute or pragma changes long double size"
-msgstr ""
-
-#: config/rs6000/rs6000.c:2931 config/rs6000/rs6000.c:2946
-#, gcc-internal-format
-msgid "target attribute or pragma changes AltiVec ABI"
-msgstr ""
-
-#: config/rs6000/rs6000.c:2963
-#, gcc-internal-format
-msgid "target attribute or pragma changes darwin64 ABI"
-msgstr ""
-
-#: config/rs6000/rs6000.c:3004
-#, gcc-internal-format
-msgid "target attribute or pragma changes SPE ABI"
-msgstr ""
-
-#: config/rs6000/rs6000.c:3326
-#, gcc-internal-format
-msgid "target attribute or pragma changes single precision floating point"
-msgstr ""
-
-#: config/rs6000/rs6000.c:3329
-#, gcc-internal-format
-msgid "target attribute or pragma changes double precision floating point"
-msgstr ""
-
-#: config/rs6000/rs6000.c:3376
-#, gcc-internal-format, gfc-internal-format
-msgid "unknown option for -mrecip=%s"
-msgstr ""
-
-#: config/rs6000/rs6000.c:3843
-#, gcc-internal-format, gfc-internal-format
-msgid "unknown -m%s= option specified: '%s'"
-msgstr ""
-
-#: config/rs6000/rs6000.c:3878
-#, gcc-internal-format, gfc-internal-format
-msgid "unknown value %s for -mfpu"
-msgstr ""
-
-#: config/rs6000/rs6000.c:4273
-#, gcc-internal-format, gfc-internal-format
-msgid "invalid option for -mcmodel: '%s'"
-msgstr ""
-
-#: config/rs6000/rs6000.c:4403
-#, gcc-internal-format, gfc-internal-format
-msgid "unknown -mdebug-%s switch"
-msgstr ""
-
-#: config/rs6000/rs6000.c:4476
-#, gcc-internal-format, gfc-internal-format
-msgid "not configured for ABI: '%s'"
-msgstr ""
-
-#: config/rs6000/rs6000.c:4489
-#, gcc-internal-format
-msgid "using darwin64 ABI"
-msgstr ""
-
-#: config/rs6000/rs6000.c:4494
-#, gcc-internal-format
-msgid "using old darwin ABI"
-msgstr ""
-
-#: config/rs6000/rs6000.c:4501
-#, gcc-internal-format
-msgid "using IBM extended precision long double"
-msgstr ""
-
-#: config/rs6000/rs6000.c:4507
-#, gcc-internal-format
-msgid "using IEEE extended precision long double"
-msgstr ""
-
-#: config/rs6000/rs6000.c:4512
-#, gcc-internal-format, gfc-internal-format
-msgid "unknown ABI specified: '%s'"
-msgstr ""
-
-#: config/rs6000/rs6000.c:4521
-#, gcc-internal-format, gfc-internal-format
-msgid "bad value (%s) for -mcpu"
-msgstr ""
-
-#: config/rs6000/rs6000.c:4528
-#, gcc-internal-format, gfc-internal-format
-msgid "bad value (%s) for -mtune"
-msgstr ""
-
-#: config/rs6000/rs6000.c:4539
-#, gcc-internal-format
-msgid ""
-"unknown -mtraceback arg %qs; expecting %<full%>, %<partial%> or %<none%>"
-msgstr ""
-
-#: config/rs6000/rs6000.c:4553
-#, gcc-internal-format, gfc-internal-format
-msgid "invalid option for -mfloat-gprs: '%s'"
-msgstr ""
-
-#: config/rs6000/rs6000.c:4563
-#, gcc-internal-format, gfc-internal-format
-msgid "unknown switch -mlong-double-%s"
-msgstr ""
-
-#: config/rs6000/rs6000.c:4584
+#: config/rs6000/rs6000.c:2527
 #, gcc-internal-format
 msgid ""
 "-malign-power is not supported for 64-bit Darwin; it is incompatible with "
 "the installed C and C++ libraries"
 msgstr ""
 
-#: config/rs6000/rs6000.c:4592
+#: config/rs6000/rs6000.c:2533
+#, gcc-internal-format
+msgid "not configured for SPE ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.c:2609
+#, gcc-internal-format
+msgid "AltiVec not supported in this target"
+msgstr ""
+
+#: config/rs6000/rs6000.c:2611
+#, gcc-internal-format
+msgid "SPE not supported in this target"
+msgstr ""
+
+#: config/rs6000/rs6000.c:2638
+#, gcc-internal-format
+msgid "-mmultiple is not supported on little endian systems"
+msgstr ""
+
+#: config/rs6000/rs6000.c:2645
+#, gcc-internal-format
+msgid "-mstring is not supported on little endian systems"
+msgstr ""
+
+#: config/rs6000/rs6000.c:2751
 #, gcc-internal-format, gfc-internal-format
-msgid "unknown -malign-XXXXX option specified: '%s'"
+msgid "unknown vectorization library ABI type (%s) for -mveclibabi= switch"
 msgstr ""
 
-#: config/rs6000/rs6000.c:4599
+#: config/rs6000/rs6000.c:2763
 #, gcc-internal-format
-msgid "-msingle-float option equivalent to -mhard-float"
+msgid "target attribute or pragma changes long double size"
 msgstr ""
 
-#: config/rs6000/rs6000.c:4615
+#: config/rs6000/rs6000.c:2784 config/rs6000/rs6000.c:2799
 #, gcc-internal-format
-msgid "-msimple-fpu option ignored"
+msgid "target attribute or pragma changes AltiVec ABI"
 msgstr ""
 
-#: config/rs6000/rs6000.c:7991
+#: config/rs6000/rs6000.c:2816
+#, gcc-internal-format
+msgid "target attribute or pragma changes darwin64 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.c:2857
+#, gcc-internal-format
+msgid "target attribute or pragma changes SPE ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.c:3179
+#, gcc-internal-format
+msgid "target attribute or pragma changes single precision floating point"
+msgstr ""
+
+#: config/rs6000/rs6000.c:3182
+#, gcc-internal-format
+msgid "target attribute or pragma changes double precision floating point"
+msgstr ""
+
+#: config/rs6000/rs6000.c:3229
+#, gcc-internal-format, gfc-internal-format
+msgid "unknown option for -mrecip=%s"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7399
 #, gcc-internal-format
 msgid ""
 "GCC vector returned by reference: non-standard ABI extension with no "
 "compatibility guarantee"
 msgstr ""
 
-#: config/rs6000/rs6000.c:8129
+#: config/rs6000/rs6000.c:7536
 #, gcc-internal-format
 msgid ""
 "cannot return value in vector register because altivec instructions are "
 "disabled, use -maltivec to enable them"
 msgstr ""
 
-#: config/rs6000/rs6000.c:8473
+#: config/rs6000/rs6000.c:7879
 #, gcc-internal-format
 msgid ""
 "cannot pass argument in vector register because altivec instructions are "
 "disabled, use -maltivec to enable them"
 msgstr ""
 
-#: config/rs6000/rs6000.c:9397
+#: config/rs6000/rs6000.c:8805
 #, gcc-internal-format
 msgid ""
 "GCC vector passed by reference: non-standard ABI extension with no "
 "compatibility guarantee"
 msgstr ""
 
-#: config/rs6000/rs6000.c:10028
+#: config/rs6000/rs6000.c:9436
 #, gcc-internal-format, gfc-internal-format
 msgid "internal error: builtin function to %s already processed"
 msgstr ""
 
-#: config/rs6000/rs6000.c:10975
+#: config/rs6000/rs6000.c:10383
 #, gcc-internal-format
 msgid "argument 1 must be a 5-bit signed literal"
 msgstr ""
 
-#: config/rs6000/rs6000.c:11078 config/rs6000/rs6000.c:12096
+#: config/rs6000/rs6000.c:10486 config/rs6000/rs6000.c:11504
 #, gcc-internal-format
 msgid "argument 2 must be a 5-bit unsigned literal"
 msgstr ""
 
-#: config/rs6000/rs6000.c:11117
+#: config/rs6000/rs6000.c:10525
 #, gcc-internal-format
 msgid "argument 1 of __builtin_altivec_predicate must be a constant"
 msgstr ""
 
-#: config/rs6000/rs6000.c:11169
+#: config/rs6000/rs6000.c:10577
 #, gcc-internal-format
 msgid "argument 1 of __builtin_altivec_predicate is out of range"
 msgstr ""
 
-#: config/rs6000/rs6000.c:11426
+#: config/rs6000/rs6000.c:10834
 #, gcc-internal-format
 msgid "argument 3 must be a 4-bit unsigned literal"
 msgstr ""
 
-#: config/rs6000/rs6000.c:11444
+#: config/rs6000/rs6000.c:10852
 #, gcc-internal-format
 msgid "argument 3 must be a 2-bit unsigned literal"
 msgstr ""
 
-#: config/rs6000/rs6000.c:11456
+#: config/rs6000/rs6000.c:10864
 #, gcc-internal-format
 msgid "argument 3 must be a 1-bit unsigned literal"
 msgstr ""
 
-#: config/rs6000/rs6000.c:11639
+#: config/rs6000/rs6000.c:11047
 #, gcc-internal-format
 msgid "argument to %qs must be a 2-bit unsigned literal"
 msgstr ""
 
-#: config/rs6000/rs6000.c:11783
+#: config/rs6000/rs6000.c:11191
 #, gcc-internal-format
 msgid "unresolved overload for Altivec builtin %qF"
 msgstr ""
 
-#: config/rs6000/rs6000.c:11887
+#: config/rs6000/rs6000.c:11295
 #, gcc-internal-format
 msgid "argument to dss must be a 2-bit unsigned literal"
 msgstr ""
 
-#: config/rs6000/rs6000.c:12216
+#: config/rs6000/rs6000.c:11624
 #, gcc-internal-format
 msgid "argument 1 of __builtin_paired_predicate must be a constant"
 msgstr ""
 
-#: config/rs6000/rs6000.c:12263
+#: config/rs6000/rs6000.c:11671
 #, gcc-internal-format
 msgid "argument 1 of __builtin_paired_predicate is out of range"
 msgstr ""
 
-#: config/rs6000/rs6000.c:12288
+#: config/rs6000/rs6000.c:11696
 #, gcc-internal-format
 msgid "argument 1 of __builtin_spe_predicate must be a constant"
 msgstr ""
 
-#: config/rs6000/rs6000.c:12360
+#: config/rs6000/rs6000.c:11768
 #, gcc-internal-format
 msgid "argument 1 of __builtin_spe_predicate is out of range"
 msgstr ""
 
-#: config/rs6000/rs6000.c:13741
+#: config/rs6000/rs6000.c:13135
 #, gcc-internal-format, gfc-internal-format
 msgid "internal error: builtin function %s had no type"
 msgstr ""
 
-#: config/rs6000/rs6000.c:13748
+#: config/rs6000/rs6000.c:13142
 #, gcc-internal-format, gfc-internal-format
 msgid "internal error: builtin function %s had an unexpected return type %s"
 msgstr ""
 
-#: config/rs6000/rs6000.c:13761
+#: config/rs6000/rs6000.c:13158
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "internal error: builtin function %s, argument %d had unexpected argument "
 "type %s"
 msgstr ""
 
-#: config/rs6000/rs6000.c:19652
+#: config/rs6000/rs6000.c:19127
 #, gcc-internal-format
 msgid "stack frame too large"
 msgstr ""
 
-#: config/rs6000/rs6000.c:20176
+#: config/rs6000/rs6000.c:19651
 #, gcc-internal-format
 msgid "out-of-line save/restore routines not supported on Darwin"
 msgstr ""
 
-#: config/rs6000/rs6000.c:23048
+#: config/rs6000/rs6000.c:22524
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr ""
 
-#: config/rs6000/rs6000.c:25086
+#: config/rs6000/rs6000.c:24562
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.c:25088
+#: config/rs6000/rs6000.c:24564
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.c:25090
+#: config/rs6000/rs6000.c:24566
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.c:25092
+#: config/rs6000/rs6000.c:24568
 #, gcc-internal-format
 msgid "use of decimal floating point types in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.c:25098
+#: config/rs6000/rs6000.c:24574
 #, gcc-internal-format
 msgid ""
 "use of %<long%> in AltiVec types is invalid for 64-bit code without -mvsx"
 msgstr ""
 
-#: config/rs6000/rs6000.c:25101
+#: config/rs6000/rs6000.c:24577
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr ""
 
-#: config/rs6000/rs6000.c:25106
+#: config/rs6000/rs6000.c:24582
 #, gcc-internal-format
 msgid "use of %<long long%> in AltiVec types is invalid without -mvsx"
 msgstr ""
 
-#: config/rs6000/rs6000.c:25109
+#: config/rs6000/rs6000.c:24585
 #, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without -mvsx"
 msgstr ""
 
-#: config/rs6000/rs6000.c:27585
+#: config/rs6000/rs6000.c:27079
 #, gcc-internal-format, gfc-internal-format
 msgid "emitting microcode insn %s\t[%s] #%d"
 msgstr ""
 
-#: config/rs6000/rs6000.c:27589
+#: config/rs6000/rs6000.c:27083
 #, gcc-internal-format, gfc-internal-format
 msgid "emitting conditional microcode insn %s\t[%s] #%d"
 msgstr ""
 
-#: config/rs6000/rs6000.c:27792
+#: config/rs6000/rs6000.c:27286
 #, gcc-internal-format, gfc-internal-format
 msgid "invalid cpu \"%s\" for %s\"%s\"%s"
 msgstr ""
 
-#: config/rs6000/rs6000.c:27795
+#: config/rs6000/rs6000.c:27289
 #, gcc-internal-format, gfc-internal-format
 msgid "%s\"%s\"%s is not allowed"
 msgstr ""
 
-#: config/rs6000/rs6000.c:27797
+#: config/rs6000/rs6000.c:27291
 #, gcc-internal-format, gfc-internal-format
 msgid "%s\"%s\"%s is invalid"
 msgstr ""
@@ -24181,7 +24432,7 @@
 msgid "E500 and FPRs not supported"
 msgstr ""
 
-#: config/rs6000/eabispe.h:41 config/rs6000/linuxspe.h:41
+#: config/rs6000/eabispe.h:38 config/rs6000/linuxspe.h:38
 #, gcc-internal-format
 msgid "-m64 not supported in this configuration"
 msgstr ""
@@ -24208,7 +24459,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:1666
+#: config/rs6000/rs6000.h:1615
 #, gcc-internal-format
 msgid "RETURN_ADDRESS_OFFSET not supported"
 msgstr ""
@@ -24270,111 +24521,91 @@
 msgid "-m%s not supported in this configuration"
 msgstr ""
 
-#: config/rx/rx.c:509
+#: config/rx/rx.c:519
 #, gcc-internal-format, gfc-internal-format
 msgid "unreocgnized control register number: %d - using 'psw'"
 msgstr ""
 
-#: config/rx/rx.c:2107
+#: config/rx/rx.c:2141
 #, gcc-internal-format, gfc-internal-format
 msgid "__builtin_rx_%s takes 'C', 'Z', 'S', 'O', 'I', or 'U'"
 msgstr ""
 
-#: config/rx/rx.c:2109
+#: config/rx/rx.c:2143
 #, gcc-internal-format
 msgid "use __builtin_rx_mvtc (0, ... ) to write arbitrary values to PSW"
 msgstr ""
 
-#: config/rx/rx.c:2164 config/xtensa/xtensa.c:3129 config/xtensa/xtensa.c:3169
+#: config/rx/rx.c:2198 config/xtensa/xtensa.c:3123 config/xtensa/xtensa.c:3163
 #, gcc-internal-format
 msgid "bad builtin code"
 msgstr ""
 
-#: config/rx/rx.c:2303
-#, gcc-internal-format, gfc-internal-format
-msgid "unrecognized argument '%s' to -mcpu= option"
-msgstr ""
-
-#: config/rx/rx.c:2308
-#, gcc-internal-format
-msgid "the RX200 cpu does not have FPU hardware"
-msgstr ""
-
-#: config/rx/rx.c:2341
+#: config/rx/rx.c:2309
 #, gcc-internal-format
 msgid "RX FPU instructions do not support NaNs and infinities"
 msgstr ""
 
-#: config/s390/s390.c:1569
-#, gcc-internal-format
-msgid "stack guard value must be an exact power of 2"
-msgstr ""
-
-#: config/s390/s390.c:1574
-#, gcc-internal-format
-msgid "stack size must be an exact power of 2"
-msgstr ""
-
-#: config/s390/s390.c:1623
+#: config/s390/s390.c:1539
 #, gcc-internal-format, gfc-internal-format
 msgid "z/Architecture mode not supported on %s"
 msgstr ""
 
-#: config/s390/s390.c:1625
+#: config/s390/s390.c:1541
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr ""
 
-#: config/s390/s390.c:1632
+#: config/s390/s390.c:1548
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware decimal floating point instructions not available on %s"
 msgstr ""
 
-#: config/s390/s390.c:1635
+#: config/s390/s390.c:1551
 #, gcc-internal-format
 msgid ""
 "hardware decimal floating point instructions not available in ESA/390 mode"
 msgstr ""
 
-#: config/s390/s390.c:1645
+#: config/s390/s390.c:1561
 #, gcc-internal-format
 msgid "-mhard-dfp can%'t be used in conjunction with -msoft-float"
 msgstr ""
 
-#: config/s390/s390.c:1669
+#: config/s390/s390.c:1585
 #, gcc-internal-format
 msgid ""
 "-mbackchain -mpacked-stack -mhard-float are not supported in combination"
 msgstr ""
 
-#: config/s390/s390.c:1675
+#: config/s390/s390.c:1591
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr ""
 
-#: config/s390/s390.c:1677
+#: config/s390/s390.c:1593
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr ""
 
-#: config/s390/s390.c:1680
+#: config/s390/s390.c:1596
 #, gcc-internal-format
 msgid "-mstack-guard implies use of -mstack-size"
 msgstr ""
 
-#: config/s390/s390.c:7418
+#: config/s390/s390.c:7342
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr ""
 
-#: config/s390/s390.c:8119
+#: config/s390/s390.c:8043
 #, gcc-internal-format
 msgid ""
 "frame size of function %qs is %wd bytes exceeding user provided stack limit "
 "of %d bytes.  An unconditional trap is added."
 msgstr ""
 
-#: config/s390/s390.c:8134
+#: config/s390/s390.c:8058
 #, gcc-internal-format
 msgid ""
 "frame size of function %qs is %wd bytes which is more than half the stack "
@@ -24382,81 +24613,81 @@
 "function."
 msgstr ""
 
-#: config/s390/s390.c:8162
+#: config/s390/s390.c:8086
 #, gcc-internal-format
 msgid "frame size of %qs is %wd bytes"
 msgstr ""
 
-#: config/s390/s390.c:8166
+#: config/s390/s390.c:8090
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr ""
 
-#: config/sh/sh.c:947
+#: config/sh/sh.c:772
 #, gcc-internal-format
 msgid "ignoring -fschedule-insns because of exception handling bug"
 msgstr ""
 
-#: config/sh/sh.c:968
+#: config/sh/sh.c:793
 #, gcc-internal-format
 msgid ""
 "unwind tables currently require either a frame pointer or -maccumulate-"
 "outgoing-args for correctness"
 msgstr ""
 
-#: config/sh/sh.c:7800
+#: config/sh/sh.c:7641
 #, gcc-internal-format
 msgid "__builtin_saveregs not supported by this subtarget"
 msgstr ""
 
-#: config/sh/sh.c:8957
+#: config/sh/sh.c:8812
 #, gcc-internal-format
 msgid "%qE attribute only applies to interrupt functions"
 msgstr ""
 
-#: config/sh/sh.c:9015
+#: config/sh/sh.c:8870
 #, gcc-internal-format
 msgid "%qE attribute is supported only for SH2A"
 msgstr ""
 
-#: config/sh/sh.c:9045
+#: config/sh/sh.c:8900
 #, gcc-internal-format
 msgid "attribute interrupt_handler is not compatible with -m5-compact"
 msgstr ""
 
-#: config/sh/sh.c:9062
+#: config/sh/sh.c:8917
 #, gcc-internal-format
 msgid "%qE attribute only applies to SH2A"
 msgstr ""
 
-#: config/sh/sh.c:9084
+#: config/sh/sh.c:8939
 #, gcc-internal-format
 msgid "%qE attribute argument should be between 0 to 255"
 msgstr ""
 
 #. The argument must be a constant string.
-#: config/sh/sh.c:9157
+#: config/sh/sh.c:9012
 #, gcc-internal-format
 msgid "%qE attribute argument not a string constant"
 msgstr ""
 
-#: config/sh/sh.c:11733
+#: config/sh/sh.c:11592
 #, gcc-internal-format
 msgid "r0 needs to be available as a call-clobbered register"
 msgstr ""
 
-#: config/sh/sh.c:11754
+#: config/sh/sh.c:11613
 #, gcc-internal-format
 msgid "need a second call-clobbered general purpose register"
 msgstr ""
 
-#: config/sh/sh.c:11762
+#: config/sh/sh.c:11621
 #, gcc-internal-format
 msgid "need a call-clobbered target register"
 msgstr ""
 
 #. FIXME
-#: config/sh/netbsd-elf.h:94
+#: config/sh/netbsd-elf.h:75
 #, gcc-internal-format
 msgid "unimplemented-shmedia profiling"
 msgstr ""
@@ -24467,26 +24698,31 @@
 msgid "-mrelax is only supported for RTP PIC"
 msgstr ""
 
-#: config/sparc/sparc.c:805
+#: config/sparc/sparc.c:768
 #, gcc-internal-format, gfc-internal-format
 msgid "%s is not supported by this configuration"
 msgstr ""
 
-#: config/sparc/sparc.c:812
+#: config/sparc/sparc.c:775
 #, gcc-internal-format
 msgid "-mlong-double-64 not allowed with -m64"
 msgstr ""
 
-#: config/sparc/sparc.c:832
+#: config/sparc/sparc.c:795
 #, gcc-internal-format, gfc-internal-format
 msgid "bad value (%s) for -mcmodel= switch"
 msgstr ""
 
-#: config/sparc/sparc.c:837
+#: config/sparc/sparc.c:800
 #, gcc-internal-format
 msgid "-mcmodel= is not supported on 32 bit systems"
 msgstr ""
 
+#: config/sparc/sparc.c:807
+#, gcc-internal-format
+msgid "-fcall-saved-REG is not supported for out registers"
+msgstr ""
+
 #: config/spu/spu-c.c:135
 #, gcc-internal-format, gfc-internal-format
 msgid "insufficient arguments to overloaded function %s"
@@ -24502,37 +24738,37 @@
 msgid "parameter list does not match a valid signature for %s()"
 msgstr ""
 
-#: config/spu/spu.c:551
+#: config/spu/spu.c:552
 #, gcc-internal-format, gfc-internal-format
 msgid "bad value (%s) for -march= switch"
 msgstr ""
 
-#: config/spu/spu.c:562
+#: config/spu/spu.c:563
 #, gcc-internal-format, gfc-internal-format
 msgid "bad value (%s) for -mtune= switch"
 msgstr ""
 
-#: config/spu/spu.c:5391 config/spu/spu.c:5394
+#: config/spu/spu.c:5398 config/spu/spu.c:5401
 #, gcc-internal-format
 msgid "creating run-time relocation for %qD"
 msgstr ""
 
-#: config/spu/spu.c:5399 config/spu/spu.c:5401
+#: config/spu/spu.c:5406 config/spu/spu.c:5408
 #, gcc-internal-format
 msgid "creating run-time relocation"
 msgstr ""
 
-#: config/spu/spu.c:6473
+#: config/spu/spu.c:6480
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects an integer literal in the range [%d, %d]"
 msgstr ""
 
-#: config/spu/spu.c:6493
+#: config/spu/spu.c:6500
 #, gcc-internal-format
 msgid "%s expects an integer literal in the range [%d, %d]. (%wd)"
 msgstr ""
 
-#: config/spu/spu.c:6522
+#: config/spu/spu.c:6529
 #, gcc-internal-format, gfc-internal-format
 msgid "%d least significant bits of %s are ignored"
 msgstr ""
@@ -24547,22 +24783,22 @@
 msgid "function_profiler support"
 msgstr ""
 
-#: config/stormy16/stormy16.c:1279
+#: config/stormy16/stormy16.c:1283
 #, gcc-internal-format
 msgid "cannot use va_start in interrupt function"
 msgstr ""
 
-#: config/stormy16/stormy16.c:1846
+#: config/stormy16/stormy16.c:1850
 #, gcc-internal-format, gfc-internal-format
 msgid "switch statement of size %lu entries too large"
 msgstr ""
 
-#: config/stormy16/stormy16.c:2218
+#: config/stormy16/stormy16.c:2222
 #, gcc-internal-format
 msgid "%<__BELOW100__%> attribute only applies to variables"
 msgstr ""
 
-#: config/stormy16/stormy16.c:2225
+#: config/stormy16/stormy16.c:2229
 #, gcc-internal-format
 msgid "__BELOW100__ attribute not allowed with auto storage class"
 msgstr ""
@@ -24637,579 +24873,598 @@
 msgid "junk at end of #pragma ghs endzda"
 msgstr ""
 
-#: config/v850/v850.c:93
-#, gcc-internal-format
-msgid "value passed in %qs is too large"
-msgstr ""
-
-#: config/v850/v850.c:2175
+#: config/v850/v850.c:2093
 #, gcc-internal-format
 msgid "data area attributes cannot be specified for local variables"
 msgstr ""
 
-#: config/v850/v850.c:2186
+#: config/v850/v850.c:2104
 #, gcc-internal-format
 msgid "data area of %q+D conflicts with previous declaration"
 msgstr ""
 
-#: config/v850/v850.c:2317
+#: config/v850/v850.c:2235
 #, gcc-internal-format, gfc-internal-format
 msgid "bogus JR construction: %d"
 msgstr ""
 
-#: config/v850/v850.c:2335 config/v850/v850.c:2442
+#: config/v850/v850.c:2253 config/v850/v850.c:2360
 #, gcc-internal-format, gfc-internal-format
 msgid "bad amount of stack space removal: %d"
 msgstr ""
 
-#: config/v850/v850.c:2422
+#: config/v850/v850.c:2340
 #, gcc-internal-format, gfc-internal-format
 msgid "bogus JARL construction: %d"
 msgstr ""
 
-#: config/v850/v850.c:2719
+#: config/v850/v850.c:2637
 #, gcc-internal-format, gfc-internal-format
 msgid "bogus DISPOSE construction: %d"
 msgstr ""
 
-#: config/v850/v850.c:2738
+#: config/v850/v850.c:2656
 #, gcc-internal-format, gfc-internal-format
 msgid "too much stack space to dispose of: %d"
 msgstr ""
 
-#: config/v850/v850.c:2840
+#: config/v850/v850.c:2758
 #, gcc-internal-format, gfc-internal-format
 msgid "bogus PREPEARE construction: %d"
 msgstr ""
 
-#: config/v850/v850.c:2857
+#: config/v850/v850.c:2775
 #, gcc-internal-format, gfc-internal-format
 msgid "too much stack space to prepare: %d"
 msgstr ""
 
-#: config/xtensa/xtensa.c:2178
+#: config/xtensa/xtensa.c:2172
 #, gcc-internal-format
 msgid "boolean registers required for the floating-point option"
 msgstr ""
 
-#: config/xtensa/xtensa.c:2213
+#: config/xtensa/xtensa.c:2207
 #, gcc-internal-format, gfc-internal-format
 msgid "-f%s is not supported with CONST16 instructions"
 msgstr ""
 
-#: config/xtensa/xtensa.c:2220
+#: config/xtensa/xtensa.c:2214
 #, gcc-internal-format
 msgid "PIC is required but not supported with CONST16 instructions"
 msgstr ""
 
-#: config/xtensa/xtensa.c:3299
+#: config/xtensa/xtensa.c:3293
 #, gcc-internal-format
 msgid "only uninitialized variables can be placed in a .bss section"
 msgstr ""
 
-#: ada/gcc-interface/misc.c:137
+#: ada/gcc-interface/misc.c:130
 #, gcc-internal-format
 msgid "%<-gnat%> misspelled as %<-gant%>"
 msgstr ""
 
-#: ada/gcc-interface/misc.c:239
+#: ada/gcc-interface/misc.c:231
 #, gcc-internal-format
 msgid "-fexcess-precision=standard for Ada"
 msgstr ""
 
-#: ada/gcc-interface/utils.c:5095 ada/gcc-interface/utils.c:5273
-#: ada/gcc-interface/utils.c:5315 ada/gcc-interface/utils.c:5375
+#: ada/gcc-interface/utils.c:5162 ada/gcc-interface/utils.c:5337
+#: ada/gcc-interface/utils.c:5379 ada/gcc-interface/utils.c:5433
 #, gcc-internal-format
 msgid "%qs attribute ignored"
 msgstr ""
 
-#: ada/gcc-interface/utils.c:5213
+#: ada/gcc-interface/utils.c:5280
 #, gcc-internal-format
 msgid "%qs attribute requires prototypes with named arguments"
 msgstr ""
 
-#: ada/gcc-interface/utils.c:5225
+#: ada/gcc-interface/utils.c:5289
 #, gcc-internal-format
 msgid "%qs attribute only applies to variadic functions"
 msgstr ""
 
-#: ada/gcc-interface/utils.c:5296
+#: ada/gcc-interface/utils.c:5360
 #, gcc-internal-format
 msgid "%qE attribute has no effect"
 msgstr ""
 
-#: ada/gcc-interface/utils.c:5408
+#: ada/gcc-interface/utils.c:5466
 #, gcc-internal-format
 msgid "invalid vector type for attribute %qs"
 msgstr ""
 
-#: ada/gcc-interface/utils.c:5471
+#: ada/gcc-interface/utils.c:5529
 #, gcc-internal-format
 msgid "attribute %qs applies to array types only"
 msgstr ""
 
-#: ada/gcc-interface/utils.c:5498
+#: ada/gcc-interface/utils.c:5556
 #, gcc-internal-format
 msgid "invalid element type for attribute %qs"
 msgstr ""
 
 #. Conversion of implicit `this' argument failed.
-#: cp/call.c:2960
+#: cp/call.c:3102
 #, gcc-internal-format
 msgid "  no known conversion for implicit %<this%> parameter from %qT to %qT"
 msgstr ""
 
-#: cp/call.c:2964
+#: cp/call.c:3106
 #, gcc-internal-format
 msgid "  no known conversion for argument %d from %qT to %qT"
 msgstr ""
 
-#: cp/call.c:2986
+#: cp/call.c:3128
 #, gcc-internal-format
 msgid "%s%D(%T, %T, %T) <built-in>"
 msgstr ""
 
-#: cp/call.c:2991
+#: cp/call.c:3133
 #, gcc-internal-format
 msgid "%s%D(%T, %T) <built-in>"
 msgstr ""
 
-#: cp/call.c:2995
+#: cp/call.c:3137
 #, gcc-internal-format
 msgid "%s%D(%T) <built-in>"
 msgstr ""
 
-#: cp/call.c:2999
+#: cp/call.c:3141
 #, gcc-internal-format
 msgid "%s%T <conversion>"
 msgstr ""
 
-#: cp/call.c:3001
+#: cp/call.c:3143
 #, gcc-internal-format
 msgid "%s%#D <near match>"
 msgstr ""
 
-#: cp/call.c:3003
+#: cp/call.c:3145
 #, gcc-internal-format
 msgid "%s%#D <deleted>"
 msgstr ""
 
-#: cp/call.c:3005
+#: cp/call.c:3147
 #, gcc-internal-format
 msgid "%s%#D"
 msgstr ""
 
-#: cp/call.c:3015
+#: cp/call.c:3157
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/call.c:3349
+#: cp/call.c:3168
+#, gcc-internal-format
+msgid ""
+"  return type %qT of explicit conversion function cannot be converted to %qT "
+"with a qualification conversion"
+msgstr ""
+
+#: cp/call.c:3512
 #, gcc-internal-format
 msgid "conversion from %qT to %qT is ambiguous"
 msgstr ""
 
-#: cp/call.c:3454
+#: cp/call.c:3629
 #, gcc-internal-format
 msgid ""
 "conversion from %qT to %qT not considered for non-type template argument"
 msgstr ""
 
-#: cp/call.c:3564
+#: cp/call.c:3747
 #, gcc-internal-format
 msgid "no matching function for call to %<%D(%A)%>"
 msgstr ""
 
-#: cp/call.c:3567
+#: cp/call.c:3750
 #, gcc-internal-format
 msgid "call of overloaded %<%D(%A)%> is ambiguous"
 msgstr ""
 
 #. It's no good looking for an overloaded operator() on a
 #. pointer-to-member-function.
-#: cp/call.c:3757
+#: cp/call.c:3949
 #, gcc-internal-format
 msgid ""
 "pointer-to-member function %E cannot be called without an object; consider "
 "using .* or ->*"
 msgstr ""
 
-#: cp/call.c:3829
+#: cp/call.c:4021
 #, gcc-internal-format
 msgid "no match for call to %<(%T) (%A)%>"
 msgstr ""
 
-#: cp/call.c:3842
+#: cp/call.c:4034
 #, gcc-internal-format
 msgid "call of %<(%T) (%A)%> is ambiguous"
 msgstr ""
 
-#: cp/call.c:3884
+#: cp/call.c:4088
 #, gcc-internal-format
 msgid "ambiguous overload for ternary %<operator?:%> in %<%E ? %E : %E%>"
 msgstr ""
 
-#: cp/call.c:3887
+#: cp/call.c:4091
 #, gcc-internal-format
 msgid "no match for ternary %<operator?:%> in %<%E ? %E : %E%>"
 msgstr ""
 
-#: cp/call.c:3894
+#: cp/call.c:4098
 #, gcc-internal-format
 msgid "ambiguous overload for %<operator%s%> in %<%E%s%>"
 msgstr ""
 
-#: cp/call.c:3897
+#: cp/call.c:4101
 #, gcc-internal-format
 msgid "no match for %<operator%s%> in %<%E%s%>"
 msgstr ""
 
-#: cp/call.c:3903
+#: cp/call.c:4107
 #, gcc-internal-format
 msgid "ambiguous overload for %<operator[]%> in %<%E[%E]%>"
 msgstr ""
 
-#: cp/call.c:3906
+#: cp/call.c:4110
 #, gcc-internal-format
 msgid "no match for %<operator[]%> in %<%E[%E]%>"
 msgstr ""
 
-#: cp/call.c:3913
+#: cp/call.c:4117
 #, gcc-internal-format
 msgid "ambiguous overload for %qs in %<%s %E%>"
 msgstr ""
 
-#: cp/call.c:3916
+#: cp/call.c:4120
 #, gcc-internal-format
 msgid "no match for %qs in %<%s %E%>"
 msgstr ""
 
-#: cp/call.c:3923
+#: cp/call.c:4127
 #, gcc-internal-format
 msgid "ambiguous overload for %<operator%s%> in %<%E %s %E%>"
 msgstr ""
 
-#: cp/call.c:3926
+#: cp/call.c:4130
 #, gcc-internal-format
 msgid "no match for %<operator%s%> in %<%E %s %E%>"
 msgstr ""
 
-#: cp/call.c:3930
+#: cp/call.c:4134
 #, gcc-internal-format
 msgid "ambiguous overload for %<operator%s%> in %<%s%E%>"
 msgstr ""
 
-#: cp/call.c:3933
+#: cp/call.c:4137
 #, gcc-internal-format
 msgid "no match for %<operator%s%> in %<%s%E%>"
 msgstr ""
 
-#: cp/call.c:4027
+#: cp/call.c:4231
 #, gcc-internal-format
 msgid "ISO C++ forbids omitting the middle term of a ?: expression"
 msgstr ""
 
-#: cp/call.c:4108
+#: cp/call.c:4320
 #, gcc-internal-format
 msgid ""
 "second operand to the conditional operator is of type %<void%>, but the "
 "third operand is neither a throw-expression nor of type %<void%>"
 msgstr ""
 
-#: cp/call.c:4113
+#: cp/call.c:4325
 #, gcc-internal-format
 msgid ""
 "third operand to the conditional operator is of type %<void%>, but the "
 "second operand is neither a throw-expression nor of type %<void%>"
 msgstr ""
 
-#: cp/call.c:4155 cp/call.c:4399
+#: cp/call.c:4367 cp/call.c:4611
 #, gcc-internal-format
 msgid "operands to ?: have different types %qT and %qT"
 msgstr ""
 
-#: cp/call.c:4346
+#: cp/call.c:4558
 #, gcc-internal-format
 msgid "enumeral mismatch in conditional expression: %qT vs %qT"
 msgstr ""
 
-#: cp/call.c:4357
+#: cp/call.c:4569
 #, gcc-internal-format
 msgid "enumeral and non-enumeral type in conditional expression"
 msgstr ""
 
-#: cp/call.c:4751
+#: cp/call.c:4976
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr ""
 
-#: cp/call.c:4753
+#: cp/call.c:4978
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr ""
 
-#: cp/call.c:4847
+#: cp/call.c:5072
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr ""
 
-#: cp/call.c:5091
+#: cp/call.c:5329
 #, gcc-internal-format
 msgid "non-placement deallocation function %q+D"
 msgstr ""
 
-#: cp/call.c:5092
+#: cp/call.c:5330
 #, gcc-internal-format
 msgid "selected for placement delete"
 msgstr ""
 
-#: cp/call.c:5171
+#: cp/call.c:5409
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr ""
 
-#: cp/call.c:5176
+#: cp/call.c:5414
 #, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr ""
 
-#: cp/call.c:5194
+#: cp/call.c:5432
 #, gcc-internal-format
 msgid "%q+#D is private"
 msgstr ""
 
-#: cp/call.c:5196
+#: cp/call.c:5434
 #, gcc-internal-format
 msgid "%q+#D is protected"
 msgstr ""
 
-#: cp/call.c:5198
+#: cp/call.c:5436
 #, gcc-internal-format
 msgid "%q+#D is inaccessible"
 msgstr ""
 
-#: cp/call.c:5199
+#: cp/call.c:5437
 #, gcc-internal-format
 msgid "within this context"
 msgstr ""
 
-#: cp/call.c:5247
+#: cp/call.c:5485
 #, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr ""
 
-#: cp/call.c:5251
+#: cp/call.c:5489
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr ""
 
-#: cp/call.c:5257
+#: cp/call.c:5497
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr ""
 
-#: cp/call.c:5295
+#: cp/call.c:5501
+#, gcc-internal-format
+msgid "converting %<false%> to pointer type %qT"
+msgstr ""
+
+#: cp/call.c:5539
 #, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr ""
 
-#: cp/call.c:5317 cp/cvt.c:217
+#: cp/call.c:5545
+#, gcc-internal-format
+msgid "invalid user-defined conversion from %qT to %qT"
+msgstr ""
+
+#: cp/call.c:5572 cp/cvt.c:217
 #, gcc-internal-format
 msgid "invalid conversion from %qT to %qT"
 msgstr ""
 
-#: cp/call.c:5320 cp/call.c:5507
+#: cp/call.c:5575 cp/call.c:5773
 #, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr ""
 
-#: cp/call.c:5349
+#: cp/call.c:5604
 #, gcc-internal-format
 msgid ""
 "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr ""
 
-#: cp/call.c:5409 cp/call.c:5525
+#: cp/call.c:5664 cp/call.c:5791
 #, gcc-internal-format
 msgid "  initializing argument %P of %q+D"
 msgstr ""
 
-#: cp/call.c:5522
+#: cp/call.c:5788
 #, gcc-internal-format
 msgid "cannot bind %qT lvalue to %qT"
 msgstr ""
 
-#: cp/call.c:5557
+#: cp/call.c:5823
 #, gcc-internal-format
 msgid "cannot bind bitfield %qE to %qT"
 msgstr ""
 
-#: cp/call.c:5560 cp/call.c:5578
+#: cp/call.c:5826 cp/call.c:5844
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr ""
 
-#: cp/call.c:5563
+#: cp/call.c:5829
 #, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr ""
 
-#: cp/call.c:5699
+#: cp/call.c:5943 cp/cvt.c:1635
+#, gcc-internal-format
+msgid ""
+"scoped enum %qT will not promote to an integral type in a future version of "
+"GCC"
+msgstr ""
+
+#: cp/call.c:5978
 #, gcc-internal-format
 msgid "cannot pass objects of non-trivially-copyable type %q#T through %<...%>"
 msgstr ""
 
 #. conditionally-supported behavior [expr.call] 5.2.2/7.
-#: cp/call.c:5728
+#: cp/call.c:6007
 #, gcc-internal-format
 msgid ""
 "cannot receive objects of non-trivially-copyable type %q#T through %<...%>; "
 msgstr ""
 
-#: cp/call.c:5784
+#: cp/call.c:6063
 #, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr ""
 
-#: cp/call.c:5792
+#: cp/call.c:6071
 #, gcc-internal-format
 msgid ""
 "call to %qD uses the default argument for parameter %P, which is not yet "
 "defined"
 msgstr ""
 
-#: cp/call.c:5911
+#: cp/call.c:6190
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/call.c:6119
+#: cp/call.c:6398
 #, gcc-internal-format
 msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
 msgstr ""
 
-#: cp/call.c:6141
+#: cp/call.c:6420
 #, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr ""
 
-#: cp/call.c:6192
+#: cp/call.c:6498
 #, gcc-internal-format
 msgid "deducing %qT as %qT"
 msgstr ""
 
-#: cp/call.c:6195
+#: cp/call.c:6501
 #, gcc-internal-format
 msgid "  in call to %q+D"
 msgstr ""
 
-#: cp/call.c:6197
+#: cp/call.c:6503
 #, gcc-internal-format
 msgid "  (you can disable this with -fno-deduce-init-list)"
 msgstr ""
 
-#: cp/call.c:6467
+#: cp/call.c:6779
 #, gcc-internal-format
 msgid "could not find class$ field in java interface type %qT"
 msgstr ""
 
-#: cp/call.c:6725
+#: cp/call.c:7037
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr ""
 
-#: cp/call.c:6770 cp/typeck.c:2546
+#: cp/call.c:7082 cp/typeck.c:2560
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr ""
 
-#: cp/call.c:6772
+#: cp/call.c:7084
 #, gcc-internal-format
 msgid "  for a function-style cast, remove the redundant %<::%D%>"
 msgstr ""
 
-#: cp/call.c:6856
+#: cp/call.c:7168
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr ""
 
-#: cp/call.c:6869
+#: cp/call.c:7181
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::%s(%A)%#V%>"
 msgstr ""
 
-#: cp/call.c:6894
+#: cp/call.c:7206
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr ""
 
-#: cp/call.c:6923
+#: cp/call.c:7235
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr ""
 
-#: cp/call.c:7631
+#: cp/call.c:7960
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr ""
 
-#: cp/call.c:7633 cp/name-lookup.c:5185
+#: cp/call.c:7962 cp/name-lookup.c:5361
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr ""
 
-#: cp/call.c:7690
+#: cp/call.c:8019
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr ""
 
-#: cp/call.c:7691
+#: cp/call.c:8020
 #, gcc-internal-format
 msgid "  for conversion from %qT to %qT"
 msgstr ""
 
-#: cp/call.c:7694
+#: cp/call.c:8023
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr ""
 
-#: cp/call.c:7812
+#: cp/call.c:8141
 #, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr ""
 
-#: cp/call.c:7815
+#: cp/call.c:8144
 #, gcc-internal-format
 msgid " candidate 1: %q+#F"
 msgstr ""
 
-#: cp/call.c:7817
+#: cp/call.c:8146
 #, gcc-internal-format
 msgid " candidate 2: %q+#F"
 msgstr ""
 
-#: cp/call.c:7858
+#: cp/call.c:8187
 #, 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:8011
+#: cp/call.c:8340
 #, gcc-internal-format
-msgid "could not convert %qE to %qT"
+msgid "could not convert %qE from %qT to %qT"
 msgstr ""
 
-#: cp/call.c:8253
+#: cp/call.c:8583
 #, gcc-internal-format
 msgid ""
 "invalid initialization of non-const reference of type %qT from an rvalue of "
 "type %qT"
 msgstr ""
 
-#: cp/call.c:8257
+#: cp/call.c:8587
 #, gcc-internal-format
 msgid ""
 "invalid initialization of reference of type %qT from expression of type %qT"
@@ -25220,383 +25475,398 @@
 msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
 msgstr ""
 
-#: cp/class.c:976
+#: cp/class.c:968
 #, gcc-internal-format
 msgid "Java class %qT cannot have a destructor"
 msgstr ""
 
-#: cp/class.c:978
+#: cp/class.c:970
 #, gcc-internal-format
 msgid "Java class %qT cannot have an implicit non-trivial destructor"
 msgstr ""
 
-#: cp/class.c:1079
+#: cp/class.c:1071
 #, gcc-internal-format
 msgid "repeated using declaration %q+D"
 msgstr ""
 
-#: cp/class.c:1081
+#: cp/class.c:1073
 #, gcc-internal-format
 msgid "using declaration %q+D conflicts with a previous using declaration"
 msgstr ""
 
-#: cp/class.c:1086
+#: cp/class.c:1078
 #, gcc-internal-format
 msgid "%q+#D cannot be overloaded"
 msgstr ""
 
-#: cp/class.c:1087
+#: cp/class.c:1079
 #, gcc-internal-format
 msgid "with %q+#D"
 msgstr ""
 
-#: cp/class.c:1154
+#: cp/class.c:1146
 #, gcc-internal-format
 msgid "conflicting access specifications for method %q+D, ignored"
 msgstr ""
 
-#: cp/class.c:1157
+#: cp/class.c:1149
 #, gcc-internal-format
 msgid "conflicting access specifications for field %qE, ignored"
 msgstr ""
 
-#: cp/class.c:1218 cp/class.c:1226
+#: cp/class.c:1210 cp/class.c:1218
 #, gcc-internal-format
 msgid "%q+D invalid in %q#T"
 msgstr ""
 
-#: cp/class.c:1219
+#: cp/class.c:1211
 #, gcc-internal-format
 msgid "  because of local method %q+#D with same name"
 msgstr ""
 
-#: cp/class.c:1227
+#: cp/class.c:1219
 #, gcc-internal-format
 msgid "  because of local member %q+#D with same name"
 msgstr ""
 
-#: cp/class.c:1280
+#: cp/class.c:1264
+#, gcc-internal-format
+msgid "cannot derive from %<final%> base %qT in derived type %qT"
+msgstr ""
+
+#: cp/class.c:1276
 #, gcc-internal-format
 msgid "base class %q#T has a non-virtual destructor"
 msgstr ""
 
-#: cp/class.c:1667
+#: cp/class.c:1663
 #, gcc-internal-format
 msgid "all member functions in class %qT are private"
 msgstr ""
 
-#: cp/class.c:1679
+#: cp/class.c:1675
 #, gcc-internal-format
 msgid "%q#T only defines a private destructor and has no friends"
 msgstr ""
 
-#: cp/class.c:1724
+#: cp/class.c:1720
 #, gcc-internal-format
 msgid "%q#T only defines private constructors and has no friends"
 msgstr ""
 
-#: cp/class.c:2117
+#: cp/class.c:2113
 #, gcc-internal-format
 msgid "no unique final overrider for %qD in %qT"
 msgstr ""
 
+#: cp/class.c:2481
+#, gcc-internal-format
+msgid "%q+#D marked final, but is not virtual"
+msgstr ""
+
+#: cp/class.c:2483
+#, gcc-internal-format
+msgid "%q+#D marked override, but does not override"
+msgstr ""
+
 #. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2546
+#: cp/class.c:2552
 #, gcc-internal-format
 msgid "%q+D was hidden"
 msgstr ""
 
-#: cp/class.c:2547
+#: cp/class.c:2553
 #, gcc-internal-format
 msgid "  by %q+D"
 msgstr ""
 
-#: cp/class.c:2590 cp/decl2.c:1343
+#: cp/class.c:2596 cp/decl2.c:1343
 #, gcc-internal-format
 msgid "%q+#D invalid; an anonymous union can only have non-static data members"
 msgstr ""
 
-#: cp/class.c:2593
+#: cp/class.c:2599
 #, gcc-internal-format
 msgid ""
 "%q+#D invalid; an anonymous struct can only have non-static data members"
 msgstr ""
 
-#: cp/class.c:2601 cp/decl2.c:1349
+#: cp/class.c:2607 cp/decl2.c:1349
 #, gcc-internal-format
 msgid "private member %q+#D in anonymous union"
 msgstr ""
 
-#: cp/class.c:2603
+#: cp/class.c:2609
 #, gcc-internal-format
 msgid "private member %q+#D in anonymous struct"
 msgstr ""
 
-#: cp/class.c:2608 cp/decl2.c:1351
+#: cp/class.c:2614 cp/decl2.c:1351
 #, gcc-internal-format
 msgid "protected member %q+#D in anonymous union"
 msgstr ""
 
-#: cp/class.c:2610
+#: cp/class.c:2616
 #, gcc-internal-format
 msgid "protected member %q+#D in anonymous struct"
 msgstr ""
 
-#: cp/class.c:2832
+#: cp/class.c:2838
 #, gcc-internal-format
 msgid "bit-field %q+#D with non-integral type"
 msgstr ""
 
-#: cp/class.c:2848
+#: cp/class.c:2854
 #, gcc-internal-format
 msgid "bit-field %q+D width not an integer constant"
 msgstr ""
 
-#: cp/class.c:2853
+#: cp/class.c:2859
 #, gcc-internal-format
 msgid "negative width in bit-field %q+D"
 msgstr ""
 
-#: cp/class.c:2858
+#: cp/class.c:2864
 #, gcc-internal-format
 msgid "zero width for bit-field %q+D"
 msgstr ""
 
-#: cp/class.c:2864
+#: cp/class.c:2870
 #, gcc-internal-format
 msgid "width of %q+D exceeds its type"
 msgstr ""
 
-#: cp/class.c:2868
+#: cp/class.c:2874
 #, gcc-internal-format
 msgid "%q+D is too small to hold all values of %q#T"
 msgstr ""
 
-#: cp/class.c:2927
+#: cp/class.c:2933
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in union"
 msgstr ""
 
-#: cp/class.c:2930
+#: cp/class.c:2936
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in union"
 msgstr ""
 
-#: cp/class.c:2932
+#: cp/class.c:2938
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in union"
 msgstr ""
 
-#: cp/class.c:2936
+#: cp/class.c:2942
 #, gcc-internal-format
 msgid "unrestricted unions only available with -std=c++0x or -std=gnu++0x"
 msgstr ""
 
-#: cp/class.c:2970
+#: cp/class.c:2976
 #, gcc-internal-format
 msgid "multiple fields in union %qT initialized"
 msgstr ""
 
-#: cp/class.c:3061
+#: cp/class.c:3067
 #, gcc-internal-format
 msgid "%q+D may not be static because it is a member of a union"
 msgstr ""
 
-#: cp/class.c:3066
+#: cp/class.c:3072
 #, gcc-internal-format
 msgid "%q+D may not have reference type %qT because it is a member of a union"
 msgstr ""
 
-#: cp/class.c:3077
+#: cp/class.c:3083
 #, gcc-internal-format
 msgid "field %q+D invalidly declared function type"
 msgstr ""
 
-#: cp/class.c:3083
+#: cp/class.c:3089
 #, gcc-internal-format
 msgid "field %q+D invalidly declared method type"
 msgstr ""
 
-#: cp/class.c:3138
+#: cp/class.c:3144
 #, gcc-internal-format
 msgid "ignoring packed attribute because of unpacked non-POD field %q+#D"
 msgstr ""
 
-#: cp/class.c:3230
+#: cp/class.c:3236
 #, gcc-internal-format
 msgid "field %q+#D with same name as class"
 msgstr ""
 
-#: cp/class.c:3253
+#: cp/class.c:3259
 #, gcc-internal-format
 msgid "%q#T has pointer data members"
 msgstr ""
 
-#: cp/class.c:3258
+#: cp/class.c:3264
 #, gcc-internal-format
 msgid "  but does not override %<%T(const %T&)%>"
 msgstr ""
 
-#: cp/class.c:3260
+#: cp/class.c:3266
 #, gcc-internal-format
 msgid "  or %<operator=(const %T&)%>"
 msgstr ""
 
-#: cp/class.c:3264
+#: cp/class.c:3270
 #, gcc-internal-format
 msgid "  but does not override %<operator=(const %T&)%>"
 msgstr ""
 
-#: cp/class.c:3727
+#: cp/class.c:3733
 #, gcc-internal-format
 msgid ""
 "offset of empty base %qT may not be ABI-compliant and maychange in a future "
 "version of GCC"
 msgstr ""
 
-#: cp/class.c:3854
+#: cp/class.c:3860
 #, gcc-internal-format
 msgid "class %qT will be considered nearly empty in a future version of GCC"
 msgstr ""
 
-#: cp/class.c:3936
+#: cp/class.c:3942
 #, gcc-internal-format
 msgid "initializer specified for non-virtual method %q+D"
 msgstr ""
 
-#: cp/class.c:4568
+#: cp/class.c:4598 cp/semantics.c:5389
 #, gcc-internal-format
-msgid "enclosing class of %q+D is not a literal type"
+msgid "enclosing class of %q+#D is not a literal type"
 msgstr ""
 
-#: cp/class.c:4677
+#: cp/class.c:4705
 #, gcc-internal-format
 msgid "non-static reference %q+#D in class without a constructor"
 msgstr ""
 
-#: cp/class.c:4682
+#: cp/class.c:4710
 #, gcc-internal-format
 msgid "non-static const member %q+#D in class without a constructor"
 msgstr ""
 
 #. If the function is defaulted outside the class, we just
 #. give the synthesis error.
-#: cp/class.c:4708
+#: cp/class.c:4736
 #, gcc-internal-format
 msgid ""
 "%q+D declared to take const reference, but implicit declaration would take "
 "non-const"
 msgstr ""
 
-#: cp/class.c:4711
+#: cp/class.c:4739
 #, gcc-internal-format
 msgid ""
 "%q+D declared to take non-const reference cannot be defaulted in the class "
 "body"
 msgstr ""
 
-#: cp/class.c:4935
+#: cp/class.c:4963
 #, gcc-internal-format
 msgid ""
 "offset of virtual base %qT is not ABI-compliant and may change in a future "
 "version of GCC"
 msgstr ""
 
-#: cp/class.c:5036
+#: cp/class.c:5064
 #, gcc-internal-format
 msgid "direct base %qT inaccessible in %qT due to ambiguity"
 msgstr ""
 
-#: cp/class.c:5048
+#: cp/class.c:5076
 #, gcc-internal-format
 msgid "virtual base %qT inaccessible in %qT due to ambiguity"
 msgstr ""
 
-#: cp/class.c:5234
+#: cp/class.c:5262
 #, gcc-internal-format
 msgid ""
 "size assigned to %qT may not be ABI-compliant and may change in a future "
 "version of GCC"
 msgstr ""
 
-#: cp/class.c:5274
+#: cp/class.c:5302
 #, gcc-internal-format
 msgid ""
 "the offset of %qD may not be ABI-compliant and may change in a future "
 "version of GCC"
 msgstr ""
 
-#: cp/class.c:5302
+#: cp/class.c:5330
 #, gcc-internal-format
 msgid ""
 "offset of %q+D is not ABI-compliant and may change in a future version of GCC"
 msgstr ""
 
-#: cp/class.c:5312
+#: cp/class.c:5340
 #, gcc-internal-format
 msgid ""
 "%q+D contains empty classes which may cause base classes to be placed at "
 "different locations in a future version of GCC"
 msgstr ""
 
-#: cp/class.c:5400
+#: cp/class.c:5428
 #, gcc-internal-format
 msgid ""
 "layout of classes derived from empty class %qT may change in a future "
 "version of GCC"
 msgstr ""
 
-#: cp/class.c:5553 cp/decl.c:11331 cp/parser.c:17264
+#: cp/class.c:5581 cp/decl.c:11636 cp/parser.c:17522
 #, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr ""
 
-#: cp/class.c:5705
+#: cp/class.c:5733
 #, gcc-internal-format
 msgid "%q#T has virtual functions and accessible non-virtual destructor"
 msgstr ""
 
-#: cp/class.c:5810
+#: cp/class.c:5838
 #, gcc-internal-format
 msgid "trying to finish struct, but kicked out due to previous parse errors"
 msgstr ""
 
-#: cp/class.c:6302
+#: cp/class.c:6355
 #, gcc-internal-format
 msgid "language string %<\"%E\"%> not recognized"
 msgstr ""
 
-#: cp/class.c:6392
+#: cp/class.c:6445
 #, gcc-internal-format
 msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
 msgstr ""
 
-#: cp/class.c:6516
+#: cp/class.c:6569
 #, gcc-internal-format
 msgid "no matches converting function %qD to type %q#T"
 msgstr ""
 
-#: cp/class.c:6546
+#: cp/class.c:6592
 #, gcc-internal-format
 msgid "converting overloaded function %qD to type %q#T is ambiguous"
 msgstr ""
 
-#: cp/class.c:6573
+#: cp/class.c:6619
 #, gcc-internal-format
 msgid "assuming pointer to member %qD"
 msgstr ""
 
-#: cp/class.c:6576
+#: cp/class.c:6622
 #, gcc-internal-format
 msgid "(a pointer to member can only be formed with %<&%E%>)"
 msgstr ""
 
-#: cp/class.c:6638 cp/class.c:6672
+#: cp/class.c:6684 cp/class.c:6718
 #, gcc-internal-format
 msgid "not enough type information"
 msgstr ""
 
-#: cp/class.c:6655
+#: cp/class.c:6701
 #, gcc-internal-format
 msgid "argument of type %qT does not match %qT"
 msgstr ""
@@ -25606,22 +25876,22 @@
 #. 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:6966 cp/decl.c:1265 cp/name-lookup.c:524
+#: cp/class.c:7012 cp/decl.c:1267 cp/name-lookup.c:503
 #, gcc-internal-format
 msgid "declaration of %q#D"
 msgstr ""
 
-#: cp/class.c:6967
+#: cp/class.c:7013
 #, gcc-internal-format
 msgid "changes meaning of %qD from %q+#D"
 msgstr ""
 
-#: cp/cp-gimplify.c:93
+#: cp/cp-gimplify.c:94
 #, gcc-internal-format
 msgid "continue statement not within loop or switch"
 msgstr ""
 
-#: cp/cp-gimplify.c:1257
+#: cp/cp-gimplify.c:1445
 #, gcc-internal-format
 msgid "%qE implicitly determined as %<firstprivate%> has reference type"
 msgstr ""
@@ -25666,7 +25936,7 @@
 msgid "conversion from %qT to %qT discards qualifiers"
 msgstr ""
 
-#: cp/cvt.c:470 cp/typeck.c:6014
+#: cp/cvt.c:470 cp/typeck.c:6044
 #, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr ""
@@ -25676,470 +25946,471 @@
 msgid "cannot convert type %qT to type %qT"
 msgstr ""
 
-#: cp/cvt.c:699
+#: cp/cvt.c:704
 #, gcc-internal-format
 msgid "conversion from %q#T to %q#T"
 msgstr ""
 
-#: cp/cvt.c:715
+#: cp/cvt.c:720
 #, gcc-internal-format
 msgid ""
 "the result of the conversion is unspecified because %qE is outside the range "
 "of type %qT"
 msgstr ""
 
-#: cp/cvt.c:726 cp/cvt.c:751
+#: cp/cvt.c:731 cp/cvt.c:762
 #, gcc-internal-format
 msgid "%q#T used where a %qT was expected"
 msgstr ""
 
-#: cp/cvt.c:766
+#: cp/cvt.c:777
 #, gcc-internal-format
 msgid "%q#T used where a floating point value was expected"
 msgstr ""
 
-#: cp/cvt.c:826
+#: cp/cvt.c:837
 #, gcc-internal-format
 msgid "conversion from %qT to non-scalar type %qT requested"
 msgstr ""
 
-#: cp/cvt.c:884
+#: cp/cvt.c:895
 #, gcc-internal-format
 msgid "pseudo-destructor is not called"
 msgstr ""
 
-#: cp/cvt.c:961
+#: cp/cvt.c:972
 #, gcc-internal-format
 msgid "conversion to void will not access object of incomplete type %qT"
 msgstr ""
 
-#: cp/cvt.c:965
+#: cp/cvt.c:976
 #, gcc-internal-format
 msgid ""
 "indirection will not access object of incomplete type %qT in second operand "
 "of conditional expression"
 msgstr ""
 
-#: cp/cvt.c:970
+#: cp/cvt.c:981
 #, gcc-internal-format
 msgid ""
 "indirection will not access object of incomplete type %qT in third operand "
 "of conditional expression"
 msgstr ""
 
-#: cp/cvt.c:975
+#: cp/cvt.c:986
 #, gcc-internal-format
 msgid ""
 "indirection will not access object of incomplete type %qT in right operand "
 "of comma operator"
 msgstr ""
 
-#: cp/cvt.c:980
+#: cp/cvt.c:991
 #, gcc-internal-format
 msgid ""
 "indirection will not access object of incomplete type %qT in left operand of "
 "comma operator"
 msgstr ""
 
-#: cp/cvt.c:985
+#: cp/cvt.c:996
 #, gcc-internal-format
 msgid "indirection will not access object of incomplete type %qT in statement"
 msgstr ""
 
-#: cp/cvt.c:989
+#: cp/cvt.c:1000
 #, gcc-internal-format
 msgid ""
 "indirection will not access object of incomplete type %qT in for increment "
 "expression"
 msgstr ""
 
-#: cp/cvt.c:1005
+#: cp/cvt.c:1016
 #, gcc-internal-format
 msgid "conversion to void will not access object of type %qT"
 msgstr ""
 
-#: cp/cvt.c:1009
+#: cp/cvt.c:1020
 #, gcc-internal-format
 msgid ""
 "implicit dereference will not access object of type %qT in second operand of "
 "conditional expression"
 msgstr ""
 
-#: cp/cvt.c:1014
+#: cp/cvt.c:1025
 #, gcc-internal-format
 msgid ""
 "implicit dereference will not access object of type %qT in third operand of "
 "conditional expression"
 msgstr ""
 
-#: cp/cvt.c:1019
+#: cp/cvt.c:1030
 #, gcc-internal-format
 msgid ""
 "implicit dereference will not access object of type %qT in right operand of "
 "comma operator"
 msgstr ""
 
-#: cp/cvt.c:1024
+#: cp/cvt.c:1035
 #, gcc-internal-format
 msgid ""
 "implicit dereference will not access object of type %qT in left operand of "
 "comma operator"
 msgstr ""
 
-#: cp/cvt.c:1029
+#: cp/cvt.c:1040
 #, gcc-internal-format
 msgid "implicit dereference will not access object of type %qT in statement"
 msgstr ""
 
-#: cp/cvt.c:1033
+#: cp/cvt.c:1044
 #, gcc-internal-format
 msgid ""
 "implicit dereference will not access object of type %qT in for increment "
 "expression"
 msgstr ""
 
-#: cp/cvt.c:1047
+#: cp/cvt.c:1058
 #, gcc-internal-format
 msgid ""
 "conversion to void will not access object of non-trivially-copyable type %qT"
 msgstr ""
 
-#: cp/cvt.c:1052
+#: cp/cvt.c:1063
 #, gcc-internal-format
 msgid ""
 "indirection will not access object of non-trivially-copyable type %qT in "
 "second operand of conditional expression"
 msgstr ""
 
-#: cp/cvt.c:1057
+#: cp/cvt.c:1068
 #, gcc-internal-format
 msgid ""
 "indirection will not access object of non-trivially-copyable type %qT in "
 "third operand of conditional expression"
 msgstr ""
 
-#: cp/cvt.c:1062
+#: cp/cvt.c:1073
 #, gcc-internal-format
 msgid ""
 "indirection will not access object of non-trivially-copyable type %qT in "
 "right operand of comma operator"
 msgstr ""
 
-#: cp/cvt.c:1067
+#: cp/cvt.c:1078
 #, gcc-internal-format
 msgid ""
 "indirection will not access object of non-trivially-copyable type %qT in "
 "left operand of comma operator"
 msgstr ""
 
-#: cp/cvt.c:1072
+#: cp/cvt.c:1083
 #, gcc-internal-format
 msgid ""
 "indirection will not access object of non-trivially-copyable type %qT in "
 "statement"
 msgstr ""
 
-#: cp/cvt.c:1077
+#: cp/cvt.c:1088
 #, gcc-internal-format
 msgid ""
 "indirection will not access object of non-trivially-copyable type %qT in for "
 "increment expression"
 msgstr ""
 
-#: cp/cvt.c:1115
+#: cp/cvt.c:1126
 #, gcc-internal-format
 msgid "conversion to void will not access object %qE of incomplete type %qT"
 msgstr ""
 
-#: cp/cvt.c:1119
+#: cp/cvt.c:1130
 #, gcc-internal-format
 msgid ""
 "variable %qE of incomplete type %qT will not be accessed in second operand "
 "of conditional expression"
 msgstr ""
 
-#: cp/cvt.c:1124
+#: cp/cvt.c:1135
 #, gcc-internal-format
 msgid ""
 "variable %qE of incomplete type %qT will not be accessed in third operand of "
 "conditional expression"
 msgstr ""
 
-#: cp/cvt.c:1129
+#: cp/cvt.c:1140
 #, gcc-internal-format
 msgid ""
 "variable %qE of incomplete type %qT will not be accessed in right operand of "
 "comma operator"
 msgstr ""
 
-#: cp/cvt.c:1134
+#: cp/cvt.c:1145
 #, gcc-internal-format
 msgid ""
 "variable %qE of incomplete type %qT will not be accessed in left operand of "
 "comma operator"
 msgstr ""
 
-#: cp/cvt.c:1139
+#: cp/cvt.c:1150
 #, gcc-internal-format
 msgid "variable %qE of incomplete type %qT will not be accessed in statement"
 msgstr ""
 
-#: cp/cvt.c:1143
+#: cp/cvt.c:1154
 #, gcc-internal-format
 msgid ""
 "variable %qE of incomplete type %qT will not be accessed in for increment "
 "expression"
 msgstr ""
 
-#: cp/cvt.c:1192
+#: cp/cvt.c:1203
 #, gcc-internal-format
 msgid "conversion to void cannot resolve address of overloaded function"
 msgstr ""
 
-#: cp/cvt.c:1196
+#: cp/cvt.c:1207
 #, gcc-internal-format
 msgid ""
 "second operand of conditional expression cannot resolve address of "
 "overloaded function"
 msgstr ""
 
-#: cp/cvt.c:1200
+#: cp/cvt.c:1211
 #, gcc-internal-format
 msgid ""
 "third operand of conditional expression cannot resolve address of overloaded "
 "function"
 msgstr ""
 
-#: cp/cvt.c:1204
+#: cp/cvt.c:1215
 #, gcc-internal-format
 msgid ""
 "right operand of comma operator cannot resolve address of overloaded function"
 msgstr ""
 
-#: cp/cvt.c:1208
+#: cp/cvt.c:1219
 #, gcc-internal-format
 msgid ""
 "left operand of comma operator cannot resolve address of overloaded function"
 msgstr ""
 
-#: cp/cvt.c:1212
+#: cp/cvt.c:1223
 #, gcc-internal-format
 msgid "statement cannot resolve address of overloaded function"
 msgstr ""
 
-#: cp/cvt.c:1216
+#: cp/cvt.c:1227
 #, gcc-internal-format
 msgid "for increment expression cannot resolve address of overloaded function"
 msgstr ""
 
-#: cp/cvt.c:1232
+#: cp/cvt.c:1243
 #, gcc-internal-format
 msgid ""
 "second operand of conditional expression is a reference, not call, to "
 "function %qE"
 msgstr ""
 
-#: cp/cvt.c:1237
+#: cp/cvt.c:1248
 #, gcc-internal-format
 msgid ""
 "third operand of conditional expression is a reference, not call, to "
 "function %qE"
 msgstr ""
 
-#: cp/cvt.c:1242
+#: cp/cvt.c:1253
 #, gcc-internal-format
 msgid ""
 "right operand of comma operator is a reference, not call, to function %qE"
 msgstr ""
 
-#: cp/cvt.c:1247
+#: cp/cvt.c:1258
 #, gcc-internal-format
 msgid ""
 "left operand of comma operator is a reference, not call, to function %qE"
 msgstr ""
 
-#: cp/cvt.c:1252
+#: cp/cvt.c:1263
 #, gcc-internal-format
 msgid "statement is a reference, not call, to function %qE"
 msgstr ""
 
-#: cp/cvt.c:1257
+#: cp/cvt.c:1268
 #, gcc-internal-format
 msgid "for increment expression is a reference, not call, to function %qE"
 msgstr ""
 
-#: cp/cvt.c:1284
+#: cp/cvt.c:1295
 #, gcc-internal-format
 msgid "second operand of conditional expression has no effect"
 msgstr ""
 
-#: cp/cvt.c:1288
+#: cp/cvt.c:1299
 #, gcc-internal-format
 msgid "third operand of conditional expression has no effect"
 msgstr ""
 
-#: cp/cvt.c:1292
+#: cp/cvt.c:1303
 #, gcc-internal-format
 msgid "right operand of comma operator has no effect"
 msgstr ""
 
-#: cp/cvt.c:1296
+#: cp/cvt.c:1307
 #, gcc-internal-format
 msgid "left operand of comma operator has no effect"
 msgstr ""
 
-#: cp/cvt.c:1300
+#: cp/cvt.c:1311
 #, gcc-internal-format
 msgid "statement has no effect"
 msgstr ""
 
-#: cp/cvt.c:1304
+#: cp/cvt.c:1315
 #, gcc-internal-format
 msgid "for increment expression has no effect"
 msgstr ""
 
-#: cp/cvt.c:1453
+#: cp/cvt.c:1464
 #, gcc-internal-format
 msgid "converting NULL to non-pointer type"
 msgstr ""
 
-#: cp/cvt.c:1565
+#: cp/cvt.c:1576
 #, gcc-internal-format
 msgid "ambiguous default type conversion from %qT"
 msgstr ""
 
-#: cp/cvt.c:1567
+#: cp/cvt.c:1578
 #, gcc-internal-format
 msgid "  candidate conversions include %qD and %qD"
 msgstr ""
 
-#: cp/decl.c:636
+#: cp/decl.c:637
 #, gcc-internal-format
 msgid "variable %q+D set but not used"
 msgstr ""
 
-#: cp/decl.c:1101
+#: cp/decl.c:1103
 #, gcc-internal-format
 msgid "%qD was declared %<extern%> and later %<static%>"
 msgstr ""
 
-#: cp/decl.c:1102 cp/decl.c:1682 objc/objc-act.c:3393 objc/objc-act.c:6601
+#: cp/decl.c:1104 cp/decl.c:1684 objc/objc-act.c:3407 objc/objc-act.c:3996
+#: objc/objc-act.c:4024 objc/objc-act.c:4080 objc/objc-act.c:7065
 #, gcc-internal-format
 msgid "previous declaration of %q+D"
 msgstr ""
 
-#: cp/decl.c:1134
+#: cp/decl.c:1136
 #, gcc-internal-format
 msgid "declaration of %qF has a different exception specifier"
 msgstr ""
 
-#: cp/decl.c:1136
+#: cp/decl.c:1138
 #, gcc-internal-format
 msgid "from previous declaration %q+F"
 msgstr ""
 
-#: cp/decl.c:1161
+#: cp/decl.c:1163
 #, gcc-internal-format
 msgid "redeclaration %qD differs in %<constexpr%>"
 msgstr ""
 
-#: cp/decl.c:1162
+#: cp/decl.c:1164
 #, gcc-internal-format
 msgid "from previous declaration %q+D"
 msgstr ""
 
-#: cp/decl.c:1218
+#: cp/decl.c:1220
 #, gcc-internal-format
 msgid "function %q+D redeclared as inline"
 msgstr ""
 
-#: cp/decl.c:1220
+#: cp/decl.c:1222
 #, gcc-internal-format
 msgid "previous declaration of %q+D with attribute noinline"
 msgstr ""
 
-#: cp/decl.c:1227
+#: cp/decl.c:1229
 #, gcc-internal-format
 msgid "function %q+D redeclared with attribute noinline"
 msgstr ""
 
-#: cp/decl.c:1229
+#: cp/decl.c:1231
 #, gcc-internal-format
 msgid "previous declaration of %q+D was inline"
 msgstr ""
 
-#: cp/decl.c:1253 cp/decl.c:1327
+#: cp/decl.c:1255 cp/decl.c:1329
 #, gcc-internal-format
 msgid "shadowing built-in function %q#D"
 msgstr ""
 
-#: cp/decl.c:1254 cp/decl.c:1328
+#: cp/decl.c:1256 cp/decl.c:1330
 #, gcc-internal-format
 msgid "shadowing library function %q#D"
 msgstr ""
 
-#: cp/decl.c:1261
+#: cp/decl.c:1263
 #, gcc-internal-format
 msgid "library function %q#D redeclared as non-function %q#D"
 msgstr ""
 
-#: cp/decl.c:1266
+#: cp/decl.c:1268
 #, gcc-internal-format
 msgid "conflicts with built-in declaration %q#D"
 msgstr ""
 
-#: cp/decl.c:1320 cp/decl.c:1447 cp/decl.c:1464
+#: cp/decl.c:1322 cp/decl.c:1449 cp/decl.c:1466
 #, gcc-internal-format
 msgid "new declaration %q#D"
 msgstr ""
 
-#: cp/decl.c:1321
+#: cp/decl.c:1323
 #, gcc-internal-format
 msgid "ambiguates built-in declaration %q#D"
 msgstr ""
 
-#: cp/decl.c:1411
+#: cp/decl.c:1413
 #, gcc-internal-format
 msgid "%q#D redeclared as different kind of symbol"
 msgstr ""
 
-#: cp/decl.c:1414
+#: cp/decl.c:1416
 #, gcc-internal-format
 msgid "previous declaration of %q+#D"
 msgstr ""
 
-#: cp/decl.c:1433
+#: cp/decl.c:1435
 #, gcc-internal-format
 msgid "declaration of template %q#D"
 msgstr ""
 
-#: cp/decl.c:1434 cp/name-lookup.c:525 cp/name-lookup.c:811
-#: cp/name-lookup.c:822
+#: cp/decl.c:1436 cp/name-lookup.c:504 cp/name-lookup.c:802
+#: cp/name-lookup.c:814
 #, gcc-internal-format
 msgid "conflicts with previous declaration %q+#D"
 msgstr ""
 
-#: cp/decl.c:1448 cp/decl.c:1465
+#: cp/decl.c:1450 cp/decl.c:1467
 #, gcc-internal-format
 msgid "ambiguates old declaration %q+#D"
 msgstr ""
 
-#: cp/decl.c:1456
+#: cp/decl.c:1458
 #, gcc-internal-format
 msgid "declaration of C function %q#D conflicts with"
 msgstr ""
 
-#: cp/decl.c:1458
+#: cp/decl.c:1460
 #, gcc-internal-format
 msgid "previous declaration %q+#D here"
 msgstr ""
 
-#: cp/decl.c:1473
+#: cp/decl.c:1475
 #, gcc-internal-format
 msgid "conflicting declaration %q#D"
 msgstr ""
 
-#: cp/decl.c:1474
+#: cp/decl.c:1476
 #, gcc-internal-format
 msgid "%q+D has a previous declaration as %q#D"
 msgstr ""
@@ -26151,63 +26422,63 @@
 #. A namespace-name defined at global scope shall not be
 #. declared as the name of any other entity in any global scope
 #. of the program.
-#: cp/decl.c:1526
+#: cp/decl.c:1528
 #, gcc-internal-format
 msgid "declaration of namespace %qD conflicts with"
 msgstr ""
 
-#: cp/decl.c:1527
+#: cp/decl.c:1529
 #, gcc-internal-format
 msgid "previous declaration of namespace %q+D here"
 msgstr ""
 
-#: cp/decl.c:1538
+#: cp/decl.c:1540
 #, gcc-internal-format
 msgid "%q+#D previously defined here"
 msgstr ""
 
 #. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:1548
+#: cp/decl.c:1550
 #, gcc-internal-format
 msgid "prototype for %q+#D"
 msgstr ""
 
-#: cp/decl.c:1550
+#: cp/decl.c:1552
 #, gcc-internal-format
 msgid "follows non-prototype definition here"
 msgstr ""
 
-#: cp/decl.c:1590
+#: cp/decl.c:1592
 #, gcc-internal-format
 msgid "previous declaration of %q+#D with %qL linkage"
 msgstr ""
 
-#: cp/decl.c:1592
+#: cp/decl.c:1594
 #, gcc-internal-format
 msgid "conflicts with new declaration with %qL linkage"
 msgstr ""
 
-#: cp/decl.c:1615 cp/decl.c:1621
+#: cp/decl.c:1617 cp/decl.c:1623
 #, gcc-internal-format
 msgid "default argument given for parameter %d of %q#D"
 msgstr ""
 
-#: cp/decl.c:1617 cp/decl.c:1623
+#: cp/decl.c:1619 cp/decl.c:1625
 #, gcc-internal-format
 msgid "after previous specification in %q+#D"
 msgstr ""
 
-#: cp/decl.c:1681
+#: cp/decl.c:1683
 #, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr ""
 
-#: cp/decl.c:1687
+#: cp/decl.c:1689
 #, gcc-internal-format
 msgid "deleted definition of %qD"
 msgstr ""
 
-#: cp/decl.c:1688
+#: cp/decl.c:1690
 #, gcc-internal-format
 msgid "after previous declaration %q+D"
 msgstr ""
@@ -26220,43 +26491,43 @@
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.c:2043
+#: cp/decl.c:2049
 #, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr ""
 
-#: cp/decl.c:2140
+#: cp/decl.c:2159
 #, gcc-internal-format
 msgid "%q+D: visibility attribute ignored because it"
 msgstr ""
 
-#: cp/decl.c:2142
+#: cp/decl.c:2161
 #, gcc-internal-format
 msgid "conflicts with previous declaration here"
 msgstr ""
 
 #. Reject two definitions.
-#: cp/decl.c:2304 cp/decl.c:2333 cp/decl.c:2362 cp/decl.c:2379 cp/decl.c:2451
+#: cp/decl.c:2323 cp/decl.c:2352 cp/decl.c:2381 cp/decl.c:2398 cp/decl.c:2470
 #, gcc-internal-format
 msgid "redefinition of %q#D"
 msgstr ""
 
-#: cp/decl.c:2320
+#: cp/decl.c:2339
 #, gcc-internal-format
 msgid "%qD conflicts with used function"
 msgstr ""
 
-#: cp/decl.c:2330
+#: cp/decl.c:2349
 #, gcc-internal-format
 msgid "%q#D not declared in class"
 msgstr ""
 
-#: cp/decl.c:2344 cp/decl.c:2389
+#: cp/decl.c:2363 cp/decl.c:2408
 #, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr ""
 
-#: cp/decl.c:2347 cp/decl.c:2392
+#: cp/decl.c:2366 cp/decl.c:2411
 #, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr ""
@@ -26264,334 +26535,334 @@
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.c:2408
+#: cp/decl.c:2427
 #, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr ""
 
-#: cp/decl.c:2422
+#: cp/decl.c:2441
 #, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr ""
 
-#: cp/decl.c:2425
+#: cp/decl.c:2444
 #, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr ""
 
-#: cp/decl.c:2440 cp/decl.c:2459
+#: cp/decl.c:2459 cp/decl.c:2478 cp/name-lookup.c:1083
 #, gcc-internal-format
 msgid "redeclaration of %q#D"
 msgstr ""
 
-#: cp/decl.c:2603
+#: cp/decl.c:2633
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr ""
 
-#: cp/decl.c:2605
+#: cp/decl.c:2635
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr ""
 
-#: cp/decl.c:2607 cp/decl.c:2748 cp/decl.c:2788
+#: cp/decl.c:2637 cp/decl.c:2778 cp/decl.c:2818
 #, gcc-internal-format
 msgid "  from here"
 msgstr ""
 
-#: cp/decl.c:2626 cp/decl.c:2791
+#: cp/decl.c:2656 cp/decl.c:2821
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr ""
 
-#: cp/decl.c:2647
+#: cp/decl.c:2677
 #, gcc-internal-format
 msgid "  crosses initialization of %q+#D"
 msgstr ""
 
-#: cp/decl.c:2649 cp/decl.c:2765
+#: cp/decl.c:2679 cp/decl.c:2795
 #, gcc-internal-format
 msgid "  enters scope of %q+#D which has non-trivial destructor"
 msgstr ""
 
-#: cp/decl.c:2663 cp/decl.c:2770
+#: cp/decl.c:2693 cp/decl.c:2800
 #, gcc-internal-format
 msgid "  enters try block"
 msgstr ""
 
 #. Can't skip init of __exception_info.
-#: cp/decl.c:2665 cp/decl.c:2759 cp/decl.c:2772
+#: cp/decl.c:2695 cp/decl.c:2789 cp/decl.c:2802
 #, gcc-internal-format
 msgid "  enters catch block"
 msgstr ""
 
-#: cp/decl.c:2675 cp/decl.c:2775
+#: cp/decl.c:2705 cp/decl.c:2805
 #, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr ""
 
-#: cp/decl.c:2747 cp/decl.c:2787
+#: cp/decl.c:2777 cp/decl.c:2817
 #, gcc-internal-format
 msgid "jump to label %q+D"
 msgstr ""
 
-#: cp/decl.c:2763
+#: cp/decl.c:2793
 #, gcc-internal-format
 msgid "  skips initialization of %q+#D"
 msgstr ""
 
-#: cp/decl.c:2840
+#: cp/decl.c:2870
 #, gcc-internal-format
 msgid "label named wchar_t"
 msgstr ""
 
-#: cp/decl.c:3113
+#: cp/decl.c:3178
 #, gcc-internal-format
 msgid "%qD is not a type"
 msgstr ""
 
-#: cp/decl.c:3119 cp/parser.c:4397
+#: cp/decl.c:3184 cp/parser.c:4417
 #, gcc-internal-format
 msgid "%qD used without template parameters"
 msgstr ""
 
-#: cp/decl.c:3128
+#: cp/decl.c:3193
 #, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr ""
 
-#: cp/decl.c:3152 cp/decl.c:3242
+#: cp/decl.c:3217 cp/decl.c:3307
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr ""
 
-#: cp/decl.c:3165
+#: cp/decl.c:3230
 #, gcc-internal-format
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr ""
 
-#: cp/decl.c:3174
+#: cp/decl.c:3239
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr ""
 
-#: cp/decl.c:3181
+#: cp/decl.c:3246
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a type"
 msgstr ""
 
-#: cp/decl.c:3251
+#: cp/decl.c:3316
 #, gcc-internal-format
 msgid "template parameters do not match template"
 msgstr ""
 
-#: cp/decl.c:3252 cp/friend.c:318 cp/friend.c:326
+#: cp/decl.c:3317 cp/friend.c:325 cp/friend.c:333
 #, gcc-internal-format
 msgid "%q+D declared here"
 msgstr ""
 
-#: cp/decl.c:3958
+#: cp/decl.c:4023
 #, gcc-internal-format
 msgid "an anonymous struct cannot have function members"
 msgstr ""
 
-#: cp/decl.c:3961
+#: cp/decl.c:4026
 #, gcc-internal-format
 msgid "an anonymous union cannot have function members"
 msgstr ""
 
-#: cp/decl.c:3979
+#: cp/decl.c:4044
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.c:3982
+#: cp/decl.c:4047
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.c:3985
+#: cp/decl.c:4050
 #, gcc-internal-format
 msgid ""
 "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.c:4010
+#: cp/decl.c:4075
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr ""
 
-#: cp/decl.c:4014
+#: cp/decl.c:4079
 #, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr ""
 
-#: cp/decl.c:4051
+#: cp/decl.c:4116
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr ""
 
-#: cp/decl.c:4058
+#: cp/decl.c:4123
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr ""
 
-#: cp/decl.c:4065
+#: cp/decl.c:4130
 #, gcc-internal-format
 msgid "%qs can only be specified for functions"
 msgstr ""
 
-#: cp/decl.c:4071
+#: cp/decl.c:4136
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr ""
 
-#: cp/decl.c:4073
+#: cp/decl.c:4138
 #, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr ""
 
-#: cp/decl.c:4075
+#: cp/decl.c:4140
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.c:4081
+#: cp/decl.c:4146
 #, gcc-internal-format
 msgid "qualifiers can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.c:4084
+#: cp/decl.c:4149
 #, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr ""
 
-#: cp/decl.c:4086
+#: cp/decl.c:4151
 #, gcc-internal-format
 msgid "%<constexpr%> cannot be used for type declarations"
 msgstr ""
 
-#: cp/decl.c:4115
+#: cp/decl.c:4180
 #, gcc-internal-format
 msgid "attribute ignored in declaration of %q+#T"
 msgstr ""
 
-#: cp/decl.c:4116
+#: cp/decl.c:4181
 #, gcc-internal-format
 msgid "attribute for %q+#T must follow the %qs keyword"
 msgstr ""
 
-#: cp/decl.c:4161
+#: cp/decl.c:4226
 #, 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:4165
+#: cp/decl.c:4230
 #, gcc-internal-format
 msgid ""
 "ignoring attributes applied to dependent type %qT without an associated "
 "declaration"
 msgstr ""
 
-#: cp/decl.c:4232 cp/decl2.c:813
+#: cp/decl.c:4297 cp/decl2.c:814
 #, gcc-internal-format
 msgid "typedef %qD is initialized (use decltype instead)"
 msgstr ""
 
-#: cp/decl.c:4250
+#: cp/decl.c:4315
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr ""
 
-#: cp/decl.c:4279
+#: cp/decl.c:4344
 #, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr ""
 
-#: cp/decl.c:4298
+#: cp/decl.c:4363
 #, gcc-internal-format
 msgid "%q#D is not a static member of %q#T"
 msgstr ""
 
-#: cp/decl.c:4304
+#: cp/decl.c:4369
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr ""
 
-#: cp/decl.c:4313
+#: cp/decl.c:4378
 #, gcc-internal-format
 msgid ""
 "template header not allowed in member definition of explicitly specialized "
 "class"
 msgstr ""
 
-#: cp/decl.c:4321
+#: cp/decl.c:4386
 #, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr ""
 
-#: cp/decl.c:4326
+#: cp/decl.c:4391
 #, gcc-internal-format
 msgid "%qD declared %<constexpr%> outside its class"
 msgstr ""
 
-#: cp/decl.c:4365
+#: cp/decl.c:4430
 #, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr ""
 
-#: cp/decl.c:4460
+#: cp/decl.c:4525
 #, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr ""
 
-#: cp/decl.c:4466 cp/decl.c:5226
+#: cp/decl.c:4531 cp/decl.c:5332
 #, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr ""
 
-#: cp/decl.c:4473 cp/decl.c:5779
+#: cp/decl.c:4538 cp/decl.c:5938
 #, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr ""
 
-#: cp/decl.c:4475
+#: cp/decl.c:4540
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr ""
 
-#: cp/decl.c:4511
+#: cp/decl.c:4576
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr ""
 
-#: cp/decl.c:4537
+#: cp/decl.c:4602
 #, gcc-internal-format
 msgid "cannot initialize %qT from %qT"
 msgstr ""
 
-#: cp/decl.c:4598
+#: cp/decl.c:4663
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.c:4606
+#: cp/decl.c:4671
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.c:4654
+#: cp/decl.c:4719
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr ""
 
-#: cp/decl.c:4661
+#: cp/decl.c:4726
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr ""
 
-#: cp/decl.c:4673
+#: cp/decl.c:4738
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr ""
@@ -26599,338 +26870,358 @@
 #. 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:4716
+#: cp/decl.c:4781
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr ""
 
-#: cp/decl.c:4739
+#: cp/decl.c:4804
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t constant"
 msgstr ""
 
-#: cp/decl.c:4785
+#: cp/decl.c:4850
 #, 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:4789
+#: cp/decl.c:4854
 #, gcc-internal-format
 msgid "  you can work around this by removing the initializer"
 msgstr ""
 
-#: cp/decl.c:4818
+#: cp/decl.c:4883
 #, gcc-internal-format
 msgid "uninitialized const %qD"
 msgstr ""
 
-#: cp/decl.c:4826
+#: cp/decl.c:4891
 #, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr ""
 
-#: cp/decl.c:4830
+#: cp/decl.c:4895
 #, gcc-internal-format
 msgid ""
 "constructor is not user-provided because it is explicitly defaulted in the "
 "class body"
 msgstr ""
 
-#: cp/decl.c:4944
+#: cp/decl.c:5014
 #, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr ""
 
-#: cp/decl.c:4983
+#: cp/decl.c:5055
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr ""
 
-#: cp/decl.c:5001
+#: cp/decl.c:5074
 #, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr ""
 
-#: cp/decl.c:5060
-#, gcc-internal-format
-msgid "braces around scalar initializer for type %qT"
-msgstr ""
-
-#: cp/decl.c:5151
-#, gcc-internal-format
-msgid "missing braces around initializer for %qT"
-msgstr ""
-
-#: cp/decl.c:5208 cp/typeck2.c:986 cp/typeck2.c:1165 cp/typeck2.c:1188
-#: cp/typeck2.c:1231
+#: cp/decl.c:5130 cp/decl.c:5311 cp/typeck2.c:1015 cp/typeck2.c:1214
+#: cp/typeck2.c:1243 cp/typeck2.c:1290
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr ""
 
-#: cp/decl.c:5228
+#: cp/decl.c:5161
+#, gcc-internal-format
+msgid "braces around scalar initializer for type %qT"
+msgstr ""
+
+#: cp/decl.c:5252
+#, gcc-internal-format
+msgid "missing braces around initializer for %qT"
+msgstr ""
+
+#: cp/decl.c:5334
 #, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr ""
 
-#: cp/decl.c:5237
+#: cp/decl.c:5343
 #, gcc-internal-format
 msgid "variable-sized object %qD may not be initialized"
 msgstr ""
 
-#: cp/decl.c:5239
+#: cp/decl.c:5345
 #, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr ""
 
-#: cp/decl.c:5295
+#: cp/decl.c:5409
 #, gcc-internal-format
 msgid "%qD has incomplete type"
 msgstr ""
 
-#: cp/decl.c:5315
+#: cp/decl.c:5429
 #, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr ""
 
-#: cp/decl.c:5351
+#: cp/decl.c:5465
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr ""
 
-#: cp/decl.c:5419
+#: cp/decl.c:5538
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr ""
 
-#: cp/decl.c:5446
+#: cp/decl.c:5565
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr ""
 
-#: cp/decl.c:5448
+#: cp/decl.c:5567
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr ""
 
-#: cp/decl.c:5452
+#: cp/decl.c:5571
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr ""
 
-#: cp/decl.c:5745
+#: cp/decl.c:5904
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr ""
 
-#: cp/decl.c:5904
+#: cp/decl.c:6053
 #, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr ""
 
-#: cp/decl.c:5936
+#: cp/decl.c:6085
 #, gcc-internal-format
 msgid "%qD cannot be thread-local because it has non-trivial type %qT"
 msgstr ""
 
-#: cp/decl.c:5978
+#: cp/decl.c:6127
 #, gcc-internal-format
 msgid "Java object %qD not allocated with %<new%>"
 msgstr ""
 
-#: cp/decl.c:5985
+#: cp/decl.c:6134
 #, gcc-internal-format
 msgid "%qD is thread-local and so cannot be dynamically initialized"
 msgstr ""
 
-#: cp/decl.c:6003
+#: cp/decl.c:6152
 #, gcc-internal-format
 msgid ""
 "%qD cannot be initialized by a non-constant expression when being declared"
 msgstr ""
 
-#: cp/decl.c:6052
+#: cp/decl.c:6200
 #, gcc-internal-format
 msgid "non-static data member %qD has Java class type"
 msgstr ""
 
-#: cp/decl.c:6118
+#: cp/decl.c:6265
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr ""
 
-#: cp/decl.c:6697
+#: cp/decl.c:6856
+#, gcc-internal-format
+msgid "initializer fails to determine size of %qT"
+msgstr ""
+
+#: cp/decl.c:6860
+#, gcc-internal-format
+msgid "array size missing in %qT"
+msgstr ""
+
+#: cp/decl.c:6863
+#, gcc-internal-format
+msgid "zero-size array %qT"
+msgstr ""
+
+#: cp/decl.c:6879
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr ""
 
-#: cp/decl.c:6699
+#: cp/decl.c:6881
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr ""
 
-#: cp/decl.c:6723
+#: cp/decl.c:6905
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> variable"
 msgstr ""
 
-#: cp/decl.c:6725
+#: cp/decl.c:6907
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> variable"
 msgstr ""
 
-#: cp/decl.c:6727
+#: cp/decl.c:6909
 #, gcc-internal-format
 msgid ""
 "%<const%> and %<volatile%> function specifiers on %qD invalid in variable "
 "declaration"
 msgstr ""
 
-#: cp/decl.c:6732
+#: cp/decl.c:6914
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr ""
 
-#: cp/decl.c:6734
+#: cp/decl.c:6916
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr ""
 
-#: cp/decl.c:6736
+#: cp/decl.c:6918
 #, gcc-internal-format
 msgid ""
 "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter "
 "declaration"
 msgstr ""
 
-#: cp/decl.c:6741
+#: cp/decl.c:6923
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> type"
 msgstr ""
 
-#: cp/decl.c:6743
+#: cp/decl.c:6925
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> type"
 msgstr ""
 
-#: cp/decl.c:6745
+#: cp/decl.c:6927
 #, gcc-internal-format
 msgid ""
 "%<const%> and %<volatile%> function specifiers on %qD invalid in type "
 "declaration"
 msgstr ""
 
-#: cp/decl.c:6750
+#: cp/decl.c:6932
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> field"
 msgstr ""
 
-#: cp/decl.c:6752
+#: cp/decl.c:6934
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> field"
 msgstr ""
 
-#: cp/decl.c:6754
+#: cp/decl.c:6936
 #, gcc-internal-format
 msgid ""
 "%<const%> and %<volatile%> function specifiers on %qD invalid in field "
 "declaration"
 msgstr ""
 
-#: cp/decl.c:6761
+#: cp/decl.c:6943
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr ""
 
-#: cp/decl.c:6767
+#: cp/decl.c:6949
 #, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr ""
 
-#: cp/decl.c:6801
+#: cp/decl.c:6983
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr ""
 
-#: cp/decl.c:6922
+#: cp/decl.c:7016
+#, gcc-internal-format
+msgid "static member function %q#D declared with type qualifiers"
+msgstr ""
+
+#: cp/decl.c:7115
 #, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr ""
 
 #. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:6932
+#: cp/decl.c:7125
 #, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr ""
 
-#: cp/decl.c:6962
+#: cp/decl.c:7155
 #, gcc-internal-format
 msgid ""
 "default arguments are not allowed in declaration of friend template "
 "specialization %qD"
 msgstr ""
 
-#: cp/decl.c:6970
+#: cp/decl.c:7163
 #, gcc-internal-format
 msgid ""
 "%<inline%> is not allowed in declaration of friend template specialization "
 "%qD"
 msgstr ""
 
-#: cp/decl.c:7012
+#: cp/decl.c:7205
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr ""
 
-#: cp/decl.c:7014
+#: cp/decl.c:7207
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr ""
 
-#: cp/decl.c:7016
+#: cp/decl.c:7209
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr ""
 
-#: cp/decl.c:7044
+#: cp/decl.c:7237
 #, gcc-internal-format
 msgid ""
 "anonymous type with no linkage used to declare function %q#D with linkage"
 msgstr ""
 
-#: cp/decl.c:7048 cp/decl.c:7334 cp/decl2.c:3619
+#: cp/decl.c:7241 cp/decl.c:7551 cp/decl2.c:3622
 #, gcc-internal-format
 msgid ""
 "%q+#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr ""
 
-#: cp/decl.c:7054
+#: cp/decl.c:7247
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr ""
 
-#: cp/decl.c:7076
+#: cp/decl.c:7269
 #, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr ""
 
-#: cp/decl.c:7077
+#: cp/decl.c:7270
 #, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr ""
 
-#: cp/decl.c:7122
+#: cp/decl.c:7318
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr ""
 
-#: cp/decl.c:7162
+#: cp/decl.c:7360
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr ""
 
-#: cp/decl.c:7179 cp/decl2.c:734
+#: cp/decl.c:7377 cp/decl2.c:735
 #, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr ""
@@ -26939,871 +27230,891 @@
 #. 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:7331
+#: cp/decl.c:7548
 #, gcc-internal-format
 msgid ""
 "anonymous type with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl.c:7340
+#: cp/decl.c:7557
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl.c:7460
+#: cp/decl.c:7680
 #, gcc-internal-format
 msgid ""
 "%<constexpr%> needed for in-class initialization of static data member %q#D "
 "of non-integral type"
 msgstr ""
 
-#: cp/decl.c:7463
+#: cp/decl.c:7683
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr ""
 
-#: cp/decl.c:7476
+#: cp/decl.c:7696
 #, gcc-internal-format
 msgid ""
 "invalid in-class initialization of static data member of non-integral type "
 "%qT"
 msgstr ""
 
-#: cp/decl.c:7482
+#: cp/decl.c:7702
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr ""
 
-#: cp/decl.c:7486
+#: cp/decl.c:7706
 #, gcc-internal-format
 msgid ""
 "ISO C++ forbids initialization of member constant %qD of non-integral type "
 "%qT"
 msgstr ""
 
-#: cp/decl.c:7547
+#: cp/decl.c:7783 cp/decl.c:7811
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr ""
 
-#: cp/decl.c:7549
+#: cp/decl.c:7786 cp/decl.c:7813
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr ""
 
-#: cp/decl.c:7599
+#: cp/decl.c:7863
 #, gcc-internal-format
 msgid "size of array %qD is negative"
 msgstr ""
 
-#: cp/decl.c:7601
+#: cp/decl.c:7865
 #, gcc-internal-format
 msgid "size of array is negative"
 msgstr ""
 
-#: cp/decl.c:7615
+#: cp/decl.c:7879
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr ""
 
-#: cp/decl.c:7617
+#: cp/decl.c:7881
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr ""
 
-#: cp/decl.c:7629
+#: cp/decl.c:7893
 #, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr ""
 
-#: cp/decl.c:7632
+#: cp/decl.c:7896
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr ""
 
-#: cp/decl.c:7638
+#: cp/decl.c:7902
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr ""
 
-#: cp/decl.c:7640
+#: cp/decl.c:7904
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr ""
 
-#: cp/decl.c:7646
+#: cp/decl.c:7910
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr ""
 
-#: cp/decl.c:7684
+#: cp/decl.c:7948
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr ""
 
-#: cp/decl.c:7746
+#: cp/decl.c:8008
+#, gcc-internal-format
+msgid "declaration of %qD as array of %<auto%>"
+msgstr ""
+
+#: cp/decl.c:8016
 #, gcc-internal-format
 msgid "declaration of %qD as array of void"
 msgstr ""
 
-#: cp/decl.c:7748
+#: cp/decl.c:8018
 #, gcc-internal-format
 msgid "creating array of void"
 msgstr ""
 
-#: cp/decl.c:7753
+#: cp/decl.c:8023
 #, gcc-internal-format
 msgid "declaration of %qD as array of functions"
 msgstr ""
 
-#: cp/decl.c:7755
+#: cp/decl.c:8025
 #, gcc-internal-format
 msgid "creating array of functions"
 msgstr ""
 
-#: cp/decl.c:7760
+#: cp/decl.c:8030
 #, gcc-internal-format
 msgid "declaration of %qD as array of references"
 msgstr ""
 
-#: cp/decl.c:7762
+#: cp/decl.c:8032
 #, gcc-internal-format
 msgid "creating array of references"
 msgstr ""
 
-#: cp/decl.c:7767
+#: cp/decl.c:8037
 #, gcc-internal-format
 msgid "declaration of %qD as array of function members"
 msgstr ""
 
-#: cp/decl.c:7769
+#: cp/decl.c:8039
 #, gcc-internal-format
 msgid "creating array of function members"
 msgstr ""
 
-#: cp/decl.c:7783
+#: cp/decl.c:8053
 #, gcc-internal-format
 msgid ""
 "declaration of %qD as multidimensional array must have bounds for all "
 "dimensions except the first"
 msgstr ""
 
-#: cp/decl.c:7787
+#: cp/decl.c:8057
 #, gcc-internal-format
 msgid ""
 "multidimensional array must have bounds for all dimensions except the first"
 msgstr ""
 
-#: cp/decl.c:7822
+#: cp/decl.c:8092
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr ""
 
-#: cp/decl.c:7832
+#: cp/decl.c:8102
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr ""
 
-#: cp/decl.c:7845
+#: cp/decl.c:8115
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr ""
 
-#: cp/decl.c:7867
+#: cp/decl.c:8137
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr ""
 
-#: cp/decl.c:7874
+#: cp/decl.c:8144
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr ""
 
-#: cp/decl.c:8055
+#: cp/decl.c:8328
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr ""
 
-#: cp/decl.c:8058
+#: cp/decl.c:8331
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr ""
 
-#: cp/decl.c:8061
+#: cp/decl.c:8334
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr ""
 
-#: cp/decl.c:8073
+#: cp/decl.c:8343
+#, gcc-internal-format
+msgid "%q#T is not a class or a namespace"
+msgstr ""
+
+#: cp/decl.c:8351
 #, gcc-internal-format
 msgid "type %qT is not derived from type %qT"
 msgstr ""
 
-#: cp/decl.c:8089 cp/decl.c:8181 cp/decl.c:9483
+#: cp/decl.c:8367 cp/decl.c:8459 cp/decl.c:9788
 #, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr ""
 
-#: cp/decl.c:8095
+#: cp/decl.c:8373
 #, gcc-internal-format
 msgid "declaration of %qD as non-member"
 msgstr ""
 
-#: cp/decl.c:8126
+#: cp/decl.c:8404
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr ""
 
-#: cp/decl.c:8173
+#: cp/decl.c:8451
 #, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr ""
 
-#: cp/decl.c:8213
+#: cp/decl.c:8467
+#, gcc-internal-format
+msgid "declaration of %qD as %<typedef%>"
+msgstr ""
+
+#: cp/decl.c:8472
+#, gcc-internal-format
+msgid "declaration of %qD as parameter"
+msgstr ""
+
+#: cp/decl.c:8505
 #, gcc-internal-format
 msgid "%<constexpr%> cannot appear in a typedef declaration"
 msgstr ""
 
-#: cp/decl.c:8221
+#: cp/decl.c:8513
 #, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr ""
 
-#: cp/decl.c:8227
+#: cp/decl.c:8519
 #, gcc-internal-format
 msgid "conflicting specifiers in declaration of %qs"
 msgstr ""
 
-#: cp/decl.c:8299 cp/decl.c:8302 cp/decl.c:8305
+#: cp/decl.c:8591 cp/decl.c:8594 cp/decl.c:8597
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr ""
 
-#: cp/decl.c:8330 cp/decl.c:8352
+#: cp/decl.c:8622 cp/decl.c:8644
 #, gcc-internal-format
 msgid "%<signed%> or %<unsigned%> invalid for %qs"
 msgstr ""
 
-#: cp/decl.c:8332
+#: cp/decl.c:8624
 #, gcc-internal-format
 msgid "%<signed%> and %<unsigned%> specified together for %qs"
 msgstr ""
 
-#: cp/decl.c:8334
+#: cp/decl.c:8626
 #, gcc-internal-format
 msgid "%<long long%> invalid for %qs"
 msgstr ""
 
-#: cp/decl.c:8336
+#: cp/decl.c:8628
 #, gcc-internal-format
 msgid "%<__int128%> invalid for %qs"
 msgstr ""
 
-#: cp/decl.c:8338
+#: cp/decl.c:8630
 #, gcc-internal-format
 msgid "%<long%> invalid for %qs"
 msgstr ""
 
-#: cp/decl.c:8340
+#: cp/decl.c:8632
 #, gcc-internal-format
 msgid "%<short%> invalid for %qs"
 msgstr ""
 
-#: cp/decl.c:8342
+#: cp/decl.c:8634
 #, gcc-internal-format
 msgid "%<long%> or %<short%> invalid for %qs"
 msgstr ""
 
-#: cp/decl.c:8344
+#: cp/decl.c:8636
 #, gcc-internal-format
 msgid "%<long%>, %<int%>, %<short%>, or %<char%> invalid for %qs"
 msgstr ""
 
-#: cp/decl.c:8346
+#: cp/decl.c:8638
 #, gcc-internal-format
 msgid "%<long%> or %<short%> specified with char for %qs"
 msgstr ""
 
-#: cp/decl.c:8348
+#: cp/decl.c:8640
 #, gcc-internal-format
 msgid "%<long%> and %<short%> specified together for %qs"
 msgstr ""
 
-#: cp/decl.c:8354
+#: cp/decl.c:8646
 #, gcc-internal-format
 msgid "%<short%> or %<long%> invalid for %qs"
 msgstr ""
 
-#: cp/decl.c:8362
+#: cp/decl.c:8654
 #, gcc-internal-format
 msgid "long, short, signed or unsigned used invalidly for %qs"
 msgstr ""
 
-#: cp/decl.c:8371
+#: cp/decl.c:8663
 #, gcc-internal-format
 msgid "%<__int128%> is not supported by this target"
 msgstr ""
 
-#: cp/decl.c:8377
+#: cp/decl.c:8669
 #, gcc-internal-format
 msgid "ISO C++ does not support %<__int128%> for %qs"
 msgstr ""
 
-#: cp/decl.c:8447
+#: cp/decl.c:8739
 #, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr ""
 
-#: cp/decl.c:8475
+#: cp/decl.c:8767
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr ""
 
-#: cp/decl.c:8496
+#: cp/decl.c:8788
 #, gcc-internal-format
 msgid "member %qD cannot be declared both virtual and static"
 msgstr ""
 
-#: cp/decl.c:8504
+#: cp/decl.c:8796
 #, gcc-internal-format
 msgid "%<%T::%D%> is not a valid declarator"
 msgstr ""
 
-#: cp/decl.c:8513
+#: cp/decl.c:8805
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr ""
 
-#: cp/decl.c:8518
+#: cp/decl.c:8810
 #, gcc-internal-format
 msgid "storage class specified for template parameter %qs"
 msgstr ""
 
-#: cp/decl.c:8524
+#: cp/decl.c:8816
 #, gcc-internal-format
 msgid "storage class specifiers invalid in parameter declarations"
 msgstr ""
 
-#: cp/decl.c:8528
-#, gcc-internal-format
-msgid "parameter declared %<auto%>"
-msgstr ""
-
-#: cp/decl.c:8536
+#: cp/decl.c:8822
 #, gcc-internal-format
 msgid "a parameter cannot be declared %<constexpr%>"
 msgstr ""
 
-#: cp/decl.c:8545
+#: cp/decl.c:8831
 #, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr ""
 
-#: cp/decl.c:8563
+#: cp/decl.c:8849
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr ""
 
-#: cp/decl.c:8586
+#: cp/decl.c:8872
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr ""
 
-#: cp/decl.c:8590
+#: cp/decl.c:8876
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr ""
 
-#: cp/decl.c:8603
+#: cp/decl.c:8889
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr ""
 
-#: cp/decl.c:8607
+#: cp/decl.c:8893
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr ""
 
-#: cp/decl.c:8613
+#: cp/decl.c:8899
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr ""
 
-#: cp/decl.c:8620
+#: cp/decl.c:8906
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr ""
 
-#: cp/decl.c:8714
+#: cp/decl.c:9000
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr ""
 
-#: cp/decl.c:8719
+#: cp/decl.c:9005
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr ""
 
-#: cp/decl.c:8740
+#: cp/decl.c:9027
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without late return type"
 msgstr ""
 
-#: cp/decl.c:8746
+#: cp/decl.c:9033
 #, gcc-internal-format
 msgid ""
 "%qs function with late return type has %qT as its type rather than plain "
 "%<auto%>"
 msgstr ""
 
-#: cp/decl.c:8754
+#: cp/decl.c:9041
 #, gcc-internal-format
 msgid ""
 "%qs function with late return type not declared with %<auto%> type specifier"
 msgstr ""
 
-#: cp/decl.c:8787
+#: cp/decl.c:9074
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr ""
 
-#: cp/decl.c:8792
+#: cp/decl.c:9079
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr ""
 
-#: cp/decl.c:8810
+#: cp/decl.c:9097
 #, gcc-internal-format
 msgid "constructors cannot be declared virtual"
 msgstr ""
 
-#: cp/decl.c:8823
+#: cp/decl.c:9110
 #, gcc-internal-format
 msgid "can%'t initialize friend function %qs"
 msgstr ""
 
 #. Cannot be both friend and virtual.
-#: cp/decl.c:8827
+#: cp/decl.c:9114
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr ""
 
-#: cp/decl.c:8831
+#: cp/decl.c:9118
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr ""
 
-#: cp/decl.c:8833
+#: cp/decl.c:9120
 #, gcc-internal-format
 msgid "can%'t define friend function %qs in a local class definition"
 msgstr ""
 
-#: cp/decl.c:8854
+#: cp/decl.c:9141
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr ""
 
-#: cp/decl.c:8873
+#: cp/decl.c:9160
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr ""
 
-#: cp/decl.c:8886 cp/decl.c:8893
+#: cp/decl.c:9173 cp/decl.c:9180
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr ""
 
-#: cp/decl.c:8895
+#: cp/decl.c:9182
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr ""
 
-#: cp/decl.c:8918
+#: cp/decl.c:9205
 #, gcc-internal-format
 msgid "cannot declare reference to qualified function type %qT"
 msgstr ""
 
-#: cp/decl.c:8919
+#: cp/decl.c:9206
 #, gcc-internal-format
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr ""
 
-#: cp/decl.c:8983
+#: cp/decl.c:9280
 #, gcc-internal-format
 msgid ""
 "cannot declare reference to %q#T, which is not a typedef or a template type "
 "argument"
 msgstr ""
 
-#: cp/decl.c:9028
+#: cp/decl.c:9333
 #, gcc-internal-format
 msgid "both %<const%> and %<constexpr%> cannot be used here"
 msgstr ""
 
-#: cp/decl.c:9030
+#: cp/decl.c:9335
 #, gcc-internal-format
 msgid "both %<volatile%> and %<constexpr%> cannot be used here"
 msgstr ""
 
-#: cp/decl.c:9039
+#: cp/decl.c:9344
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr ""
 
-#: cp/decl.c:9090
+#: cp/decl.c:9395
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr ""
 
-#: cp/decl.c:9095
+#: cp/decl.c:9400
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr ""
 
-#: cp/decl.c:9125
+#: cp/decl.c:9430
 #, gcc-internal-format
 msgid "cannot define member function %<%T::%s%> within %<%T%>"
 msgstr ""
 
-#: cp/decl.c:9134
+#: cp/decl.c:9439
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr ""
 
-#: cp/decl.c:9166
+#: cp/decl.c:9465
 #, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr ""
 
-#: cp/decl.c:9176
+#: cp/decl.c:9475
 #, gcc-internal-format
 msgid "size of array %qs is too large"
 msgstr ""
 
-#: cp/decl.c:9187
+#: cp/decl.c:9486
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr ""
 
-#: cp/decl.c:9189
+#: cp/decl.c:9488
 #, 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:9197
+#: cp/decl.c:9496
 #, gcc-internal-format
 msgid "only declarations of constructors can be %<explicit%>"
 msgstr ""
 
-#: cp/decl.c:9205
+#: cp/decl.c:9504
 #, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.c:9210
+#: cp/decl.c:9509
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.c:9216
+#: cp/decl.c:9515
 #, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.c:9221
+#: cp/decl.c:9520
 #, gcc-internal-format
 msgid "static %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.c:9226
+#: cp/decl.c:9525
 #, gcc-internal-format
 msgid "const %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.c:9231
+#: cp/decl.c:9530
 #, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.c:9270
+#: cp/decl.c:9565
+#, gcc-internal-format
+msgid "typedef declared %<auto%>"
+msgstr ""
+
+#: cp/decl.c:9575
 #, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr ""
 
-#: cp/decl.c:9288
+#: cp/decl.c:9593
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr ""
 
-#: cp/decl.c:9384
+#: cp/decl.c:9689
 #, gcc-internal-format
 msgid ""
 "qualified function types cannot be used to declare static member functions"
 msgstr ""
 
-#: cp/decl.c:9386
+#: cp/decl.c:9691
 #, gcc-internal-format
 msgid "qualified function types cannot be used to declare free functions"
 msgstr ""
 
-#: cp/decl.c:9413
+#: cp/decl.c:9718
 #, gcc-internal-format
 msgid "type qualifiers specified for friend class declaration"
 msgstr ""
 
-#: cp/decl.c:9418
+#: cp/decl.c:9723
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr ""
 
-#: cp/decl.c:9426
+#: cp/decl.c:9731
 #, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr ""
 
-#: cp/decl.c:9428
+#: cp/decl.c:9733
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr ""
 
-#: cp/decl.c:9432
+#: cp/decl.c:9737
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr ""
 
-#: cp/decl.c:9445
+#: cp/decl.c:9750
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr ""
 
-#: cp/decl.c:9463
+#: cp/decl.c:9768
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr ""
 
-#: cp/decl.c:9473
+#: cp/decl.c:9778
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr ""
 
-#: cp/decl.c:9502
+#: cp/decl.c:9807
 #, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr ""
 
+#: cp/decl.c:9811
+#, gcc-internal-format
+msgid "parameter declared %<auto%>"
+msgstr ""
+
 #. Something like struct S { int N::j; };
-#: cp/decl.c:9553
+#: cp/decl.c:9869
 #, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr ""
 
-#: cp/decl.c:9575
+#: cp/decl.c:9891
 #, gcc-internal-format
 msgid "declaration of function %qD in invalid context"
 msgstr ""
 
-#: cp/decl.c:9584
+#: cp/decl.c:9900
 #, gcc-internal-format
 msgid "function %qD declared virtual inside a union"
 msgstr ""
 
-#: cp/decl.c:9593
+#: cp/decl.c:9909
 #, gcc-internal-format
 msgid "%qD cannot be declared virtual, since it is always static"
 msgstr ""
 
-#: cp/decl.c:9609
+#: cp/decl.c:9925
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr ""
 
-#: cp/decl.c:9616
+#: cp/decl.c:9932
 #, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr ""
 
-#: cp/decl.c:9622
+#: cp/decl.c:9938
 #, gcc-internal-format
 msgid "a destructor cannot be %<constexpr%>"
 msgstr ""
 
-#: cp/decl.c:9628
+#: cp/decl.c:9944
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr ""
 
-#: cp/decl.c:9673
+#: cp/decl.c:9990
 #, gcc-internal-format
 msgid "field %qD has incomplete type"
 msgstr ""
 
-#: cp/decl.c:9675
+#: cp/decl.c:9992
 #, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr ""
 
-#: cp/decl.c:9684
+#: cp/decl.c:10001
 #, gcc-internal-format
 msgid "  in instantiation of template %qT"
 msgstr ""
 
-#: cp/decl.c:9693
+#: cp/decl.c:10010
 #, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr ""
 
-#: cp/decl.c:9748
+#: cp/decl.c:10064
 #, gcc-internal-format
 msgid "non-static data member initializers"
 msgstr ""
 
-#: cp/decl.c:9752
+#: cp/decl.c:10068
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member %qD"
 msgstr ""
 
-#: cp/decl.c:9754
+#: cp/decl.c:10070
 #, gcc-internal-format
 msgid "making %qD static"
 msgstr ""
 
-#: cp/decl.c:9791
+#: cp/decl.c:10092
 #, gcc-internal-format
 msgid "constexpr static data member %qD must have an initializer"
 msgstr ""
 
-#: cp/decl.c:9800
+#: cp/decl.c:10101
 #, gcc-internal-format
 msgid "non-static data member %qE declared %<constexpr%>"
 msgstr ""
 
-#: cp/decl.c:9837
+#: cp/decl.c:10138
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.c:9839
+#: cp/decl.c:10140
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.c:9841
+#: cp/decl.c:10142
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.c:9853
+#: cp/decl.c:10145
+#, gcc-internal-format
+msgid "virt-specifiers in %qs not allowed outside a class definition"
+msgstr ""
+
+#: cp/decl.c:10156
 #, gcc-internal-format
 msgid ""
 "%<static%> specified invalid for function %qs declared out of global scope"
 msgstr ""
 
-#: cp/decl.c:9857
+#: cp/decl.c:10160
 #, gcc-internal-format
 msgid ""
 "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr ""
 
-#: cp/decl.c:9864
-#, gcc-internal-format
-msgid "%q#T is not a class or a namespace"
-msgstr ""
-
-#: cp/decl.c:9872
+#: cp/decl.c:10168
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr ""
 
-#: cp/decl.c:9879
+#: cp/decl.c:10175
 #, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr ""
 
-#: cp/decl.c:9908
+#: cp/decl.c:10204
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr ""
 
 #. FIXME need arm citation
-#: cp/decl.c:9915
+#: cp/decl.c:10211
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr ""
 
-#: cp/decl.c:9945
+#: cp/decl.c:10241
 #, gcc-internal-format
 msgid ""
 "%<static%> may not be used when defining (as opposed to declaring) a static "
 "data member"
 msgstr ""
 
-#: cp/decl.c:9952
+#: cp/decl.c:10248
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr ""
 
-#: cp/decl.c:9958
+#: cp/decl.c:10254
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr ""
 
-#: cp/decl.c:9964
+#: cp/decl.c:10261
 #, gcc-internal-format
 msgid "declaration of constexpr variable %qD is not a definition"
 msgstr ""
 
-#: cp/decl.c:9975
+#: cp/decl.c:10274
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr ""
 
-#: cp/decl.c:9979
+#: cp/decl.c:10278
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr ""
 
-#: cp/decl.c:10106
+#: cp/decl.c:10405
 #, gcc-internal-format
 msgid "default argument for %q#D has type %qT"
 msgstr ""
 
-#: cp/decl.c:10109
+#: cp/decl.c:10408
 #, gcc-internal-format
 msgid "default argument for parameter of type %qT has type %qT"
 msgstr ""
 
-#: cp/decl.c:10125
+#: cp/decl.c:10424
 #, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr ""
 
-#: cp/decl.c:10213
+#: cp/decl.c:10512
 #, gcc-internal-format
 msgid "parameter %qD has Java class type"
 msgstr ""
 
-#: cp/decl.c:10241
+#: cp/decl.c:10540
 #, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr ""
 
-#: cp/decl.c:10266
+#: cp/decl.c:10565
 #, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr ""
 
-#: cp/decl.c:10268
+#: cp/decl.c:10567
 #, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr ""
 
-#: cp/decl.c:10283
-#, gcc-internal-format
-msgid "parameter packs must be at the end of the parameter list"
-msgstr ""
-
 #. [class.copy]
 #.
 #. A declaration of a constructor for a class X is ill-formed if
@@ -27819,169 +28130,169 @@
 #. 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:10515
+#: cp/decl.c:10808
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr ""
 
-#: cp/decl.c:10637
+#: cp/decl.c:10930
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr ""
 
-#: cp/decl.c:10642
+#: cp/decl.c:10935
 #, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr ""
 
-#: cp/decl.c:10668
+#: cp/decl.c:10961
 #, gcc-internal-format
 msgid "%qD must be a nonstatic member function"
 msgstr ""
 
-#: cp/decl.c:10677
+#: cp/decl.c:10970
 #, gcc-internal-format
 msgid ""
 "%qD must be either a non-static member function or a non-member function"
 msgstr ""
 
-#: cp/decl.c:10699
+#: cp/decl.c:10992
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr ""
 
-#: cp/decl.c:10728
+#: cp/decl.c:11021
 #, gcc-internal-format
 msgid ""
 "conversion to a reference to void will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.c:10730
+#: cp/decl.c:11023
 #, gcc-internal-format
 msgid "conversion to void will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.c:10737
+#: cp/decl.c:11030
 #, gcc-internal-format
 msgid ""
 "conversion to a reference to the same type will never use a type conversion "
 "operator"
 msgstr ""
 
-#: cp/decl.c:10739
+#: cp/decl.c:11032
 #, gcc-internal-format
 msgid "conversion to the same type will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.c:10747
+#: cp/decl.c:11040
 #, gcc-internal-format
 msgid ""
 "conversion to a reference to a base class will never use a type conversion "
 "operator"
 msgstr ""
 
-#: cp/decl.c:10749
+#: cp/decl.c:11042
 #, gcc-internal-format
 msgid "conversion to a base class will never use a type conversion operator"
 msgstr ""
 
 #. 13.4.0.3
-#: cp/decl.c:10758
+#: cp/decl.c:11051
 #, gcc-internal-format
 msgid "ISO C++ prohibits overloading operator ?:"
 msgstr ""
 
-#: cp/decl.c:10763
+#: cp/decl.c:11056
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr ""
 
-#: cp/decl.c:10814
+#: cp/decl.c:11107
 #, gcc-internal-format
 msgid "postfix %qD must take %<int%> as its argument"
 msgstr ""
 
-#: cp/decl.c:10817
+#: cp/decl.c:11110
 #, gcc-internal-format
 msgid "postfix %qD must take %<int%> as its second argument"
 msgstr ""
 
-#: cp/decl.c:10825
+#: cp/decl.c:11118
 #, gcc-internal-format
 msgid "%qD must take either zero or one argument"
 msgstr ""
 
-#: cp/decl.c:10827
+#: cp/decl.c:11120
 #, gcc-internal-format
 msgid "%qD must take either one or two arguments"
 msgstr ""
 
-#: cp/decl.c:10849
+#: cp/decl.c:11142
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr ""
 
-#: cp/decl.c:10855
+#: cp/decl.c:11148
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr ""
 
-#: cp/decl.c:10864
+#: cp/decl.c:11157
 #, gcc-internal-format
 msgid "%qD must take %<void%>"
 msgstr ""
 
-#: cp/decl.c:10866 cp/decl.c:10875
+#: cp/decl.c:11159 cp/decl.c:11168
 #, gcc-internal-format
 msgid "%qD must take exactly one argument"
 msgstr ""
 
-#: cp/decl.c:10877
+#: cp/decl.c:11170
 #, gcc-internal-format
 msgid "%qD must take exactly two arguments"
 msgstr ""
 
-#: cp/decl.c:10886
+#: cp/decl.c:11179
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr ""
 
-#: cp/decl.c:10900
+#: cp/decl.c:11193
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr ""
 
-#: cp/decl.c:10911 cp/decl.c:10916
+#: cp/decl.c:11204 cp/decl.c:11209
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr ""
 
-#: cp/decl.c:10974
+#: cp/decl.c:11267
 #, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr ""
 
-#: cp/decl.c:10990
+#: cp/decl.c:11283
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr ""
 
-#: cp/decl.c:10991
+#: cp/decl.c:11284
 #, gcc-internal-format
 msgid "%q+D has a previous declaration here"
 msgstr ""
 
-#: cp/decl.c:10999
+#: cp/decl.c:11292
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr ""
 
-#: cp/decl.c:11000 cp/decl.c:11007
+#: cp/decl.c:11293 cp/decl.c:11300
 #, gcc-internal-format
 msgid "%q+T has a previous declaration here"
 msgstr ""
 
-#: cp/decl.c:11006
+#: cp/decl.c:11299
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr ""
@@ -27993,88 +28304,88 @@
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.c:11021
+#: cp/decl.c:11314
 #, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr ""
 
-#: cp/decl.c:11069 cp/name-lookup.c:2876
+#: cp/decl.c:11362 cp/name-lookup.c:2953
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr ""
 
-#: cp/decl.c:11099 cp/name-lookup.c:2381 cp/name-lookup.c:3151
-#: cp/name-lookup.c:3196 cp/parser.c:4402 cp/parser.c:19078
+#: cp/decl.c:11392 cp/name-lookup.c:2454 cp/name-lookup.c:3259
+#: cp/name-lookup.c:3304 cp/parser.c:4422 cp/parser.c:19341
 #, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr ""
 
-#: cp/decl.c:11213
+#: cp/decl.c:11504
 #, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr ""
 
-#: cp/decl.c:11234
+#: cp/decl.c:11525
 #, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr ""
 
-#: cp/decl.c:11235
+#: cp/decl.c:11526
 #, gcc-internal-format
 msgid "previous declaration %q+D"
 msgstr ""
 
-#: cp/decl.c:11354
+#: cp/decl.c:11659
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr ""
 
-#: cp/decl.c:11363
+#: cp/decl.c:11668
 #, gcc-internal-format
 msgid "Java class %qT cannot have multiple bases"
 msgstr ""
 
-#: cp/decl.c:11374
+#: cp/decl.c:11679
 #, gcc-internal-format
 msgid "Java class %qT cannot have virtual bases"
 msgstr ""
 
-#: cp/decl.c:11394
+#: cp/decl.c:11699
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr ""
 
-#: cp/decl.c:11427
+#: cp/decl.c:11732
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr ""
 
-#: cp/decl.c:11429
+#: cp/decl.c:11734
 #, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr ""
 
-#: cp/decl.c:11549
+#: cp/decl.c:11854
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.c:11552 cp/decl.c:11560 cp/decl.c:11572 cp/parser.c:13373
+#: cp/decl.c:11857 cp/decl.c:11865 cp/decl.c:11877 cp/parser.c:13553
 #, gcc-internal-format
 msgid "previous definition here"
 msgstr ""
 
-#: cp/decl.c:11557
+#: cp/decl.c:11862
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.c:11569
+#: cp/decl.c:11874
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr ""
 
-#: cp/decl.c:11621
+#: cp/decl.c:11926
 #, gcc-internal-format
 msgid "underlying type %<%T%> of %<%T%> must be an integral type"
 msgstr ""
@@ -28083,87 +28394,87 @@
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.c:11755
+#: cp/decl.c:12060
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr ""
 
-#: cp/decl.c:11891
+#: cp/decl.c:12196
 #, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr ""
 
-#: cp/decl.c:11923
+#: cp/decl.c:12245
+#, gcc-internal-format
+msgid "incremented enumerator value is too large for %<unsigned long%>"
+msgstr ""
+
+#: cp/decl.c:12257
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr ""
 
-#: cp/decl.c:11943
+#: cp/decl.c:12277
 #, gcc-internal-format
 msgid "enumerator value %E is too large for underlying type %<%T%>"
 msgstr ""
 
-#: cp/decl.c:12040
+#: cp/decl.c:12374
 #, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr ""
 
-#: cp/decl.c:12042
+#: cp/decl.c:12376
 #, gcc-internal-format
 msgid "return type has Java class type %q#T"
 msgstr ""
 
-#: cp/decl.c:12170 cp/typeck.c:7694
+#: cp/decl.c:12500 cp/typeck.c:7742
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr ""
 
-#: cp/decl.c:12265
+#: cp/decl.c:12595
 #, gcc-internal-format
 msgid "no previous declaration for %q+D"
 msgstr ""
 
-#: cp/decl.c:12488
+#: cp/decl.c:12813
 #, gcc-internal-format
 msgid "invalid function declaration"
 msgstr ""
 
-#: cp/decl.c:12572
+#: cp/decl.c:12897
 #, gcc-internal-format
 msgid "parameter %qD declared void"
 msgstr ""
 
-#: cp/decl.c:13032
+#: cp/decl.c:13358
 #, gcc-internal-format
 msgid "parameter %q+D set but not used"
 msgstr ""
 
-#: cp/decl.c:13123
+#: cp/decl.c:13449
 #, gcc-internal-format
 msgid "invalid member function declaration"
 msgstr ""
 
-#: cp/decl.c:13137
+#: cp/decl.c:13463
 #, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr ""
 
-#: cp/decl.c:13351
-#, gcc-internal-format
-msgid "static member function %q#D declared with type qualifiers"
-msgstr ""
-
-#: cp/decl2.c:319
+#: cp/decl2.c:318
 #, gcc-internal-format
 msgid "name missing for member function"
 msgstr ""
 
-#: cp/decl2.c:390 cp/decl2.c:404
+#: cp/decl2.c:389 cp/decl2.c:403
 #, gcc-internal-format
 msgid "ambiguous conversion for array subscript"
 msgstr ""
 
-#: cp/decl2.c:398
+#: cp/decl2.c:397
 #, gcc-internal-format
 msgid "invalid types %<%T[%T]%> for array subscript"
 msgstr ""
@@ -28190,98 +28501,98 @@
 msgid "deleting %qT is undefined"
 msgstr ""
 
-#: cp/decl2.c:510 cp/pt.c:4754
+#: cp/decl2.c:511 cp/pt.c:4756
 #, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr ""
 
-#: cp/decl2.c:562
+#: cp/decl2.c:563
 #, gcc-internal-format
 msgid "Java method %qD has non-Java return type %qT"
 msgstr ""
 
-#: cp/decl2.c:579
+#: cp/decl2.c:580
 #, gcc-internal-format
 msgid "Java method %qD has non-Java parameter type %qT"
 msgstr ""
 
-#: cp/decl2.c:628
+#: cp/decl2.c:629
 #, gcc-internal-format
 msgid ""
 "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr ""
 
-#: cp/decl2.c:696
+#: cp/decl2.c:697
 #, gcc-internal-format
 msgid "prototype for %q#D does not match any in class %qT"
 msgstr ""
 
-#: cp/decl2.c:772
+#: cp/decl2.c:773
 #, gcc-internal-format
 msgid "local class %q#T shall not have static data member %q#D"
 msgstr ""
 
-#: cp/decl2.c:833
+#: cp/decl2.c:834
 #, gcc-internal-format
 msgid "explicit template argument list not allowed"
 msgstr ""
 
-#: cp/decl2.c:839
+#: cp/decl2.c:840
 #, gcc-internal-format
 msgid "member %qD conflicts with virtual function table field name"
 msgstr ""
 
-#: cp/decl2.c:875
+#: cp/decl2.c:876
 #, gcc-internal-format
 msgid "%qD is already defined in %qT"
 msgstr ""
 
-#: cp/decl2.c:910
+#: cp/decl2.c:911
 #, gcc-internal-format
 msgid "invalid initializer for member function %qD"
 msgstr ""
 
-#: cp/decl2.c:916
+#: cp/decl2.c:917
 #, gcc-internal-format
 msgid "initializer specified for static member function %qD"
 msgstr ""
 
-#: cp/decl2.c:938
+#: cp/decl2.c:939
 #, gcc-internal-format
 msgid "field initializer is not constant"
 msgstr ""
 
-#: cp/decl2.c:965
+#: cp/decl2.c:966
 #, gcc-internal-format
 msgid "%<asm%> specifiers are not permitted on non-static data members"
 msgstr ""
 
-#: cp/decl2.c:1017
+#: cp/decl2.c:1018
 #, gcc-internal-format
 msgid "bit-field %qD with non-integral type"
 msgstr ""
 
-#: cp/decl2.c:1023
+#: cp/decl2.c:1024
 #, gcc-internal-format
 msgid "cannot declare %qD to be a bit-field type"
 msgstr ""
 
-#: cp/decl2.c:1033
+#: cp/decl2.c:1034
 #, gcc-internal-format
 msgid "cannot declare bit-field %qD with function type"
 msgstr ""
 
-#: cp/decl2.c:1040
+#: cp/decl2.c:1041
 #, gcc-internal-format
 msgid "%qD is already defined in the class %qT"
 msgstr ""
 
-#: cp/decl2.c:1047
+#: cp/decl2.c:1048
 #, gcc-internal-format
 msgid "static member %qD cannot be a bit-field"
 msgstr ""
 
-#: cp/decl2.c:1057
+#: cp/decl2.c:1058
 #, gcc-internal-format
 msgid "width of bit-field %qD has non-integral type %qT"
 msgstr ""
@@ -28350,103 +28661,103 @@
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr ""
 
-#: cp/decl2.c:3616
+#: cp/decl2.c:3619
 #, gcc-internal-format
 msgid "%q+#D, declared using anonymous type, is used but never defined"
 msgstr ""
 
-#: cp/decl2.c:3623
+#: cp/decl2.c:3626
 #, gcc-internal-format
 msgid "%q+#D, declared using local type %qT, is used but never defined"
 msgstr ""
 
-#: cp/decl2.c:3952
+#: cp/decl2.c:3955
 #, gcc-internal-format
 msgid "inline function %q+D used but never defined"
 msgstr ""
 
-#: cp/decl2.c:4127
+#: cp/decl2.c:4142
 #, gcc-internal-format
 msgid "default argument missing for parameter %P of %q+#D"
 msgstr ""
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.c:4183
+#: cp/decl2.c:4198
 #, gcc-internal-format
 msgid "converting lambda which uses %<...%> to function pointer"
 msgstr ""
 
-#: cp/decl2.c:4188
+#: cp/decl2.c:4203
 #, gcc-internal-format
 msgid "use of deleted function %qD"
 msgstr ""
 
-#: cp/error.c:3110
+#: cp/error.c:3166
 #, gcc-internal-format
 msgid ""
 "extended initializer lists only available with -std=c++0x or -std=gnu++0x"
 msgstr ""
 
-#: cp/error.c:3115
+#: cp/error.c:3171
 #, gcc-internal-format
 msgid ""
 "explicit conversion operators only available with -std=c++0x or -std=gnu++0x"
 msgstr ""
 
-#: cp/error.c:3120
+#: cp/error.c:3176
 #, gcc-internal-format
 msgid "variadic templates only available with -std=c++0x or -std=gnu++0x"
 msgstr ""
 
-#: cp/error.c:3125
+#: cp/error.c:3181
 #, gcc-internal-format
 msgid "lambda expressions only available with -std=c++0x or -std=gnu++0x"
 msgstr ""
 
-#: cp/error.c:3130
+#: cp/error.c:3186
 #, gcc-internal-format
 msgid "C++0x auto only available with -std=c++0x or -std=gnu++0x"
 msgstr ""
 
-#: cp/error.c:3134
+#: cp/error.c:3190
 #, gcc-internal-format
 msgid "scoped enums only available with -std=c++0x or -std=gnu++0x"
 msgstr ""
 
-#: cp/error.c:3138
+#: cp/error.c:3194
 #, gcc-internal-format
 msgid ""
 "defaulted and deleted functions only available with -std=c++0x or -std=gnu+"
 "+0x"
 msgstr ""
 
-#: cp/error.c:3143
+#: cp/error.c:3199
 #, gcc-internal-format
 msgid "inline namespaces only available with -std=c++0x or -std=gnu++0x"
 msgstr ""
 
-#: cp/error.c:3190
+#: cp/error.c:3246
 #, gcc-internal-format
 msgid "incomplete type %qT used in nested name specifier"
 msgstr ""
 
-#: cp/error.c:3194
+#: cp/error.c:3250
 #, gcc-internal-format
 msgid "reference to %<%T::%D%> is ambiguous"
 msgstr ""
 
-#: cp/error.c:3199 cp/typeck.c:2146
+#: cp/error.c:3255 cp/typeck.c:2160
 #, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr ""
 
-#: cp/error.c:3203
+#: cp/error.c:3259
 #, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr ""
 
-#: cp/error.c:3208
+#: cp/error.c:3264
 #, gcc-internal-format
 msgid "%<::%D%> has not been declared"
 msgstr ""
@@ -28483,7 +28794,7 @@
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr ""
 
-#: cp/except.c:680 cp/init.c:2112
+#: cp/except.c:680 cp/init.c:2138
 #, gcc-internal-format
 msgid "%qD should never be overloaded"
 msgstr ""
@@ -28529,7 +28840,7 @@
 msgid "%qD is already a friend of class %qT"
 msgstr ""
 
-#: cp/friend.c:229
+#: cp/friend.c:236
 #, gcc-internal-format
 msgid "invalid type %qT declared %<friend%>"
 msgstr ""
@@ -28541,353 +28852,372 @@
 #. [temp.friend]
 #. Friend declarations shall not declare partial
 #. specializations.
-#: cp/friend.c:245 cp/friend.c:275
+#: cp/friend.c:252 cp/friend.c:282
 #, gcc-internal-format
 msgid "partial specialization %qT declared %<friend%>"
 msgstr ""
 
-#: cp/friend.c:253
+#: cp/friend.c:260
 #, gcc-internal-format
 msgid "class %qT is implicitly friends with itself"
 msgstr ""
 
-#: cp/friend.c:311
+#: cp/friend.c:318
 #, gcc-internal-format
 msgid "%qT is not a member of %qT"
 msgstr ""
 
-#: cp/friend.c:316
+#: cp/friend.c:323
 #, gcc-internal-format
 msgid "%qT is not a member class template of %qT"
 msgstr ""
 
-#: cp/friend.c:324
+#: cp/friend.c:331
 #, gcc-internal-format
 msgid "%qT is not a nested class of %qT"
 msgstr ""
 
 #. template <class T> friend class T;
-#: cp/friend.c:337
+#: cp/friend.c:344
 #, gcc-internal-format
 msgid "template parameter type %qT declared %<friend%>"
 msgstr ""
 
 #. template <class T> friend class A; where A is not a template
-#: cp/friend.c:343
+#: cp/friend.c:350
 #, gcc-internal-format
 msgid "%q#T is not a template"
 msgstr ""
 
-#: cp/friend.c:365
+#: cp/friend.c:372
 #, gcc-internal-format
 msgid "%qD is already a friend of %qT"
 msgstr ""
 
-#: cp/friend.c:374
+#: cp/friend.c:381
 #, gcc-internal-format
 msgid "%qT is already a friend of %qT"
 msgstr ""
 
-#: cp/friend.c:498
+#: cp/friend.c:505
 #, gcc-internal-format
 msgid "member %qD declared as friend before type %qT defined"
 msgstr ""
 
-#: cp/friend.c:547
+#: cp/friend.c:554
 #, gcc-internal-format
 msgid "friend declaration %qD in local class without prior declaration"
 msgstr ""
 
-#: cp/friend.c:570
+#: cp/friend.c:577
 #, gcc-internal-format
 msgid "friend declaration %q#D declares a non-template function"
 msgstr ""
 
-#: cp/friend.c:574
+#: cp/friend.c:581
 #, gcc-internal-format
 msgid ""
 "(if this is not what you intended, make sure the function template has "
 "already been declared and add <> after the function name here) "
 msgstr ""
 
-#: cp/init.c:394
-#, gcc-internal-format
-msgid "value-initialization of reference"
-msgstr ""
-
-#: cp/init.c:430
+#: cp/init.c:426
 #, gcc-internal-format
 msgid "cannot value-initialize array of unknown bound %qT"
 msgstr ""
 
-#: cp/init.c:479
+#: cp/init.c:466
+#, gcc-internal-format
+msgid "value-initialization of function type %qT"
+msgstr ""
+
+#: cp/init.c:472
+#, gcc-internal-format
+msgid "value-initialization of reference type %qT"
+msgstr ""
+
+#: cp/init.c:493
 #, gcc-internal-format
 msgid "%qD should be initialized in the member initialization list"
 msgstr ""
 
-#: cp/init.c:503
+#: cp/init.c:511
 #, gcc-internal-format
-msgid "value-initialization of %q#D, which has reference type"
+msgid "%qD is initialized with itself"
 msgstr ""
 
-#: cp/init.c:542
+#: cp/init.c:564
 #, gcc-internal-format
 msgid "invalid initializer for array member %q#D"
 msgstr ""
 
-#: cp/init.c:555 cp/init.c:573
+#: cp/init.c:577 cp/init.c:595
 #, gcc-internal-format
 msgid "uninitialized member %qD with %<const%> type %qT"
 msgstr ""
 
-#: cp/init.c:569
+#: cp/init.c:591
 #, gcc-internal-format
 msgid "uninitialized reference member %qD"
 msgstr ""
 
-#: cp/init.c:582
+#: cp/init.c:604
 #, gcc-internal-format
 msgid "uninitialized member %qD in %<constexpr%> constructor"
 msgstr ""
 
-#: cp/init.c:739
+#: cp/init.c:762
 #, gcc-internal-format
 msgid "%q+D will be initialized after"
 msgstr ""
 
-#: cp/init.c:742
+#: cp/init.c:765
 #, gcc-internal-format
 msgid "base %qT will be initialized after"
 msgstr ""
 
-#: cp/init.c:745
+#: cp/init.c:768
 #, gcc-internal-format
 msgid "  %q+#D"
 msgstr ""
 
-#: cp/init.c:747
+#: cp/init.c:770
 #, gcc-internal-format
 msgid "  base %qT"
 msgstr ""
 
-#: cp/init.c:749
+#: cp/init.c:772
 #, gcc-internal-format
 msgid "  when initialized here"
 msgstr ""
 
-#: cp/init.c:766
+#: cp/init.c:789
 #, gcc-internal-format
 msgid "multiple initializations given for %qD"
 msgstr ""
 
-#: cp/init.c:770
+#: cp/init.c:793
 #, gcc-internal-format
 msgid "multiple initializations given for base %qT"
 msgstr ""
 
-#: cp/init.c:854
+#: cp/init.c:877
 #, gcc-internal-format
 msgid "initializations for multiple members of %qT"
 msgstr ""
 
-#: cp/init.c:932
+#: cp/init.c:955
 #, gcc-internal-format
 msgid ""
 "base class %q#T should be explicitly initialized in the copy constructor"
 msgstr ""
 
-#: cp/init.c:941
+#: cp/init.c:964
 #, gcc-internal-format
 msgid "uninitialized base %qT in %<constexpr%> constructor"
 msgstr ""
 
-#: cp/init.c:1167 cp/init.c:1186
+#: cp/init.c:1190 cp/init.c:1209
 #, gcc-internal-format
 msgid "class %qT does not have any field named %qD"
 msgstr ""
 
-#: cp/init.c:1173
+#: cp/init.c:1196
 #, gcc-internal-format
 msgid ""
 "%q#D is a static data member; it can only be initialized at its definition"
 msgstr ""
 
-#: cp/init.c:1180
+#: cp/init.c:1203
 #, gcc-internal-format
 msgid "%q#D is not a non-static data member of %qT"
 msgstr ""
 
-#: cp/init.c:1219
+#: cp/init.c:1242
 #, gcc-internal-format
 msgid "unnamed initializer for %qT, which has no base classes"
 msgstr ""
 
-#: cp/init.c:1227
+#: cp/init.c:1250
 #, gcc-internal-format
 msgid "unnamed initializer for %qT, which uses multiple inheritance"
 msgstr ""
 
-#: cp/init.c:1273
+#: cp/init.c:1296
 #, gcc-internal-format
 msgid "%qD is both a direct base and an indirect virtual base"
 msgstr ""
 
-#: cp/init.c:1281
+#: cp/init.c:1304
 #, gcc-internal-format
 msgid "type %qT is not a direct or virtual base of %qT"
 msgstr ""
 
-#: cp/init.c:1284
+#: cp/init.c:1307
 #, gcc-internal-format
 msgid "type %qT is not a direct base of %qT"
 msgstr ""
 
-#: cp/init.c:1367
+#: cp/init.c:1390
 #, gcc-internal-format
 msgid "bad array initializer"
 msgstr ""
 
-#: cp/init.c:1597 cp/semantics.c:2690
+#: cp/init.c:1620 cp/semantics.c:2772
 #, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr ""
 
-#: cp/init.c:1651
+#: cp/init.c:1674
 #, gcc-internal-format
 msgid "incomplete type %qT does not have member %qD"
 msgstr ""
 
-#: cp/init.c:1664
+#: cp/init.c:1687
 #, gcc-internal-format
 msgid "invalid pointer to bit-field %qD"
 msgstr ""
 
-#: cp/init.c:1741
+#: cp/init.c:1764
 #, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr ""
 
-#: cp/init.c:1747
+#: cp/init.c:1770
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr ""
 
-#: cp/init.c:1914
+#: cp/init.c:1940
 #, gcc-internal-format
 msgid ""
 "uninitialized reference member in %q#T using %<new%> without new-initializer"
 msgstr ""
 
-#: cp/init.c:1917
+#: cp/init.c:1943
 #, gcc-internal-format
 msgid "uninitialized reference member in %q#T"
 msgstr ""
 
-#: cp/init.c:1929
+#: cp/init.c:1955
 #, gcc-internal-format
 msgid ""
 "uninitialized const member in %q#T using %<new%> without new-initializer"
 msgstr ""
 
-#: cp/init.c:1932
+#: cp/init.c:1958
 #, gcc-internal-format
 msgid "uninitialized const member in %q#T"
 msgstr ""
 
-#: cp/init.c:2029
+#: cp/init.c:2055
 #, gcc-internal-format
 msgid "invalid type %<void%> for new"
 msgstr ""
 
-#: cp/init.c:2072
+#: cp/init.c:2098
 #, gcc-internal-format
 msgid "uninitialized const in %<new%> of %q#T"
 msgstr ""
 
-#: cp/init.c:2106
+#: cp/init.c:2132
 #, gcc-internal-format
 msgid "call to Java constructor with %qs undefined"
 msgstr ""
 
-#: cp/init.c:2122
+#: cp/init.c:2148
 #, gcc-internal-format
 msgid "Java class %q#T object allocated using placement new"
 msgstr ""
 
-#: cp/init.c:2152
+#: cp/init.c:2178
 #, gcc-internal-format
 msgid "no suitable %qD found in class %qT"
 msgstr ""
 
-#: cp/init.c:2159 cp/search.c:1103
+#: cp/init.c:2185 cp/search.c:1103
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr ""
 
-#: cp/init.c:2364
+#: cp/init.c:2390
 #, gcc-internal-format
 msgid ""
 "non-constant array size in new, unable to verify length of initializer-list"
 msgstr ""
 
-#: cp/init.c:2373
+#: cp/init.c:2399
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization in array new"
 msgstr ""
 
-#: cp/init.c:2606
+#: cp/init.c:2631
 #, gcc-internal-format
 msgid "size in array new must have integral type"
 msgstr ""
 
-#: cp/init.c:2620
+#: cp/init.c:2645
 #, gcc-internal-format
 msgid "new cannot be applied to a reference type"
 msgstr ""
 
-#: cp/init.c:2629
+#: cp/init.c:2654
 #, gcc-internal-format
 msgid "new cannot be applied to a function type"
 msgstr ""
 
-#: cp/init.c:2673
+#: cp/init.c:2698
 #, gcc-internal-format
 msgid "call to Java constructor, while %<jclass%> undefined"
 msgstr ""
 
-#: cp/init.c:2691
+#: cp/init.c:2716
 #, gcc-internal-format
 msgid "can%'t find %<class$%> in %qT"
 msgstr ""
 
-#: cp/init.c:3142
+#: cp/init.c:3184
 #, gcc-internal-format
 msgid "initializer ends prematurely"
 msgstr ""
 
-#: cp/init.c:3204
+#: cp/init.c:3248
 #, gcc-internal-format
 msgid "cannot initialize multi-dimensional array with initializer"
 msgstr ""
 
-#: cp/init.c:3363
+#: cp/init.c:3414
 #, gcc-internal-format
 msgid "possible problem detected in invocation of delete operator:"
 msgstr ""
 
-#: cp/init.c:3367
+#: cp/init.c:3418
 #, gcc-internal-format
 msgid ""
 "neither the destructor nor the class-specific operator delete will be "
 "called, even if they are declared when the class is defined"
 msgstr ""
 
-#: cp/init.c:3389
+#: cp/init.c:3433
+#, gcc-internal-format
+msgid ""
+"deleting object of abstract class type %qT which has non-virtual destructor "
+"will cause undefined behaviour"
+msgstr ""
+
+#: cp/init.c:3438
+#, gcc-internal-format
+msgid ""
+"deleting object of polymorphic class type %qT which has non-virtual "
+"destructor might cause undefined behaviour"
+msgstr ""
+
+#: cp/init.c:3460
 #, gcc-internal-format
 msgid "unknown array size in delete"
 msgstr ""
 
-#: cp/init.c:3650
+#: cp/init.c:3731
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr ""
@@ -28956,32 +29286,37 @@
 msgid "mangling typeof, use decltype instead"
 msgstr ""
 
-#: cp/mangle.c:2215
+#: cp/mangle.c:1995
+#, gcc-internal-format
+msgid "mangling __underlying_type"
+msgstr ""
+
+#: cp/mangle.c:2219
 #, gcc-internal-format
 msgid "mangling unknown fixed point type"
 msgstr ""
 
-#: cp/mangle.c:2642
+#: cp/mangle.c:2655
 #, gcc-internal-format, gfc-internal-format
 msgid "mangling %C"
 msgstr ""
 
-#: cp/mangle.c:2694
+#: cp/mangle.c:2707
 #, gcc-internal-format
 msgid "mangling new-expression"
 msgstr ""
 
-#: cp/mangle.c:2728
+#: cp/mangle.c:2725
 #, gcc-internal-format
 msgid "omitted middle operand to %<?:%> operand cannot be mangled"
 msgstr ""
 
-#: cp/mangle.c:2768
+#: cp/mangle.c:2765
 #, gcc-internal-format
 msgid "string literal in function template signature"
 msgstr ""
 
-#: cp/mangle.c:3040
+#: cp/mangle.c:3037
 #, gcc-internal-format
 msgid "the mangled name of %qD will change in a future version of GCC"
 msgstr ""
@@ -28992,109 +29327,109 @@
 "-fabi-version=4 (or =0) avoids this error with a change in vector mangling"
 msgstr ""
 
-#: cp/method.c:395
+#: cp/method.c:401
 #, gcc-internal-format
 msgid "generic thunk code fails for method %q#D which uses %<...%>"
 msgstr ""
 
-#: cp/method.c:651 cp/method.c:991
+#: cp/method.c:657 cp/method.c:997
 #, gcc-internal-format
 msgid "non-static const member %q#D, can%'t use default assignment operator"
 msgstr ""
 
-#: cp/method.c:657 cp/method.c:997
+#: cp/method.c:663 cp/method.c:1003
 #, gcc-internal-format
 msgid ""
 "non-static reference member %q#D, can%'t use default assignment operator"
 msgstr ""
 
-#: cp/method.c:773
+#: cp/method.c:779
 #, gcc-internal-format
 msgid "synthesized method %qD first required here "
 msgstr ""
 
-#: cp/method.c:935
+#: cp/method.c:941
 #, gcc-internal-format
 msgid "union member %q+D with non-trivial %qD"
 msgstr ""
 
-#: cp/method.c:1014
+#: cp/method.c:1020
 #, gcc-internal-format
 msgid "uninitialized non-static const member %q#D"
 msgstr ""
 
-#: cp/method.c:1020
+#: cp/method.c:1026
 #, gcc-internal-format
 msgid "uninitialized non-static reference member %q#D"
 msgstr ""
 
-#: cp/method.c:1250
+#: cp/method.c:1256
 #, gcc-internal-format
 msgid ""
 "%qT has virtual bases, default move assignment operator cannot be generated"
 msgstr ""
 
-#: cp/method.c:1343
+#: cp/method.c:1349
 #, gcc-internal-format
 msgid "a lambda closure type has a deleted default constructor"
 msgstr ""
 
-#: cp/method.c:1345
+#: cp/method.c:1351
 #, gcc-internal-format
 msgid "a lambda closure type has a deleted copy assignment operator"
 msgstr ""
 
-#: cp/method.c:1354
+#: cp/method.c:1360
 #, gcc-internal-format
 msgid ""
 "%qD is implicitly deleted because the default definition would be ill-formed:"
 msgstr ""
 
-#: cp/method.c:1546
+#: cp/method.c:1552
 #, gcc-internal-format
 msgid "defaulted declaration %q+D"
 msgstr ""
 
-#: cp/method.c:1548
+#: cp/method.c:1554
 #, gcc-internal-format
 msgid "does not match expected signature %qD"
 msgstr ""
 
-#: cp/method.c:1569
+#: cp/method.c:1568
+#, gcc-internal-format
+msgid ""
+"function %q+D defaulted on its first declaration with an exception-"
+"specification that differs from the implicit declaration %q#D"
+msgstr ""
+
+#: cp/method.c:1584
 #, gcc-internal-format
 msgid "%qD cannot be declared as constexpr"
 msgstr ""
 
-#: cp/method.c:1609
+#: cp/method.c:1602
+#, gcc-internal-format
+msgid "a template cannot be defaulted"
+msgstr ""
+
+#: cp/method.c:1630
 #, gcc-internal-format
 msgid "%qD cannot be defaulted"
 msgstr ""
 
-#: cp/method.c:1618
+#: cp/method.c:1639
 #, gcc-internal-format
 msgid "defaulted function %q+D with default argument"
 msgstr ""
 
-#: cp/method.c:1624
-#, gcc-internal-format
-msgid ""
-"function %q+D defaulted on its first declaration must not have an exception-"
-"specification"
-msgstr ""
-
-#: cp/method.c:1627
-#, gcc-internal-format
-msgid "%qD declared virtual cannot be defaulted in the class body"
-msgstr ""
-
-#: cp/method.c:1704
+#: cp/method.c:1718
 #, gcc-internal-format
 msgid ""
 "vtable layout for class %qT may not be ABI-compliantand may change in a "
 "future version of GCC due to implicit virtual destructor"
 msgstr ""
 
-#: cp/name-lookup.c:732
+#: cp/name-lookup.c:721
 #, gcc-internal-format
 msgid "redeclaration of %<wchar_t%> as %qT"
 msgstr ""
@@ -29105,1110 +29440,1163 @@
 #. [basic.start.main]
 #.
 #. This function shall not be overloaded.
-#: cp/name-lookup.c:762
+#: cp/name-lookup.c:751
 #, gcc-internal-format
 msgid "invalid redeclaration of %q+D"
 msgstr ""
 
-#: cp/name-lookup.c:763
+#: cp/name-lookup.c:752
 #, gcc-internal-format
 msgid "as %qD"
 msgstr ""
 
-#: cp/name-lookup.c:809 cp/name-lookup.c:820
+#: cp/name-lookup.c:799 cp/name-lookup.c:812
 #, gcc-internal-format
 msgid "declaration of %q#D with C language linkage"
 msgstr ""
 
-#: cp/name-lookup.c:813
+#: cp/name-lookup.c:805
 #, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr ""
 
-#: cp/name-lookup.c:904
+#: cp/name-lookup.c:896
 #, gcc-internal-format
 msgid "type mismatch with previous external decl of %q#D"
 msgstr ""
 
-#: cp/name-lookup.c:905
+#: cp/name-lookup.c:897
 #, gcc-internal-format
 msgid "previous external decl of %q+#D"
 msgstr ""
 
-#: cp/name-lookup.c:996
+#: cp/name-lookup.c:995
 #, gcc-internal-format
 msgid "extern declaration of %q#D doesn%'t match"
 msgstr ""
 
-#: cp/name-lookup.c:997
+#: cp/name-lookup.c:996
 #, gcc-internal-format
 msgid "global declaration %q+#D"
 msgstr ""
 
-#: cp/name-lookup.c:1054 cp/name-lookup.c:1083
+#: cp/name-lookup.c:1048 cp/name-lookup.c:1091
 #, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr ""
 
-#: cp/name-lookup.c:1086
+#: cp/name-lookup.c:1084
+#, gcc-internal-format
+msgid "%q+#D previously declared here"
+msgstr ""
+
+#: cp/name-lookup.c:1094
+#, gcc-internal-format
+msgid "declaration of %qD shadows a lambda capture"
+msgstr ""
+
+#: cp/name-lookup.c:1098
 #, gcc-internal-format
 msgid "declaration of %qD shadows a previous local"
 msgstr ""
 
 #. Location of previous decl is not useful in this case.
-#: cp/name-lookup.c:1115
+#: cp/name-lookup.c:1127
 #, gcc-internal-format
 msgid "declaration of %qD shadows a member of 'this'"
 msgstr ""
 
-#: cp/name-lookup.c:1129
+#: cp/name-lookup.c:1141
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr ""
 
-#: cp/name-lookup.c:1252
+#: cp/name-lookup.c:1276
 #, gcc-internal-format
 msgid "name lookup of %qD changed"
 msgstr ""
 
-#: cp/name-lookup.c:1253
+#: cp/name-lookup.c:1277
 #, gcc-internal-format
 msgid "  matches this %q+D under ISO standard rules"
 msgstr ""
 
-#: cp/name-lookup.c:1255
+#: cp/name-lookup.c:1279
 #, gcc-internal-format
 msgid "  matches this %q+D under old rules"
 msgstr ""
 
-#: cp/name-lookup.c:1273 cp/name-lookup.c:1281
+#: cp/name-lookup.c:1297 cp/name-lookup.c:1305
 #, gcc-internal-format
 msgid "name lookup of %qD changed for ISO %<for%> scoping"
 msgstr ""
 
-#: cp/name-lookup.c:1275
+#: cp/name-lookup.c:1299
 #, gcc-internal-format
 msgid "  cannot use obsolete binding at %q+D because it has a destructor"
 msgstr ""
 
-#: cp/name-lookup.c:1284
+#: cp/name-lookup.c:1308
 #, gcc-internal-format
 msgid "  using obsolete binding at %q+D"
 msgstr ""
 
-#: cp/name-lookup.c:1290 cp/parser.c:11414
+#: cp/name-lookup.c:1314 cp/parser.c:11578
 #, gcc-internal-format
 msgid "(if you use %<-fpermissive%> G++ will accept your code)"
 msgstr ""
 
-#: cp/name-lookup.c:1345
+#: cp/name-lookup.c:1369
 #, gcc-internal-format
 msgid "%s %s(%E) %p %d\n"
 msgstr ""
 
-#: cp/name-lookup.c:1348
+#: cp/name-lookup.c:1372
 #, gcc-internal-format
 msgid "%s %s %p %d\n"
 msgstr ""
 
-#: cp/name-lookup.c:2094
+#: cp/name-lookup.c:2155
 #, gcc-internal-format
 msgid "%q#D hides constructor for %q#T"
 msgstr ""
 
-#: cp/name-lookup.c:2111
+#: cp/name-lookup.c:2172
 #, gcc-internal-format
 msgid "%q#D conflicts with previous using declaration %q#D"
 msgstr ""
 
-#: cp/name-lookup.c:2134
+#: cp/name-lookup.c:2195
 #, gcc-internal-format
 msgid "previous non-function declaration %q+#D"
 msgstr ""
 
-#: cp/name-lookup.c:2135
+#: cp/name-lookup.c:2196
 #, 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:2213 cp/name-lookup.c:2238
+#: cp/name-lookup.c:2286 cp/name-lookup.c:2311
 #, 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:2223
+#: cp/name-lookup.c:2296
 #, gcc-internal-format
 msgid "a using-declaration cannot specify a template-id.  Try %<using %D%>"
 msgstr ""
 
-#: cp/name-lookup.c:2230
+#: cp/name-lookup.c:2303
 #, gcc-internal-format
 msgid "namespace %qD not allowed in using-declaration"
 msgstr ""
 
-#: cp/name-lookup.c:2266
+#: cp/name-lookup.c:2339
 #, gcc-internal-format
 msgid "%qD not declared"
 msgstr ""
 
-#: cp/name-lookup.c:2302 cp/name-lookup.c:2339 cp/name-lookup.c:2373
-#: cp/name-lookup.c:2388
+#: cp/name-lookup.c:2375 cp/name-lookup.c:2412 cp/name-lookup.c:2446
+#: cp/name-lookup.c:2461
 #, gcc-internal-format
 msgid "%qD is already declared in this scope"
 msgstr ""
 
-#: cp/name-lookup.c:2995
+#: cp/name-lookup.c:3084
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr ""
 
-#: cp/name-lookup.c:3002
+#: cp/name-lookup.c:3091
 #, gcc-internal-format
 msgid "%<%T::%D%> names destructor"
 msgstr ""
 
-#: cp/name-lookup.c:3007
+#: cp/name-lookup.c:3096
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor"
 msgstr ""
 
-#: cp/name-lookup.c:3012
+#: cp/name-lookup.c:3101
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr ""
 
-#: cp/name-lookup.c:3062
+#: cp/name-lookup.c:3151
 #, gcc-internal-format
 msgid "no members matching %<%T::%D%> in %q#T"
 msgstr ""
 
-#: cp/name-lookup.c:3130
+#: cp/name-lookup.c:3238
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr ""
 
-#: cp/name-lookup.c:3138
+#: cp/name-lookup.c:3246
 #, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr ""
 
-#: cp/name-lookup.c:3221
+#: cp/name-lookup.c:3329
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr ""
 
-#: cp/name-lookup.c:3265
+#: cp/name-lookup.c:3373
 #, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr ""
 
-#: cp/name-lookup.c:3272
+#: cp/name-lookup.c:3380
 #, gcc-internal-format
 msgid ""
 "%qD attribute is meaningless since members of the anonymous namespace get "
 "local symbols"
 msgstr ""
 
-#: cp/name-lookup.c:3280 cp/name-lookup.c:3650
+#: cp/name-lookup.c:3388 cp/name-lookup.c:3777
 #, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr ""
 
-#: cp/name-lookup.c:3325
+#: cp/name-lookup.c:3433
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr ""
 
-#: cp/name-lookup.c:3638
+#: cp/name-lookup.c:3765
 #, gcc-internal-format
 msgid "strong using only meaningful at namespace scope"
 msgstr ""
 
-#: cp/name-lookup.c:3642
+#: cp/name-lookup.c:3769
 #, gcc-internal-format
 msgid "current namespace %qD does not enclose strongly used namespace %qD"
 msgstr ""
 
-#: cp/name-lookup.c:3980
+#: cp/name-lookup.c:4103
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr ""
 
-#: cp/name-lookup.c:3990
+#: cp/name-lookup.c:4113
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/name-lookup.c:3994
+#: cp/name-lookup.c:4117
 #, gcc-internal-format
 msgid "  %qE"
 msgstr ""
 
-#: cp/name-lookup.c:5184
+#: cp/name-lookup.c:5360
 #, gcc-internal-format
 msgid "argument dependent lookup finds %q+D"
 msgstr ""
 
-#: cp/name-lookup.c:5631
+#: cp/name-lookup.c:5852
 #, gcc-internal-format
 msgid "XXX entering pop_everything ()\n"
 msgstr ""
 
-#: cp/name-lookup.c:5640
+#: cp/name-lookup.c:5861
 #, gcc-internal-format
 msgid "XXX leaving pop_everything ()\n"
 msgstr ""
 
-#: cp/optimize.c:341
+#: cp/optimize.c:343
 #, gcc-internal-format
 msgid "making multiple clones of %qD"
 msgstr ""
 
-#: cp/parser.c:510
+#: cp/parser.c:511
 #, gcc-internal-format
 msgid "identifier %qE will become a keyword in C++0x"
 msgstr ""
 
-#: cp/parser.c:2059
+#: cp/parser.c:2069
 #, gcc-internal-format
 msgid "%<#pragma%> is not allowed here"
 msgstr ""
 
-#: cp/parser.c:2090
+#: cp/parser.c:2100
 #, gcc-internal-format
 msgid "%<%E::%E%> has not been declared"
 msgstr ""
 
-#: cp/parser.c:2093
+#: cp/parser.c:2103
 #, gcc-internal-format
 msgid "%<::%E%> has not been declared"
 msgstr ""
 
-#: cp/parser.c:2096
+#: cp/parser.c:2106
 #, gcc-internal-format
 msgid "request for member %qE in non-class type %qT"
 msgstr ""
 
-#: cp/parser.c:2099
+#: cp/parser.c:2109
 #, gcc-internal-format
 msgid "%<%T::%E%> has not been declared"
 msgstr ""
 
-#: cp/parser.c:2102
+#: cp/parser.c:2112
 #, gcc-internal-format
 msgid "%qE has not been declared"
 msgstr ""
 
-#: cp/parser.c:2109
+#: cp/parser.c:2119
 #, gcc-internal-format
 msgid "%<%E::%E%> is not a type"
 msgstr ""
 
-#: cp/parser.c:2113
+#: cp/parser.c:2123
 #, gcc-internal-format
 msgid "%<%E::%E%> is not a class or namespace"
 msgstr ""
 
-#: cp/parser.c:2118
+#: cp/parser.c:2128
 #, gcc-internal-format
 msgid "%<%E::%E%> is not a class, namespace, or enumeration"
 msgstr ""
 
-#: cp/parser.c:2131
+#: cp/parser.c:2141
 #, gcc-internal-format
 msgid "%<::%E%> is not a type"
 msgstr ""
 
-#: cp/parser.c:2134
+#: cp/parser.c:2144
 #, gcc-internal-format
 msgid "%<::%E%> is not a class or namespace"
 msgstr ""
 
-#: cp/parser.c:2138
+#: cp/parser.c:2148
 #, gcc-internal-format
 msgid "%<::%E%> is not a class, namespace, or enumeration"
 msgstr ""
 
-#: cp/parser.c:2150
+#: cp/parser.c:2160
 #, gcc-internal-format
 msgid "%qE is not a type"
 msgstr ""
 
-#: cp/parser.c:2153
+#: cp/parser.c:2163
 #, gcc-internal-format
 msgid "%qE is not a class or namespace"
 msgstr ""
 
-#: cp/parser.c:2157
+#: cp/parser.c:2167
 #, gcc-internal-format
 msgid "%qE is not a class, namespace, or enumeration"
 msgstr ""
 
-#: cp/parser.c:2200
+#: cp/parser.c:2210
 #, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr ""
 
-#: cp/parser.c:2221
+#: cp/parser.c:2231
 #, gcc-internal-format
 msgid "duplicate %qs"
 msgstr ""
 
-#: cp/parser.c:2266
+#: cp/parser.c:2276
 #, gcc-internal-format
 msgid "new types may not be defined in a return type"
 msgstr ""
 
-#: cp/parser.c:2268
+#: cp/parser.c:2278
 #, gcc-internal-format
 msgid "(perhaps a semicolon is missing after the definition of %qT)"
 msgstr ""
 
-#: cp/parser.c:2288 cp/parser.c:4450 cp/pt.c:6753
+#: cp/parser.c:2298 cp/parser.c:4470 cp/pt.c:6776
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr ""
 
-#: cp/parser.c:2290
+#: cp/parser.c:2300
 #, gcc-internal-format
 msgid "%qE is not a template"
 msgstr ""
 
-#: cp/parser.c:2292
+#: cp/parser.c:2302
 #, gcc-internal-format
 msgid "invalid template-id"
 msgstr ""
 
-#: cp/parser.c:2325
+#: cp/parser.c:2335
 #, gcc-internal-format
 msgid "floating-point literal cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/parser.c:2329 cp/pt.c:12595
+#: cp/parser.c:2339 cp/pt.c:12687
 #, gcc-internal-format
 msgid ""
 "a cast to a type other than an integral or enumeration type cannot appear in "
 "a constant-expression"
 msgstr ""
 
-#: cp/parser.c:2334
+#: cp/parser.c:2344
 #, gcc-internal-format
 msgid "%<typeid%> operator cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/parser.c:2338
+#: cp/parser.c:2348
 #, gcc-internal-format
 msgid "non-constant compound literals cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/parser.c:2342
+#: cp/parser.c:2352
 #, gcc-internal-format
 msgid "a function call cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/parser.c:2346
+#: cp/parser.c:2356
 #, gcc-internal-format
 msgid "an increment cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/parser.c:2350
+#: cp/parser.c:2360
 #, gcc-internal-format
 msgid "an decrement cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/parser.c:2354
+#: cp/parser.c:2364
 #, gcc-internal-format
 msgid "an array reference cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/parser.c:2358
+#: cp/parser.c:2368
 #, gcc-internal-format
 msgid "the address of a label cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/parser.c:2362
+#: cp/parser.c:2372
 #, gcc-internal-format
 msgid "calls to overloaded operators cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/parser.c:2366
+#: cp/parser.c:2376
 #, gcc-internal-format
 msgid "an assignment cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/parser.c:2369
+#: cp/parser.c:2379
 #, gcc-internal-format
 msgid "a comma operator cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/parser.c:2373
+#: cp/parser.c:2383
 #, gcc-internal-format
 msgid "a call to a constructor cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/parser.c:2419
+#: cp/parser.c:2429
 #, gcc-internal-format
 msgid "%qs cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/parser.c:2447
+#: cp/parser.c:2458
 #, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr ""
 
-#: cp/parser.c:2450
+#: cp/parser.c:2461
 #, gcc-internal-format
 msgid "invalid use of destructor %qD as a type"
 msgstr ""
 
 #. Something like 'unsigned A a;'
-#: cp/parser.c:2453
+#: cp/parser.c:2464
 #, gcc-internal-format
 msgid "invalid combination of multiple type-specifiers"
 msgstr ""
 
 #. Issue an error message.
-#: cp/parser.c:2457
+#: cp/parser.c:2468
 #, gcc-internal-format
 msgid "%qE does not name a type"
 msgstr ""
 
-#: cp/parser.c:2466
+#: cp/parser.c:2477
 #, gcc-internal-format
 msgid "C++0x %<constexpr%> only available with -std=c++0x or -std=gnu++0x"
 msgstr ""
 
-#: cp/parser.c:2493
+#: cp/parser.c:2504
 #, gcc-internal-format
 msgid "(perhaps %<typename %T::%E%> was intended)"
 msgstr ""
 
-#: cp/parser.c:2508
+#: cp/parser.c:2519
 #, gcc-internal-format
 msgid "%qE in namespace %qE does not name a type"
 msgstr ""
 
 #. A<T>::A<T>()
-#: cp/parser.c:2514
+#: cp/parser.c:2525
 #, gcc-internal-format
 msgid "%<%T::%E%> names the constructor, not the type"
 msgstr ""
 
-#: cp/parser.c:2517
+#: cp/parser.c:2528
 #, gcc-internal-format
 msgid "and %qT has no template constructors"
 msgstr ""
 
-#: cp/parser.c:2522
+#: cp/parser.c:2533
 #, gcc-internal-format
 msgid "need %<typename%> before %<%T::%E%> because %qT is a dependent scope"
 msgstr ""
 
-#: cp/parser.c:2526
+#: cp/parser.c:2537
 #, gcc-internal-format
-msgid "%qE in class %qT does not name a type"
+msgid "%qE in %q#T does not name a type"
 msgstr ""
 
-#: cp/parser.c:3076
+#: cp/parser.c:3086
 #, gcc-internal-format
 msgid "expected string-literal"
 msgstr ""
 
-#: cp/parser.c:3128
+#: cp/parser.c:3138
 #, gcc-internal-format
 msgid "a wide string is invalid in this context"
 msgstr ""
 
-#: cp/parser.c:3223 cp/parser.c:9393
+#: cp/parser.c:3233 cp/parser.c:9556
 #, gcc-internal-format
 msgid "expected declaration"
 msgstr ""
 
-#: cp/parser.c:3318
+#: cp/parser.c:3331
 #, gcc-internal-format
 msgid "fixed-point types not supported in C++"
 msgstr ""
 
-#: cp/parser.c:3398
+#: cp/parser.c:3411
 #, gcc-internal-format
 msgid "ISO C++ forbids braced-groups within expressions"
 msgstr ""
 
-#: cp/parser.c:3410
+#: cp/parser.c:3423
 #, gcc-internal-format
 msgid ""
 "statement-expressions are not allowed outside functions nor in template-"
 "argument lists"
 msgstr ""
 
-#: cp/parser.c:3464 cp/parser.c:3613 cp/parser.c:3766
+#: cp/parser.c:3483 cp/parser.c:3632 cp/parser.c:3785
 #, gcc-internal-format
 msgid "expected primary-expression"
 msgstr ""
 
-#: cp/parser.c:3494
+#: cp/parser.c:3513
 #, gcc-internal-format
 msgid "%<this%> may not be used in this context"
 msgstr ""
 
-#: cp/parser.c:3608
+#: cp/parser.c:3627
 #, gcc-internal-format
 msgid "a template declaration cannot appear at block scope"
 msgstr ""
 
-#: cp/parser.c:3742
+#: cp/parser.c:3761
 #, gcc-internal-format
 msgid "local variable %qD may not appear in this context"
 msgstr ""
 
-#: cp/parser.c:3906
+#: cp/parser.c:3925
 #, gcc-internal-format
 msgid "expected id-expression"
 msgstr ""
 
-#: cp/parser.c:4036
+#: cp/parser.c:4055
 #, gcc-internal-format
 msgid "scope %qT before %<~%> is not a class-name"
 msgstr ""
 
-#: cp/parser.c:4157
+#: cp/parser.c:4177
 #, gcc-internal-format
 msgid "declaration of %<~%T%> as member of %qT"
 msgstr ""
 
-#: cp/parser.c:4172
+#: cp/parser.c:4192
 #, gcc-internal-format
 msgid "typedef-name %qD used as destructor declarator"
 msgstr ""
 
-#: cp/parser.c:4208 cp/parser.c:14955
+#: cp/parser.c:4228 cp/parser.c:15141
 #, gcc-internal-format
 msgid "expected unqualified-id"
 msgstr ""
 
-#: cp/parser.c:4312
+#: cp/parser.c:4332
 #, gcc-internal-format
 msgid "found %<:%> in nested-name-specifier, expected %<::%>"
 msgstr ""
 
-#: cp/parser.c:4529
+#: cp/parser.c:4549
 #, gcc-internal-format
 msgid "expected nested-name-specifier"
 msgstr ""
 
-#: cp/parser.c:4711 cp/parser.c:6380
+#: cp/parser.c:4731 cp/parser.c:6410
 #, gcc-internal-format
 msgid "types may not be defined in casts"
 msgstr ""
 
-#: cp/parser.c:4771
+#: cp/parser.c:4791
 #, gcc-internal-format
 msgid "types may not be defined in a %<typeid%> expression"
 msgstr ""
 
 #. Warn the user that a compound literal is not
 #. allowed in standard C++.
-#: cp/parser.c:4880
+#: cp/parser.c:4900
 #, gcc-internal-format
 msgid "ISO C++ forbids compound-literals"
 msgstr ""
 
-#: cp/parser.c:5256
+#: cp/parser.c:5280
 #, gcc-internal-format
 msgid "%qE does not have class type"
 msgstr ""
 
-#: cp/parser.c:5341 cp/typeck.c:2321
+#: cp/parser.c:5365 cp/typeck.c:2335
 #, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr ""
 
-#: cp/parser.c:5604
+#: cp/parser.c:5628
 #, gcc-internal-format
 msgid "non-scalar type"
 msgstr ""
 
-#: cp/parser.c:5693
+#: cp/parser.c:5722
 #, gcc-internal-format
 msgid "ISO C++ does not allow %<alignof%> with a non-type"
 msgstr ""
 
-#: cp/parser.c:5752
+#: cp/parser.c:5781
 #, gcc-internal-format
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr ""
 
-#: cp/parser.c:5983
+#: cp/parser.c:6012
 #, gcc-internal-format
 msgid "array bound forbidden after parenthesized type-id"
 msgstr ""
 
-#: cp/parser.c:5985
+#: cp/parser.c:6014
 #, gcc-internal-format
 msgid "try removing the parentheses around the type-id"
 msgstr ""
 
-#: cp/parser.c:6066
+#: cp/parser.c:6095
 #, gcc-internal-format
 msgid "types may not be defined in a new-type-id"
 msgstr ""
 
-#: cp/parser.c:6190
+#: cp/parser.c:6219
 #, gcc-internal-format
 msgid "expression in new-declarator must have integral or enumeration type"
 msgstr ""
 
-#: cp/parser.c:6445
+#: cp/parser.c:6475
 #, gcc-internal-format
 msgid "use of old-style cast"
 msgstr ""
 
-#: cp/parser.c:6574
+#: cp/parser.c:6604
 #, gcc-internal-format
 msgid "%<>>%> operator will be treated as two right angle brackets in C++0x"
 msgstr ""
 
-#: cp/parser.c:6577
+#: cp/parser.c:6607
 #, gcc-internal-format
 msgid "suggest parentheses around %<>>%> expression"
 msgstr ""
 
-#: cp/parser.c:6722
+#: cp/parser.c:6752
 #, gcc-internal-format
 msgid "ISO C++ does not allow ?: with omitted middle operand"
 msgstr ""
 
-#: cp/parser.c:7318
+#: cp/parser.c:7355
 #, gcc-internal-format
 msgid "lambda-expression in unevaluated context"
 msgstr ""
 
-#: cp/parser.c:7441
+#: cp/parser.c:7476
 #, gcc-internal-format
 msgid "expected end of capture-list"
 msgstr ""
 
-#: cp/parser.c:7492
+#: cp/parser.c:7490
+#, gcc-internal-format
+msgid ""
+"explicit by-copy capture of %<this%> redundant with by-copy capture default"
+msgstr ""
+
+#: cp/parser.c:7531
 #, gcc-internal-format
 msgid "ISO C++ does not allow initializers in lambda expression capture lists"
 msgstr ""
 
-#: cp/parser.c:7586
+#: cp/parser.c:7580
+#, gcc-internal-format
+msgid "explicit by-copy capture of %qD redundant with by-copy capture default"
+msgstr ""
+
+#: cp/parser.c:7585
+#, gcc-internal-format
+msgid ""
+"explicit by-reference capture of %qD redundant with by-reference capture "
+"default"
+msgstr ""
+
+#: cp/parser.c:7640
 #, gcc-internal-format
 msgid "default argument specified for lambda parameter"
 msgstr ""
 
-#: cp/parser.c:7947
+#: cp/parser.c:8020
 #, gcc-internal-format
 msgid "expected labeled-statement"
 msgstr ""
 
-#: cp/parser.c:7985
+#: cp/parser.c:8058
 #, gcc-internal-format
 msgid "case label %qE not within a switch statement"
 msgstr ""
 
-#: cp/parser.c:8060
+#: cp/parser.c:8133
 #, gcc-internal-format
 msgid "need %<typename%> before %qE because %qT is a dependent scope"
 msgstr ""
 
-#: cp/parser.c:8069
+#: cp/parser.c:8142
 #, gcc-internal-format
 msgid "%<%T::%D%> names the constructor, not the type"
 msgstr ""
 
-#: cp/parser.c:8326 cp/parser.c:20711
+#: cp/parser.c:8191
+#, gcc-internal-format
+msgid "compound-statement in constexpr function"
+msgstr ""
+
+#: cp/parser.c:8403 cp/parser.c:20986
 #, gcc-internal-format
 msgid "expected selection-statement"
 msgstr ""
 
-#: cp/parser.c:8359
+#: cp/parser.c:8436
 #, gcc-internal-format
 msgid "types may not be defined in conditions"
 msgstr ""
 
-#: cp/parser.c:8633
+#: cp/parser.c:8732
 #, gcc-internal-format
-msgid "inconsistent begin/end types in range-based for: %qT and %qT"
+msgid "range-based %<for%> expression of type %qT has incomplete type"
 msgstr ""
 
-#: cp/parser.c:8780 cp/parser.c:20714
+#: cp/parser.c:8768
+#, gcc-internal-format
+msgid ""
+"range-based %<for%> expression of type %qT has an %<end%> member but not a "
+"%<begin%>"
+msgstr ""
+
+#: cp/parser.c:8774
+#, gcc-internal-format
+msgid ""
+"range-based %<for%> expression of type %qT has a %<begin%> member but not an "
+"%<end%>"
+msgstr ""
+
+#: cp/parser.c:8812
+#, gcc-internal-format
+msgid ""
+"inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
+msgstr ""
+
+#: cp/parser.c:8943 cp/parser.c:20989
 #, gcc-internal-format
 msgid "expected iteration-statement"
 msgstr ""
 
-#: cp/parser.c:8827
+#: cp/parser.c:8990
 #, gcc-internal-format
-msgid "range-based-for loops are not allowed in C++98 mode"
+msgid "range-based %<for%> loops are not allowed in C++98 mode"
 msgstr ""
 
 #. Issue a warning about this use of a GNU extension.
-#: cp/parser.c:8949
+#: cp/parser.c:9112
 #, gcc-internal-format
 msgid "ISO C++ forbids computed gotos"
 msgstr ""
 
-#: cp/parser.c:8962 cp/parser.c:20717
+#: cp/parser.c:9125 cp/parser.c:20992
 #, gcc-internal-format
 msgid "expected jump-statement"
 msgstr ""
 
-#: cp/parser.c:9094 cp/parser.c:17524
+#: cp/parser.c:9257 cp/parser.c:17784
 #, gcc-internal-format
 msgid "extra %<;%>"
 msgstr ""
 
-#: cp/parser.c:9320
+#: cp/parser.c:9483
 #, gcc-internal-format
 msgid "%<__label__%> not at the beginning of a block"
 msgstr ""
 
-#: cp/parser.c:9471
+#: cp/parser.c:9634
 #, gcc-internal-format
 msgid "mixing declarations and function-definitions is forbidden"
 msgstr ""
 
-#: cp/parser.c:9615
+#: cp/parser.c:9778
 #, gcc-internal-format
 msgid "%<friend%> used outside of class"
 msgstr ""
 
 #. Complain about `auto' as a storage specifier, if
 #. we're complaining about C++0x compatibility.
-#: cp/parser.c:9674
+#: cp/parser.c:9837
 #, gcc-internal-format
 msgid "%<auto%> will change meaning in C++0x; please remove it"
 msgstr ""
 
-#: cp/parser.c:9710
+#: cp/parser.c:9873
 #, gcc-internal-format
 msgid "decl-specifier invalid in condition"
 msgstr ""
 
-#: cp/parser.c:9801
+#: cp/parser.c:9964
 #, gcc-internal-format
 msgid "class definition may not be declared a friend"
 msgstr ""
 
-#: cp/parser.c:9870 cp/parser.c:17862
+#: cp/parser.c:10033 cp/parser.c:18125
 #, gcc-internal-format
 msgid "templates may not be %<virtual%>"
 msgstr ""
 
-#: cp/parser.c:9911
+#: cp/parser.c:10074
 #, gcc-internal-format
 msgid "invalid linkage-specification"
 msgstr ""
 
-#: cp/parser.c:10038
+#: cp/parser.c:10201
 #, gcc-internal-format
 msgid "types may not be defined in %<decltype%> expressions"
 msgstr ""
 
-#: cp/parser.c:10293
+#: cp/parser.c:10457
 #, gcc-internal-format
 msgid "invalid use of %<auto%> in conversion operator"
 msgstr ""
 
-#: cp/parser.c:10378
+#: cp/parser.c:10542
 #, gcc-internal-format
 msgid "only constructors take member initializers"
 msgstr ""
 
-#: cp/parser.c:10400
+#: cp/parser.c:10564
 #, gcc-internal-format
 msgid "cannot expand initializer for member %<%D%>"
 msgstr ""
 
-#: cp/parser.c:10455
+#: cp/parser.c:10619
 #, gcc-internal-format
 msgid "anachronistic old-style base class initializer"
 msgstr ""
 
-#: cp/parser.c:10523
+#: cp/parser.c:10687
 #, gcc-internal-format
 msgid ""
 "keyword %<typename%> not allowed in this context (a qualified member "
 "initializer is implicitly a type)"
 msgstr ""
 
-#: cp/parser.c:10831
+#: cp/parser.c:10995
 #, gcc-internal-format
 msgid "expected operator"
 msgstr ""
 
 #. Warn that we do not support `export'.
-#: cp/parser.c:10868
+#: cp/parser.c:11032
 #, gcc-internal-format
 msgid "keyword %<export%> not implemented, and will be ignored"
 msgstr ""
 
-#: cp/parser.c:11061 cp/parser.c:11159 cp/parser.c:11266 cp/parser.c:16099
+#: cp/parser.c:11225 cp/parser.c:11323 cp/parser.c:11430 cp/parser.c:16333
 #, gcc-internal-format
 msgid "template parameter pack %qD cannot have a default argument"
 msgstr ""
 
-#: cp/parser.c:11065 cp/parser.c:16106
+#: cp/parser.c:11229 cp/parser.c:16340
 #, gcc-internal-format
 msgid "template parameter pack cannot have a default argument"
 msgstr ""
 
-#: cp/parser.c:11163 cp/parser.c:11270
+#: cp/parser.c:11327 cp/parser.c:11434
 #, gcc-internal-format
 msgid "template parameter packs cannot have default arguments"
 msgstr ""
 
-#: cp/parser.c:11352
+#: cp/parser.c:11516
 #, gcc-internal-format
 msgid "expected template-id"
 msgstr ""
 
-#: cp/parser.c:11399 cp/parser.c:20675
+#: cp/parser.c:11563 cp/parser.c:20950
 #, gcc-internal-format
 msgid "expected %<<%>"
 msgstr ""
 
-#: cp/parser.c:11406
+#: cp/parser.c:11570
 #, gcc-internal-format
 msgid "%<<::%> cannot begin a template-argument list"
 msgstr ""
 
-#: cp/parser.c:11410
+#: cp/parser.c:11574
 #, gcc-internal-format
 msgid ""
 "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> "
 "and %<::%>"
 msgstr ""
 
-#: cp/parser.c:11488
+#: cp/parser.c:11652
 #, gcc-internal-format
 msgid "parse error in template argument list"
 msgstr ""
 
 #. The name does not name a template.
-#: cp/parser.c:11556 cp/parser.c:11671 cp/parser.c:11881
+#: cp/parser.c:11720 cp/parser.c:11835 cp/parser.c:12045
 #, gcc-internal-format
 msgid "expected template-name"
 msgstr ""
 
 #. Explain what went wrong.
-#: cp/parser.c:11602
+#: cp/parser.c:11766
 #, gcc-internal-format
 msgid "non-template %qD used as template"
 msgstr ""
 
-#: cp/parser.c:11604
+#: cp/parser.c:11768
 #, gcc-internal-format
 msgid "use %<%T::template %D%> to indicate that it is a template"
 msgstr ""
 
-#: cp/parser.c:11737
+#: cp/parser.c:11901
 #, gcc-internal-format
 msgid "expected parameter pack before %<...%>"
 msgstr ""
 
-#: cp/parser.c:11846 cp/parser.c:11864 cp/parser.c:12005
+#: cp/parser.c:12010 cp/parser.c:12028 cp/parser.c:12169
 #, gcc-internal-format
 msgid "expected template-argument"
 msgstr ""
 
-#: cp/parser.c:11988
+#: cp/parser.c:12152
 #, gcc-internal-format
 msgid "invalid non-type template argument"
 msgstr ""
 
-#: cp/parser.c:12102
+#: cp/parser.c:12268
 #, gcc-internal-format
 msgid "explicit instantiation shall not use %<inline%> specifier"
 msgstr ""
 
-#: cp/parser.c:12105
+#: cp/parser.c:12271
 #, gcc-internal-format
 msgid "explicit instantiation shall not use %<constexpr%> specifier"
 msgstr ""
 
-#: cp/parser.c:12162
+#: cp/parser.c:12330
 #, gcc-internal-format
 msgid "template specialization with C linkage"
 msgstr ""
 
-#: cp/parser.c:12382
+#: cp/parser.c:12550
 #, gcc-internal-format
 msgid "expected type specifier"
 msgstr ""
 
-#: cp/parser.c:12599
+#: cp/parser.c:12778
 #, gcc-internal-format
 msgid "expected template-id for type"
 msgstr ""
 
-#: cp/parser.c:12626
+#: cp/parser.c:12805
 #, gcc-internal-format
 msgid "expected type-name"
 msgstr ""
 
-#: cp/parser.c:12813
+#: cp/parser.c:12992
 #, gcc-internal-format
 msgid ""
 "elaborated-type-specifier for a scoped enum must not use the %<%D%> keyword"
 msgstr ""
 
-#: cp/parser.c:12997
+#: cp/parser.c:13176
 #, gcc-internal-format
 msgid "declaration %qD does not declare anything"
 msgstr ""
 
-#: cp/parser.c:13083
+#: cp/parser.c:13262
 #, gcc-internal-format
 msgid "attributes ignored on uninstantiated type"
 msgstr ""
 
-#: cp/parser.c:13087
+#: cp/parser.c:13266
 #, gcc-internal-format
 msgid "attributes ignored on template instantiation"
 msgstr ""
 
-#: cp/parser.c:13092
+#: cp/parser.c:13271
 #, gcc-internal-format
 msgid ""
 "attributes ignored on elaborated-type-specifier that is not a forward "
 "declaration"
 msgstr ""
 
-#: cp/parser.c:13216
+#: cp/parser.c:13395
 #, gcc-internal-format
 msgid "%qD is an enumeration template"
 msgstr ""
 
-#: cp/parser.c:13224
+#: cp/parser.c:13403
 #, gcc-internal-format
 msgid "%qD is not an enumerator-name"
 msgstr ""
 
-#: cp/parser.c:13287
+#: cp/parser.c:13466
 #, gcc-internal-format
 msgid "expected %<;%> or %<{%>"
 msgstr ""
 
-#: cp/parser.c:13334
+#: cp/parser.c:13514
 #, gcc-internal-format
 msgid "cannot add an enumerator list to a template instantiation"
 msgstr ""
 
-#: cp/parser.c:13343 cp/parser.c:17122
+#: cp/parser.c:13523 cp/parser.c:17380
 #, gcc-internal-format
 msgid "declaration of %qD in namespace %qD which does not enclose %qD"
 msgstr ""
 
-#: cp/parser.c:13348 cp/parser.c:17127
+#: cp/parser.c:13528 cp/parser.c:17385
 #, gcc-internal-format
 msgid "declaration of %qD in %qD which does not enclose %qD"
 msgstr ""
 
-#: cp/parser.c:13371
+#: cp/parser.c:13551
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr ""
 
-#: cp/parser.c:13397
+#: cp/parser.c:13578
 #, gcc-internal-format
 msgid "opaque-enum-specifier without name"
 msgstr ""
 
-#: cp/parser.c:13400
+#: cp/parser.c:13581
 #, gcc-internal-format
 msgid "opaque-enum-specifier must use a simple identifier"
 msgstr ""
 
-#: cp/parser.c:13575
+#: cp/parser.c:13756
 #, gcc-internal-format
 msgid "%qD is not a namespace-name"
 msgstr ""
 
-#: cp/parser.c:13576
+#: cp/parser.c:13757
 #, gcc-internal-format
 msgid "expected namespace-name"
 msgstr ""
 
-#: cp/parser.c:13701
+#: cp/parser.c:13882
 #, gcc-internal-format
 msgid "%<namespace%> definition is not allowed here"
 msgstr ""
 
-#: cp/parser.c:13842
+#: cp/parser.c:14023
 #, gcc-internal-format
 msgid "a template-id may not appear in a using-declaration"
 msgstr ""
 
-#: cp/parser.c:14264
+#: cp/parser.c:14445
 #, gcc-internal-format
 msgid "a function-definition is not allowed here"
 msgstr ""
 
-#: cp/parser.c:14276
+#: cp/parser.c:14457
 #, gcc-internal-format
 msgid "an asm-specification is not allowed on a function-definition"
 msgstr ""
 
-#: cp/parser.c:14280
+#: cp/parser.c:14461
 #, gcc-internal-format
 msgid "attributes are not allowed on a function-definition"
 msgstr ""
 
-#: cp/parser.c:14317
+#: cp/parser.c:14498
 #, gcc-internal-format
 msgid "expected constructor, destructor, or type conversion"
 msgstr ""
 
 #. Anything else is an error.
-#: cp/parser.c:14352 cp/parser.c:16265
+#: cp/parser.c:14533 cp/parser.c:16499
 #, gcc-internal-format
 msgid "expected initializer"
 msgstr ""
 
-#: cp/parser.c:14372
+#: cp/parser.c:14553
 #, gcc-internal-format
 msgid "invalid type in declaration"
 msgstr ""
 
-#: cp/parser.c:14448
+#: cp/parser.c:14629
 #, gcc-internal-format
 msgid "initializer provided for function"
 msgstr ""
 
-#: cp/parser.c:14481
+#: cp/parser.c:14662
 #, gcc-internal-format
 msgid "attributes after parenthesized initializer ignored"
 msgstr ""
 
-#: cp/parser.c:14878
+#: cp/parser.c:15064
 #, gcc-internal-format
 msgid "array bound is not an integer constant"
 msgstr ""
 
-#: cp/parser.c:14999
+#: cp/parser.c:15185
 #, gcc-internal-format
 msgid "cannot define member of dependent typedef %qT"
 msgstr ""
 
-#: cp/parser.c:15003
+#: cp/parser.c:15189
 #, gcc-internal-format
 msgid "%<%T::%E%> is not a type"
 msgstr ""
 
-#: cp/parser.c:15031
+#: cp/parser.c:15217
 #, gcc-internal-format
 msgid "invalid use of constructor as a template"
 msgstr ""
 
-#: cp/parser.c:15033
+#: cp/parser.c:15219
 #, gcc-internal-format
 msgid ""
 "use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified "
@@ -30219,226 +30607,236 @@
 #. here because we do not have enough
 #. information about its original syntactic
 #. form.
-#: cp/parser.c:15050
+#: cp/parser.c:15236
 #, gcc-internal-format
 msgid "invalid declarator"
 msgstr ""
 
-#: cp/parser.c:15116
+#: cp/parser.c:15302
 #, gcc-internal-format
 msgid "expected declarator"
 msgstr ""
 
-#: cp/parser.c:15211
+#: cp/parser.c:15397
 #, gcc-internal-format
 msgid "%qD is a namespace"
 msgstr ""
 
-#: cp/parser.c:15227
+#: cp/parser.c:15413
 #, gcc-internal-format
 msgid "expected ptr-operator"
 msgstr ""
 
-#: cp/parser.c:15286
+#: cp/parser.c:15472
 #, gcc-internal-format
 msgid "duplicate cv-qualifier"
 msgstr ""
 
-#: cp/parser.c:15408 cp/typeck2.c:427
+#: cp/parser.c:15520
+#, gcc-internal-format
+msgid "duplicate virt-specifier"
+msgstr ""
+
+#: cp/parser.c:15641 cp/typeck2.c:435 cp/typeck2.c:1614
 #, gcc-internal-format
 msgid "invalid use of %<auto%>"
 msgstr ""
 
-#: cp/parser.c:15427
+#: cp/parser.c:15660
 #, gcc-internal-format
 msgid "types may not be defined in template arguments"
 msgstr ""
 
-#: cp/parser.c:15508
+#: cp/parser.c:15741
 #, gcc-internal-format
 msgid "expected type-specifier"
 msgstr ""
 
-#: cp/parser.c:15752
+#: cp/parser.c:15985
 #, gcc-internal-format
 msgid "expected %<,%> or %<...%>"
 msgstr ""
 
-#: cp/parser.c:15809
+#: cp/parser.c:16042
 #, gcc-internal-format
 msgid "types may not be defined in parameter types"
 msgstr ""
 
-#: cp/parser.c:16032
+#: cp/parser.c:16266
 #, gcc-internal-format
 msgid "file ends in default argument"
 msgstr ""
 
-#: cp/parser.c:16078
+#: cp/parser.c:16312
 #, gcc-internal-format
 msgid "deprecated use of default argument for parameter of non-function"
 msgstr ""
 
-#: cp/parser.c:16082
+#: cp/parser.c:16316
 #, gcc-internal-format
 msgid "default arguments are only permitted for function parameters"
 msgstr ""
 
-#: cp/parser.c:16398
+#: cp/parser.c:16632
 #, gcc-internal-format
 msgid "ISO C++ does not allow designated initializers"
 msgstr ""
 
-#: cp/parser.c:16486 cp/parser.c:16608
+#: cp/parser.c:16720 cp/parser.c:16842
 #, gcc-internal-format
 msgid "expected class-name"
 msgstr ""
 
-#: cp/parser.c:16789
+#: cp/parser.c:17023
 #, gcc-internal-format
 msgid "expected %<;%> after class definition"
 msgstr ""
 
-#: cp/parser.c:16791
+#: cp/parser.c:17025
 #, gcc-internal-format
 msgid "expected %<;%> after struct definition"
 msgstr ""
 
-#: cp/parser.c:16793
+#: cp/parser.c:17027
 #, gcc-internal-format
 msgid "expected %<;%> after union definition"
 msgstr ""
 
-#: cp/parser.c:17077
+#: cp/parser.c:17328
 #, gcc-internal-format
 msgid "expected %<{%> or %<:%>"
 msgstr ""
 
-#: cp/parser.c:17089
+#: cp/parser.c:17339
+#, gcc-internal-format
+msgid "cannot specify %<override%> for a class"
+msgstr ""
+
+#: cp/parser.c:17347
 #, gcc-internal-format
 msgid "global qualification of class name is invalid"
 msgstr ""
 
-#: cp/parser.c:17096
+#: cp/parser.c:17354
 #, gcc-internal-format
 msgid "qualified name does not name a class"
 msgstr ""
 
-#: cp/parser.c:17108
+#: cp/parser.c:17366
 #, gcc-internal-format
 msgid "invalid class name in declaration of %qD"
 msgstr ""
 
-#: cp/parser.c:17141
+#: cp/parser.c:17399
 #, gcc-internal-format
 msgid "extra qualification not allowed"
 msgstr ""
 
-#: cp/parser.c:17153
+#: cp/parser.c:17411
 #, gcc-internal-format
 msgid "an explicit specialization must be preceded by %<template <>%>"
 msgstr ""
 
-#: cp/parser.c:17183
+#: cp/parser.c:17441
 #, gcc-internal-format
 msgid "function template %qD redeclared as a class template"
 msgstr ""
 
-#: cp/parser.c:17214
+#: cp/parser.c:17472
 #, gcc-internal-format
 msgid "could not resolve typename type"
 msgstr ""
 
-#: cp/parser.c:17266
+#: cp/parser.c:17524
 #, gcc-internal-format
 msgid "previous definition of %q+#T"
 msgstr ""
 
-#: cp/parser.c:17330 cp/parser.c:20720
+#: cp/parser.c:17590 cp/parser.c:20995
 #, gcc-internal-format
 msgid "expected class-key"
 msgstr ""
 
-#: cp/parser.c:17543
+#: cp/parser.c:17803
 #, gcc-internal-format
-msgid "a class-key must be used when declaring a friend"
+msgid "in C++03 a class-key must be used when declaring a friend"
 msgstr ""
 
-#: cp/parser.c:17558
+#: cp/parser.c:17821
 #, gcc-internal-format
 msgid "friend declaration does not name a class or function"
 msgstr ""
 
-#: cp/parser.c:17742
+#: cp/parser.c:18005
 #, gcc-internal-format
 msgid "pure-specifier on function-definition"
 msgstr ""
 
-#: cp/parser.c:17790
+#: cp/parser.c:18053
 #, gcc-internal-format
 msgid "expected %<;%> at end of member declaration"
 msgstr ""
 
-#: cp/parser.c:17856
+#: cp/parser.c:18119
 #, gcc-internal-format
 msgid "invalid pure specifier (only %<= 0%> is allowed)"
 msgstr ""
 
-#: cp/parser.c:17891
+#: cp/parser.c:18154
 #, gcc-internal-format
 msgid "a brace-enclosed initializer is not allowed here"
 msgstr ""
 
-#: cp/parser.c:18023
+#: cp/parser.c:18286
 #, gcc-internal-format
 msgid "%<virtual%> specified more than once in base-specified"
 msgstr ""
 
-#: cp/parser.c:18043
+#: cp/parser.c:18306
 #, gcc-internal-format
 msgid "more than one access specifier in base-specified"
 msgstr ""
 
-#: cp/parser.c:18067
+#: cp/parser.c:18330
 #, gcc-internal-format
 msgid "keyword %<typename%> not allowed outside of templates"
 msgstr ""
 
-#: cp/parser.c:18070
+#: cp/parser.c:18333
 #, gcc-internal-format
 msgid ""
 "keyword %<typename%> not allowed in this context (the base class is "
 "implicitly a type)"
 msgstr ""
 
-#: cp/parser.c:18147 cp/parser.c:18187
+#: cp/parser.c:18410 cp/parser.c:18450
 #, gcc-internal-format
 msgid "types may not be defined in an exception-specification"
 msgstr ""
 
-#: cp/parser.c:18169
+#: cp/parser.c:18432
 #, gcc-internal-format
 msgid ""
 "dynamic exception specifications are deprecated in C++0x; use %<noexcept%> "
 "instead"
 msgstr ""
 
-#: cp/parser.c:18368
+#: cp/parser.c:18631
 #, gcc-internal-format
 msgid "types may not be defined in exception-declarations"
 msgstr ""
 
-#: cp/parser.c:19265
+#: cp/parser.c:19528
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr ""
 
-#: cp/parser.c:19270
+#: cp/parser.c:19533
 #, gcc-internal-format
 msgid "invalid declaration of %<%T::%E%>"
 msgstr ""
 
-#: cp/parser.c:19274
+#: cp/parser.c:19537
 #, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr ""
@@ -30447,445 +30845,445 @@
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.c:19281
+#: cp/parser.c:19544
 #, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr ""
 
-#: cp/parser.c:19569
+#: cp/parser.c:19841
 #, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr ""
 
-#: cp/parser.c:19649
+#: cp/parser.c:19921
 #, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr ""
 
-#: cp/parser.c:19658
+#: cp/parser.c:19930
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr ""
 
-#: cp/parser.c:19677
+#: cp/parser.c:19949
 #, gcc-internal-format
 msgid "invalid explicit specialization"
 msgstr ""
 
-#: cp/parser.c:19807
+#: cp/parser.c:20079
 #, gcc-internal-format
 msgid "template declaration of %<typedef%>"
 msgstr ""
 
-#: cp/parser.c:19884
+#: cp/parser.c:20156
 #, gcc-internal-format
 msgid "explicit template specialization cannot have a storage class"
 msgstr ""
 
-#: cp/parser.c:20109
+#: cp/parser.c:20382
 #, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr ""
 
-#: cp/parser.c:20122
+#: cp/parser.c:20395
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr ""
 
-#: cp/parser.c:20467
+#: cp/parser.c:20742
 #, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr ""
 
-#: cp/parser.c:20480
+#: cp/parser.c:20755
 #, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr ""
 
-#: cp/parser.c:20584
+#: cp/parser.c:20859
 #, gcc-internal-format
 msgid "expected %<new%>"
 msgstr ""
 
-#: cp/parser.c:20587
+#: cp/parser.c:20862
 #, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr ""
 
-#: cp/parser.c:20590
+#: cp/parser.c:20865
 #, gcc-internal-format
 msgid "expected %<return%>"
 msgstr ""
 
-#: cp/parser.c:20596
+#: cp/parser.c:20871
 #, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr ""
 
-#: cp/parser.c:20599
+#: cp/parser.c:20874
 #, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr ""
 
-#: cp/parser.c:20602
+#: cp/parser.c:20877
 #, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr ""
 
-#: cp/parser.c:20605
+#: cp/parser.c:20880
 #, gcc-internal-format
 msgid "expected %<operator%>"
 msgstr ""
 
-#: cp/parser.c:20608
+#: cp/parser.c:20883
 #, gcc-internal-format
 msgid "expected %<class%>"
 msgstr ""
 
-#: cp/parser.c:20611
+#: cp/parser.c:20886
 #, gcc-internal-format
 msgid "expected %<template%>"
 msgstr ""
 
-#: cp/parser.c:20614
+#: cp/parser.c:20889
 #, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr ""
 
-#: cp/parser.c:20617
+#: cp/parser.c:20892
 #, gcc-internal-format
 msgid "expected %<using%>"
 msgstr ""
 
-#: cp/parser.c:20620
+#: cp/parser.c:20895
 #, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr ""
 
-#: cp/parser.c:20623
+#: cp/parser.c:20898
 #, gcc-internal-format
 msgid "expected %<try%>"
 msgstr ""
 
-#: cp/parser.c:20626
+#: cp/parser.c:20901
 #, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr ""
 
-#: cp/parser.c:20629
+#: cp/parser.c:20904
 #, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr ""
 
-#: cp/parser.c:20632
+#: cp/parser.c:20907
 #, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr ""
 
-#: cp/parser.c:20635
+#: cp/parser.c:20910
 #, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr ""
 
-#: cp/parser.c:20638
+#: cp/parser.c:20913
 #, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr ""
 
-#: cp/parser.c:20641
+#: cp/parser.c:20916
 #, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr ""
 
-#: cp/parser.c:20666
+#: cp/parser.c:20941
 #, gcc-internal-format
 msgid "expected %<[%>"
 msgstr ""
 
-#: cp/parser.c:20672
+#: cp/parser.c:20947
 #, gcc-internal-format
 msgid "expected %<::%>"
 msgstr ""
 
-#: cp/parser.c:20684
+#: cp/parser.c:20959
 #, gcc-internal-format
 msgid "expected %<...%>"
 msgstr ""
 
-#: cp/parser.c:20687
+#: cp/parser.c:20962
 #, gcc-internal-format
 msgid "expected %<*%>"
 msgstr ""
 
-#: cp/parser.c:20690
+#: cp/parser.c:20965
 #, gcc-internal-format
 msgid "expected %<~%>"
 msgstr ""
 
-#: cp/parser.c:20696
+#: cp/parser.c:20971
 #, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr ""
 
-#: cp/parser.c:20724
+#: cp/parser.c:20999
 #, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr ""
 
-#: cp/parser.c:20955
+#: cp/parser.c:21230
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr ""
 
-#: cp/parser.c:20976
+#: cp/parser.c:21251
 #, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr ""
 
-#: cp/parser.c:20995
+#: cp/parser.c:21270
 #, gcc-internal-format
 msgid "%<template%> (as a disambiguator) is only allowed within templates"
 msgstr ""
 
-#: cp/parser.c:21260 cp/parser.c:22492 cp/parser.c:22678
+#: cp/parser.c:21535 cp/parser.c:22796 cp/parser.c:22982
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr ""
 
-#: cp/parser.c:21382
+#: cp/parser.c:21657
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr ""
 
-#: cp/parser.c:21411
+#: cp/parser.c:21686
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr ""
 
-#: cp/parser.c:21773
+#: cp/parser.c:22062
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr ""
 
-#: cp/parser.c:21848 cp/parser.c:21866
+#: cp/parser.c:22137 cp/parser.c:22155
 #, gcc-internal-format
 msgid "objective-c++ method declaration is expected"
 msgstr ""
 
-#: cp/parser.c:21860 cp/parser.c:21925
+#: cp/parser.c:22149 cp/parser.c:22214
 #, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr ""
 
-#: cp/parser.c:21967
+#: cp/parser.c:22256
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr ""
 
-#: cp/parser.c:22172 cp/parser.c:22179 cp/parser.c:22186
+#: cp/parser.c:22462 cp/parser.c:22469 cp/parser.c:22476
 #, gcc-internal-format
 msgid "invalid type for instance variable"
 msgstr ""
 
-#: cp/parser.c:22299
+#: cp/parser.c:22590
 #, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr ""
 
-#: cp/parser.c:22457
+#: cp/parser.c:22761
 #, gcc-internal-format
 msgid ""
 "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr ""
 
-#: cp/parser.c:22464
+#: cp/parser.c:22768
 #, gcc-internal-format
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr ""
 
-#: cp/parser.c:22737 cp/parser.c:22744 cp/parser.c:22751
+#: cp/parser.c:23041 cp/parser.c:23048 cp/parser.c:23055
 #, gcc-internal-format
 msgid "invalid type for property"
 msgstr ""
 
-#: cp/parser.c:24182
+#: cp/parser.c:24488
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr ""
 
-#: cp/parser.c:24349 cp/pt.c:11895
+#: cp/parser.c:24655 cp/pt.c:11987
 #, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr ""
 
-#: cp/parser.c:24416
+#: cp/parser.c:24723
 #, gcc-internal-format
 msgid "not enough collapsed for loops"
 msgstr ""
 
-#: cp/parser.c:24876
+#: cp/parser.c:25183
 #, gcc-internal-format
 msgid "junk at end of %<#pragma GCC pch_preprocess%>"
 msgstr ""
 
-#: cp/parser.c:25039
+#: cp/parser.c:25346
 #, gcc-internal-format
 msgid "inter-module optimizations not implemented for C++"
 msgstr ""
 
-#: cp/pt.c:274
+#: cp/pt.c:276
 #, gcc-internal-format
 msgid "data member %qD cannot be a member template"
 msgstr ""
 
-#: cp/pt.c:286
+#: cp/pt.c:288
 #, gcc-internal-format
 msgid "invalid member template declaration %qD"
 msgstr ""
 
-#: cp/pt.c:653
+#: cp/pt.c:655
 #, gcc-internal-format
 msgid "explicit specialization in non-namespace scope %qD"
 msgstr ""
 
-#: cp/pt.c:667
+#: cp/pt.c:669
 #, gcc-internal-format
 msgid "enclosing class templates are not explicitly specialized"
 msgstr ""
 
-#: cp/pt.c:753
+#: cp/pt.c:755
 #, gcc-internal-format
 msgid "specialization of %qD must appear at namespace scope"
 msgstr ""
 
-#: cp/pt.c:761
+#: cp/pt.c:763
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr ""
 
-#: cp/pt.c:762 cp/pt.c:864
+#: cp/pt.c:764 cp/pt.c:866
 #, gcc-internal-format
 msgid "  from definition of %q+#D"
 msgstr ""
 
-#: cp/pt.c:779
+#: cp/pt.c:781
 #, gcc-internal-format
 msgid ""
 "explicit instantiation of %qD in namespace %qD (which does not enclose "
 "namespace %qD)"
 msgstr ""
 
-#: cp/pt.c:797
+#: cp/pt.c:799
 #, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr ""
 
-#: cp/pt.c:830
+#: cp/pt.c:832
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr ""
 
-#: cp/pt.c:863
+#: cp/pt.c:865
 #, gcc-internal-format
 msgid "specializing %q#T in different namespace"
 msgstr ""
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.c:901
+#: cp/pt.c:903
 #, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr ""
 
-#: cp/pt.c:918
+#: cp/pt.c:920
 #, gcc-internal-format
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr ""
 
-#: cp/pt.c:922
+#: cp/pt.c:924
 #, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr ""
 
-#: cp/pt.c:1339
+#: cp/pt.c:1341
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr ""
 
-#: cp/pt.c:1728
+#: cp/pt.c:1729
 #, gcc-internal-format
 msgid "%s %+#D"
 msgstr ""
 
-#: cp/pt.c:1811
+#: cp/pt.c:1813
 #, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr ""
 
-#: cp/pt.c:2020
+#: cp/pt.c:2022
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr ""
 
-#: cp/pt.c:2023
+#: cp/pt.c:2025
 #, gcc-internal-format
 msgid ""
 "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr ""
 
-#: cp/pt.c:2032
+#: cp/pt.c:2034
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr ""
 
 #. This case handles bogus declarations like template <>
 #. template <class T> void f<int>();
-#: cp/pt.c:2268 cp/pt.c:2322
+#: cp/pt.c:2270 cp/pt.c:2324
 #, gcc-internal-format
 msgid "template-id %qD in declaration of primary template"
 msgstr ""
 
-#: cp/pt.c:2281
+#: cp/pt.c:2283
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr ""
 
-#: cp/pt.c:2287
+#: cp/pt.c:2289
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr ""
 
-#: cp/pt.c:2295
+#: cp/pt.c:2297
 #, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr ""
 
-#: cp/pt.c:2298
+#: cp/pt.c:2300
 #, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr ""
 
-#: cp/pt.c:2300
+#: cp/pt.c:2302
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr ""
 
-#: cp/pt.c:2319
+#: cp/pt.c:2321
 #, gcc-internal-format
 msgid "function template partial specialization %qD is not allowed"
 msgstr ""
 
-#: cp/pt.c:2351
+#: cp/pt.c:2353
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr ""
 
-#: cp/pt.c:2381
+#: cp/pt.c:2383
 #, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr ""
 
-#: cp/pt.c:2389
+#: cp/pt.c:2391
 #, gcc-internal-format
 msgid "%qD is not declared in %qD"
 msgstr ""
@@ -30898,142 +31296,142 @@
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.c:2451
+#: cp/pt.c:2453
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr ""
 
-#: cp/pt.c:2495
+#: cp/pt.c:2497
 #, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr ""
 
-#: cp/pt.c:3114
+#: cp/pt.c:3116
 #, gcc-internal-format
 msgid "base initializer expansion %<%T%> contains no parameter packs"
 msgstr ""
 
-#: cp/pt.c:3175
+#: cp/pt.c:3177
 #, gcc-internal-format
 msgid "expansion pattern %<%T%> contains no argument packs"
 msgstr ""
 
-#: cp/pt.c:3177
+#: cp/pt.c:3179
 #, gcc-internal-format
 msgid "expansion pattern %<%E%> contains no argument packs"
 msgstr ""
 
-#: cp/pt.c:3218
+#: cp/pt.c:3220
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr ""
 
-#: cp/pt.c:3233 cp/pt.c:4253
+#: cp/pt.c:3235 cp/pt.c:4255
 #, gcc-internal-format
 msgid "        %qD"
 msgstr ""
 
-#: cp/pt.c:3235
+#: cp/pt.c:3237
 #, gcc-internal-format
 msgid "        <anonymous>"
 msgstr ""
 
-#: cp/pt.c:3352
+#: cp/pt.c:3354
 #, gcc-internal-format
 msgid "declaration of %q+#D"
 msgstr ""
 
-#: cp/pt.c:3353
+#: cp/pt.c:3355
 #, gcc-internal-format
 msgid " shadows template parm %q+#D"
 msgstr ""
 
-#: cp/pt.c:4249
+#: cp/pt.c:4251
 #, gcc-internal-format
 msgid "template parameters not used in partial specialization:"
 msgstr ""
 
-#: cp/pt.c:4267
+#: cp/pt.c:4269
 #, gcc-internal-format
 msgid "partial specialization %qT does not specialize any template arguments"
 msgstr ""
 
-#: cp/pt.c:4312
+#: cp/pt.c:4314
 #, gcc-internal-format
 msgid ""
 "parameter pack argument %qE must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.c:4315
+#: cp/pt.c:4317
 #, gcc-internal-format
 msgid ""
 "parameter pack argument %qT must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.c:4334
+#: cp/pt.c:4336
 #, gcc-internal-format
 msgid "template argument %qE involves template parameter(s)"
 msgstr ""
 
-#: cp/pt.c:4380
+#: cp/pt.c:4382
 #, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/pt.c:4410
+#: cp/pt.c:4412
 #, gcc-internal-format
 msgid "partial specialization of %qT after instantiation of %qT"
 msgstr ""
 
-#: cp/pt.c:4503
+#: cp/pt.c:4505
 #, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr ""
 
-#: cp/pt.c:4524
+#: cp/pt.c:4526
 #, gcc-internal-format
 msgid "parameter pack %qE must be at the end of the template parameter list"
 msgstr ""
 
-#: cp/pt.c:4527
+#: cp/pt.c:4529
 #, gcc-internal-format
 msgid "parameter pack %qT must be at the end of the template parameter list"
 msgstr ""
 
-#: cp/pt.c:4564
+#: cp/pt.c:4566
 #, gcc-internal-format
 msgid ""
 "default template arguments may not be used in function template friend re-"
 "declaration"
 msgstr ""
 
-#: cp/pt.c:4567
+#: cp/pt.c:4569
 #, gcc-internal-format
 msgid ""
 "default template arguments may not be used in function template friend "
 "declarations"
 msgstr ""
 
-#: cp/pt.c:4570
+#: cp/pt.c:4572
 #, gcc-internal-format
 msgid ""
 "default template arguments may not be used in function templates without -"
 "std=c++0x or -std=gnu++0x"
 msgstr ""
 
-#: cp/pt.c:4573
+#: cp/pt.c:4575
 #, gcc-internal-format
 msgid "default template arguments may not be used in partial specializations"
 msgstr ""
 
-#: cp/pt.c:4576 cp/pt.c:4627
+#: cp/pt.c:4578 cp/pt.c:4629
 #, gcc-internal-format
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr ""
 
-#: cp/pt.c:4720
+#: cp/pt.c:4722
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr ""
@@ -31041,7 +31439,7 @@
 #. [temp.mem]
 #.
 #. A destructor shall not be a member template.
-#: cp/pt.c:4730
+#: cp/pt.c:4732
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr ""
@@ -31051,76 +31449,76 @@
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.c:4745
+#: cp/pt.c:4747
 #, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr ""
 
-#: cp/pt.c:4862
+#: cp/pt.c:4864
 #, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr ""
 
-#: cp/pt.c:4905
+#: cp/pt.c:4907
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr ""
 
-#: cp/pt.c:4917
+#: cp/pt.c:4919
 #, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr ""
 
-#: cp/pt.c:4920
+#: cp/pt.c:4922
 #, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr ""
 
-#: cp/pt.c:4922
+#: cp/pt.c:4924
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr ""
 
-#: cp/pt.c:4943
+#: cp/pt.c:4945
 #, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr ""
 
-#: cp/pt.c:4947
+#: cp/pt.c:4949
 #, gcc-internal-format
 msgid "use template<> for an explicit specialization"
 msgstr ""
 
-#: cp/pt.c:5043
+#: cp/pt.c:5045
 #, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr ""
 
-#: cp/pt.c:5056
+#: cp/pt.c:5058
 #, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr ""
 
-#: cp/pt.c:5067
+#: cp/pt.c:5069
 #, gcc-internal-format, gfc-internal-format
 msgid "redeclared with %d template parameter"
 msgid_plural "redeclared with %d template parameters"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/pt.c:5071
+#: cp/pt.c:5073
 #, gcc-internal-format
 msgid "previous declaration %q+D used %d template parameter"
 msgid_plural "previous declaration %q+D used %d template parameters"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/pt.c:5108
+#: cp/pt.c:5110
 #, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr ""
 
-#: cp/pt.c:5109
+#: cp/pt.c:5111
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr ""
@@ -31129,242 +31527,253 @@
 #.
 #. A template-parameter may not be given default arguments
 #. by two different declarations in the same scope.
-#: cp/pt.c:5119
+#: cp/pt.c:5121
 #, gcc-internal-format
 msgid "redefinition of default argument for %q#D"
 msgstr ""
 
-#: cp/pt.c:5121
+#: cp/pt.c:5123
 #, gcc-internal-format
 msgid "original definition appeared here"
 msgstr ""
 
-#: cp/pt.c:5209
+#: cp/pt.c:5211
 #, gcc-internal-format
 msgid ""
 "%qE is not a valid template argument for type %qT because function %qD has "
 "not external linkage"
 msgstr ""
 
-#: cp/pt.c:5231 cp/pt.c:5571
+#: cp/pt.c:5233 cp/pt.c:5573
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr ""
 
-#: cp/pt.c:5233
+#: cp/pt.c:5235
 #, gcc-internal-format
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr ""
 
-#: cp/pt.c:5302
+#: cp/pt.c:5304
 #, gcc-internal-format
 msgid ""
 "%qE is not a valid template argument for type %qT because string literals "
 "can never be used in this context"
 msgstr ""
 
-#: cp/pt.c:5403
+#: cp/pt.c:5405
 #, gcc-internal-format
 msgid "in template argument for type %qT "
 msgstr ""
 
-#: cp/pt.c:5443
+#: cp/pt.c:5445
 #, gcc-internal-format
 msgid ""
 "%qD is not a valid template argument because %qD is a variable, not the "
 "address of a variable"
 msgstr ""
 
-#: cp/pt.c:5461
+#: cp/pt.c:5463
 #, gcc-internal-format
 msgid ""
 "%qE is not a valid template argument of type %qT because %qE is not a "
 "variable"
 msgstr ""
 
-#: cp/pt.c:5468
+#: cp/pt.c:5470
 #, gcc-internal-format
 msgid ""
 "%qE is not a valid template argument of type %qT because %qD does not have "
 "external linkage"
 msgstr ""
 
-#: cp/pt.c:5498
+#: cp/pt.c:5500
 #, gcc-internal-format
 msgid ""
 "%qE is not a valid template argument for type %qT because of conflicts in cv-"
 "qualification"
 msgstr ""
 
-#: cp/pt.c:5505
+#: cp/pt.c:5507
 #, gcc-internal-format
 msgid ""
 "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr ""
 
-#: cp/pt.c:5522
+#: cp/pt.c:5524
 #, gcc-internal-format
 msgid ""
 "%q#D is not a valid template argument for type %qT because a reference "
 "variable does not have a constant address"
 msgstr ""
 
-#: cp/pt.c:5531
+#: cp/pt.c:5533
 #, gcc-internal-format
 msgid ""
 "%qE is not a valid template argument for type %qT because it is not an "
 "object with external linkage"
 msgstr ""
 
-#: cp/pt.c:5539
+#: cp/pt.c:5541
 #, gcc-internal-format
 msgid ""
 "%qE is not a valid template argument for type %qT because object %qD has not "
 "external linkage"
 msgstr ""
 
-#: cp/pt.c:5572
+#: cp/pt.c:5574
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr ""
 
-#: cp/pt.c:5586
+#: cp/pt.c:5588
 #, gcc-internal-format
 msgid ""
 "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr ""
 
-#: cp/pt.c:5588
+#: cp/pt.c:5590
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr ""
 
-#: cp/pt.c:5626
+#: cp/pt.c:5628
 #, gcc-internal-format
 msgid ""
 "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr ""
 
-#: cp/pt.c:5632
+#: cp/pt.c:5634
 #, gcc-internal-format
 msgid "standard conversions are not allowed in this context"
 msgstr ""
 
-#: cp/pt.c:5966
+#: cp/pt.c:5934
+#, gcc-internal-format
+msgid "ignoring attributes on template argument %qT"
+msgstr ""
+
+#: cp/pt.c:5992
 #, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr ""
 
-#: cp/pt.c:5991
+#: cp/pt.c:6017
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr ""
 
-#: cp/pt.c:6007 cp/pt.c:6026 cp/pt.c:6072
+#: cp/pt.c:6033 cp/pt.c:6052 cp/pt.c:6098
 #, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr ""
 
-#: cp/pt.c:6011
+#: cp/pt.c:6037
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr ""
 
-#: cp/pt.c:6015
+#: cp/pt.c:6041
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr ""
 
-#: cp/pt.c:6017
+#: cp/pt.c:6043
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr ""
 
-#: cp/pt.c:6030
+#: cp/pt.c:6056
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr ""
 
-#: cp/pt.c:6032
+#: cp/pt.c:6058
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr ""
 
-#: cp/pt.c:6075
+#: cp/pt.c:6101
 #, gcc-internal-format
 msgid "  expected a template of type %qD, got %qT"
 msgstr ""
 
 #. Not sure if this is reachable, but it doesn't hurt
 #. to be robust.
-#: cp/pt.c:6108
+#: cp/pt.c:6134
 #, gcc-internal-format
 msgid "type mismatch in nontype parameter pack"
 msgstr ""
 
-#: cp/pt.c:6130
+#: cp/pt.c:6156
 #, gcc-internal-format
 msgid "could not convert template argument %qE to %qT"
 msgstr ""
 
-#: cp/pt.c:6195 cp/pt.c:6340
+#: cp/pt.c:6222 cp/pt.c:6367
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr ""
 
-#: cp/pt.c:6336
+#: cp/pt.c:6363
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d or more)"
 msgstr ""
 
-#: cp/pt.c:6344
+#: cp/pt.c:6371
 #, gcc-internal-format
 msgid "provided for %q+D"
 msgstr ""
 
-#: cp/pt.c:6411
+#: cp/pt.c:6438
 #, gcc-internal-format
 msgid "cannot expand %<%E%> into a fixed-length argument list"
 msgstr ""
 
-#: cp/pt.c:6414
+#: cp/pt.c:6441
 #, gcc-internal-format
 msgid "cannot expand %<%T%> into a fixed-length argument list"
 msgstr ""
 
-#: cp/pt.c:6437
+#: cp/pt.c:6464
 #, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr ""
 
-#: cp/pt.c:6765
+#: cp/pt.c:6788
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr ""
 
-#: cp/pt.c:6767
+#: cp/pt.c:6790
 #, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr ""
 
-#: cp/pt.c:7486
+#: cp/pt.c:7518
+msgid ""
+"template instantiation depth exceeds maximum of %d (use -ftemplate-depth= to "
+"increase the maximum) substituting %qS"
+msgstr ""
+
+#: cp/pt.c:7522
 #, gcc-internal-format
 msgid ""
 "template instantiation depth exceeds maximum of %d (use -ftemplate-depth= to "
 "increase the maximum) instantiating %qD"
 msgstr ""
 
-#: cp/pt.c:8788
+#: cp/pt.c:8844
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %<%T%>"
 msgstr ""
 
-#: cp/pt.c:8792
+#: cp/pt.c:8848
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %<%E%>"
 msgstr ""
 
-#: cp/pt.c:9865
+#: cp/pt.c:9923
 #, gcc-internal-format
 msgid "instantiation of %q+D as type %qT"
 msgstr ""
@@ -31382,229 +31791,256 @@
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.c:10012
+#: cp/pt.c:10070
 #, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr ""
 
-#: cp/pt.c:10180
+#: cp/pt.c:10240
 #, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr ""
 
-#: cp/pt.c:10182
+#: cp/pt.c:10242
 #, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr ""
 
-#: cp/pt.c:10259
+#: cp/pt.c:10319
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr ""
 
-#: cp/pt.c:10261
+#: cp/pt.c:10321
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr ""
 
-#: cp/pt.c:10291
+#: cp/pt.c:10351
 #, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr ""
 
-#: cp/pt.c:10754
+#: cp/pt.c:10839
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr ""
 
-#: cp/pt.c:10756
+#: cp/pt.c:10841
 #, gcc-internal-format
 msgid "forming pointer to reference type %qT"
 msgstr ""
 
-#: cp/pt.c:10758
+#: cp/pt.c:10843
 #, gcc-internal-format
 msgid "forming reference to reference type %qT"
 msgstr ""
 
-#: cp/pt.c:10807
+#: cp/pt.c:10892
 #, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr ""
 
-#: cp/pt.c:10813
+#: cp/pt.c:10898
 #, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr ""
 
-#: cp/pt.c:10819
+#: cp/pt.c:10904
 #, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr ""
 
-#: cp/pt.c:10881
+#: cp/pt.c:10966
 #, gcc-internal-format
 msgid "creating array of %qT"
 msgstr ""
 
-#: cp/pt.c:10887
+#: cp/pt.c:10972
 #, gcc-internal-format
 msgid "creating array of %qT, which is an abstract class type"
 msgstr ""
 
-#: cp/pt.c:10916
+#: cp/pt.c:11001
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr ""
 
-#: cp/pt.c:10953
+#: cp/pt.c:11038
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr ""
 
-#: cp/pt.c:10961
+#: cp/pt.c:11046
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is is not a class type"
 msgstr ""
 
-#: cp/pt.c:11071
+#: cp/pt.c:11163
 #, gcc-internal-format
 msgid "use of %qs in template"
 msgstr ""
 
-#: cp/pt.c:11203
+#: cp/pt.c:11295
 #, gcc-internal-format
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/pt.c:11218
+#: cp/pt.c:11310
 #, gcc-internal-format
 msgid ""
 "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr ""
 
-#: cp/pt.c:11220
+#: cp/pt.c:11312
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr ""
 
-#: cp/pt.c:11366
+#: cp/pt.c:11458
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr ""
 
-#: cp/pt.c:11716 cp/pt.c:12431
+#: cp/pt.c:11808 cp/pt.c:12523
 #, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr ""
 
-#: cp/pt.c:11720 cp/pt.c:12435
+#: cp/pt.c:11812 cp/pt.c:12527
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr ""
 
-#: cp/pt.c:13168
+#: cp/pt.c:13068
+#, gcc-internal-format
+msgid ""
+"%qD was not declared in this scope, and no declarations were found by "
+"argument-dependent lookup at the point of instantiation"
+msgstr ""
+
+#: cp/pt.c:13075
+#, gcc-internal-format
+msgid "declarations in dependent base %qT are not found by unqualified lookup"
+msgstr ""
+
+#: cp/pt.c:13080
+#, gcc-internal-format
+msgid "use %<this->%D%> instead"
+msgstr ""
+
+#: cp/pt.c:13083
+#, gcc-internal-format
+msgid "use %<%T::%D%> instead"
+msgstr ""
+
+#: cp/pt.c:13087
+#, gcc-internal-format
+msgid "%q+D declared here, later in the translation unit"
+msgstr ""
+
+#: cp/pt.c:13320
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr ""
 
-#: cp/pt.c:13171
+#: cp/pt.c:13323
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr ""
 
-#: cp/pt.c:13450
+#: cp/pt.c:13603
 #, gcc-internal-format
 msgid "%qT is/uses anonymous type"
 msgstr ""
 
-#: cp/pt.c:13452
+#: cp/pt.c:13605
 #, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr ""
 
-#: cp/pt.c:13462
+#: cp/pt.c:13615
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr ""
 
-#: cp/pt.c:13473
+#: cp/pt.c:13626
 #, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr ""
 
-#: cp/pt.c:13491
+#: cp/pt.c:13644
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr ""
 
-#: cp/pt.c:16582
+#: cp/pt.c:16850
 #, gcc-internal-format
 msgid "ambiguous class template instantiation for %q#T"
 msgstr ""
 
-#: cp/pt.c:16586
+#: cp/pt.c:16854
 #, gcc-internal-format
 msgid "%s %+#T"
 msgstr ""
 
-#: cp/pt.c:16610 cp/pt.c:16693
+#: cp/pt.c:16878 cp/pt.c:16961
 #, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr ""
 
-#: cp/pt.c:16625
+#: cp/pt.c:16893
 #, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr ""
 
-#: cp/pt.c:16631 cp/pt.c:16688
+#: cp/pt.c:16899 cp/pt.c:16956
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr ""
 
-#: cp/pt.c:16636
+#: cp/pt.c:16904
 #, gcc-internal-format
 msgid ""
 "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr ""
 
-#: cp/pt.c:16644
+#: cp/pt.c:16912
 #, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr ""
 
-#: cp/pt.c:16680
+#: cp/pt.c:16948
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr ""
 
-#: cp/pt.c:16703 cp/pt.c:16795
+#: cp/pt.c:16971 cp/pt.c:17063
 #, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr ""
 
-#: cp/pt.c:16708 cp/pt.c:16812
+#: cp/pt.c:16976 cp/pt.c:17080
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr ""
 
-#: cp/pt.c:16773
+#: cp/pt.c:17041
 #, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr ""
 
-#: cp/pt.c:16782
+#: cp/pt.c:17050
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr ""
 
-#: cp/pt.c:16800
+#: cp/pt.c:17068
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr ""
 
-#: cp/pt.c:16846
+#: cp/pt.c:17114
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr ""
@@ -31616,12 +32052,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:17328
+#: cp/pt.c:17661
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr ""
 
-#: cp/pt.c:17502
+#: cp/pt.c:17837
 #, gcc-internal-format
 msgid ""
 "template instantiation depth exceeds maximum of %d instantiating %q+D, "
@@ -31629,19 +32065,19 @@
 "the maximum)"
 msgstr ""
 
-#: cp/pt.c:17868
+#: cp/pt.c:18204
 #, gcc-internal-format
 msgid "%q#T is not a valid type for a template constant parameter"
 msgstr ""
 
-#: cp/pt.c:18917
+#: cp/pt.c:19277
 #, gcc-internal-format
 msgid ""
 "deducing from brace-enclosed initializer list requires #include "
 "<initializer_list>"
 msgstr ""
 
-#: cp/pt.c:18970
+#: cp/pt.c:19336
 #, gcc-internal-format
 msgid "variable %q#D with %<auto%> type used in its own initializer"
 msgstr ""
@@ -31649,12 +32085,12 @@
 #. If type is error_mark_node a diagnostic must have been
 #. emitted by now.  Also, having a mention to '<type error>'
 #. in the diagnostic is not really useful to the user.
-#: cp/pt.c:18998
+#: cp/pt.c:19367
 #, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr ""
 
-#: cp/pt.c:19009
+#: cp/pt.c:19378
 #, gcc-internal-format
 msgid "inconsistent deduction for %qT: %qT and then %qT"
 msgstr ""
@@ -31721,7 +32157,7 @@
 msgid "deprecated covariant return type for %q+#D"
 msgstr ""
 
-#: cp/search.c:1864 cp/search.c:1879 cp/search.c:1884 cp/search.c:1903
+#: cp/search.c:1864 cp/search.c:1879 cp/search.c:1884 cp/search.c:1908
 #, gcc-internal-format
 msgid "  overriding %q+#D"
 msgstr ""
@@ -31736,573 +32172,579 @@
 msgid "conflicting return type specified for %q+#D"
 msgstr ""
 
-#: cp/search.c:1893
+#: cp/search.c:1898
 #, gcc-internal-format
 msgid "looser throw specifier for %q+#F"
 msgstr ""
 
-#: cp/search.c:1894
+#: cp/search.c:1899
 #, gcc-internal-format
 msgid "  overriding %q+#F"
 msgstr ""
 
-#: cp/search.c:1902
+#: cp/search.c:1907
 #, gcc-internal-format
 msgid "conflicting type attributes specified for %q+#D"
 msgstr ""
 
-#: cp/search.c:1912
+#: cp/search.c:1917
 #, gcc-internal-format
 msgid "deleted function %q+D"
 msgstr ""
 
-#: cp/search.c:1913
+#: cp/search.c:1918
 #, gcc-internal-format
 msgid "overriding non-deleted function %q+D"
 msgstr ""
 
-#: cp/search.c:1918
+#: cp/search.c:1923
 #, gcc-internal-format
 msgid "non-deleted function %q+D"
 msgstr ""
 
-#: cp/search.c:1919
+#: cp/search.c:1924
 #, gcc-internal-format
 msgid "overriding deleted function %q+D"
 msgstr ""
 
+#: cp/search.c:1930
+#, gcc-internal-format
+msgid "virtual function %q+D"
+msgstr ""
+
+#: cp/search.c:1931
+#, gcc-internal-format
+msgid "overriding final function %q+D"
+msgstr ""
+
 #. A static member function cannot match an inherited
 #. virtual member function.
-#: cp/search.c:2016
+#: cp/search.c:2027
 #, gcc-internal-format
 msgid "%q+#D cannot be declared"
 msgstr ""
 
-#: cp/search.c:2017
+#: cp/search.c:2028
 #, gcc-internal-format
 msgid "  since %q+#D declared in base class"
 msgstr ""
 
-#: cp/semantics.c:777
+#: cp/semantics.c:772
 #, gcc-internal-format
 msgid "suggest explicit braces around empty body in %<do%> statement"
 msgstr ""
 
-#: cp/semantics.c:1386
+#: cp/semantics.c:1384
 #, gcc-internal-format
 msgid "type of asm operand %qE could not be determined"
 msgstr ""
 
-#: cp/semantics.c:1444
+#: cp/semantics.c:1442
 #, gcc-internal-format
 msgid "__label__ declarations are only allowed in function scopes"
 msgstr ""
 
-#: cp/semantics.c:1546
+#: cp/semantics.c:1544
 #, gcc-internal-format
 msgid "invalid use of member %q+D in static member function"
 msgstr ""
 
-#: cp/semantics.c:1548
+#: cp/semantics.c:1546
 #, gcc-internal-format
 msgid "invalid use of non-static data member %q+D"
 msgstr ""
 
-#: cp/semantics.c:1549
+#: cp/semantics.c:1547
 #, gcc-internal-format
 msgid "from this location"
 msgstr ""
 
-#: cp/semantics.c:2136
+#: cp/semantics.c:2158
 #, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr ""
 
-#: cp/semantics.c:2203
+#: cp/semantics.c:2239
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr ""
 
-#: cp/semantics.c:2209
+#: cp/semantics.c:2245
 #, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr ""
 
-#: cp/semantics.c:2211
+#: cp/semantics.c:2247
 #, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr ""
 
-#: cp/semantics.c:2235
+#: cp/semantics.c:2271
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr ""
 
-#: cp/semantics.c:2240 cp/typeck.c:2347
+#: cp/semantics.c:2276 cp/typeck.c:2361
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/semantics.c:2262
+#: cp/semantics.c:2298
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr ""
 
-#: cp/semantics.c:2306
+#: cp/semantics.c:2352
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr ""
 
-#: cp/semantics.c:2378
+#: cp/semantics.c:2460
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr ""
 
-#: cp/semantics.c:2420
+#: cp/semantics.c:2502
 #, gcc-internal-format
 msgid ""
 "invalid use of type %qT as a default value for a template template-parameter"
 msgstr ""
 
-#: cp/semantics.c:2423
+#: cp/semantics.c:2505
 #, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr ""
 
-#: cp/semantics.c:2440
+#: cp/semantics.c:2522
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr ""
 
-#: cp/semantics.c:2471
+#: cp/semantics.c:2553
 #, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr ""
 
-#: cp/semantics.c:2685
+#: cp/semantics.c:2767
 #, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr ""
 
-#: cp/semantics.c:2697
-#, gcc-internal-format
-msgid "base class %qT has cv qualifiers"
-msgstr ""
-
-#: cp/semantics.c:2923 cp/semantics.c:8021
+#: cp/semantics.c:2986 cp/semantics.c:8293
 #, gcc-internal-format
 msgid "%qD is not captured"
 msgstr ""
 
-#: cp/semantics.c:2929
+#: cp/semantics.c:2992
 #, gcc-internal-format
 msgid "use of %<auto%> variable from containing function"
 msgstr ""
 
-#: cp/semantics.c:2931
+#: cp/semantics.c:2994
 #, gcc-internal-format
 msgid "  %q+#D declared here"
 msgstr ""
 
-#: cp/semantics.c:2942
+#: cp/semantics.c:3005
 #, gcc-internal-format
 msgid "use of parameter %qD outside function body"
 msgstr ""
 
-#: cp/semantics.c:2979
+#: cp/semantics.c:3042
 #, 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:3136
+#: cp/semantics.c:3202
 #, gcc-internal-format
 msgid "use of namespace %qD as expression"
 msgstr ""
 
-#: cp/semantics.c:3141
+#: cp/semantics.c:3207
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr ""
 
 #. Ambiguous reference to base members.
-#: cp/semantics.c:3147
+#: cp/semantics.c:3213
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr ""
 
-#: cp/semantics.c:3170
+#: cp/semantics.c:3236
 #, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/semantics.c:3290 cp/semantics.c:4936
+#: cp/semantics.c:3356
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr ""
 
-#: cp/semantics.c:3305
+#: cp/semantics.c:3384
+#, gcc-internal-format
+msgid "%qE is not an enumeration type"
+msgstr ""
+
+#: cp/semantics.c:3409
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr ""
 
-#: cp/semantics.c:3316
+#: cp/semantics.c:3420
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr ""
 
-#: cp/semantics.c:3712
+#: cp/semantics.c:3816
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr ""
 
-#: cp/semantics.c:3721 cp/semantics.c:3743 cp/semantics.c:3765
+#: cp/semantics.c:3825 cp/semantics.c:3847 cp/semantics.c:3869
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr ""
 
-#: cp/semantics.c:3735
+#: cp/semantics.c:3839
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr ""
 
-#: cp/semantics.c:3757
+#: cp/semantics.c:3861
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr ""
 
-#: cp/semantics.c:3787
+#: cp/semantics.c:3891
 #, gcc-internal-format
 msgid "num_threads expression must be integral"
 msgstr ""
 
-#: cp/semantics.c:3801
+#: cp/semantics.c:3905
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.c:3933
+#: cp/semantics.c:4038
 #, gcc-internal-format
 msgid "%qE has reference type for %qs"
 msgstr ""
 
-#: cp/semantics.c:4004
+#: cp/semantics.c:4110
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr ""
 
-#: cp/semantics.c:4018
+#: cp/semantics.c:4124
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr ""
 
-#: cp/semantics.c:4163
+#: cp/semantics.c:4269
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr ""
 
-#: cp/semantics.c:4693
+#: cp/semantics.c:4799
 #, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr ""
 
-#: cp/semantics.c:4780 cp/semantics.c:4898
+#: cp/semantics.c:4828
 #, gcc-internal-format
 msgid "argument to decltype must be an expression"
 msgstr ""
 
-#: cp/semantics.c:4846
+#: cp/semantics.c:4857
 #, gcc-internal-format
-msgid "%qE refers to a set of overloaded functions"
+msgid "decltype cannot resolve address of overloaded function"
 msgstr ""
 
-#: cp/semantics.c:5145
+#: cp/semantics.c:5175
 #, gcc-internal-format
 msgid "__is_convertible_to"
 msgstr ""
 
-#: cp/semantics.c:5187 cp/semantics.c:5197
+#: cp/semantics.c:5217 cp/semantics.c:5227
 #, gcc-internal-format
 msgid "incomplete type %qT not allowed"
 msgstr ""
 
-#: cp/semantics.c:5262
+#: cp/semantics.c:5300
 #, gcc-internal-format
 msgid "the type %qT of constexpr variable %qD is not literal"
 msgstr ""
 
-#: cp/semantics.c:5341
+#: cp/semantics.c:5368
 #, gcc-internal-format
-msgid "invalid type for parameter %q#D of constexpr function"
+msgid "invalid type for parameter %d of constexpr function %q+#D"
 msgstr ""
 
-#: cp/semantics.c:5352
+#: cp/semantics.c:5379
 #, gcc-internal-format
-msgid "invalid return type %qT of constexpr function %qD"
+msgid "invalid return type %qT of constexpr function %q+D"
 msgstr ""
 
-#: cp/semantics.c:5362
-#, gcc-internal-format
-msgid "enclosing class of %q#D is not a literal type"
-msgstr ""
-
-#: cp/semantics.c:5535
+#: cp/semantics.c:5544
 #, gcc-internal-format
 msgid "constexpr constructor does not have empty body"
 msgstr ""
 
-#: cp/semantics.c:5615
+#: cp/semantics.c:5671
 #, gcc-internal-format
 msgid "body of constexpr function %qD not a return-statement"
 msgstr ""
 
-#: cp/semantics.c:5939
+#: cp/semantics.c:6009
 #, gcc-internal-format
 msgid "expression %qE does not designate a constexpr function"
 msgstr ""
 
-#: cp/semantics.c:5953
+#: cp/semantics.c:6023
 #, gcc-internal-format
 msgid "%qD is not a constexpr function"
 msgstr ""
 
-#: cp/semantics.c:5980
+#: cp/semantics.c:6050
 #, gcc-internal-format
 msgid "%qD used before its definition"
 msgstr ""
 
-#: cp/semantics.c:6013
+#: cp/semantics.c:6083
 #, gcc-internal-format
 msgid "call has circular dependency"
 msgstr ""
 
-#: cp/semantics.c:6021
+#: cp/semantics.c:6091
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "constexpr evaluation depth exceeds maximum of %d (use -fconstexpr-depth= to "
 "increase the maximum)"
 msgstr ""
 
-#: cp/semantics.c:6099
+#: cp/semantics.c:6169
 #, gcc-internal-format
 msgid "%q+E is not a constant expression"
 msgstr ""
 
-#: cp/semantics.c:6216
+#: cp/semantics.c:6302
 #, gcc-internal-format
 msgid "array subscript out of bound"
 msgstr ""
 
-#: cp/semantics.c:6255 cp/semantics.c:6301 cp/semantics.c:6771
+#: cp/semantics.c:6348 cp/semantics.c:6397 cp/semantics.c:7011
 #, gcc-internal-format
 msgid "%qE is not a constant expression"
 msgstr ""
 
-#: cp/semantics.c:6269
+#: cp/semantics.c:6362
 #, gcc-internal-format
 msgid ""
 "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr ""
 
-#: cp/semantics.c:6652
+#: cp/semantics.c:6886
 #, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr ""
 
-#: cp/semantics.c:6682
+#: cp/semantics.c:6917
 #, gcc-internal-format
 msgid "the value of %qD is not usable in a constant expression"
 msgstr ""
 
-#: cp/semantics.c:6686
+#: cp/semantics.c:6924
 #, gcc-internal-format
 msgid "%qD used in its own initializer"
 msgstr ""
 
-#: cp/semantics.c:6691
+#: cp/semantics.c:6929
 #, gcc-internal-format
 msgid "%q#D is not const"
 msgstr ""
 
-#: cp/semantics.c:6694
+#: cp/semantics.c:6932
 #, gcc-internal-format
 msgid "%q#D is volatile"
 msgstr ""
 
-#: cp/semantics.c:6697
+#: cp/semantics.c:6936
 #, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr ""
 
-#: cp/semantics.c:6706
+#: cp/semantics.c:6945
 #, gcc-internal-format
 msgid "%qD was not declared %<constexpr%>"
 msgstr ""
 
-#: cp/semantics.c:6709
+#: cp/semantics.c:6948
 #, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr ""
 
-#: cp/semantics.c:6982 cp/semantics.c:7399
+#: cp/semantics.c:7222 cp/semantics.c:7662
 #, gcc-internal-format
 msgid ""
 "conversion of expression %qE of pointer type cannot yield a constant "
 "expression"
 msgstr ""
 
-#: cp/semantics.c:7036 cp/semantics.c:7490 cp/semantics.c:7714
+#: cp/semantics.c:7276 cp/semantics.c:7753 cp/semantics.c:7984
 #, gcc-internal-format
 msgid "expression %qE is not a constant-expression"
 msgstr ""
 
-#: cp/semantics.c:7041
+#: cp/semantics.c:7281
 #, gcc-internal-format
 msgid "unexpected expression %qE of kind %s"
 msgstr ""
 
-#: cp/semantics.c:7248
+#: cp/semantics.c:7495
 #, gcc-internal-format
 msgid "expression %qE has side-effects"
 msgstr ""
 
-#: cp/semantics.c:7293
+#: cp/semantics.c:7544
 #, gcc-internal-format
 msgid "%qE is not a potential constant expression"
 msgstr ""
 
-#: cp/semantics.c:7311
-#, gcc-internal-format
-msgid "%qE is not a function name"
-msgstr ""
-
-#: cp/semantics.c:7326
+#: cp/semantics.c:7568
 #, gcc-internal-format
 msgid "%qD is not %<constexpr%>"
 msgstr ""
 
-#: cp/semantics.c:7344
+#: cp/semantics.c:7584
 #, gcc-internal-format
 msgid "object argument is not a potential constant expression"
 msgstr ""
 
-#: cp/semantics.c:7352
+#: cp/semantics.c:7605
+#, gcc-internal-format
+msgid "%qE is not a function name"
+msgstr ""
+
+#: cp/semantics.c:7615
 #, gcc-internal-format
 msgid "argument in position %qP is not a potential constant expression"
 msgstr ""
 
-#: cp/semantics.c:7422
+#: cp/semantics.c:7685
 #, gcc-internal-format
 msgid ""
 "address-of an object %qE with thread local or automatic storage is not a "
 "constant expression"
 msgstr ""
 
-#: cp/semantics.c:7453
+#: cp/semantics.c:7716
 #, gcc-internal-format
-msgid "the value of the object being constructed is not a constant expression"
+msgid ""
+"use of the value of the object being constructed in a constant expression"
 msgstr ""
 
-#: cp/semantics.c:7502
+#: cp/semantics.c:7765
 #, gcc-internal-format
 msgid ""
 "typeid-expression is not a constant expression because %qE is of polymorphic "
 "type"
 msgstr ""
 
-#: cp/semantics.c:7515
+#: cp/semantics.c:7778
 #, gcc-internal-format
 msgid "difference of two pointer expressions is not a constant expression"
 msgstr ""
 
-#: cp/semantics.c:7534
+#: cp/semantics.c:7797
 #, gcc-internal-format
 msgid "pointer comparison expression is not a constant expression"
 msgstr ""
 
-#: cp/semantics.c:7619
+#: cp/semantics.c:7887
 #, gcc-internal-format
 msgid "division by zero is not a constant-expression"
 msgstr ""
 
-#: cp/semantics.c:7722
+#: cp/semantics.c:7992
 #, gcc-internal-format
 msgid "non-constant array initialization"
 msgstr ""
 
-#: cp/semantics.c:7728
+#: cp/semantics.c:7998
 #, gcc-internal-format, gfc-internal-format
 msgid "unexpected ast of kind %s"
 msgstr ""
 
-#: cp/semantics.c:7898
+#: cp/semantics.c:8169
 #, gcc-internal-format
 msgid "cannot deduce lambda return type from a braced-init-list"
 msgstr ""
 
-#: cp/semantics.c:8067
+#: cp/semantics.c:8468
 #, gcc-internal-format
 msgid "cannot capture %qE by reference"
 msgstr ""
 
-#: cp/semantics.c:8090
+#: cp/semantics.c:8488
 #, gcc-internal-format
-msgid "already captured %<this%> in lambda expression"
+msgid "already captured %qD in lambda expression"
 msgstr ""
 
-#: cp/semantics.c:8221
+#: cp/semantics.c:8633
 #, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr ""
 
-#: cp/tree.c:985
+#: cp/tree.c:1011
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr ""
 
-#: cp/tree.c:2638
+#: cp/tree.c:2701
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to Java class definitions"
 msgstr ""
 
-#: cp/tree.c:2667
+#: cp/tree.c:2730
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to class definitions"
 msgstr ""
 
-#: cp/tree.c:2673
+#: cp/tree.c:2736
 #, gcc-internal-format
 msgid "%qE is obsolete; g++ vtables are now COM-compatible by default"
 msgstr ""
 
-#: cp/tree.c:2697
+#: cp/tree.c:2760
 #, gcc-internal-format
 msgid "requested init_priority is not an integer constant"
 msgstr ""
 
-#: cp/tree.c:2718
+#: cp/tree.c:2781
 #, gcc-internal-format
 msgid ""
 "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr ""
 
-#: cp/tree.c:2726
+#: cp/tree.c:2789
 #, gcc-internal-format
 msgid "requested init_priority is out of range"
 msgstr ""
 
-#: cp/tree.c:2736
+#: cp/tree.c:2799
 #, gcc-internal-format
 msgid "requested init_priority is reserved for internal use"
 msgstr ""
 
-#: cp/tree.c:2747
+#: cp/tree.c:2810
 #, gcc-internal-format
 msgid "%qE attribute is not supported on this platform"
 msgstr ""
 
-#: cp/tree.c:3383
+#: cp/tree.c:3475
 #, gcc-internal-format, gfc-internal-format
 msgid "lang_* check: failed in %s, at %s:%d"
 msgstr ""
@@ -32324,386 +32766,386 @@
 "cast"
 msgstr ""
 
-#: cp/typeck.c:599
+#: cp/typeck.c:604
 #, gcc-internal-format
 msgid ""
 "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-"
 "function"
 msgstr ""
 
-#: cp/typeck.c:604
+#: cp/typeck.c:609
 #, gcc-internal-format
 msgid ""
 "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-"
 "function"
 msgstr ""
 
-#: cp/typeck.c:609
+#: cp/typeck.c:614
 #, gcc-internal-format
 msgid ""
 "ISO C++ forbids conditional expression between pointer of type %<void *%> "
 "and pointer-to-function"
 msgstr ""
 
-#: cp/typeck.c:676
+#: cp/typeck.c:681
 #, gcc-internal-format
 msgid ""
 "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.c:681
+#: cp/typeck.c:686
 #, gcc-internal-format
 msgid ""
 "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.c:686
+#: cp/typeck.c:691
 #, gcc-internal-format
 msgid ""
 "conditional expression between distinct pointer-to-member types %qT and %qT "
 "lacks a cast"
 msgstr ""
 
-#: cp/typeck.c:1373
+#: cp/typeck.c:1384
 #, gcc-internal-format
 msgid "canonical types differ for identical types %T and %T"
 msgstr ""
 
-#: cp/typeck.c:1380
+#: cp/typeck.c:1391
 #, gcc-internal-format
 msgid "same canonical type node for different types %T and %T"
 msgstr ""
 
-#: cp/typeck.c:1505
+#: cp/typeck.c:1516
 #, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr ""
 
-#: cp/typeck.c:1582
+#: cp/typeck.c:1593
 #, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr ""
 
-#: cp/typeck.c:1590
+#: cp/typeck.c:1601
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr ""
 
-#: cp/typeck.c:1641
+#: cp/typeck.c:1652
 #, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr ""
 
-#: cp/typeck.c:1652
+#: cp/typeck.c:1663
 #, gcc-internal-format
 msgid ""
 "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr ""
 
-#: cp/typeck.c:1710
+#: cp/typeck.c:1721
 #, gcc-internal-format
 msgid "invalid use of non-static member function"
 msgstr ""
 
-#: cp/typeck.c:1992
+#: cp/typeck.c:2006
 #, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr ""
 
-#: cp/typeck.c:2115 cp/typeck.c:2495
+#: cp/typeck.c:2129 cp/typeck.c:2509
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr ""
 
-#: cp/typeck.c:2144
+#: cp/typeck.c:2158
 #, gcc-internal-format
 msgid "invalid use of nonstatic data member %qE"
 msgstr ""
 
-#: cp/typeck.c:2200
+#: cp/typeck.c:2214
 #, gcc-internal-format
 msgid "invalid access to non-static data member %qD of NULL object"
 msgstr ""
 
-#: cp/typeck.c:2203 cp/typeck.c:2234
+#: cp/typeck.c:2217 cp/typeck.c:2248
 #, gcc-internal-format
 msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
 msgstr ""
 
-#: cp/typeck.c:2231
+#: cp/typeck.c:2245
 #, gcc-internal-format
 msgid "invalid access to non-static data member %qD  of NULL object"
 msgstr ""
 
-#: cp/typeck.c:2359
+#: cp/typeck.c:2373
 #, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/typeck.c:2367
+#: cp/typeck.c:2381
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr ""
 
-#: cp/typeck.c:2406 cp/typeck.c:2426
+#: cp/typeck.c:2420 cp/typeck.c:2440
 #, gcc-internal-format
 msgid "%qD is not a template"
 msgstr ""
 
-#: cp/typeck.c:2534
+#: cp/typeck.c:2548
 #, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr ""
 
-#: cp/typeck.c:2558
+#: cp/typeck.c:2572
 #, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr ""
 
-#: cp/typeck.c:2578
+#: cp/typeck.c:2592
 #, gcc-internal-format
 msgid "%qD has no member named %qE"
 msgstr ""
 
-#: cp/typeck.c:2594
+#: cp/typeck.c:2608
 #, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr ""
 
-#: cp/typeck.c:2739
+#: cp/typeck.c:2752
 #, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr ""
 
-#: cp/typeck.c:2770
+#: cp/typeck.c:2783
 #, gcc-internal-format
 msgid "invalid use of array indexing on pointer to member"
 msgstr ""
 
-#: cp/typeck.c:2773
+#: cp/typeck.c:2786
 #, gcc-internal-format
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr ""
 
-#: cp/typeck.c:2776
+#: cp/typeck.c:2789
 #, gcc-internal-format
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr ""
 
-#: cp/typeck.c:2811
+#: cp/typeck.c:2824
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr ""
 
-#: cp/typeck.c:2895
+#: cp/typeck.c:2908
 #, gcc-internal-format
 msgid "ISO C++ forbids subscripting non-lvalue array"
 msgstr ""
 
-#: cp/typeck.c:2908
+#: cp/typeck.c:2921
 #, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr ""
 
-#: cp/typeck.c:2945
+#: cp/typeck.c:2958
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr ""
 
-#: cp/typeck.c:3011
+#: cp/typeck.c:3024
 #, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr ""
 
-#: cp/typeck.c:3208
+#: cp/typeck.c:3221
 #, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr ""
 
-#: cp/typeck.c:3227
+#: cp/typeck.c:3240
 #, gcc-internal-format
 msgid ""
 "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E "
 "(...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr ""
 
-#: cp/typeck.c:3242
+#: cp/typeck.c:3255
 #, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr ""
 
-#: cp/typeck.c:3290
+#: cp/typeck.c:3302
 #, gcc-internal-format
 msgid "too many arguments to constructor %q#D"
 msgstr ""
 
-#: cp/typeck.c:3291
+#: cp/typeck.c:3303
 #, gcc-internal-format
 msgid "too few arguments to constructor %q#D"
 msgstr ""
 
-#: cp/typeck.c:3296
+#: cp/typeck.c:3308
 #, gcc-internal-format
 msgid "too many arguments to member function %q#D"
 msgstr ""
 
-#: cp/typeck.c:3297
+#: cp/typeck.c:3309
 #, gcc-internal-format
 msgid "too few arguments to member function %q#D"
 msgstr ""
 
-#: cp/typeck.c:3303
+#: cp/typeck.c:3315
 #, gcc-internal-format
 msgid "too many arguments to function %q#D"
 msgstr ""
 
-#: cp/typeck.c:3304
+#: cp/typeck.c:3316
 #, gcc-internal-format
 msgid "too few arguments to function %q#D"
 msgstr ""
 
-#: cp/typeck.c:3314
+#: cp/typeck.c:3326
 #, gcc-internal-format
 msgid "too many arguments to method %q#D"
 msgstr ""
 
-#: cp/typeck.c:3315
+#: cp/typeck.c:3327
 #, gcc-internal-format
 msgid "too few arguments to method %q#D"
 msgstr ""
 
-#: cp/typeck.c:3318
+#: cp/typeck.c:3330
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr ""
 
-#: cp/typeck.c:3319
+#: cp/typeck.c:3331
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr ""
 
-#: cp/typeck.c:3398
+#: cp/typeck.c:3410
 #, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr ""
 
-#: cp/typeck.c:3401
+#: cp/typeck.c:3413
 #, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr ""
 
-#: cp/typeck.c:3673 cp/typeck.c:3684
+#: cp/typeck.c:3685 cp/typeck.c:3696
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr ""
 
 #. Some sort of arithmetic operation involving NULL was
 #. performed.
-#: cp/typeck.c:3727
+#: cp/typeck.c:3739
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr ""
 
-#: cp/typeck.c:3918
+#: cp/typeck.c:3930
 #, gcc-internal-format
 msgid "left rotate count is negative"
 msgstr ""
 
-#: cp/typeck.c:3919
+#: cp/typeck.c:3931
 #, gcc-internal-format
 msgid "right rotate count is negative"
 msgstr ""
 
-#: cp/typeck.c:3925
+#: cp/typeck.c:3937
 #, gcc-internal-format
 msgid "left rotate count >= width of type"
 msgstr ""
 
-#: cp/typeck.c:3926
+#: cp/typeck.c:3938
 #, gcc-internal-format
 msgid "right rotate count >= width of type"
 msgstr ""
 
-#: cp/typeck.c:3945 cp/typeck.c:4168
+#: cp/typeck.c:3957 cp/typeck.c:4180
 #, gcc-internal-format
 msgid "comparison with string literal results in unspecified behaviour"
 msgstr ""
 
-#: cp/typeck.c:3964 cp/typeck.c:3976
+#: cp/typeck.c:3976 cp/typeck.c:3988
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr ""
 
-#: cp/typeck.c:3988 cp/typeck.c:3996 cp/typeck.c:4191 cp/typeck.c:4199
+#: cp/typeck.c:4000 cp/typeck.c:4008 cp/typeck.c:4203 cp/typeck.c:4211
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr ""
 
-#: cp/typeck.c:4216
+#: cp/typeck.c:4228
 #, gcc-internal-format
 msgid "unordered comparison on non-floating point argument"
 msgstr ""
 
-#: cp/typeck.c:4263
+#: cp/typeck.c:4275
 #, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr ""
 
-#: cp/typeck.c:4480
+#: cp/typeck.c:4496
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr ""
 
-#: cp/typeck.c:4482
+#: cp/typeck.c:4498
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr ""
 
-#: cp/typeck.c:4484
+#: cp/typeck.c:4500
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr ""
 
-#: cp/typeck.c:4497
+#: cp/typeck.c:4513
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr ""
 
-#: cp/typeck.c:4555
+#: cp/typeck.c:4571
 #, gcc-internal-format
 msgid "taking address of constructor %qE"
 msgstr ""
 
-#: cp/typeck.c:4556
+#: cp/typeck.c:4572
 #, gcc-internal-format
 msgid "taking address of destructor %qE"
 msgstr ""
 
-#: cp/typeck.c:4570
+#: cp/typeck.c:4586
 #, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr ""
 
-#: cp/typeck.c:4573
+#: cp/typeck.c:4589
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr ""
 
-#: cp/typeck.c:4578
+#: cp/typeck.c:4594
 #, gcc-internal-format
 msgid ""
 "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr ""
 
 #. An expression like &memfn.
-#: cp/typeck.c:4729
+#: cp/typeck.c:4745
 #, gcc-internal-format
 msgid ""
 "ISO C++ forbids taking the address of an unqualified or parenthesized non-"
 "static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr ""
 
-#: cp/typeck.c:4734
+#: cp/typeck.c:4750
 #, gcc-internal-format
 msgid ""
 "ISO C++ forbids taking the address of a bound member function to form a "
@@ -32711,142 +33153,142 @@
 msgstr ""
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.c:4771
+#: cp/typeck.c:4787
 #, gcc-internal-format
 msgid "taking address of temporary"
 msgstr ""
 
-#: cp/typeck.c:4773
+#: cp/typeck.c:4789
 #, gcc-internal-format
 msgid "taking address of xvalue (rvalue reference)"
 msgstr ""
 
-#: cp/typeck.c:4790
+#: cp/typeck.c:4806
 #, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr ""
 
-#: cp/typeck.c:4847
+#: cp/typeck.c:4863
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
 msgstr ""
 
-#: cp/typeck.c:4875
+#: cp/typeck.c:4891
 #, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr ""
 
-#: cp/typeck.c:5139
+#: cp/typeck.c:5155
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing an enum"
 msgstr ""
 
-#: cp/typeck.c:5140
+#: cp/typeck.c:5156
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr ""
 
-#: cp/typeck.c:5156
+#: cp/typeck.c:5172
 #, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr ""
 
-#: cp/typeck.c:5157
+#: cp/typeck.c:5173
 #, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr ""
 
-#: cp/typeck.c:5168
+#: cp/typeck.c:5184
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr ""
 
-#: cp/typeck.c:5169
+#: cp/typeck.c:5185
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr ""
 
-#: cp/typeck.c:5202
+#: cp/typeck.c:5218
 #, gcc-internal-format
 msgid "invalid use of Boolean expression as operand to %<operator--%>"
 msgstr ""
 
-#: cp/typeck.c:5361
+#: cp/typeck.c:5377
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr ""
 
-#: cp/typeck.c:5384
+#: cp/typeck.c:5399
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr ""
 
-#: cp/typeck.c:5389
+#: cp/typeck.c:5404
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr ""
 
-#: cp/typeck.c:5461
+#: cp/typeck.c:5477
 #, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr ""
 
-#: cp/typeck.c:5465
+#: cp/typeck.c:5481
 #, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr ""
 
-#: cp/typeck.c:5469
+#: cp/typeck.c:5485
 #, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr ""
 
-#: cp/typeck.c:5501
+#: cp/typeck.c:5519
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr ""
 
-#: cp/typeck.c:5574
+#: cp/typeck.c:5592
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr ""
 
-#: cp/typeck.c:5605
+#: cp/typeck.c:5625
 #, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr ""
 
-#: cp/typeck.c:5610
+#: cp/typeck.c:5631
 #, gcc-internal-format
 msgid "static_cast from type %qT to type %qT casts away qualifiers"
 msgstr ""
 
-#: cp/typeck.c:5615
+#: cp/typeck.c:5637
 #, gcc-internal-format
 msgid "reinterpret_cast from type %qT to type %qT casts away qualifiers"
 msgstr ""
 
-#: cp/typeck.c:5929
+#: cp/typeck.c:5959
 #, gcc-internal-format
 msgid "invalid static_cast from type %qT to type %qT"
 msgstr ""
 
-#: cp/typeck.c:5952
+#: cp/typeck.c:5982
 #, gcc-internal-format
 msgid "converting from %qT to %qT"
 msgstr ""
 
-#: cp/typeck.c:6001
+#: cp/typeck.c:6031
 #, gcc-internal-format
 msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgstr ""
 
-#: cp/typeck.c:6071
+#: cp/typeck.c:6101
 #, gcc-internal-format
 msgid "cast from %qT to %qT loses precision"
 msgstr ""
 
-#: cp/typeck.c:6103
+#: cp/typeck.c:6136
 #, gcc-internal-format
 msgid "cast from %qT to %qT increases required alignment of target type"
 msgstr ""
@@ -32855,223 +33297,223 @@
 #. where possible, and it is necessary in some cases.  DR 195
 #. addresses this issue, but as of 2004/10/26 is still in
 #. drafting.
-#: cp/typeck.c:6122
+#: cp/typeck.c:6155
 #, gcc-internal-format
 msgid ""
 "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
 msgstr ""
 
-#: cp/typeck.c:6135
+#: cp/typeck.c:6168
 #, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr ""
 
-#: cp/typeck.c:6191
+#: cp/typeck.c:6224
 #, gcc-internal-format
 msgid ""
 "invalid use of const_cast with type %qT, which is not a pointer, reference, "
 "nor a pointer-to-data-member type"
 msgstr ""
 
-#: cp/typeck.c:6200
+#: cp/typeck.c:6233
 #, gcc-internal-format
 msgid ""
 "invalid use of const_cast with type %qT, which is a pointer or reference to "
 "a function type"
 msgstr ""
 
-#: cp/typeck.c:6225
+#: cp/typeck.c:6273
 #, gcc-internal-format
 msgid "invalid const_cast of an rvalue of type %qT to type %qT"
 msgstr ""
 
-#: cp/typeck.c:6274
+#: cp/typeck.c:6322
 #, gcc-internal-format
 msgid "invalid const_cast from type %qT to type %qT"
 msgstr ""
 
-#: cp/typeck.c:6351 cp/typeck.c:6359
+#: cp/typeck.c:6399 cp/typeck.c:6407
 #, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr ""
 
-#: cp/typeck.c:6368
+#: cp/typeck.c:6416
 #, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr ""
 
-#: cp/typeck.c:6630
+#: cp/typeck.c:6678
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr ""
 
-#: cp/typeck.c:6688
+#: cp/typeck.c:6736
 #, gcc-internal-format
 msgid "assigning to an array from an initializer list"
 msgstr ""
 
-#: cp/typeck.c:6700
+#: cp/typeck.c:6748
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr ""
 
-#: cp/typeck.c:6714
+#: cp/typeck.c:6762
 #, gcc-internal-format
 msgid "array used as initializer"
 msgstr ""
 
-#: cp/typeck.c:6716
+#: cp/typeck.c:6764
 #, gcc-internal-format
 msgid "invalid array assignment"
 msgstr ""
 
-#: cp/typeck.c:6828
+#: cp/typeck.c:6876
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr ""
 
-#: cp/typeck.c:6842
+#: cp/typeck.c:6890
 #, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr ""
 
-#: cp/typeck.c:6889 cp/typeck.c:6908
+#: cp/typeck.c:6937 cp/typeck.c:6956
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr ""
 
-#: cp/typeck.c:6987
+#: cp/typeck.c:7035
 #, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr ""
 
-#: cp/typeck.c:7269
+#: cp/typeck.c:7317
 #, gcc-internal-format
 msgid "cannot convert %qT to %qT for argument %qP to %qD"
 msgstr ""
 
-#: cp/typeck.c:7275
+#: cp/typeck.c:7323
 #, gcc-internal-format
 msgid "cannot convert %qT to %qT in default argument"
 msgstr ""
 
-#: cp/typeck.c:7279
+#: cp/typeck.c:7327
 #, gcc-internal-format
 msgid "cannot convert %qT to %qT in argument passing"
 msgstr ""
 
-#: cp/typeck.c:7283
+#: cp/typeck.c:7331
 #, gcc-internal-format
 msgid "cannot convert %qT to %qT"
 msgstr ""
 
-#: cp/typeck.c:7287
+#: cp/typeck.c:7335
 #, gcc-internal-format
 msgid "cannot convert %qT to %qT in initialization"
 msgstr ""
 
-#: cp/typeck.c:7291
+#: cp/typeck.c:7339
 #, gcc-internal-format
 msgid "cannot convert %qT to %qT in return"
 msgstr ""
 
-#: cp/typeck.c:7295
+#: cp/typeck.c:7343
 #, gcc-internal-format
 msgid "cannot convert %qT to %qT in assignment"
 msgstr ""
 
-#: cp/typeck.c:7318
+#: cp/typeck.c:7366
 #, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.c:7322
+#: cp/typeck.c:7370
 #, gcc-internal-format
 msgid "parameter might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.c:7327
+#: cp/typeck.c:7375
 #, gcc-internal-format
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.c:7332
+#: cp/typeck.c:7380
 #, gcc-internal-format
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.c:7342
+#: cp/typeck.c:7390
 #, gcc-internal-format
 msgid ""
 "left-hand side of assignment might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.c:7438 cp/typeck.c:7440
+#: cp/typeck.c:7486 cp/typeck.c:7488
 #, gcc-internal-format
 msgid "in passing argument %P of %q+D"
 msgstr ""
 
-#: cp/typeck.c:7495
+#: cp/typeck.c:7543
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr ""
 
-#: cp/typeck.c:7502
+#: cp/typeck.c:7550
 #, gcc-internal-format
 msgid "reference to non-lvalue returned"
 msgstr ""
 
-#: cp/typeck.c:7518
+#: cp/typeck.c:7566
 #, gcc-internal-format
 msgid "reference to local variable %q+D returned"
 msgstr ""
 
-#: cp/typeck.c:7521
+#: cp/typeck.c:7569
 #, gcc-internal-format
 msgid "address of local variable %q+D returned"
 msgstr ""
 
-#: cp/typeck.c:7556
+#: cp/typeck.c:7604
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr ""
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.c:7564
+#: cp/typeck.c:7612
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr ""
 
 #. You can't return a value from a constructor.
-#: cp/typeck.c:7567
+#: cp/typeck.c:7615
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr ""
 
-#: cp/typeck.c:7585
+#: cp/typeck.c:7633
 #, gcc-internal-format
 msgid ""
 "lambda return type can only be deduced when the return statement is the only "
 "statement in the function body"
 msgstr ""
 
-#: cp/typeck.c:7591
+#: cp/typeck.c:7639
 #, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr ""
 
-#: cp/typeck.c:7617
+#: cp/typeck.c:7665
 #, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr ""
 
-#: cp/typeck.c:7638
+#: cp/typeck.c:7686
 #, gcc-internal-format
 msgid "return-statement with a value, in function returning 'void'"
 msgstr ""
 
-#: cp/typeck.c:7668
+#: cp/typeck.c:7716
 #, gcc-internal-format
 msgid ""
 "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -"
@@ -33079,12 +33521,12 @@
 msgstr ""
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.c:8241
+#: cp/typeck.c:8289
 #, gcc-internal-format
 msgid "using temporary as lvalue"
 msgstr ""
 
-#: cp/typeck.c:8243
+#: cp/typeck.c:8291
 #, gcc-internal-format
 msgid "using xvalue (rvalue reference) as lvalue"
 msgstr ""
@@ -33190,187 +33632,192 @@
 msgid "  since type %qT has pure virtual functions"
 msgstr ""
 
-#: cp/typeck2.c:381
+#: cp/typeck2.c:389
 #, gcc-internal-format
 msgid "%q+D has incomplete type"
 msgstr ""
 
-#: cp/typeck2.c:394
+#: cp/typeck2.c:402
 #, gcc-internal-format
 msgid "invalid use of incomplete type %q#T"
 msgstr ""
 
-#: cp/typeck2.c:397
+#: cp/typeck2.c:405
 #, gcc-internal-format
 msgid "forward declaration of %q+#T"
 msgstr ""
 
-#: cp/typeck2.c:400
+#: cp/typeck2.c:408
 #, gcc-internal-format
 msgid "declaration of %q+#T"
 msgstr ""
 
-#: cp/typeck2.c:405
+#: cp/typeck2.c:413
 #, gcc-internal-format
 msgid "invalid use of %qT"
 msgstr ""
 
-#: cp/typeck2.c:421
+#: cp/typeck2.c:429
 #, gcc-internal-format
 msgid "invalid use of member (did you forget the %<&%> ?)"
 msgstr ""
 
-#: cp/typeck2.c:430
+#: cp/typeck2.c:438
 #, gcc-internal-format
 msgid "invalid use of template type parameter %qT"
 msgstr ""
 
-#: cp/typeck2.c:435
+#: cp/typeck2.c:443
 #, gcc-internal-format
 msgid "invalid use of template template parameter %qT"
 msgstr ""
 
-#: cp/typeck2.c:441
+#: cp/typeck2.c:449
 #, gcc-internal-format
 msgid "invalid use of dependent type %qT"
 msgstr ""
 
-#: cp/typeck2.c:450
+#: cp/typeck2.c:458
 #, gcc-internal-format
 msgid "address of overloaded function with no contextual type information"
 msgstr ""
 
-#: cp/typeck2.c:454
+#: cp/typeck2.c:462
 #, gcc-internal-format
 msgid "overloaded function with no contextual type information"
 msgstr ""
 
-#: cp/typeck2.c:457
+#: cp/typeck2.c:465
 #, gcc-internal-format
 msgid "insufficient contextual information to determine type"
 msgstr ""
 
-#: cp/typeck2.c:646
+#: cp/typeck2.c:654
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr ""
 
-#: cp/typeck2.c:659
+#: cp/typeck2.c:667
 #, gcc-internal-format
 msgid "cannot initialize arrays using this syntax"
 msgstr ""
 
-#: cp/typeck2.c:768
+#: cp/typeck2.c:786
 #, gcc-internal-format
 msgid "narrowing conversion of %qE from %qT to %qT inside { }"
 msgstr ""
 
-#: cp/typeck2.c:826
+#: cp/typeck2.c:847
 #, gcc-internal-format
 msgid "int-array initialized from non-wide string"
 msgstr ""
 
-#: cp/typeck2.c:831
+#: cp/typeck2.c:853
 #, gcc-internal-format
 msgid "int-array initialized from incompatible wide string"
 msgstr ""
 
-#: cp/typeck2.c:846
+#: cp/typeck2.c:869
 #, gcc-internal-format
 msgid "initializer-string for array of chars is too long"
 msgstr ""
 
-#: cp/typeck2.c:892
+#: cp/typeck2.c:917
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr ""
 
-#: cp/typeck2.c:909
+#: cp/typeck2.c:935
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr ""
 
-#: cp/typeck2.c:996 cp/typeck2.c:1104
+#: cp/typeck2.c:1028 cp/typeck2.c:1133
 #, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr ""
 
-#: cp/typeck2.c:1132 cp/typeck2.c:1146
+#: cp/typeck2.c:1164 cp/typeck2.c:1193
 #, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr ""
 
-#: cp/typeck2.c:1137
+#: cp/typeck2.c:1171
 #, gcc-internal-format
 msgid "uninitialized const member %qD"
 msgstr ""
 
-#: cp/typeck2.c:1139
+#: cp/typeck2.c:1178
 #, gcc-internal-format
 msgid "member %qD with uninitialized const fields"
 msgstr ""
 
-#: cp/typeck2.c:1141
+#: cp/typeck2.c:1185
 #, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr ""
 
-#: cp/typeck2.c:1209
+#: cp/typeck2.c:1265
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr ""
 
-#: cp/typeck2.c:1218
+#: cp/typeck2.c:1276
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr ""
 
-#: cp/typeck2.c:1377
+#: cp/typeck2.c:1443
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr ""
 
-#: cp/typeck2.c:1387
+#: cp/typeck2.c:1456
 #, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr ""
 
-#: cp/typeck2.c:1411
+#: cp/typeck2.c:1480
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr ""
 
-#: cp/typeck2.c:1413
+#: cp/typeck2.c:1482
 #, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr ""
 
-#: cp/typeck2.c:1438
+#: cp/typeck2.c:1507
 #, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr ""
 
-#: cp/typeck2.c:1447
+#: cp/typeck2.c:1516
 #, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr ""
 
-#: cp/typeck2.c:1469
+#: cp/typeck2.c:1538
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr ""
 
-#: cp/typeck2.c:1530
+#: cp/typeck2.c:1607
+#, gcc-internal-format
+msgid "functional cast to array type %qT"
+msgstr ""
+
+#: cp/typeck2.c:1628
 #, gcc-internal-format
 msgid "invalid value-initialization of reference type"
 msgstr ""
 
-#: cp/typeck2.c:1729
+#: cp/typeck2.c:1863
 #, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr ""
 
-#: cp/typeck2.c:1732
+#: cp/typeck2.c:1866
 #, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr ""
@@ -33463,14 +33910,15 @@
 msgid "Invalid form of array reference at %C"
 msgstr ""
 
-#: fortran/array.c:200 fortran/array.c:260
+#: fortran/array.c:200 fortran/array.c:266
 #, gcc-internal-format, gfc-internal-format
 msgid "Array reference at %C cannot have more than %d dimensions"
 msgstr ""
 
-#: fortran/array.c:215 fortran/array.c:569 fortran/check.c:1975
-#: fortran/check.c:3666 fortran/check.c:3689 fortran/check.c:3784
-#: fortran/match.c:1758 fortran/match.c:2339 fortran/simplify.c:4590
+#: fortran/array.c:215 fortran/array.c:575 fortran/check.c:2065
+#: fortran/check.c:3798 fortran/check.c:3836 fortran/check.c:3931
+#: fortran/match.c:1760 fortran/match.c:2337 fortran/match.c:2525
+#: fortran/simplify.c:4582
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarrays disabled at %C, use -fcoarray= to enable"
 msgstr ""
@@ -33485,136 +33933,141 @@
 msgid "Too few codimensions at %C, expected %d not %d"
 msgstr ""
 
-#: fortran/array.c:246
+#: fortran/array.c:242
+#, gcc-internal-format, gfc-internal-format
+msgid "Too many codimensions at %C, expected %d not %d"
+msgstr ""
+
+#: fortran/array.c:252
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected '*' for codimension %d of %d at %C"
 msgstr ""
 
-#: fortran/array.c:249
+#: fortran/array.c:255
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid form of coarray reference at %C"
 msgstr ""
 
-#: fortran/array.c:254
+#: fortran/array.c:260
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid codimension %d at %C, only %d codimensions exist"
 msgstr ""
 
-#: fortran/array.c:306
+#: fortran/array.c:312
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable '%s' at %L in this context must be constant"
 msgstr ""
 
-#: fortran/array.c:309
+#: fortran/array.c:315
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L in this context must be constant"
 msgstr ""
 
-#: fortran/array.c:400
+#: fortran/array.c:406
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected expression in array specification at %C"
 msgstr ""
 
-#: fortran/array.c:479
+#: fortran/array.c:485
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification for implied-shape array at %C"
 msgstr ""
 
-#: fortran/array.c:495 fortran/array.c:600
+#: fortran/array.c:501 fortran/array.c:613
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification for an explicitly shaped array at %C"
 msgstr ""
 
-#: fortran/array.c:505 fortran/array.c:610
+#: fortran/array.c:511 fortran/array.c:623
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification for assumed shape array at %C"
 msgstr ""
 
-#: fortran/array.c:519 fortran/array.c:624
+#: fortran/array.c:525 fortran/array.c:637
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad specification for deferred shape array at %C"
 msgstr ""
 
-#: fortran/array.c:529 fortran/array.c:628
+#: fortran/array.c:535 fortran/array.c:641
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad specification for assumed size array at %C"
 msgstr ""
 
-#: fortran/array.c:538 fortran/array.c:637
+#: fortran/array.c:544 fortran/array.c:650
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected another dimension in array declaration at %C"
 msgstr ""
 
-#: fortran/array.c:544 fortran/array.c:643
+#: fortran/array.c:550 fortran/array.c:581 fortran/array.c:656
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification at %C has more than %d dimensions"
 msgstr ""
 
-#: fortran/array.c:550
+#: fortran/array.c:556
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Array specification at %C with more than 7 dimensions"
 msgstr ""
 
-#: fortran/array.c:563
+#: fortran/array.c:569
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Coarray declaration at %C"
 msgstr ""
 
-#: fortran/array.c:651
+#: fortran/array.c:664
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper bound of last coarray dimension must be '*' at %C"
 msgstr ""
 
-#: fortran/array.c:871
+#: fortran/array.c:884
 #, gcc-internal-format, gfc-internal-format
 msgid "DO-iterator '%s' at %L is inside iterator of the same name"
 msgstr ""
 
-#: fortran/array.c:963 fortran/array.c:1095
+#: fortran/array.c:976 fortran/array.c:1108
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in array constructor at %C"
 msgstr ""
 
-#: fortran/array.c:1015
+#: fortran/array.c:1028
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: [...] style array constructors at %C"
 msgstr ""
 
-#: fortran/array.c:1035
+#: fortran/array.c:1048
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: Array constructor including type specification at %C"
 msgstr ""
 
-#: fortran/array.c:1041 fortran/match.c:2895
+#: fortran/array.c:1054 fortran/match.c:3085
 #, gcc-internal-format, gfc-internal-format
 msgid "Type-spec at %L cannot contain a deferred type parameter"
 msgstr ""
 
-#: fortran/array.c:1057
+#: fortran/array.c:1070
 #, gcc-internal-format, gfc-internal-format
 msgid "Empty array constructor at %C is not allowed"
 msgstr ""
 
-#: fortran/array.c:1142
+#: fortran/array.c:1155
 #, gcc-internal-format, gfc-internal-format
 msgid "Element in %s array constructor at %L is %s"
 msgstr ""
 
-#: fortran/array.c:1469
+#: fortran/array.c:1482
 #, gcc-internal-format, gfc-internal-format
 msgid "Iterator step at %L cannot be zero"
 msgstr ""
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/array.c:1605 fortran/expr.c:1521 fortran/trans-array.c:4535
+#: fortran/array.c:1618 fortran/expr.c:1524 fortran/trans-array.c:4600
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "The number of elements in the array constructor at %L requires an increase "
 "of the allowed %d upper limit.   See -fmax-array-constructor option"
 msgstr ""
 
-#: fortran/array.c:1802
+#: fortran/array.c:1815
 #, gcc-internal-format, gfc-internal-format
 msgid "Different CHARACTER lengths (%d/%d) in array constructor at %L"
 msgstr ""
@@ -33649,7 +34102,7 @@
 msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or PROCEDURE"
 msgstr ""
 
-#: fortran/check.c:167 fortran/check.c:4857
+#: fortran/check.c:167 fortran/check.c:5004
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be a constant"
 msgstr ""
@@ -33664,451 +34117,499 @@
 msgid "'%s' argument of '%s' intrinsic at %L must be double precision"
 msgstr ""
 
-#: fortran/check.c:236
+#: fortran/check.c:242
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected coarray variable as '%s' argument to the %s intrinsic at %L"
 msgstr ""
 
-#: fortran/check.c:253
+#: fortran/check.c:259
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be a logical array"
 msgstr ""
 
-#: fortran/check.c:271
+#: fortran/check.c:277
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be an array"
 msgstr ""
 
-#: fortran/check.c:292
+#: fortran/check.c:298
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L must be nonnegative"
 msgstr ""
 
-#: fortran/check.c:318
+#: fortran/check.c:324
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L must be less than or equal to BIT_SIZE('%s')"
 msgstr ""
 
-#: fortran/check.c:328
+#: fortran/check.c:334
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L must be less than BIT_SIZE('%s')"
 msgstr ""
 
-#: fortran/check.c:355
+#: fortran/check.c:361
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' at %L must be less than or equal to the BIT_SIZE of INTEGER(KIND=%d)"
 msgstr ""
 
-#: fortran/check.c:381
+#: fortran/check.c:387
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s + %s' at %L must be less than or equal to BIT_SIZE('%s')"
 msgstr ""
 
-#: fortran/check.c:399
+#: fortran/check.c:405
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' argument of '%s' intrinsic at %L must be the same type and kind as '%s'"
 msgstr ""
 
-#: fortran/check.c:416
+#: fortran/check.c:422
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be of rank %d"
 msgstr ""
 
-#: fortran/check.c:431
+#: fortran/check.c:437
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must not be OPTIONAL"
 msgstr ""
 
-#: fortran/check.c:452
+#: fortran/check.c:458
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be ALLOCATABLE"
 msgstr ""
 
-#: fortran/check.c:470
+#: fortran/check.c:476
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be of kind %d"
 msgstr ""
 
-#: fortran/check.c:488
+#: fortran/check.c:494
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L cannot be INTENT(IN)"
 msgstr ""
 
-#: fortran/check.c:505
+#: fortran/check.c:511
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be a variable"
 msgstr ""
 
-#: fortran/check.c:553
+#: fortran/check.c:559
 #, gcc-internal-format, gfc-internal-format
 msgid "'dim' argument of '%s' intrinsic at %L is not a valid codimension index"
 msgstr ""
 
-#: fortran/check.c:599
+#: fortran/check.c:605
 #, gcc-internal-format, gfc-internal-format
 msgid "'dim' argument of '%s' intrinsic at %L is not a valid dimension index"
 msgstr ""
 
-#: fortran/check.c:697
+#: fortran/check.c:703
 #, gcc-internal-format, gfc-internal-format
 msgid "Unequal character lengths (%ld/%ld) in %s at %L"
 msgstr ""
 
-#: fortran/check.c:819 fortran/check.c:4826
+#: fortran/check.c:825 fortran/check.c:4973
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' and '%s' arguments of '%s' intrinsic at %L must have the same type"
 msgstr ""
 
-#: fortran/check.c:828 fortran/check.c:1657 fortran/check.c:1783
-#: fortran/check.c:1857 fortran/check.c:2171
+#: fortran/check.c:834 fortran/check.c:1747 fortran/check.c:1873
+#: fortran/check.c:1947 fortran/check.c:2261
 #, gcc-internal-format, gfc-internal-format
 msgid "Extension: Different type kinds at %L"
 msgstr ""
 
-#: fortran/check.c:866 fortran/check.c:2642
+#: fortran/check.c:872 fortran/check.c:2736
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER"
 msgstr ""
 
-#: fortran/check.c:884
+#: fortran/check.c:881 fortran/check.c:917 fortran/check.c:2745
+#, gcc-internal-format, gfc-internal-format
+msgid "'%s' argument of '%s' intrinsic at %L shall not be conindexed"
+msgstr ""
+
+#: fortran/check.c:899
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' argument of '%s' intrinsic at %L must be a pointer or target VARIABLE "
 "or FUNCTION"
 msgstr ""
 
-#: fortran/check.c:893
+#: fortran/check.c:908
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER or a TARGET"
 msgstr ""
 
-#: fortran/check.c:909
+#: fortran/check.c:933
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Array section with a vector subscript at %L shall not be the target of a "
 "pointer"
 msgstr ""
 
-#: fortran/check.c:920
+#: fortran/check.c:944
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "NULL pointer at %L is not permitted as actual argument of '%s' intrinsic "
 "function"
 msgstr ""
 
-#: fortran/check.c:963
+#: fortran/check.c:983
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"ATOM argument at %L to intrinsic function %s shall be an integer of "
+"ATOMIC_INT_KIND or a logical of ATOMIC_LOGICAL_KIND"
+msgstr ""
+
+#: fortran/check.c:991
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"ATOM argument at %L of the %s intrinsic function shall be a coarray or "
+"coindexed"
+msgstr ""
+
+#: fortran/check.c:998
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"ATOM and VALUE argument of the %s intrinsic function shall have the same "
+"type at %L"
+msgstr ""
+
+#: fortran/check.c:1016
+#, gcc-internal-format, gfc-internal-format
+msgid "ATOM argument of the %s intrinsic function at %L shall be definable"
+msgstr ""
+
+#: fortran/check.c:1033
+#, gcc-internal-format, gfc-internal-format
+msgid "VALUE argument of the %s intrinsic function at %L shall be definable"
+msgstr ""
+
+#: fortran/check.c:1053
 #, gcc-internal-format, gfc-internal-format
 msgid "Extension: Negative argument N at %L"
 msgstr ""
 
-#: fortran/check.c:1135 fortran/check.c:1294
+#: fortran/check.c:1225 fortran/check.c:1384
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' argument of '%s' intrinsic at %L must not be present if 'x' is COMPLEX"
 msgstr ""
 
-#: fortran/check.c:1144 fortran/check.c:1303
+#: fortran/check.c:1234 fortran/check.c:1393
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' argument of '%s' intrinsic at %L must have a type of either REAL or "
 "INTEGER"
 msgstr ""
 
-#: fortran/check.c:1188 fortran/check.c:1702 fortran/check.c:1805
-#: fortran/check.c:1961 fortran/check.c:2006 fortran/check.c:3142
-#: fortran/check.c:3276 fortran/check.c:3331 fortran/check.c:3770
-#: fortran/check.c:3899
+#: fortran/check.c:1278 fortran/check.c:1792 fortran/check.c:1895
+#: fortran/check.c:2051 fortran/check.c:2096 fortran/check.c:3272
+#: fortran/check.c:3406 fortran/check.c:3461 fortran/check.c:3917
+#: fortran/check.c:4046
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: '%s' intrinsic with KIND argument at %L"
 msgstr ""
 
-#: fortran/check.c:1235 fortran/check.c:1468
+#: fortran/check.c:1325 fortran/check.c:1558
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' argument of '%s' intrinsic at %L has invalid shape in dimension %d (%ld/"
 "%ld)"
 msgstr ""
 
-#: fortran/check.c:1250 fortran/check.c:1483 fortran/check.c:1511
+#: fortran/check.c:1340 fortran/check.c:1573 fortran/check.c:1601
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' argument of intrinsic '%s' at %L of must have rank %d or be a scalar"
 msgstr ""
 
-#: fortran/check.c:1353 fortran/check.c:2265 fortran/check.c:2273
+#: fortran/check.c:1443 fortran/check.c:2355 fortran/check.c:2363
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be numeric or LOGICAL"
 msgstr ""
 
-#: fortran/check.c:1367
+#: fortran/check.c:1457
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Different shape for arguments '%s' and '%s' at %L for intrinsic 'dot_product'"
 msgstr ""
 
-#: fortran/check.c:1386 fortran/check.c:1394
+#: fortran/check.c:1476 fortran/check.c:1484
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be default real"
 msgstr ""
 
-#: fortran/check.c:1529
+#: fortran/check.c:1619
 #, gcc-internal-format, gfc-internal-format
 msgid "GNU extension: non-default INTEGER kind argument to %s intrinsic at %L"
 msgstr ""
 
-#: fortran/check.c:1589
+#: fortran/check.c:1679
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: COMPLEX argument '%s' argument of '%s' intrinsic at %L"
 msgstr ""
 
-#: fortran/check.c:1753
+#: fortran/check.c:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of %s at %L must be of length one"
 msgstr ""
 
-#: fortran/check.c:1812
+#: fortran/check.c:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be the same kind as '%s'"
 msgstr ""
 
-#: fortran/check.c:1937
+#: fortran/check.c:2027
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be a non-derived type"
 msgstr ""
 
-#: fortran/check.c:2144
+#: fortran/check.c:2234
 #, gcc-internal-format, gfc-internal-format
 msgid "Intrinsic '%s' at %L must have at least two arguments"
 msgstr ""
 
-#: fortran/check.c:2177
+#: fortran/check.c:2267
 #, gcc-internal-format, gfc-internal-format
 msgid "'a%d' argument of '%s' intrinsic at %L must be %s(%d)"
 msgstr ""
 
-#: fortran/check.c:2208
+#: fortran/check.c:2298
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: '%s' intrinsic with CHARACTER argument at %L"
 msgstr ""
 
-#: fortran/check.c:2215
+#: fortran/check.c:2305
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'a1' argument of '%s' intrinsic at %L must be INTEGER, REAL or CHARACTER"
 msgstr ""
 
-#: fortran/check.c:2282
+#: fortran/check.c:2372
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument types of '%s' intrinsic at %L must match (%s/%s)"
 msgstr ""
 
-#: fortran/check.c:2296
+#: fortran/check.c:2386
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Different shape on dimension 1 for arguments '%s' and '%s' at %L for "
 "intrinsic matmul"
 msgstr ""
 
-#: fortran/check.c:2315
+#: fortran/check.c:2405
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Different shape on dimension 2 for argument '%s' and dimension 1 for "
 "argument '%s' at %L for intrinsic matmul"
 msgstr ""
 
-#: fortran/check.c:2324
+#: fortran/check.c:2414
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be of rank 1 or 2"
 msgstr ""
 
-#: fortran/check.c:2499
+#: fortran/check.c:2589
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER"
 msgstr ""
 
-#: fortran/check.c:2568
+#: fortran/check.c:2658
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "the '%s' and '%s' arguments of '%s' intrinsic at %L must have the same rank "
 "%d/%d"
 msgstr ""
 
-#: fortran/check.c:2577
+#: fortran/check.c:2667
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "the '%s' and '%s' arguments of '%s' intrinsic at %L must be of the same kind "
 "%d/%d"
 msgstr ""
 
-#: fortran/check.c:2714 fortran/check.c:3846
+#: fortran/check.c:2817 fortran/check.c:3993
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' argument of '%s' intrinsic at %L must provide at least as many elements "
 "as there are .TRUE. values in '%s' (%ld/%d)"
 msgstr ""
 
-#: fortran/check.c:2772
+#: fortran/check.c:2875
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be of a dummy variable"
 msgstr ""
 
-#: fortran/check.c:2780
+#: fortran/check.c:2883
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' argument of '%s' intrinsic at %L must be of an OPTIONAL dummy variable"
 msgstr ""
 
-#: fortran/check.c:2797
+#: fortran/check.c:2900
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must not be a subobject of '%s'"
 msgstr ""
 
-#: fortran/check.c:2922
+#: fortran/check.c:2948
+#, gcc-internal-format, gfc-internal-format
+msgid "The argument of the RANK intrinsic at %L must be a data object"
+msgstr ""
+
+#: fortran/check.c:3052
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'shape' argument of 'reshape' intrinsic at %L must be an array of constant "
 "size"
 msgstr ""
 
-#: fortran/check.c:2932
+#: fortran/check.c:3062
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L is empty"
 msgstr ""
 
-#: fortran/check.c:2939
+#: fortran/check.c:3069
 #, gcc-internal-format, gfc-internal-format
 msgid "'shape' argument of 'reshape' intrinsic at %L has more than %d elements"
 msgstr ""
 
-#: fortran/check.c:2956
+#: fortran/check.c:3086
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L has negative element (%d)"
 msgstr ""
 
-#: fortran/check.c:2996
+#: fortran/check.c:3126
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' argument of '%s' intrinsic at %L has wrong number of elements (%d/%d)"
 msgstr ""
 
-#: fortran/check.c:3014
+#: fortran/check.c:3144
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L has out-of-range dimension (%d)"
 msgstr ""
 
-#: fortran/check.c:3023
+#: fortran/check.c:3153
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' argument of '%s' intrinsic at %L has invalid permutation of dimensions "
 "(dimension '%d' duplicated)"
 msgstr ""
 
-#: fortran/check.c:3059
+#: fortran/check.c:3189
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Without padding, there are not enough elements in the intrinsic RESHAPE "
 "source at %L to match the shape"
 msgstr ""
 
-#: fortran/check.c:3077 fortran/check.c:3095
+#: fortran/check.c:3207 fortran/check.c:3225
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be of a derived type"
 msgstr ""
 
-#: fortran/check.c:3086 fortran/check.c:3104
+#: fortran/check.c:3216 fortran/check.c:3234
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be of an extensible type"
 msgstr ""
 
-#: fortran/check.c:3203
+#: fortran/check.c:3333
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Fortran 2008: SELECTED_REAL_KIND with neither 'P' nor 'R' argument at %L"
 msgstr ""
 
-#: fortran/check.c:3234
+#: fortran/check.c:3364
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: '%s' intrinsic with RADIX argument at %L"
 msgstr ""
 
-#: fortran/check.c:3269
+#: fortran/check.c:3399
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'source' argument of 'shape' intrinsic at %L must not be an assumed size "
 "array"
 msgstr ""
 
-#: fortran/check.c:3353
+#: fortran/check.c:3483
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' argument of '%s' intrinsic at %L must be be an interoperable data entity"
 msgstr ""
 
-#: fortran/check.c:3382
+#: fortran/check.c:3512
 #, gcc-internal-format, gfc-internal-format
 msgid "GNU extension: non double precision REAL argument to %s intrinsic at %L"
 msgstr ""
 
-#: fortran/check.c:3395
+#: fortran/check.c:3525
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be less than rank %d"
 msgstr ""
 
-#: fortran/check.c:3414
+#: fortran/check.c:3544
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L is not a valid dimension index"
 msgstr ""
 
-#: fortran/check.c:3675
+#: fortran/check.c:3807
 #, gcc-internal-format, gfc-internal-format
 msgid "%s argument to IMAGE_INDEX must be a rank one array at %L"
 msgstr ""
 
-#: fortran/check.c:3695
+#: fortran/check.c:3818
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"The number of array elements of the SUB argument to IMAGE_INDEX at %L shall "
+"be %d (corank) not %d"
+msgstr ""
+
+#: fortran/check.c:3842
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "DIM argument without ARRAY argument not allowed for THIS_IMAGE intrinsic at "
 "%L"
 msgstr ""
 
-#: fortran/check.c:3725
+#: fortran/check.c:3872
 #, gcc-internal-format, gfc-internal-format
 msgid "'MOLD' argument of 'TRANSFER' intrinsic at %L must not be %s"
 msgstr ""
 
-#: fortran/check.c:3860
+#: fortran/check.c:4007
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' argument of '%s' intrinsic at %L must have the same rank as '%s' or be "
 "a scalar"
 msgstr ""
 
-#: fortran/check.c:3873
+#: fortran/check.c:4020
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' and '%s' arguments of '%s' intrinsic at %L must have identical shape."
 msgstr ""
 
-#: fortran/check.c:4132 fortran/check.c:4164
+#: fortran/check.c:4279 fortran/check.c:4311
 #, gcc-internal-format, gfc-internal-format
 msgid "Size of '%s' argument of '%s' intrinsic at %L too small (%i/%i)"
 msgstr ""
 
-#: fortran/check.c:4172
+#: fortran/check.c:4319
 #, gcc-internal-format, gfc-internal-format
 msgid "Too many arguments to %s at %L"
 msgstr ""
 
-#: fortran/check.c:4458
+#: fortran/check.c:4605
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' argument of '%s' intrinsic at %L must be of a kind not wider than the "
 "default kind (%d)"
 msgstr ""
 
-#: fortran/check.c:4810 fortran/check.c:4818
+#: fortran/check.c:4957 fortran/check.c:4965
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or LOGICAL"
 msgstr ""
@@ -34120,7 +34621,7 @@
 
 #. Since the extension field is 8 bit wide, we can only have
 #. up to 255 extension levels.
-#: fortran/class.c:270 fortran/decl.c:7318
+#: fortran/class.c:270 fortran/decl.c:7357
 #, gcc-internal-format, gfc-internal-format
 msgid "Maximum extension level reached with type '%s' at %L"
 msgstr ""
@@ -34295,440 +34796,447 @@
 #: fortran/decl.c:1065
 #, gcc-internal-format, gfc-internal-format
 msgid ""
-"Variable '%s' at %L cannot have the OPTIONAL attribute because procedure "
-"'%s' is BIND(C)"
+"Variable '%s' at %L cannot have both the OPTIONAL and the VALUE attribute "
+"because procedure '%s' is BIND(C)"
 msgstr ""
 
-#: fortran/decl.c:1078
+#: fortran/decl.c:1072
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"TR29113: Variable '%s' at %L with OPTIONAL attribute in procedure '%s' which "
+"is BIND(C)"
+msgstr ""
+
+#: fortran/decl.c:1086
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Assumed-shape array '%s' at %L cannot be an argument to the procedure '%s' "
 "at %L because the procedure is BIND(C)"
 msgstr ""
 
-#: fortran/decl.c:1088
+#: fortran/decl.c:1096
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Deferred-shape array '%s' at %L cannot be an argument to the procedure '%s' "
 "at %L because the procedure is BIND(C)"
 msgstr ""
 
-#: fortran/decl.c:1169
+#: fortran/decl.c:1177
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Variable '%s' in common block '%s' at %C must be declared with a C "
 "interoperable kind since common block '%s' is BIND(C)"
 msgstr ""
 
-#: fortran/decl.c:1211
+#: fortran/decl.c:1219
 #, gcc-internal-format, gfc-internal-format
 msgid "CHARACTER expression at %L is being truncated (%d/%d)"
 msgstr ""
 
-#: fortran/decl.c:1218
+#: fortran/decl.c:1226
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "The CHARACTER elements of the array constructor at %L must have the same "
 "length (%d/%d)"
 msgstr ""
 
-#: fortran/decl.c:1308
+#: fortran/decl.c:1316
 #, gcc-internal-format, gfc-internal-format
 msgid "Initializer not allowed for PARAMETER '%s' at %C"
 msgstr ""
 
-#: fortran/decl.c:1318
+#: fortran/decl.c:1326
 #, gcc-internal-format, gfc-internal-format
 msgid "PARAMETER at %L is missing an initializer"
 msgstr ""
 
-#: fortran/decl.c:1328
+#: fortran/decl.c:1336
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Variable '%s' at %C with an initializer already appears in a DATA statement"
 msgstr ""
 
-#: fortran/decl.c:1409
+#: fortran/decl.c:1417
 #, gcc-internal-format, gfc-internal-format
 msgid "Can't initialize implied-shape array at %L with scalar"
 msgstr ""
 
-#: fortran/decl.c:1427
+#: fortran/decl.c:1435
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-constant lower bound in implied-shape declaration at %L"
 msgstr ""
 
-#: fortran/decl.c:1522
+#: fortran/decl.c:1530
 #, gcc-internal-format, gfc-internal-format
 msgid "Component at %C must have the POINTER attribute"
 msgstr ""
 
-#: fortran/decl.c:1530
+#: fortran/decl.c:1538
 #, gcc-internal-format, gfc-internal-format
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr ""
 
-#: fortran/decl.c:1610
+#: fortran/decl.c:1618
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer array component of structure at %C must have a deferred shape"
 msgstr ""
 
-#: fortran/decl.c:1619
+#: fortran/decl.c:1627
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocatable component of structure at %C must have a deferred shape"
 msgstr ""
 
-#: fortran/decl.c:1628
+#: fortran/decl.c:1636
 #, gcc-internal-format, gfc-internal-format
 msgid "Array component of structure at %C must have an explicit shape"
 msgstr ""
 
-#: fortran/decl.c:1662
+#: fortran/decl.c:1670
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL() initialization at %C is ambiguous"
 msgstr ""
 
-#: fortran/decl.c:1689
+#: fortran/decl.c:1697
 #, gcc-internal-format, gfc-internal-format
 msgid "Initialization of pointer at %C is not allowed in a PURE procedure"
 msgstr ""
 
-#: fortran/decl.c:1709
+#: fortran/decl.c:1717
 #, gcc-internal-format, gfc-internal-format
 msgid "Error in pointer initialization at %C"
 msgstr ""
 
-#: fortran/decl.c:1716
+#: fortran/decl.c:1724
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: non-NULL pointer initialization at %C"
 msgstr ""
 
-#: fortran/decl.c:1777
+#: fortran/decl.c:1786
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-PARAMETER symbol '%s' at %L can't be implied-shape"
 msgstr ""
 
-#: fortran/decl.c:1788
+#: fortran/decl.c:1797
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Implied-shape array at %L"
 msgstr ""
 
-#: fortran/decl.c:1852 fortran/decl.c:6247
+#: fortran/decl.c:1861 fortran/decl.c:6260
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate array spec for Cray pointee at %C"
 msgstr ""
 
-#: fortran/decl.c:1923
+#: fortran/decl.c:1932
 #, gcc-internal-format, gfc-internal-format
 msgid "the type of '%s' at %C has not been declared within the interface"
 msgstr ""
 
-#: fortran/decl.c:1939
+#: fortran/decl.c:1948
 #, gcc-internal-format, gfc-internal-format
 msgid "Function name '%s' not allowed at %C"
 msgstr ""
 
-#: fortran/decl.c:1955
+#: fortran/decl.c:1964
 #, gcc-internal-format, gfc-internal-format
 msgid "Extension: Old-style initialization at %C"
 msgstr ""
 
-#: fortran/decl.c:1970 fortran/decl.c:4749
+#: fortran/decl.c:1979 fortran/decl.c:4760
 #, gcc-internal-format, gfc-internal-format
 msgid "Initialization at %C isn't for a pointer variable"
 msgstr ""
 
-#: fortran/decl.c:1983
+#: fortran/decl.c:1992
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization at %C requires '=>', not '='"
 msgstr ""
 
-#: fortran/decl.c:1992 fortran/decl.c:7470
+#: fortran/decl.c:2001 fortran/decl.c:7509
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected an initialization expression at %C"
 msgstr ""
 
-#: fortran/decl.c:1999
+#: fortran/decl.c:2008
 #, gcc-internal-format, gfc-internal-format
 msgid "Initialization of variable at %C is not allowed in a PURE procedure"
 msgstr ""
 
-#: fortran/decl.c:2012
+#: fortran/decl.c:2021
 #, gcc-internal-format, gfc-internal-format
 msgid "Initialization of allocatable component at %C is not allowed"
 msgstr ""
 
-#: fortran/decl.c:2066 fortran/decl.c:2075
+#: fortran/decl.c:2075 fortran/decl.c:2084
 #, gcc-internal-format, gfc-internal-format
 msgid "Old-style type declaration %s*%d not supported at %C"
 msgstr ""
 
-#: fortran/decl.c:2080
+#: fortran/decl.c:2089
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonstandard type declaration %s*%d at %C"
 msgstr ""
 
-#: fortran/decl.c:2131 fortran/decl.c:2207
+#: fortran/decl.c:2140 fortran/decl.c:2216
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing right parenthesis at %C"
 msgstr ""
 
-#: fortran/decl.c:2144 fortran/decl.c:2252
+#: fortran/decl.c:2153 fortran/decl.c:2261
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected initialization expression at %C"
 msgstr ""
 
-#: fortran/decl.c:2152 fortran/decl.c:2258
+#: fortran/decl.c:2161 fortran/decl.c:2267
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected scalar initialization expression at %C"
 msgstr ""
 
-#: fortran/decl.c:2183
+#: fortran/decl.c:2192
 #, gcc-internal-format, gfc-internal-format
 msgid "Kind %d not supported for type %s at %C"
 msgstr ""
 
-#: fortran/decl.c:2196
+#: fortran/decl.c:2205
 #, gcc-internal-format, gfc-internal-format
 msgid "C kind type parameter is for type %s but type at %L is %s"
 msgstr ""
 
-#: fortran/decl.c:2205
+#: fortran/decl.c:2214
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing right parenthesis or comma at %C"
 msgstr ""
 
-#: fortran/decl.c:2278
+#: fortran/decl.c:2287
 #, gcc-internal-format, gfc-internal-format
 msgid "Kind %d is not supported for CHARACTER at %C"
 msgstr ""
 
-#: fortran/decl.c:2410
+#: fortran/decl.c:2419
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CHARACTER declaration at %C"
 msgstr ""
 
-#: fortran/decl.c:2494
+#: fortran/decl.c:2503
 #, gcc-internal-format, gfc-internal-format
 msgid "Extension: BYTE type at %C"
 msgstr ""
 
-#: fortran/decl.c:2500
+#: fortran/decl.c:2509
 #, gcc-internal-format, gfc-internal-format
 msgid "BYTE type used at %C is not available on the target machine"
 msgstr ""
 
-#: fortran/decl.c:2526 fortran/decl.c:2557 fortran/decl.c:2587
-#: fortran/decl.c:2681
+#: fortran/decl.c:2535 fortran/decl.c:2566 fortran/decl.c:2596
+#: fortran/decl.c:2690
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: TYPE with intrinsic-type-spec at %C"
 msgstr ""
 
-#: fortran/decl.c:2582
+#: fortran/decl.c:2591
 #, gcc-internal-format, gfc-internal-format
 msgid "Extension: DOUBLE COMPLEX at %C"
 msgstr ""
 
-#: fortran/decl.c:2620
+#: fortran/decl.c:2629
 #, gcc-internal-format, gfc-internal-format
 msgid "Unlimited polymorphism at %C not yet supported"
 msgstr ""
 
-#: fortran/decl.c:2629
+#: fortran/decl.c:2638
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: CLASS statement at %C"
 msgstr ""
 
-#: fortran/decl.c:2652 fortran/decl.c:2661 fortran/decl.c:2995
-#: fortran/decl.c:3003
+#: fortran/decl.c:2661 fortran/decl.c:2670 fortran/decl.c:3005
+#: fortran/decl.c:3013
 #, gcc-internal-format, gfc-internal-format
 msgid "Type name '%s' at %C is ambiguous"
 msgstr ""
 
-#: fortran/decl.c:2757
+#: fortran/decl.c:2766
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing character range in IMPLICIT at %C"
 msgstr ""
 
-#: fortran/decl.c:2803
+#: fortran/decl.c:2812
 #, gcc-internal-format, gfc-internal-format
 msgid "Letters must be in alphabetic order in IMPLICIT statement at %C"
 msgstr ""
 
-#: fortran/decl.c:2859
+#: fortran/decl.c:2868
 #, gcc-internal-format, gfc-internal-format
 msgid "Empty IMPLICIT statement at %C"
 msgstr ""
 
-#: fortran/decl.c:2961
+#: fortran/decl.c:2970
 #, gcc-internal-format, gfc-internal-format
 msgid "IMPORT statement at %C only permitted in an INTERFACE body"
 msgstr ""
 
-#: fortran/decl.c:2966
+#: fortran/decl.c:2975
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: IMPORT statement at %C"
 msgstr ""
 
-#: fortran/decl.c:2981
+#: fortran/decl.c:2990
 #, gcc-internal-format, gfc-internal-format
 msgid "Expecting list of named entities at %C"
 msgstr ""
 
-#: fortran/decl.c:3009
+#: fortran/decl.c:3019
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot IMPORT '%s' from host scoping unit at %C - does not exist."
 msgstr ""
 
-#: fortran/decl.c:3016
+#: fortran/decl.c:3026
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' is already IMPORTed from host scoping unit at %C."
 msgstr ""
 
-#: fortran/decl.c:3045
+#: fortran/decl.c:3055
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in IMPORT statement at %C"
 msgstr ""
 
-#: fortran/decl.c:3344
+#: fortran/decl.c:3354
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing codimension specification at %C"
 msgstr ""
 
-#: fortran/decl.c:3346
+#: fortran/decl.c:3356
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing dimension specification at %C"
 msgstr ""
 
-#: fortran/decl.c:3429
+#: fortran/decl.c:3439
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute at %L"
 msgstr ""
 
-#: fortran/decl.c:3448
+#: fortran/decl.c:3458
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: ALLOCATABLE attribute at %C in a TYPE definition"
 msgstr ""
 
-#: fortran/decl.c:3458
+#: fortran/decl.c:3468
 #, gcc-internal-format, gfc-internal-format
 msgid "Attribute at %L is not allowed in a TYPE definition"
 msgstr ""
 
-#: fortran/decl.c:3476
+#: fortran/decl.c:3486
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: Attribute %s at %L in a TYPE definition"
 msgstr ""
 
-#: fortran/decl.c:3487
+#: fortran/decl.c:3497
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s attribute at %L is not allowed outside of the specification part of a "
 "module"
 msgstr ""
 
-#: fortran/decl.c:3502
+#: fortran/decl.c:3512
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: ASYNCHRONOUS attribute at %C"
 msgstr ""
 
-#: fortran/decl.c:3515
+#: fortran/decl.c:3525
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: CONTIGUOUS attribute at %C"
 msgstr ""
 
-#: fortran/decl.c:3561 fortran/decl.c:6524
+#: fortran/decl.c:3571 fortran/decl.c:6548
 #, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED at %C only allowed in specification part of a module"
 msgstr ""
 
-#: fortran/decl.c:3567
+#: fortran/decl.c:3577
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: PROTECTED attribute at %C"
 msgstr ""
 
-#: fortran/decl.c:3598
+#: fortran/decl.c:3608
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: VALUE attribute at %C"
 msgstr ""
 
-#: fortran/decl.c:3608
+#: fortran/decl.c:3618
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: VOLATILE attribute at %C"
 msgstr ""
 
-#: fortran/decl.c:3652
+#: fortran/decl.c:3662
 #, gcc-internal-format, gfc-internal-format
 msgid "Multiple identifiers provided with single NAME= specifier at %C"
 msgstr ""
 
-#: fortran/decl.c:3749
+#: fortran/decl.c:3759
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Implicitly declared BIND(C) function '%s' at %L may not be C interoperable"
 msgstr ""
 
-#: fortran/decl.c:3770
+#: fortran/decl.c:3780
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Variable '%s' in common block '%s' at %L may not be a C interoperable kind "
 "though common block '%s' is BIND(C)"
 msgstr ""
 
-#: fortran/decl.c:3779
+#: fortran/decl.c:3789
 #, gcc-internal-format, gfc-internal-format
 msgid "Type declaration '%s' at %L is not C interoperable but it is BIND(C)"
 msgstr ""
 
-#: fortran/decl.c:3783
+#: fortran/decl.c:3793
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable '%s' at %L may not be a C interoperable kind but it is bind(c)"
 msgstr ""
 
-#: fortran/decl.c:3795
+#: fortran/decl.c:3805
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Variable '%s' in common block '%s' at %L cannot be declared with BIND(C) "
 "since it is not a global"
 msgstr ""
 
-#: fortran/decl.c:3809
+#: fortran/decl.c:3819
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable '%s' at %L cannot have both the POINTER and BIND(C) attributes"
 msgstr ""
 
-#: fortran/decl.c:3817
+#: fortran/decl.c:3827
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Variable '%s' at %L cannot have both the ALLOCATABLE and BIND(C) attributes"
 msgstr ""
 
-#: fortran/decl.c:3829
+#: fortran/decl.c:3839
 #, gcc-internal-format, gfc-internal-format
 msgid "Return type of BIND(C) function '%s' at %L cannot be an array"
 msgstr ""
 
-#: fortran/decl.c:3837
+#: fortran/decl.c:3847
 #, gcc-internal-format, gfc-internal-format
 msgid "Return type of BIND(C) function '%s' at %L cannot be a character string"
 msgstr ""
 
 #. Use gfc_warning_now because we won't say that the symbol fails
 #. just because of this.
-#: fortran/decl.c:3848
+#: fortran/decl.c:3858
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Symbol '%s' at %L is marked PRIVATE but has been given the binding label '%s'"
 msgstr ""
 
-#: fortran/decl.c:3923
+#: fortran/decl.c:3933
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Need either entity or common block name for attribute specification "
 "statement at %C"
 msgstr ""
 
-#: fortran/decl.c:3970
+#: fortran/decl.c:3980
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Missing entity or common block name for attribute specification statement at "
@@ -34737,780 +35245,785 @@
 
 #. Now we have an error, which we signal, and then fix up
 #. because the knock-on is plain and simple confusing.
-#: fortran/decl.c:4079
+#: fortran/decl.c:4089
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Derived type at %C has not been previously defined and so cannot appear in a "
 "derived type definition"
 msgstr ""
 
-#: fortran/decl.c:4111
+#: fortran/decl.c:4121
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in data declaration at %C"
 msgstr ""
 
-#: fortran/decl.c:4185
+#: fortran/decl.c:4195
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: IMPURE procedure at %C"
 msgstr ""
 
-#: fortran/decl.c:4198
+#: fortran/decl.c:4208
 #, gcc-internal-format, gfc-internal-format
 msgid "PURE and IMPURE must not appear both at %C"
 msgstr ""
 
-#: fortran/decl.c:4304
+#: fortran/decl.c:4314
 #, gcc-internal-format, gfc-internal-format
 msgid "Name '%s' at %C is the name of the procedure"
 msgstr ""
 
-#: fortran/decl.c:4316
+#: fortran/decl.c:4326
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected junk in formal argument list at %C"
 msgstr ""
 
-#: fortran/decl.c:4333
+#: fortran/decl.c:4343
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate symbol '%s' in formal argument list at %C"
 msgstr ""
 
-#: fortran/decl.c:4384
+#: fortran/decl.c:4394
 #, gcc-internal-format, gfc-internal-format
 msgid "RESULT variable at %C must be different than function name"
 msgstr ""
 
-#: fortran/decl.c:4461
+#: fortran/decl.c:4471
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected junk after function declaration at %C"
 msgstr ""
 
-#: fortran/decl.c:4471 fortran/decl.c:5500
+#: fortran/decl.c:4481 fortran/decl.c:5513
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Fortran 2008: BIND(C) attribute at %L may not be specified for an internal "
 "procedure"
 msgstr ""
 
-#: fortran/decl.c:4615
+#: fortran/decl.c:4625
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface '%s' at %C may not be generic"
 msgstr ""
 
-#: fortran/decl.c:4621
+#: fortran/decl.c:4631
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface '%s' at %C may not be a statement function"
 msgstr ""
 
-#: fortran/decl.c:4634
+#: fortran/decl.c:4644
 #, gcc-internal-format, gfc-internal-format
 msgid "Intrinsic procedure '%s' not allowed in PROCEDURE statement at %C"
 msgstr ""
 
-#: fortran/decl.c:4689
+#: fortran/decl.c:4699
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %C requires an interface with BIND(C)"
 msgstr ""
 
-#: fortran/decl.c:4696
+#: fortran/decl.c:4706
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) procedure with NAME may not have POINTER attribute at %C"
 msgstr ""
 
-#: fortran/decl.c:4702
+#: fortran/decl.c:4712
 #, gcc-internal-format, gfc-internal-format
 msgid "Dummy procedure at %C may not have BIND(C) attribute with NAME"
 msgstr ""
 
-#: fortran/decl.c:4725
+#: fortran/decl.c:4735
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure '%s' at %L already has basic type of %s"
 msgstr ""
 
-#: fortran/decl.c:4773 fortran/decl.c:4940 fortran/decl.c:7952
+#: fortran/decl.c:4784 fortran/decl.c:4952 fortran/decl.c:7991
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in PROCEDURE statement at %C"
 msgstr ""
 
-#: fortran/decl.c:4822 fortran/decl.c:7853
+#: fortran/decl.c:4833 fortran/decl.c:7892
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected '::' after binding-attributes at %C"
 msgstr ""
 
-#: fortran/decl.c:4829
+#: fortran/decl.c:4840
 #, gcc-internal-format, gfc-internal-format
 msgid "NOPASS or explicit interface required at %C"
 msgstr ""
 
-#: fortran/decl.c:4833
+#: fortran/decl.c:4844
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: Procedure pointer component at %C"
 msgstr ""
 
-#: fortran/decl.c:4897
+#: fortran/decl.c:4909
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in procedure pointer component at %C"
 msgstr ""
 
-#: fortran/decl.c:4914
+#: fortran/decl.c:4926
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE at %C must be in a generic interface"
 msgstr ""
 
-#: fortran/decl.c:4979
+#: fortran/decl.c:4992
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: PROCEDURE statement at %C"
 msgstr ""
 
-#: fortran/decl.c:5047
+#: fortran/decl.c:5060
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected formal argument list in function definition at %C"
 msgstr ""
 
-#: fortran/decl.c:5071 fortran/decl.c:5075 fortran/decl.c:5278
-#: fortran/decl.c:5282 fortran/decl.c:5468 fortran/decl.c:5472
+#: fortran/decl.c:5084 fortran/decl.c:5088 fortran/decl.c:5291
+#: fortran/decl.c:5295 fortran/decl.c:5481 fortran/decl.c:5485
 #: fortran/symbol.c:1582
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr ""
 
-#: fortran/decl.c:5190
+#: fortran/decl.c:5203
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008 obsolescent feature: ENTRY statement at %C"
 msgstr ""
 
-#: fortran/decl.c:5200
+#: fortran/decl.c:5213
 #, gcc-internal-format, gfc-internal-format
 msgid "ENTRY statement at %C cannot appear within a PROGRAM"
 msgstr ""
 
-#: fortran/decl.c:5203
+#: fortran/decl.c:5216
 #, gcc-internal-format, gfc-internal-format
 msgid "ENTRY statement at %C cannot appear within a MODULE"
 msgstr ""
 
-#: fortran/decl.c:5206
+#: fortran/decl.c:5219
 #, gcc-internal-format, gfc-internal-format
 msgid "ENTRY statement at %C cannot appear within a BLOCK DATA"
 msgstr ""
 
-#: fortran/decl.c:5210
+#: fortran/decl.c:5223
 #, gcc-internal-format, gfc-internal-format
 msgid "ENTRY statement at %C cannot appear within an INTERFACE"
 msgstr ""
 
-#: fortran/decl.c:5214
+#: fortran/decl.c:5227
 #, gcc-internal-format, gfc-internal-format
 msgid "ENTRY statement at %C cannot appear within a DERIVED TYPE block"
 msgstr ""
 
-#: fortran/decl.c:5218
+#: fortran/decl.c:5231
 #, gcc-internal-format, gfc-internal-format
 msgid "ENTRY statement at %C cannot appear within an IF-THEN block"
 msgstr ""
 
-#: fortran/decl.c:5222
+#: fortran/decl.c:5235
 #, gcc-internal-format, gfc-internal-format
 msgid "ENTRY statement at %C cannot appear within a DO block"
 msgstr ""
 
-#: fortran/decl.c:5226
+#: fortran/decl.c:5239
 #, gcc-internal-format, gfc-internal-format
 msgid "ENTRY statement at %C cannot appear within a SELECT block"
 msgstr ""
 
-#: fortran/decl.c:5230
+#: fortran/decl.c:5243
 #, gcc-internal-format, gfc-internal-format
 msgid "ENTRY statement at %C cannot appear within a FORALL block"
 msgstr ""
 
-#: fortran/decl.c:5234
+#: fortran/decl.c:5247
 #, gcc-internal-format, gfc-internal-format
 msgid "ENTRY statement at %C cannot appear within a WHERE block"
 msgstr ""
 
-#: fortran/decl.c:5238
+#: fortran/decl.c:5251
 #, gcc-internal-format, gfc-internal-format
 msgid "ENTRY statement at %C cannot appear within a contained subprogram"
 msgstr ""
 
-#: fortran/decl.c:5256
+#: fortran/decl.c:5269
 #, gcc-internal-format, gfc-internal-format
 msgid "ENTRY statement at %C cannot appear in a contained procedure"
 msgstr ""
 
-#: fortran/decl.c:5310 fortran/decl.c:5508
+#: fortran/decl.c:5323 fortran/decl.c:5521
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing required parentheses before BIND(C) at %C"
 msgstr ""
 
-#: fortran/decl.c:5570 fortran/decl.c:5586
+#: fortran/decl.c:5583 fortran/decl.c:5599
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in NAME= specifier for binding label at %C"
 msgstr ""
 
-#: fortran/decl.c:5601
+#: fortran/decl.c:5614
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing closing quote '\"' for binding label at %C"
 msgstr ""
 
-#: fortran/decl.c:5610
+#: fortran/decl.c:5623
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing closing quote ''' for binding label at %C"
 msgstr ""
 
-#: fortran/decl.c:5620
+#: fortran/decl.c:5633
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing closing paren for binding label at %C"
 msgstr ""
 
-#: fortran/decl.c:5626
+#: fortran/decl.c:5639
 #, gcc-internal-format, gfc-internal-format
 msgid "No binding name is allowed in BIND(C) at %C"
 msgstr ""
 
-#: fortran/decl.c:5632
+#: fortran/decl.c:5645
 #, gcc-internal-format, gfc-internal-format
 msgid "For dummy procedure %s, no binding name is allowed in BIND(C) at %C"
 msgstr ""
 
-#: fortran/decl.c:5663
+#: fortran/decl.c:5676
 #, gcc-internal-format, gfc-internal-format
 msgid "NAME not allowed on BIND(C) for ABSTRACT INTERFACE at %C"
 msgstr ""
 
-#: fortran/decl.c:5867
+#: fortran/decl.c:5880
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected END statement at %C"
 msgstr ""
 
-#: fortran/decl.c:5875
+#: fortran/decl.c:5888
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: END statement instead of %s statement at %L"
 msgstr ""
 
 #. We would have required END [something].
-#: fortran/decl.c:5883
+#: fortran/decl.c:5896
 #, gcc-internal-format, gfc-internal-format
 msgid "%s statement expected at %L"
 msgstr ""
 
-#: fortran/decl.c:5894
+#: fortran/decl.c:5907
 #, gcc-internal-format, gfc-internal-format
 msgid "Expecting %s statement at %C"
 msgstr ""
 
-#: fortran/decl.c:5910
+#: fortran/decl.c:5923
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected block name of '%s' in %s statement at %C"
 msgstr ""
 
-#: fortran/decl.c:5927
+#: fortran/decl.c:5940
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected terminating name at %C"
 msgstr ""
 
-#: fortran/decl.c:5936 fortran/decl.c:5944
+#: fortran/decl.c:5949 fortran/decl.c:5957
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected label '%s' for %s statement at %C"
 msgstr ""
 
-#: fortran/decl.c:6003
+#: fortran/decl.c:6016
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing array specification at %L in DIMENSION statement"
 msgstr ""
 
-#: fortran/decl.c:6011
+#: fortran/decl.c:6024
 #, gcc-internal-format, gfc-internal-format
 msgid "Dimensions specified for %s at %L after its initialisation"
 msgstr ""
 
-#: fortran/decl.c:6019
+#: fortran/decl.c:6032
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing array specification at %L in CODIMENSION statement"
 msgstr ""
 
-#: fortran/decl.c:6028
+#: fortran/decl.c:6041
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification must be deferred at %L"
 msgstr ""
 
-#: fortran/decl.c:6127
+#: fortran/decl.c:6140
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected character in variable list at %C"
 msgstr ""
 
-#: fortran/decl.c:6164
+#: fortran/decl.c:6177
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected '(' at %C"
 msgstr ""
 
-#: fortran/decl.c:6178 fortran/decl.c:6218
+#: fortran/decl.c:6191 fortran/decl.c:6231
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected variable name at %C"
 msgstr ""
 
-#: fortran/decl.c:6194
+#: fortran/decl.c:6207
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray pointer at %C must be an integer"
 msgstr ""
 
-#: fortran/decl.c:6198
+#: fortran/decl.c:6211
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Cray pointer at %C has %d bytes of precision; memory addresses require %d "
 "bytes"
 msgstr ""
 
-#: fortran/decl.c:6204
+#: fortran/decl.c:6217
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected \",\" at %C"
 msgstr ""
 
-#: fortran/decl.c:6267
+#: fortran/decl.c:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected \")\" at %C"
 msgstr ""
 
-#: fortran/decl.c:6279
+#: fortran/decl.c:6292
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected \",\" or end of statement at %C"
 msgstr ""
 
-#: fortran/decl.c:6305
+#: fortran/decl.c:6318
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT is not allowed inside of BLOCK at %C"
 msgstr ""
 
-#: fortran/decl.c:6337
+#: fortran/decl.c:6350
 #, gcc-internal-format, gfc-internal-format
 msgid "OPTIONAL is not allowed inside of BLOCK at %C"
 msgstr ""
 
-#: fortran/decl.c:6356
+#: fortran/decl.c:6369
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray pointer declaration at %C requires -fcray-pointer flag"
 msgstr ""
 
-#: fortran/decl.c:6395
+#: fortran/decl.c:6408
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: CONTIGUOUS statement at %C"
 msgstr ""
 
-#: fortran/decl.c:6475
+#: fortran/decl.c:6499
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Access specification of the %s operator at %C has already been specified"
 msgstr ""
 
-#: fortran/decl.c:6492
+#: fortran/decl.c:6516
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Access specification of the .%s. operator at %C has already been specified"
 msgstr ""
 
-#: fortran/decl.c:6530
+#: fortran/decl.c:6554
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: PROTECTED statement at %C"
 msgstr ""
 
-#: fortran/decl.c:6570
+#: fortran/decl.c:6594
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in PROTECTED statement at %C"
 msgstr ""
 
-#: fortran/decl.c:6594
+#: fortran/decl.c:6618
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "PRIVATE statement at %C is only allowed in the specification part of a module"
 msgstr ""
 
-#: fortran/decl.c:6631
+#: fortran/decl.c:6655
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "PUBLIC statement at %C is only allowed in the specification part of a module"
 msgstr ""
 
-#: fortran/decl.c:6659
+#: fortran/decl.c:6683
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected variable name at %C in PARAMETER statement"
 msgstr ""
 
-#: fortran/decl.c:6666
+#: fortran/decl.c:6690
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected = sign in PARAMETER statement at %C"
 msgstr ""
 
-#: fortran/decl.c:6672
+#: fortran/decl.c:6696
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected expression at %C in PARAMETER statement"
 msgstr ""
 
-#: fortran/decl.c:6692
+#: fortran/decl.c:6716
 #, gcc-internal-format, gfc-internal-format
 msgid "Initializing already initialized variable at %C"
 msgstr ""
 
-#: fortran/decl.c:6727
+#: fortran/decl.c:6751
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected characters in PARAMETER statement at %C"
 msgstr ""
 
-#: fortran/decl.c:6751
+#: fortran/decl.c:6775
 #, gcc-internal-format, gfc-internal-format
 msgid "Blanket SAVE statement at %C follows previous SAVE statement"
 msgstr ""
 
-#: fortran/decl.c:6763
+#: fortran/decl.c:6787
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE statement at %C follows blanket SAVE statement"
 msgstr ""
 
-#: fortran/decl.c:6810
+#: fortran/decl.c:6834
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in SAVE statement at %C"
 msgstr ""
 
-#: fortran/decl.c:6824
+#: fortran/decl.c:6848
 #, gcc-internal-format, gfc-internal-format
 msgid "VALUE is not allowed inside of BLOCK at %C"
 msgstr ""
 
-#: fortran/decl.c:6828
+#: fortran/decl.c:6852
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: VALUE statement at %C"
 msgstr ""
 
-#: fortran/decl.c:6868
+#: fortran/decl.c:6892
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in VALUE statement at %C"
 msgstr ""
 
-#: fortran/decl.c:6879
+#: fortran/decl.c:6903
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: VOLATILE statement at %C"
 msgstr ""
 
-#: fortran/decl.c:6903
+#: fortran/decl.c:6927
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Specifying VOLATILE for coarray variable '%s' at %C, which is use-/host-"
 "associated"
 msgstr ""
 
-#: fortran/decl.c:6929
+#: fortran/decl.c:6953
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in VOLATILE statement at %C"
 msgstr ""
 
-#: fortran/decl.c:6940
+#: fortran/decl.c:6964
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: ASYNCHRONOUS statement at %C"
 msgstr ""
 
-#: fortran/decl.c:6982
+#: fortran/decl.c:7006
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in ASYNCHRONOUS statement at %C"
 msgstr ""
 
-#: fortran/decl.c:7005
+#: fortran/decl.c:7030
 #, gcc-internal-format, gfc-internal-format
 msgid "MODULE PROCEDURE at %C must be in a generic module interface"
 msgstr ""
 
-#: fortran/decl.c:7050
+#: fortran/decl.c:7055
+#, gcc-internal-format, gfc-internal-format
+msgid "Fortran 2008: double colon in MODULE PROCEDURE statement at %L"
+msgstr ""
+
+#: fortran/decl.c:7089
 #, gcc-internal-format, gfc-internal-format
 msgid "Intrinsic procedure at %L cannot be a MODULE PROCEDURE"
 msgstr ""
 
-#: fortran/decl.c:7099
+#: fortran/decl.c:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "Ambiguous symbol in TYPE definition at %C"
 msgstr ""
 
-#: fortran/decl.c:7105
+#: fortran/decl.c:7144
 #, gcc-internal-format, gfc-internal-format
 msgid "No such symbol in TYPE definition at %C"
 msgstr ""
 
-#: fortran/decl.c:7111
+#: fortran/decl.c:7150
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' in EXTENDS expression at %C is not a derived type"
 msgstr ""
 
-#: fortran/decl.c:7118
+#: fortran/decl.c:7157
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' cannot be extended at %C because it is BIND(C)"
 msgstr ""
 
-#: fortran/decl.c:7125
+#: fortran/decl.c:7164
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' cannot be extended at %C because it is a SEQUENCE type"
 msgstr ""
 
-#: fortran/decl.c:7148
+#: fortran/decl.c:7187
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Derived type at %C can only be PRIVATE in the specification part of a module"
 msgstr ""
 
-#: fortran/decl.c:7160
+#: fortran/decl.c:7199
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Derived type at %C can only be PUBLIC in the specification part of a module"
 msgstr ""
 
-#: fortran/decl.c:7181
+#: fortran/decl.c:7220
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: ABSTRACT type at %C"
 msgstr ""
 
-#: fortran/decl.c:7245
+#: fortran/decl.c:7284
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected :: in TYPE definition at %C"
 msgstr ""
 
-#: fortran/decl.c:7256
+#: fortran/decl.c:7295
 #, gcc-internal-format, gfc-internal-format
 msgid "Type name '%s' at %C cannot be the same as an intrinsic type"
 msgstr ""
 
-#: fortran/decl.c:7266
+#: fortran/decl.c:7305
 #, gcc-internal-format, gfc-internal-format
 msgid "Derived type name '%s' at %C already has a basic type of %s"
 msgstr ""
 
-#: fortran/decl.c:7282
+#: fortran/decl.c:7321
 #, gcc-internal-format, gfc-internal-format
 msgid "Derived type definition of '%s' at %C has already been defined"
 msgstr ""
 
-#: fortran/decl.c:7355
+#: fortran/decl.c:7394
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %C cannot be assumed shape array"
 msgstr ""
 
-#: fortran/decl.c:7375
+#: fortran/decl.c:7414
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: ENUM and ENUMERATOR at %C"
 msgstr ""
 
-#: fortran/decl.c:7408
+#: fortran/decl.c:7447
 #, gcc-internal-format, gfc-internal-format
 msgid "Enumerator exceeds the C integer type at %C"
 msgstr ""
 
-#: fortran/decl.c:7487
+#: fortran/decl.c:7526
 #, gcc-internal-format, gfc-internal-format
 msgid "ENUMERATOR %L not initialized with integer expression"
 msgstr ""
 
-#: fortran/decl.c:7535
+#: fortran/decl.c:7574
 #, gcc-internal-format, gfc-internal-format
 msgid "ENUM definition statement expected before %C"
 msgstr ""
 
-#: fortran/decl.c:7571
+#: fortran/decl.c:7610
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in ENUMERATOR definition at %C"
 msgstr ""
 
-#: fortran/decl.c:7618 fortran/decl.c:7633
+#: fortran/decl.c:7657 fortran/decl.c:7672
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate access-specifier at %C"
 msgstr ""
 
-#: fortran/decl.c:7653
+#: fortran/decl.c:7692
 #, gcc-internal-format, gfc-internal-format
 msgid "Binding attributes already specify passing, illegal NOPASS at %C"
 msgstr ""
 
-#: fortran/decl.c:7673
+#: fortran/decl.c:7712
 #, gcc-internal-format, gfc-internal-format
 msgid "Binding attributes already specify passing, illegal PASS at %C"
 msgstr ""
 
-#: fortran/decl.c:7700
+#: fortran/decl.c:7739
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate POINTER attribute at %C"
 msgstr ""
 
-#: fortran/decl.c:7718
+#: fortran/decl.c:7757
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate NON_OVERRIDABLE at %C"
 msgstr ""
 
-#: fortran/decl.c:7734
+#: fortran/decl.c:7773
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate DEFERRED at %C"
 msgstr ""
 
-#: fortran/decl.c:7747
+#: fortran/decl.c:7786
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected access-specifier at %C"
 msgstr ""
 
-#: fortran/decl.c:7749
+#: fortran/decl.c:7788
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected binding attribute at %C"
 msgstr ""
 
-#: fortran/decl.c:7757
+#: fortran/decl.c:7796
 #, gcc-internal-format, gfc-internal-format
 msgid "NON_OVERRIDABLE and DEFERRED can't both appear at %C"
 msgstr ""
 
-#: fortran/decl.c:7769
+#: fortran/decl.c:7808
 #, gcc-internal-format, gfc-internal-format
 msgid "POINTER attribute is required for procedure pointer component at %C"
 msgstr ""
 
-#: fortran/decl.c:7811
+#: fortran/decl.c:7850
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface-name expected after '(' at %C"
 msgstr ""
 
-#: fortran/decl.c:7817
+#: fortran/decl.c:7856
 #, gcc-internal-format, gfc-internal-format
 msgid "')' expected at %C"
 msgstr ""
 
-#: fortran/decl.c:7837
+#: fortran/decl.c:7876
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface must be specified for DEFERRED binding at %C"
 msgstr ""
 
-#: fortran/decl.c:7842
+#: fortran/decl.c:7881
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE(interface) at %C should be declared DEFERRED"
 msgstr ""
 
-#: fortran/decl.c:7865
+#: fortran/decl.c:7904
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected binding name at %C"
 msgstr ""
 
-#: fortran/decl.c:7869
+#: fortran/decl.c:7908
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: PROCEDURE list at %C"
 msgstr ""
 
-#: fortran/decl.c:7882
+#: fortran/decl.c:7921
 #, gcc-internal-format, gfc-internal-format
 msgid "'=> target' is invalid for DEFERRED binding at %C"
 msgstr ""
 
-#: fortran/decl.c:7888
+#: fortran/decl.c:7927
 #, gcc-internal-format, gfc-internal-format
 msgid "'::' needed in PROCEDURE binding with explicit target at %C"
 msgstr ""
 
-#: fortran/decl.c:7898
+#: fortran/decl.c:7937
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected binding target after '=>' at %C"
 msgstr ""
 
-#: fortran/decl.c:7915
+#: fortran/decl.c:7954
 #, gcc-internal-format, gfc-internal-format
 msgid "Type '%s' containing DEFERRED binding at %C is not ABSTRACT"
 msgstr ""
 
-#: fortran/decl.c:7926
+#: fortran/decl.c:7965
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "There is already a procedure with binding name '%s' for the derived type "
 "'%s' at %C"
 msgstr ""
 
-#: fortran/decl.c:7975
+#: fortran/decl.c:8014
 #, gcc-internal-format, gfc-internal-format
 msgid "GENERIC at %C must be inside a derived-type CONTAINS"
 msgstr ""
 
-#: fortran/decl.c:7995
+#: fortran/decl.c:8034
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected '::' at %C"
 msgstr ""
 
-#: fortran/decl.c:8007
+#: fortran/decl.c:8046
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected generic name or operator descriptor at %C"
 msgstr ""
 
-#: fortran/decl.c:8033
+#: fortran/decl.c:8072
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected '=>' at %C"
 msgstr ""
 
-#: fortran/decl.c:8075
+#: fortran/decl.c:8114
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "There's already a non-generic procedure with binding name '%s' for the "
 "derived type '%s' at %C"
 msgstr ""
 
-#: fortran/decl.c:8083
+#: fortran/decl.c:8122
 #, gcc-internal-format, gfc-internal-format
 msgid "Binding at %C must have the same access as already defined binding '%s'"
 msgstr ""
 
-#: fortran/decl.c:8132
+#: fortran/decl.c:8171
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected specific binding name at %C"
 msgstr ""
 
-#: fortran/decl.c:8142
+#: fortran/decl.c:8181
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' already defined as specific binding for the generic '%s' at %C"
 msgstr ""
 
-#: fortran/decl.c:8158
+#: fortran/decl.c:8197
 #, gcc-internal-format, gfc-internal-format
 msgid "Junk after GENERIC binding at %C"
 msgstr ""
 
-#: fortran/decl.c:8193
+#: fortran/decl.c:8232
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL declaration at %C must be inside a derived type CONTAINS section"
 msgstr ""
 
-#: fortran/decl.c:8204
+#: fortran/decl.c:8243
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Derived type declaration with FINAL at %C must be in the specification part "
 "of a MODULE"
 msgstr ""
 
-#: fortran/decl.c:8226
+#: fortran/decl.c:8265
 #, gcc-internal-format, gfc-internal-format
 msgid "Empty FINAL at %C"
 msgstr ""
 
-#: fortran/decl.c:8233
+#: fortran/decl.c:8272
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected module procedure name at %C"
 msgstr ""
 
-#: fortran/decl.c:8243
+#: fortran/decl.c:8282
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected ',' at %C"
 msgstr ""
 
-#: fortran/decl.c:8249
+#: fortran/decl.c:8288
 #, gcc-internal-format, gfc-internal-format
 msgid "Unknown procedure name \"%s\" at %C"
 msgstr ""
 
-#: fortran/decl.c:8263
+#: fortran/decl.c:8302
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %C is already defined as FINAL procedure!"
 msgstr ""
 
-#: fortran/decl.c:8332
+#: fortran/decl.c:8371
 #, gcc-internal-format, gfc-internal-format
 msgid "Unknown attribute in !GCC$ ATTRIBUTES statement at %C"
 msgstr ""
 
-#: fortran/decl.c:8379
+#: fortran/decl.c:8418
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in !GCC$ ATTRIBUTES statement at %C"
 msgstr ""
@@ -35546,506 +36059,511 @@
 msgid "Internal Error at (1):"
 msgstr ""
 
-#: fortran/expr.c:1212
+#: fortran/expr.c:1215
 #, gcc-internal-format, gfc-internal-format
 msgid "Index in dimension %d is out of bounds at %L"
 msgstr ""
 
-#: fortran/expr.c:1391 fortran/expr.c:1442
+#: fortran/expr.c:1394 fortran/expr.c:1445
 #, gcc-internal-format, gfc-internal-format
 msgid "index in dimension %d is out of bounds at %L"
 msgstr ""
 
-#: fortran/expr.c:2053
+#: fortran/expr.c:2056
 #, gcc-internal-format, gfc-internal-format
 msgid "elemental function arguments at %C are not compliant"
 msgstr ""
 
-#: fortran/expr.c:2097
+#: fortran/expr.c:2100
 #, gcc-internal-format, gfc-internal-format
 msgid "Numeric or CHARACTER operands are required in expression at %L"
 msgstr ""
 
-#: fortran/expr.c:2122
+#: fortran/expr.c:2125
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Concatenation operator in expression at %L must have two CHARACTER operands"
 msgstr ""
 
-#: fortran/expr.c:2129
+#: fortran/expr.c:2132
 #, gcc-internal-format, gfc-internal-format
 msgid "Concat operator at %L must concatenate strings of the same kind"
 msgstr ""
 
-#: fortran/expr.c:2139
+#: fortran/expr.c:2142
 #, gcc-internal-format, gfc-internal-format
 msgid ".NOT. operator in expression at %L must have a LOGICAL operand"
 msgstr ""
 
-#: fortran/expr.c:2155
+#: fortran/expr.c:2158
 #, gcc-internal-format, gfc-internal-format
 msgid "LOGICAL operands are required in expression at %L"
 msgstr ""
 
-#: fortran/expr.c:2166
+#: fortran/expr.c:2169
 #, gcc-internal-format, gfc-internal-format
 msgid "Only intrinsic operators can be used in expression at %L"
 msgstr ""
 
-#: fortran/expr.c:2174
+#: fortran/expr.c:2177
 #, gcc-internal-format, gfc-internal-format
 msgid "Numeric operands are required in expression at %L"
 msgstr ""
 
-#: fortran/expr.c:2197
+#: fortran/expr.c:2200
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Invalid initialization expression for ALLOCATABLE component '%s' in "
 "structure constructor at %L"
 msgstr ""
 
-#: fortran/expr.c:2295
+#: fortran/expr.c:2298
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Assumed or deferred character length variable '%s'  in constant expression "
 "at %L"
 msgstr ""
 
-#: fortran/expr.c:2361
+#: fortran/expr.c:2364
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "transformational intrinsic '%s' at %L is not permitted in an initialization "
 "expression"
 msgstr ""
 
-#: fortran/expr.c:2392
+#: fortran/expr.c:2395
 #, gcc-internal-format, gfc-internal-format
 msgid "Extension: Evaluation of nonstandard initialization expression at %L"
 msgstr ""
 
-#: fortran/expr.c:2448
+#: fortran/expr.c:2451
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Function '%s' in initialization expression at %L must be an intrinsic "
 "function"
 msgstr ""
 
-#: fortran/expr.c:2460
+#: fortran/expr.c:2463
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Intrinsic function '%s' at %L is not permitted in an initialization "
 "expression"
 msgstr ""
 
-#: fortran/expr.c:2492
+#: fortran/expr.c:2495
 #, gcc-internal-format, gfc-internal-format
 msgid "PARAMETER '%s' is used at %L before its definition is complete"
 msgstr ""
 
-#: fortran/expr.c:2512
+#: fortran/expr.c:2515
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Assumed size array '%s' at %L is not permitted in an initialization "
 "expression"
 msgstr ""
 
-#: fortran/expr.c:2518
+#: fortran/expr.c:2521
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Assumed shape array '%s' at %L is not permitted in an initialization "
 "expression"
 msgstr ""
 
-#: fortran/expr.c:2524
+#: fortran/expr.c:2527
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Deferred array '%s' at %L is not permitted in an initialization expression"
 msgstr ""
 
-#: fortran/expr.c:2530
+#: fortran/expr.c:2533
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Array '%s' at %L is a variable, which does not reduce to a constant "
 "expression"
 msgstr ""
 
-#: fortran/expr.c:2540
+#: fortran/expr.c:2543
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Parameter '%s' at %L has not been declared or is a variable, which does not "
 "reduce to a constant expression"
 msgstr ""
 
-#: fortran/expr.c:2693
+#: fortran/expr.c:2696
 #, gcc-internal-format, gfc-internal-format
 msgid "Specification function '%s' at %L cannot be a statement function"
 msgstr ""
 
-#: fortran/expr.c:2700
+#: fortran/expr.c:2703
 #, gcc-internal-format, gfc-internal-format
 msgid "Specification function '%s' at %L cannot be an internal function"
 msgstr ""
 
-#: fortran/expr.c:2707
+#: fortran/expr.c:2710
 #, gcc-internal-format, gfc-internal-format
 msgid "Specification function '%s' at %L must be PURE"
 msgstr ""
 
-#: fortran/expr.c:2714
+#: fortran/expr.c:2717
 #, gcc-internal-format, gfc-internal-format
 msgid "Specification function '%s' at %L cannot be RECURSIVE"
 msgstr ""
 
-#: fortran/expr.c:2848
+#: fortran/expr.c:2851
 #, gcc-internal-format, gfc-internal-format
 msgid "Dummy argument '%s' not allowed in expression at %L"
 msgstr ""
 
-#: fortran/expr.c:2855
+#: fortran/expr.c:2858
 #, gcc-internal-format, gfc-internal-format
 msgid "Dummy argument '%s' at %L cannot be OPTIONAL"
 msgstr ""
 
-#: fortran/expr.c:2862
+#: fortran/expr.c:2865
 #, gcc-internal-format, gfc-internal-format
 msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
 msgstr ""
 
-#: fortran/expr.c:2893
+#: fortran/expr.c:2896
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable '%s' cannot appear in the expression at %L"
 msgstr ""
 
-#: fortran/expr.c:2944
+#: fortran/expr.c:2947
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr ""
 
-#: fortran/expr.c:2956
+#: fortran/expr.c:2959
 #, gcc-internal-format, gfc-internal-format
 msgid "Function '%s' at %L must be PURE"
 msgstr ""
 
-#: fortran/expr.c:2965
+#: fortran/expr.c:2968
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr ""
 
-#: fortran/expr.c:2999
+#: fortran/expr.c:3002
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr ""
 
-#: fortran/expr.c:3013
+#: fortran/expr.c:3016
 #, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr ""
 
-#: fortran/expr.c:3102
+#: fortran/expr.c:3105
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L is not a VALUE"
 msgstr ""
 
-#: fortran/expr.c:3109
+#: fortran/expr.c:3112
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr ""
 
-#: fortran/expr.c:3116
+#: fortran/expr.c:3119
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr ""
 
-#: fortran/expr.c:3128
+#: fortran/expr.c:3131
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr ""
 
-#: fortran/expr.c:3138
+#: fortran/expr.c:3141
 #, gcc-internal-format, gfc-internal-format
 msgid "POINTER valued function appears on right-hand side of assignment at %L"
 msgstr ""
 
-#: fortran/expr.c:3148
+#: fortran/expr.c:3151
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Extension: BOZ literal at %L used to initialize non-integer variable '%s'"
 msgstr ""
 
-#: fortran/expr.c:3154 fortran/resolve.c:8782
+#: fortran/expr.c:3157 fortran/resolve.c:8891
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Extension: BOZ literal at %L outside a DATA statement and outside INT/REAL/"
 "DBLE/CMPLX"
 msgstr ""
 
-#: fortran/expr.c:3164 fortran/resolve.c:8792
+#: fortran/expr.c:3167 fortran/resolve.c:8901
 #, gcc-internal-format, gfc-internal-format
 msgid "BOZ literal at %L is bitwise transferred non-integer symbol '%s'"
 msgstr ""
 
-#: fortran/expr.c:3172 fortran/resolve.c:8801
+#: fortran/expr.c:3175 fortran/resolve.c:8910
 #, gcc-internal-format, gfc-internal-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:3176 fortran/resolve.c:8805
+#: fortran/expr.c:3179 fortran/resolve.c:8914
 #, gcc-internal-format, gfc-internal-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:3180 fortran/resolve.c:8809
+#: fortran/expr.c:3183 fortran/resolve.c:8918
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled "
 "with the option -fno-range-check"
 msgstr ""
 
-#: fortran/expr.c:3202
+#: fortran/expr.c:3205
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr ""
 
-#: fortran/expr.c:3238
+#: fortran/expr.c:3241
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr ""
 
-#: fortran/expr.c:3247
+#: fortran/expr.c:3250
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' in the pointer assignment at %L cannot be an l-value since it is a "
 "procedure"
 msgstr ""
 
-#: fortran/expr.c:3270
+#: fortran/expr.c:3273
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected bounds specification for '%s' at %L"
 msgstr ""
 
-#: fortran/expr.c:3275
+#: fortran/expr.c:3278
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: Bounds specification for '%s' in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.c:3288
+#: fortran/expr.c:3291
 #, gcc-internal-format, gfc-internal-format
 msgid "Lower bound has to be present at %L"
 msgstr ""
 
-#: fortran/expr.c:3294
+#: fortran/expr.c:3297
 #, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr ""
 
-#: fortran/expr.c:3306
+#: fortran/expr.c:3309
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the upper bounds must be specified at %L"
 msgstr ""
 
-#: fortran/expr.c:3332
+#: fortran/expr.c:3335
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr ""
 
-#: fortran/expr.c:3353
+#: fortran/expr.c:3356
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.c:3359
+#: fortran/expr.c:3362
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Abstract interface '%s' is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.c:3369
+#: fortran/expr.c:3372
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Statement function '%s' is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.c:3375
+#: fortran/expr.c:3378
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Internal procedure '%s' is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.c:3398
+#: fortran/expr.c:3401
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Mismatch in the procedure pointer assignment at %L: mismatch in the calling "
 "convention"
 msgstr ""
 
-#: fortran/expr.c:3429
+#: fortran/expr.c:3432
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr ""
 
-#: fortran/expr.c:3439
+#: fortran/expr.c:3442
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr ""
 
-#: fortran/expr.c:3447
+#: fortran/expr.c:3450
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.c:3454
+#: fortran/expr.c:3457
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.c:3473
+#: fortran/expr.c:3476
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr ""
 
-#: fortran/expr.c:3486
+#: fortran/expr.c:3489
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr ""
 
-#: fortran/expr.c:3490
+#: fortran/expr.c:3493
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Rank remapping target is not rank 1 at %L"
 msgstr ""
 
-#: fortran/expr.c:3515
+#: fortran/expr.c:3518
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr ""
 
-#: fortran/expr.c:3523
+#: fortran/expr.c:3526
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr ""
 
-#: fortran/expr.c:3530
+#: fortran/expr.c:3533
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr ""
 
-#: fortran/expr.c:3540
+#: fortran/expr.c:3543
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr ""
 
-#: fortran/expr.c:3548
+#: fortran/expr.c:3551
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr ""
 
-#: fortran/expr.c:3561
+#: fortran/expr.c:3564
 #, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr ""
 
-#: fortran/expr.c:3609
+#: fortran/expr.c:3612
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %C must not be ALLOCATABLE "
 msgstr ""
 
-#: fortran/expr.c:3615
+#: fortran/expr.c:3618
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %C must have the TARGET attribute"
 msgstr ""
 
-#: fortran/expr.c:3621
+#: fortran/expr.c:3624
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %C must have the SAVE attribute"
 msgstr ""
 
-#: fortran/expr.c:3633
+#: fortran/expr.c:3636
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr ""
 
-#: fortran/expr.c:4383
+#: fortran/expr.c:4403
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.c:4391
+#: fortran/expr.c:4411
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.c:4402
+#: fortran/expr.c:4419
 #, gcc-internal-format, gfc-internal-format
 msgid "Named constant '%s' in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.c:4411
+#: fortran/expr.c:4428
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' in variable definition context (%s) at %L is not a variable"
 msgstr ""
 
-#: fortran/expr.c:4423
+#: fortran/expr.c:4440
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.c:4445
+#: fortran/expr.c:4453
+#, gcc-internal-format, gfc-internal-format
+msgid "LOCK_TYPE in variable definition context (%s) at %L"
+msgstr ""
+
+#: fortran/expr.c:4475
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Dummy argument '%s' with INTENT(IN) in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.c:4453
+#: fortran/expr.c:4483
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Dummy argument '%s' with INTENT(IN) in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.c:4466
+#: fortran/expr.c:4496
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Variable '%s' is PROTECTED and can not appear in a pointer association "
 "context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.c:4474
+#: fortran/expr.c:4504
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Variable '%s' is PROTECTED and can not appear in a variable definition "
 "context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.c:4486
+#: fortran/expr.c:4516
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Variable '%s' can not appear in a variable definition context (%s) at %L in "
 "PURE procedure"
 msgstr ""
 
-#: fortran/expr.c:4530
+#: fortran/expr.c:4560
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' at %L associated to vector-indexed target can not be used in a variable "
 "definition context (%s)"
 msgstr ""
 
-#: fortran/expr.c:4534
+#: fortran/expr.c:4564
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' at %L associated to expression can not be used in a variable definition "
 "context (%s)"
 msgstr ""
 
-#: fortran/expr.c:4545
+#: fortran/expr.c:4576
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Associate-name '%s' can not appear in a variable definition context (%s) at "
@@ -36062,6 +36580,18 @@
 msgid "can't open input file: %s"
 msgstr ""
 
+#: fortran/frontend-passes.c:306 fortran/trans-array.c:789
+#: fortran/trans-array.c:5068 fortran/trans-array.c:6295
+#: fortran/trans-intrinsic.c:5311
+#, gcc-internal-format, gfc-internal-format
+msgid "Creating array temporary at %L"
+msgstr ""
+
+#: fortran/frontend-passes.c:329 fortran/frontend-passes.c:332
+#, gcc-internal-format, gfc-internal-format
+msgid "Removing call to function '%s' at %L"
+msgstr ""
+
 #: fortran/gfortranspec.c:170
 #, gcc-internal-format
 msgid "overflowed output arg list for %qs"
@@ -36171,12 +36701,12 @@
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.c:703 fortran/resolve.c:13416
+#: fortran/interface.c:703 fortran/resolve.c:13559
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.c:710 fortran/resolve.c:13434
+#: fortran/interface.c:710 fortran/resolve.c:13577
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
@@ -36201,96 +36731,108 @@
 msgid "In %s at %L procedures must be either all SUBROUTINEs or all FUNCTIONs"
 msgstr ""
 
-#: fortran/interface.c:1182 fortran/interface.c:1186
+#: fortran/interface.c:1133
+#, gcc-internal-format, gfc-internal-format
+msgid "Extension: Internal procedure '%s' in %s at %L"
+msgstr ""
+
+#: fortran/interface.c:1188 fortran/interface.c:1192
 #, gcc-internal-format, gfc-internal-format
 msgid "Ambiguous interfaces '%s' and '%s' in %s at %L"
 msgstr ""
 
-#: fortran/interface.c:1190
+#: fortran/interface.c:1196
 #, gcc-internal-format, gfc-internal-format
 msgid "Although not referenced, '%s' has ambiguous interfaces at %L"
 msgstr ""
 
-#: fortran/interface.c:1224
+#: fortran/interface.c:1230
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L is not a module procedure"
 msgstr ""
 
-#: fortran/interface.c:1439
+#: fortran/interface.c:1437
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank mismatch in argument '%s' at %L (scalar and rank-%d)"
 msgstr ""
 
-#: fortran/interface.c:1444
+#: fortran/interface.c:1442
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank mismatch in argument '%s' at %L (rank-%d and scalar)"
 msgstr ""
 
-#: fortran/interface.c:1449
+#: fortran/interface.c:1447
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank mismatch in argument '%s' at %L (rank-%d and rank-%d)"
 msgstr ""
 
-#: fortran/interface.c:1491
+#: fortran/interface.c:1489
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure argument at %L"
 msgstr ""
 
-#: fortran/interface.c:1499
+#: fortran/interface.c:1497
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in dummy procedure '%s' at %L: %s"
 msgstr ""
 
-#: fortran/interface.c:1524
+#: fortran/interface.c:1522
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Actual argument to contiguous pointer dummy '%s' at %L must be simply "
 "contigous"
 msgstr ""
 
-#: fortran/interface.c:1534
+#: fortran/interface.c:1532
 #, gcc-internal-format, gfc-internal-format
 msgid "Type mismatch in argument '%s' at %L; passed %s to %s"
 msgstr ""
 
-#: fortran/interface.c:1548
+#: fortran/interface.c:1546
 #, gcc-internal-format, gfc-internal-format
 msgid "Actual argument to '%s' at %L must be polymorphic"
 msgstr ""
 
-#: fortran/interface.c:1556
+#: fortran/interface.c:1554
 #, gcc-internal-format, gfc-internal-format
 msgid "Actual argument to '%s' at %L must have the same declared type"
 msgstr ""
 
-#: fortran/interface.c:1571 fortran/interface.c:1601
+#: fortran/interface.c:1568
 #, gcc-internal-format, gfc-internal-format
 msgid "Actual argument to '%s' at %L must be a coarray"
 msgstr ""
 
-#: fortran/interface.c:1581
+#: fortran/interface.c:1576
 #, gcc-internal-format, gfc-internal-format
 msgid "Actual argument to '%s' at %L must be a coarray and not coindexed"
 msgstr ""
 
-#: fortran/interface.c:1589
+#: fortran/interface.c:1587
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Actual argument to '%s' at %L must be a coarray and thus shall not have an "
 "array designator"
 msgstr ""
 
-#: fortran/interface.c:1613
+#: fortran/interface.c:1603
 #, gcc-internal-format, gfc-internal-format
 msgid "Corank mismatch in argument '%s' at %L (%d and %d)"
 msgstr ""
 
-#: fortran/interface.c:1626
+#: fortran/interface.c:1617
 #, gcc-internal-format, gfc-internal-format
 msgid "Actual argument to '%s' at %L must be simply contiguous"
 msgstr ""
 
-#: fortran/interface.c:1642
+#: fortran/interface.c:1631
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"Actual argument to non-INTENT(INOUT) dummy '%s' at %L, which is LOCK_TYPE or "
+"has a LOCK_TYPE component"
+msgstr ""
+
+#: fortran/interface.c:1648
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Dummy argument '%s' has to be a pointer or assumed-shape array without "
@@ -36298,165 +36840,179 @@
 "both are ASYNCHRONOUS or VOLATILE"
 msgstr ""
 
-#: fortran/interface.c:1698
+#: fortran/interface.c:1661
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"Passing coarray at %L to allocatable, noncoarray, INTENT(OUT) dummy argument "
+"'%s'"
+msgstr ""
+
+#: fortran/interface.c:1668
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"Passing coarray at %L to allocatable, noncoarray dummy argument '%s', which "
+"is invalid if the allocation status is modified"
+msgstr ""
+
+#: fortran/interface.c:1722
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic scalar passed to array dummy argument '%s' at %L"
 msgstr ""
 
-#: fortran/interface.c:1707
+#: fortran/interface.c:1731
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Element of assumed-shaped or pointer array passed to array dummy argument "
 "'%s' at %L"
 msgstr ""
 
-#: fortran/interface.c:1719
+#: fortran/interface.c:1743
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Extension: Scalar non-default-kind, non-C_CHAR-kind CHARACTER actual "
 "argument with array dummy argument '%s' at %L"
 msgstr ""
 
-#: fortran/interface.c:1727
+#: fortran/interface.c:1751
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Fortran 2003: Scalar CHARACTER actual argument with array dummy argument "
 "'%s' at %L"
 msgstr ""
 
-#: fortran/interface.c:2026
+#: fortran/interface.c:2050
 #, gcc-internal-format, gfc-internal-format
 msgid "Keyword argument '%s' at %L is not in the procedure"
 msgstr ""
 
-#: fortran/interface.c:2034
+#: fortran/interface.c:2058
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Keyword argument '%s' at %L is already associated with another actual "
 "argument"
 msgstr ""
 
-#: fortran/interface.c:2044
+#: fortran/interface.c:2068
 #, gcc-internal-format, gfc-internal-format
 msgid "More actual than formal arguments in procedure call at %L"
 msgstr ""
 
-#: fortran/interface.c:2056 fortran/interface.c:2375
+#: fortran/interface.c:2080 fortran/interface.c:2399
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing alternate return spec in subroutine call at %L"
 msgstr ""
 
-#: fortran/interface.c:2064
+#: fortran/interface.c:2088
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected alternate return spec in subroutine call at %L"
 msgstr ""
 
-#: fortran/interface.c:2074
+#: fortran/interface.c:2098
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected NULL() intrinsic at %L to dummy '%s'"
 msgstr ""
 
-#: fortran/interface.c:2077
+#: fortran/interface.c:2101
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Null pointer at %L to non-pointer dummy '%s'"
 msgstr ""
 
-#: fortran/interface.c:2101
+#: fortran/interface.c:2125
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Character length mismatch (%ld/%ld) between actual argument and pointer or "
 "allocatable dummy argument '%s' at %L"
 msgstr ""
 
-#: fortran/interface.c:2108
+#: fortran/interface.c:2132
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Character length mismatch (%ld/%ld) between actual argument and assumed-"
 "shape dummy argument '%s' at %L"
 msgstr ""
 
-#: fortran/interface.c:2122
+#: fortran/interface.c:2146
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Actual argument argument at %L to allocatable or pointer dummy argument '%s' "
 "must have a deferred length type parameter if and only if the dummy has one"
 msgstr ""
 
-#: fortran/interface.c:2136
+#: fortran/interface.c:2160
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Character length of actual argument shorter than of dummy argument '%s' (%lu/"
 "%lu) at %L"
 msgstr ""
 
-#: fortran/interface.c:2141
+#: fortran/interface.c:2165
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Actual argument contains too few elements for dummy argument '%s' (%lu/%lu) "
 "at %L"
 msgstr ""
 
-#: fortran/interface.c:2158
+#: fortran/interface.c:2182
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected a procedure pointer for argument '%s' at %L"
 msgstr ""
 
-#: fortran/interface.c:2170
+#: fortran/interface.c:2194
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected a procedure for argument '%s' at %L"
 msgstr ""
 
-#: fortran/interface.c:2180
+#: fortran/interface.c:2204
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected a PURE procedure for argument '%s' at %L"
 msgstr ""
 
-#: fortran/interface.c:2194
+#: fortran/interface.c:2218
 #, gcc-internal-format, gfc-internal-format
 msgid "Actual argument for '%s' cannot be an assumed-size array at %L"
 msgstr ""
 
-#: fortran/interface.c:2203
+#: fortran/interface.c:2227
 #, gcc-internal-format, gfc-internal-format
 msgid "Actual argument for '%s' must be a pointer at %L"
 msgstr ""
 
-#: fortran/interface.c:2213
+#: fortran/interface.c:2237
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Non-pointer actual argument at %L to pointer dummy '%s'"
 msgstr ""
 
-#: fortran/interface.c:2223
+#: fortran/interface.c:2247
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed actual argument at %L to pointer dummy '%s'"
 msgstr ""
 
-#: fortran/interface.c:2236
+#: fortran/interface.c:2260
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Coindexed actual argument at %L to allocatable dummy '%s' requires INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.c:2250
+#: fortran/interface.c:2274
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Coindexed ASYNCHRONOUS or VOLATILE actual argument at at %L requires that "
 "dummy %s' has neither ASYNCHRONOUS nor VOLATILE"
 msgstr ""
 
-#: fortran/interface.c:2264
+#: fortran/interface.c:2288
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Coindexed actual argument at %L with allocatable ultimate component to dummy "
 "'%s' requires either VALUE or INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.c:2274
+#: fortran/interface.c:2298
 #, gcc-internal-format, gfc-internal-format
 msgid "Actual argument for '%s' must be ALLOCATABLE at %L"
 msgstr ""
 
-#: fortran/interface.c:2303
+#: fortran/interface.c:2327
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Array-section actual argument with vector subscripts at %L is incompatible "
@@ -36464,129 +37020,136 @@
 "dummy argument '%s'"
 msgstr ""
 
-#: fortran/interface.c:2321
+#: fortran/interface.c:2345
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Assumed-shape actual argument at %L is incompatible with the non-assumed-"
 "shape dummy argument '%s' due to VOLATILE attribute"
 msgstr ""
 
-#: fortran/interface.c:2333
+#: fortran/interface.c:2357
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Array-section actual argument at %L is incompatible with the non-assumed-"
 "shape dummy argument '%s' due to VOLATILE attribute"
 msgstr ""
 
-#: fortran/interface.c:2352
+#: fortran/interface.c:2376
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Pointer-array actual argument at %L requires an assumed-shape or pointer-"
 "array dummy argument '%s' due to VOLATILE attribute"
 msgstr ""
 
-#: fortran/interface.c:2382
+#: fortran/interface.c:2406
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing actual argument for argument '%s' at %L"
 msgstr ""
 
-#: fortran/interface.c:2568
+#: fortran/interface.c:2592
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Same actual argument associated with INTENT(%s) argument '%s' and INTENT(%s) "
 "argument '%s' at %L"
 msgstr ""
 
-#: fortran/interface.c:2624
+#: fortran/interface.c:2648
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Procedure argument at %L is INTENT(IN) while interface specifies INTENT(%s)"
 msgstr ""
 
-#: fortran/interface.c:2634
+#: fortran/interface.c:2658
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Procedure argument at %L is local to a PURE procedure and is passed to an "
 "INTENT(%s) argument"
 msgstr ""
 
-#: fortran/interface.c:2642
+#: fortran/interface.c:2666
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Procedure argument at %L is local to a PURE procedure and has the POINTER "
 "attribute"
 msgstr ""
 
-#: fortran/interface.c:2654
+#: fortran/interface.c:2678
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Coindexed actual argument at %L in PURE procedure is passed to an INTENT(%s) "
 "argument"
 msgstr ""
 
-#: fortran/interface.c:2662
+#: fortran/interface.c:2686
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Coindexed actual argument at %L in PURE procedure is passed to a POINTER "
 "dummy argument"
 msgstr ""
 
-#: fortran/interface.c:2673
+#: fortran/interface.c:2697
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Coindexed polymorphic actual argument at %L is passed polymorphic dummy "
 "argument '%s'"
 msgstr ""
 
-#: fortran/interface.c:2699
+#: fortran/interface.c:2723
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure '%s' called with an implicit interface at %L"
 msgstr ""
 
-#: fortran/interface.c:2703
+#: fortran/interface.c:2727
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure '%s' called at %L is not explicitly declared"
 msgstr ""
 
-#: fortran/interface.c:2713
+#: fortran/interface.c:2737
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "The pointer object '%s' at %L must have an explicit function interface or be "
 "declared as array"
 msgstr ""
 
-#: fortran/interface.c:2721
+#: fortran/interface.c:2745
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "The allocatable object '%s' at %L must have an explicit function interface "
 "or be declared as array"
 msgstr ""
 
-#: fortran/interface.c:2729
+#: fortran/interface.c:2753
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Allocatable function '%s' at %L must have an explicit function interface"
 msgstr ""
 
-#: fortran/interface.c:2739
+#: fortran/interface.c:2763
 #, gcc-internal-format, gfc-internal-format
 msgid "Keyword argument requires explicit interface for procedure '%s' at %L"
 msgstr ""
 
-#: fortran/interface.c:2771
+#: fortran/interface.c:2775
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"Actual argument of LOCK_TYPE or with LOCK_TYPE component at %L requires an "
+"explicit interface for procedure '%s'"
+msgstr ""
+
+#: fortran/interface.c:2808
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Procedure pointer component '%s' called with an implicit interface at %L"
 msgstr ""
 
-#: fortran/interface.c:2782
+#: fortran/interface.c:2819
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Keyword argument requires explicit interface for procedure pointer component "
 "'%s' at %L"
 msgstr ""
 
-#: fortran/interface.c:3274
+#: fortran/interface.c:3311
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity '%s' at %C is already present in the interface"
 msgstr ""
@@ -36599,100 +37162,100 @@
 "option or define -fall-intrinsics to allow this intrinsic."
 msgstr ""
 
-#: fortran/intrinsic.c:3500
+#: fortran/intrinsic.c:3518
 #, gcc-internal-format, gfc-internal-format
 msgid "Too many arguments in call to '%s' at %L"
 msgstr ""
 
-#: fortran/intrinsic.c:3515
+#: fortran/intrinsic.c:3533
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "The argument list functions %%VAL, %%LOC or %%REF are not allowed in this "
 "context at %L"
 msgstr ""
 
-#: fortran/intrinsic.c:3518
+#: fortran/intrinsic.c:3536
 #, gcc-internal-format, gfc-internal-format
 msgid "Can't find keyword named '%s' in call to '%s' at %L"
 msgstr ""
 
-#: fortran/intrinsic.c:3525
+#: fortran/intrinsic.c:3543
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument '%s' appears twice in call to '%s' at %L"
 msgstr ""
 
-#: fortran/intrinsic.c:3539
+#: fortran/intrinsic.c:3557
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing actual argument '%s' in call to '%s' at %L"
 msgstr ""
 
-#: fortran/intrinsic.c:3554
+#: fortran/intrinsic.c:3572
 #, gcc-internal-format, gfc-internal-format
 msgid "ALTERNATE RETURN not permitted at %L"
 msgstr ""
 
-#: fortran/intrinsic.c:3611
+#: fortran/intrinsic.c:3629
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of argument '%s' in call to '%s' at %L should be %s, not %s"
 msgstr ""
 
-#: fortran/intrinsic.c:3992
+#: fortran/intrinsic.c:4014
 #, gcc-internal-format, gfc-internal-format
 msgid "Intrinsic '%s' (is %s) is used at %L"
 msgstr ""
 
-#: fortran/intrinsic.c:4063
+#: fortran/intrinsic.c:4085
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: Function '%s' as initialization expression at %L"
 msgstr ""
 
-#: fortran/intrinsic.c:4139
+#: fortran/intrinsic.c:4161
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Fortran 2003: Elemental function as initialization expression with non-"
 "integer/non-character arguments at %L"
 msgstr ""
 
-#: fortran/intrinsic.c:4200
+#: fortran/intrinsic.c:4222
 #, gcc-internal-format, gfc-internal-format
 msgid "Subroutine call to intrinsic '%s' at %L is not PURE"
 msgstr ""
 
-#: fortran/intrinsic.c:4273
+#: fortran/intrinsic.c:4295
 #, gcc-internal-format, gfc-internal-format
 msgid "Extension: Conversion from %s to %s at %L"
 msgstr ""
 
-#: fortran/intrinsic.c:4308 fortran/intrinsic.c:4334
+#: fortran/intrinsic.c:4330 fortran/intrinsic.c:4356
 #, gcc-internal-format, gfc-internal-format
 msgid "Conversion from %s to %s at %L"
 msgstr ""
 
-#: fortran/intrinsic.c:4313 fortran/intrinsic.c:4325
+#: fortran/intrinsic.c:4335 fortran/intrinsic.c:4347
 #, gcc-internal-format, gfc-internal-format
 msgid "Possible change of value in conversion from %s to %s at %L"
 msgstr ""
 
-#: fortran/intrinsic.c:4387
+#: fortran/intrinsic.c:4409
 #, gcc-internal-format, gfc-internal-format
 msgid "Can't convert %s to %s at %L"
 msgstr ""
 
-#: fortran/intrinsic.c:4481
+#: fortran/intrinsic.c:4503
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' declared at %L may shadow the intrinsic of the same name.  In order to "
 "call the intrinsic, explicit INTRINSIC declarations may be required."
 msgstr ""
 
-#: fortran/intrinsic.c:4486
+#: fortran/intrinsic.c:4508
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' declared at %L is also the name of an intrinsic.  It can only be called "
 "via an explicit interface or if declared EXTERNAL."
 msgstr ""
 
-#: fortran/io.c:168 fortran/primary.c:781
+#: fortran/io.c:168 fortran/primary.c:816
 #, gcc-internal-format, gfc-internal-format
 msgid "Extension: backslash character at %C"
 msgstr ""
@@ -36813,353 +37376,358 @@
 "Constant expression in FORMAT tag at %L must be of type default CHARACTER"
 msgstr ""
 
-#: fortran/io.c:1399
+#: fortran/io.c:1401
 #, gcc-internal-format, gfc-internal-format
-msgid "FORMAT tag at %L must be of type CHARACTER or INTEGER"
+msgid "FORMAT tag at %L must be of type default-kind CHARACTER or of INTEGER"
 msgstr ""
 
-#: fortran/io.c:1405
+#: fortran/io.c:1407
 #, gcc-internal-format, gfc-internal-format
 msgid "Deleted feature: ASSIGNED variable in FORMAT tag at %L"
 msgstr ""
 
-#: fortran/io.c:1411
+#: fortran/io.c:1413
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable '%s' at %L has not been assigned a format label"
 msgstr ""
 
-#: fortran/io.c:1418
+#: fortran/io.c:1420
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar '%s' in FORMAT tag at %L is not an ASSIGNED variable"
 msgstr ""
 
-#: fortran/io.c:1430
+#: fortran/io.c:1432
 #, gcc-internal-format, gfc-internal-format
 msgid "Extension: Non-character in FORMAT tag at %L"
 msgstr ""
 
-#: fortran/io.c:1436
+#: fortran/io.c:1438
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-character assumed shape array element in FORMAT tag at %L"
 msgstr ""
 
-#: fortran/io.c:1443
+#: fortran/io.c:1445
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-character assumed size array element in FORMAT tag at %L"
 msgstr ""
 
-#: fortran/io.c:1450
+#: fortran/io.c:1452
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-character pointer array element in FORMAT tag at %L"
 msgstr ""
 
-#: fortran/io.c:1476
+#: fortran/io.c:1478
 #, gcc-internal-format, gfc-internal-format
 msgid "%s tag at %L must be of type %s"
 msgstr ""
 
-#: fortran/io.c:1483
+#: fortran/io.c:1485
+#, gcc-internal-format, gfc-internal-format
+msgid "%s tag at %L must be a character string of default kind"
+msgstr ""
+
+#: fortran/io.c:1492
 #, gcc-internal-format, gfc-internal-format
 msgid "%s tag at %L must be scalar"
 msgstr ""
 
-#: fortran/io.c:1489
+#: fortran/io.c:1498
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: IOMSG tag at %L"
 msgstr ""
 
-#: fortran/io.c:1497
+#: fortran/io.c:1506
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 95 requires default INTEGER in %s tag at %L"
 msgstr ""
 
-#: fortran/io.c:1505
+#: fortran/io.c:1514
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Nondefault LOGICAL in %s tag at %L"
 msgstr ""
 
-#: fortran/io.c:1513
+#: fortran/io.c:1522
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: NEWUNIT specifier at %L"
 msgstr ""
 
-#: fortran/io.c:1531
+#: fortran/io.c:1540
 #, gcc-internal-format, gfc-internal-format
 msgid "Extension: CONVERT tag at %L"
 msgstr ""
 
-#: fortran/io.c:1717 fortran/io.c:1725
+#: fortran/io.c:1726 fortran/io.c:1734
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: %s specifier in %s statement at %C has value '%s'"
 msgstr ""
 
-#: fortran/io.c:1744 fortran/io.c:1752
+#: fortran/io.c:1753 fortran/io.c:1761
 #, gcc-internal-format, gfc-internal-format
 msgid "Extension: %s specifier in %s statement at %C has value '%s'"
 msgstr ""
 
-#: fortran/io.c:1765 fortran/io.c:1773
+#: fortran/io.c:1774 fortran/io.c:1782
 #, gcc-internal-format, gfc-internal-format
 msgid "%s specifier in %s statement at %C has invalid value '%s'"
 msgstr ""
 
-#: fortran/io.c:1826
+#: fortran/io.c:1835
 #, gcc-internal-format, gfc-internal-format
 msgid "OPEN statement not allowed in PURE procedure at %C"
 msgstr ""
 
-#: fortran/io.c:1840
+#: fortran/io.c:1849
 #, gcc-internal-format, gfc-internal-format
 msgid "UNIT specifier not allowed with NEWUNIT at %C"
 msgstr ""
 
-#: fortran/io.c:1848
+#: fortran/io.c:1857
 #, gcc-internal-format, gfc-internal-format
 msgid "NEWUNIT specifier must have FILE= or STATUS='scratch' at %C"
 msgstr ""
 
-#: fortran/io.c:1855
+#: fortran/io.c:1864
 #, gcc-internal-format, gfc-internal-format
 msgid "OPEN statement at %C must have UNIT or NEWUNIT specified"
 msgstr ""
 
-#: fortran/io.c:1887
+#: fortran/io.c:1896
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: ASYNCHRONOUS= at %C not allowed in Fortran 95"
 msgstr ""
 
-#: fortran/io.c:1905 fortran/io.c:3326
+#: fortran/io.c:1914 fortran/io.c:3335
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: BLANK= at %C not allowed in Fortran 95"
 msgstr ""
 
-#: fortran/io.c:1923 fortran/io.c:3305
+#: fortran/io.c:1932 fortran/io.c:3314
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: DECIMAL= at %C not allowed in Fortran 95"
 msgstr ""
 
-#: fortran/io.c:1941 fortran/io.c:3413
+#: fortran/io.c:1950 fortran/io.c:3422
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: DELIM= at %C not allowed in Fortran 95"
 msgstr ""
 
-#: fortran/io.c:1959
+#: fortran/io.c:1968
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: ENCODING= at %C not allowed in Fortran 95"
 msgstr ""
 
-#: fortran/io.c:2010
+#: fortran/io.c:2019
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran F2003: ROUND= at %C not allowed in Fortran 95"
 msgstr ""
 
-#: fortran/io.c:2030
+#: fortran/io.c:2039
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: SIGN= at %C not allowed in Fortran 95"
 msgstr ""
 
-#: fortran/io.c:2243
+#: fortran/io.c:2252
 #, gcc-internal-format, gfc-internal-format
 msgid "CLOSE statement not allowed in PURE procedure at %C"
 msgstr ""
 
-#: fortran/io.c:2293
+#: fortran/io.c:2302
 #, gcc-internal-format, gfc-internal-format
 msgid "UNIT number in CLOSE statement at %L must be non-negative"
 msgstr ""
 
-#: fortran/io.c:2391 fortran/match.c:2190
+#: fortran/io.c:2400 fortran/match.c:2192
 #, gcc-internal-format, gfc-internal-format
 msgid "%s statement not allowed in PURE procedure at %C"
 msgstr ""
 
-#: fortran/io.c:2426 fortran/io.c:2844
+#: fortran/io.c:2435 fortran/io.c:2853
 #, gcc-internal-format, gfc-internal-format
 msgid "UNIT number in statement at %L must be non-negative"
 msgstr ""
 
-#: fortran/io.c:2458
+#: fortran/io.c:2467
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: FLUSH statement at %C"
 msgstr ""
 
-#: fortran/io.c:2514
+#: fortran/io.c:2523
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate UNIT specification at %C"
 msgstr ""
 
-#: fortran/io.c:2574
+#: fortran/io.c:2583
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate format specification at %C"
 msgstr ""
 
-#: fortran/io.c:2591
+#: fortran/io.c:2600
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol '%s' in namelist '%s' is INTENT(IN) at %C"
 msgstr ""
 
-#: fortran/io.c:2627
+#: fortran/io.c:2636
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate NML specification at %C"
 msgstr ""
 
-#: fortran/io.c:2636
+#: fortran/io.c:2645
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol '%s' at %C must be a NAMELIST group name"
 msgstr ""
 
-#: fortran/io.c:2701
+#: fortran/io.c:2710
 #, gcc-internal-format, gfc-internal-format
 msgid "END tag at %C not allowed in output statement"
 msgstr ""
 
-#: fortran/io.c:2778
+#: fortran/io.c:2787
 #, gcc-internal-format, gfc-internal-format
 msgid "UNIT not specified at %L"
 msgstr ""
 
-#: fortran/io.c:2790
+#: fortran/io.c:2799
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "UNIT specification at %L must be an INTEGER expression or a CHARACTER "
 "variable"
 msgstr ""
 
-#: fortran/io.c:2812
+#: fortran/io.c:2821
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid form of WRITE statement at %L, UNIT required"
 msgstr ""
 
-#: fortran/io.c:2823
+#: fortran/io.c:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "Internal unit with vector subscript at %L"
 msgstr ""
 
-#: fortran/io.c:2837
+#: fortran/io.c:2846
 #, gcc-internal-format, gfc-internal-format
 msgid "External IO UNIT cannot be an array at %L"
 msgstr ""
 
-#: fortran/io.c:2865
+#: fortran/io.c:2874
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "NAMELIST '%s' in READ statement at %L contains the symbol '%s' which may not "
 "appear in a variable definition context"
 msgstr ""
 
-#: fortran/io.c:2875
+#: fortran/io.c:2884
 #, gcc-internal-format, gfc-internal-format
 msgid "Extension: Comma before i/o item list at %L"
 msgstr ""
 
-#: fortran/io.c:2885
+#: fortran/io.c:2894
 #, gcc-internal-format, gfc-internal-format
 msgid "ERR tag label %d at %L not defined"
 msgstr ""
 
-#: fortran/io.c:2897
+#: fortran/io.c:2906
 #, gcc-internal-format, gfc-internal-format
 msgid "END tag label %d at %L not defined"
 msgstr ""
 
-#: fortran/io.c:2909
+#: fortran/io.c:2918
 #, gcc-internal-format, gfc-internal-format
 msgid "EOR tag label %d at %L not defined"
 msgstr ""
 
-#: fortran/io.c:2919
+#: fortran/io.c:2928
 #, gcc-internal-format, gfc-internal-format
 msgid "FORMAT label %d at %L not defined"
 msgstr ""
 
-#: fortran/io.c:3041
+#: fortran/io.c:3050
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in I/O iterator at %C"
 msgstr ""
 
-#: fortran/io.c:3072
+#: fortran/io.c:3081
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected variable in READ statement at %C"
 msgstr ""
 
-#: fortran/io.c:3078
+#: fortran/io.c:3087
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected expression in %s statement at %C"
 msgstr ""
 
 #. A general purpose syntax error.
-#: fortran/io.c:3136 fortran/io.c:3735 fortran/gfortran.h:2437
+#: fortran/io.c:3145 fortran/io.c:3744 fortran/gfortran.h:2442
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr ""
 
-#: fortran/io.c:3221
+#: fortran/io.c:3230
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: Internal file at %L with namelist"
 msgstr ""
 
-#: fortran/io.c:3279
+#: fortran/io.c:3288
 #, gcc-internal-format, gfc-internal-format
 msgid "ASYNCHRONOUS= specifier at %L must be an initialization expression"
 msgstr ""
 
-#: fortran/io.c:3347
+#: fortran/io.c:3356
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: PAD= at %C not allowed in Fortran 95"
 msgstr ""
 
-#: fortran/io.c:3368
+#: fortran/io.c:3377
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: ROUND= at %C not allowed in Fortran 95"
 msgstr ""
 
-#: fortran/io.c:3562
+#: fortran/io.c:3571
 #, gcc-internal-format, gfc-internal-format
 msgid "PRINT namelist at %C is an extension"
 msgstr ""
 
-#: fortran/io.c:3705
+#: fortran/io.c:3714
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected comma in I/O list at %C"
 msgstr ""
 
-#: fortran/io.c:3769
+#: fortran/io.c:3778
 #, gcc-internal-format, gfc-internal-format
 msgid "PRINT statement at %C not allowed within PURE procedure"
 msgstr ""
 
-#: fortran/io.c:3928 fortran/io.c:3982
+#: fortran/io.c:3937 fortran/io.c:3991
 #, gcc-internal-format, gfc-internal-format
 msgid "INQUIRE statement not allowed in PURE procedure at %C"
 msgstr ""
 
-#: fortran/io.c:3958
+#: fortran/io.c:3967
 #, gcc-internal-format, gfc-internal-format
 msgid "IOLENGTH tag invalid in INQUIRE statement at %C"
 msgstr ""
 
-#: fortran/io.c:3968 fortran/trans-io.c:1235
+#: fortran/io.c:3977 fortran/trans-io.c:1229
 #, gcc-internal-format, gfc-internal-format
 msgid "INQUIRE statement at %L cannot contain both FILE and UNIT specifiers"
 msgstr ""
 
-#: fortran/io.c:3975
+#: fortran/io.c:3984
 #, gcc-internal-format, gfc-internal-format
 msgid "INQUIRE statement at %L requires either FILE or UNIT specifier"
 msgstr ""
 
-#: fortran/io.c:3991
+#: fortran/io.c:4000
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "INQUIRE statement at %L requires a PENDING= specifier with the ID= specifier"
 msgstr ""
 
-#: fortran/io.c:4161
+#: fortran/io.c:4171
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: WAIT at %C not allowed in Fortran 95"
 msgstr ""
 
-#: fortran/io.c:4167
+#: fortran/io.c:4177
 #, gcc-internal-format, gfc-internal-format
 msgid "WAIT statement not allowed in PURE procedure at %C"
 msgstr ""
@@ -37179,7 +37747,7 @@
 msgid "Integer too large at %C"
 msgstr ""
 
-#: fortran/match.c:459 fortran/parse.c:641
+#: fortran/match.c:459 fortran/parse.c:646
 #, gcc-internal-format, gfc-internal-format
 msgid "Too many digits in statement label at %C"
 msgstr ""
@@ -37270,375 +37838,397 @@
 msgid "Block label is not appropriate for IF statement at %C"
 msgstr ""
 
-#: fortran/match.c:1585
+#: fortran/match.c:1587
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot assign to a named constant at %C"
 msgstr ""
 
-#: fortran/match.c:1595
+#: fortran/match.c:1597
 #, gcc-internal-format, gfc-internal-format
 msgid "Unclassifiable statement in IF-clause at %C"
 msgstr ""
 
-#: fortran/match.c:1602
+#: fortran/match.c:1604
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in IF-clause at %C"
 msgstr ""
 
-#: fortran/match.c:1646
+#: fortran/match.c:1648
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected junk after ELSE statement at %C"
 msgstr ""
 
-#: fortran/match.c:1652 fortran/match.c:1687
+#: fortran/match.c:1654 fortran/match.c:1689
 #, gcc-internal-format, gfc-internal-format
 msgid "Label '%s' at %C doesn't match IF label '%s'"
 msgstr ""
 
-#: fortran/match.c:1681
+#: fortran/match.c:1683
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected junk after ELSE IF statement at %C"
 msgstr ""
 
-#: fortran/match.c:1745
+#: fortran/match.c:1747
 #, gcc-internal-format, gfc-internal-format
 msgid "Image control statement CRITICAL at %C in PURE procedure"
 msgstr ""
 
-#: fortran/match.c:1752
+#: fortran/match.c:1754
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: CRITICAL statement at %C"
 msgstr ""
 
-#: fortran/match.c:1764
+#: fortran/match.c:1766
 #, gcc-internal-format, gfc-internal-format
 msgid "Nested CRITICAL block at %C"
 msgstr ""
 
-#: fortran/match.c:1816
+#: fortran/match.c:1818
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected association list at %C"
 msgstr ""
 
-#: fortran/match.c:1829
+#: fortran/match.c:1831
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected association at %C"
 msgstr ""
 
-#: fortran/match.c:1838
+#: fortran/match.c:1840
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate name '%s' in association at %C"
 msgstr ""
 
-#: fortran/match.c:1846
+#: fortran/match.c:1848
 #, gcc-internal-format, gfc-internal-format
 msgid "Association target at %C must not be coindexed"
 msgstr ""
 
-#: fortran/match.c:1864
+#: fortran/match.c:1866
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected ')' or ',' at %C"
 msgstr ""
 
-#: fortran/match.c:1882
+#: fortran/match.c:1884
 #, gcc-internal-format, gfc-internal-format
 msgid "Junk after ASSOCIATE statement at %C"
 msgstr ""
 
-#: fortran/match.c:2029
+#: fortran/match.c:2031
 #, gcc-internal-format, gfc-internal-format
 msgid "Name '%s' in %s statement at %C is unknown"
 msgstr ""
 
-#: fortran/match.c:2037
+#: fortran/match.c:2039
 #, gcc-internal-format, gfc-internal-format
 msgid "Name '%s' in %s statement at %C is not a construct name"
 msgstr ""
 
-#: fortran/match.c:2049
+#: fortran/match.c:2051
 #, gcc-internal-format, gfc-internal-format
 msgid "%s statement at %C leaves CRITICAL construct"
 msgstr ""
 
-#: fortran/match.c:2059
+#: fortran/match.c:2061
 #, gcc-internal-format, gfc-internal-format
 msgid "%s statement at %C is not within a construct"
 msgstr ""
 
-#: fortran/match.c:2062
+#: fortran/match.c:2064
 #, gcc-internal-format, gfc-internal-format
 msgid "%s statement at %C is not within construct '%s'"
 msgstr ""
 
-#: fortran/match.c:2086
+#: fortran/match.c:2088
 #, gcc-internal-format, gfc-internal-format
 msgid "CYCLE statement at %C is not applicable to non-loop construct '%s'"
 msgstr ""
 
-#: fortran/match.c:2091
+#: fortran/match.c:2093
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: EXIT statement with no do-construct-name at %C"
 msgstr ""
 
-#: fortran/match.c:2097
+#: fortran/match.c:2099
 #, gcc-internal-format, gfc-internal-format
 msgid "%s statement at %C is not applicable to construct '%s'"
 msgstr ""
 
-#: fortran/match.c:2104
+#: fortran/match.c:2106
 #, gcc-internal-format, gfc-internal-format
 msgid "%s statement at %C leaving OpenMP structured block"
 msgstr ""
 
-#: fortran/match.c:2128
+#: fortran/match.c:2130
 #, gcc-internal-format, gfc-internal-format
 msgid "EXIT statement at %C terminating !$OMP DO loop"
 msgstr ""
 
-#: fortran/match.c:2133
+#: fortran/match.c:2135
 #, gcc-internal-format, gfc-internal-format
 msgid "CYCLE statement at %C to non-innermost collapsed !$OMP DO loop"
 msgstr ""
 
-#: fortran/match.c:2200
+#: fortran/match.c:2202
 #, gcc-internal-format, gfc-internal-format
 msgid "Image control statement STOP at %C in CRITICAL block"
 msgstr ""
 
-#: fortran/match.c:2208
+#: fortran/match.c:2210
 #, gcc-internal-format, gfc-internal-format
 msgid "STOP code at %L must be either INTEGER or CHARACTER type"
 msgstr ""
 
-#: fortran/match.c:2215
+#: fortran/match.c:2217
 #, gcc-internal-format, gfc-internal-format
 msgid "STOP code at %L must be scalar"
 msgstr ""
 
-#: fortran/match.c:2223
+#: fortran/match.c:2225
 #, gcc-internal-format, gfc-internal-format
 msgid "STOP code at %L must be default character KIND=%d"
 msgstr ""
 
-#: fortran/match.c:2231
+#: fortran/match.c:2233
 #, gcc-internal-format, gfc-internal-format
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr ""
 
-#: fortran/match.c:2277
+#: fortran/match.c:2279
 #, gcc-internal-format, gfc-internal-format
 msgid "Deleted feature: PAUSE statement at %C"
 msgstr ""
 
-#: fortran/match.c:2300
+#: fortran/match.c:2302
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: ERROR STOP statement at %C"
 msgstr ""
 
-#: fortran/match.c:2326
+#: fortran/match.c:2328 fortran/match.c:2512
 #, gcc-internal-format, gfc-internal-format
 msgid "Image control statement SYNC at %C in PURE procedure"
 msgstr ""
 
-#: fortran/match.c:2333
-#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: SYNC statement at %C"
-msgstr ""
-
-#: fortran/match.c:2345
+#: fortran/match.c:2343 fortran/match.c:2531
 #, gcc-internal-format, gfc-internal-format
 msgid "Image control statement SYNC at %C in CRITICAL block"
 msgstr ""
 
-#: fortran/match.c:2391 fortran/match.c:3008 fortran/match.c:3312
+#: fortran/match.c:2372 fortran/match.c:2577 fortran/match.c:3198
+#: fortran/match.c:3509
 #, gcc-internal-format, gfc-internal-format
 msgid "Redundant STAT tag found at %L "
 msgstr ""
 
-#: fortran/match.c:2408 fortran/match.c:3035 fortran/match.c:3338
+#: fortran/match.c:2393 fortran/match.c:2597 fortran/match.c:3225
+#: fortran/match.c:3535
 #, gcc-internal-format, gfc-internal-format
 msgid "Redundant ERRMSG tag found at %L "
 msgstr ""
 
-#: fortran/match.c:2521
+#: fortran/match.c:2414
+#, gcc-internal-format, gfc-internal-format
+msgid "Redundant ACQUIRED_LOCK tag found at %L "
+msgstr ""
+
+#: fortran/match.c:2475
+#, gcc-internal-format, gfc-internal-format
+msgid "Fortran 2008: LOCK statement at %C"
+msgstr ""
+
+#: fortran/match.c:2486
+#, gcc-internal-format, gfc-internal-format
+msgid "Fortran 2008: UNLOCK statement at %C"
+msgstr ""
+
+#: fortran/match.c:2519
+#, gcc-internal-format, gfc-internal-format
+msgid "Fortran 2008: SYNC statement at %C"
+msgstr ""
+
+#: fortran/match.c:2711
 #, gcc-internal-format, gfc-internal-format
 msgid "Deleted feature: ASSIGN statement at %C"
 msgstr ""
 
-#: fortran/match.c:2567
+#: fortran/match.c:2757
 #, gcc-internal-format, gfc-internal-format
 msgid "Deleted feature: Assigned GOTO statement at %C"
 msgstr ""
 
-#: fortran/match.c:2614 fortran/match.c:2667
+#: fortran/match.c:2804 fortran/match.c:2857
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement label list in GOTO at %C cannot be empty"
 msgstr ""
 
-#: fortran/match.c:2677
+#: fortran/match.c:2867
 #, gcc-internal-format, gfc-internal-format
 msgid "Obsolescent feature: Computed GOTO at %C"
 msgstr ""
 
-#: fortran/match.c:2772
+#: fortran/match.c:2962
 #, gcc-internal-format, gfc-internal-format
 msgid "Derived type '%s' at %L may not be ABSTRACT"
 msgstr ""
 
-#: fortran/match.c:2835
+#: fortran/match.c:3025
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid type-spec at %C"
 msgstr ""
 
-#: fortran/match.c:2879
+#: fortran/match.c:3069
 #, gcc-internal-format, gfc-internal-format
 msgid "Error in type-spec at %L"
 msgstr ""
 
-#: fortran/match.c:2889
+#: fortran/match.c:3079
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: typespec in ALLOCATE at %L"
 msgstr ""
 
-#: fortran/match.c:2928
+#: fortran/match.c:3118
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad allocate-object at %C for a PURE procedure"
 msgstr ""
 
-#: fortran/match.c:2949
+#: fortran/match.c:3139
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with typespec"
 msgstr ""
 
-#: fortran/match.c:2957
+#: fortran/match.c:3147
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Kind type parameter for entity at %L differs from the kind type parameter of "
 "the typespec"
 msgstr ""
 
-#: fortran/match.c:2984
+#: fortran/match.c:3174
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Allocate-object at %L is not a nonprocedure pointer or an allocatable "
 "variable"
 msgstr ""
 
-#: fortran/match.c:2991
+#: fortran/match.c:3181
 #, gcc-internal-format, gfc-internal-format
 msgid "Shape specification for allocatable scalar at %C"
 msgstr ""
 
-#: fortran/match.c:3028
+#: fortran/match.c:3218
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: ERRMSG tag at %L"
 msgstr ""
 
-#: fortran/match.c:3052
+#: fortran/match.c:3242
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: SOURCE tag at %L"
 msgstr ""
 
-#: fortran/match.c:3059
+#: fortran/match.c:3249
 #, gcc-internal-format, gfc-internal-format
 msgid "Redundant SOURCE tag found at %L "
 msgstr ""
 
-#: fortran/match.c:3066
+#: fortran/match.c:3256
 #, gcc-internal-format, gfc-internal-format
 msgid "SOURCE tag at %L conflicts with the typespec at %L"
 msgstr ""
 
-#: fortran/match.c:3073
+#: fortran/match.c:3263
 #, gcc-internal-format, gfc-internal-format
 msgid "SOURCE tag at %L requires only a single entity in the allocation-list"
 msgstr ""
 
-#: fortran/match.c:3091
+#: fortran/match.c:3281
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: MOLD tag at %L"
 msgstr ""
 
-#: fortran/match.c:3098
+#: fortran/match.c:3288
 #, gcc-internal-format, gfc-internal-format
 msgid "Redundant MOLD tag found at %L "
 msgstr ""
 
-#: fortran/match.c:3105
+#: fortran/match.c:3295
 #, gcc-internal-format, gfc-internal-format
 msgid "MOLD tag at %L conflicts with the typespec at %L"
 msgstr ""
 
-#: fortran/match.c:3131
+#: fortran/match.c:3321
 #, gcc-internal-format, gfc-internal-format
 msgid "MOLD tag at %L conflicts with SOURCE tag at %L"
 msgstr ""
 
-#: fortran/match.c:3139
+#: fortran/match.c:3329
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Allocate-object at %L with a deferred type parameter requires either a type-"
 "spec or SOURCE tag or a MOLD tag"
 msgstr ""
 
-#: fortran/match.c:3276
+#: fortran/match.c:3390
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer object at %C shall not be conindexed"
+msgstr ""
+
+#: fortran/match.c:3473
 #, gcc-internal-format, gfc-internal-format
 msgid "Illegal allocate-object at %C for a PURE procedure"
 msgstr ""
 
-#: fortran/match.c:3295
+#: fortran/match.c:3492
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Allocate-object at %C is not a nonprocedure pointer or an allocatable "
 "variable"
 msgstr ""
 
-#: fortran/match.c:3332
+#: fortran/match.c:3529
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: ERRMSG at %L"
 msgstr ""
 
-#: fortran/match.c:3390
+#: fortran/match.c:3587
 #, gcc-internal-format, gfc-internal-format
 msgid "Image control statement RETURN at %C in CRITICAL block"
 msgstr ""
 
-#: fortran/match.c:3399
+#: fortran/match.c:3596
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %C is only allowed within a SUBROUTINE"
 msgstr ""
 
-#: fortran/match.c:3404
+#: fortran/match.c:3601
 #, gcc-internal-format, gfc-internal-format
 msgid "Obsolescent feature: Alternate RETURN at %C"
 msgstr ""
 
-#: fortran/match.c:3434
+#: fortran/match.c:3631
 #, gcc-internal-format, gfc-internal-format
 msgid "Extension: RETURN statement in main program at %C"
 msgstr ""
 
-#: fortran/match.c:3462
+#: fortran/match.c:3659
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected component reference at %C"
 msgstr ""
 
-#: fortran/match.c:3468
+#: fortran/match.c:3665
 #, gcc-internal-format, gfc-internal-format
 msgid "Junk after CALL at %C"
 msgstr ""
 
-#: fortran/match.c:3478
+#: fortran/match.c:3675
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected type-bound procedure or procedure pointer component at %C"
 msgstr ""
 
-#: fortran/match.c:3698
+#: fortran/match.c:3895
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in common block name at %C"
 msgstr ""
 
-#: fortran/match.c:3734
+#: fortran/match.c:3931
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol '%s' at %C is already an external symbol that is not COMMON"
 msgstr ""
@@ -37646,152 +38236,152 @@
 #. If we find an error, just print it and continue,
 #. cause it's just semantic, and we can see if there
 #. are more errors.
-#: fortran/match.c:3793
+#: fortran/match.c:3990
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Variable '%s' at %L in common block '%s' at %C must be declared with a C "
 "interoperable kind since common block '%s' is bind(c)"
 msgstr ""
 
-#: fortran/match.c:3802
+#: fortran/match.c:3999
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Variable '%s' in common block '%s' at %C can not be bind(c) since it is not "
 "global"
 msgstr ""
 
-#: fortran/match.c:3809
+#: fortran/match.c:4006
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol '%s' at %C is already in a COMMON block"
 msgstr ""
 
-#: fortran/match.c:3817
+#: fortran/match.c:4014
 #, gcc-internal-format, gfc-internal-format
 msgid "Initialized symbol '%s' at %C can only be COMMON in BLOCK DATA"
 msgstr ""
 
-#: fortran/match.c:3844
+#: fortran/match.c:4041
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification for symbol '%s' in COMMON at %C must be explicit"
 msgstr ""
 
-#: fortran/match.c:3854
+#: fortran/match.c:4051
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol '%s' in COMMON at %C cannot be a POINTER array"
 msgstr ""
 
-#: fortran/match.c:3886
+#: fortran/match.c:4083
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Symbol '%s', in COMMON block '%s' at %C is being indirectly equivalenced to "
 "another COMMON block '%s'"
 msgstr ""
 
-#: fortran/match.c:3994
+#: fortran/match.c:4191
 #, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name '%s' at %C already has a basic type of %s"
 msgstr ""
 
-#: fortran/match.c:4002
+#: fortran/match.c:4199
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Namelist group name '%s' at %C already is USE associated and cannot be "
 "respecified."
 msgstr ""
 
-#: fortran/match.c:4029
+#: fortran/match.c:4226
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array '%s' in namelist '%s' at %C is not allowed"
 msgstr ""
 
-#: fortran/match.c:4163
+#: fortran/match.c:4360
 #, gcc-internal-format, gfc-internal-format
 msgid "Derived type component %C is not a permitted EQUIVALENCE member"
 msgstr ""
 
-#: fortran/match.c:4171
+#: fortran/match.c:4368
 #, gcc-internal-format, gfc-internal-format
 msgid "Array reference in EQUIVALENCE at %C cannot be an array section"
 msgstr ""
 
-#: fortran/match.c:4199
+#: fortran/match.c:4396
 #, gcc-internal-format, gfc-internal-format
 msgid "EQUIVALENCE at %C requires two or more objects"
 msgstr ""
 
-#: fortran/match.c:4213
+#: fortran/match.c:4410
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Attempt to indirectly overlap COMMON blocks %s and %s by EQUIVALENCE at %C"
 msgstr ""
 
-#: fortran/match.c:4226
+#: fortran/match.c:4423
 #, gcc-internal-format, gfc-internal-format
 msgid "Expecting a comma in EQUIVALENCE at %C"
 msgstr ""
 
-#: fortran/match.c:4342
+#: fortran/match.c:4539
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement function at %L is recursive"
 msgstr ""
 
-#: fortran/match.c:4348
+#: fortran/match.c:4545
 #, gcc-internal-format, gfc-internal-format
 msgid "Obsolescent feature: Statement function at %C"
 msgstr ""
 
-#: fortran/match.c:4434
+#: fortran/match.c:4631
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected initialization expression in CASE at %C"
 msgstr ""
 
-#: fortran/match.c:4466
+#: fortran/match.c:4663
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected block name '%s' of SELECT construct at %C"
 msgstr ""
 
-#: fortran/match.c:4604
+#: fortran/match.c:4805
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr ""
 
-#: fortran/match.c:4637
+#: fortran/match.c:4838
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr ""
 
-#: fortran/match.c:4689
+#: fortran/match.c:4890
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CASE specification at %C"
 msgstr ""
 
-#: fortran/match.c:4707
+#: fortran/match.c:4908
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected TYPE IS statement at %C"
 msgstr ""
 
-#: fortran/match.c:4740
+#: fortran/match.c:4941
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr ""
 
-#: fortran/match.c:4813
+#: fortran/match.c:5014
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr ""
 
-#: fortran/match.c:4935
+#: fortran/match.c:5136
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr ""
 
-#: fortran/match.c:4973
+#: fortran/match.c:5174
 #, gcc-internal-format, gfc-internal-format
 msgid "Label '%s' at %C doesn't match WHERE label '%s'"
 msgstr ""
 
-#: fortran/match.c:5073
+#: fortran/match.c:5274
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in FORALL iterator at %C"
 msgstr ""
@@ -37824,11 +38414,6 @@
 "%C"
 msgstr ""
 
-#: fortran/misc.c:39
-#, gcc-internal-format
-msgid "Allocation would exceed memory limit -- malloc() failed"
-msgstr ""
-
 #: fortran/module.c:522
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: module nature in USE statement at %C"
@@ -37886,130 +38471,131 @@
 msgid "Error writing modules file: %s"
 msgstr ""
 
-#: fortran/module.c:3236
+#: fortran/module.c:3246
 #, gcc-internal-format, gfc-internal-format
 msgid "Namelist %s cannot be renamed by USE association to %s"
 msgstr ""
 
-#: fortran/module.c:4567
+#: fortran/module.c:4577
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol '%s' referenced at %L not found in module '%s'"
 msgstr ""
 
-#: fortran/module.c:4574
+#: fortran/module.c:4584
 #, gcc-internal-format, gfc-internal-format
 msgid "User operator '%s' referenced at %L not found in module '%s'"
 msgstr ""
 
-#: fortran/module.c:4579
+#: fortran/module.c:4589
 #, gcc-internal-format, gfc-internal-format
 msgid "Intrinsic operator '%s' referenced at %L not found in module '%s'"
 msgstr ""
 
-#: fortran/module.c:5200
+#: fortran/module.c:5213
 #, gcc-internal-format, gfc-internal-format
 msgid "Can't open module file '%s' for writing at %C: %s"
 msgstr ""
 
-#: fortran/module.c:5238
+#: fortran/module.c:5251
 #, gcc-internal-format, gfc-internal-format
 msgid "Error writing module file '%s' for writing: %s"
 msgstr ""
 
-#: fortran/module.c:5247
+#: fortran/module.c:5260
 #, gcc-internal-format, gfc-internal-format
 msgid "Can't delete module file '%s': %s"
 msgstr ""
 
-#: fortran/module.c:5250
+#: fortran/module.c:5263
 #, gcc-internal-format, gfc-internal-format
 msgid "Can't rename module file '%s' to '%s': %s"
 msgstr ""
 
-#: fortran/module.c:5256
+#: fortran/module.c:5269
 #, gcc-internal-format, gfc-internal-format
 msgid "Can't delete temporary module file '%s': %s"
 msgstr ""
 
-#: fortran/module.c:5275 fortran/module.c:5406 fortran/module.c:5439
+#: fortran/module.c:5288 fortran/module.c:5419 fortran/module.c:5452
+#: fortran/module.c:5493
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol '%s' already declared"
 msgstr ""
 
-#: fortran/module.c:5385
+#: fortran/module.c:5398
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Symbol '%s' referenced at %L not found in intrinsic module ISO_C_BINDING"
 msgstr ""
 
-#: fortran/module.c:5510
+#: fortran/module.c:5557
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Use of intrinsic module '%s' at %C conflicts with non-intrinsic module name "
 "used previously"
 msgstr ""
 
-#: fortran/module.c:5525
+#: fortran/module.c:5572
 #, gcc-internal-format, gfc-internal-format
 msgid "The symbol '%s', referrenced at %C, is not in the selected standard"
 msgstr ""
 
-#: fortran/module.c:5532 fortran/module.c:5592
+#: fortran/module.c:5579 fortran/module.c:5649
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module "
 "ISO_FORTRAN_ENV at %C is incompatible with option %s"
 msgstr ""
 
-#: fortran/module.c:5642
+#: fortran/module.c:5707
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Symbol '%s' referenced at %L not found in intrinsic module ISO_FORTRAN_ENV"
 msgstr ""
 
-#: fortran/module.c:5675
+#: fortran/module.c:5740
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: ISO_FORTRAN_ENV intrinsic module at %C"
 msgstr ""
 
-#: fortran/module.c:5683
+#: fortran/module.c:5748
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: ISO_C_BINDING module at %C"
 msgstr ""
 
-#: fortran/module.c:5693
+#: fortran/module.c:5758
 #, gcc-internal-format, gfc-internal-format
 msgid "Can't find an intrinsic module named '%s' at %C"
 msgstr ""
 
-#: fortran/module.c:5698
+#: fortran/module.c:5763
 #, gcc-internal-format, gfc-internal-format
 msgid "Can't open module file '%s' for reading at %C: %s"
 msgstr ""
 
-#: fortran/module.c:5706
+#: fortran/module.c:5771
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Use of non-intrinsic module '%s' at %C conflicts with intrinsic module name "
 "used previously"
 msgstr ""
 
-#: fortran/module.c:5726
+#: fortran/module.c:5791
 #, gcc-internal-format, gfc-internal-format
 msgid "File '%s' opened at %C is not a GFORTRAN module file"
 msgstr ""
 
-#: fortran/module.c:5733
+#: fortran/module.c:5798
 #, gcc-internal-format, gfc-internal-format
 msgid "Parse error when checking module version for file '%s' opened at %C"
 msgstr ""
 
-#: fortran/module.c:5738
+#: fortran/module.c:5803
 #, gcc-internal-format, gfc-internal-format
 msgid "Wrong module version '%s' (expected '%s') for file '%s' opened at %C"
 msgstr ""
 
-#: fortran/module.c:5753
+#: fortran/module.c:5818
 #, gcc-internal-format
 msgid "Can't USE the same module we're building!"
 msgstr ""
@@ -38089,7 +38675,7 @@
 msgid "Unexpected junk after NOWAIT clause at %C"
 msgstr ""
 
-#: fortran/openmp.c:783 fortran/resolve.c:8673 fortran/resolve.c:9133
+#: fortran/openmp.c:783 fortran/resolve.c:8782 fortran/resolve.c:9249
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr ""
@@ -38306,453 +38892,453 @@
 msgid "not enough DO loops for collapsed !$OMP DO at %L"
 msgstr ""
 
-#: fortran/options.c:255
+#: fortran/options.c:258
 #, gcc-internal-format
 msgid "-fexcess-precision=standard for Fortran"
 msgstr ""
 
-#: fortran/options.c:344
+#: fortran/options.c:353
 #, gcc-internal-format, gfc-internal-format
 msgid "Reading file '%s' as free form"
 msgstr ""
 
-#: fortran/options.c:354
+#: fortran/options.c:363
 #, gcc-internal-format
 msgid "'-fd-lines-as-comments' has no effect in free form"
 msgstr ""
 
-#: fortran/options.c:357
+#: fortran/options.c:366
 #, gcc-internal-format
 msgid "'-fd-lines-as-code' has no effect in free form"
 msgstr ""
 
-#: fortran/options.c:375
+#: fortran/options.c:384
 #, gcc-internal-format, gfc-internal-format
 msgid "Flag -fno-automatic overwrites -fmax-stack-var-size=%d"
 msgstr ""
 
-#: fortran/options.c:378
+#: fortran/options.c:387
 #, gcc-internal-format
 msgid "Flag -fno-automatic overwrites -frecursive"
 msgstr ""
 
-#: fortran/options.c:380
+#: fortran/options.c:389
 #, gcc-internal-format
 msgid "Flag -fno-automatic overwrites -frecursive implied by -fopenmp"
 msgstr ""
 
-#: fortran/options.c:384
+#: fortran/options.c:393
 #, gcc-internal-format, gfc-internal-format
 msgid "Flag -frecursive overwrites -fmax-stack-var-size=%d"
 msgstr ""
 
-#: fortran/options.c:388
+#: fortran/options.c:397
 #, gcc-internal-format, gfc-internal-format
 msgid "Flag -fmax-stack-var-size=%d overwrites -frecursive implied by -fopenmp"
 msgstr ""
 
-#: fortran/options.c:463
+#: fortran/options.c:480
 #, gcc-internal-format
 msgid "gfortran: Only one -J option allowed"
 msgstr ""
 
-#: fortran/options.c:507
+#: fortran/options.c:526
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument to -ffpe-trap is not valid: %s"
 msgstr ""
 
-#: fortran/options.c:520
+#: fortran/options.c:541
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument to -fcoarray is not valid: %s"
 msgstr ""
 
-#: fortran/options.c:558
+#: fortran/options.c:579
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument to -fcheck is not valid: %s"
 msgstr ""
 
-#: fortran/options.c:726
+#: fortran/options.c:751
 #, gcc-internal-format
 msgid "Fixed line length must be at least seven."
 msgstr ""
 
-#: fortran/options.c:744
+#: fortran/options.c:769
 #, gcc-internal-format
 msgid "Free line length must be at least three."
 msgstr ""
 
-#: fortran/options.c:762
+#: fortran/options.c:787
 #, gcc-internal-format
 msgid "-static-libgfortran is not supported in this configuration"
 msgstr ""
 
-#: fortran/options.c:806
+#: fortran/options.c:835
 #, gcc-internal-format, gfc-internal-format
 msgid "Maximum supported identifier length is %d"
 msgstr ""
 
-#: fortran/options.c:838
+#: fortran/options.c:867
 #, gcc-internal-format, gfc-internal-format
 msgid "Unrecognized option to -finit-logical: %s"
 msgstr ""
 
-#: fortran/options.c:854
+#: fortran/options.c:883
 #, gcc-internal-format, gfc-internal-format
 msgid "Unrecognized option to -finit-real: %s"
 msgstr ""
 
-#: fortran/options.c:870
+#: fortran/options.c:899
 #, gcc-internal-format
 msgid "The value of n in -finit-character=n must be between 0 and 127"
 msgstr ""
 
-#: fortran/options.c:962
+#: fortran/options.c:1001
 #, gcc-internal-format, gfc-internal-format
 msgid "Maximum subrecord length cannot exceed %d"
 msgstr ""
 
-#: fortran/parse.c:470
+#: fortran/parse.c:475
 #, gcc-internal-format, gfc-internal-format
 msgid "Unclassifiable statement at %C"
 msgstr ""
 
-#: fortran/parse.c:492
+#: fortran/parse.c:497
 #, gcc-internal-format, gfc-internal-format
 msgid "OpenMP directives at %C may not appear in PURE or ELEMENTAL procedures"
 msgstr ""
 
-#: fortran/parse.c:576
+#: fortran/parse.c:581
 #, gcc-internal-format, gfc-internal-format
 msgid "Unclassifiable OpenMP directive at %C"
 msgstr ""
 
-#: fortran/parse.c:602
+#: fortran/parse.c:607
 #, gcc-internal-format, gfc-internal-format
 msgid "Unclassifiable GCC directive at %C"
 msgstr ""
 
-#: fortran/parse.c:644 fortran/parse.c:815
+#: fortran/parse.c:649 fortran/parse.c:820
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero is not a valid statement label at %C"
 msgstr ""
 
-#: fortran/parse.c:651 fortran/parse.c:807
+#: fortran/parse.c:656 fortran/parse.c:812
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-numeric character in statement label at %C"
 msgstr ""
 
-#: fortran/parse.c:663 fortran/parse.c:856
+#: fortran/parse.c:668 fortran/parse.c:861
 #, gcc-internal-format, gfc-internal-format
 msgid "Semicolon at %C needs to be preceded by statement"
 msgstr ""
 
-#: fortran/parse.c:671 fortran/parse.c:871
+#: fortran/parse.c:676 fortran/parse.c:876
 #, gcc-internal-format, gfc-internal-format
 msgid "Ignoring statement label in empty statement at %L"
 msgstr ""
 
-#: fortran/parse.c:718 fortran/parse.c:858
+#: fortran/parse.c:723 fortran/parse.c:863
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Semicolon at %C without preceding statement"
 msgstr ""
 
-#: fortran/parse.c:794 fortran/parse.c:834
+#: fortran/parse.c:799 fortran/parse.c:839
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad continuation line at %C"
 msgstr ""
 
-#: fortran/parse.c:1096
+#: fortran/parse.c:1102
 #, gcc-internal-format, gfc-internal-format
 msgid "FORMAT statement at %L does not have a statement label"
 msgstr ""
 
-#: fortran/parse.c:1677
+#: fortran/parse.c:1689
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected %s statement at %C"
 msgstr ""
 
-#: fortran/parse.c:1824
+#: fortran/parse.c:1836
 #, gcc-internal-format, gfc-internal-format
 msgid "%s statement at %C cannot follow %s statement at %L"
 msgstr ""
 
-#: fortran/parse.c:1841
+#: fortran/parse.c:1853
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected end of file in '%s'"
 msgstr ""
 
-#: fortran/parse.c:1873
+#: fortran/parse.c:1885
 #, gcc-internal-format, gfc-internal-format
 msgid "Derived-type '%s' with SEQUENCE must not have a CONTAINS section at %C"
 msgstr ""
 
-#: fortran/parse.c:1876
+#: fortran/parse.c:1888
 #, gcc-internal-format, gfc-internal-format
 msgid "Derived-type '%s' with BIND(C) must not have a CONTAINS section at %C"
 msgstr ""
 
-#: fortran/parse.c:1896
+#: fortran/parse.c:1908
 #, gcc-internal-format, gfc-internal-format
 msgid "Components in TYPE at %C must precede CONTAINS"
 msgstr ""
 
-#: fortran/parse.c:1900
+#: fortran/parse.c:1912
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003:  Type-bound procedure at %C"
 msgstr ""
 
-#: fortran/parse.c:1909
+#: fortran/parse.c:1921
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003:  GENERIC binding at %C"
 msgstr ""
 
-#: fortran/parse.c:1919
+#: fortran/parse.c:1931
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003:  FINAL procedure declaration at %C"
 msgstr ""
 
-#: fortran/parse.c:1931
+#: fortran/parse.c:1943
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Derived type definition at %C with empty CONTAINS section"
 msgstr ""
 
-#: fortran/parse.c:1942 fortran/parse.c:2045
+#: fortran/parse.c:1954 fortran/parse.c:2057
 #, gcc-internal-format, gfc-internal-format
 msgid "PRIVATE statement in TYPE at %C must be inside a MODULE"
 msgstr ""
 
-#: fortran/parse.c:1949
+#: fortran/parse.c:1961
 #, gcc-internal-format, gfc-internal-format
 msgid "PRIVATE statement at %C must precede procedure bindings"
 msgstr ""
 
-#: fortran/parse.c:1956 fortran/parse.c:2058
+#: fortran/parse.c:1968 fortran/parse.c:2070
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PRIVATE statement at %C"
 msgstr ""
 
-#: fortran/parse.c:1966
+#: fortran/parse.c:1978
 #, gcc-internal-format, gfc-internal-format
 msgid "SEQUENCE statement at %C must precede CONTAINS"
 msgstr ""
 
-#: fortran/parse.c:1970
+#: fortran/parse.c:1982
 #, gcc-internal-format, gfc-internal-format
 msgid "Already inside a CONTAINS block at %C"
 msgstr ""
 
-#: fortran/parse.c:2028
+#: fortran/parse.c:2040
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL declaration at %C must be inside CONTAINS"
 msgstr ""
 
-#: fortran/parse.c:2036
+#: fortran/parse.c:2048
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: Derived type definition at %C without components"
 msgstr ""
 
-#: fortran/parse.c:2052
+#: fortran/parse.c:2064
 #, gcc-internal-format, gfc-internal-format
 msgid "PRIVATE statement at %C must precede structure components"
 msgstr ""
 
-#: fortran/parse.c:2069
+#: fortran/parse.c:2081
 #, gcc-internal-format, gfc-internal-format
 msgid "SEQUENCE statement at %C must precede structure components"
 msgstr ""
 
-#: fortran/parse.c:2075
+#: fortran/parse.c:2087
 #, gcc-internal-format, gfc-internal-format
 msgid "SEQUENCE attribute at %C already specified in TYPE statement"
 msgstr ""
 
-#: fortran/parse.c:2080
+#: fortran/parse.c:2092
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SEQUENCE statement at %C"
 msgstr ""
 
-#: fortran/parse.c:2090
+#: fortran/parse.c:2102
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003:  CONTAINS block in derived type definition at %C"
 msgstr ""
 
-#: fortran/parse.c:2177
+#: fortran/parse.c:2198
 #, gcc-internal-format, gfc-internal-format
 msgid "ENUM declaration at %C has no ENUMERATORS"
 msgstr ""
 
-#: fortran/parse.c:2261
+#: fortran/parse.c:2282
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected %s statement in INTERFACE block at %C"
 msgstr ""
 
-#: fortran/parse.c:2285
+#: fortran/parse.c:2306
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Name '%s' of ABSTRACT INTERFACE at %C cannot be the same as an intrinsic type"
 msgstr ""
 
-#: fortran/parse.c:2316
+#: fortran/parse.c:2337
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected %s statement at %C in INTERFACE body"
 msgstr ""
 
-#: fortran/parse.c:2334
+#: fortran/parse.c:2355
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "INTERFACE procedure '%s' at %L has the same name as the enclosing procedure"
 msgstr ""
 
-#: fortran/parse.c:2458
+#: fortran/parse.c:2479
 #, gcc-internal-format, gfc-internal-format
 msgid "%s statement is not allowed inside of BLOCK at %C"
 msgstr ""
 
-#: fortran/parse.c:2545
+#: fortran/parse.c:2566
 #, gcc-internal-format, gfc-internal-format
 msgid "%s statement must appear in a MODULE"
 msgstr ""
 
-#: fortran/parse.c:2553
+#: fortran/parse.c:2574
 #, gcc-internal-format, gfc-internal-format
 msgid "%s statement at %C follows another accessibility specification"
 msgstr ""
 
-#: fortran/parse.c:2604
+#: fortran/parse.c:2625
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad kind expression for function '%s' at %L"
 msgstr ""
 
-#: fortran/parse.c:2608
+#: fortran/parse.c:2629
 #, gcc-internal-format, gfc-internal-format
 msgid "The type for function '%s' at %L is not accessible"
 msgstr ""
 
-#: fortran/parse.c:2666
+#: fortran/parse.c:2687
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C follows previous unmasked ELSEWHERE"
 msgstr ""
 
-#: fortran/parse.c:2687
+#: fortran/parse.c:2708
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected %s statement in WHERE block at %C"
 msgstr ""
 
-#: fortran/parse.c:2746
+#: fortran/parse.c:2767
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected %s statement in FORALL block at %C"
 msgstr ""
 
-#: fortran/parse.c:2797
+#: fortran/parse.c:2818
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSE IF statement at %C cannot follow ELSE statement at %L"
 msgstr ""
 
-#: fortran/parse.c:2815
+#: fortran/parse.c:2836
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ELSE statements at %L and %C"
 msgstr ""
 
-#: fortran/parse.c:2876
+#: fortran/parse.c:2897
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected a CASE or END SELECT statement following SELECT CASE at %C"
 msgstr ""
 
-#: fortran/parse.c:2959
+#: fortran/parse.c:2980
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Expected TYPE IS, CLASS IS or END SELECT statement following SELECT TYPE at "
 "%C"
 msgstr ""
 
-#: fortran/parse.c:3021
+#: fortran/parse.c:3042
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable '%s' at %C cannot be redefined inside loop beginning at %L"
 msgstr ""
 
-#: fortran/parse.c:3054
+#: fortran/parse.c:3075
 #, gcc-internal-format, gfc-internal-format
 msgid "End of nonblock DO statement at %C is within another block"
 msgstr ""
 
-#: fortran/parse.c:3063
+#: fortran/parse.c:3084
 #, gcc-internal-format, gfc-internal-format
 msgid "End of nonblock DO statement at %C is interwoven with another DO loop"
 msgstr ""
 
-#: fortran/parse.c:3110
+#: fortran/parse.c:3131
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement label in END CRITICAL at %C does not match CRITIAL label"
 msgstr ""
 
-#: fortran/parse.c:3175
+#: fortran/parse.c:3199
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: BLOCK construct at %C"
 msgstr ""
 
-#: fortran/parse.c:3205
+#: fortran/parse.c:3229
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: ASSOCIATE construct at %C"
 msgstr ""
 
-#: fortran/parse.c:3302
+#: fortran/parse.c:3326
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement label in ENDDO at %C doesn't match DO label"
 msgstr ""
 
-#: fortran/parse.c:3318
+#: fortran/parse.c:3342
 #, gcc-internal-format, gfc-internal-format
 msgid "Named block DO at %L requires matching ENDDO name"
 msgstr ""
 
-#: fortran/parse.c:3577
+#: fortran/parse.c:3601
 #, gcc-internal-format, gfc-internal-format
 msgid "Name after !$omp critical and !$omp end critical does not match at %C"
 msgstr ""
 
-#: fortran/parse.c:3634
+#: fortran/parse.c:3658
 #, gcc-internal-format, gfc-internal-format
 msgid "%s statement at %C cannot terminate a non-block DO loop"
 msgstr ""
 
-#: fortran/parse.c:3830
+#: fortran/parse.c:3854
 #, gcc-internal-format, gfc-internal-format
 msgid "Contained procedure '%s' at %C is already ambiguous"
 msgstr ""
 
-#: fortran/parse.c:3886
+#: fortran/parse.c:3910
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected %s statement in CONTAINS section at %C"
 msgstr ""
 
-#: fortran/parse.c:3910
+#: fortran/parse.c:3934
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Fortran 2008: CONTAINS statement without FUNCTION or SUBROUTINE statement at "
 "%C"
 msgstr ""
 
-#: fortran/parse.c:3987
+#: fortran/parse.c:4011
 #, gcc-internal-format, gfc-internal-format
 msgid "CONTAINS statement at %C is already in a contained program unit"
 msgstr ""
 
-#: fortran/parse.c:4037
+#: fortran/parse.c:4061
 #, gcc-internal-format, gfc-internal-format
 msgid "Global name '%s' at %L is already being used as a %s at %L"
 msgstr ""
 
-#: fortran/parse.c:4058
+#: fortran/parse.c:4082
 #, gcc-internal-format, gfc-internal-format
 msgid "Blank BLOCK DATA at %C conflicts with prior BLOCK DATA at %L"
 msgstr ""
 
-#: fortran/parse.c:4084
+#: fortran/parse.c:4108
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected %s statement in BLOCK DATA at %C"
 msgstr ""
 
-#: fortran/parse.c:4127
+#: fortran/parse.c:4151
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected %s statement in MODULE at %C"
 msgstr ""
@@ -38760,7 +39346,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:4449
+#: fortran/parse.c:4516
 #, gcc-internal-format, gfc-internal-format
 msgid "Two main PROGRAMs at %L and %C"
 msgstr ""
@@ -38832,243 +39418,258 @@
 msgid "Fortran 2003: BOZ used outside a DATA statement at %C"
 msgstr ""
 
-#: fortran/primary.c:556
+#: fortran/primary.c:547 fortran/primary.c:551
+#, gcc-internal-format, gfc-internal-format
+msgid "Extension: exponent-letter 'q' in real-literal-constant at %C"
+msgstr ""
+
+#: fortran/primary.c:567
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing exponent in real number at %C"
 msgstr ""
 
-#: fortran/primary.c:612
+#: fortran/primary.c:623
 #, gcc-internal-format, gfc-internal-format
 msgid "Real number at %C has a 'd' exponent and an explicit kind"
 msgstr ""
 
-#: fortran/primary.c:625
+#: fortran/primary.c:633
+#, gcc-internal-format, gfc-internal-format
+msgid "Real number at %C has a 'q' exponent and an explicit kind"
+msgstr ""
+
+#: fortran/primary.c:647
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid exponent-letter 'q' in real-literal-constant at %C"
+msgstr ""
+
+#: fortran/primary.c:660
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid real kind %d at %C"
 msgstr ""
 
-#: fortran/primary.c:639
+#: fortran/primary.c:674
 #, gcc-internal-format, gfc-internal-format
 msgid "Real constant overflows its kind at %C"
 msgstr ""
 
-#: fortran/primary.c:644
+#: fortran/primary.c:679
 #, gcc-internal-format, gfc-internal-format
 msgid "Real constant underflows its kind at %C"
 msgstr ""
 
-#: fortran/primary.c:736
+#: fortran/primary.c:771
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in SUBSTRING specification at %C"
 msgstr ""
 
-#: fortran/primary.c:948
+#: fortran/primary.c:983
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid kind %d for CHARACTER constant at %C"
 msgstr ""
 
-#: fortran/primary.c:969
+#: fortran/primary.c:1004
 #, gcc-internal-format, gfc-internal-format
 msgid "Unterminated character constant beginning at %C"
 msgstr ""
 
-#: fortran/primary.c:1001
+#: fortran/primary.c:1033
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Character '%s' in string at %C is not representable in character kind %d"
 msgstr ""
 
-#: fortran/primary.c:1084
+#: fortran/primary.c:1116
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad kind for logical constant at %C"
 msgstr ""
 
-#: fortran/primary.c:1117
+#: fortran/primary.c:1147
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected PARAMETER symbol in complex constant at %C"
 msgstr ""
 
-#: fortran/primary.c:1123
+#: fortran/primary.c:1153
 #, gcc-internal-format, gfc-internal-format
 msgid "Numeric PARAMETER required in complex constant at %C"
 msgstr ""
 
-#: fortran/primary.c:1129
+#: fortran/primary.c:1159
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar PARAMETER required in complex constant at %C"
 msgstr ""
 
-#: fortran/primary.c:1133
+#: fortran/primary.c:1163
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: PARAMETER symbol in complex constant at %C"
 msgstr ""
 
-#: fortran/primary.c:1163
+#: fortran/primary.c:1193
 #, gcc-internal-format, gfc-internal-format
 msgid "Error converting PARAMETER constant in complex constant at %C"
 msgstr ""
 
-#: fortran/primary.c:1292
+#: fortran/primary.c:1321
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in COMPLEX constant at %C"
 msgstr ""
 
-#: fortran/primary.c:1498
+#: fortran/primary.c:1527
 #, gcc-internal-format, gfc-internal-format
 msgid "Keyword '%s' at %C has already appeared in the current argument list"
 msgstr ""
 
-#: fortran/primary.c:1562
+#: fortran/primary.c:1591
 #, gcc-internal-format, gfc-internal-format
 msgid "Extension: argument list function at %C"
 msgstr ""
 
-#: fortran/primary.c:1631
+#: fortran/primary.c:1660
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected alternate return label at %C"
 msgstr ""
 
-#: fortran/primary.c:1649
+#: fortran/primary.c:1678
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing keyword name in actual argument list at %C"
 msgstr ""
 
-#: fortran/primary.c:1695
+#: fortran/primary.c:1724
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in argument list at %C"
 msgstr ""
 
-#: fortran/primary.c:1752
+#: fortran/primary.c:1781
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Array section designator, e.g. '(:)', is required besides the coarray "
 "designator '[...]' at %C"
 msgstr ""
 
-#: fortran/primary.c:1758
+#: fortran/primary.c:1787
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray designator at %C but '%s' is not a coarray"
 msgstr ""
 
-#: fortran/primary.c:1829
+#: fortran/primary.c:1858
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected structure component name at %C"
 msgstr ""
 
-#: fortran/primary.c:1876
+#: fortran/primary.c:1905
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected argument list at %C"
 msgstr ""
 
-#: fortran/primary.c:1908
+#: fortran/primary.c:1937
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer component '%s' requires an argument list at %C"
 msgstr ""
 
-#: fortran/primary.c:1996
+#: fortran/primary.c:2025
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed procedure-pointer component at %C"
 msgstr ""
 
-#: fortran/primary.c:2245
+#: fortran/primary.c:2274
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Fortran 2003: Structure constructor with missing optional arguments at %C"
 msgstr ""
 
-#: fortran/primary.c:2253
+#: fortran/primary.c:2282
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "No initializer for component '%s' given in the structure constructor at %C!"
 msgstr ""
 
-#: fortran/primary.c:2300
+#: fortran/primary.c:2329
 #, gcc-internal-format, gfc-internal-format
 msgid "Can't construct ABSTRACT type '%s' at %C"
 msgstr ""
 
-#: fortran/primary.c:2334
+#: fortran/primary.c:2363
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: Structure constructor with named arguments at %C"
 msgstr ""
 
-#: fortran/primary.c:2349
+#: fortran/primary.c:2378
 #, gcc-internal-format, gfc-internal-format
 msgid "Component initializer without name after component named %s at %C!"
 msgstr ""
 
-#: fortran/primary.c:2352
+#: fortran/primary.c:2381
 #, gcc-internal-format, gfc-internal-format
 msgid "Too many components in structure constructor at %C!"
 msgstr ""
 
-#: fortran/primary.c:2385
+#: fortran/primary.c:2414
 #, gcc-internal-format, gfc-internal-format
 msgid "Component '%s' is initialized twice in the structure constructor at %C!"
 msgstr ""
 
-#: fortran/primary.c:2401
+#: fortran/primary.c:2430
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Coindexed expression to pointer component '%s' in structure constructor at "
 "%C!"
 msgstr ""
 
-#: fortran/primary.c:2451
+#: fortran/primary.c:2480
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "component '%s' at %L has already been set by a parent derived type "
 "constructor"
 msgstr ""
 
-#: fortran/primary.c:2466
+#: fortran/primary.c:2495
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in structure constructor at %C"
 msgstr ""
 
-#: fortran/primary.c:2582
+#: fortran/primary.c:2611
 #, gcc-internal-format, gfc-internal-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:2701
+#: fortran/primary.c:2730
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected use of subroutine name '%s' at %C"
 msgstr ""
 
-#: fortran/primary.c:2732
+#: fortran/primary.c:2761
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement function '%s' requires argument list at %C"
 msgstr ""
 
-#: fortran/primary.c:2735
+#: fortran/primary.c:2764
 #, gcc-internal-format, gfc-internal-format
 msgid "Function '%s' requires an argument list at %C"
 msgstr ""
 
-#: fortran/primary.c:2782
+#: fortran/primary.c:2811
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing argument to '%s' at %C"
 msgstr ""
 
-#: fortran/primary.c:2923
+#: fortran/primary.c:2952
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing argument list in function '%s' at %C"
 msgstr ""
 
-#: fortran/primary.c:2951
+#: fortran/primary.c:2980
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %C is not appropriate for an expression"
 msgstr ""
 
-#: fortran/primary.c:3050
+#: fortran/primary.c:3079
 #, gcc-internal-format, gfc-internal-format
 msgid "Named constant at %C in an EQUIVALENCE"
 msgstr ""
 
-#: fortran/primary.c:3084
+#: fortran/primary.c:3113
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %C is not a variable"
 msgstr ""
@@ -39121,279 +39722,279 @@
 msgid "Dummy procedure at %L not allowed in ELEMENTAL procedure"
 msgstr ""
 
-#: fortran/resolve.c:298 fortran/resolve.c:1657
+#: fortran/resolve.c:298 fortran/resolve.c:1662
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Unable to find a specific INTRINSIC procedure for the reference '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:347
+#: fortran/resolve.c:348
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Fortran 2008: Argument '%s' of pure function '%s' at %L with VALUE attribute "
 "but without INTENT(IN)"
 msgstr ""
 
-#: fortran/resolve.c:352
+#: fortran/resolve.c:353
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument '%s' of pure function '%s' at %L must be INTENT(IN) or VALUE"
 msgstr ""
 
-#: fortran/resolve.c:360
+#: fortran/resolve.c:361
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Fortran 2008: Argument '%s' of pure subroutine '%s' at %L with VALUE "
 "attribute but without INTENT"
 msgstr ""
 
-#: fortran/resolve.c:365
+#: fortran/resolve.c:366
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Argument '%s' of pure subroutine '%s' at %L must have its INTENT specified "
 "or have the VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.c:386
+#: fortran/resolve.c:387
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray dummy argument '%s' at %L to elemental procedure"
 msgstr ""
 
-#: fortran/resolve.c:393
+#: fortran/resolve.c:394
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument '%s' of elemental procedure at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.c:400
+#: fortran/resolve.c:401
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Argument '%s' of elemental procedure at %L cannot have the ALLOCATABLE "
 "attribute"
 msgstr ""
 
-#: fortran/resolve.c:408
+#: fortran/resolve.c:409
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Argument '%s' of elemental procedure at %L cannot have the POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.c:416
+#: fortran/resolve.c:417
 #, gcc-internal-format, gfc-internal-format
 msgid "Dummy procedure '%s' not allowed in elemental procedure '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:424
+#: fortran/resolve.c:425
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Argument '%s' of elemental procedure '%s' at %L must have its INTENT "
 "specified"
 msgstr ""
 
-#: fortran/resolve.c:436
+#: fortran/resolve.c:437
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument '%s' of statement function at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.c:446
+#: fortran/resolve.c:447
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Character-valued argument '%s' of statement function at %L must have "
 "constant length"
 msgstr ""
 
-#: fortran/resolve.c:503
+#: fortran/resolve.c:504
 #, gcc-internal-format, gfc-internal-format
 msgid "Contained function '%s' at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.c:506
+#: fortran/resolve.c:507
 #, gcc-internal-format, gfc-internal-format
 msgid "Result '%s' of contained function '%s' at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.c:530
+#: fortran/resolve.c:531
 #, gcc-internal-format, gfc-internal-format
 msgid "Character-valued %s '%s' at %L must not be assumed length"
 msgstr ""
 
-#: fortran/resolve.c:705
+#: fortran/resolve.c:706
 #, gcc-internal-format, gfc-internal-format
 msgid "Function %s at %L has entries with mismatched array specifications"
 msgstr ""
 
-#: fortran/resolve.c:722
+#: fortran/resolve.c:723
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Extension: Function %s at %L with entries returning variables of different "
 "string lengths"
 msgstr ""
 
-#: fortran/resolve.c:749
+#: fortran/resolve.c:750
 #, gcc-internal-format, gfc-internal-format
 msgid "FUNCTION result %s can't be an array in FUNCTION %s at %L"
 msgstr ""
 
-#: fortran/resolve.c:753
+#: fortran/resolve.c:754
 #, gcc-internal-format, gfc-internal-format
 msgid "ENTRY result %s can't be an array in FUNCTION %s at %L"
 msgstr ""
 
-#: fortran/resolve.c:760
+#: fortran/resolve.c:761
 #, gcc-internal-format, gfc-internal-format
 msgid "FUNCTION result %s can't be a POINTER in FUNCTION %s at %L"
 msgstr ""
 
-#: fortran/resolve.c:764
+#: fortran/resolve.c:765
 #, gcc-internal-format, gfc-internal-format
 msgid "ENTRY result %s can't be a POINTER in FUNCTION %s at %L"
 msgstr ""
 
-#: fortran/resolve.c:802
+#: fortran/resolve.c:803
 #, gcc-internal-format, gfc-internal-format
 msgid "FUNCTION result %s can't be of type %s in FUNCTION %s at %L"
 msgstr ""
 
-#: fortran/resolve.c:807
+#: fortran/resolve.c:808
 #, gcc-internal-format, gfc-internal-format
 msgid "ENTRY result %s can't be of type %s in FUNCTION %s at %L"
 msgstr ""
 
-#: fortran/resolve.c:850
+#: fortran/resolve.c:851
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Variable '%s' at %L is in COMMON but only in BLOCK DATA initialization is "
 "allowed"
 msgstr ""
 
-#: fortran/resolve.c:854
+#: fortran/resolve.c:855
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Initialized variable '%s' at %L is in a blank COMMON but initialization is "
 "only allowed in named common blocks"
 msgstr ""
 
-#: fortran/resolve.c:865
+#: fortran/resolve.c:866
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Derived type variable '%s' in COMMON at %L has neither the SEQUENCE nor the "
 "BIND(C) attribute"
 msgstr ""
 
-#: fortran/resolve.c:869
+#: fortran/resolve.c:870
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Derived type variable '%s' in COMMON at %L has an ultimate component that is "
 "allocatable"
 msgstr ""
 
-#: fortran/resolve.c:873
+#: fortran/resolve.c:874
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Derived type variable '%s' in COMMON at %L may not have default initializer"
 msgstr ""
 
-#: fortran/resolve.c:903
+#: fortran/resolve.c:904
 #, gcc-internal-format, gfc-internal-format
 msgid "COMMON block '%s' at %L is used as PARAMETER at %L"
 msgstr ""
 
-#: fortran/resolve.c:907
+#: fortran/resolve.c:908
 #, gcc-internal-format, gfc-internal-format
 msgid "COMMON block '%s' at %L is also an intrinsic procedure"
 msgstr ""
 
-#: fortran/resolve.c:911
+#: fortran/resolve.c:912
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: COMMON block '%s' at %L that is also a function result"
 msgstr ""
 
-#: fortran/resolve.c:916
+#: fortran/resolve.c:917
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: COMMON block '%s' at %L that is also a global procedure"
 msgstr ""
 
-#: fortran/resolve.c:984
+#: fortran/resolve.c:985
 #, gcc-internal-format, gfc-internal-format
 msgid "Components of structure constructor '%s' at %L are PRIVATE"
 msgstr ""
 
-#: fortran/resolve.c:1012
+#: fortran/resolve.c:1013
 #, gcc-internal-format, gfc-internal-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:1034
+#: fortran/resolve.c:1035
 #, gcc-internal-format, gfc-internal-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:1112
+#: fortran/resolve.c:1113
 #, gcc-internal-format, gfc-internal-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:1127
+#: fortran/resolve.c:1128
 #, gcc-internal-format, gfc-internal-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:1138
+#: fortran/resolve.c:1139
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must not be ALLOCATABLE "
 msgstr ""
 
-#: fortran/resolve.c:1144
+#: fortran/resolve.c:1145
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr ""
 
-#: fortran/resolve.c:1155
+#: fortran/resolve.c:1156
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Invalid expression in the derived type constructor for pointer component "
 "'%s' at %L in PURE procedure"
 msgstr ""
 
-#: fortran/resolve.c:1284
+#: fortran/resolve.c:1285
 #, gcc-internal-format, gfc-internal-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:1346
+#: fortran/resolve.c:1347
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L is ambiguous"
 msgstr ""
 
-#: fortran/resolve.c:1350
+#: fortran/resolve.c:1351
 #, gcc-internal-format, gfc-internal-format
 msgid "GENERIC procedure '%s' is not allowed as an actual argument at %L"
 msgstr ""
 
-#: fortran/resolve.c:1457
+#: fortran/resolve.c:1462
 #, gcc-internal-format, gfc-internal-format
 msgid "Type specified for intrinsic function '%s' at %L is ignored"
 msgstr ""
 
-#: fortran/resolve.c:1470
+#: fortran/resolve.c:1475
 #, gcc-internal-format, gfc-internal-format
 msgid "Intrinsic subroutine '%s' at %L shall not have a type specifier"
 msgstr ""
 
-#: fortran/resolve.c:1481
+#: fortran/resolve.c:1486
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' declared INTRINSIC at %L does not exist"
 msgstr ""
 
-#: fortran/resolve.c:1492
+#: fortran/resolve.c:1497
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "The intrinsic '%s' declared INTRINSIC at %L is not available in the current "
@@ -39401,71 +40002,71 @@
 "intrinsics in order to use it."
 msgstr ""
 
-#: fortran/resolve.c:1528
+#: fortran/resolve.c:1533
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Non-RECURSIVE procedure '%s' at %L is possibly calling itself recursively.  "
 "Declare it RECURSIVE or use -frecursive"
 msgstr ""
 
-#: fortran/resolve.c:1561 fortran/resolve.c:8218 fortran/resolve.c:9082
+#: fortran/resolve.c:1566 fortran/resolve.c:8327 fortran/resolve.c:9196
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr ""
 
-#: fortran/resolve.c:1606
+#: fortran/resolve.c:1611
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement function '%s' at %L is not allowed as an actual argument"
 msgstr ""
 
-#: fortran/resolve.c:1614
+#: fortran/resolve.c:1619
 #, gcc-internal-format, gfc-internal-format
 msgid "Intrinsic '%s' at %L is not allowed as an actual argument"
 msgstr ""
 
-#: fortran/resolve.c:1622
+#: fortran/resolve.c:1627
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Internal procedure '%s' is used as actual argument at %L"
 msgstr ""
 
-#: fortran/resolve.c:1630
+#: fortran/resolve.c:1635
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "ELEMENTAL non-INTRINSIC procedure '%s' is not allowed as an actual argument "
 "at %L"
 msgstr ""
 
-#: fortran/resolve.c:1679
+#: fortran/resolve.c:1684
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol '%s' at %L is ambiguous"
 msgstr ""
 
-#: fortran/resolve.c:1730
+#: fortran/resolve.c:1735
 #, gcc-internal-format, gfc-internal-format
 msgid "By-value argument at %L is not of numeric type"
 msgstr ""
 
-#: fortran/resolve.c:1737
+#: fortran/resolve.c:1742
 #, gcc-internal-format, gfc-internal-format
 msgid "By-value argument at %L cannot be an array or an array section"
 msgstr ""
 
-#: fortran/resolve.c:1751
+#: fortran/resolve.c:1756
 #, gcc-internal-format, gfc-internal-format
 msgid "By-value argument at %L is not allowed in this context"
 msgstr ""
 
-#: fortran/resolve.c:1763
+#: fortran/resolve.c:1768
 #, gcc-internal-format, gfc-internal-format
 msgid "Passing internal procedure at %L by location not allowed"
 msgstr ""
 
-#: fortran/resolve.c:1774
+#: fortran/resolve.c:1779
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed actual argument at %L with ultimate pointer component"
 msgstr ""
 
-#: fortran/resolve.c:1897
+#: fortran/resolve.c:1902
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' at %L is an array and OPTIONAL; IF IT IS MISSING, it cannot be the "
@@ -39473,707 +40074,714 @@
 "argument with the same rank (12.4.1.5)"
 msgstr ""
 
-#: fortran/resolve.c:1936
+#: fortran/resolve.c:1941
 #, gcc-internal-format, gfc-internal-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:2098
+#: fortran/resolve.c:2103
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Character length mismatch in return type of function '%s' at %L (%ld/%ld)"
 msgstr ""
 
-#: fortran/resolve.c:2106
+#: fortran/resolve.c:2111
 #, gcc-internal-format, gfc-internal-format
 msgid "Return type mismatch of function '%s' at %L (%s/%s)"
 msgstr ""
 
-#: fortran/resolve.c:2125
+#: fortran/resolve.c:2130
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Dummy argument '%s' of procedure '%s' at %L has an attribute that requires "
 "an explicit interface for this procedure"
 msgstr ""
 
-#: fortran/resolve.c:2135
+#: fortran/resolve.c:2140
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Procedure '%s' at %L with assumed-shape dummy argument '%s' must have an "
 "explicit interface"
 msgstr ""
 
-#: fortran/resolve.c:2143
+#: fortran/resolve.c:2148
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Procedure '%s' at %L with coarray dummy argument '%s' must have an explicit "
 "interface"
 msgstr ""
 
-#: fortran/resolve.c:2151
+#: fortran/resolve.c:2156
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Procedure '%s' at %L with parametrized derived type argument '%s' must have "
 "an explicit interface"
 msgstr ""
 
-#: fortran/resolve.c:2160
+#: fortran/resolve.c:2165
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Procedure '%s' at %L with polymorphic dummy argument '%s' must have an "
 "explicit interface"
 msgstr ""
 
-#: fortran/resolve.c:2172
+#: fortran/resolve.c:2177
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "The reference to function '%s' at %L either needs an explicit INTERFACE or "
 "the rank is incorrect"
 msgstr ""
 
-#: fortran/resolve.c:2184
+#: fortran/resolve.c:2189
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Function '%s' at %L with a POINTER or ALLOCATABLE result must have an "
 "explicit interface"
 msgstr ""
 
-#: fortran/resolve.c:2197
+#: fortran/resolve.c:2202
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Nonconstant character-length function '%s' at %L must have an explicit "
 "interface"
 msgstr ""
 
-#: fortran/resolve.c:2207
+#: fortran/resolve.c:2212
 #, gcc-internal-format, gfc-internal-format
 msgid "ELEMENTAL procedure '%s' at %L must have an explicit interface"
 msgstr ""
 
-#: fortran/resolve.c:2214
+#: fortran/resolve.c:2219
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Procedure '%s' at %L with BIND(C) attribute must have an explicit interface"
 msgstr ""
 
-#: fortran/resolve.c:2314
+#: fortran/resolve.c:2319
 #, gcc-internal-format, gfc-internal-format
 msgid "There is no specific function for the generic '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:2323
+#: fortran/resolve.c:2328
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Generic function '%s' at %L is not consistent with a specific intrinsic "
 "interface"
 msgstr ""
 
-#: fortran/resolve.c:2361
+#: fortran/resolve.c:2366
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Function '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
 msgstr ""
 
-#: fortran/resolve.c:2410
+#: fortran/resolve.c:2415
 #, gcc-internal-format, gfc-internal-format
 msgid "Unable to resolve the specific function '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:2466 fortran/resolve.c:13351
+#: fortran/resolve.c:2471 fortran/resolve.c:13494
 #, gcc-internal-format, gfc-internal-format
 msgid "Function '%s' at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.c:2668
+#: fortran/resolve.c:2673
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument to '%s' at %L is not a variable"
 msgstr ""
 
-#: fortran/resolve.c:2715
+#: fortran/resolve.c:2720
 #, gcc-internal-format, gfc-internal-format
 msgid "More actual than formal arguments in '%s' call at %L"
 msgstr ""
 
-#: fortran/resolve.c:2727
+#: fortran/resolve.c:2732
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Parameter '%s' to '%s' at %L must be either a TARGET or an associated pointer"
 msgstr ""
 
-#: fortran/resolve.c:2736
+#: fortran/resolve.c:2741
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed argument not permitted in '%s' call at %L"
 msgstr ""
 
-#: fortran/resolve.c:2759
+#: fortran/resolve.c:2764
 #, gcc-internal-format, gfc-internal-format
 msgid "Array section not permitted in '%s' call at %L"
 msgstr ""
 
-#: fortran/resolve.c:2770
+#: fortran/resolve.c:2775
 #, gcc-internal-format, gfc-internal-format
 msgid "Array section in '%s' call at %L"
 msgstr ""
 
-#: fortran/resolve.c:2789
+#: fortran/resolve.c:2794
 #, gcc-internal-format, gfc-internal-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:2806
+#: fortran/resolve.c:2811
 #, gcc-internal-format, gfc-internal-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:2816
+#: fortran/resolve.c:2821
 #, gcc-internal-format, gfc-internal-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:2839 fortran/resolve.c:2876
+#: fortran/resolve.c:2844 fortran/resolve.c:2881
 #, gcc-internal-format, gfc-internal-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:2852
+#: fortran/resolve.c:2857
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument '%s' to '%s' at %L must be an associated scalar POINTER"
 msgstr ""
 
-#: fortran/resolve.c:2868
+#: fortran/resolve.c:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Parameter '%s' to '%s' at %L must be a scalar"
 msgstr ""
 
-#: fortran/resolve.c:2884
+#: fortran/resolve.c:2889
 #, gcc-internal-format, gfc-internal-format
 msgid "Parameter '%s' to '%s' at %L must not be polymorphic"
 msgstr ""
 
 #. TODO: Update this error message to allow for procedure
 #. pointers once they are implemented.
-#: fortran/resolve.c:2897
+#: fortran/resolve.c:2902
 #, gcc-internal-format, gfc-internal-format
 msgid "Parameter '%s' to '%s' at %L must be a procedure"
 msgstr ""
 
-#: fortran/resolve.c:2905
+#: fortran/resolve.c:2910
 #, gcc-internal-format, gfc-internal-format
 msgid "Parameter '%s' to '%s' at %L must be BIND(C)"
 msgstr ""
 
-#: fortran/resolve.c:2954
+#: fortran/resolve.c:2959
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L is not a function"
 msgstr ""
 
-#: fortran/resolve.c:2962 fortran/resolve.c:3579
+#: fortran/resolve.c:2967 fortran/resolve.c:3584
 #, gcc-internal-format, gfc-internal-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:3017
+#: fortran/resolve.c:3022
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Function '%s' is declared CHARACTER(*) and cannot be used at %L since it is "
 "not a dummy argument"
 msgstr ""
 
-#: fortran/resolve.c:3070
+#: fortran/resolve.c:3075
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "User defined non-ELEMENTAL function '%s' at %L not allowed in WORKSHARE "
 "construct"
 msgstr ""
 
-#: fortran/resolve.c:3120
+#: fortran/resolve.c:3125
 #, gcc-internal-format, gfc-internal-format
 msgid "reference to non-PURE function '%s' at %L inside a FORALL %s"
 msgstr ""
 
-#: fortran/resolve.c:3127
+#: fortran/resolve.c:3132
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Function reference to '%s' at %L is to a non-PURE procedure within a PURE "
 "procedure"
 msgstr ""
 
-#: fortran/resolve.c:3146
+#: fortran/resolve.c:3151
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "ENTRY '%s' at %L cannot be called recursively, as function '%s' is not "
 "RECURSIVE"
 msgstr ""
 
-#: fortran/resolve.c:3150
+#: fortran/resolve.c:3155
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Function '%s' at %L cannot be called recursively, as it is not RECURSIVE"
 msgstr ""
 
-#: fortran/resolve.c:3189
+#: fortran/resolve.c:3194
 #, gcc-internal-format, gfc-internal-format
 msgid "Subroutine call to '%s' in FORALL block at %L is not PURE"
 msgstr ""
 
-#: fortran/resolve.c:3192
+#: fortran/resolve.c:3197
 #, gcc-internal-format, gfc-internal-format
 msgid "Subroutine call to '%s' at %L is not PURE"
 msgstr ""
 
-#: fortran/resolve.c:3255
+#: fortran/resolve.c:3260
 #, gcc-internal-format, gfc-internal-format
 msgid "There is no specific subroutine for the generic '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:3264
+#: fortran/resolve.c:3269
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Generic subroutine '%s' at %L is not consistent with an intrinsic subroutine "
 "interface"
 msgstr ""
 
-#: fortran/resolve.c:3372
+#: fortran/resolve.c:3377
 #, gcc-internal-format, gfc-internal-format
 msgid "Missing SHAPE parameter for call to %s at %L"
 msgstr ""
 
-#: fortran/resolve.c:3380
+#: fortran/resolve.c:3385
 #, gcc-internal-format, gfc-internal-format
 msgid "SHAPE parameter for call to %s at %L must be a rank 1 INTEGER array"
 msgstr ""
 
-#: fortran/resolve.c:3447
+#: fortran/resolve.c:3452
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Subroutine '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
 msgstr ""
 
-#: fortran/resolve.c:3491
+#: fortran/resolve.c:3496
 #, gcc-internal-format, gfc-internal-format
 msgid "Unable to resolve the specific subroutine '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:3551
+#: fortran/resolve.c:3556
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L has a type, which is not consistent with the CALL at %L"
 msgstr ""
 
-#: fortran/resolve.c:3589
+#: fortran/resolve.c:3594
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "ENTRY '%s' at %L cannot be called recursively, as subroutine '%s' is not "
 "RECURSIVE"
 msgstr ""
 
-#: fortran/resolve.c:3593
+#: fortran/resolve.c:3598
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "SUBROUTINE '%s' at %L cannot be called recursively, as it is not RECURSIVE"
 msgstr ""
 
-#: fortran/resolve.c:3669
+#: fortran/resolve.c:3674
 #, gcc-internal-format, gfc-internal-format
 msgid "Shapes for operands at %L and %L are not conformable"
 msgstr ""
 
-#: fortran/resolve.c:4167
+#: fortran/resolve.c:4173
 #, gcc-internal-format, gfc-internal-format
 msgid "Array reference at %L is out of bounds (%ld < %ld) in dimension %d"
 msgstr ""
 
-#: fortran/resolve.c:4172
+#: fortran/resolve.c:4178
 #, gcc-internal-format, gfc-internal-format
 msgid "Array reference at %L is out of bounds (%ld < %ld) in codimension %d"
 msgstr ""
 
-#: fortran/resolve.c:4182
+#: fortran/resolve.c:4188
 #, gcc-internal-format, gfc-internal-format
 msgid "Array reference at %L is out of bounds (%ld > %ld) in dimension %d"
 msgstr ""
 
-#: fortran/resolve.c:4187
+#: fortran/resolve.c:4193
 #, gcc-internal-format, gfc-internal-format
 msgid "Array reference at %L is out of bounds (%ld > %ld) in codimension %d"
 msgstr ""
 
-#: fortran/resolve.c:4207
+#: fortran/resolve.c:4213
 #, gcc-internal-format, gfc-internal-format
 msgid "Illegal stride of zero at %L"
 msgstr ""
 
-#: fortran/resolve.c:4224
+#: fortran/resolve.c:4230
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Lower array reference at %L is out of bounds (%ld < %ld) in dimension %d"
 msgstr ""
 
-#: fortran/resolve.c:4232
+#: fortran/resolve.c:4238
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Lower array reference at %L is out of bounds (%ld > %ld) in dimension %d"
 msgstr ""
 
-#: fortran/resolve.c:4248
+#: fortran/resolve.c:4254
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Upper array reference at %L is out of bounds (%ld < %ld) in dimension %d"
 msgstr ""
 
-#: fortran/resolve.c:4257
+#: fortran/resolve.c:4263
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Upper array reference at %L is out of bounds (%ld > %ld) in dimension %d"
 msgstr ""
 
-#: fortran/resolve.c:4296
+#: fortran/resolve.c:4302
 #, gcc-internal-format, gfc-internal-format
 msgid "Rightmost upper bound of assumed size array section not specified at %L"
 msgstr ""
 
-#: fortran/resolve.c:4306
+#: fortran/resolve.c:4312
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank mismatch in array reference at %L (%d/%d)"
 msgstr ""
 
-#: fortran/resolve.c:4314
+#: fortran/resolve.c:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindex rank mismatch in array reference at %L (%d/%d)"
 msgstr ""
 
-#: fortran/resolve.c:4329
+#: fortran/resolve.c:4336
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindex of codimension %d must be a scalar at %L"
 msgstr ""
 
-#: fortran/resolve.c:4357
+#: fortran/resolve.c:4372
 #, gcc-internal-format, gfc-internal-format
 msgid "Array index at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.c:4363
+#: fortran/resolve.c:4378
 #, gcc-internal-format, gfc-internal-format
 msgid "Array index at %L must be of INTEGER type, found %s"
 msgstr ""
 
-#: fortran/resolve.c:4369
+#: fortran/resolve.c:4384
 #, gcc-internal-format, gfc-internal-format
 msgid "Extension: REAL array index at %L"
 msgstr ""
 
-#: fortran/resolve.c:4408
+#: fortran/resolve.c:4423
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument dim at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.c:4415
+#: fortran/resolve.c:4430
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument dim at %L must be of INTEGER type"
 msgstr ""
 
-#: fortran/resolve.c:4546
+#: fortran/resolve.c:4561
 #, gcc-internal-format, gfc-internal-format
 msgid "Array index at %L is an array of rank %d"
 msgstr ""
 
-#: fortran/resolve.c:4620
+#: fortran/resolve.c:4635
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring start index at %L must be of type INTEGER"
 msgstr ""
 
-#: fortran/resolve.c:4627
+#: fortran/resolve.c:4642
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring start index at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.c:4636
+#: fortran/resolve.c:4651
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring start index at %L is less than one"
 msgstr ""
 
-#: fortran/resolve.c:4649
+#: fortran/resolve.c:4664
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring end index at %L must be of type INTEGER"
 msgstr ""
 
-#: fortran/resolve.c:4656
+#: fortran/resolve.c:4671
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring end index at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.c:4666
+#: fortran/resolve.c:4681
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring end index at %L exceeds the string length"
 msgstr ""
 
-#: fortran/resolve.c:4676
+#: fortran/resolve.c:4691
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring end index at %L is too large"
 msgstr ""
 
-#: fortran/resolve.c:4821
+#: fortran/resolve.c:4836
 #, gcc-internal-format, gfc-internal-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:4828
+#: fortran/resolve.c:4843
 #, gcc-internal-format, gfc-internal-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:4847
+#: fortran/resolve.c:4862
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Two or more part references with nonzero rank must not be specified at %L"
 msgstr ""
 
-#: fortran/resolve.c:5049
+#: fortran/resolve.c:5064
 #, gcc-internal-format, gfc-internal-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:5054
+#: fortran/resolve.c:5069
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Variable '%s' is used at %L before the ENTRY statement in which it is a "
 "parameter"
 msgstr ""
 
-#: fortran/resolve.c:5118
+#: fortran/resolve.c:5133
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr ""
 
-#: fortran/resolve.c:5131
+#: fortran/resolve.c:5146
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr ""
 
-#: fortran/resolve.c:5463
+#: fortran/resolve.c:5478
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.c:5470
+#: fortran/resolve.c:5485
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Base object for procedure-pointer component call at %L is of ABSTRACT type "
 "'%s'"
 msgstr ""
 
-#: fortran/resolve.c:5502
+#: fortran/resolve.c:5517
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Base object for type-bound procedure call at %L is of ABSTRACT type '%s'"
 msgstr ""
 
-#: fortran/resolve.c:5511
+#: fortran/resolve.c:5526
 #, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.c:5519
+#: fortran/resolve.c:5534
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar base object at %L currently not implemented"
 msgstr ""
 
 #. Nothing matching found!
-#: fortran/resolve.c:5669
+#: fortran/resolve.c:5684
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Found no matching specific binding for the call to the GENERIC '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:5696
+#: fortran/resolve.c:5711
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L should be a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.c:5743
+#: fortran/resolve.c:5758
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L should be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.c:6184
+#: fortran/resolve.c:6199
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr ""
 
-#: fortran/resolve.c:6194
+#: fortran/resolve.c:6209
 #, gcc-internal-format, gfc-internal-format
 msgid "Deleted feature: %s at %L must be integer"
 msgstr ""
 
-#: fortran/resolve.c:6198 fortran/resolve.c:6205
+#: fortran/resolve.c:6213 fortran/resolve.c:6220
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr ""
 
-#: fortran/resolve.c:6246
+#: fortran/resolve.c:6261
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.c:6281
+#: fortran/resolve.c:6296
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr ""
 
-#: fortran/resolve.c:6342
+#: fortran/resolve.c:6357
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.c:6347
+#: fortran/resolve.c:6362
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.c:6354
+#: fortran/resolve.c:6369
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.c:6362
+#: fortran/resolve.c:6377
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr ""
 
-#: fortran/resolve.c:6367
+#: fortran/resolve.c:6382
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.c:6383
+#: fortran/resolve.c:6398
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index '%s' may not appear in triplet specification at %L"
 msgstr ""
 
-#: fortran/resolve.c:6477 fortran/resolve.c:6733
+#: fortran/resolve.c:6492 fortran/resolve.c:6772
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr ""
 
-#: fortran/resolve.c:6578
+#: fortran/resolve.c:6500 fortran/resolve.c:6738
+#, gcc-internal-format, gfc-internal-format
+msgid "Coindexed allocatable object at %L"
+msgstr ""
+
+#: fortran/resolve.c:6602
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Source-expr at %L must be scalar or have the same rank as the allocate-"
 "object at %L"
 msgstr ""
 
-#: fortran/resolve.c:6606
+#: fortran/resolve.c:6630
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr ""
 
-#: fortran/resolve.c:6699
-#, gcc-internal-format, gfc-internal-format
-msgid "Coindexed allocatable object at %L"
-msgstr ""
-
-#: fortran/resolve.c:6744
+#: fortran/resolve.c:6783
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr ""
 
-#: fortran/resolve.c:6757
+#: fortran/resolve.c:6796
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "The allocate-object at %L and the source-expr at %L shall have the same kind "
 "type parameter"
 msgstr ""
 
-#: fortran/resolve.c:6769
+#: fortran/resolve.c:6810
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"The source-expr at %L shall neither be of type LOCK_TYPE nor have a "
+"LOCK_TYPE component if allocate-object at %L is a coarray"
+msgstr ""
+
+#: fortran/resolve.c:6823
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr ""
 
-#: fortran/resolve.c:6841
+#: fortran/resolve.c:6895
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.c:6853
+#: fortran/resolve.c:6909
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.c:6879
+#: fortran/resolve.c:6936
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.c:6898
+#: fortran/resolve.c:6955
 #, gcc-internal-format, gfc-internal-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:6913
+#: fortran/resolve.c:6970
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected '*' in coindex specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.c:6924
+#: fortran/resolve.c:6981
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.c:6931
+#: fortran/resolve.c:6988
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable scalar coarrays are not yet supported at %L"
 msgstr ""
 
-#: fortran/resolve.c:6961
+#: fortran/resolve.c:7018
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.c:6984
+#: fortran/resolve.c:7041
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.c:6995
+#: fortran/resolve.c:7052
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr ""
 
-#: fortran/resolve.c:7005
+#: fortran/resolve.c:7062
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L must be a scalar CHARACTER variable"
 msgstr ""
 
-#: fortran/resolve.c:7028
+#: fortran/resolve.c:7085
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.c:7058
+#: fortran/resolve.c:7115
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr ""
 
-#: fortran/resolve.c:7064 fortran/resolve.c:7070
+#: fortran/resolve.c:7121 fortran/resolve.c:7127
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr ""
@@ -40182,169 +40790,179 @@
 #. 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:7265
+#: fortran/resolve.c:7322
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr ""
 
-#: fortran/resolve.c:7316
+#: fortran/resolve.c:7373
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr ""
 
-#: fortran/resolve.c:7327
+#: fortran/resolve.c:7384
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr ""
 
-#: fortran/resolve.c:7340
+#: fortran/resolve.c:7397
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.c:7386
+#: fortran/resolve.c:7443
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Selection expression in computed GOTO statement at %L must be a scalar "
 "integer expression"
 msgstr ""
 
-#: fortran/resolve.c:7404
+#: fortran/resolve.c:7461
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr ""
 
-#: fortran/resolve.c:7413
+#: fortran/resolve.c:7470
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr ""
 
-#: fortran/resolve.c:7432 fortran/resolve.c:7440
+#: fortran/resolve.c:7489 fortran/resolve.c:7497
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr ""
 
-#: fortran/resolve.c:7502 fortran/resolve.c:7808
+#: fortran/resolve.c:7559 fortran/resolve.c:7865
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr ""
 
-#: fortran/resolve.c:7528
+#: fortran/resolve.c:7585
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr ""
 
-#: fortran/resolve.c:7540
+#: fortran/resolve.c:7597
 #, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.c:7554
+#: fortran/resolve.c:7611
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr ""
 
-#: fortran/resolve.c:7657
+#: fortran/resolve.c:7714
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr ""
 
-#: fortran/resolve.c:7721
+#: fortran/resolve.c:7778
 #, gcc-internal-format, gfc-internal-format
 msgid "Associate-name '%s' at %L is used as array"
 msgstr ""
 
-#: fortran/resolve.c:7763
+#: fortran/resolve.c:7820
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.c:7786
+#: fortran/resolve.c:7843
 #, gcc-internal-format, gfc-internal-format
 msgid "Derived type '%s' at %L must be extensible"
 msgstr ""
 
-#: fortran/resolve.c:7796
+#: fortran/resolve.c:7853
 #, gcc-internal-format, gfc-internal-format
 msgid "Derived type '%s' at %L must be an extension of '%s'"
 msgstr ""
 
-#: fortran/resolve.c:7966
+#: fortran/resolve.c:8023
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr ""
 
 #. FIXME: Test for defined input/output.
-#: fortran/resolve.c:8077
+#: fortran/resolve.c:8135
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Data transfer element at %L cannot be polymorphic unless it is processed by "
 "a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.c:8089
+#: fortran/resolve.c:8147
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components"
 msgstr ""
 
-#: fortran/resolve.c:8097
+#: fortran/resolve.c:8155
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr ""
 
-#: fortran/resolve.c:8104
+#: fortran/resolve.c:8162
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components"
 msgstr ""
 
-#: fortran/resolve.c:8111
+#: fortran/resolve.c:8169
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr ""
 
-#: fortran/resolve.c:8120
+#: fortran/resolve.c:8178
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Data transfer element at %L cannot be a full reference to an assumed-size "
 "array"
 msgstr ""
 
-#: fortran/resolve.c:8168
+#: fortran/resolve.c:8229
 #, gcc-internal-format, gfc-internal-format
-msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
+msgid "Lock variable at %L must be a scalar coarray of type LOCK_TYPE"
 msgstr ""
 
-#: fortran/resolve.c:8172 fortran/resolve.c:8182
-#, gcc-internal-format, gfc-internal-format
-msgid "Imageset argument at %L must between 1 and num_images()"
-msgstr ""
-
-#: fortran/resolve.c:8191
+#: fortran/resolve.c:8236 fortran/resolve.c:8300
 #, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.c:8198
+#: fortran/resolve.c:8248 fortran/resolve.c:8307
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr ""
 
-#: fortran/resolve.c:8225
+#: fortran/resolve.c:8260
+#, gcc-internal-format, gfc-internal-format
+msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
+msgstr ""
+
+#: fortran/resolve.c:8277
+#, gcc-internal-format, gfc-internal-format
+msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
+msgstr ""
+
+#: fortran/resolve.c:8281 fortran/resolve.c:8291
+#, gcc-internal-format, gfc-internal-format
+msgid "Imageset argument at %L must between 1 and num_images()"
+msgstr ""
+
+#: fortran/resolve.c:8334
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Statement at %L is not a valid branch target statement for the branch "
 "statement at %L"
 msgstr ""
 
-#: fortran/resolve.c:8234
+#: fortran/resolve.c:8343
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr ""
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.c:8250 fortran/resolve.c:8268
+#: fortran/resolve.c:8359 fortran/resolve.c:8377
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr ""
@@ -40352,127 +40970,127 @@
 #. 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:8283
+#: fortran/resolve.c:8392
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr ""
 
-#: fortran/resolve.c:8358
+#: fortran/resolve.c:8467
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.c:8374
+#: fortran/resolve.c:8483
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.c:8382 fortran/resolve.c:8469
+#: fortran/resolve.c:8491 fortran/resolve.c:8578
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.c:8392 fortran/resolve.c:8479
+#: fortran/resolve.c:8501 fortran/resolve.c:8588
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.c:8423
+#: fortran/resolve.c:8532
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr ""
 
-#: fortran/resolve.c:8432
+#: fortran/resolve.c:8541
 #, gcc-internal-format, gfc-internal-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:8601
+#: fortran/resolve.c:8710
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr ""
 
-#: fortran/resolve.c:8681
+#: fortran/resolve.c:8790
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr ""
 
-#: fortran/resolve.c:8833
+#: fortran/resolve.c:8942
 #, gcc-internal-format, gfc-internal-format
 msgid "CHARACTER expression will be truncated in assignment (%d/%d) at %L"
 msgstr ""
 
-#: fortran/resolve.c:8865
+#: fortran/resolve.c:8974
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Coindexed expression at %L is assigned to a derived type variable with a "
 "POINTER component in a PURE procedure"
 msgstr ""
 
-#: fortran/resolve.c:8870
+#: fortran/resolve.c:8979
 #, gcc-internal-format, gfc-internal-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:8880
+#: fortran/resolve.c:8989
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr ""
 
-#: fortran/resolve.c:8911
+#: fortran/resolve.c:9020
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable must not be polymorphic in assignment at %L"
 msgstr ""
 
-#: fortran/resolve.c:8919
+#: fortran/resolve.c:9028
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Coindexed variable must not be have an allocatable ultimate component in "
 "assignment at %L"
 msgstr ""
 
-#: fortran/resolve.c:9041
+#: fortran/resolve.c:9155
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.c:9044
+#: fortran/resolve.c:9158
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable '%s' has not been assigned a target label at %L"
 msgstr ""
 
-#: fortran/resolve.c:9055
+#: fortran/resolve.c:9169
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr ""
 
-#: fortran/resolve.c:9090
+#: fortran/resolve.c:9204
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.c:9121
+#: fortran/resolve.c:9237
 #, gcc-internal-format, gfc-internal-format
 msgid "Arithmetic IF statement at %L requires a numeric expression"
 msgstr ""
 
-#: fortran/resolve.c:9180
+#: fortran/resolve.c:9296
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.c:9263
+#: fortran/resolve.c:9379
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.c:9342 fortran/resolve.c:9398
+#: fortran/resolve.c:9458 fortran/resolve.c:9514
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Binding label '%s' for common block '%s' at %L collides with the global "
@@ -40480,14 +41098,14 @@
 msgstr ""
 
 #. Common block names match but binding labels do not.
-#: fortran/resolve.c:9363
+#: fortran/resolve.c:9479
 #, gcc-internal-format, gfc-internal-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:9410
+#: fortran/resolve.c:9526
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Binding label '%s' for common block '%s' at %L collides with global entity "
@@ -40495,74 +41113,74 @@
 msgstr ""
 
 #. Make sure global procedures don't collide with anything.
-#: fortran/resolve.c:9462
+#: fortran/resolve.c:9578
 #, gcc-internal-format, gfc-internal-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:9475
+#: fortran/resolve.c:9591
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Binding label '%s' in interface body at %L collides with the global entity "
 "'%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:9488
+#: fortran/resolve.c:9604
 #, gcc-internal-format, gfc-internal-format
 msgid "Binding label '%s' at %L collides with global entity '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:9567
+#: fortran/resolve.c:9683
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "CHARACTER variable at %L has negative length %d, the length has been set to "
 "zero"
 msgstr ""
 
-#: fortran/resolve.c:9580
+#: fortran/resolve.c:9696
 #, gcc-internal-format, gfc-internal-format
 msgid "String length at %L is too large"
 msgstr ""
 
-#: fortran/resolve.c:9868
+#: fortran/resolve.c:9989
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocatable array '%s' at %L must have a deferred shape"
 msgstr ""
 
-#: fortran/resolve.c:9872
+#: fortran/resolve.c:9993
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar object '%s' at %L may not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.c:9880
+#: fortran/resolve.c:10001
 #, gcc-internal-format, gfc-internal-format
 msgid "Array pointer '%s' at %L must have a deferred shape"
 msgstr ""
 
-#: fortran/resolve.c:9890
+#: fortran/resolve.c:10011
 #, gcc-internal-format, gfc-internal-format
 msgid "Array '%s' at %L cannot have a deferred shape"
 msgstr ""
 
-#: fortran/resolve.c:9903
+#: fortran/resolve.c:10024
 #, gcc-internal-format, gfc-internal-format
 msgid "Type '%s' of CLASS variable '%s' at %L is not extensible"
 msgstr ""
 
-#: fortran/resolve.c:9915
+#: fortran/resolve.c:10036
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS variable '%s' at %L must be dummy, allocatable or pointer"
 msgstr ""
 
-#: fortran/resolve.c:9944
+#: fortran/resolve.c:10065
 #, gcc-internal-format, gfc-internal-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:9966
+#: fortran/resolve.c:10087
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Fortran 2008: Implied SAVE for module variable '%s' at %L, needed due to the "
@@ -40571,197 +41189,197 @@
 
 #. The shape of a main program or module array needs to be
 #. constant.
-#: fortran/resolve.c:10013
+#: fortran/resolve.c:10134
 #, gcc-internal-format, gfc-internal-format
 msgid "The module or main program array '%s' at %L must have constant shape"
 msgstr ""
 
-#: fortran/resolve.c:10022
+#: fortran/resolve.c:10143
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Entity '%s' at %L has a deferred type parameter and requires either the "
 "pointer or allocatable attribute"
 msgstr ""
 
-#: fortran/resolve.c:10036
+#: fortran/resolve.c:10157
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Entity with assumed character length at %L must be a dummy argument or a "
 "PARAMETER"
 msgstr ""
 
-#: fortran/resolve.c:10055
+#: fortran/resolve.c:10176
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L must have constant character length in this context"
 msgstr ""
 
-#: fortran/resolve.c:10092
+#: fortran/resolve.c:10220
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocatable '%s' at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.c:10095
+#: fortran/resolve.c:10223
 #, gcc-internal-format, gfc-internal-format
 msgid "External '%s' at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.c:10099
+#: fortran/resolve.c:10227
 #, gcc-internal-format, gfc-internal-format
 msgid "Dummy '%s' at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.c:10102
+#: fortran/resolve.c:10230
 #, gcc-internal-format, gfc-internal-format
 msgid "Intrinsic '%s' at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.c:10105
+#: fortran/resolve.c:10233
 #, gcc-internal-format, gfc-internal-format
 msgid "Function result '%s' at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.c:10108
+#: fortran/resolve.c:10236
 #, gcc-internal-format, gfc-internal-format
 msgid "Automatic array '%s' at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.c:10145
+#: fortran/resolve.c:10273
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Character-valued statement function '%s' at %L must have constant length"
 msgstr ""
 
-#: fortran/resolve.c:10167
+#: fortran/resolve.c:10295
 #, gcc-internal-format, gfc-internal-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:10189 fortran/resolve.c:10213
+#: fortran/resolve.c:10317 fortran/resolve.c:10341
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Fortran 2003: Procedure '%s' in PUBLIC interface '%s' at %L takes dummy "
 "arguments of '%s' which is PRIVATE"
 msgstr ""
 
-#: fortran/resolve.c:10231
+#: fortran/resolve.c:10359
 #, gcc-internal-format, gfc-internal-format
 msgid "Function '%s' at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.c:10240
+#: fortran/resolve.c:10368
 #, gcc-internal-format, gfc-internal-format
 msgid "External object '%s' at %L may not have an initializer"
 msgstr ""
 
-#: fortran/resolve.c:10248
+#: fortran/resolve.c:10376
 #, gcc-internal-format, gfc-internal-format
 msgid "ELEMENTAL function '%s' at %L must have a scalar result"
 msgstr ""
 
-#: fortran/resolve.c:10258
+#: fortran/resolve.c:10386
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Statement function '%s' at %L may not have pointer or allocatable attribute"
 msgstr ""
 
-#: fortran/resolve.c:10277
+#: fortran/resolve.c:10405
 #, gcc-internal-format, gfc-internal-format
 msgid "CHARACTER(*) function '%s' at %L cannot be array-valued"
 msgstr ""
 
-#: fortran/resolve.c:10281
+#: fortran/resolve.c:10409
 #, gcc-internal-format, gfc-internal-format
 msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued"
 msgstr ""
 
-#: fortran/resolve.c:10285
+#: fortran/resolve.c:10413
 #, gcc-internal-format, gfc-internal-format
 msgid "CHARACTER(*) function '%s' at %L cannot be pure"
 msgstr ""
 
-#: fortran/resolve.c:10289
+#: fortran/resolve.c:10417
 #, gcc-internal-format, gfc-internal-format
 msgid "CHARACTER(*) function '%s' at %L cannot be recursive"
 msgstr ""
 
-#: fortran/resolve.c:10301
+#: fortran/resolve.c:10429
 #, gcc-internal-format, gfc-internal-format
 msgid "Obsolescent feature: CHARACTER(*) function '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:10356
+#: fortran/resolve.c:10484
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with SAVE attribute in '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:10362
+#: fortran/resolve.c:10490
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with INTENT attribute in '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:10368
+#: fortran/resolve.c:10496
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with RESULT attribute in '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:10376
+#: fortran/resolve.c:10504
 #, gcc-internal-format, gfc-internal-format
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:10382
+#: fortran/resolve.c:10510
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer result '%s' at %L is missing the pointer attribute"
 msgstr ""
 
-#: fortran/resolve.c:10428
+#: fortran/resolve.c:10556
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure '%s' at %L is not a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.c:10436
+#: fortran/resolve.c:10564
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr ""
 
-#: fortran/resolve.c:10445
+#: fortran/resolve.c:10573
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must be of type '%s'"
 msgstr ""
 
-#: fortran/resolve.c:10453
+#: fortran/resolve.c:10581
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr ""
 
-#: fortran/resolve.c:10459
+#: fortran/resolve.c:10587
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.c:10465
+#: fortran/resolve.c:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr ""
 
-#: fortran/resolve.c:10473
+#: fortran/resolve.c:10601
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.c:10481
+#: fortran/resolve.c:10609
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr ""
 
-#: fortran/resolve.c:10500
+#: fortran/resolve.c:10628
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure '%s' declared at %L has the same rank (%d) as '%s'"
 msgstr ""
 
-#: fortran/resolve.c:10533
+#: fortran/resolve.c:10661
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Only array FINAL procedures declared for derived type '%s' defined at %L, "
@@ -40769,362 +41387,362 @@
 msgstr ""
 
 #. TODO:  Remove this error when finalization is finished.
-#: fortran/resolve.c:10538
+#: fortran/resolve.c:10666
 #, gcc-internal-format, gfc-internal-format
 msgid "Finalization at %L is not yet implemented"
 msgstr ""
 
-#: fortran/resolve.c:10564
+#: fortran/resolve.c:10692
 #, gcc-internal-format, gfc-internal-format
 msgid "Can't overwrite GENERIC '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:10576
+#: fortran/resolve.c:10704
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L overrides a procedure binding declared NON_OVERRIDABLE"
 msgstr ""
 
-#: fortran/resolve.c:10584
+#: fortran/resolve.c:10712
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L must not be DEFERRED as it overrides a non-DEFERRED binding"
 msgstr ""
 
-#: fortran/resolve.c:10592
+#: fortran/resolve.c:10720
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L overrides a PURE procedure and must also be PURE"
 msgstr ""
 
-#: fortran/resolve.c:10601
+#: fortran/resolve.c:10729
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L overrides an ELEMENTAL procedure and must also be ELEMENTAL"
 msgstr ""
 
-#: fortran/resolve.c:10607
+#: fortran/resolve.c:10735
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' at %L overrides a non-ELEMENTAL procedure and must not be ELEMENTAL, "
 "either"
 msgstr ""
 
-#: fortran/resolve.c:10616
+#: fortran/resolve.c:10744
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L overrides a SUBROUTINE and must also be a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.c:10627
+#: fortran/resolve.c:10755
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L overrides a FUNCTION and must also be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.c:10638
+#: fortran/resolve.c:10766
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' at %L and the overridden FUNCTION should have matching result types"
 msgstr ""
 
-#: fortran/resolve.c:10649
+#: fortran/resolve.c:10777
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L overrides a PUBLIC procedure and must not be PRIVATE"
 msgstr ""
 
-#: fortran/resolve.c:10678
+#: fortran/resolve.c:10806
 #, gcc-internal-format, gfc-internal-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:10691
+#: fortran/resolve.c:10819
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Types mismatch for dummy argument '%s' of '%s' %L in respect to the "
 "overridden procedure"
 msgstr ""
 
-#: fortran/resolve.c:10701
+#: fortran/resolve.c:10829
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' at %L must have the same number of formal arguments as the overridden "
 "procedure"
 msgstr ""
 
-#: fortran/resolve.c:10710
+#: fortran/resolve.c:10838
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L overrides a NOPASS binding and must also be NOPASS"
 msgstr ""
 
-#: fortran/resolve.c:10721
+#: fortran/resolve.c:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' at %L overrides a binding with PASS and must also be PASS"
 msgstr ""
 
-#: fortran/resolve.c:10728
+#: fortran/resolve.c:10856
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Passed-object dummy argument of '%s' at %L must be at the same position as "
 "the passed-object dummy argument of the overridden procedure"
 msgstr ""
 
-#: fortran/resolve.c:10762
+#: fortran/resolve.c:10890
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' and '%s' can't be mixed FUNCTION/SUBROUTINE for GENERIC '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:10771
+#: fortran/resolve.c:10899
 #, gcc-internal-format, gfc-internal-format
 msgid "'%s' and '%s' for GENERIC '%s' at %L are ambiguous"
 msgstr ""
 
-#: fortran/resolve.c:10830
+#: fortran/resolve.c:10958
 #, gcc-internal-format, gfc-internal-format
 msgid "Undefined specific binding '%s' as target of GENERIC '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:10842
+#: fortran/resolve.c:10970
 #, gcc-internal-format, gfc-internal-format
 msgid "GENERIC '%s' at %L must target a specific binding, '%s' is GENERIC, too"
 msgstr ""
 
-#: fortran/resolve.c:10872
+#: fortran/resolve.c:11000
 #, gcc-internal-format, gfc-internal-format
 msgid "GENERIC '%s' at %L can't overwrite specific binding with the same name"
 msgstr ""
 
-#: fortran/resolve.c:10928
+#: fortran/resolve.c:11056
 #, gcc-internal-format, gfc-internal-format
 msgid "Type-bound operator at %L can't be NOPASS"
 msgstr ""
 
-#: fortran/resolve.c:11091
+#: fortran/resolve.c:11219
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' must be a module procedure or an external procedure with an explicit "
 "interface at %L"
 msgstr ""
 
-#: fortran/resolve.c:11128
+#: fortran/resolve.c:11256
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure '%s' with PASS(%s) at %L has no argument '%s'"
 msgstr ""
 
-#: fortran/resolve.c:11142
+#: fortran/resolve.c:11270
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure '%s' with PASS at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.c:11156 fortran/resolve.c:11610
+#: fortran/resolve.c:11284 fortran/resolve.c:11738
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:11164
+#: fortran/resolve.c:11292
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived-type '%s'"
 msgstr ""
 
-#: fortran/resolve.c:11173
+#: fortran/resolve.c:11301
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object dummy argument of '%s' at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.c:11179
+#: fortran/resolve.c:11307
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object dummy argument of '%s' at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.c:11185
+#: fortran/resolve.c:11313
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object dummy argument of '%s' at %L must not be POINTER"
 msgstr ""
 
-#: fortran/resolve.c:11211
+#: fortran/resolve.c:11339
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure '%s' at %L has the same name as a component of '%s'"
 msgstr ""
 
-#: fortran/resolve.c:11220
+#: fortran/resolve.c:11348
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Procedure '%s' at %L has the same name as an inherited component of '%s'"
 msgstr ""
 
-#: fortran/resolve.c:11310
+#: fortran/resolve.c:11438
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Derived-type '%s' declared at %L must be ABSTRACT because '%s' is DEFERRED "
 "and not overridden"
 msgstr ""
 
-#: fortran/resolve.c:11379
+#: fortran/resolve.c:11507
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "As extending type '%s' at %L has a coarray component, parent type '%s' shall "
 "also have one"
 msgstr ""
 
-#: fortran/resolve.c:11392
+#: fortran/resolve.c:11520
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-extensible derived-type '%s' at %L must not be ABSTRACT"
 msgstr ""
 
-#: fortran/resolve.c:11403
+#: fortran/resolve.c:11531
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray component '%s' at %L must be allocatable with deferred shape"
 msgstr ""
 
-#: fortran/resolve.c:11412
+#: fortran/resolve.c:11540
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Component '%s' at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.c:11422
+#: fortran/resolve.c:11550
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Component '%s' at %L with coarray component shall be a nonpointer, "
 "nonallocatable scalar"
 msgstr ""
 
-#: fortran/resolve.c:11431
+#: fortran/resolve.c:11559
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Component '%s' at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr ""
 
-#: fortran/resolve.c:11439
+#: fortran/resolve.c:11567
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Interface '%s', used by procedure pointer component '%s' at %L, is declared "
 "in a later PROCEDURE statement"
 msgstr ""
 
-#: fortran/resolve.c:11504
+#: fortran/resolve.c:11632
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Interface '%s' of procedure pointer component '%s' at %L must be explicit"
 msgstr ""
 
-#: fortran/resolve.c:11544
+#: fortran/resolve.c:11672
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Procedure pointer component '%s' with PASS(%s) at %L has no argument '%s'"
 msgstr ""
 
-#: fortran/resolve.c:11558
+#: fortran/resolve.c:11686
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Procedure pointer component '%s' with PASS at %L must have at least one "
 "argument"
 msgstr ""
 
-#: fortran/resolve.c:11574
+#: fortran/resolve.c:11702
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived type '%s'"
 msgstr ""
 
-#: fortran/resolve.c:11584
+#: fortran/resolve.c:11712
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument '%s' of '%s' with PASS(%s) at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.c:11593
+#: fortran/resolve.c:11721
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Argument '%s' of '%s' with PASS(%s) at %L may not have the POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.c:11602
+#: fortran/resolve.c:11730
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument '%s' of '%s' with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.c:11631
+#: fortran/resolve.c:11759
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Component '%s' of '%s' at %L has the same name as an inherited type-bound "
 "procedure"
 msgstr ""
 
-#: fortran/resolve.c:11644
+#: fortran/resolve.c:11772
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Character length of component '%s' needs to be a constant specification "
 "expression at %L"
 msgstr ""
 
-#: fortran/resolve.c:11655
+#: fortran/resolve.c:11783
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Character component '%s' of '%s' at %L with deferred length must be a "
 "POINTER or ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.c:11667
+#: fortran/resolve.c:11795
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Fortran 2003: the component '%s' is a PRIVATE type and cannot be a component "
 "of '%s', which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.c:11675
+#: fortran/resolve.c:11803
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr ""
 
-#: fortran/resolve.c:11684
+#: fortran/resolve.c:11812
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE "
 "attribute"
 msgstr ""
 
-#: fortran/resolve.c:11695 fortran/resolve.c:11705
+#: fortran/resolve.c:11823 fortran/resolve.c:11834
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "The pointer component '%s' of '%s' at %L is a type that has not been declared"
 msgstr ""
 
-#: fortran/resolve.c:11716
+#: fortran/resolve.c:11846
 #, gcc-internal-format, gfc-internal-format
 msgid "Component '%s' with CLASS at %L must be allocatable or pointer"
 msgstr ""
 
-#: fortran/resolve.c:11771
+#: fortran/resolve.c:11901
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array '%s' in namelist '%s' at %L is not allowed"
 msgstr ""
 
-#: fortran/resolve.c:11777
+#: fortran/resolve.c:11907
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Fortran 2003: NAMELIST array object '%s' with assumed shape in namelist '%s' "
 "at %L"
 msgstr ""
 
-#: fortran/resolve.c:11784
+#: fortran/resolve.c:11914
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Fortran 2003: NAMELIST array object '%s' with nonconstant shape in namelist "
 "'%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:11793
+#: fortran/resolve.c:11923
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Fortran 2003: NAMELIST object '%s' with nonconstant character length in "
 "namelist '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:11803
+#: fortran/resolve.c:11933
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "NAMELIST object '%s' in namelist '%s' at %L is polymorphic and requires a "
 "defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.c:11813
+#: fortran/resolve.c:11943
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Fortran 2003: NAMELIST object '%s' in namelist '%s' at %L with ALLOCATABLE "
@@ -41133,357 +41751,367 @@
 
 #. FIXME: Once UDDTIO is implemented, the following can be
 #. removed.
-#: fortran/resolve.c:11821
+#: fortran/resolve.c:11951
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "NAMELIST object '%s' in namelist '%s' at %L has ALLOCATABLE or POINTER "
 "components and thus requires a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.c:11838
+#: fortran/resolve.c:11968
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "NAMELIST object '%s' was declared PRIVATE and cannot be member of PUBLIC "
 "namelist '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:11848
+#: fortran/resolve.c:11978
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "NAMELIST object '%s' has use-associated PRIVATE components and cannot be "
 "member of namelist '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:11859
+#: fortran/resolve.c:11989
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "NAMELIST object '%s' has PRIVATE components and cannot be a member of PUBLIC "
 "namelist '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:11886
+#: fortran/resolve.c:12016
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgstr ""
 
-#: fortran/resolve.c:11905
+#: fortran/resolve.c:12035
 #, gcc-internal-format, gfc-internal-format
 msgid "Parameter array '%s' at %L cannot be automatic or of deferred shape"
 msgstr ""
 
-#: fortran/resolve.c:11917
+#: fortran/resolve.c:12047
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Implicitly typed PARAMETER '%s' at %L doesn't match a later IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.c:11928
+#: fortran/resolve.c:12058
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr ""
 
-#: fortran/resolve.c:12000
+#: fortran/resolve.c:12125
 #, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr ""
 
-#: fortran/resolve.c:12003
+#: fortran/resolve.c:12128
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr ""
 
-#: fortran/resolve.c:12015
+#: fortran/resolve.c:12140
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' at %L has the CONTIGUOUS attribute but is not an array pointer or an "
 "assumed-shape array"
 msgstr ""
 
-#: fortran/resolve.c:12089
+#: fortran/resolve.c:12214
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.c:12092
+#: fortran/resolve.c:12217
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.c:12105
+#: fortran/resolve.c:12230
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr ""
 
-#: fortran/resolve.c:12111
+#: fortran/resolve.c:12236
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "'%s' at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr ""
 
-#: fortran/resolve.c:12121
+#: fortran/resolve.c:12246
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Character dummy variable '%s' at %L with VALUE attribute must have constant "
 "length"
 msgstr ""
 
-#: fortran/resolve.c:12130
+#: fortran/resolve.c:12255
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "C interoperable character dummy variable '%s' at %L with VALUE attribute "
 "must have length one"
 msgstr ""
 
-#: fortran/resolve.c:12156
+#: fortran/resolve.c:12281
 #, gcc-internal-format, gfc-internal-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:12209
+#: fortran/resolve.c:12334
 #, gcc-internal-format, gfc-internal-format
 msgid "The derived type '%s' at %L is of type '%s', which has not been defined"
 msgstr ""
 
-#: fortran/resolve.c:12248
+#: fortran/resolve.c:12373
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: PUBLIC %s '%s' at %L of PRIVATE derived type '%s'"
 msgstr ""
 
-#: fortran/resolve.c:12267
+#: fortran/resolve.c:12386
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable '%s' at %L of type LOCK_TYPE must be a coarray"
+msgstr ""
+
+#: fortran/resolve.c:12403
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "The INTENT(OUT) dummy argument '%s' at %L is ASSUMED SIZE and so cannot have "
 "a default initializer"
 msgstr ""
 
-#: fortran/resolve.c:12279
+#: fortran/resolve.c:12414
+#, gcc-internal-format, gfc-internal-format
+msgid "Dummy argument '%s' at %L of LOCK_TYPE shall not be INTENT(OUT)"
+msgstr ""
+
+#: fortran/resolve.c:12421
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Function result '%s' at %L shall not be a coarray or have a coarray component"
 msgstr ""
 
-#: fortran/resolve.c:12285
+#: fortran/resolve.c:12427
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Variable '%s' at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.c:12292
+#: fortran/resolve.c:12434
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Variable '%s' at %L with coarray component shall be a nonpointer, "
 "nonallocatable scalar"
 msgstr ""
 
-#: fortran/resolve.c:12303
+#: fortran/resolve.c:12446
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Variable '%s' at %L is a coarray or has a coarray component and is not "
 "ALLOCATABLE, SAVE nor a dummy argument"
 msgstr ""
 
-#: fortran/resolve.c:12309
+#: fortran/resolve.c:12452
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Coarray variable '%s' at %L shall not have codimensions with deferred shape"
 msgstr ""
 
-#: fortran/resolve.c:12313
+#: fortran/resolve.c:12456
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocatable coarray variable '%s' at %L must have deferred shape"
 msgstr ""
 
-#: fortran/resolve.c:12321
+#: fortran/resolve.c:12464
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Variable '%s' at %L is INTENT(OUT) and can thus not be an allocatable "
 "coarray or have coarray components"
 msgstr ""
 
-#: fortran/resolve.c:12327
+#: fortran/resolve.c:12470
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray dummy variable '%s' at %L not allowed in BIND(C) procedure '%s'"
 msgstr ""
 
-#: fortran/resolve.c:12397
+#: fortran/resolve.c:12540
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.c:12491
+#: fortran/resolve.c:12634
 #, gcc-internal-format, gfc-internal-format
 msgid "BLOCK DATA element '%s' at %L must be in COMMON"
 msgstr ""
 
-#: fortran/resolve.c:12497
+#: fortran/resolve.c:12640
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA array '%s' at %L must be specified in a previous declaration"
 msgstr ""
 
-#: fortran/resolve.c:12511
+#: fortran/resolve.c:12649
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA element '%s' at %L cannot have a coindex"
 msgstr ""
 
-#: fortran/resolve.c:12520
+#: fortran/resolve.c:12663
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA element '%s' at %L is a pointer and so must be a full array"
 msgstr ""
 
-#: fortran/resolve.c:12566
+#: fortran/resolve.c:12709
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr ""
 
-#: fortran/resolve.c:12579
+#: fortran/resolve.c:12722
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr ""
 
-#: fortran/resolve.c:12677
+#: fortran/resolve.c:12820
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.c:12685
+#: fortran/resolve.c:12828
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.c:12693
+#: fortran/resolve.c:12836
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.c:12818
+#: fortran/resolve.c:12961
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr ""
 
-#: fortran/resolve.c:12956
+#: fortran/resolve.c:13099
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr ""
 
-#: fortran/resolve.c:12961
+#: fortran/resolve.c:13104
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr ""
 
-#: fortran/resolve.c:13045
+#: fortran/resolve.c:13188
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Derived type variable '%s' at %L must have SEQUENCE attribute to be an "
 "EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.c:13054
+#: fortran/resolve.c:13197
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Derived type variable '%s' at %L cannot have ALLOCATABLE components to be an "
 "EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.c:13062
+#: fortran/resolve.c:13205
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Derived type variable '%s' at %L with default initialization cannot be in "
 "EQUIVALENCE with a variable in COMMON"
 msgstr ""
 
-#: fortran/resolve.c:13078
+#: fortran/resolve.c:13221
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Derived type variable '%s' at %L with pointer component(s) cannot be an "
 "EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.c:13181
+#: fortran/resolve.c:13324
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr ""
 
-#: fortran/resolve.c:13196
+#: fortran/resolve.c:13339
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Either all or none of the objects in the EQUIVALENCE set at %L shall have "
 "the PROTECTED attribute"
 msgstr ""
 
-#: fortran/resolve.c:13208
+#: fortran/resolve.c:13351
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Common block member '%s' at %L cannot be an EQUIVALENCE object in the pure "
 "procedure '%s'"
 msgstr ""
 
-#: fortran/resolve.c:13217
+#: fortran/resolve.c:13360
 #, gcc-internal-format, gfc-internal-format
 msgid "Named constant '%s' at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.c:13296
+#: fortran/resolve.c:13439
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Array '%s' at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.c:13307
+#: fortran/resolve.c:13450
 #, gcc-internal-format, gfc-internal-format
 msgid "Structure component '%s' at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.c:13318
+#: fortran/resolve.c:13461
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr ""
 
-#: fortran/resolve.c:13361
+#: fortran/resolve.c:13504
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2003: PUBLIC function '%s' at %L of PRIVATE type '%s'"
 msgstr ""
 
-#: fortran/resolve.c:13374
+#: fortran/resolve.c:13517
 #, gcc-internal-format, gfc-internal-format
 msgid "ENTRY '%s' at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.c:13391
+#: fortran/resolve.c:13534
 #, gcc-internal-format, gfc-internal-format
 msgid "User operator procedure '%s' at %L must be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.c:13401
+#: fortran/resolve.c:13544
 #, gcc-internal-format, gfc-internal-format
 msgid "User operator procedure '%s' at %L cannot be assumed character length"
 msgstr ""
 
-#: fortran/resolve.c:13409
+#: fortran/resolve.c:13552
 #, gcc-internal-format, gfc-internal-format
 msgid "User operator procedure '%s' at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.c:13423
+#: fortran/resolve.c:13566
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.c:13441
+#: fortran/resolve.c:13584
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.c:13448
+#: fortran/resolve.c:13591
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr ""
 
-#: fortran/resolve.c:13520
+#: fortran/resolve.c:13667
 #, gcc-internal-format, gfc-internal-format
 msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE"
 msgstr ""
@@ -41719,40 +42347,34 @@
 "%L"
 msgstr ""
 
-#: fortran/simplify.c:3485 fortran/simplify.c:3616 fortran/simplify.c:6389
+#: fortran/simplify.c:3486 fortran/simplify.c:3617 fortran/simplify.c:6380
 #, gcc-internal-format, gfc-internal-format
 msgid "DIM argument at %L is out of bounds"
 msgstr ""
 
-#: fortran/simplify.c:3642
-#, gcc-internal-format, gfc-internal-format
-msgid ""
-"Not yet implemented: LCOBOUND for coarray with non-constant cobounds at %L"
-msgstr ""
-
-#: fortran/simplify.c:3796
+#: fortran/simplify.c:3788
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of LOG at %L cannot be less than or equal to zero"
 msgstr ""
 
-#: fortran/simplify.c:3809
+#: fortran/simplify.c:3801
 #, gcc-internal-format, gfc-internal-format
 msgid "Complex argument of LOG at %L cannot be zero"
 msgstr ""
 
-#: fortran/simplify.c:3837
+#: fortran/simplify.c:3829
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of LOG10 at %L cannot be less than or equal to zero"
 msgstr ""
 
 #. Result is processor-dependent.
-#: fortran/simplify.c:4285
+#: fortran/simplify.c:4277
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument MOD at %L is zero"
 msgstr ""
 
 #. Result is processor-dependent.
-#: fortran/simplify.c:4296
+#: fortran/simplify.c:4288
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of MOD at %L is zero"
 msgstr ""
@@ -41760,91 +42382,63 @@
 #. Result is processor-dependent. This processor just opts
 #. to not handle it at all.
 #. Result is processor-dependent.
-#: fortran/simplify.c:4338 fortran/simplify.c:4350
+#: fortran/simplify.c:4330 fortran/simplify.c:4342
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of MODULO at %L is zero"
 msgstr ""
 
-#: fortran/simplify.c:4396
+#: fortran/simplify.c:4388
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of NEAREST at %L shall not be zero"
 msgstr ""
 
-#: fortran/simplify.c:4432
+#: fortran/simplify.c:4424
 #, gcc-internal-format, gfc-internal-format
 msgid "Result of NEAREST is NaN at %L"
 msgstr ""
 
-#: fortran/simplify.c:4886
+#: fortran/simplify.c:4888
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative at %L"
 msgstr ""
 
-#: fortran/simplify.c:4941
+#: fortran/simplify.c:4943
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument NCOPIES of REPEAT intrinsic is too large at %L"
 msgstr ""
 
-#: fortran/simplify.c:5193
+#: fortran/simplify.c:5195
 #, gcc-internal-format, gfc-internal-format
 msgid "Result of SCALE overflows its kind at %L"
 msgstr ""
 
-#: fortran/simplify.c:5903
+#: fortran/simplify.c:5905
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SQRT at %L has a negative value"
 msgstr ""
 
-#: fortran/simplify.c:6100
+#: fortran/simplify.c:6102
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Intrinsic TRANSFER at %L has partly undefined result: source size %ld < "
 "result size %ld"
 msgstr ""
 
-#: fortran/simplify.c:6221
-#, gcc-internal-format, gfc-internal-format
-msgid "Too few elements in expression for SUB= argument at %L"
-msgstr ""
-
-#: fortran/simplify.c:6247
+#: fortran/simplify.c:6244
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Out of bounds in IMAGE_INDEX at %L for dimension %d, SUB has %ld and COARRAY "
 "lower bound is %ld)"
 msgstr ""
 
-#: fortran/simplify.c:6270
+#: fortran/simplify.c:6267
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Out of bounds in IMAGE_INDEX at %L for dimension %d, SUB has %ld and COARRAY "
 "upper bound is %ld)"
 msgstr ""
 
-#: fortran/simplify.c:6288
-#, gcc-internal-format, gfc-internal-format
-msgid "Too many elements in expression for SUB= argument at %L"
-msgstr ""
-
-#: fortran/simplify.c:6303
-#, gcc-internal-format, gfc-internal-format
-msgid ""
-"Not yet implemented: IMAGE_INDEX for coarray with non-constant cobounds at %L"
-msgstr ""
-
-#: fortran/simplify.c:6402
-#, gcc-internal-format, gfc-internal-format
-msgid ""
-"Not yet implemented: THIS_IMAGE for coarray with non-constant cobounds at %L"
-msgstr ""
-
-#: fortran/simplify.c:6424
-#, gcc-internal-format, gfc-internal-format
-msgid ""
-"Not yet implemented: UCOBOUND for coarray with non-constant cobounds at %L"
-msgstr ""
-
-#: fortran/simplify.c:6781
+#: fortran/simplify.c:6754
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Character '%s' in string at %L cannot be converted into character kind %d"
@@ -42224,25 +42818,19 @@
 msgid "BOZ constant at %L is too large (%ld vs %ld bits)"
 msgstr ""
 
-#: fortran/trans-array.c:775 fortran/trans-array.c:4932
-#: fortran/trans-array.c:6133 fortran/trans-intrinsic.c:4790
-#, gcc-internal-format, gfc-internal-format
-msgid "Creating array temporary at %L"
-msgstr ""
-
-#: fortran/trans-array.c:6130
+#: fortran/trans-array.c:6292
 #, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L for argument '%s'"
 msgstr ""
 
-#: fortran/trans-array.c:7156
+#: fortran/trans-array.c:7328
 #, gcc-internal-format
 msgid ""
 "Possible front-end bug: Deferred array size without pointer, allocatable "
 "attribute or derived type without allocatable components."
 msgstr ""
 
-#: fortran/trans-array.c:7655
+#: fortran/trans-array.c:7844
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr ""
@@ -42334,54 +42922,54 @@
 msgid "non-constant initialization expression at %L"
 msgstr ""
 
-#: fortran/trans-decl.c:1262
+#: fortran/trans-decl.c:1316
 #, gcc-internal-format
 msgid "intrinsic variable which isn't a procedure"
 msgstr ""
 
-#: fortran/trans-decl.c:3321 fortran/trans-decl.c:4843
+#: fortran/trans-decl.c:3398 fortran/trans-decl.c:5158
 #, gcc-internal-format, gfc-internal-format
 msgid "Return value of function '%s' at %L not set"
 msgstr ""
 
-#: fortran/trans-decl.c:3582
+#: fortran/trans-decl.c:3672
 #, gcc-internal-format
 msgid "Deferred type parameter not yet supported"
 msgstr ""
 
-#: fortran/trans-decl.c:3789
+#: fortran/trans-decl.c:3879
 #, gcc-internal-format, gfc-internal-format
 msgid "backend decl for module variable %s already exists"
 msgstr ""
 
-#: fortran/trans-decl.c:4167
+#: fortran/trans-decl.c:4387
 #, gcc-internal-format, gfc-internal-format
 msgid "Dummy argument '%s' at %L was declared INTENT(OUT) but was not set"
 msgstr ""
 
-#: fortran/trans-decl.c:4171
+#: fortran/trans-decl.c:4391
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "Derived-type dummy argument '%s' at %L was declared INTENT(OUT) but was not "
 "set and does not have a default initializer"
 msgstr ""
 
-#: fortran/trans-decl.c:4177
+#: fortran/trans-decl.c:4397
 #, gcc-internal-format, gfc-internal-format
 msgid "Unused dummy argument '%s' at %L"
 msgstr ""
 
-#: fortran/trans-decl.c:4186
+#: fortran/trans-decl.c:4406
 #, gcc-internal-format, gfc-internal-format
 msgid "Unused variable '%s' declared at %L"
 msgstr ""
 
-#: fortran/trans-decl.c:4234
+#: fortran/trans-decl.c:4454
 #, gcc-internal-format, gfc-internal-format
 msgid "Unused parameter '%s' declared at %L"
 msgstr ""
 
-#: fortran/trans-decl.c:4248
+#: fortran/trans-decl.c:4468
 #, gcc-internal-format, gfc-internal-format
 msgid "Return value '%s' of function '%s' declared at %L not set"
 msgstr ""
@@ -42396,22 +42984,23 @@
 msgid "Unknown argument list function at %L"
 msgstr ""
 
-#: fortran/trans-intrinsic.c:851
+#: fortran/trans-intrinsic.c:853
 #, gcc-internal-format, gfc-internal-format
 msgid "Intrinsic function %s(%d) not recognized"
 msgstr ""
 
-#: fortran/trans-intrinsic.c:987
+#: fortran/trans-intrinsic.c:1014 fortran/trans-intrinsic.c:1346
+#: fortran/trans-intrinsic.c:1526
 #, gcc-internal-format, gfc-internal-format
 msgid "'dim' argument of %s intrinsic at %L is not a valid dimension index"
 msgstr ""
 
-#: fortran/trans-io.c:2041
+#: fortran/trans-io.c:2035
 #, gcc-internal-format, gfc-internal-format
 msgid "Derived type '%s' at %L has PRIVATE components"
 msgstr ""
 
-#: fortran/trans-io.c:2189
+#: fortran/trans-io.c:2183
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad IO basetype (%d)"
 msgstr ""
@@ -42426,27 +43015,32 @@
 msgid "An alternate return at %L without a * dummy argument"
 msgstr ""
 
-#: fortran/trans-types.c:478
+#: fortran/trans-stmt.c:837
+#, gcc-internal-format, gfc-internal-format
+msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
+msgstr ""
+
+#: fortran/trans-types.c:489
 #, gcc-internal-format
 msgid "integer kind=8 not available for -fdefault-integer-8 option"
 msgstr ""
 
-#: fortran/trans-types.c:501
+#: fortran/trans-types.c:512
 #, gcc-internal-format
 msgid "real kind=8 not available for -fdefault-real-8 option"
 msgstr ""
 
-#: fortran/trans-types.c:514
+#: fortran/trans-types.c:525
 #, gcc-internal-format
 msgid "Use of -fdefault-double-8 requires -fdefault-real-8"
 msgstr ""
 
-#: fortran/trans-types.c:1365
+#: fortran/trans-types.c:1379
 #, gcc-internal-format
 msgid "Array element size too big"
 msgstr ""
 
-#: fortran/trans.c:1409
+#: fortran/trans.c:1410
 #, gcc-internal-format
 msgid "gfc_trans_code(): Bad statement code"
 msgstr ""
@@ -42481,113 +43075,113 @@
 msgid "non-static method %q+D overrides static method"
 msgstr ""
 
-#: java/decl.c:1227
+#: java/decl.c:1209
 #, gcc-internal-format
 msgid "%q+D used prior to declaration"
 msgstr ""
 
-#: java/decl.c:1653
+#: java/decl.c:1632
 #, gcc-internal-format
 msgid "In %+D: overlapped variable and exception ranges at %d"
 msgstr ""
 
-#: java/decl.c:1704
+#: java/decl.c:1683
 #, gcc-internal-format
 msgid "bad type in parameter debug info"
 msgstr ""
 
-#: java/decl.c:1713
+#: java/decl.c:1692
 #, gcc-internal-format
 msgid "bad PC range for debug info for local %q+D"
 msgstr ""
 
-#: java/expr.c:351
+#: java/expr.c:357
 #, gcc-internal-format, gfc-internal-format
 msgid "need to insert runtime check for %s"
 msgstr ""
 
-#: java/expr.c:499 java/expr.c:546
+#: java/expr.c:505 java/expr.c:552
 #, gcc-internal-format, gfc-internal-format
 msgid "assert: %s is assign compatible with %s"
 msgstr ""
 
-#: java/expr.c:657
+#: java/expr.c:663
 #, gcc-internal-format
 msgid "stack underflow - dup* operation"
 msgstr ""
 
-#: java/expr.c:1656
+#: java/expr.c:1662
 #, gcc-internal-format
 msgid "reference %qs is ambiguous: appears in interface %qs and interface %qs"
 msgstr ""
 
-#: java/expr.c:1684
+#: java/expr.c:1690
 #, gcc-internal-format
 msgid "field %qs not found"
 msgstr ""
 
-#: java/expr.c:2247
+#: java/expr.c:2253
 #, gcc-internal-format, gfc-internal-format
 msgid "method '%s' not found in class"
 msgstr ""
 
-#: java/expr.c:2442
+#: java/expr.c:2448
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to find class '%s'"
 msgstr ""
 
-#: java/expr.c:2483
+#: java/expr.c:2489
 #, gcc-internal-format, gfc-internal-format
 msgid "class '%s' has no method named '%s' matching signature '%s'"
 msgstr ""
 
-#: java/expr.c:2514
+#: java/expr.c:2520
 #, gcc-internal-format
 msgid "invokestatic on non static method"
 msgstr ""
 
-#: java/expr.c:2519
+#: java/expr.c:2525
 #, gcc-internal-format
 msgid "invokestatic on abstract method"
 msgstr ""
 
-#: java/expr.c:2527
+#: java/expr.c:2533
 #, gcc-internal-format
 msgid "invoke[non-static] on static method"
 msgstr ""
 
-#: java/expr.c:2886
+#: java/expr.c:2891
 #, gcc-internal-format, gfc-internal-format
 msgid "missing field '%s' in '%s'"
 msgstr ""
 
-#: java/expr.c:2893
+#: java/expr.c:2898
 #, gcc-internal-format, gfc-internal-format
 msgid "mismatching signature for field '%s' in '%s'"
 msgstr ""
 
-#: java/expr.c:2922
+#: java/expr.c:2927
 #, gcc-internal-format
 msgid "assignment to final field %q+D not in field%'s class"
 msgstr ""
 
-#: java/expr.c:3146
+#: java/expr.c:3151
 #, gcc-internal-format
 msgid "invalid PC in line number table"
 msgstr ""
 
-#: java/expr.c:3196
+#: java/expr.c:3201
 #, gcc-internal-format, gfc-internal-format
 msgid "unreachable bytecode from %d to before %d"
 msgstr ""
 
-#: java/expr.c:3238
+#: java/expr.c:3243
 #, gcc-internal-format, gfc-internal-format
 msgid "unreachable bytecode from %d to the end of the method"
 msgstr ""
 
 #. duplicate code from LOAD macro
-#: java/expr.c:3546
+#: java/expr.c:3551
 #, gcc-internal-format
 msgid "unrecogized wide sub-instruction"
 msgstr ""
@@ -42658,22 +43252,22 @@
 msgid "missing Code attribute"
 msgstr ""
 
-#: java/jcf-parse.c:1850
+#: java/jcf-parse.c:1849
 #, gcc-internal-format
 msgid "no input file specified"
 msgstr ""
 
-#: java/jcf-parse.c:1886
+#: java/jcf-parse.c:1885
 #, gcc-internal-format
 msgid "can%'t close input file %s: %m"
 msgstr ""
 
-#: java/jcf-parse.c:1929
+#: java/jcf-parse.c:1928
 #, gcc-internal-format, gfc-internal-format
 msgid "bad zip/jar file %s"
 msgstr ""
 
-#: java/jcf-parse.c:2131
+#: java/jcf-parse.c:2130
 #, gcc-internal-format, gfc-internal-format
 msgid "error while reading %s from zip file"
 msgstr ""
@@ -42768,7 +43362,7 @@
 msgid "bad pc in exception_table"
 msgstr ""
 
-#: lto/lto-lang.c:695
+#: lto/lto-lang.c:679
 #, gcc-internal-format
 msgid "-fwpa and -fltrans are mutually exclusive"
 msgstr ""
@@ -42799,204 +43393,204 @@
 msgid "two or more sections for %s"
 msgstr ""
 
-#: lto/lto.c:161
+#: lto/lto.c:169
 #, gcc-internal-format, gfc-internal-format
 msgid "%s: section %s is missing"
 msgstr ""
 
-#: lto/lto.c:293
+#: lto/lto.c:866
 #, gcc-internal-format
 msgid "bytecode stream: garbage at the end of symbols section"
 msgstr ""
 
-#: lto/lto.c:317
+#: lto/lto.c:890
 #, gcc-internal-format
 msgid "could not parse hex number"
 msgstr ""
 
-#: lto/lto.c:349
+#: lto/lto.c:922
 #, gcc-internal-format, gfc-internal-format
 msgid "unexpected file name %s in linker resolution file. Expected %s"
 msgstr ""
 
-#: lto/lto.c:358
+#: lto/lto.c:931
 #, gcc-internal-format
 msgid "could not parse file offset"
 msgstr ""
 
-#: lto/lto.c:361
+#: lto/lto.c:934
 #, gcc-internal-format
 msgid "unexpected offset"
 msgstr ""
 
-#: lto/lto.c:380
+#: lto/lto.c:953
 #, gcc-internal-format
 msgid "invalid line in the resolution file"
 msgstr ""
 
-#: lto/lto.c:393
+#: lto/lto.c:966
 #, gcc-internal-format
 msgid "invalid resolution in the resolution file"
 msgstr ""
 
-#: lto/lto.c:399
+#: lto/lto.c:972
 #, gcc-internal-format
 msgid "resolution sub id %x not in object file"
 msgstr ""
 
-#: lto/lto.c:484
+#: lto/lto.c:1057
 #, gcc-internal-format, gfc-internal-format
 msgid "cannot read LTO decls from %s"
 msgstr ""
 
-#: lto/lto.c:1460
+#: lto/lto.c:2084
 #, gcc-internal-format
 msgid "no LTRANS output list filename provided"
 msgstr ""
 
-#: lto/lto.c:1463
+#: lto/lto.c:2087
 #, gcc-internal-format
 msgid "opening LTRANS output list %s: %m"
 msgstr ""
 
-#: lto/lto.c:1504
+#: lto/lto.c:2128
 #, gcc-internal-format
 msgid "lto_obj_file_open() failed"
 msgstr ""
 
-#: lto/lto.c:1530
+#: lto/lto.c:2154
 #, gcc-internal-format
 msgid "writing to LTRANS output list %s: %m"
 msgstr ""
 
-#: lto/lto.c:1538
+#: lto/lto.c:2162
 #, gcc-internal-format
 msgid "closing LTRANS output list %s: %m"
 msgstr ""
 
-#: lto/lto.c:2130
+#: lto/lto.c:2443
 #, gcc-internal-format
 msgid "could not open symbol resolution file: %m"
 msgstr ""
 
-#: lto/lto.c:2202
+#: lto/lto.c:2518
 #, gcc-internal-format
 msgid "errors during merging of translation units"
 msgstr ""
 
-#: objc/objc-act.c:437 objc/objc-act.c:6546
+#: objc/objc-act.c:436 objc/objc-act.c:7010
 #, gcc-internal-format
 msgid "%<@end%> missing in implementation context"
 msgstr ""
 
-#: objc/objc-act.c:594
+#: objc/objc-act.c:593
 #, gcc-internal-format
 msgid "class attributes are not available in Objective-C 1.0"
 msgstr ""
 
-#: objc/objc-act.c:609
+#: objc/objc-act.c:608
 #, gcc-internal-format
 msgid "category attributes are not available in Objective-C 1.0"
 msgstr ""
 
-#: objc/objc-act.c:612
+#: objc/objc-act.c:611
 #, gcc-internal-format
 msgid ""
 "category attributes are not available in this version of the compiler, "
 "(ignored)"
 msgstr ""
 
-#: objc/objc-act.c:618
+#: objc/objc-act.c:617
 #, gcc-internal-format
 msgid "class extensions are not available in Objective-C 1.0"
 msgstr ""
 
-#: objc/objc-act.c:632
+#: objc/objc-act.c:631
 #, gcc-internal-format
 msgid "class extension for class %qE declared after its %<@implementation%>"
 msgstr ""
 
-#: objc/objc-act.c:647
+#: objc/objc-act.c:646
 #, gcc-internal-format
 msgid "protocol attributes are not available in Objective-C 1.0"
 msgstr ""
 
-#: objc/objc-act.c:712
+#: objc/objc-act.c:711
 #, gcc-internal-format
 msgid "%<@end%> must appear in an @implementation context"
 msgstr ""
 
-#: objc/objc-act.c:721
+#: objc/objc-act.c:720
 #, gcc-internal-format
 msgid "%<@package%> is not available in Objective-C 1.0"
 msgstr ""
 
-#: objc/objc-act.c:723
+#: objc/objc-act.c:722
 #, gcc-internal-format
 msgid "%<@package%> presently has the same effect as %<@public%>"
 msgstr ""
 
-#: objc/objc-act.c:734
+#: objc/objc-act.c:733
 #, gcc-internal-format
 msgid "%<@optional%> is not available in Objective-C 1.0"
 msgstr ""
 
-#: objc/objc-act.c:736
+#: objc/objc-act.c:735
 #, gcc-internal-format
 msgid "%<@required%> is not available in Objective-C 1.0"
 msgstr ""
 
-#: objc/objc-act.c:744
+#: objc/objc-act.c:743
 #, gcc-internal-format
 msgid "%<@optional%> is allowed in @protocol context only"
 msgstr ""
 
-#: objc/objc-act.c:746
+#: objc/objc-act.c:745
 #, gcc-internal-format
 msgid "%<@required%> is allowed in @protocol context only"
 msgstr ""
 
-#: objc/objc-act.c:853
+#: objc/objc-act.c:852
 #, gcc-internal-format
 msgid "%<@property%> is not available in Objective-C 1.0"
 msgstr ""
 
-#: objc/objc-act.c:857
+#: objc/objc-act.c:856
 #, gcc-internal-format
 msgid "%<readonly%> attribute conflicts with %<readwrite%> attribute"
 msgstr ""
 
-#: objc/objc-act.c:874
+#: objc/objc-act.c:873
 #, gcc-internal-format
 msgid "%<readonly%> attribute conflicts with %<setter%> attribute"
 msgstr ""
 
-#: objc/objc-act.c:880
+#: objc/objc-act.c:879
 #, gcc-internal-format
 msgid "%<assign%> attribute conflicts with %<retain%> attribute"
 msgstr ""
 
-#: objc/objc-act.c:885
+#: objc/objc-act.c:884
 #, gcc-internal-format
 msgid "%<assign%> attribute conflicts with %<copy%> attribute"
 msgstr ""
 
-#: objc/objc-act.c:890
+#: objc/objc-act.c:889
 #, gcc-internal-format
 msgid "%<retain%> attribute conflicts with %<copy%> attribute"
 msgstr ""
 
-#: objc/objc-act.c:907
+#: objc/objc-act.c:906
 #, gcc-internal-format
 msgid "property declaration not in @interface or @protocol context"
 msgstr ""
 
-#: objc/objc-act.c:918
+#: objc/objc-act.c:917
 #, gcc-internal-format
 msgid "invalid property declaration"
 msgstr ""
 
-#: objc/objc-act.c:926
+#: objc/objc-act.c:925
 #, gcc-internal-format
 msgid "property can not be an array"
 msgstr ""
@@ -43008,84 +43602,84 @@
 #. and arguments of functions can not be bitfields).  The
 #. underlying instance variable could be a bitfield, but that is
 #. a different matter.
-#: objc/objc-act.c:944
+#: objc/objc-act.c:943
 #, gcc-internal-format
 msgid "property can not be a bit-field"
 msgstr ""
 
-#: objc/objc-act.c:976
+#: objc/objc-act.c:975
 #, gcc-internal-format
 msgid ""
 "object property %qD has no %<assign%>, %<retain%> or %<copy%> attribute; "
 "assuming %<assign%>"
 msgstr ""
 
-#: objc/objc-act.c:979
+#: objc/objc-act.c:978
 #, gcc-internal-format
 msgid ""
 "%<assign%> can be unsafe for Objective-C objects; please state explicitly if "
 "you need it"
 msgstr ""
 
-#: objc/objc-act.c:986
+#: objc/objc-act.c:985
 #, gcc-internal-format
 msgid "%<retain%> attribute is only valid for Objective-C objects"
 msgstr ""
 
-#: objc/objc-act.c:990
+#: objc/objc-act.c:989
 #, gcc-internal-format
 msgid "%<copy%> attribute is only valid for Objective-C objects"
 msgstr ""
 
-#: objc/objc-act.c:1044
+#: objc/objc-act.c:1043
 #, gcc-internal-format
 msgid "redeclaration of property %qD"
 msgstr ""
 
-#: objc/objc-act.c:1047 objc/objc-act.c:1112 objc/objc-act.c:1122
-#: objc/objc-act.c:1135 objc/objc-act.c:1146 objc/objc-act.c:1157
-#: objc/objc-act.c:1194 objc/objc-act.c:7315 objc/objc-act.c:7378
-#: objc/objc-act.c:7400 objc/objc-act.c:7413 objc/objc-act.c:7431
-#: objc/objc-act.c:7530
+#: objc/objc-act.c:1046 objc/objc-act.c:1111 objc/objc-act.c:1121
+#: objc/objc-act.c:1134 objc/objc-act.c:1145 objc/objc-act.c:1156
+#: objc/objc-act.c:1193 objc/objc-act.c:7781 objc/objc-act.c:7844
+#: objc/objc-act.c:7866 objc/objc-act.c:7879 objc/objc-act.c:7897
+#: objc/objc-act.c:7996
 #, gcc-internal-format
 msgid "originally specified here"
 msgstr ""
 
-#: objc/objc-act.c:1109
+#: objc/objc-act.c:1108
 #, gcc-internal-format
 msgid ""
 "'nonatomic' attribute of property %qD conflicts with previous declaration"
 msgstr ""
 
-#: objc/objc-act.c:1119
+#: objc/objc-act.c:1118
 #, gcc-internal-format
 msgid "'getter' attribute of property %qD conflicts with previous declaration"
 msgstr ""
 
-#: objc/objc-act.c:1132
+#: objc/objc-act.c:1131
 #, gcc-internal-format
 msgid "'setter' attribute of property %qD conflicts with previous declaration"
 msgstr ""
 
-#: objc/objc-act.c:1143
+#: objc/objc-act.c:1142
 #, gcc-internal-format
 msgid ""
 "assign semantics attributes of property %qD conflict with previous "
 "declaration"
 msgstr ""
 
-#: objc/objc-act.c:1154
+#: objc/objc-act.c:1153
 #, gcc-internal-format
 msgid ""
 "'readonly' attribute of property %qD conflicts with previous declaration"
 msgstr ""
 
-#: objc/objc-act.c:1192
+#: objc/objc-act.c:1191
 #, gcc-internal-format
 msgid "type of property %qD conflicts with previous declaration"
 msgstr ""
 
-#: objc/objc-act.c:1665
+#: objc/objc-act.c:1664
 #, gcc-internal-format
 msgid "the dot syntax is not available in Objective-C 1.0"
 msgstr ""
@@ -43093,28 +43687,28 @@
 #. We know that 'class_name' is an Objective-C class name as the
 #. parser won't call this function if it is not.  This is only a
 #. double-check for safety.
-#: objc/objc-act.c:1681
+#: objc/objc-act.c:1680
 #, gcc-internal-format
 msgid "could not find class %qE"
 msgstr ""
 
 #. Again, this should never happen, but we do check.
-#: objc/objc-act.c:1689
+#: objc/objc-act.c:1688
 #, gcc-internal-format
 msgid "could not find interface for class %qE"
 msgstr ""
 
-#: objc/objc-act.c:1695 objc/objc-act.c:6583 objc/objc-act.c:6714
+#: objc/objc-act.c:1694 objc/objc-act.c:7047 objc/objc-act.c:7178
 #, gcc-internal-format
 msgid "class %qE is deprecated"
 msgstr ""
 
-#: objc/objc-act.c:1724
+#: objc/objc-act.c:1723
 #, gcc-internal-format
 msgid "could not find setter/getter for %qE in class %qE"
 msgstr ""
 
-#: objc/objc-act.c:1760
+#: objc/objc-act.c:1759
 #, gcc-internal-format
 msgid "readonly property can not be set"
 msgstr ""
@@ -43123,67 +43717,67 @@
 #. impossible to get here.  But it's good to have the check in
 #. case the parser changes.
 #.
-#: objc/objc-act.c:2030
+#: objc/objc-act.c:2029
 #, gcc-internal-format
 msgid "method declaration not in @interface context"
 msgstr ""
 
-#: objc/objc-act.c:2034
+#: objc/objc-act.c:2033
 #, gcc-internal-format
 msgid "method attributes are not available in Objective-C 1.0"
 msgstr ""
 
-#: objc/objc-act.c:2051
+#: objc/objc-act.c:2053
 #, gcc-internal-format
 msgid "method definition not in @implementation context"
 msgstr ""
 
-#: objc/objc-act.c:2066
+#: objc/objc-act.c:2068
 #, gcc-internal-format
 msgid "method attributes can not be specified in @implementation context"
 msgstr ""
 
-#: objc/objc-act.c:2295
+#: objc/objc-act.c:2297
 #, gcc-internal-format
 msgid "class %qs does not implement the %qE protocol"
 msgstr ""
 
-#: objc/objc-act.c:2298
+#: objc/objc-act.c:2300
 #, gcc-internal-format
 msgid "type %qs does not conform to the %qE protocol"
 msgstr ""
 
-#: objc/objc-act.c:2562
+#: objc/objc-act.c:2581
 #, gcc-internal-format
 msgid "comparison of distinct Objective-C types lacks a cast"
 msgstr ""
 
-#: objc/objc-act.c:2566
+#: objc/objc-act.c:2585
 #, gcc-internal-format
 msgid "initialization from distinct Objective-C type"
 msgstr ""
 
-#: objc/objc-act.c:2570
+#: objc/objc-act.c:2589
 #, gcc-internal-format
 msgid "assignment from distinct Objective-C type"
 msgstr ""
 
-#: objc/objc-act.c:2574
+#: objc/objc-act.c:2593
 #, gcc-internal-format
 msgid "distinct Objective-C type in return"
 msgstr ""
 
-#: objc/objc-act.c:2578
+#: objc/objc-act.c:2597
 #, gcc-internal-format
 msgid "passing argument %d of %qE from distinct Objective-C type"
 msgstr ""
 
-#: objc/objc-act.c:2716
+#: objc/objc-act.c:2735
 #, gcc-internal-format
 msgid "statically allocated instance of Objective-C class %qE"
 msgstr ""
 
-#: objc/objc-act.c:2725
+#: objc/objc-act.c:2744
 #, gcc-internal-format
 msgid "redeclaration of Objective-C class %qs"
 msgstr ""
@@ -43195,230 +43789,264 @@
 #. Objective-C class, but something else, such as 'int'.
 #. This is an error; protocols make no sense unless you use
 #. them with Objective-C objects.
-#: objc/objc-act.c:2767
+#: objc/objc-act.c:2786
 #, gcc-internal-format
 msgid "only Objective-C object types can be qualified with a protocol"
 msgstr ""
 
-#: objc/objc-act.c:2831
+#: objc/objc-act.c:2850
 #, gcc-internal-format
 msgid "protocol %qE has circular dependency"
 msgstr ""
 
-#: objc/objc-act.c:2864 objc/objc-act.c:5382
+#: objc/objc-act.c:2883 objc/objc-act.c:5807
 #, gcc-internal-format
 msgid "cannot find protocol declaration for %qE"
 msgstr ""
 
-#: objc/objc-act.c:3167 objc/objc-act.c:3826 objc/objc-act.c:6159
-#: objc/objc-act.c:6634 objc/objc-act.c:6707 objc/objc-act.c:6760
+#: objc/objc-act.c:3186 objc/objc-act.c:3848 objc/objc-act.c:6623
+#: objc/objc-act.c:7098 objc/objc-act.c:7171 objc/objc-act.c:7224
 #, gcc-internal-format
 msgid "cannot find interface declaration for %qE"
 msgstr ""
 
-#: objc/objc-act.c:3171
+#: objc/objc-act.c:3190
 #, gcc-internal-format
 msgid "interface %qE does not have valid constant string layout"
 msgstr ""
 
-#: objc/objc-act.c:3176
+#: objc/objc-act.c:3195
 #, gcc-internal-format
 msgid "cannot find reference tag for class %qE"
 msgstr ""
 
-#: objc/objc-act.c:3321
+#: objc/objc-act.c:3340
 #, gcc-internal-format
 msgid "%qE is not an Objective-C class name or alias"
 msgstr ""
 
-#: objc/objc-act.c:3336 objc/objc-act.c:3369 objc/objc-act.c:6540
-#: objc/objc-act.c:7862 objc/objc-act.c:7917
+#: objc/objc-act.c:3355 objc/objc-act.c:3387 objc/objc-act.c:7004
+#: objc/objc-act.c:8327 objc/objc-act.c:8378
 #, gcc-internal-format
 msgid "Objective-C declarations may only appear in global scope"
 msgstr ""
 
-#: objc/objc-act.c:3341
+#: objc/objc-act.c:3360
 #, gcc-internal-format
 msgid "cannot find class %qE"
 msgstr ""
 
-#: objc/objc-act.c:3343
+#: objc/objc-act.c:3362
 #, gcc-internal-format
 msgid "class %qE already exists"
 msgstr ""
 
-#: objc/objc-act.c:3391 objc/objc-act.c:6599
+#: objc/objc-act.c:3405 objc/objc-act.c:7063
 #, gcc-internal-format
 msgid "%qE redeclared as different kind of symbol"
 msgstr ""
 
-#: objc/objc-act.c:3680
+#: objc/objc-act.c:3700
 #, gcc-internal-format
 msgid "strong-cast assignment has been intercepted"
 msgstr ""
 
-#: objc/objc-act.c:3722
+#: objc/objc-act.c:3742
 #, gcc-internal-format
 msgid "strong-cast may possibly be needed"
 msgstr ""
 
-#: objc/objc-act.c:3732
+#: objc/objc-act.c:3752
 #, gcc-internal-format
 msgid "instance variable assignment has been intercepted"
 msgstr ""
 
-#: objc/objc-act.c:3751
+#: objc/objc-act.c:3771
 #, gcc-internal-format
 msgid "pointer arithmetic for garbage-collected objects not allowed"
 msgstr ""
 
-#: objc/objc-act.c:3757
+#: objc/objc-act.c:3777
 #, gcc-internal-format
 msgid "global/static variable assignment has been intercepted"
 msgstr ""
 
-#: objc/objc-act.c:3892
+#: objc/objc-act.c:3993 objc/objc-act.c:4021 objc/objc-act.c:4077
+#, gcc-internal-format
+msgid "duplicate instance variable %q+D"
+msgstr ""
+
+#: objc/objc-act.c:4137
 #, gcc-internal-format
 msgid ""
 "%<-fobjc-exceptions%> is required to enable Objective-C exception syntax"
 msgstr ""
 
-#: objc/objc-act.c:3976
+#: objc/objc-act.c:4221
 #, gcc-internal-format
 msgid "@catch parameter is not a known Objective-C class type"
 msgstr ""
 
-#: objc/objc-act.c:3982
+#: objc/objc-act.c:4227
 #, gcc-internal-format
 msgid "@catch parameter can not be protocol-qualified"
 msgstr ""
 
-#: objc/objc-act.c:4027
+#: objc/objc-act.c:4272
 #, gcc-internal-format
 msgid "exception of type %<%T%> will be caught"
 msgstr ""
 
-#: objc/objc-act.c:4029
+#: objc/objc-act.c:4274
 #, gcc-internal-format
 msgid "   by earlier handler for %<%T%>"
 msgstr ""
 
-#: objc/objc-act.c:4076
+#: objc/objc-act.c:4321
 #, gcc-internal-format
 msgid "%<@try%> without %<@catch%> or %<@finally%>"
 msgstr ""
 
-#: objc/objc-act.c:4104
+#: objc/objc-act.c:4349
 #, gcc-internal-format
 msgid "%<@throw%> (rethrow) used outside of a @catch block"
 msgstr ""
 
-#: objc/objc-act.c:4117
+#: objc/objc-act.c:4362
 #, gcc-internal-format
 msgid "%<@throw%> argument is not an object"
 msgstr ""
 
-#: objc/objc-act.c:4138
+#: objc/objc-act.c:4383
 #, gcc-internal-format
 msgid "%<@synchronized%> argument is not an object"
 msgstr ""
 
-#: objc/objc-act.c:4273
+#: objc/objc-act.c:4518
 #, gcc-internal-format
 msgid "type %qT does not have a known size"
 msgstr ""
 
-#: objc/objc-act.c:4450
+#: objc/objc-act.c:4695
 #, gcc-internal-format
 msgid "%s %qs"
 msgstr ""
 
-#: objc/objc-act.c:4473 objc/objc-act.c:4492
+#: objc/objc-act.c:4718 objc/objc-act.c:4737
 #, gcc-internal-format
 msgid "inconsistent instance variable specification"
 msgstr ""
 
-#: objc/objc-act.c:4547
+#: objc/objc-act.c:4794
 #, gcc-internal-format
 msgid "can not use an object as parameter to a method"
 msgstr ""
 
-#: objc/objc-act.c:4591
+#: objc/objc-act.c:4838
 #, gcc-internal-format
 msgid "method argument attributes are not available in Objective-C 1.0"
 msgstr ""
 
-#: objc/objc-act.c:4920
+#: objc/objc-act.c:5216
 #, gcc-internal-format
 msgid "multiple methods named %<%c%E%> found"
 msgstr ""
 
-#: objc/objc-act.c:4923
+#: objc/objc-act.c:5219
 #, gcc-internal-format
 msgid "using %<%c%s%>"
 msgstr ""
 
-#: objc/objc-act.c:4932
+#: objc/objc-act.c:5228
 #, gcc-internal-format
 msgid "multiple selectors named %<%c%E%> found"
 msgstr ""
 
-#: objc/objc-act.c:4935
+#: objc/objc-act.c:5231
 #, gcc-internal-format
 msgid "found %<%c%s%>"
 msgstr ""
 
-#: objc/objc-act.c:4944
+#: objc/objc-act.c:5240
 #, gcc-internal-format
 msgid "also found %<%c%s%>"
 msgstr ""
 
-#: objc/objc-act.c:5172
+#. If 'rtype' is NULL_TREE at this point it means that
+#. we have seen no @interface corresponding to that
+#. class name, only a @class declaration (alternatively,
+#. this was a call such as [objc_getClass("SomeClass")
+#. alloc], where we've never seen the @interface of
+#. SomeClass).  So, we have a class name (class_tree)
+#. but no actual details of the class methods.  We won't
+#. be able to check that the class responds to the
+#. method, and we will have to guess the method
+#. prototype.  Emit a warning, then keep going (this
+#. will use any method with a matching name, as if the
+#. receiver was of type 'Class').
+#. We could not find an @interface declaration, and
+#. there are no protocols attached to the receiver,
+#. so we can't complete the check that the receiver
+#. responds to the method, and we can't retrieve the
+#. method prototype.  But, because the receiver has
+#. a well-specified class, the programmer did want
+#. this check to be performed.  Emit a warning, then
+#. keep going as if it was an 'id'.  To remove the
+#. warning, either include an @interface for the
+#. class, or cast the receiver to 'id'.  Note that
+#. rtype is an IDENTIFIER_NODE at this point.
+#: objc/objc-act.c:5526 objc/objc-act.c:5660
+#, gcc-internal-format
+msgid "@interface of class %qE not found"
+msgstr ""
+
+#: objc/objc-act.c:5534
 #, gcc-internal-format
 msgid "no super class declared in @interface for %qE"
 msgstr ""
 
-#: objc/objc-act.c:5210
+#: objc/objc-act.c:5585
 #, gcc-internal-format
 msgid "found %<-%E%> instead of %<+%E%> in protocol(s)"
 msgstr ""
 
-#: objc/objc-act.c:5274
+#. We have a type, but it's not an Objective-C type (!).
+#: objc/objc-act.c:5697
 #, gcc-internal-format
 msgid "invalid receiver type %qs"
 msgstr ""
 
-#: objc/objc-act.c:5289
+#: objc/objc-act.c:5714
 #, gcc-internal-format
 msgid "%<%c%E%> not found in protocol(s)"
 msgstr ""
 
-#: objc/objc-act.c:5303
+#: objc/objc-act.c:5728
 #, gcc-internal-format
 msgid "%qE may not respond to %<%c%E%>"
 msgstr ""
 
-#: objc/objc-act.c:5311
+#: objc/objc-act.c:5736
 #, gcc-internal-format
 msgid "no %<%c%E%> method found"
 msgstr ""
 
-#: objc/objc-act.c:5318
+#: objc/objc-act.c:5743
 #, gcc-internal-format
 msgid "(Messages without a matching method signature"
 msgstr ""
 
-#: objc/objc-act.c:5320
+#: objc/objc-act.c:5745
 #, gcc-internal-format
 msgid "will be assumed to return %<id%> and accept"
 msgstr ""
 
-#: objc/objc-act.c:5322
+#: objc/objc-act.c:5747
 #, gcc-internal-format
 msgid "%<...%> as arguments.)"
 msgstr ""
 
-#: objc/objc-act.c:5433
+#: objc/objc-act.c:5858
 #, gcc-internal-format
 msgid "undeclared selector %qE"
 msgstr ""
@@ -43432,212 +44060,212 @@
 #. to an instance variable.  It's better to catch the cases
 #. where this is done unknowingly than to support the above
 #. paradigm.
-#: objc/objc-act.c:5476
+#: objc/objc-act.c:5901
 #, gcc-internal-format
 msgid "instance variable %qE accessed in class method"
 msgstr ""
 
-#: objc/objc-act.c:5764 objc/objc-act.c:5784
+#: objc/objc-act.c:6189 objc/objc-act.c:6209
 #, gcc-internal-format
 msgid ""
 "method %<%c%E%> declared %<@optional%> and %<@required%> at the same time"
 msgstr ""
 
-#: objc/objc-act.c:5768
+#: objc/objc-act.c:6193
 #, gcc-internal-format
 msgid "previous declaration of %<%c%E%> as %<@required%>"
 msgstr ""
 
-#: objc/objc-act.c:5788
+#: objc/objc-act.c:6213
 #, gcc-internal-format
 msgid "previous declaration of %<%c%E%> as %<@optional%>"
 msgstr ""
 
-#: objc/objc-act.c:5848
+#: objc/objc-act.c:6273
 #, gcc-internal-format
 msgid "duplicate declaration of method %<%c%E%> with conflicting types"
 msgstr ""
 
-#: objc/objc-act.c:5852
+#: objc/objc-act.c:6277
 #, gcc-internal-format
 msgid "previous declaration of %<%c%E%>"
 msgstr ""
 
-#: objc/objc-act.c:5914
+#: objc/objc-act.c:6339
 #, gcc-internal-format
 msgid "duplicate interface declaration for category %<%E(%E)%>"
 msgstr ""
 
-#: objc/objc-act.c:5994
+#: objc/objc-act.c:6427
 #, gcc-internal-format
 msgid "illegal reference type specified for instance variable %qs"
 msgstr ""
 
-#: objc/objc-act.c:6005
+#: objc/objc-act.c:6438
 #, gcc-internal-format
 msgid "instance variable %qs has unknown size"
 msgstr ""
 
-#: objc/objc-act.c:6025
+#: objc/objc-act.c:6459
 #, gcc-internal-format
 msgid "instance variable %qs uses flexible array member"
 msgstr ""
 
-#: objc/objc-act.c:6051
+#: objc/objc-act.c:6486
 #, gcc-internal-format
 msgid "type %qE has no default constructor to call"
 msgstr ""
 
-#: objc/objc-act.c:6057
+#: objc/objc-act.c:6492
 #, gcc-internal-format
 msgid "destructor for %qE shall not be run either"
 msgstr ""
 
 #. Vtable pointers are Real Bad(tm), since Obj-C cannot
 #. initialize them.
-#: objc/objc-act.c:6069
+#: objc/objc-act.c:6504
 #, gcc-internal-format
 msgid "type %qE has virtual member functions"
 msgstr ""
 
-#: objc/objc-act.c:6070
+#: objc/objc-act.c:6505
 #, gcc-internal-format
 msgid "illegal aggregate type %qE specified for instance variable %qs"
 msgstr ""
 
-#: objc/objc-act.c:6080
+#: objc/objc-act.c:6515
 #, gcc-internal-format
 msgid "type %qE has a user-defined constructor"
 msgstr ""
 
-#: objc/objc-act.c:6082
+#: objc/objc-act.c:6517
 #, gcc-internal-format
 msgid "type %qE has a user-defined destructor"
 msgstr ""
 
-#: objc/objc-act.c:6086
+#: objc/objc-act.c:6521
 #, gcc-internal-format
 msgid ""
 "C++ constructors and destructors will not be invoked for Objective-C fields"
 msgstr ""
 
-#: objc/objc-act.c:6188
+#: objc/objc-act.c:6652
 #, gcc-internal-format
 msgid "instance variable %qE is declared private"
 msgstr ""
 
-#: objc/objc-act.c:6199
+#: objc/objc-act.c:6663
 #, gcc-internal-format
 msgid "instance variable %qE is %s; this will be a hard error in the future"
 msgstr ""
 
-#: objc/objc-act.c:6206
+#: objc/objc-act.c:6670
 #, gcc-internal-format
 msgid "instance variable %qE is declared %s"
 msgstr ""
 
-#: objc/objc-act.c:6317 objc/objc-act.c:6432
+#: objc/objc-act.c:6781 objc/objc-act.c:6896
 #, gcc-internal-format
 msgid "incomplete implementation of class %qE"
 msgstr ""
 
-#: objc/objc-act.c:6321 objc/objc-act.c:6436
+#: objc/objc-act.c:6785 objc/objc-act.c:6900
 #, gcc-internal-format
 msgid "incomplete implementation of category %qE"
 msgstr ""
 
-#: objc/objc-act.c:6330 objc/objc-act.c:6444
+#: objc/objc-act.c:6794 objc/objc-act.c:6908
 #, gcc-internal-format
 msgid "method definition for %<%c%E%> not found"
 msgstr ""
 
-#: objc/objc-act.c:6485
+#: objc/objc-act.c:6949
 #, gcc-internal-format
 msgid "%s %qE does not fully implement the %qE protocol"
 msgstr ""
 
-#: objc/objc-act.c:6575
+#: objc/objc-act.c:7039
 #, gcc-internal-format
 msgid "cannot find interface declaration for %qE, superclass of %qE"
 msgstr ""
 
-#: objc/objc-act.c:6614
+#: objc/objc-act.c:7078
 #, gcc-internal-format
 msgid "reimplementation of class %qE"
 msgstr ""
 
-#: objc/objc-act.c:6647
+#: objc/objc-act.c:7111
 #, gcc-internal-format
 msgid "conflicting super class name %qE"
 msgstr ""
 
-#: objc/objc-act.c:6650
+#: objc/objc-act.c:7114
 #, gcc-internal-format
 msgid "previous declaration of %qE"
 msgstr ""
 
-#: objc/objc-act.c:6652
+#: objc/objc-act.c:7116
 #, gcc-internal-format
 msgid "previous declaration"
 msgstr ""
 
-#: objc/objc-act.c:6665 objc/objc-act.c:6667
+#: objc/objc-act.c:7129 objc/objc-act.c:7131
 #, gcc-internal-format
 msgid "duplicate interface declaration for class %qE"
 msgstr ""
 
-#: objc/objc-act.c:6985 objc/objc-act.c:7179
+#: objc/objc-act.c:7450 objc/objc-act.c:7645
 #, gcc-internal-format
 msgid "can not find instance variable associated with property"
 msgstr ""
 
 #. TODO: This should be caught much earlier than this.
-#: objc/objc-act.c:7145
+#: objc/objc-act.c:7611
 #, gcc-internal-format
 msgid "invalid setter, it must have one argument"
 msgstr ""
 
-#: objc/objc-act.c:7308 objc/objc-act.c:7523
+#: objc/objc-act.c:7774 objc/objc-act.c:7989
 #, gcc-internal-format
 msgid "property %qs already specified in %<@dynamic%>"
 msgstr ""
 
-#: objc/objc-act.c:7311 objc/objc-act.c:7526
+#: objc/objc-act.c:7777 objc/objc-act.c:7992
 #, gcc-internal-format
 msgid "property %qs already specified in %<@synthesize%>"
 msgstr ""
 
-#: objc/objc-act.c:7325 objc/objc-act.c:7540
+#: objc/objc-act.c:7791 objc/objc-act.c:8006
 #, gcc-internal-format
 msgid "no declaration of property %qs found in the interface"
 msgstr ""
 
-#: objc/objc-act.c:7352
+#: objc/objc-act.c:7818
 #, gcc-internal-format
 msgid "ivar %qs used by %<@synthesize%> declaration must be an existing ivar"
 msgstr ""
 
-#: objc/objc-act.c:7373
+#: objc/objc-act.c:7839
 #, gcc-internal-format
 msgid "property %qs is using instance variable %qs of incompatible type"
 msgstr ""
 
-#: objc/objc-act.c:7395
+#: objc/objc-act.c:7861
 #, gcc-internal-format
 msgid "'assign' property %qs is using bit-field instance variable %qs"
 msgstr ""
 
-#: objc/objc-act.c:7408
+#: objc/objc-act.c:7874
 #, gcc-internal-format
 msgid "'atomic' property %qs is using bit-field instance variable %qs"
 msgstr ""
 
-#: objc/objc-act.c:7426
+#: objc/objc-act.c:7892
 #, gcc-internal-format
 msgid "property %qs is using the same instance variable as property %qs"
 msgstr ""
 
-#: objc/objc-act.c:7467
+#: objc/objc-act.c:7933
 #, gcc-internal-format
 msgid "%<@synthesize%> is not available in Objective-C 1.0"
 msgstr ""
@@ -43646,22 +44274,22 @@
 #. detects the problem while parsing, outputs the error
 #. "misplaced '@synthesize' Objective-C++ construct" and skips
 #. the declaration.
-#: objc/objc-act.c:7478
+#: objc/objc-act.c:7944
 #, gcc-internal-format
 msgid "%<@synthesize%> not in @implementation context"
 msgstr ""
 
-#: objc/objc-act.c:7484
+#: objc/objc-act.c:7950
 #, gcc-internal-format
 msgid "%<@synthesize%> can not be used in categories"
 msgstr ""
 
-#: objc/objc-act.c:7493
+#: objc/objc-act.c:7959
 #, gcc-internal-format
 msgid "%<@synthesize%> requires the @interface of the class to be available"
 msgstr ""
 
-#: objc/objc-act.c:7576
+#: objc/objc-act.c:8042
 #, gcc-internal-format
 msgid "%<@dynamic%> is not available in Objective-C 1.0"
 msgstr ""
@@ -43670,17 +44298,17 @@
 #. detects the problem while parsing, outputs the error
 #. "misplaced '@dynamic' Objective-C++ construct" and skips the
 #. declaration.
-#: objc/objc-act.c:7587
+#: objc/objc-act.c:8053
 #, gcc-internal-format
 msgid "%<@dynamic%> not in @implementation context"
 msgstr ""
 
-#: objc/objc-act.c:7609
+#: objc/objc-act.c:8075
 #, gcc-internal-format
 msgid "%<@dynamic%> requires the @interface of the class to be available"
 msgstr ""
 
-#: objc/objc-act.c:7807
+#: objc/objc-act.c:8273
 #, gcc-internal-format
 msgid "definition of protocol %qE not found"
 msgstr ""
@@ -43688,47 +44316,47 @@
 #. It would be nice to use warn_deprecated_use() here, but
 #. we are using TREE_CHAIN (which is supposed to be the
 #. TYPE_STUB_DECL for a TYPE) for something different.
-#: objc/objc-act.c:7838
+#: objc/objc-act.c:8304
 #, gcc-internal-format
 msgid "protocol %qE is deprecated"
 msgstr ""
 
-#: objc/objc-act.c:7962
+#: objc/objc-act.c:8423
 #, gcc-internal-format
 msgid "duplicate declaration for protocol %qE"
 msgstr ""
 
-#: objc/objc-act.c:8448
+#: objc/objc-act.c:8933
 #, gcc-internal-format
 msgid "conflicting types for %<%c%s%>"
 msgstr ""
 
-#: objc/objc-act.c:8452
+#: objc/objc-act.c:8937
 #, gcc-internal-format
 msgid "previous declaration of %<%c%s%>"
 msgstr ""
 
-#: objc/objc-act.c:8552
+#: objc/objc-act.c:9037
 #, gcc-internal-format
 msgid "no super class declared in interface for %qE"
 msgstr ""
 
-#: objc/objc-act.c:8579
+#: objc/objc-act.c:9064
 #, gcc-internal-format
 msgid "[super ...] must appear in a method context"
 msgstr ""
 
-#: objc/objc-act.c:8619
+#: objc/objc-act.c:9104
 #, gcc-internal-format
 msgid "method possibly missing a [super dealloc] call"
 msgstr ""
 
-#: objc/objc-act.c:9083
+#: objc/objc-act.c:9568
 #, gcc-internal-format
 msgid "instance variable %qs is declared private"
 msgstr ""
 
-#: objc/objc-act.c:9128
+#: objc/objc-act.c:9613
 #, gcc-internal-format
 msgid "local declaration of %qE hides instance variable"
 msgstr ""
@@ -43736,61 +44364,61 @@
 #. This can happen if DECL_ARTIFICIAL (*expr_p), but
 #. should be impossible for real properties, which always
 #. have a getter.
-#: objc/objc-act.c:9173
+#: objc/objc-act.c:9658
 #, gcc-internal-format
 msgid "no %qs getter found"
 msgstr ""
 
-#: objc/objc-act.c:9413
+#: objc/objc-act.c:9898
 #, gcc-internal-format
 msgid "fast enumeration is not available in Objective-C 1.0"
 msgstr ""
 
-#: objc/objc-act.c:9423
+#: objc/objc-act.c:9908
 #, gcc-internal-format
 msgid "iterating variable in fast enumeration is not an object"
 msgstr ""
 
-#: objc/objc-act.c:9429
+#: objc/objc-act.c:9914
 #, gcc-internal-format
 msgid "collection in fast enumeration is not an object"
 msgstr ""
 
-#: objc/objc-act.c:10362
+#: objc/objc-act.c:10847
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown type %s found during Objective-C encoding"
 msgstr ""
 
 #. Do not do any encoding, produce an error and keep going.
-#: objc/objc-act.c:10445
+#: objc/objc-act.c:10930
 #, gcc-internal-format
 msgid "trying to encode non-integer type as a bitfield"
 msgstr ""
 
-#: objc/objc-gnu-runtime-abi-01.c:129
+#: objc/objc-gnu-runtime-abi-01.c:130
 #, gcc-internal-format
 msgid "%<-fobjc-gc%> is ignored for %<-fgnu-runtime%>"
 msgstr ""
 
-#: objc/objc-gnu-runtime-abi-01.c:137
+#: objc/objc-gnu-runtime-abi-01.c:138
 #, gcc-internal-format
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr ""
 
-#: objc/objc-gnu-runtime-abi-01.c:2168 objc/objc-next-runtime-abi-01.c:2848
-#: objc/objc-next-runtime-abi-02.c:3636
+#: objc/objc-gnu-runtime-abi-01.c:2169 objc/objc-next-runtime-abi-01.c:2848
+#: objc/objc-next-runtime-abi-02.c:3637
 #, gcc-internal-format
 msgid "non-objective-c type '%T' cannot be caught"
 msgstr ""
 
-#: objc/objc-next-runtime-abi-01.c:150
+#: objc/objc-next-runtime-abi-01.c:151
 #, gcc-internal-format
 msgid ""
 "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-"
 "fnext-runtime%> with %<-fobjc-abi-version%> < 2"
 msgstr ""
 
-#: objc/objc-next-runtime-abi-02.c:247
+#: objc/objc-next-runtime-abi-02.c:248
 #, gcc-internal-format
 msgid ""
 "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-"
diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c
index a0f9dfb..c20ff6c 100644
--- a/gcc/print-rtl.c
+++ b/gcc/print-rtl.c
@@ -552,6 +552,8 @@
 #ifndef GENERATOR_FILE
 	if (i == 0 && GET_CODE (in_rtx) == DEBUG_IMPLICIT_PTR)
 	  print_mem_expr (outfile, DEBUG_IMPLICIT_PTR_DECL (in_rtx));
+	else if (i == 0 && GET_CODE (in_rtx) == DEBUG_PARAMETER_REF)
+	  print_mem_expr (outfile, DEBUG_PARAMETER_REF_DECL (in_rtx));
 	else
 	  dump_addr (outfile, " ", XTREE (in_rtx, i));
 #endif
diff --git a/gcc/reg-notes.def b/gcc/reg-notes.def
index 329cd67..9924355 100644
--- a/gcc/reg-notes.def
+++ b/gcc/reg-notes.def
@@ -160,6 +160,11 @@
    to the argument, if it is a MEM, it is ignored.  */
 REG_NOTE (CFA_SET_VDRAP)
 
+/* Attached to insn that are RTX_FRAME_RELATED_P, indicating a window
+   save operation, i.e. will result in a DW_CFA_GNU_window_save.
+   The argument is ignored.  */
+REG_NOTE (CFA_WINDOW_SAVE)
+
 /* Indicates that REG holds the exception context for the function.
    This context is shared by inline functions, so the code to acquire
    the real exception context is delayed until after inlining.  */
diff --git a/gcc/reload.h b/gcc/reload.h
index c9df112..ad0cfcd 100644
--- a/gcc/reload.h
+++ b/gcc/reload.h
@@ -420,7 +420,7 @@
 extern void init_reload (void);
 
 /* The reload pass itself.  */
-extern int reload (rtx, int);
+extern bool reload (rtx, int);
 
 /* Mark the slots in regs_ever_live for the hard regs
    used by pseudo-reg number REGNO.  */
diff --git a/gcc/reload1.c b/gcc/reload1.c
index a87e6ad..a9aa017 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -250,6 +250,10 @@
    examine.  */
 struct insn_chain *reload_insn_chain;
 
+/* TRUE if we potentially left dead insns in the insn stream and want to
+   run DCE immediately after reload, FALSE otherwise.  */
+static bool need_dce;
+
 /* List of all insns needing reloads.  */
 static struct insn_chain *insns_need_reload;
 
@@ -695,10 +699,11 @@
    If GLOBAL is zero, we do not have enough information to do that,
    so any pseudo reg that is spilled must go to the stack.
 
-   Return value is nonzero if reload failed
-   and we must not do any more for this function.  */
+   Return value is TRUE if reload likely left dead insns in the
+   stream and a DCE pass should be run to elimiante them.  Else the
+   return value is FALSE.  */
 
-int
+bool
 reload (rtx first, int global)
 {
   int i, n;
@@ -1329,7 +1334,9 @@
 
   gcc_assert (bitmap_empty_p (&spilled_pseudos));
 
-  return failure;
+  reload_completed = !failure;
+
+  return need_dce;
 }
 
 /* Yet another special case.  Unfortunately, reg-stack forces people to
@@ -2123,14 +2130,19 @@
   rtx prev = prev_active_insn (insn);
   rtx prev_dest;
 
-  /* If the previous insn sets a register that dies in our insn, delete it
-     too.  */
+  /* If the previous insn sets a register that dies in our insn make
+     a note that we want to run DCE immediately after reload.
+
+     We used to delete the previous insn & recurse, but that's wrong for
+     block local equivalences.  Instead of trying to figure out the exact
+     circumstances where we can delete the potentially dead insns, just
+     let DCE do the job.  */
   if (prev && GET_CODE (PATTERN (prev)) == SET
       && (prev_dest = SET_DEST (PATTERN (prev)), REG_P (prev_dest))
       && reg_mentioned_p (prev_dest, PATTERN (insn))
       && find_regno_note (insn, REG_DEAD, REGNO (prev_dest))
       && ! side_effects_p (SET_SRC (PATTERN (prev))))
-    delete_dead_insn (prev);
+    need_dce = 1;
 
   SET_INSN_DELETED (insn);
 }
diff --git a/gcc/rtl.c b/gcc/rtl.c
index e335a39..52e9e9c 100644
--- a/gcc/rtl.c
+++ b/gcc/rtl.c
@@ -413,6 +413,10 @@
       return DEBUG_IMPLICIT_PTR_DECL (x)
 	     == DEBUG_IMPLICIT_PTR_DECL (y);
 
+    case DEBUG_PARAMETER_REF:
+      return DEBUG_PARAMETER_REF_DECL (x)
+	     == DEBUG_PARAMETER_REF_DECL (x);
+
     case ENTRY_VALUE:
       return rtx_equal_p_cb (ENTRY_VALUE_EXP (x), ENTRY_VALUE_EXP (y), cb);
 
@@ -548,6 +552,10 @@
       return DEBUG_IMPLICIT_PTR_DECL (x)
 	     == DEBUG_IMPLICIT_PTR_DECL (y);
 
+    case DEBUG_PARAMETER_REF:
+      return DEBUG_PARAMETER_REF_DECL (x)
+	     == DEBUG_PARAMETER_REF_DECL (y);
+
     case ENTRY_VALUE:
       return rtx_equal_p (ENTRY_VALUE_EXP (x), ENTRY_VALUE_EXP (y));
 
@@ -660,6 +668,7 @@
     case CONST_DOUBLE:
     case CONST_FIXED:
     case DEBUG_IMPLICIT_PTR:
+    case DEBUG_PARAMETER_REF:
       return hash;
     default:
       break;
diff --git a/gcc/rtl.def b/gcc/rtl.def
index cb5555a..a7de8f7 100644
--- a/gcc/rtl.def
+++ b/gcc/rtl.def
@@ -613,6 +613,10 @@
    or 0 if arg is 0.  */
 DEF_RTL_EXPR(FFS, "ffs", "e", RTX_UNARY)
 
+/* Count number of leading redundant sign bits (number of leading
+   sign bits minus one).  */
+DEF_RTL_EXPR(CLRSB, "clrsb", "e", RTX_UNARY)
+
 /* Count leading zeros.  */
 DEF_RTL_EXPR(CLZ, "clz", "e", RTX_UNARY)
 
@@ -723,6 +727,10 @@
    parameter.  */
 DEF_RTL_EXPR(ENTRY_VALUE, "entry_value", "0", RTX_OBJ)
 
+/* Used in VAR_LOCATION for a reference to a parameter that has
+   been optimized away completely.  */
+DEF_RTL_EXPR(DEBUG_PARAMETER_REF, "debug_parameter_ref", "t", RTX_OBJ)
+
 /* All expressions from this point forward appear only in machine
    descriptions.  */
 #ifdef GENERATOR_FILE
diff --git a/gcc/rtl.h b/gcc/rtl.h
index f2c29839..da18788 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -941,6 +941,9 @@
 /* VAR_DECL/PARM_DECL DEBUG_IMPLICIT_PTR takes address of.  */
 #define DEBUG_IMPLICIT_PTR_DECL(RTX) XCTREE (RTX, 0, DEBUG_IMPLICIT_PTR)
 
+/* PARM_DECL DEBUG_PARAMETER_REF references.  */
+#define DEBUG_PARAMETER_REF_DECL(RTX) XCTREE (RTX, 0, DEBUG_PARAMETER_REF)
+
 /* Possible initialization status of a variable.   When requested
    by the user, this information is tracked and recorded in the DWARF
    debug information, along with the variable's location.  */
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index b52957d..0be6504 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -4134,20 +4134,6 @@
 
 	if (result_low > 0)
 	  nonzero &= ~(((unsigned HOST_WIDE_INT) 1 << result_low) - 1);
-
-#ifdef POINTERS_EXTEND_UNSIGNED
-	/* If pointers extend unsigned and this is an addition or subtraction
-	   to a pointer in Pmode, all the bits above ptr_mode are known to be
-	   zero.  */
-	/* As we do not know which address space the pointer is refering to,
-	   we can do this only if the target does not support different pointer
-	   or address modes depending on the address space.  */
-	if (target_default_pointer_address_modes_p ()
-	    && POINTERS_EXTEND_UNSIGNED > 0 && GET_MODE (x) == Pmode
-	    && (code == PLUS || code == MINUS)
-	    && REG_P (XEXP (x, 0)) && REG_POINTER (XEXP (x, 0)))
-	  nonzero &= GET_MODE_MASK (ptr_mode);
-#endif
       }
       break;
 
@@ -4619,21 +4605,6 @@
 					 known_x, known_mode, known_ret);
       result = MAX (1, MIN (num0, num1) - 1);
 
-#ifdef POINTERS_EXTEND_UNSIGNED
-      /* If pointers extend signed and this is an addition or subtraction
-	 to a pointer in Pmode, all the bits above ptr_mode are known to be
-	 sign bit copies.  */
-      /* As we do not know which address space the pointer is refering to,
-	 we can do this only if the target does not support different pointer
-	 or address modes depending on the address space.  */
-      if (target_default_pointer_address_modes_p ()
-	  && ! POINTERS_EXTEND_UNSIGNED && GET_MODE (x) == Pmode
-	  && (code == PLUS || code == MINUS)
-	  && REG_P (XEXP (x, 0)) && REG_POINTER (XEXP (x, 0)))
-	result = MAX ((int) (GET_MODE_BITSIZE (Pmode)
-			     - GET_MODE_BITSIZE (ptr_mode) + 1),
-		      result);
-#endif
       return result;
 
     case MULT:
diff --git a/gcc/sese.c b/gcc/sese.c
index 3ce83b9..a03cbc9 100644
--- a/gcc/sese.c
+++ b/gcc/sese.c
@@ -1,5 +1,5 @@
 /* Single entry single exit control flow regions.
-   Copyright (C) 2008, 2009, 2010
+   Copyright (C) 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
    Contributed by Jan Sjodin <jan.sjodin@amd.com> and
    Sebastian Pop <sebastian.pop@amd.com>.
@@ -472,6 +472,8 @@
     {
       if (gimple_debug_bind_p (copy))
 	gimple_debug_bind_reset_value (copy);
+      else if (gimple_debug_source_bind_p (copy))
+	return false;
       else
 	gcc_unreachable ();
 
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index 18f264b..3c4df97 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -1211,6 +1211,7 @@
 				rtx op, enum machine_mode op_mode)
 {
   unsigned int width = GET_MODE_BITSIZE (mode);
+  unsigned int op_width = GET_MODE_BITSIZE (op_mode);
 
   if (code == VEC_DUPLICATE)
     {
@@ -1321,7 +1322,8 @@
     }
 
   if (CONST_INT_P (op)
-      && width <= HOST_BITS_PER_WIDE_INT && width > 0)
+      && width <= HOST_BITS_PER_WIDE_INT
+      && op_width <= HOST_BITS_PER_WIDE_INT && op_width > 0)
     {
       HOST_WIDE_INT arg0 = INTVAL (op);
       HOST_WIDE_INT val;
@@ -1341,40 +1343,50 @@
 	  break;
 
 	case FFS:
-	  arg0 &= GET_MODE_MASK (mode);
+	  arg0 &= GET_MODE_MASK (op_mode);
 	  val = ffs_hwi (arg0);
 	  break;
 
 	case CLZ:
-	  arg0 &= GET_MODE_MASK (mode);
-	  if (arg0 == 0 && CLZ_DEFINED_VALUE_AT_ZERO (mode, val))
+	  arg0 &= GET_MODE_MASK (op_mode);
+	  if (arg0 == 0 && CLZ_DEFINED_VALUE_AT_ZERO (op_mode, val))
 	    ;
 	  else
-	    val = GET_MODE_BITSIZE (mode) - floor_log2 (arg0) - 1;
+	    val = GET_MODE_BITSIZE (op_mode) - floor_log2 (arg0) - 1;
+	  break;
+
+	case CLRSB:
+	  arg0 &= GET_MODE_MASK (op_mode);
+	  if (arg0 == 0)
+	    val = GET_MODE_BITSIZE (op_mode) - 1;
+	  else if (arg0 >= 0)
+	    val = GET_MODE_BITSIZE (op_mode) - floor_log2 (arg0) - 2;
+	  else if (arg0 < 0)
+	    val = GET_MODE_BITSIZE (op_mode) - floor_log2 (~arg0) - 2;
 	  break;
 
 	case CTZ:
-	  arg0 &= GET_MODE_MASK (mode);
+	  arg0 &= GET_MODE_MASK (op_mode);
 	  if (arg0 == 0)
 	    {
 	      /* Even if the value at zero is undefined, we have to come
 		 up with some replacement.  Seems good enough.  */
-	      if (! CTZ_DEFINED_VALUE_AT_ZERO (mode, val))
-		val = GET_MODE_BITSIZE (mode);
+	      if (! CTZ_DEFINED_VALUE_AT_ZERO (op_mode, val))
+		val = GET_MODE_BITSIZE (op_mode);
 	    }
 	  else
 	    val = ctz_hwi (arg0);
 	  break;
 
 	case POPCOUNT:
-	  arg0 &= GET_MODE_MASK (mode);
+	  arg0 &= GET_MODE_MASK (op_mode);
 	  val = 0;
 	  while (arg0)
 	    val++, arg0 &= arg0 - 1;
 	  break;
 
 	case PARITY:
-	  arg0 &= GET_MODE_MASK (mode);
+	  arg0 &= GET_MODE_MASK (op_mode);
 	  val = 0;
 	  while (arg0)
 	    val++, arg0 &= arg0 - 1;
diff --git a/gcc/sync-builtins.def b/gcc/sync-builtins.def
index 614e6e3..731d4a2 100644
--- a/gcc/sync-builtins.def
+++ b/gcc/sync-builtins.def
@@ -28,225 +28,231 @@
    is supposed to be using.  It's overloaded, and is resolved to one of the
    "_1" through "_16" versions, plus some extra casts.  */
 
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_ADD_N, "__sync_fetch_and_add",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_N, "__sync_fetch_and_add",
 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_ADD_1, "__sync_fetch_and_add_1",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_1, "__sync_fetch_and_add_1",
 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_ADD_2, "__sync_fetch_and_add_2",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_2, "__sync_fetch_and_add_2",
 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_ADD_4, "__sync_fetch_and_add_4",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_4, "__sync_fetch_and_add_4",
 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_ADD_8, "__sync_fetch_and_add_8",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_8, "__sync_fetch_and_add_8",
 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_ADD_16, "__sync_fetch_and_add_16",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_16, "__sync_fetch_and_add_16",
 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
 
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_SUB_N, "__sync_fetch_and_sub",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_N, "__sync_fetch_and_sub",
 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_SUB_1, "__sync_fetch_and_sub_1",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_1, "__sync_fetch_and_sub_1",
 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_SUB_2, "__sync_fetch_and_sub_2",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_2, "__sync_fetch_and_sub_2",
 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_SUB_4, "__sync_fetch_and_sub_4",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_4, "__sync_fetch_and_sub_4",
 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_SUB_8, "__sync_fetch_and_sub_8",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_8, "__sync_fetch_and_sub_8",
 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_SUB_16, "__sync_fetch_and_sub_16",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_16, "__sync_fetch_and_sub_16",
 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
 
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_OR_N, "__sync_fetch_and_or",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_N, "__sync_fetch_and_or",
 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_OR_1, "__sync_fetch_and_or_1",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_1, "__sync_fetch_and_or_1",
 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_OR_2, "__sync_fetch_and_or_2",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_2, "__sync_fetch_and_or_2",
 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_OR_4, "__sync_fetch_and_or_4",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_4, "__sync_fetch_and_or_4",
 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_OR_8, "__sync_fetch_and_or_8",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_8, "__sync_fetch_and_or_8",
 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_OR_16, "__sync_fetch_and_or_16",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_16, "__sync_fetch_and_or_16",
 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
 
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_AND_N, "__sync_fetch_and_and",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_N, "__sync_fetch_and_and",
 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_AND_1, "__sync_fetch_and_and_1",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_1, "__sync_fetch_and_and_1",
 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_AND_2, "__sync_fetch_and_and_2",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_2, "__sync_fetch_and_and_2",
 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_AND_4, "__sync_fetch_and_and_4",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_4, "__sync_fetch_and_and_4",
 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_AND_8, "__sync_fetch_and_and_8",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_8, "__sync_fetch_and_and_8",
 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_AND_16, "__sync_fetch_and_and_16",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_16, "__sync_fetch_and_and_16",
 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
 
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_XOR_N, "__sync_fetch_and_xor",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_N, "__sync_fetch_and_xor",
 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_XOR_1, "__sync_fetch_and_xor_1",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_1, "__sync_fetch_and_xor_1",
 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_XOR_2, "__sync_fetch_and_xor_2",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_2, "__sync_fetch_and_xor_2",
 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_XOR_4, "__sync_fetch_and_xor_4",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_4, "__sync_fetch_and_xor_4",
 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_XOR_8, "__sync_fetch_and_xor_8",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_8, "__sync_fetch_and_xor_8",
 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_XOR_16, "__sync_fetch_and_xor_16",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_16, "__sync_fetch_and_xor_16",
 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
 
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_NAND_N, "__sync_fetch_and_nand",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_N, "__sync_fetch_and_nand",
 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_NAND_1, "__sync_fetch_and_nand_1",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_1, "__sync_fetch_and_nand_1",
 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_NAND_2, "__sync_fetch_and_nand_2",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_2, "__sync_fetch_and_nand_2",
 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_NAND_4, "__sync_fetch_and_nand_4",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_4, "__sync_fetch_and_nand_4",
 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_NAND_8, "__sync_fetch_and_nand_8",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_8, "__sync_fetch_and_nand_8",
 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_NAND_16, "__sync_fetch_and_nand_16",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_16, "__sync_fetch_and_nand_16",
 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
 
-DEF_SYNC_BUILTIN (BUILT_IN_ADD_AND_FETCH_N, "__sync_add_and_fetch",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_N, "__sync_add_and_fetch",
 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_ADD_AND_FETCH_1, "__sync_add_and_fetch_1",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_1, "__sync_add_and_fetch_1",
 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_ADD_AND_FETCH_2, "__sync_add_and_fetch_2",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_2, "__sync_add_and_fetch_2",
 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_ADD_AND_FETCH_4, "__sync_add_and_fetch_4",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_4, "__sync_add_and_fetch_4",
 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_ADD_AND_FETCH_8, "__sync_add_and_fetch_8",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_8, "__sync_add_and_fetch_8",
 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_ADD_AND_FETCH_16, "__sync_add_and_fetch_16",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_16, "__sync_add_and_fetch_16",
 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
 
-DEF_SYNC_BUILTIN (BUILT_IN_SUB_AND_FETCH_N, "__sync_sub_and_fetch",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_N, "__sync_sub_and_fetch",
 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_SUB_AND_FETCH_1, "__sync_sub_and_fetch_1",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_1, "__sync_sub_and_fetch_1",
 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_SUB_AND_FETCH_2, "__sync_sub_and_fetch_2",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_2, "__sync_sub_and_fetch_2",
 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_SUB_AND_FETCH_4, "__sync_sub_and_fetch_4",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_4, "__sync_sub_and_fetch_4",
 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_SUB_AND_FETCH_8, "__sync_sub_and_fetch_8",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_8, "__sync_sub_and_fetch_8",
 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_SUB_AND_FETCH_16, "__sync_sub_and_fetch_16",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_16, "__sync_sub_and_fetch_16",
 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
 
-DEF_SYNC_BUILTIN (BUILT_IN_OR_AND_FETCH_N, "__sync_or_and_fetch",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_N, "__sync_or_and_fetch",
 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_OR_AND_FETCH_1, "__sync_or_and_fetch_1",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_1, "__sync_or_and_fetch_1",
 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_OR_AND_FETCH_2, "__sync_or_and_fetch_2",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_2, "__sync_or_and_fetch_2",
 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_OR_AND_FETCH_4, "__sync_or_and_fetch_4",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_4, "__sync_or_and_fetch_4",
 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_OR_AND_FETCH_8, "__sync_or_and_fetch_8",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_8, "__sync_or_and_fetch_8",
 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_OR_AND_FETCH_16, "__sync_or_and_fetch_16",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_16, "__sync_or_and_fetch_16",
 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
 
-DEF_SYNC_BUILTIN (BUILT_IN_AND_AND_FETCH_N, "__sync_and_and_fetch",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_N, "__sync_and_and_fetch",
 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_AND_AND_FETCH_1, "__sync_and_and_fetch_1",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_1, "__sync_and_and_fetch_1",
 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_AND_AND_FETCH_2, "__sync_and_and_fetch_2",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_2, "__sync_and_and_fetch_2",
 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_AND_AND_FETCH_4, "__sync_and_and_fetch_4",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_4, "__sync_and_and_fetch_4",
 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_AND_AND_FETCH_8, "__sync_and_and_fetch_8",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_8, "__sync_and_and_fetch_8",
 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_AND_AND_FETCH_16, "__sync_and_and_fetch_16",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_16, "__sync_and_and_fetch_16",
 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
 
-DEF_SYNC_BUILTIN (BUILT_IN_XOR_AND_FETCH_N, "__sync_xor_and_fetch",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_N, "__sync_xor_and_fetch",
 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_XOR_AND_FETCH_1, "__sync_xor_and_fetch_1",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_1, "__sync_xor_and_fetch_1",
 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_XOR_AND_FETCH_2, "__sync_xor_and_fetch_2",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_2, "__sync_xor_and_fetch_2",
 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_XOR_AND_FETCH_4, "__sync_xor_and_fetch_4",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_4, "__sync_xor_and_fetch_4",
 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_XOR_AND_FETCH_8, "__sync_xor_and_fetch_8",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_8, "__sync_xor_and_fetch_8",
 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_XOR_AND_FETCH_16, "__sync_xor_and_fetch_16",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_16, "__sync_xor_and_fetch_16",
 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
 
-DEF_SYNC_BUILTIN (BUILT_IN_NAND_AND_FETCH_N, "__sync_nand_and_fetch",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_N, "__sync_nand_and_fetch",
 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_NAND_AND_FETCH_1, "__sync_nand_and_fetch_1",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_1, "__sync_nand_and_fetch_1",
 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_NAND_AND_FETCH_2, "__sync_nand_and_fetch_2",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_2, "__sync_nand_and_fetch_2",
 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_NAND_AND_FETCH_4, "__sync_nand_and_fetch_4",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_4, "__sync_nand_and_fetch_4",
 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_NAND_AND_FETCH_8, "__sync_nand_and_fetch_8",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_8, "__sync_nand_and_fetch_8",
 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_NAND_AND_FETCH_16, "__sync_nand_and_fetch_16",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_16, "__sync_nand_and_fetch_16",
 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
 
-DEF_SYNC_BUILTIN (BUILT_IN_BOOL_COMPARE_AND_SWAP_N,
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_N,
 		  "__sync_bool_compare_and_swap",
 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_1,
 		  "__sync_bool_compare_and_swap_1",
 		  BT_FN_BOOL_VPTR_I1_I1, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_BOOL_COMPARE_AND_SWAP_2,
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_2,
 		  "__sync_bool_compare_and_swap_2",
 		  BT_FN_BOOL_VPTR_I2_I2, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_4,
 		  "__sync_bool_compare_and_swap_4",
 		  BT_FN_BOOL_VPTR_I4_I4, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_BOOL_COMPARE_AND_SWAP_8,
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_8,
 		  "__sync_bool_compare_and_swap_8",
 		  BT_FN_BOOL_VPTR_I8_I8, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_BOOL_COMPARE_AND_SWAP_16,
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_16,
 		  "__sync_bool_compare_and_swap_16",
 		  BT_FN_BOOL_VPTR_I16_I16, ATTR_NOTHROW_LEAF_LIST)
 
-DEF_SYNC_BUILTIN (BUILT_IN_VAL_COMPARE_AND_SWAP_N,
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_N,
 		  "__sync_val_compare_and_swap",
 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_VAL_COMPARE_AND_SWAP_1,
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_1,
 		  "__sync_val_compare_and_swap_1",
 		  BT_FN_I1_VPTR_I1_I1, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_VAL_COMPARE_AND_SWAP_2,
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_2,
 		  "__sync_val_compare_and_swap_2",
 		  BT_FN_I2_VPTR_I2_I2, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_VAL_COMPARE_AND_SWAP_4,
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_4,
 		  "__sync_val_compare_and_swap_4",
 		  BT_FN_I4_VPTR_I4_I4, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_VAL_COMPARE_AND_SWAP_8,
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_8,
 		  "__sync_val_compare_and_swap_8",
 		  BT_FN_I8_VPTR_I8_I8, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_VAL_COMPARE_AND_SWAP_16,
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_16,
 		  "__sync_val_compare_and_swap_16",
 		  BT_FN_I16_VPTR_I16_I16, ATTR_NOTHROW_LEAF_LIST)
 
-DEF_SYNC_BUILTIN (BUILT_IN_LOCK_TEST_AND_SET_N, "__sync_lock_test_and_set",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_TEST_AND_SET_N,
+		  "__sync_lock_test_and_set",
 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_LOCK_TEST_AND_SET_1, "__sync_lock_test_and_set_1",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_TEST_AND_SET_1,
+		  "__sync_lock_test_and_set_1",
 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_LOCK_TEST_AND_SET_2, "__sync_lock_test_and_set_2",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_TEST_AND_SET_2,
+		  "__sync_lock_test_and_set_2",
 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_LOCK_TEST_AND_SET_4, "__sync_lock_test_and_set_4",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_TEST_AND_SET_4,
+		  "__sync_lock_test_and_set_4",
 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_LOCK_TEST_AND_SET_8, "__sync_lock_test_and_set_8",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_TEST_AND_SET_8,
+		  "__sync_lock_test_and_set_8",
 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_LOCK_TEST_AND_SET_16, "__sync_lock_test_and_set_16",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_TEST_AND_SET_16,
+		  "__sync_lock_test_and_set_16",
 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
 
-DEF_SYNC_BUILTIN (BUILT_IN_LOCK_RELEASE_N, "__sync_lock_release",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_N, "__sync_lock_release",
 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_LOCK_RELEASE_1, "__sync_lock_release_1",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_1, "__sync_lock_release_1",
 		  BT_FN_VOID_VPTR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_LOCK_RELEASE_2, "__sync_lock_release_2",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_2, "__sync_lock_release_2",
 		  BT_FN_VOID_VPTR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_LOCK_RELEASE_4, "__sync_lock_release_4",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_4, "__sync_lock_release_4",
 		  BT_FN_VOID_VPTR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_LOCK_RELEASE_8, "__sync_lock_release_8",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_8, "__sync_lock_release_8",
 		  BT_FN_VOID_VPTR, ATTR_NOTHROW_LEAF_LIST)
-DEF_SYNC_BUILTIN (BUILT_IN_LOCK_RELEASE_16, "__sync_lock_release_16",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_16, "__sync_lock_release_16",
 		  BT_FN_VOID_VPTR, ATTR_NOTHROW_LEAF_LIST)
 
-DEF_SYNC_BUILTIN (BUILT_IN_SYNCHRONIZE, "__sync_synchronize",
+DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SYNCHRONIZE, "__sync_synchronize",
 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
diff --git a/gcc/system.h b/gcc/system.h
index 6b8fde2..e02cbcd 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -839,7 +839,7 @@
 	TARGET_PROMOTE_FUNCTION_ARGS TARGET_PROMOTE_FUNCTION_RETURN \
 	LANG_HOOKS_MISSING_ARGUMENT LANG_HOOKS_HASH_TYPES \
 	TARGET_HANDLE_OFAST TARGET_OPTION_OPTIMIZATION \
-        TARGET_IRA_COVER_CLASSES
+        TARGET_IRA_COVER_CLASSES TARGET_HELP
 
 /* Hooks into libgcc2.  */
  #pragma GCC poison LIBGCC2_DOUBLE_TYPE_SIZE LIBGCC2_WORDS_BIG_ENDIAN \
diff --git a/gcc/target.def b/gcc/target.def
index 94c434f..c67f0ba 100644
--- a/gcc/target.def
+++ b/gcc/target.def
@@ -1021,13 +1021,6 @@
  void, (void),
  hook_void_void)
 
-/* Display extra, target specific information in response to a
-   --target-help switch.  */
-DEFHOOK
-(help,
- "",
- void, (void), NULL)
-
 DEFHOOK_UNDOC
 (eh_return_filter_mode,
  "Return machine mode for filter value.",
@@ -2552,13 +2545,6 @@
  void, (void),
  hook_void_void)
 
-DEFHOOK
-(default_params,
-"Set target-dependent default values for @option{--param} settings, using\
- calls to @code{set_default_param_value}.",
- void, (void),
- hook_void_void)
-
 /* Function to determine if one function can inline another function.  */
 #undef HOOK_PREFIX
 #define HOOK_PREFIX "TARGET_"
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3da23b1..8c8e1b3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,196 @@
+2011-06-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	PR testsuite/49529
+	* gcc.dg/ipa/ipa-pta-17.c: Use dg-require-alias.
+
+	* gcc.dg/debug/pr49294.c (dg-options): Add -fno-common to options on
+	hppa*-*-hpux*.
+
+2011-06-26  Jason Merrill  <jason@redhat.com>
+
+	* g++.dg/cpp0x/constexpr-cleanup.C: Tweak error message.
+
+	PR c++/49528
+	* g++.dg/init/ref19.C: New.
+	* g++.dg/cpp0x/constexpr-cleanup.C: New.
+
+2011-06-26  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/48377
+	* gcc.dg/vect/pr48377.c: Add dg-require-effective-target
+	non_strict_align.
+
+2011-06-26  Steve Ellcey  <sje@cup.hp.com>
+
+	PR middle-end/49191
+	* lib/target-supports.exp (check_effective_target_non_strict_align):
+	New.
+	* gcc.dg/memcpy-3.c: Add dg-require-effective-target non_strict_align.
+
+2011-06-24  Martin Jambor  <mjambor@suse.cz>
+
+	PR tree-optimizations/49516
+	* g++.dg/tree-ssa/pr49516.C: New test.
+
+2011-06-23  Jason Merrill  <jason@redhat.com>
+
+	PR c++/35255
+	* g++.dg/template/partial10.C: New.
+	* g++.dg/template/partial11.C: New.
+
+2011-06-23  Jeff Law <law@redhat.com>
+
+	PR middle-end/48770
+	* gcc.dg/pr48770.c: New test.
+
+2011-06-23  Jan Hubicka  <jh@suse.cz>
+
+	PR middle-end/49373
+	* g++.dg/torture/pr43879-1_1.C: Revert the xfail introduced yesterday.
+
+2011-06-23  Jakub Jelinek  <jakub@redhat.com>
+
+	PR testsuite/49512
+	* gcc.dg/tree-ssa/asm-1.c: Use -fdump-tree-optimized-nouid
+	instead of -fdump-tree-optimized.
+
+2011-06-23  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	PR c++/44625
+	* g++.dg/template/crash107.C: New.
+	* g++.dg/template/error17.C: Adjust.
+
+2011-06-23  Jason Merrill  <jason@redhat.com>
+
+	PR c++/49507
+	* g++.dg/cpp0x/defaulted30.C: New.
+
+	PR c++/49440
+	* g++.dg/rtti/anon-ns1.C: New.
+
+	PR c++/49395
+	* g++.dg/init/ref18.C: New.
+
+	PR c++/36435
+	* g++.dg/template/partial9.C: New.
+
+2011-06-22  Hans-Peter Nilsson  <hp@axis.com>
+
+	PR middle-end/49373
+	* g++.dg/torture/pr43879-1_1.C: Xfail for -O1 and above, except -flto.
+
+2011-06-22  Jakub Jelinek  <jakub@redhat.com>
+
+	PR debug/49496
+	* gcc.dg/pr49496.c: New test.
+
+2011-06-22  Janis Johnson  <janisjo@codesourcery.com>
+
+	* gcc.target/arm/scd42-3.c: Allow -march-xscale; skip if -mcpu
+	is not xscale.
+
+	* gcc.target/arm/thumb-bitfld1.c: Don't specify -march, require thumb1.
+
+	* gcc.target/arm/ctz.c: Don't specify -march, require thumb2.
+	* gcc.target/arm/pr42879.c: Likewise.
+	* gcc.target/arm/pr45701-3.c: Likewise.
+
+	* gcc.target/arm/20031108-1.c: Require thumb1 or thumb2.
+	* gcc.target/arm/pr40482.c: Likewise.
+	* gcc.target/arm/stack-corruption.c: Likewise.
+
+2011-06-22  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/49493
+	* gcc.dg/ipa/ipa-pta-17.c: New testcase.
+
+2011-06-22  Jason Merrill  <jason@redhat.com>
+
+	PR c++/49260
+	* g++.dg/cpp0x/lambda/lambda-eh2.C: Change options.
+
+2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
+	    Dmitry Melnik  <dm@ispras.ru>
+
+	* gcc.target/arm/neon-vshr-imm-1.c: New testcase.
+	* gcc.target/arm/neon-vshl-imm-1.c: New testcase.
+	* gcc.target/arm/neon-vlshr-imm-1.c: New testcase.
+
+2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
+
+	* gcc.target/arm/tlscall.c: New.
+
+2011-06-21  Jason Merrill  <jason@redhat.com>
+
+	PR c++/49172
+	* g++.dg/cpp0x/constexpr-ref1.C: New.
+	* g++.dg/cpp0x/constexpr-ref2.C: New.
+	* g++.dg/cpp0x/constexpr-ice2.C: Remove dg-error tag.
+
+	PR c++/49482
+	* g++.dg/cpp0x/lambda/lambda-warn3.C: New.
+
+	PR c++/49418
+	* g++.dg/template/param3.C: New.
+
+2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
+
+	* gcc.c-torture/excute/builtin-bitops-1.c (MAKE_FUNS): Make
+	my_clrsb test functions.
+	(main): Test clrsb.
+	* gcc.dg/builtin-protos-1.c (test_s, test_u, test_sl, test_ul,
+	test_sll, test_ull): Add clrsb tests.
+	* gcc.dg/torture/builtin-attr-1.c: Add tests for clrsb, clrsbl,
+	clrsbll.
+
+2011-06-21  Janus Weil  <janus@gcc.gnu.org>
+
+	PR fortran/49112
+	* gfortran.dg/class_44.f03: New.
+
+2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
+
+	PR tree-optimization/49478
+	* gcc.dg/vect/pr49478.c
+
+2011-06-21  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/49483
+	* gcc.dg/vect/vect-120.c: New testcase.
+
+2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
+
+	PR testsuite/49443
+	* gcc.dg/vect/vect-peel-3.c: Expect to fail on vect_no_align targets.
+	* gcc.dg/vect/vect-peel-4.c: Likewise.
+
+2011-06-22  Christian Bruel  <christian.bruel@st.com>
+
+	PR middle-end/49139
+	* gcc.dg/always_inline.c: Removed -Winline. Update checks
+	* gcc.dg/always_inline2.c: Likewise.
+	* gcc.dg/always_inline3.c: Likewise.
+	* gcc.dg/debug/pr41264-1.c: Add -Wno-attributes.
+	* gcc.dg/inline_1.c: Likewise.
+	* gcc.dg/inline_2.c: Likewise.
+	* gcc.dg/inline_3.c: Likewise.
+	* gcc.dg/inline_4.c: Likewise.
+	* gcc.dg/20051201-1.c: Likewise.
+	* gcc.dg/pr40087.c: Likewise.
+	* gcc.dg/torture/pta-structcopy-1.c: Likewise.
+	* gcc.dg/inline-22.c: Likewise.
+	* gcc.dg/lto/20090218-1_0.c: Set inline keyword.
+	* gcc.dg/lto/20090218-1_1.c: Likewise.
+	* g++.dg/ipa/devirt-7.C: Likewise.
+	* gcc.dg/uninit-pred-5_a.c: Likewise.
+	* gcc.dg/uninit-pred-5_b.c: Likewise.
+	* gcc.dg/fail_always_inline.c: New.
+
+2011-06-21  Jakub Jelinek  <jakub@redhat.com>
+
+	* Make-lang.in (check_gfortran_parallelize): Parallelize dg.exp
+	into 6 jobs instead of 3.
+
 2011-06-20  Jason Merrill  <jason@redhat.com>
 
 	PR c++/49216
@@ -162,7 +355,7 @@
 
 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
 
-	Revert 
+	Revert:
 	2011-06-10  Wei Guozhi  <carrot@google.com>
 
 	PR target/45335
@@ -208,7 +401,8 @@
 
 2011-06-14  Janis Johnson  <janisjo@codesourcery.com>
 
-	* gcc.target/arm/pr45701-1.c: Ignore warnings about conflicting switches.
+	* gcc.target/arm/pr45701-1.c: Ignore warnings about conflicting
+	switches.
 	* gcc.target/arm/pr45701-2.c: Likewise.
 	* gcc.target/arm/thumb-branch1.c: Likewise.
 
@@ -342,14 +536,14 @@
 
 2011-06-10  Janis Johnson  <janisjo@codesourcery.com>
 
-	* gcc/testsuite/gcc.target/arm/20090811-1.c: Skip for incompatible
+	* gcc.target/arm/20090811-1.c: Skip for incompatible
 	options, do not override other options.
-	* gcc/testsuite/gcc.target/arm/combine-cmp-shift.c: Skip for
+	* gcc.target/arm/combine-cmp-shift.c: Skip for
 	incompatible options.
-	* gcc/testsuite/gcc.target/arm/pr45094.c: Likewise.
-	* gcc/testsuite/gcc.target/arm/scd42-1.c: Likewise.
-	* gcc/testsuite/gcc.target/arm/scd42-3.c: Likewise.
-	* gcc/testsuite/gcc.target/arm/thumb-ltu.c: Likewise.
+	* gcc.target/arm/pr45094.c: Likewise.
+	* gcc.target/arm/scd42-1.c: Likewise.
+	* gcc.target/arm/scd42-3.c: Likewise.
+	* gcc.target/arm/thumb-ltu.c: Likewise.
 
 	* lib/target-supports.exp
 	(check_effective_target_arm_neon_fp16_ok_nocache): Return 0 if
@@ -444,7 +638,7 @@
 
 2011-06-09  David Li  <davidxl@google.com>
 
-	* testsuite/gcc.dg/dump-pass.c: New test.
+	* gcc.dg/dump-pass.c: New test.
 
 2011-06-09  Paolo Carlini  <paolo.carlini@oracle.com>
 
@@ -631,18 +825,17 @@
 
 2011-06-07  Xinliang David Li  <davidxl@google.com>
 
-	* testsuite/gcc.dg/inline_2.c: New test.
-	* testsuite/gcc.dg/unroll_2.c: New test.
-	* testsuite/gcc.dg/inline_3.c: New test.
-	* testsuite/gcc.dg/unroll_3.c: New test.
-	* testsuite/gcc.dg/inline_4.c: New test.
-	* testsuite/gcc.dg/unroll_4.c: New test.
-	* testsuite/gcc.dg/inline_1.c: New test.
-	* testsuite/gcc.dg/unroll_1.c: New test.
+	* gcc.dg/inline_2.c: New test.
+	* gcc.dg/unroll_2.c: New test.
+	* gcc.dg/inline_3.c: New test.
+	* gcc.dg/unroll_3.c: New test.
+	* gcc.dg/inline_4.c: New test.
+	* gcc.dg/unroll_4.c: New test.
+	* gcc.dg/inline_1.c: New test.
+	* gcc.dg/unroll_1.c: New test.
 
 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
-	gcc/testsuite:
 	PR tree-optimization/48497
 	* lib/gcc-defs.exp (dg-additional-options): New proc.
 	* gfortran.dg/graphite/vect-pr40979.f90: Use dg-additional-options
@@ -1181,7 +1374,7 @@
 
 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
-	* testsuite/g++.dg/warn/delete-non-virtual-dtor.C: New.
+	* g++.dg/warn/delete-non-virtual-dtor.C: New.
 
 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
@@ -1214,8 +1407,7 @@
 2011-06-03  Richard Henderson  <rth@redhat.com>
 	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
-	* lib/target-supports.exp (check_sse_os_support_available): Use
-	movaps.
+	* lib/target-supports.exp (check_sse_os_support_available): Use movaps.
 
 2011-06-03  Nicola Pero  <nicola.pero@meta-innovation.com>
 
@@ -1305,24 +1497,24 @@
 
 2011-06-01  David Li  <davidxl@google.com>
 
-	* testsuite/gcc.dg/profile-dir-1.c: Change pass name.
-	* testsuite/gcc.dg/profile-dir-2.c: Ditto.
-	* testsuite/gcc.dg/tree-ssa/dump-1.c: Ditto.
-	* testsuite/gcc.dg/tree-ssa/loop-25.c: Ditto.
-	* testsuite/gcc.dg/tree-prof/stringop-1.c: Ditto.
-	* testsuite/gcc.dg/tree-prof/update-loopch.c: Ditto.
-	* testsuite/gcc.dg/tree-prof/stringop-2.c: Ditto.
-	* testsuite/gcc.dg/tree-prof/ic-misattribution-1.c: Ditto.
-	* testsuite/gcc.dg/tree-prof/ic-misattribution-1a.c: Ditto.
-	* testsuite/gcc.dg/tree-prof/indir-call-prof.c: Ditto.
-	* testsuite/gcc.dg/tree-prof/val-prof-1.c: Ditto.
-	* testsuite/gcc.dg/tree-prof/val-prof-2.c: Ditto.
-	* testsuite/gcc.dg/tree-prof/val-prof-3.c: Ditto.
-	* testsuite/gcc.dg/tree-prof/val-prof-4.c: Ditto.
-	* testsuite/gcc.dg/tree-prof/val-prof-5.c: Ditto.
-	* testsuite/gcc.dg/tree-prof/val-prof-7.c: Ditto.
-	* testsuite/gcc.dg/profile-dir-3.c: Ditto.
-	* testsuite/g++.dg/tree-prof/indir-call-prof.C: Ditto.
+	* gcc.dg/profile-dir-1.c: Change pass name.
+	* gcc.dg/profile-dir-2.c: Ditto.
+	* gcc.dg/tree-ssa/dump-1.c: Ditto.
+	* gcc.dg/tree-ssa/loop-25.c: Ditto.
+	* gcc.dg/tree-prof/stringop-1.c: Ditto.
+	* gcc.dg/tree-prof/update-loopch.c: Ditto.
+	* gcc.dg/tree-prof/stringop-2.c: Ditto.
+	* gcc.dg/tree-prof/ic-misattribution-1.c: Ditto.
+	* gcc.dg/tree-prof/ic-misattribution-1a.c: Ditto.
+	* gcc.dg/tree-prof/indir-call-prof.c: Ditto.
+	* gcc.dg/tree-prof/val-prof-1.c: Ditto.
+	* gcc.dg/tree-prof/val-prof-2.c: Ditto.
+	* gcc.dg/tree-prof/val-prof-3.c: Ditto.
+	* gcc.dg/tree-prof/val-prof-4.c: Ditto.
+	* gcc.dg/tree-prof/val-prof-5.c: Ditto.
+	* gcc.dg/tree-prof/val-prof-7.c: Ditto.
+	* gcc.dg/profile-dir-3.c: Ditto.
+	* g++.dg/tree-prof/indir-call-prof.C: Ditto.
 
 2011-06-01  Nicola Pero  <nicola.pero@meta-innovation.com>
 
@@ -1539,7 +1731,7 @@
 2011-05-27  Paolo Carlini  <paolo.carlini@oracle.com>
 
 	PR c++/42056
-	* testsuite/g++.dg/cpp0x/auto25.C: New.
+	* g++.dg/cpp0x/auto25.C: New.
 
 2011-05-27  Richard Guenther  <rguenther@suse.de>
 
@@ -2722,8 +2914,8 @@
 
 2011-04-28  Xinliang David Li  <davidxl@google.com>
 
-	* testsuite/gcc.dg/tree-prof/prof-robust-1.c: New test.
-	* testsuite/g++.dg/prof-robust-1.C: New test.
+	* gcc.dg/tree-prof/prof-robust-1.c: New test.
+	* g++.dg/prof-robust-1.C: New test.
 
 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
 
@@ -4274,11 +4466,11 @@
 2011-03-16  Jason Merrill  <jason@redhat.com>
 
 	* g++.dg/cpp0x/sfinae6.C: New.
-	* gcc/testsuite/g++.dg/cpp0x/initlist38.C: Adjust expected error.
-	* gcc/testsuite/g++.dg/cpp0x/pr45908.C: Likewise.
-	* gcc/testsuite/g++.dg/cpp0x/sfinae6.C: Likewise.
-	* gcc/testsuite/g++.old-deja/g++.jason/conversion11.C: Likewise.
-	* gcc/testsuite/g++.old-deja/g++.law/arg11.C: Likewise.
+	* g++.dg/cpp0x/initlist38.C: Adjust expected error.
+	* g++.dg/cpp0x/pr45908.C: Likewise.
+	* g++.dg/cpp0x/sfinae6.C: Likewise.
+	* g++.old-deja/g++.jason/conversion11.C: Likewise.
+	* g++.old-deja/g++.law/arg11.C: Likewise.
 
 2011-03-16  Jason Merrill  <jason@redhat.com>
 
@@ -6803,8 +6995,8 @@
 
 	PR lto/45721
 	PR lto/45375
-	* testsuite/gcc.dg/lto/pr45721_1.c: New file.
-	* testsuite/gcc.dg/lto/pr45721_0.c: New file.
+	* gcc.dg/lto/pr45721_1.c: New file.
+	* gcc.dg/lto/pr45721_0.c: New file.
 
 2011-01-11  Richard Guenther  <rguenther@suse.de>
 
@@ -7100,8 +7292,8 @@
 
 2011-01-06  Jan Hubicka  <jh@suse.cz>
 
-	* testsuite/gcc.dg/lto/pr47188_0.c: New testcase.
-	* testsuite/gcc.dg/lto/pr47188_1.c: New testcase.
+	* gcc.dg/lto/pr47188_0.c: New testcase.
+	* gcc.dg/lto/pr47188_1.c: New testcase.
 
 2011-01-06  Daniel Franke  <franke.daniel@gmail.com>
 
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-cleanup.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-cleanup.C
new file mode 100644
index 0000000..de17f3d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-cleanup.C
@@ -0,0 +1,9 @@
+// { dg-options -std=c++0x }
+
+struct A
+{
+  int i;
+  ~A();
+};
+
+constexpr int i = A().i;	// { dg-error "non-literal" }
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-ice2.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-ice2.C
index 35643b9..856246f 100644
--- a/gcc/testsuite/g++.dg/cpp0x/constexpr-ice2.C
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-ice2.C
@@ -1,3 +1,3 @@
 // { dg-options -std=c++0x }
 int x;
-constexpr int& rx = x; // { dg-error "int&" }
+constexpr int& rx = x;
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-ref1.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-ref1.C
new file mode 100644
index 0000000..482e1ba
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-ref1.C
@@ -0,0 +1,44 @@
+// PR c++/49172
+// { dg-options -std=c++0x }
+
+#define SA(X) static_assert((X),#X)
+
+constexpr int g() { return 42; };
+constexpr int(&rg)() = g; // #1
+
+SA(rg() == 42);
+
+constexpr int i = 24;
+constexpr int const& ri = i; // #2
+
+SA(&ri == &i);
+SA(ri == 24);
+
+void f()
+{
+  constexpr int(&rg)() = g; // #1
+
+  SA(rg() == 42);
+
+  constexpr static int i = 24;
+  constexpr int const& ri = i; // #2
+
+  SA(&ri == &i);
+  SA(ri == 24);
+}
+
+template <class T>
+void f2()
+{
+  constexpr int(&rg)() = g; // #1
+
+  SA(rg() == 42);
+
+  constexpr static int i = 24;
+  constexpr int const& ri = i; // #2
+
+  SA(&ri == &i);
+  SA(ri == 24);
+}
+
+template void f2<int>();
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-ref2.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-ref2.C
new file mode 100644
index 0000000..2a86eb7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-ref2.C
@@ -0,0 +1,17 @@
+// Negative reference variable tests.
+// { dg-options -std=c++0x }
+
+extern int *p;
+constexpr int& ri = *p;		// { dg-error "p" }
+
+extern constexpr int &er;	// { dg-error "not a definition" }
+constexpr int& ri2 = er;	// { dg-error "er" }
+
+void f(int j)
+{
+  constexpr int i = 42;
+  constexpr int const& ri = i;	// { dg-error "" }
+
+  constexpr int& rj = j;	// { dg-error "" }
+}
+
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-union.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-union.C
index b461305..3c7a7f3 100644
--- a/gcc/testsuite/g++.dg/cpp0x/constexpr-union.C
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-union.C
@@ -1,5 +1,5 @@
 // Test that we don't have to deal with type punning
-// FIXME Mike Miller thinks it should work
+// DR 1188 says this is ill-formed
 // { dg-options -std=c++0x }
 
 union U
diff --git a/gcc/testsuite/g++.dg/cpp0x/defaulted30.C b/gcc/testsuite/g++.dg/cpp0x/defaulted30.C
new file mode 100644
index 0000000..0bf4425
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/defaulted30.C
@@ -0,0 +1,16 @@
+// PR c++/49507
+// { dg-options -std=c++0x }
+
+template<typename T>
+struct ConcretePoolKey
+{
+        virtual ~ConcretePoolKey();
+};
+
+template<typename T>
+ConcretePoolKey<T>::~ConcretePoolKey() = default;
+
+int main()
+{
+        ConcretePoolKey<int> foo;
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh2.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh2.C
index 1490a25..0c94b55 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh2.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh2.C
@@ -1,5 +1,6 @@
 // PR c++/47263
-// { dg-options -std=c++0x }
+// PR c++/49260
+// { dg-options "-std=c++0x -fno-asynchronous-unwind-tables -fno-dwarf2-cfi-asm" }
 // { dg-do run }
 
 #include <exception>
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn3.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn3.C
new file mode 100644
index 0000000..77f35bc
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn3.C
@@ -0,0 +1,12 @@
+// PR c++/49482
+// { dg-options "-std=c++0x -Wunused-but-set-parameter" }
+
+template<class T>
+void f() {
+  []( bool b ){ return b; };
+}
+
+int main()
+{
+  f<int>();
+}
diff --git a/gcc/testsuite/g++.dg/init/ref18.C b/gcc/testsuite/g++.dg/init/ref18.C
new file mode 100644
index 0000000..e704077
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ref18.C
@@ -0,0 +1,12 @@
+// PR c++/49395
+
+volatile int foo();
+struct A { volatile int i; };
+typedef volatile int vi;
+
+volatile int i;
+
+const int& ir1 = foo();
+//const int& ir2 = A().i;  // line 8
+const int& ir3 = static_cast<volatile int>(i);
+const int& ir4 = vi();  // line 10
diff --git a/gcc/testsuite/g++.dg/init/ref19.C b/gcc/testsuite/g++.dg/init/ref19.C
new file mode 100644
index 0000000..ed78c93
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ref19.C
@@ -0,0 +1,17 @@
+// PR c++/49528
+// { dg-do run }
+
+int d;
+
+struct A
+{
+  int i;
+  ~A() { ++d; };
+};
+
+int main()
+{
+  const int &r = A().i;
+  if (d != 1)
+    return 1;
+}
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-7.C b/gcc/testsuite/g++.dg/ipa/devirt-7.C
index ac147b5..1c59122 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-7.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-7.C
@@ -56,7 +56,7 @@
   return 1;
 }
 
-int __attribute__ ((always_inline))
+int inline __attribute__ ((always_inline))
 A::middleman_1 (int i)
 {
   return this->foo (i);
diff --git a/gcc/testsuite/g++.dg/rtti/anon-ns1.C b/gcc/testsuite/g++.dg/rtti/anon-ns1.C
new file mode 100644
index 0000000..fd6f8af
--- /dev/null
+++ b/gcc/testsuite/g++.dg/rtti/anon-ns1.C
@@ -0,0 +1,15 @@
+// PR c++/49440
+// The typeinfo name for A should start with * so we compare
+// it by address rather than contents.
+
+// { dg-final { scan-assembler "\"\*N\[^\"\]+1AE\"" } }
+
+namespace
+{
+  class A { };
+}
+
+void f()
+{
+  throw A();
+}
diff --git a/gcc/testsuite/g++.dg/template/crash107.C b/gcc/testsuite/g++.dg/template/crash107.C
new file mode 100644
index 0000000..cd64c37
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/crash107.C
@@ -0,0 +1,20 @@
+// PR c++/44625
+// { dg-do compile }
+// { dg-options "" }
+
+template<typename FP_> struct Vec { // { dg-message "note" }
+    Vec& operator^=(Vec& rhs)     {
+        union {
+            struct {FP_ x,y,z;};
+        }; // { dg-error "anonymous struct" }
+        X = y*rhs.z() - z*rhs.y(); // { dg-error "not declared|no member" }
+    }
+    Vec& operator^(Vec& rhs) {
+        return Vec(*this)^=rhs; // { dg-message "required" }
+    }
+};
+Vec<double> v(3,4,12); // { dg-error "no matching" }
+// { dg-message "note" { target *-*-* } 16 }
+Vec<double> V(12,4,3);  // { dg-error "no matching" }
+// { dg-message "note" { target *-*-* } 18 }
+Vec<double> c = v^V;   // { dg-message "required" }
diff --git a/gcc/testsuite/g++.dg/template/error17.C b/gcc/testsuite/g++.dg/template/error17.C
index f34234d..10c8b82 100644
--- a/gcc/testsuite/g++.dg/template/error17.C
+++ b/gcc/testsuite/g++.dg/template/error17.C
@@ -6,5 +6,4 @@
 {
   union { struct { }; }; // { dg-error "prohibits anonymous struct" "anon" }
   // { dg-error "not inside" "not inside" { target *-*-* } 7 }
-  // { dg-warning "no members" "no members" { target *-*-* } 7 }
 }
diff --git a/gcc/testsuite/g++.dg/template/param3.C b/gcc/testsuite/g++.dg/template/param3.C
new file mode 100644
index 0000000..0c1e703
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/param3.C
@@ -0,0 +1,12 @@
+// PR c++/49418
+
+template <class T>
+void f (const T t)
+{
+  t = 1;			// { dg-error "" }
+}
+
+int main()
+{
+  f(1);
+}
diff --git a/gcc/testsuite/g++.dg/template/partial10.C b/gcc/testsuite/g++.dg/template/partial10.C
new file mode 100644
index 0000000..53a48fb
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/partial10.C
@@ -0,0 +1,18 @@
+// PR c++/35255, DR 115
+// { dg-do link }
+
+// 14.8.1: In contexts where deduction is done and fails, or in contexts
+// where deduction is not done, if a template argument list is specified
+// and it, along with any default template arguments, identifies a single
+// function template specialization, then the template-id is an lvalue for
+// the function template specialization.
+
+template <class Fn> void def(Fn fn) {}
+
+template <class T1, class T2> T2 fn(T1, T2);
+template <class T1> int fn(T1) { }
+
+int main()
+{
+  def(fn<int>);
+}
diff --git a/gcc/testsuite/g++.dg/template/partial11.C b/gcc/testsuite/g++.dg/template/partial11.C
new file mode 100644
index 0000000..b5ceaa8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/partial11.C
@@ -0,0 +1,24 @@
+// DR 115
+
+// 14.8.1: In contexts where deduction is done and fails, or in contexts
+// where deduction is not done, if a template argument list is specified
+// and it, along with any default template arguments, identifies a single
+// function template specialization, then the template-id is an lvalue for
+// the function template specialization.
+
+// Here, deduction is not done to resolve fn<int> because the target type
+// is a template parameter, so we resolve to the second template, and then
+// the call to def fails because we deduce different values of Fn for the
+// two function arguments.
+
+template <class Fn> void def(Fn fn, Fn fn2);
+
+template <class T1, class T2> T2 fn(T1, T2);
+template <class T1> int fn(T1);
+
+int f(int,int);
+
+int main()
+{
+  def(fn<int>,f);		// { dg-error "" }
+}
diff --git a/gcc/testsuite/g++.dg/template/partial9.C b/gcc/testsuite/g++.dg/template/partial9.C
new file mode 100644
index 0000000..4c340fc
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/partial9.C
@@ -0,0 +1,6 @@
+// PR c++/36435
+
+template <class T> T f();
+template <class T> T* f() { }
+
+template int* f();
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr49516.C b/gcc/testsuite/g++.dg/tree-ssa/pr49516.C
new file mode 100644
index 0000000..2c6fd04
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr49516.C
@@ -0,0 +1,86 @@
+/* { dg-do run } */
+/* { dg-options "-O2" } */
+
+extern "C" void abort (void);
+
+typedef int int32;
+typedef unsigned int uint32;
+typedef unsigned long long uint64;
+typedef short int16;
+
+class Tp {
+ public:
+  Tp(int, const int segment, const int index) __attribute__((noinline));
+
+  inline bool operator==(const Tp& other) const;
+  inline bool operator!=(const Tp& other) const;
+  int GetType() const { return type_; }
+  int GetSegment() const { return segment_; }
+  int GetIndex() const { return index_; }
+ private:
+  inline static bool IsValidSegment(const int segment);
+  static const int kSegmentBits = 28;
+  static const int kTypeBits = 4;
+  static const int kMaxSegment = (1 << kSegmentBits) - 1;
+
+  union {
+
+    struct {
+      int32 index_;
+      uint32 segment_ : kSegmentBits;
+      uint32 type_ : kTypeBits;
+    };
+    struct {
+      int32 dummy_;
+      uint32 type_and_segment_;
+    };
+    uint64 value_;
+  };
+};
+
+Tp::Tp(int t, const int segment, const int index)
+ : index_(index), segment_(segment), type_(t) {}
+
+inline bool Tp::operator==(const Tp& other) const {
+  return value_ == other.value_;
+}
+inline bool Tp::operator!=(const Tp& other) const {
+  return value_ != other.value_;
+}
+
+class Range {
+ public:
+  inline Range(const Tp& position, const int count) __attribute__((always_inline));
+  inline Tp GetBeginTokenPosition() const;
+  inline Tp GetEndTokenPosition() const;
+ private:
+  Tp position_;
+  int count_;
+  int16 begin_index_;
+  int16 end_index_;
+};
+
+inline Range::Range(const Tp& position,
+                    const int count)
+    : position_(position), count_(count), begin_index_(0), end_index_(0)
+    { }
+
+inline Tp Range::GetBeginTokenPosition() const {
+  return position_;
+}
+inline Tp Range::GetEndTokenPosition() const {
+  return Tp(position_.GetType(), position_.GetSegment(),
+            position_.GetIndex() + count_);
+}
+
+int main ()
+{
+  Range range(Tp(0, 0, 3), 0);
+  if (!(range.GetBeginTokenPosition() == Tp(0, 0, 3)))
+    abort ();
+
+  if (!(range.GetEndTokenPosition() == Tp(0, 0, 3)))
+    abort();
+
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtin-bitops-1.c b/gcc/testsuite/gcc.c-torture/execute/builtin-bitops-1.c
index 8c3122c..7907a75 100644
--- a/gcc/testsuite/gcc.c-torture/execute/builtin-bitops-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/builtin-bitops-1.c
@@ -62,6 +62,16 @@
     return i;								\
 }									\
 									\
+int my_clrsb##suffix(type x) {						\
+    int i;								\
+    int leading = (x >> CHAR_BIT * sizeof (type) - 1) & 1;		\
+    for (i = 1; i < CHAR_BIT * sizeof (type); i++)			\
+	if (((x >> ((CHAR_BIT * sizeof (type)) - i - 1)) & 1)		\
+	    != leading)							\
+	    break;							\
+    return i - 1;							\
+}									\
+									\
 int my_popcount##suffix(type x) {					\
     int i;								\
     int count = 0;							\
@@ -176,6 +186,8 @@
       if (ints[i] != 0
 	  && __builtin_ctz (ints[i]) != my_ctz (ints[i]))
 	abort ();
+      if (__builtin_clrsb (ints[i]) != my_clrsb (ints[i]))
+	abort ();
       if (__builtin_popcount (ints[i]) != my_popcount (ints[i]))
 	abort ();
       if (__builtin_parity (ints[i]) != my_parity (ints[i]))
@@ -192,6 +204,8 @@
       if (longs[i] != 0
 	  && __builtin_ctzl (longs[i]) != my_ctzl (longs[i]))
 	abort ();
+      if (__builtin_clrsbl (longs[i]) != my_clrsbl (longs[i]))
+	abort ();
       if (__builtin_popcountl (longs[i]) != my_popcountl (longs[i]))
 	abort ();
       if (__builtin_parityl (longs[i]) != my_parityl (longs[i]))
@@ -208,6 +222,8 @@
       if (longlongs[i] != 0
 	  && __builtin_ctzll (longlongs[i]) != my_ctzll (longlongs[i]))
 	abort ();
+      if (__builtin_clrsbll (longlongs[i]) != my_clrsbll (longlongs[i]))
+	abort ();
       if (__builtin_popcountll (longlongs[i]) != my_popcountll (longlongs[i]))
 	abort ();
       if (__builtin_parityll (longlongs[i]) != my_parityll (longlongs[i]))
@@ -223,6 +239,8 @@
     abort ();								\
   if (x != 0 && __builtin_ctz##suffix (x) != my_ctz##suffix (x))	\
     abort ();								\
+  if (__builtin_clrsb##suffix (x) != my_clrsb##suffix (x))		\
+    abort ();								\
   if (__builtin_popcount##suffix (x) != my_popcount##suffix (x))	\
     abort ();								\
   if (__builtin_parity##suffix (x) != my_parity##suffix (x))		\
diff --git a/gcc/testsuite/gcc.dg/20051201-1.c b/gcc/testsuite/gcc.dg/20051201-1.c
index 8e77986..bc8e792 100644
--- a/gcc/testsuite/gcc.dg/20051201-1.c
+++ b/gcc/testsuite/gcc.dg/20051201-1.c
@@ -2,7 +2,7 @@
    tree_flow_call_edges_add.  */
 
 /* { dg-do compile } */
-/* { dg-options "-O1 -fprofile-generate" } */
+/* { dg-options "-O1 -fprofile-generate -Wno-attributes" } */
 
 static __attribute__ ((always_inline)) void 
 baz ()
diff --git a/gcc/testsuite/gcc.dg/always_inline.c b/gcc/testsuite/gcc.dg/always_inline.c
index 08119f1..482a0a2 100644
--- a/gcc/testsuite/gcc.dg/always_inline.c
+++ b/gcc/testsuite/gcc.dg/always_inline.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
-/* { dg-options "-Winline -O2" } */
+/* { dg-options "-O2" } */
 #include <stdarg.h>
 inline __attribute__ ((always_inline)) void
-e(int t, ...) /* { dg-message "sorry\[^\n\]*variable argument" "" } */
+e(int t, ...) /* { dg-error "variable argument lists" } */
 {
   va_list q;
   va_start (q, t);
diff --git a/gcc/testsuite/gcc.dg/always_inline2.c b/gcc/testsuite/gcc.dg/always_inline2.c
index c65df24..4f1634e 100644
--- a/gcc/testsuite/gcc.dg/always_inline2.c
+++ b/gcc/testsuite/gcc.dg/always_inline2.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
-/* { dg-options "-Winline -O2" } */
-inline __attribute__ ((always_inline)) void t(void); /* { dg-message "sorry\[^\n\]*body not available" "" } */
+/* { dg-options "-O2" } */
+inline __attribute__ ((always_inline)) void t(void); /* { dg-error "body not available" } */
 void
 q(void)
 {
-  t(); 				/* { dg-message "sorry\[^\n\]*called from here" "" } */
+  t(); 				/* { dg-error "called from here" } */
 }
diff --git a/gcc/testsuite/gcc.dg/always_inline3.c b/gcc/testsuite/gcc.dg/always_inline3.c
index 97c80aa..80ea314 100644
--- a/gcc/testsuite/gcc.dg/always_inline3.c
+++ b/gcc/testsuite/gcc.dg/always_inline3.c
@@ -1,11 +1,11 @@
 /* { dg-do compile } */
-/* { dg-options "-Winline -O2" } */
+/* { dg-options "-O2" } */
 int do_something_evil (void);
 inline __attribute__ ((always_inline)) void
-q2(void) /* { dg-message "sorry\[^\n\]*recursive" "" } */
+q2(void) /* { dg-error "recursive inlining" } */
 {
   if (do_something_evil ())
     return;
-  q2(); 			/* { dg-message "sorry\[^\n\]*called from here" "" } */
+  q2(); 			/* { dg-error "called from here" } */
   q2(); /* With -O2 we don't warn here, it is eliminated by tail recursion.  */
 }
diff --git a/gcc/testsuite/gcc.dg/builtin-protos-1.c b/gcc/testsuite/gcc.dg/builtin-protos-1.c
index 85f96cf..b9e9396 100644
--- a/gcc/testsuite/gcc.dg/builtin-protos-1.c
+++ b/gcc/testsuite/gcc.dg/builtin-protos-1.c
@@ -7,6 +7,7 @@
   return __builtin_abs (x)	/* { dg-bogus "as unsigned due to prototype" } */
     + __builtin_clz (x)		/* { dg-warning "as unsigned due to prototype" } */
     + __builtin_ctz (x)		/* { dg-warning "as unsigned due to prototype" } */
+    + __builtin_clrsb (x)	/* { dg-bogus "as unsigned due to prototype" } */
     + __builtin_ffs (x)		/* { dg-bogus "as unsigned due to prototype" } */
     + __builtin_parity (x)	/* { dg-warning "as unsigned due to prototype" } */
     + __builtin_popcount (x);	/* { dg-warning "as unsigned due to prototype" } */
@@ -18,6 +19,7 @@
   return __builtin_abs (x)	/* { dg-warning "as signed due to prototype" } */
     + __builtin_clz (x)		/* { dg-bogus "as signed due to prototype" } */
     + __builtin_ctz (x)		/* { dg-bogus "as signed due to prototype" } */
+    + __builtin_clrsb (x)	/* { dg-warning "as signed due to prototype" } */
     + __builtin_ffs (x)		/* { dg-warning "as signed due to prototype" } */
     + __builtin_parity (x)	/* { dg-bogus "as signed due to prototype" } */
     + __builtin_popcount (x);	/* { dg-bogus "as signed due to prototype" } */
@@ -29,6 +31,7 @@
   return __builtin_labs (x)	/* { dg-bogus "as unsigned due to prototype" } */
     + __builtin_clzl (x)	/* { dg-warning "as unsigned due to prototype" } */
     + __builtin_ctzl (x)	/* { dg-warning "as unsigned due to prototype" } */
+    + __builtin_clrsbl (x)	/* { dg-bogus "as unsigned due to prototype" } */
     + __builtin_ffsl (x)	/* { dg-bogus "as unsigned due to prototype" } */
     + __builtin_parityl (x)	/* { dg-warning "as unsigned due to prototype" } */
     + __builtin_popcountl (x);	/* { dg-warning "as unsigned due to prototype" } */
@@ -40,6 +43,7 @@
   return __builtin_labs (x)	/* { dg-warning "as signed due to prototype" } */
     + __builtin_clzl (x)	/* { dg-bogus "as signed due to prototype" } */
     + __builtin_ctzl (x)	/* { dg-bogus "as signed due to prototype" } */
+    + __builtin_clrsbl (x)	/* { dg-warning "as signed due to prototype" } */
     + __builtin_ffsl (x)	/* { dg-warning "as signed due to prototype" } */
     + __builtin_parityl (x)	/* { dg-bogus "as signed due to prototype" } */
     + __builtin_popcountl (x);	/* { dg-bogus "as signed due to prototype" } */
@@ -51,6 +55,7 @@
   return __builtin_llabs (x)	/* { dg-bogus "as unsigned due to prototype" } */
     + __builtin_clzll (x)	/* { dg-warning "as unsigned due to prototype" } */
     + __builtin_ctzll (x)	/* { dg-warning "as unsigned due to prototype" } */
+    + __builtin_clrsbll (x)	/* { dg-bogus "as unsigned due to prototype" } */
     + __builtin_ffsll (x)	/* { dg-bogus "as unsigned due to prototype" } */
     + __builtin_parityll (x)	/* { dg-warning "as unsigned due to prototype" } */
     + __builtin_popcountll (x);	/* { dg-warning "as unsigned due to prototype" } */
@@ -62,6 +67,7 @@
   return __builtin_llabs (x)	/* { dg-warning "as signed due to prototype" } */
     + __builtin_clzll (x)	/* { dg-bogus "as signed due to prototype" } */
     + __builtin_ctzll (x)	/* { dg-bogus "as signed due to prototype" } */
+    + __builtin_clrsbll (x)	/* { dg-warning "as signed due to prototype" } */
     + __builtin_ffsll (x)	/* { dg-warning "as signed due to prototype" } */
     + __builtin_parityll (x)	/* { dg-bogus "as signed due to prototype" } */
     + __builtin_popcountll (x);	/* { dg-bogus "as signed due to prototype" } */
diff --git a/gcc/testsuite/gcc.dg/debug/pr41264-1.c b/gcc/testsuite/gcc.dg/debug/pr41264-1.c
index 34bdcfe..7d03e51 100644
--- a/gcc/testsuite/gcc.dg/debug/pr41264-1.c
+++ b/gcc/testsuite/gcc.dg/debug/pr41264-1.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-options "-Wno-attributes" } */
 
 #if (__SIZEOF_INT__ <= 2)	
 typedef unsigned long hashval_t;
diff --git a/gcc/testsuite/gcc.dg/debug/pr49294.c b/gcc/testsuite/gcc.dg/debug/pr49294.c
index e4869e0..86b53bd 100644
--- a/gcc/testsuite/gcc.dg/debug/pr49294.c
+++ b/gcc/testsuite/gcc.dg/debug/pr49294.c
@@ -1,5 +1,6 @@
 /* PR debug/49294 */
 /* { dg-do compile } */
+/* { dg-options "-fno-common" { target hppa*-*-hpux* } } */
 
 typedef __attribute__ ((vector_size ((8) * sizeof (short)))) short V;
 
diff --git a/gcc/testsuite/gcc.dg/fail_always_inline.c b/gcc/testsuite/gcc.dg/fail_always_inline.c
new file mode 100644
index 0000000..4b196ac
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/fail_always_inline.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+
+extern __attribute__ ((always_inline)) void
+ bar() { } /* { dg-warning "function might not be inlinable" } */
+
+void
+f()
+{
+  bar(); 
+}
+
diff --git a/gcc/testsuite/gcc.dg/fail_always_inline2.c b/gcc/testsuite/gcc.dg/fail_always_inline2.c
new file mode 100644
index 0000000..863597f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/fail_always_inline2.c
@@ -0,0 +1,19 @@
+extern char *__realpath_alias (__const char *__restrict __name, char 
+*__restrict __resolved) __asm__ ("" "realpath") __attribute__ 
+((__nothrow__)) __attribute__ ((__warn_unused_result__));
+
+extern __inline __attribute__ ((__always_inline__)) __attribute__ 
+((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
+__attribute__ ((__nothrow__)) realpath (__const char *__restrict __name, 
+char *__restrict __resolved)
+{
+   return __realpath_alias (__name, __resolved);
+}
+
+char *
+realpath(path, resolved)
+  const char *path;
+  char *resolved;
+{
+  return (((void *)0));
+}
diff --git a/gcc/testsuite/gcc.dg/inline-22.c b/gcc/testsuite/gcc.dg/inline-22.c
index 6d790f9..1785e1c 100644
--- a/gcc/testsuite/gcc.dg/inline-22.c
+++ b/gcc/testsuite/gcc.dg/inline-22.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-funit-at-a-time" } */
+/* { dg-options "-funit-at-a-time -Wno-attributes" } */
 /* Verify we can inline without a complete prototype and with promoted
    arguments.  See also PR32492.  */
 __attribute__((always_inline)) void f1() {}
diff --git a/gcc/testsuite/gcc.dg/inline_1.c b/gcc/testsuite/gcc.dg/inline_1.c
index 08ccb86..3d04b33 100644
--- a/gcc/testsuite/gcc.dg/inline_1.c
+++ b/gcc/testsuite/gcc.dg/inline_1.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-optimized -fdisable-tree-einline -fdisable-ipa-inline" } */
+/* { dg-options "-O2 -fdump-tree-optimized -fdisable-tree-einline -fdisable-ipa-inline -Wno-attributes" } */
 int g;
 __attribute__((always_inline)) void bar (void)
 {
diff --git a/gcc/testsuite/gcc.dg/inline_2.c b/gcc/testsuite/gcc.dg/inline_2.c
index efdc76a..0607699 100644
--- a/gcc/testsuite/gcc.dg/inline_2.c
+++ b/gcc/testsuite/gcc.dg/inline_2.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-optimized -fdisable-tree-einline=0:100 -fdisable-ipa-inline" } */
+/* { dg-options "-O2 -fdump-tree-optimized -fdisable-tree-einline=0:100 -fdisable-ipa-inline -Wno-attributes" } */
 int g;
 __attribute__((always_inline)) void bar (void)
 {
diff --git a/gcc/testsuite/gcc.dg/inline_3.c b/gcc/testsuite/gcc.dg/inline_3.c
index 70a2366..17871c6 100644
--- a/gcc/testsuite/gcc.dg/inline_3.c
+++ b/gcc/testsuite/gcc.dg/inline_3.c
@@ -1,5 +1,5 @@
 /* { dg-do compile   { target i?86-*-linux* x86_64-*-linux* } } */
-/* { dg-options "-O2 -fdump-tree-optimized -fdisable-tree-einline=foo,foo2 -fdisable-ipa-inline" } */
+/* { dg-options "-O2 -fdump-tree-optimized -fdisable-tree-einline=foo,foo2 -fdisable-ipa-inline -Wno-attributes" } */
 int g;
 __attribute__((always_inline)) void bar (void)
 {
diff --git a/gcc/testsuite/gcc.dg/inline_4.c b/gcc/testsuite/gcc.dg/inline_4.c
index 9a85242..1feefa1 100644
--- a/gcc/testsuite/gcc.dg/inline_4.c
+++ b/gcc/testsuite/gcc.dg/inline_4.c
@@ -1,5 +1,5 @@
 /* { dg-do compile  { target i?86-*-linux* x86_64-*-linux* } } */
-/* { dg-options "-O2 -fdump-tree-optimized -fdisable-tree-einline=foo2 -fdisable-ipa-inline" } */
+/* { dg-options "-O2 -fdump-tree-optimized -fdisable-tree-einline=foo2 -fdisable-ipa-inline -Wno-attributes" } */
 int g;
 __attribute__((always_inline)) void bar (void)
 {
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-pta-17.c b/gcc/testsuite/gcc.dg/ipa/ipa-pta-17.c
new file mode 100644
index 0000000..443ed9d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-pta-17.c
@@ -0,0 +1,7 @@
+/* { dg-do compile } */
+/* { dg-require-alias "" } */
+/* { dg-options "-O -fipa-pta" } */
+
+static int i;
+extern int j __attribute__ ((alias ("i")));
+int *p = &j;
diff --git a/gcc/testsuite/gcc.dg/lto/20090218-1_0.c b/gcc/testsuite/gcc.dg/lto/20090218-1_0.c
index 1dc9ee0..750c202 100644
--- a/gcc/testsuite/gcc.dg/lto/20090218-1_0.c
+++ b/gcc/testsuite/gcc.dg/lto/20090218-1_0.c
@@ -1,4 +1,4 @@
-void set_mem_alias_set ()  __attribute__ ((always_inline));
+void inline set_mem_alias_set ()  __attribute__ ((always_inline));
 void emit_push_insn () {
   set_mem_alias_set ();
 }
diff --git a/gcc/testsuite/gcc.dg/lto/20090218-1_1.c b/gcc/testsuite/gcc.dg/lto/20090218-1_1.c
index 33d4fb0..7db2c85 100644
--- a/gcc/testsuite/gcc.dg/lto/20090218-1_1.c
+++ b/gcc/testsuite/gcc.dg/lto/20090218-1_1.c
@@ -4,6 +4,6 @@
 }
 static void  __attribute__ ((noinline)) get_mem_attrs () {
 }
-void  __attribute__ ((always_inline)) set_mem_alias_set () {
+void  inline __attribute__ ((always_inline)) set_mem_alias_set () {
   get_mem_attrs ();
 }
diff --git a/gcc/testsuite/gcc.dg/memcpy-3.c b/gcc/testsuite/gcc.dg/memcpy-3.c
index ba3db56..3b5693b 100644
--- a/gcc/testsuite/gcc.dg/memcpy-3.c
+++ b/gcc/testsuite/gcc.dg/memcpy-3.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O -fdump-tree-optimized" } */
+/* { dg-require-effective-target non_strict_align } */
 
 int get_int(const void *p)
 {
diff --git a/gcc/testsuite/gcc.dg/pr48770.c b/gcc/testsuite/gcc.dg/pr48770.c
new file mode 100644
index 0000000..d0b8554
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr48770.c
@@ -0,0 +1,21 @@
+/* { dg-do run } */
+/* { dg-options "-O -fprofile-arcs -fPIC -fno-dce -fno-forward-propagate" } */
+
+int test_goto2 (int f)
+{
+  int i;
+  for (i = 0; ({_Bool a = i < 10;a;}); i++)
+  {
+    if (i == f)
+      goto lab2;
+  }
+  return 4;
+lab2:
+  return 8;
+}
+
+int main ()
+{
+  test_goto2 (30);
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/pr49496.c b/gcc/testsuite/gcc.dg/pr49496.c
new file mode 100644
index 0000000..06563f3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr49496.c
@@ -0,0 +1,20 @@
+/* PR debug/49496 */
+/* { dg-do compile } */
+/* { dg-options "-O3 -fcompare-debug" } */
+
+unsigned short u[8], s1[8], s2[8];
+
+void bar (unsigned short *);
+
+void
+foo (void)
+{
+  unsigned short e[8];
+  int i;
+  for (i = 0; i < 8; i++)
+    {
+      int tmp = s1[i] * s2[i];
+      e[i] = (tmp & 0xffff0000) >> 16;
+    }
+  bar (e);
+}
diff --git a/gcc/testsuite/gcc.dg/torture/builtin-attr-1.c b/gcc/testsuite/gcc.dg/torture/builtin-attr-1.c
index bd383a2..c138b92 100644
--- a/gcc/testsuite/gcc.dg/torture/builtin-attr-1.c
+++ b/gcc/testsuite/gcc.dg/torture/builtin-attr-1.c
@@ -416,6 +416,9 @@
 BUILTIN_TEST1 (ctz, int)
 BUILTIN_TEST1 (ctzl, long)
 BUILTIN_TEST1 (ctzll, long long)
+BUILTIN_TEST1 (clrsb, int)
+BUILTIN_TEST1 (clrsbl, long)
+BUILTIN_TEST1 (clrsbll, long long)
 TEST1         (ffs, int, int)
 TEST1         (ffsl, long, int)
 TEST1         (ffsll, long long, int)
diff --git a/gcc/testsuite/gcc.dg/torture/pta-structcopy-1.c b/gcc/testsuite/gcc.dg/torture/pta-structcopy-1.c
index 5dc041b..97e8946 100644
--- a/gcc/testsuite/gcc.dg/torture/pta-structcopy-1.c
+++ b/gcc/testsuite/gcc.dg/torture/pta-structcopy-1.c
@@ -1,5 +1,5 @@
 /* { dg-do run } */
-/* { dg-options "-fdump-tree-ealias" } */
+/* { dg-options "-fdump-tree-ealias -Wno-attributes" } */
 /* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */
 
 struct X
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/asm-1.c b/gcc/testsuite/gcc.dg/tree-ssa/asm-1.c
index 6402628..fe27570 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/asm-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/asm-1.c
@@ -2,7 +2,7 @@
    as a def.  */
 
 /* { dg-do compile } */
-/* { dg-options "-O -fdump-tree-optimized" } */
+/* { dg-options "-O -fdump-tree-optimized-nouid" } */
 
 void f()
 {
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr40087.c b/gcc/testsuite/gcc.dg/tree-ssa/pr40087.c
index 22e2b62..98d2437 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr40087.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr40087.c
@@ -1,5 +1,5 @@
 /* { dg-do run } */
-/* { dg-options "-O1 " } */
+/* { dg-options "-O1 -Wno-attributes" } */
 
 extern void abort (void);
 
diff --git a/gcc/testsuite/gcc.dg/uninit-pred-5_a.c b/gcc/testsuite/gcc.dg/uninit-pred-5_a.c
index 845f3c4..7fa0b25 100644
--- a/gcc/testsuite/gcc.dg/uninit-pred-5_a.c
+++ b/gcc/testsuite/gcc.dg/uninit-pred-5_a.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-Wuninitialized -O2" } */
+/* { dg-options "-Wuninitialized -Wno-attributes -O2" } */
 
 int g;
 int bar();
diff --git a/gcc/testsuite/gcc.dg/uninit-pred-5_b.c b/gcc/testsuite/gcc.dg/uninit-pred-5_b.c
index 13f1e31..9760fa8 100644
--- a/gcc/testsuite/gcc.dg/uninit-pred-5_b.c
+++ b/gcc/testsuite/gcc.dg/uninit-pred-5_b.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-Wuninitialized -O2" } */
+/* { dg-options "-Wuninitialized -Wno-attributes -O2" } */
 
 int g;
 int bar();
diff --git a/gcc/testsuite/gcc.dg/vect/pr48377.c b/gcc/testsuite/gcc.dg/vect/pr48377.c
index b9aaf49..24846cd 100644
--- a/gcc/testsuite/gcc.dg/vect/pr48377.c
+++ b/gcc/testsuite/gcc.dg/vect/pr48377.c
@@ -1,4 +1,5 @@
 /* PR tree-optimization/48377 */
+/* { dg-require-effective-target non_strict_align } */
 
 typedef unsigned int U __attribute__((__aligned__ (1), __may_alias__));
 
diff --git a/gcc/testsuite/gcc.dg/vect/pr49478.c b/gcc/testsuite/gcc.dg/vect/pr49478.c
new file mode 100644
index 0000000..0645399
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr49478.c
@@ -0,0 +1,24 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target vect_int } */
+
+#include <stdarg.h>
+
+#define N 64
+
+unsigned char X[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63};
+
+unsigned int
+foo (int len) {
+  int i;
+  unsigned int result = 0;
+  unsigned short prod;
+
+  for (i=0; i<len; i++) {
+    prod = X[i] * 15;
+    result += prod;
+  }
+  return result;
+}
+
+/* { dg-final { cleanup-tree-dump "vect" } } */
+
diff --git a/gcc/testsuite/gcc.dg/vect/vect-120.c b/gcc/testsuite/gcc.dg/vect/vect-120.c
new file mode 100644
index 0000000..b9a2f50
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-120.c
@@ -0,0 +1,36 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target vect_float } */
+/* { dg-require-effective-target vect_shift } */
+
+static inline float
+i2f(int x)
+{
+  union { float f; int i; } tmp;
+  tmp.i=x;
+  return tmp.f;
+}
+static inline float
+vect_ldexpf(float x, int n)
+{
+  n = (n+0x7f)<<23;
+  return x * i2f(n);
+}
+
+float __attribute__ ((aligned(16))) a[1024];
+float __attribute__ ((aligned(16))) b[1024];
+float __attribute__ ((aligned(16))) c[1024];
+
+void
+tV()
+{
+  int i;
+  for (i=0; i!=1024; ++i)
+    {
+      float z = a[i];
+      int n = b[i];
+      c[i] = vect_ldexpf(z,n);
+    }
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-peel-3.c b/gcc/testsuite/gcc.dg/vect/vect-peel-3.c
index 5049b40..8f4d357 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-peel-3.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-peel-3.c
@@ -47,7 +47,7 @@
   return main1 ();
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect"  { xfail vect_no_align } } } */
-/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-peel-4.c b/gcc/testsuite/gcc.dg/vect/vect-peel-4.c
index a52075e..1b47f268 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-peel-4.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-peel-4.c
@@ -44,7 +44,7 @@
   return main1 ();
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect"  { xfail vect_no_align } } } */
 /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.target/arm/20031108-1.c b/gcc/testsuite/gcc.target/arm/20031108-1.c
index 6573d2b..d9b6006 100644
--- a/gcc/testsuite/gcc.target/arm/20031108-1.c
+++ b/gcc/testsuite/gcc.target/arm/20031108-1.c
@@ -1,5 +1,6 @@
 /* PR optimization/10467  */
 /* { dg-do compile } */
+/* { dg-skip-if "" { ! { arm_thumb1_ok || arm_thumb2_ok } } } */
 /* { dg-options "-O2 -mthumb" } */
 
 typedef enum {Ident_1} Enumeration;
diff --git a/gcc/testsuite/gcc.target/arm/ctz.c b/gcc/testsuite/gcc.target/arm/ctz.c
index 63e9d02..2455f67 100644
--- a/gcc/testsuite/gcc.target/arm/ctz.c
+++ b/gcc/testsuite/gcc.target/arm/ctz.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-require-effective-target arm32 } */
-/* { dg-options "-O2 -march=armv6t2" } */
+/* { dg-require-effective-target arm_thumb2_ok } */
+/* { dg-options "-O2" } */
 
 unsigned int functest(unsigned int x)
 {
diff --git a/gcc/testsuite/gcc.target/arm/neon-vlshr-imm-1.c b/gcc/testsuite/gcc.target/arm/neon-vlshr-imm-1.c
new file mode 100644
index 0000000..e666371
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/neon-vlshr-imm-1.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_neon_ok } */
+/* { dg-options "-O2 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize" } */
+/* { dg-final { scan-assembler "vshr\.u32.*#3" } } */
+
+/* Verify that VSHR immediate is used.  */
+void f1(int n, unsigned int x[], unsigned int y[]) {
+  int i;
+  for (i = 0; i < n; ++i)
+    y[i] = x[i] >> 3;
+}
diff --git a/gcc/testsuite/gcc.target/arm/neon-vshl-imm-1.c b/gcc/testsuite/gcc.target/arm/neon-vshl-imm-1.c
new file mode 100644
index 0000000..913d595
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/neon-vshl-imm-1.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_neon_ok } */
+/* { dg-options "-O2 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize" } */
+/* { dg-final { scan-assembler "vshl\.i32.*#3" } } */
+
+/* Verify that VSHR immediate is used.  */
+void f1(int n, int x[], int y[]) {
+  int i;
+  for (i = 0; i < n; ++i)
+    y[i] = x[i] << 3;
+}
diff --git a/gcc/testsuite/gcc.target/arm/neon-vshr-imm-1.c b/gcc/testsuite/gcc.target/arm/neon-vshr-imm-1.c
new file mode 100644
index 0000000..82a3c5c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/neon-vshr-imm-1.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_neon_ok } */
+/* { dg-options "-O2 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize" } */
+/* { dg-final { scan-assembler "vshr\.s32.*#3" } } */
+
+/* Verify that VSHR immediate is used.  */
+void f1(int n, int x[], int y[]) {
+  int i;
+  for (i = 0; i < n; ++i)
+    y[i] = x[i] >> 3;
+}
diff --git a/gcc/testsuite/gcc.target/arm/pr40482.c b/gcc/testsuite/gcc.target/arm/pr40482.c
index 4303a4f..6926e6f 100644
--- a/gcc/testsuite/gcc.target/arm/pr40482.c
+++ b/gcc/testsuite/gcc.target/arm/pr40482.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { ! { arm_thumb1_ok || arm_thumb2_ok } } } */
 /* { dg-options "-mthumb -Os" }  */
 /* { dg-final { scan-assembler-not "ldr" } } */
 
diff --git a/gcc/testsuite/gcc.target/arm/pr42879.c b/gcc/testsuite/gcc.target/arm/pr42879.c
index 02af72c..9961a83 100644
--- a/gcc/testsuite/gcc.target/arm/pr42879.c
+++ b/gcc/testsuite/gcc.target/arm/pr42879.c
@@ -1,4 +1,5 @@
-/* { dg-options "-march=armv7-a -mthumb -Os" }  */
+/* { dg-require-effective-target arm_thumb2_ok } */
+/* { dg-options "-mthumb -Os" }  */
 /* { dg-final { scan-assembler "lsls" } } */
 
 struct A
diff --git a/gcc/testsuite/gcc.target/arm/pr45701-3.c b/gcc/testsuite/gcc.target/arm/pr45701-3.c
index 8255bae..452c398 100644
--- a/gcc/testsuite/gcc.target/arm/pr45701-3.c
+++ b/gcc/testsuite/gcc.target/arm/pr45701-3.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=armv7-a -mthumb -Os" }  */
+/* { dg-require-effective-target arm_thumb2_ok } */
+/* { dg-options "-mthumb -Os" }  */
 /* { dg-final { scan-assembler "push\t.*r8" } } */
 /* { dg-final { scan-assembler-not "push\t*r3" } } */
 
diff --git a/gcc/testsuite/gcc.target/arm/scd42-3.c b/gcc/testsuite/gcc.target/arm/scd42-3.c
index d1d07b0..eb90e43 100644
--- a/gcc/testsuite/gcc.target/arm/scd42-3.c
+++ b/gcc/testsuite/gcc.target/arm/scd42-3.c
@@ -1,6 +1,7 @@
 /* Verify that ldr is preferred on XScale for loading a 3 or 4 byte constant. */
 /* { dg-do compile } */
-/* { dg-skip-if "incompatible options" { arm*-*-* } { "-march=*" } { "" } } */
+/* { dg-skip-if "Test is specific to Xscale" { arm*-*-* } { "-march=*" } { "-march=xscale" } } */
+/* { dg-skip-if "Test is specific to Xscale" { arm*-*-* } { "-mcpu=*" } { "-mcpu=xscale" } } */
 /* { dg-options "-mcpu=xscale -O" } */
 
 unsigned load4(void) __attribute__ ((naked));
diff --git a/gcc/testsuite/gcc.target/arm/stack-corruption.c b/gcc/testsuite/gcc.target/arm/stack-corruption.c
index 3a63950..cc44c62 100644
--- a/gcc/testsuite/gcc.target/arm/stack-corruption.c
+++ b/gcc/testsuite/gcc.target/arm/stack-corruption.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-skip-if "" { ! { arm_thumb1_ok || arm_thumb2_ok } } } */
 /* { dg-options "-O -mthumb -fno-omit-frame-pointer" } */
 
 int main() {
diff --git a/gcc/testsuite/gcc.target/arm/thumb-bitfld1.c b/gcc/testsuite/gcc.target/arm/thumb-bitfld1.c
index 7741b4f..ee39887 100644
--- a/gcc/testsuite/gcc.target/arm/thumb-bitfld1.c
+++ b/gcc/testsuite/gcc.target/arm/thumb-bitfld1.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O1 -mthumb -march=armv5t" }  */
+/* { dg-require-effective-target arm_thumb1_ok } */
+/* { dg-options "-O1 -mthumb" }  */
 
 struct foo
 {
diff --git a/gcc/testsuite/gcc.target/arm/tlscall.c b/gcc/testsuite/gcc.target/arm/tlscall.c
new file mode 100644
index 0000000..366c1ae7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/tlscall.c
@@ -0,0 +1,31 @@
+/* Test non-duplication of tlscall insn */
+
+/* { dg-do assemble } */
+/* { dg-options "-O2 -fPIC -mtls-dialect=gnu2" } */
+
+typedef struct _IO_FILE FILE;
+
+extern int foo(void);
+extern int bar(void);
+
+void uuid__generate_time()
+{
+ static int has_init = 0;
+ static __thread int state_fd = -2;
+ static __thread FILE *state_f;
+
+ if (!has_init) {
+   foo();
+   has_init = 1;
+ }
+
+ if (state_fd == -2) {
+  if (!state_f) {
+   state_fd = -1;
+  }
+ }
+ if (state_fd >= 0) {
+  while (bar() < 0) {}
+ }
+
+}
diff --git a/gcc/testsuite/gfortran.dg/class_44.f03 b/gcc/testsuite/gfortran.dg/class_44.f03
new file mode 100644
index 0000000..f8e4004
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/class_44.f03
@@ -0,0 +1,15 @@
+! { dg-do compile }
+!
+! PR 49112: [4.6/4.7 Regression] [OOP] Missing type-bound procedure, "duplicate save" warnings and internal compiler error
+!
+! Contributed by John <jwmwalrus@gmail.com>
+
+    implicit none
+    save
+
+    type :: DateTime
+    end type
+
+    class(DateTime), allocatable :: dt
+
+end
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 76e7ccb..7d7cbc3 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -4019,3 +4019,11 @@
     return 1
 }
 
+proc check_effective_target_non_strict_align {} {
+    return [check_no_compiler_messages non_strict_align assembly {
+	char *y;
+	typedef char __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__))) c;
+	c *z;
+	void foo(void) { z = (c *) y; }
+    } "-Wcast-align"]
+}
diff --git a/gcc/timevar.c b/gcc/timevar.c
index c87695b..96eb92a 100644
--- a/gcc/timevar.c
+++ b/gcc/timevar.c
@@ -478,7 +478,7 @@
 	continue;
 
       /* The timing variable name.  */
-      fprintf (fp, " %-22s:", tv->name);
+      fprintf (fp, " %-24s:", tv->name);
 
 #ifdef HAVE_USER_TIME
       /* Print user-mode time for this process.  */
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 2597140..8b02b38 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -183,25 +183,9 @@
 #define this_target_flag_state (&default_target_flag_state)
 #endif
 
-typedef struct
-{
-  const char *const string;
-  int *const variable;
-  const int on_value;
-}
-lang_independent_options;
-
 /* The user symbol prefix after having resolved same.  */
 const char *user_label_prefix;
 
-static const param_info lang_independent_params[] = {
-#define DEFPARAM(ENUM, OPTION, HELP, DEFAULT, MIN, MAX) \
-  { OPTION, DEFAULT, MIN, MAX, HELP },
-#include "params.def"
-#undef DEFPARAM
-  { NULL, 0, 0, 0, NULL }
-};
-
 /* Output files for assembler code (real compiler output)
    and debugging dumps.  */
 
@@ -1213,10 +1197,10 @@
   init_reg_sets ();
 
   /* Register the language-independent parameters.  */
-  add_params (lang_independent_params, LAST_PARAM);
-  targetm.target_option.default_params ();
+  global_init_params ();
 
-  /* This must be done after add_params but before argument processing.  */
+  /* This must be done after global_init_params but before argument
+     processing.  */
   init_ggc_heuristics();
   init_optimization_passes ();
   statistics_early_init ();
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index dc3288b..6a8eae8 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -1,5 +1,5 @@
 /* Tree inlining.
-   Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+   Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
    Contributed by Alexandre Oliva <aoliva@redhat.com>
 
@@ -188,6 +188,33 @@
 
   if (processing_debug_stmt)
     {
+      if (TREE_CODE (SSA_NAME_VAR (name)) == PARM_DECL
+	  && SSA_NAME_IS_DEFAULT_DEF (name)
+	  && id->entry_bb == NULL
+	  && single_succ_p (ENTRY_BLOCK_PTR))
+	{
+	  tree vexpr = make_node (DEBUG_EXPR_DECL);
+	  gimple def_temp;
+	  gimple_stmt_iterator gsi;
+	  tree val = SSA_NAME_VAR (name);
+
+	  n = (tree *) pointer_map_contains (id->decl_map, val);
+	  if (n != NULL)
+	    val = *n;
+	  if (TREE_CODE (val) != PARM_DECL)
+	    {
+	      processing_debug_stmt = -1;
+	      return name;
+	    }
+	  def_temp = gimple_build_debug_source_bind (vexpr, val, NULL);
+	  DECL_ARTIFICIAL (vexpr) = 1;
+	  TREE_TYPE (vexpr) = TREE_TYPE (name);
+	  DECL_MODE (vexpr) = DECL_MODE (SSA_NAME_VAR (name));
+	  gsi = gsi_after_labels (single_succ (ENTRY_BLOCK_PTR));
+	  gsi_insert_before (&gsi, def_temp, GSI_SAME_STMT);
+	  return vexpr;
+	}
+
       processing_debug_stmt = -1;
       return name;
     }
@@ -1403,6 +1430,14 @@
 	  VEC_safe_push (gimple, heap, id->debug_stmts, copy);
 	  return copy;
 	}
+      if (gimple_debug_source_bind_p (stmt))
+	{
+	  copy = gimple_build_debug_source_bind
+		   (gimple_debug_source_bind_get_var (stmt),
+		    gimple_debug_source_bind_get_value (stmt), stmt);
+	  VEC_safe_push (gimple, heap, id->debug_stmts, copy);
+	  return copy;
+	}
 
       /* Create a new deep copy of the statement.  */
       copy = gimple_copy (stmt);
@@ -1478,7 +1513,7 @@
 
   gimple_set_block (copy, new_block);
 
-  if (gimple_debug_bind_p (copy))
+  if (gimple_debug_bind_p (copy) || gimple_debug_source_bind_p (copy))
     return copy;
 
   /* Remap all the operands in COPY.  */
@@ -2151,22 +2186,33 @@
 	    {
 	      si = ssi;
 	      gsi_prev (&ssi);
-	      if (!single_pred_p (e->dest))
+	      if (!single_pred_p (e->dest) && gimple_debug_bind_p (stmt))
 		gimple_debug_bind_reset_value (stmt);
 	      gsi_remove (&si, false);
 	      gsi_insert_before (&dsi, stmt, GSI_SAME_STMT);
 	      continue;
 	    }
 
-	  var = gimple_debug_bind_get_var (stmt);
-	  if (single_pred_p (e->dest))
+	  if (gimple_debug_bind_p (stmt))
 	    {
-	      value = gimple_debug_bind_get_value (stmt);
-	      value = unshare_expr (value);
+	      var = gimple_debug_bind_get_var (stmt);
+	      if (single_pred_p (e->dest))
+		{
+		  value = gimple_debug_bind_get_value (stmt);
+		  value = unshare_expr (value);
+		}
+	      else
+		value = NULL_TREE;
+	      new_stmt = gimple_build_debug_bind (var, value, stmt);
+	    }
+	  else if (gimple_debug_source_bind_p (stmt))
+	    {
+	      var = gimple_debug_source_bind_get_var (stmt);
+	      value = gimple_debug_source_bind_get_value (stmt);
+	      new_stmt = gimple_build_debug_source_bind (var, value, stmt);
 	    }
 	  else
-	    value = NULL_TREE;
-	  new_stmt = gimple_build_debug_bind (var, value, stmt);
+	    gcc_unreachable ();
 	  gsi_insert_before (&dsi, new_stmt, GSI_SAME_STMT);
 	  VEC_safe_push (gimple, heap, id->debug_stmts, new_stmt);
 	  gsi_prev (&ssi);
@@ -2317,7 +2363,6 @@
   t = id->block;
   if (gimple_block (stmt))
     {
-      tree *n;
       n = (tree *) pointer_map_contains (id->decl_map, gimple_block (stmt));
       if (n)
 	t = *n;
@@ -2330,7 +2375,10 @@
 
   processing_debug_stmt = 1;
 
-  t = gimple_debug_bind_get_var (stmt);
+  if (gimple_debug_source_bind_p (stmt))
+    t = gimple_debug_source_bind_get_var (stmt);
+  else
+    t = gimple_debug_bind_get_var (stmt);
 
   if (TREE_CODE (t) == PARM_DECL && id->debug_map
       && (n = (tree *) pointer_map_contains (id->debug_map, t)))
@@ -2347,15 +2395,24 @@
   else
     walk_tree (&t, remap_gimple_op_r, &wi, NULL);
 
-  gimple_debug_bind_set_var (stmt, t);
+  if (gimple_debug_bind_p (stmt))
+    {
+      gimple_debug_bind_set_var (stmt, t);
 
-  if (gimple_debug_bind_has_value_p (stmt))
-    walk_tree (gimple_debug_bind_get_value_ptr (stmt),
-	       remap_gimple_op_r, &wi, NULL);
+      if (gimple_debug_bind_has_value_p (stmt))
+	walk_tree (gimple_debug_bind_get_value_ptr (stmt),
+		   remap_gimple_op_r, &wi, NULL);
 
-  /* Punt if any decl couldn't be remapped.  */
-  if (processing_debug_stmt < 0)
-    gimple_debug_bind_reset_value (stmt);
+      /* Punt if any decl couldn't be remapped.  */
+      if (processing_debug_stmt < 0)
+	gimple_debug_bind_reset_value (stmt);
+    }
+  else if (gimple_debug_source_bind_p (stmt))
+    {
+      gimple_debug_source_bind_set_var (stmt, t);
+      walk_tree (gimple_debug_source_bind_get_value_ptr (stmt),
+		 remap_gimple_op_r, &wi, NULL);
+    }
 
   processing_debug_stmt = 0;
 
@@ -3192,7 +3249,7 @@
 	 As a bonus we can now give more details about the reason why a
 	 function is not inlinable.  */
       if (always_inline)
-	sorry (inline_forbidden_reason, fn);
+	error (inline_forbidden_reason, fn);
       else if (do_warning)
 	warning (OPT_Winline, inline_forbidden_reason, fn);
 
@@ -3742,11 +3799,13 @@
 
       if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn))
 	  /* Avoid warnings during early inline pass. */
-	  && cgraph_global_info_ready)
+	  && cgraph_global_info_ready
+	  /* PR 20090218-1_0.c. Body can be provided by another module. */
+	  && (reason != CIF_BODY_NOT_AVAILABLE || !flag_generate_lto))
 	{
-	  sorry ("inlining failed in call to %q+F: %s", fn,
-		 _(cgraph_inline_failed_string (reason)));
-	  sorry ("called from here");
+	  error ("inlining failed in call to always_inline %q+F: %s", fn,
+		 cgraph_inline_failed_string (reason));
+	  error ("called from here");
 	}
       else if (warn_inline
 	       && DECL_DECLARED_INLINE_P (fn)
@@ -4999,6 +5058,20 @@
   new_version_node = cgraph_get_node (new_decl);
   gcc_checking_assert (new_version_node);
 
+  /* Copy over debug args.  */
+  if (DECL_HAS_DEBUG_ARGS_P (old_decl))
+    {
+      VEC(tree, gc) **new_debug_args, **old_debug_args;
+      gcc_checking_assert (decl_debug_args_lookup (new_decl) == NULL);
+      DECL_HAS_DEBUG_ARGS_P (new_decl) = 0;
+      old_debug_args = decl_debug_args_lookup (old_decl);
+      if (old_debug_args)
+	{
+	  new_debug_args = decl_debug_args_insert (new_decl);
+	  *new_debug_args = VEC_copy (tree, gc, *old_debug_args);
+	}
+    }
+
   /* Output the inlining info for this abstract function, since it has been
      inlined.  If we don't do this now, we can lose the information about the
      variables in the function when the blocks get blown away as soon as we
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index f138e5b..0db9085 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -1,5 +1,5 @@
 /* Rewrite a program in Normal form into SSA.
-   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010
+   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
    Contributed by Diego Novillo <dnovillo@redhat.com>
 
@@ -745,7 +745,17 @@
   set_rewrite_uses (stmt, false);
 
   if (is_gimple_debug (stmt))
-    return;
+    {
+      FOR_EACH_SSA_USE_OPERAND (use_p, stmt, iter, SSA_OP_USE)
+	{
+	  tree sym = USE_FROM_PTR (use_p);
+	  gcc_assert (DECL_P (sym));
+	  set_rewrite_uses (stmt, true);
+	}
+      if (rewrite_uses_p (stmt))
+	SET_BIT (interesting_blocks, bb->index);
+      return;
+    }
 
   /* If a variable is used before being set, then the variable is live
      across a block boundary, so mark it live-on-entry to BB.  */
@@ -1279,6 +1289,73 @@
 }
 
 
+/* Helper function for rewrite_stmt.  Rewrite uses in a debug stmt.  */
+
+static void
+rewrite_debug_stmt_uses (gimple stmt)
+{
+  use_operand_p use_p;
+  ssa_op_iter iter;
+  bool update = false;
+
+  FOR_EACH_SSA_USE_OPERAND (use_p, stmt, iter, SSA_OP_USE)
+    {
+      tree var = USE_FROM_PTR (use_p), def = NULL_TREE;
+      gcc_assert (DECL_P (var));
+      if (var_ann (var) == NULL)
+	{
+	  if (TREE_CODE (var) == PARM_DECL && single_succ_p (ENTRY_BLOCK_PTR))
+	    {
+	      gimple_stmt_iterator gsi
+		= gsi_after_labels (single_succ (ENTRY_BLOCK_PTR));
+	      int lim;
+	      /* Search a few source bind stmts at the start of first bb to
+		 see if a DEBUG_EXPR_DECL can't be reused.  */
+	      for (lim = 32;
+		   !gsi_end_p (gsi) && lim > 0;
+		   gsi_next (&gsi), lim--)
+		{
+		  gimple gstmt = gsi_stmt (gsi);
+		  if (!gimple_debug_source_bind_p (gstmt))
+		    break;
+		  if (gimple_debug_source_bind_get_value (gstmt) == var)
+		    {
+		      def = gimple_debug_source_bind_get_var (gstmt);
+		      if (TREE_CODE (def) == DEBUG_EXPR_DECL)
+			break;
+		      else
+			def = NULL_TREE;
+		    }
+		}
+	      /* If not, add a new source bind stmt.  */
+	      if (def == NULL_TREE)
+		{
+		  gimple def_temp;
+		  def = make_node (DEBUG_EXPR_DECL);
+		  def_temp = gimple_build_debug_source_bind (def, var, NULL);
+		  DECL_ARTIFICIAL (def) = 1;
+		  TREE_TYPE (def) = TREE_TYPE (var);
+		  DECL_MODE (def) = DECL_MODE (var);
+		  gsi = gsi_after_labels (single_succ (ENTRY_BLOCK_PTR));
+		  gsi_insert_before (&gsi, def_temp, GSI_SAME_STMT);
+		}
+	      update = true;
+	    }
+	}
+      else
+	def = get_current_def (var);
+      if (def == NULL)
+	{
+	  gimple_debug_bind_reset_value (stmt);
+	  update_stmt (stmt);
+	  return;
+	}
+      SET_USE (use_p, def);
+    }
+  if (update)
+    update_stmt (stmt);
+}
+
 /* SSA Rewriting Step 2.  Rewrite every variable used in each statement in
    the block with its immediate reaching definitions.  Update the current
    definition of a variable when a new real or virtual definition is found.  */
@@ -1306,12 +1383,17 @@
 
   /* Step 1.  Rewrite USES in the statement.  */
   if (rewrite_uses_p (stmt))
-    FOR_EACH_SSA_USE_OPERAND (use_p, stmt, iter, SSA_OP_USE)
-      {
-	tree var = USE_FROM_PTR (use_p);
-	gcc_assert (DECL_P (var));
-	SET_USE (use_p, get_reaching_def (var));
-      }
+    {
+      if (is_gimple_debug (stmt))
+	rewrite_debug_stmt_uses (stmt);
+      else
+	FOR_EACH_SSA_USE_OPERAND (use_p, stmt, iter, SSA_OP_USE)
+	  {
+	    tree var = USE_FROM_PTR (use_p);
+	    gcc_assert (DECL_P (var));
+	    SET_USE (use_p, get_reaching_def (var));
+	  }
+    }
 
   /* Step 2.  Register the statement's DEF operands.  */
   if (register_defs_p (stmt))
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c
index 9d2ea1a..921821d 100644
--- a/gcc/tree-parloops.c
+++ b/gcc/tree-parloops.c
@@ -1,5 +1,5 @@
 /* Loop autoparallelization.
-   Copyright (C) 2006, 2007, 2008, 2009, 2010
+   Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
    Contributed by Sebastian Pop <pop@cri.ensmp.fr> and
    Zdenek Dvorak <dvorakz@suse.cz>.
@@ -716,8 +716,11 @@
   FOR_EACH_VEC_ELT (basic_block, body, i, bb)
     if (bb != entry_bb && bb != exit_bb)
       for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
-	if (gimple_debug_bind_p (gsi_stmt (gsi)))
-	  has_debug_stmt = true;
+	if (is_gimple_debug (gsi_stmt (gsi)))
+	  {
+	    if (gimple_debug_bind_p (gsi_stmt (gsi)))
+	      has_debug_stmt = true;
+	  }
 	else
 	  eliminate_local_variables_stmt (entry, &gsi, decl_address);
 
@@ -883,8 +886,8 @@
    replacement decls are stored in DECL_COPIES.  */
 
 static bool
-separate_decls_in_region_debug_bind (gimple stmt,
-				     htab_t name_copies, htab_t decl_copies)
+separate_decls_in_region_debug (gimple stmt, htab_t name_copies,
+				htab_t decl_copies)
 {
   use_operand_p use;
   ssa_op_iter oi;
@@ -893,7 +896,12 @@
   struct name_to_copy_elt elt;
   void **slot, **dslot;
 
-  var = gimple_debug_bind_get_var (stmt);
+  if (gimple_debug_bind_p (stmt))
+    var = gimple_debug_bind_get_var (stmt);
+  else if (gimple_debug_source_bind_p (stmt))
+    var = gimple_debug_source_bind_get_var (stmt);
+  else
+    return true;
   if (TREE_CODE (var) == DEBUG_EXPR_DECL)
     return true;
   gcc_assert (DECL_P (var) && SSA_VAR_P (var));
@@ -901,7 +909,10 @@
   dslot = htab_find_slot_with_hash (decl_copies, &ielt, ielt.uid, NO_INSERT);
   if (!dslot)
     return true;
-  gimple_debug_bind_set_var (stmt, ((struct int_tree_map *) *dslot)->to);
+  if (gimple_debug_bind_p (stmt))
+    gimple_debug_bind_set_var (stmt, ((struct int_tree_map *) *dslot)->to);
+  else if (gimple_debug_source_bind_p (stmt))
+    gimple_debug_source_bind_set_var (stmt, ((struct int_tree_map *) *dslot)->to);
 
   FOR_EACH_PHI_OR_STMT_USE (use, stmt, oi, SSA_OP_USE)
   {
@@ -1295,11 +1306,10 @@
 	    {
 	      gimple stmt = gsi_stmt (gsi);
 
-	      if (gimple_debug_bind_p (stmt))
+	      if (is_gimple_debug (stmt))
 		{
-		  if (separate_decls_in_region_debug_bind (stmt,
-							   name_copies,
-							   decl_copies))
+		  if (separate_decls_in_region_debug (stmt, name_copies,
+						      decl_copies))
 		    {
 		      gsi_remove (&gsi, true);
 		      continue;
diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h
index f3a03b0..a17ef35 100644
--- a/gcc/tree-pass.h
+++ b/gcc/tree-pass.h
@@ -577,7 +577,7 @@
 
 /* The root of the compilation pass tree, once constructed.  */
 extern struct opt_pass *all_passes, *all_small_ipa_passes, *all_lowering_passes,
-                       *all_regular_ipa_passes, *all_lto_gen_passes;
+                       *all_regular_ipa_passes, *all_lto_gen_passes, *all_late_ipa_passes;
 
 /* Define a list of pass lists so that both passes.c and plugins can easily
    find all the pass lists.  */
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 322abb5..45ebd93 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -1,7 +1,7 @@
 /* Scalar Replacement of Aggregates (SRA) converts some structure
    references into scalar references, exposing them to the scalar
    optimizers.
-   Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
    Contributed by Martin Jambor <mjambor@suse.cz>
 
 This file is part of GCC.
@@ -648,7 +648,7 @@
    scalarization.  */
 
 static bool
-type_internals_preclude_sra_p (tree type)
+type_internals_preclude_sra_p (tree type, const char **msg)
 {
   tree fld;
   tree et;
@@ -663,15 +663,39 @@
 	  {
 	    tree ft = TREE_TYPE (fld);
 
-	    if (TREE_THIS_VOLATILE (fld)
-		|| !DECL_FIELD_OFFSET (fld) || !DECL_SIZE (fld)
-		|| !host_integerp (DECL_FIELD_OFFSET (fld), 1)
-		|| !host_integerp (DECL_SIZE (fld), 1)
-		|| (AGGREGATE_TYPE_P (ft)
-		    && int_bit_position (fld) % BITS_PER_UNIT != 0))
-	      return true;
+	    if (TREE_THIS_VOLATILE (fld))
+	      {
+		*msg = "volatile structure field";
+		return true;
+	      }
+	    if (!DECL_FIELD_OFFSET (fld))
+	      {
+		*msg = "no structure field offset";
+		return true;
+	      }
+	    if (!DECL_SIZE (fld))
+	      {
+		*msg = "zero structure field size";
+	        return true;
+	      }
+	    if (!host_integerp (DECL_FIELD_OFFSET (fld), 1))
+	      {
+		*msg = "structure field offset not fixed";
+		return true;
+	      }
+	    if (!host_integerp (DECL_SIZE (fld), 1))
+	      {
+	        *msg = "structure field size not fixed";
+		return true;
+	      }	      
+	    if (AGGREGATE_TYPE_P (ft)
+		    && int_bit_position (fld) % BITS_PER_UNIT != 0)
+	      {
+		*msg = "structure field is bit field";
+	        return true;
+	      }
 
-	    if (AGGREGATE_TYPE_P (ft) && type_internals_preclude_sra_p (ft))
+	    if (AGGREGATE_TYPE_P (ft) && type_internals_preclude_sra_p (ft, msg))
 	      return true;
 	  }
 
@@ -681,9 +705,12 @@
       et = TREE_TYPE (type);
 
       if (TYPE_VOLATILE (et))
-	return true;
+	{
+	  *msg = "element type is volatile";
+	  return true;
+	}
 
-      if (AGGREGATE_TYPE_P (et) && type_internals_preclude_sra_p (et))
+      if (AGGREGATE_TYPE_P (et) && type_internals_preclude_sra_p (et, msg))
 	return true;
 
       return false;
@@ -1538,6 +1565,19 @@
   return TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (va_list_type_node);
 }
 
+/* Print message to dump file why a variable was rejected. */
+
+static void
+reject (tree var, const char *msg)
+{
+  if (dump_file && (dump_flags & TDF_DETAILS))
+    {
+      fprintf (dump_file, "Rejected (%d): %s: ", DECL_UID (var), msg);
+      print_generic_expr (dump_file, var, 0);
+      fprintf (dump_file, "\n");
+    }
+}
+
 /* The very first phase of intraprocedural SRA.  It marks in candidate_bitmap
    those with type which is suitable for scalarization.  */
 
@@ -1547,6 +1587,7 @@
   tree var, type;
   referenced_var_iterator rvi;
   bool ret = false;
+  const char *msg;
 
   FOR_EACH_REFERENCED_VAR (cfun, var, rvi)
     {
@@ -1554,19 +1595,50 @@
         continue;
       type = TREE_TYPE (var);
 
-      if (!AGGREGATE_TYPE_P (type)
-	  || needs_to_live_in_memory (var)
-	  || TREE_THIS_VOLATILE (var)
-	  || !COMPLETE_TYPE_P (type)
-	  || !host_integerp (TYPE_SIZE (type), 1)
-          || tree_low_cst (TYPE_SIZE (type), 1) == 0
-	  || type_internals_preclude_sra_p (type)
-	  /* Fix for PR 41089.  tree-stdarg.c needs to have va_lists intact but
+      if (!AGGREGATE_TYPE_P (type)) 
+        {
+          reject (var, "not aggregate");
+          continue;
+	}
+      if (needs_to_live_in_memory (var))
+        {
+          reject (var, "needs to live in memory");
+          continue;
+        }
+      if (TREE_THIS_VOLATILE (var))
+        {
+          reject (var, "is volatile");
+	  continue;
+        }
+      if (!COMPLETE_TYPE_P (type))
+        {
+          reject (var, "has incomplete type");
+	  continue;
+        }
+      if (!host_integerp (TYPE_SIZE (type), 1))
+        {
+          reject (var, "type size not fixed");
+	  continue;
+        }
+      if (tree_low_cst (TYPE_SIZE (type), 1) == 0)
+        {
+          reject (var, "type size is zero");
+          continue;
+        }
+      if (type_internals_preclude_sra_p (type, &msg))
+	{
+	  reject (var, msg);
+	  continue;
+	}
+      if (/* Fix for PR 41089.  tree-stdarg.c needs to have va_lists intact but
 	      we also want to schedule it rather late.  Thus we ignore it in
 	      the early pass. */
-	  || (sra_mode == SRA_MODE_EARLY_INTRA
+	  (sra_mode == SRA_MODE_EARLY_INTRA
 	      && is_va_list_type (type)))
-	continue;
+        {
+	  reject (var, "is va_list");
+	  continue;
+	}
 
       bitmap_set_bit (candidate_bitmap, DECL_UID (var));
 
@@ -2804,7 +2876,8 @@
      there to do the copying and then load the scalar replacements of the LHS.
      This is what the first branch does.  */
 
-  if (gimple_has_volatile_ops (*stmt)
+  if (modify_this_stmt
+      || gimple_has_volatile_ops (*stmt)
       || contains_vce_or_bfcref_p (rhs)
       || contains_vce_or_bfcref_p (lhs))
     {
@@ -3228,6 +3301,7 @@
   tree parm;
   int count = 0;
   bool ret = false;
+  const char *msg;
 
   for (parm = DECL_ARGUMENTS (current_function_decl);
        parm;
@@ -3268,7 +3342,7 @@
 	  || !host_integerp (TYPE_SIZE (type), 1)
           || tree_low_cst (TYPE_SIZE (type), 1) == 0
 	  || (AGGREGATE_TYPE_P (type)
-	      && type_internals_preclude_sra_p (type)))
+	      && type_internals_preclude_sra_p (type, &msg)))
 	continue;
 
       bitmap_set_bit (candidate_bitmap, DECL_UID (parm));
@@ -4282,28 +4356,87 @@
 sra_ipa_reset_debug_stmts (ipa_parm_adjustment_vec adjustments)
 {
   int i, len;
+  gimple_stmt_iterator *gsip = NULL, gsi;
 
+  if (MAY_HAVE_DEBUG_STMTS && single_succ_p (ENTRY_BLOCK_PTR))
+    {
+      gsi = gsi_after_labels (single_succ (ENTRY_BLOCK_PTR));
+      gsip = &gsi;
+    }
   len = VEC_length (ipa_parm_adjustment_t, adjustments);
   for (i = 0; i < len; i++)
     {
       struct ipa_parm_adjustment *adj;
       imm_use_iterator ui;
-      gimple stmt;
-      tree name;
+      gimple stmt, def_temp;
+      tree name, vexpr, copy = NULL_TREE;
+      use_operand_p use_p;
 
       adj = VEC_index (ipa_parm_adjustment_t, adjustments, i);
       if (adj->copy_param || !is_gimple_reg (adj->base))
 	continue;
       name = gimple_default_def (cfun, adj->base);
-      if (!name)
-	continue;
-      FOR_EACH_IMM_USE_STMT (stmt, ui, name)
+      vexpr = NULL;
+      if (name)
+	FOR_EACH_IMM_USE_STMT (stmt, ui, name)
+	  {
+	    /* All other users must have been removed by
+	       ipa_sra_modify_function_body.  */
+	    gcc_assert (is_gimple_debug (stmt));
+	    if (vexpr == NULL && gsip != NULL)
+	      {
+		gcc_assert (TREE_CODE (adj->base) == PARM_DECL);
+		vexpr = make_node (DEBUG_EXPR_DECL);
+		def_temp = gimple_build_debug_source_bind (vexpr, adj->base,
+							   NULL);
+		DECL_ARTIFICIAL (vexpr) = 1;
+		TREE_TYPE (vexpr) = TREE_TYPE (name);
+		DECL_MODE (vexpr) = DECL_MODE (adj->base);
+		gsi_insert_before (gsip, def_temp, GSI_SAME_STMT);
+	      }
+	    if (vexpr)
+	      {
+		FOR_EACH_IMM_USE_ON_STMT (use_p, ui)
+		  SET_USE (use_p, vexpr);
+	      }
+	    else
+	      gimple_debug_bind_reset_value (stmt);
+	    update_stmt (stmt);
+	  }
+      /* Create a VAR_DECL for debug info purposes.  */
+      if (!DECL_IGNORED_P (adj->base))
 	{
-	  /* All other users must have been removed by
-	     ipa_sra_modify_function_body.  */
-	  gcc_assert (is_gimple_debug (stmt));
-	  gimple_debug_bind_reset_value (stmt);
-	  update_stmt (stmt);
+	  copy = build_decl (DECL_SOURCE_LOCATION (current_function_decl),
+			     VAR_DECL, DECL_NAME (adj->base),
+			     TREE_TYPE (adj->base));
+	  if (DECL_PT_UID_SET_P (adj->base))
+	    SET_DECL_PT_UID (copy, DECL_PT_UID (adj->base));
+	  TREE_ADDRESSABLE (copy) = TREE_ADDRESSABLE (adj->base);
+	  TREE_READONLY (copy) = TREE_READONLY (adj->base);
+	  TREE_THIS_VOLATILE (copy) = TREE_THIS_VOLATILE (adj->base);
+	  DECL_GIMPLE_REG_P (copy) = DECL_GIMPLE_REG_P (adj->base);
+	  DECL_ARTIFICIAL (copy) = DECL_ARTIFICIAL (adj->base);
+	  DECL_IGNORED_P (copy) = DECL_IGNORED_P (adj->base);
+	  DECL_ABSTRACT_ORIGIN (copy) = DECL_ORIGIN (adj->base);
+	  DECL_SEEN_IN_BIND_EXPR_P (copy) = 1;
+	  SET_DECL_RTL (copy, 0);
+	  TREE_USED (copy) = 1;
+	  DECL_CONTEXT (copy) = current_function_decl;
+	  add_referenced_var (copy);
+	  add_local_decl (cfun, copy);
+	  DECL_CHAIN (copy) =
+	    BLOCK_VARS (DECL_INITIAL (current_function_decl));
+	  BLOCK_VARS (DECL_INITIAL (current_function_decl)) = copy;
+	}
+      if (gsip != NULL && copy && target_for_debug_bind (adj->base))
+	{
+	  gcc_assert (TREE_CODE (adj->base) == PARM_DECL);
+	  if (vexpr)
+	    def_temp = gimple_build_debug_bind (copy, vexpr, NULL);
+	  else
+	    def_temp = gimple_build_debug_source_bind (copy, adj->base,
+						       NULL);
+	  gsi_insert_before (gsip, def_temp, GSI_SAME_STMT);
 	}
     }
 }
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index 02b3ca0..5647899 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -1,5 +1,5 @@
 /* Alias analysis for trees.
-   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
+   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
    Contributed by Diego Novillo <dnovillo@redhat.com>
 
@@ -1199,6 +1199,24 @@
 					   size);
 	    return refs_may_alias_p_1 (&dref, ref, false);
 	  }
+	case BUILT_IN_STRCPY_CHK:
+	case BUILT_IN_STRNCPY_CHK:
+	case BUILT_IN_MEMCPY_CHK:
+	case BUILT_IN_MEMMOVE_CHK:
+	case BUILT_IN_MEMPCPY_CHK:
+	case BUILT_IN_STPCPY_CHK:
+	case BUILT_IN_STRCAT_CHK:
+	case BUILT_IN_STRNCAT_CHK:
+	  {
+	    ao_ref dref;
+	    tree size = NULL_TREE;
+	    if (gimple_call_num_args (call) == 4)
+	      size = gimple_call_arg (call, 2);
+	    ao_ref_init_from_ptr_and_size (&dref,
+					   gimple_call_arg (call, 1),
+					   size);
+	    return refs_may_alias_p_1 (&dref, ref, false);
+	  }
 	case BUILT_IN_BCOPY:
 	  {
 	    ao_ref dref;
@@ -1216,6 +1234,7 @@
 	case BUILT_IN_STACK_SAVE:
 	case BUILT_IN_STACK_RESTORE:
 	case BUILT_IN_MEMSET:
+	case BUILT_IN_MEMSET_CHK:
 	case BUILT_IN_FREXP:
 	case BUILT_IN_FREXPF:
 	case BUILT_IN_FREXPL:
@@ -1453,6 +1472,25 @@
 					   size);
 	    return refs_may_alias_p_1 (&dref, ref, false);
 	  }
+	case BUILT_IN_STRCPY_CHK:
+	case BUILT_IN_STRNCPY_CHK:
+	case BUILT_IN_MEMCPY_CHK:
+	case BUILT_IN_MEMMOVE_CHK:
+	case BUILT_IN_MEMPCPY_CHK:
+	case BUILT_IN_STPCPY_CHK:
+	case BUILT_IN_STRCAT_CHK:
+	case BUILT_IN_STRNCAT_CHK:
+	case BUILT_IN_MEMSET_CHK:
+	  {
+	    ao_ref dref;
+	    tree size = NULL_TREE;
+	    if (gimple_call_num_args (call) == 4)
+	      size = gimple_call_arg (call, 2);
+	    ao_ref_init_from_ptr_and_size (&dref,
+					   gimple_call_arg (call, 0),
+					   size);
+	    return refs_may_alias_p_1 (&dref, ref, false);
+	  }
 	case BUILT_IN_BCOPY:
 	  {
 	    ao_ref dref;
@@ -1697,6 +1735,10 @@
 	  case BUILT_IN_MEMPCPY:
 	  case BUILT_IN_MEMMOVE:
 	  case BUILT_IN_MEMSET:
+	  case BUILT_IN_MEMCPY_CHK:
+	  case BUILT_IN_MEMPCPY_CHK:
+	  case BUILT_IN_MEMMOVE_CHK:
+	  case BUILT_IN_MEMSET_CHK:
 	    {
 	      tree dest = gimple_call_arg (stmt, 0);
 	      tree len = gimple_call_arg (stmt, 2);
diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
index 11bfb76..fd95abb 100644
--- a/gcc/tree-ssa-ccp.c
+++ b/gcc/tree-ssa-ccp.c
@@ -1556,7 +1556,7 @@
 
   /* Resort to simplification for bitwise tracking.  */
   if (flag_tree_bit_ccp
-      && likelyvalue == CONSTANT
+      && (likelyvalue == CONSTANT || is_gimple_call (stmt))
       && !is_constant)
     {
       enum gimple_code code = gimple_code (stmt);
@@ -1616,6 +1616,8 @@
 	    case BUILT_IN_MALLOC:
 	    case BUILT_IN_REALLOC:
 	    case BUILT_IN_CALLOC:
+	    case BUILT_IN_STRDUP:
+	    case BUILT_IN_STRNDUP:
 	      val.lattice_val = CONSTANT;
 	      val.value = build_int_cst (TREE_TYPE (gimple_get_lhs (stmt)), 0);
 	      val.mask = shwi_to_double_int
@@ -1631,6 +1633,20 @@
 			      / BITS_PER_UNIT - 1));
 	      break;
 
+	    /* These builtins return their first argument, unmodified.  */
+	    case BUILT_IN_MEMCPY:
+	    case BUILT_IN_MEMMOVE:
+	    case BUILT_IN_MEMSET:
+	    case BUILT_IN_STRCPY:
+	    case BUILT_IN_STRNCPY:
+	    case BUILT_IN_MEMCPY_CHK:
+	    case BUILT_IN_MEMMOVE_CHK:
+	    case BUILT_IN_MEMSET_CHK:
+	    case BUILT_IN_STRCPY_CHK:
+	    case BUILT_IN_STRNCPY_CHK:
+	      val = get_value_for_expr (gimple_call_arg (stmt, 0), true);
+	      break;
+
 	    default:;
 	    }
 	}
diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c
index 6b77876..a088ef2 100644
--- a/gcc/tree-ssa-dce.c
+++ b/gcc/tree-ssa-dce.c
@@ -1,5 +1,5 @@
 /* Dead code elimination pass for the GNU compiler.
-   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
    Contributed by Ben Elliston <bje@redhat.com>
    and Andrew MacLeod <amacleod@redhat.com>
@@ -316,7 +316,8 @@
 	 easily locate the debug temp bind stmt for a use thereof,
 	 would could refrain from marking all debug temps here, and
 	 mark them only if they're used.  */
-      if (gimple_debug_bind_has_value_p (stmt)
+      if (!gimple_debug_bind_p (stmt)
+	  || gimple_debug_bind_has_value_p (stmt)
 	  || TREE_CODE (gimple_debug_bind_get_var (stmt)) != DEBUG_EXPR_DECL)
 	mark_stmt_necessary (stmt, false);
       return;
@@ -830,7 +831,9 @@
 	      if (callee != NULL_TREE
 		  && DECL_BUILT_IN_CLASS (callee) == BUILT_IN_NORMAL
 		  && (DECL_FUNCTION_CODE (callee) == BUILT_IN_MEMSET
+		      || DECL_FUNCTION_CODE (callee) == BUILT_IN_MEMSET_CHK
 		      || DECL_FUNCTION_CODE (callee) == BUILT_IN_MALLOC
+		      || DECL_FUNCTION_CODE (callee) == BUILT_IN_CALLOC
 		      || DECL_FUNCTION_CODE (callee) == BUILT_IN_FREE
 		      || DECL_FUNCTION_CODE (callee) == BUILT_IN_ALLOCA
 		      || DECL_FUNCTION_CODE (callee) == BUILT_IN_STACK_SAVE
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 6f076dc..4127e03 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -1,5 +1,5 @@
 /* Tree based points-to analysis
-   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
+   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
    Contributed by Daniel Berlin <dberlin@dberlin.org>
 
@@ -2746,6 +2746,18 @@
       return;
     }
 
+  /* For global variables resort to the alias target.  */
+  if (TREE_CODE (t) == VAR_DECL
+      && (TREE_STATIC (t) || DECL_EXTERNAL (t)))
+    {
+      struct varpool_node *node = varpool_get_node (t);
+      if (node && node->alias)
+	{
+	  node = varpool_variable_node (node, NULL);
+	  t = node->decl;
+	}
+    }
+
   vi = get_vi_for_tree (t);
   cexpr.var = vi->id;
   cexpr.type = SCALAR;
@@ -3982,6 +3994,14 @@
       case BUILT_IN_STPNCPY:
       case BUILT_IN_STRCAT:
       case BUILT_IN_STRNCAT:
+      case BUILT_IN_STRCPY_CHK:
+      case BUILT_IN_STRNCPY_CHK:
+      case BUILT_IN_MEMCPY_CHK:
+      case BUILT_IN_MEMMOVE_CHK:
+      case BUILT_IN_MEMPCPY_CHK:
+      case BUILT_IN_STPCPY_CHK:
+      case BUILT_IN_STRCAT_CHK:
+      case BUILT_IN_STRNCAT_CHK:
 	{
 	  tree res = gimple_call_lhs (t);
 	  tree dest = gimple_call_arg (t, (DECL_FUNCTION_CODE (fndecl)
@@ -4011,6 +4031,7 @@
 	  return true;
 	}
       case BUILT_IN_MEMSET:
+      case BUILT_IN_MEMSET_CHK:
 	{
 	  tree res = gimple_call_lhs (t);
 	  tree dest = gimple_call_arg (t, 0);
@@ -4627,6 +4648,14 @@
 	  case BUILT_IN_STPNCPY:
 	  case BUILT_IN_STRCAT:
 	  case BUILT_IN_STRNCAT:
+	  case BUILT_IN_STRCPY_CHK:
+	  case BUILT_IN_STRNCPY_CHK:
+	  case BUILT_IN_MEMCPY_CHK:
+	  case BUILT_IN_MEMMOVE_CHK:
+	  case BUILT_IN_MEMPCPY_CHK:
+	  case BUILT_IN_STPCPY_CHK:
+	  case BUILT_IN_STRCAT_CHK:
+	  case BUILT_IN_STRNCAT_CHK:
 	    {
 	      tree dest = gimple_call_arg (t, (DECL_FUNCTION_CODE (decl)
 					       == BUILT_IN_BCOPY ? 1 : 0));
@@ -4649,6 +4678,7 @@
 	  /* The following function clobbers memory pointed to by
 	     its argument.  */
 	  case BUILT_IN_MEMSET:
+	  case BUILT_IN_MEMSET_CHK:
 	    {
 	      tree dest = gimple_call_arg (t, 0);
 	      unsigned i;
@@ -6685,16 +6715,6 @@
   return false;
 }
 
-/* Associate node with varinfo DATA. Worker for
-   varpool_for_node_and_aliases.  */
-static bool
-associate_varinfo_to_alias_1 (struct varpool_node *node, void *data)
-{
-  if (node->alias)
-    insert_vi_for_tree (node->decl, (varinfo_t)data);
-  return false;
-}
-
 /* Execute the driver for IPA PTA.  */
 static unsigned int
 ipa_pta_execute (void)
@@ -6726,12 +6746,10 @@
   /* Create constraints for global variables and their initializers.  */
   for (var = varpool_nodes; var; var = var->next)
     {
-      varinfo_t vi;
       if (var->alias)
 	continue;
 
-      vi = get_vi_for_tree (var->decl);
-      varpool_for_node_and_aliases (var, associate_varinfo_to_alias_1, vi, true);
+      get_vi_for_tree (var->decl);
     }
 
   if (dump_file)
diff --git a/gcc/tree-ssa-threadupdate.c b/gcc/tree-ssa-threadupdate.c
index e0335dc..0cdf846 100644
--- a/gcc/tree-ssa-threadupdate.c
+++ b/gcc/tree-ssa-threadupdate.c
@@ -385,7 +385,7 @@
      to keep its control statement and redirect an outgoing edge.
      Else we want to remove the control statement & edges, then create
      a new outgoing edge.  In both cases we may need to update PHIs.  */
-  if (THREAD_TARGET2 (rd->incoming_edges->e) == rd->outgoing_edge)
+  if (THREAD_TARGET2 (rd->incoming_edges->e))
     {
       edge victim;
       edge e2;
@@ -400,8 +400,11 @@
       victim = find_edge (rd->dup_block, THREAD_TARGET (e)->dest);
       e2 = redirect_edge_and_branch (victim, THREAD_TARGET2 (e)->dest);
 
-      /* This updates the PHI at the target of the threaded edge.  */
-      copy_phi_args (e2->dest, THREAD_TARGET2 (e), e2);
+      /* If we redirected the edge, then we need to copy PHI arguments
+	 at the target.  If the edge already existed (e2 != victim case),
+	 then the PHIs in the target already have the correct arguments.  */
+      if (e2 == victim)
+	copy_phi_args (e2->dest, THREAD_TARGET2 (e), e2);
     }
   else
     {
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
index c98eb13..9a2c5b6 100644
--- a/gcc/tree-vect-data-refs.c
+++ b/gcc/tree-vect-data-refs.c
@@ -859,7 +859,9 @@
       || (TREE_CODE (base_addr) == SSA_NAME
 	  && tree_int_cst_compare (ssize_int (TYPE_ALIGN_UNIT (TREE_TYPE (
 						      TREE_TYPE (base_addr)))),
-				   alignment) >= 0))
+				   alignment) >= 0)
+      || (get_pointer_alignment (base_addr, TYPE_ALIGN (vectype))
+	  >= TYPE_ALIGN (vectype)))
     base_aligned = true;
   else
     base_aligned = false;
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 27305f3..7691267 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -4591,6 +4591,25 @@
       return false;
     }
 
+  /* In case of widenning multiplication by a constant, we update the type
+     of the constant to be the type of the other operand.  We check that the
+     constant fits the type in the pattern recognition pass.  */
+  if (code == DOT_PROD_EXPR
+      && !types_compatible_p (TREE_TYPE (ops[0]), TREE_TYPE (ops[1])))
+    {
+      if (TREE_CODE (ops[0]) == INTEGER_CST)
+        ops[0] = fold_convert (TREE_TYPE (ops[1]), ops[0]);
+      else if (TREE_CODE (ops[1]) == INTEGER_CST)
+        ops[1] = fold_convert (TREE_TYPE (ops[0]), ops[1]);
+      else
+        {
+          if (vect_print_dump_info (REPORT_DETAILS))
+            fprintf (vect_dump, "invalid types in dot-prod");
+
+          return false;
+        }
+    }
+
   if (!vec_stmt) /* transformation not required.  */
     {
       if (!vect_model_reduction_cost (stmt_info, epilog_reduc_code, ncopies))
diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c
index ce94142..429dd87 100644
--- a/gcc/tree-vect-patterns.c
+++ b/gcc/tree-vect-patterns.c
@@ -1,5 +1,6 @@
 /* Analysis Utilities for Loop Vectorization.
-   Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
+   Free Software Foundation, Inc.
    Contributed by Dorit Nuzman <dorit@il.ibm.com>
 
 This file is part of GCC.
@@ -557,6 +558,8 @@
 
       FOR_EACH_IMM_USE_FAST (use_p, imm_iter, lhs)
         {
+	  if (is_gimple_debug (USE_STMT (use_p)))
+	    continue;
           use_stmt = USE_STMT (use_p);
           nuses++;
         }
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 6a5ba22..f9b9639 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -2089,6 +2089,9 @@
   else
     return false;
 
+  if (code == VIEW_CONVERT_EXPR)
+    op = TREE_OPERAND (op, 0);
+
   if (!vect_is_simple_use_1 (op, loop_vinfo, bb_vinfo,
 			     &def_stmt, &def, &dt[0], &vectype_in))
     {
@@ -2099,7 +2102,8 @@
 
   /* We can handle NOP_EXPR conversions that do not change the number
      of elements or the vector size.  */
-  if (CONVERT_EXPR_CODE_P (code)
+  if ((CONVERT_EXPR_CODE_P (code)
+       || code == VIEW_CONVERT_EXPR)
       && (!vectype_in
 	  || TYPE_VECTOR_SUBPARTS (vectype_in) != nunits
 	  || (GET_MODE_SIZE (TYPE_MODE (vectype))
@@ -2134,7 +2138,8 @@
       /* Arguments are ready. create the new vector stmt.  */
       FOR_EACH_VEC_ELT (tree, vec_oprnds, i, vop)
        {
-	 if (CONVERT_EXPR_CODE_P (code))
+	 if (CONVERT_EXPR_CODE_P (code)
+	     || code == VIEW_CONVERT_EXPR)
 	   vop = build1 (VIEW_CONVERT_EXPR, vectype, vop);
          new_stmt = gimple_build_assign (vec_dest, vop);
          new_temp = make_ssa_name (vec_dest, new_stmt);
diff --git a/gcc/tree.c b/gcc/tree.c
index 73126cf..2872034 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -203,6 +203,9 @@
 static GTY ((if_marked ("tree_decl_map_marked_p"), param_is (struct tree_decl_map)))
      htab_t value_expr_for_decl;
 
+static GTY ((if_marked ("tree_vec_map_marked_p"), param_is (struct tree_vec_map)))
+     htab_t debug_args_for_decl;
+
 static GTY ((if_marked ("tree_priority_map_marked_p"),
 	     param_is (struct tree_priority_map)))
   htab_t init_priority_for_decl;
@@ -5218,82 +5221,119 @@
  }
 };
 
-/* Return nonzero if IDENT is a valid name for attribute ATTR,
-   or zero if not.
-
-   We try both `text' and `__text__', ATTR may be either one.  */
-/* ??? It might be a reasonable simplification to require ATTR to be only
-   `text'.  One might then also require attribute lists to be stored in
-   their canonicalized form.  */
-
-static int
-is_attribute_with_length_p (const char *attr, int attr_len, const_tree ident)
+/* The backbone of is_attribute_p().  ATTR_LEN is the string length of
+   ATTR_NAME.  Also used internally by remove_attribute().  */
+bool
+private_is_attribute_p (const char *attr_name, size_t attr_len, const_tree ident)
 {
-  int ident_len;
-  const char *p;
+  size_t ident_len = IDENTIFIER_LENGTH (ident);
 
-  if (TREE_CODE (ident) != IDENTIFIER_NODE)
-    return 0;
-
-  p = IDENTIFIER_POINTER (ident);
-  ident_len = IDENTIFIER_LENGTH (ident);
-
-  if (ident_len == attr_len
-      && strcmp (attr, p) == 0)
-    return 1;
-
-  /* If ATTR is `__text__', IDENT must be `text'; and vice versa.  */
-  if (attr[0] == '_')
+  if (ident_len == attr_len)
     {
-      gcc_assert (attr[1] == '_');
-      gcc_assert (attr[attr_len - 2] == '_');
-      gcc_assert (attr[attr_len - 1] == '_');
-      if (ident_len == attr_len - 4
-	  && strncmp (attr + 2, p, attr_len - 4) == 0)
-	return 1;
+      if (strcmp (attr_name, IDENTIFIER_POINTER (ident)) == 0)
+	return true;
     }
-  else
+  else if (ident_len == attr_len + 4)
     {
-      if (ident_len == attr_len + 4
-	  && p[0] == '_' && p[1] == '_'
+      /* There is the possibility that ATTR is 'text' and IDENT is
+	 '__text__'.  */
+      const char *p = IDENTIFIER_POINTER (ident);      
+      if (p[0] == '_' && p[1] == '_'
 	  && p[ident_len - 2] == '_' && p[ident_len - 1] == '_'
-	  && strncmp (attr, p + 2, attr_len) == 0)
-	return 1;
+	  && strncmp (attr_name, p + 2, attr_len) == 0)
+	return true;
     }
 
-  return 0;
+  return false;
 }
 
-/* Return nonzero if IDENT is a valid name for attribute ATTR,
-   or zero if not.
-
-   We try both `text' and `__text__', ATTR may be either one.  */
-
-int
-is_attribute_p (const char *attr, const_tree ident)
-{
-  return is_attribute_with_length_p (attr, strlen (attr), ident);
-}
-
-/* Given an attribute name and a list of attributes, return a pointer to the
-   attribute's list element if the attribute is part of the list, or NULL_TREE
-   if not found.  If the attribute appears more than once, this only
-   returns the first occurrence; the TREE_CHAIN of the return value should
-   be passed back in if further occurrences are wanted.  */
-
+/* The backbone of lookup_attribute().  ATTR_LEN is the string length
+   of ATTR_NAME, and LIST is not NULL_TREE.  */
 tree
-lookup_attribute (const char *attr_name, tree list)
+private_lookup_attribute (const char *attr_name, size_t attr_len, tree list)
 {
-  tree l;
-  size_t attr_len = strlen (attr_name);
-
-  for (l = list; l; l = TREE_CHAIN (l))
+  while (list)
     {
-      gcc_assert (TREE_CODE (TREE_PURPOSE (l)) == IDENTIFIER_NODE);
-      if (is_attribute_with_length_p (attr_name, attr_len, TREE_PURPOSE (l)))
-	return l;
+      size_t ident_len = IDENTIFIER_LENGTH (TREE_PURPOSE (list));
+
+      if (ident_len == attr_len)
+	{
+	  if (strcmp (attr_name, IDENTIFIER_POINTER (TREE_PURPOSE (list))) == 0)
+	    break;
+	}
+      /* TODO: If we made sure that attributes were stored in the
+	 canonical form without '__...__' (ie, as in 'text' as opposed
+	 to '__text__') then we could avoid the following case.  */
+      else if (ident_len == attr_len + 4)
+	{
+	  const char *p = IDENTIFIER_POINTER (TREE_PURPOSE (list));
+	  if (p[0] == '_' && p[1] == '_'
+	      && p[ident_len - 2] == '_' && p[ident_len - 1] == '_'
+	      && strncmp (attr_name, p + 2, attr_len) == 0)
+	    break;
+	}
+      list = TREE_CHAIN (list);
     }
-  return NULL_TREE;
+
+  return list;
+}
+
+/* A variant of lookup_attribute() that can be used with an identifier
+   as the first argument, and where the identifier can be either
+   'text' or '__text__'.
+
+   Given an attribute ATTR_IDENTIFIER, and a list of attributes LIST,
+   return a pointer to the attribute's list element if the attribute
+   is part of the list, or NULL_TREE if not found.  If the attribute
+   appears more than once, this only returns the first occurrence; the
+   TREE_CHAIN of the return value should be passed back in if further
+   occurrences are wanted.  ATTR_IDENTIFIER must be an identifier but
+   can be in the form 'text' or '__text__'.  */
+static tree
+lookup_ident_attribute (tree attr_identifier, tree list)
+{
+  gcc_checking_assert (TREE_CODE (attr_identifier) == IDENTIFIER_NODE);
+
+  while (list)
+    {
+      gcc_checking_assert (TREE_CODE (TREE_PURPOSE (list)) == IDENTIFIER_NODE);
+
+      /* Identifiers can be compared directly for equality.  */
+      if (attr_identifier == TREE_PURPOSE (list))
+	break;
+
+      /* If they are not equal, they may still be one in the form
+	 'text' while the other one is in the form '__text__'.  TODO:
+	 If we were storing attributes in normalized 'text' form, then
+	 this could all go away and we could take full advantage of
+	 the fact that we're comparing identifiers. :-)  */
+      {
+	size_t attr_len = IDENTIFIER_LENGTH (attr_identifier);
+	size_t ident_len = IDENTIFIER_LENGTH (TREE_PURPOSE (list));
+
+	if (ident_len == attr_len + 4)
+	  {
+	    const char *p = IDENTIFIER_POINTER (TREE_PURPOSE (list));
+	    const char *q = IDENTIFIER_POINTER (attr_identifier);
+	    if (p[0] == '_' && p[1] == '_'
+		&& p[ident_len - 2] == '_' && p[ident_len - 1] == '_'
+		&& strncmp (q, p + 2, attr_len) == 0)
+	      break;
+	  }
+	else if (ident_len + 4 == attr_len)
+	  {
+	    const char *p = IDENTIFIER_POINTER (TREE_PURPOSE (list));
+	    const char *q = IDENTIFIER_POINTER (attr_identifier);
+	    if (q[0] == '_' && q[1] == '_'
+		&& q[attr_len - 2] == '_' && q[attr_len - 1] == '_'
+		&& strncmp (q + 2, p, ident_len) == 0)
+	      break;
+	  }
+      }
+      list = TREE_CHAIN (list);
+    }
+
+  return list;
 }
 
 /* Remove any instances of attribute ATTR_NAME in LIST and return the
@@ -5305,11 +5345,14 @@
   tree *p;
   size_t attr_len = strlen (attr_name);
 
+  gcc_checking_assert (attr_name[0] != '_');
+
   for (p = &list; *p; )
     {
       tree l = *p;
-      gcc_assert (TREE_CODE (TREE_PURPOSE (l)) == IDENTIFIER_NODE);
-      if (is_attribute_with_length_p (attr_name, attr_len, TREE_PURPOSE (l)))
+      /* TODO: If we were storing attributes in normalized form, here
+	 we could use a simple strcmp().  */
+      if (private_is_attribute_p (attr_name, attr_len, TREE_PURPOSE (l)))
 	*p = TREE_CHAIN (l);
       else
 	p = &TREE_CHAIN (l);
@@ -5346,11 +5389,9 @@
 	  for (; a2 != 0; a2 = TREE_CHAIN (a2))
 	    {
 	      tree a;
-	      for (a = lookup_attribute (IDENTIFIER_POINTER (TREE_PURPOSE (a2)),
-					 attributes);
+	      for (a = lookup_ident_attribute (TREE_PURPOSE (a2), attributes);
 		   a != NULL_TREE && !attribute_value_equal (a, a2);
-		   a = lookup_attribute (IDENTIFIER_POINTER (TREE_PURPOSE (a2)),
-					 TREE_CHAIN (a)))
+		   a = lookup_ident_attribute (TREE_PURPOSE (a2), TREE_CHAIN (a)))
 		;
 	      if (a == NULL_TREE)
 		{
@@ -5449,24 +5490,7 @@
   a = merge_attributes (DECL_ATTRIBUTES (old), DECL_ATTRIBUTES (new_tree));
 
   if (delete_dllimport_p)
-    {
-      tree prev, t;
-      const size_t attr_len = strlen ("dllimport");
-
-      /* Scan the list for dllimport and delete it.  */
-      for (prev = NULL_TREE, t = a; t; prev = t, t = TREE_CHAIN (t))
-	{
-	  if (is_attribute_with_length_p ("dllimport", attr_len,
-					  TREE_PURPOSE (t)))
-	    {
-	      if (prev == NULL_TREE)
-		a = TREE_CHAIN (a);
-	      else
-		TREE_CHAIN (prev) = TREE_CHAIN (t);
-	      break;
-	    }
-	}
-    }
+    a = remove_attribute ("dllimport", a);
 
   return a;
 }
@@ -5995,6 +6019,49 @@
   *(struct tree_decl_map **) loc = h;
 }
 
+/* Lookup a vector of debug arguments for FROM, and return it if we
+   find one.  */
+
+VEC(tree, gc) **
+decl_debug_args_lookup (tree from)
+{
+  struct tree_vec_map *h, in;
+
+  if (!DECL_HAS_DEBUG_ARGS_P (from))
+    return NULL;
+  gcc_checking_assert (debug_args_for_decl != NULL);
+  in.base.from = from;
+  h = (struct tree_vec_map *)
+      htab_find_with_hash (debug_args_for_decl, &in, DECL_UID (from));
+  if (h)
+    return &h->to;
+  return NULL;
+}
+
+/* Insert a mapping FROM->empty vector of debug arguments in the value
+   expression hashtable.  */
+
+VEC(tree, gc) **
+decl_debug_args_insert (tree from)
+{
+  struct tree_vec_map *h;
+  void **loc;
+
+  if (DECL_HAS_DEBUG_ARGS_P (from))
+    return decl_debug_args_lookup (from);
+  if (debug_args_for_decl == NULL)
+    debug_args_for_decl = htab_create_ggc (64, tree_vec_map_hash,
+					   tree_vec_map_eq, 0);
+  h = ggc_alloc_tree_vec_map ();
+  h->base.from = from;
+  h->to = NULL;
+  loc = htab_find_slot_with_hash (debug_args_for_decl, h, DECL_UID (from),
+				  INSERT);
+  *(struct tree_vec_map **) loc = h;
+  DECL_HAS_DEBUG_ARGS_P (from) = 1;
+  return &h->to;
+}
+
 /* Hashing of types so that we don't make duplicates.
    The entry point is `type_hash_canon'.  */
 
@@ -6254,6 +6321,9 @@
 int
 attribute_list_equal (const_tree l1, const_tree l2)
 {
+  if (l1 == l2)
+    return 1;
+
   return attribute_list_contained (l1, l2)
 	 && attribute_list_contained (l2, l1);
 }
@@ -6292,11 +6362,9 @@
       /* This CONST_CAST is okay because lookup_attribute does not
 	 modify its argument and the return value is assigned to a
 	 const_tree.  */
-      for (attr = lookup_attribute (IDENTIFIER_POINTER (TREE_PURPOSE (t2)),
-				    CONST_CAST_TREE(l1));
+      for (attr = lookup_ident_attribute (TREE_PURPOSE (t2), CONST_CAST_TREE(l1));
 	   attr != NULL_TREE && !attribute_value_equal (t2, attr);
-	   attr = lookup_attribute (IDENTIFIER_POINTER (TREE_PURPOSE (t2)),
-				    TREE_CHAIN (attr)))
+	   attr = lookup_ident_attribute (TREE_PURPOSE (t2), TREE_CHAIN (attr)))
 	;
 
       if (attr == NULL_TREE)
diff --git a/gcc/tree.h b/gcc/tree.h
index f55574d..20ba295 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -1,6 +1,6 @@
 /* Front-end tree definitions for GNU compiler.
    Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -3431,6 +3431,13 @@
 #define DECL_DISREGARD_INLINE_LIMITS(NODE) \
   (FUNCTION_DECL_CHECK (NODE)->function_decl.disregard_inline_limits)
 
+extern VEC(tree, gc) **decl_debug_args_lookup (tree);
+extern VEC(tree, gc) **decl_debug_args_insert (tree);
+
+/* Nonzero if a FUNCTION_DECL has DEBUG arguments attached to it.  */
+#define DECL_HAS_DEBUG_ARGS_P(NODE) \
+  (FUNCTION_DECL_CHECK (NODE)->function_decl.has_debug_args_flag)
+
 /* For FUNCTION_DECL, this holds a pointer to a structure ("struct function")
    that describes the status of this function.  */
 #define DECL_STRUCT_FUNCTION(NODE) \
@@ -3496,16 +3503,16 @@
   unsigned operator_new_flag : 1;
   unsigned declared_inline_flag : 1;
   unsigned regdecl_flag : 1;
-
   unsigned no_inline_warning_flag : 1;
+
   unsigned no_instrument_function_entry_exit : 1;
   unsigned no_limit_stack : 1;
   unsigned disregard_inline_limits : 1;
   unsigned pure_flag : 1;
   unsigned looping_const_or_pure_flag : 1;
+  unsigned has_debug_args_flag : 1;
 
-
-  /* 3 bits left */
+  /* 2 bits left */
 };
 
 /* The source language of the translation-unit.  */
@@ -4498,18 +4505,54 @@
 extern tree merge_decl_attributes (tree, tree);
 extern tree merge_type_attributes (tree, tree);
 
-/* Given a tree node and a string, return nonzero if the tree node is
-   a valid attribute name for the string.  */
+/* This function is a private implementation detail of lookup_attribute()
+   and you should never call it directly.  */
+extern tree private_lookup_attribute (const char *, size_t, tree);
 
-extern int is_attribute_p (const char *, const_tree);
+/* Given an attribute name ATTR_NAME and a list of attributes LIST,
+   return a pointer to the attribute's list element if the attribute
+   is part of the list, or NULL_TREE if not found.  If the attribute
+   appears more than once, this only returns the first occurrence; the
+   TREE_CHAIN of the return value should be passed back in if further
+   occurrences are wanted.  ATTR_NAME must be in the form 'text' (not
+   '__text__').  */
 
-/* Given an attribute name and a list of attributes, return the list element
-   of the attribute or NULL_TREE if not found.  */
+static inline tree
+lookup_attribute (const char *attr_name, tree list)
+{
+  gcc_checking_assert (attr_name[0] != '_');  
+  /* In most cases, list is NULL_TREE.  */
+  if (list == NULL_TREE)
+    return NULL_TREE;
+  else
+    /* Do the strlen() before calling the out-of-line implementation.
+       In most cases attr_name is a string constant, and the compiler
+       will optimize the strlen() away.  */
+    return private_lookup_attribute (attr_name, strlen (attr_name), list);
+}
 
-extern tree lookup_attribute (const char *, tree);
+/* This function is a private implementation detail of
+   is_attribute_p() and you should never call it directly.  */
+extern bool private_is_attribute_p (const char *, size_t, const_tree);
+
+/* Given an identifier node IDENT and a string ATTR_NAME, return true
+   if the identifier node is a valid attribute name for the string.
+   ATTR_NAME must be in the form 'text' (not '__text__').  IDENT could
+   be the identifier for 'text' or for '__text__'.  */
+
+static inline bool
+is_attribute_p (const char *attr_name, const_tree ident)
+{
+  gcc_checking_assert (attr_name[0] != '_');
+  /* Do the strlen() before calling the out-of-line implementation.
+     In most cases attr_name is a string constant, and the compiler
+     will optimize the strlen() away.  */
+  return private_is_attribute_p (attr_name, strlen (attr_name), ident);
+}
 
 /* Remove any instances of attribute ATTR_NAME in LIST and return the
-   modified list.  */
+   modified list.  ATTR_NAME must be in the form 'text' (not
+   '__text__').  */
 
 extern tree remove_attribute (const char *, tree);
 
@@ -5564,10 +5607,6 @@
 
 extern void dwarf2out_def_cfa (const char *, unsigned, HOST_WIDE_INT);
 
-/* Add the CFI for saving a register window.  */
-
-extern void dwarf2out_window_save (const char *);
-
 /* Entry point for saving a register to the stack.  */
 
 extern void dwarf2out_reg_save (const char *, unsigned, HOST_WIDE_INT);
@@ -5706,6 +5745,17 @@
 #define tree_priority_map_hash tree_map_base_hash
 #define tree_priority_map_marked_p tree_map_base_marked_p
 
+/* Map from a decl tree to a tree vector.  */
+
+struct GTY(()) tree_vec_map {
+  struct tree_map_base base;
+  VEC(tree,gc) *to;
+};
+
+#define tree_vec_map_eq tree_map_base_eq
+#define tree_vec_map_hash tree_decl_map_hash
+#define tree_vec_map_marked_p tree_map_base_marked_p
+
 /* In tree-ssa.c */
 
 tree target_for_debug_bind (tree);
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index a8574d2..b3f84a1 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -5812,6 +5812,29 @@
 	  }
       }
 
+  /* Add debug arguments.  */
+  if (fndecl
+      && TREE_CODE (fndecl) == FUNCTION_DECL
+      && DECL_HAS_DEBUG_ARGS_P (fndecl))
+    {
+      VEC(tree, gc) **debug_args = decl_debug_args_lookup (fndecl);
+      if (debug_args)
+	{
+	  unsigned int ix;
+	  tree param;
+	  for (ix = 0; VEC_iterate (tree, *debug_args, ix, param); ix += 2)
+	    {
+	      rtx item;
+	      tree dtemp = VEC_index (tree, *debug_args, ix + 1);
+	      enum machine_mode mode = DECL_MODE (dtemp);
+	      item = gen_rtx_DEBUG_PARAMETER_REF (mode, param);
+	      item = gen_rtx_CONCAT (mode, item, DECL_RTL (dtemp));
+	      call_arguments = gen_rtx_EXPR_LIST (VOIDmode, item,
+						  call_arguments);
+	    }
+	}
+    }
+
   /* Reverse call_arguments chain.  */
   prev = NULL_RTX;
   for (cur = call_arguments; cur; cur = next)
diff --git a/include/ChangeLog b/include/ChangeLog
index fa0dfac..e4a6bcae 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,8 @@
+2011-06-22  Jakub Jelinek  <jakub@redhat.com>
+
+	PR debug/47858
+	* dwarf2.h (enum dwarf_location_atom): Add DW_OP_GNU_parameter_ref.
+
 2011-06-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
 	* demangle.h (DMGL_RET_POSTFIX): Extend the comment.
diff --git a/include/dwarf2.h b/include/dwarf2.h
index 0b00866..b2806ef 100644
--- a/include/dwarf2.h
+++ b/include/dwarf2.h
@@ -563,6 +563,8 @@
     DW_OP_GNU_deref_type = 0xf6,
     DW_OP_GNU_convert = 0xf7,
     DW_OP_GNU_reinterpret = 0xf9,
+    /* The GNU parameter ref extension.  */
+    DW_OP_GNU_parameter_ref = 0xfa,
     /* HP extensions.  */
     DW_OP_HP_unknown     = 0xe0, /* Ouch, the same as GNU_push_tls_address.  */
     DW_OP_HP_is_value    = 0xe1,
diff --git a/libcpp/po/ChangeLog b/libcpp/po/ChangeLog
index b36e777..fc43008 100644
--- a/libcpp/po/ChangeLog
+++ b/libcpp/po/ChangeLog
@@ -1,3 +1,7 @@
+2011-06-21  Joseph Myers  <joseph@codesourcery.com>
+
+	* cpplib.pot: Regenerate.
+
 2011-05-12  Joseph Myers  <joseph@codesourcery.com>
 
 	* zh_CN.po: Update.
diff --git a/libcpp/po/cpplib.pot b/libcpp/po/cpplib.pot
index 111ec3d..3eaa467 100644
--- a/libcpp/po/cpplib.pot
+++ b/libcpp/po/cpplib.pot
@@ -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: 2011-03-24 16:40+0000\n"
+"POT-Creation-Date: 2011-06-21 10:30+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"
@@ -75,7 +75,7 @@
 msgstr ""
 
 #: charset.c:1056
-#: lex.c:1040
+#: lex.c:1041
 msgid "'$' in identifier or number"
 msgstr ""
 
@@ -314,102 +314,102 @@
 msgid "registering pragma with NULL handler"
 msgstr ""
 
-#: directives.c:1431
+#: directives.c:1460
 msgid "#pragma once in main file"
 msgstr ""
 
-#: directives.c:1454
+#: directives.c:1483
 msgid "invalid #pragma push_macro directive"
 msgstr ""
 
-#: directives.c:1509
+#: directives.c:1538
 msgid "invalid #pragma pop_macro directive"
 msgstr ""
 
-#: directives.c:1564
+#: directives.c:1593
 msgid "invalid #pragma GCC poison directive"
 msgstr ""
 
-#: directives.c:1573
+#: directives.c:1602
 #, c-format
 msgid "poisoning existing macro \"%s\""
 msgstr ""
 
-#: directives.c:1592
+#: directives.c:1621
 msgid "#pragma system_header ignored outside include file"
 msgstr ""
 
-#: directives.c:1617
+#: directives.c:1646
 #, c-format
 msgid "cannot find source file %s"
 msgstr ""
 
-#: directives.c:1621
+#: directives.c:1650
 #, c-format
 msgid "current file is older than %s"
 msgstr ""
 
-#: directives.c:1806
+#: directives.c:1835
 msgid "_Pragma takes a parenthesized string literal"
 msgstr ""
 
-#: directives.c:1927
+#: directives.c:1956
 msgid "#else without #if"
 msgstr ""
 
-#: directives.c:1932
+#: directives.c:1961
 msgid "#else after #else"
 msgstr ""
 
-#: directives.c:1934
-#: directives.c:1967
+#: directives.c:1963
+#: directives.c:1996
 msgid "the conditional began here"
 msgstr ""
 
-#: directives.c:1960
+#: directives.c:1989
 msgid "#elif without #if"
 msgstr ""
 
-#: directives.c:1965
+#: directives.c:1994
 msgid "#elif after #else"
 msgstr ""
 
-#: directives.c:2003
+#: directives.c:2032
 msgid "#endif without #if"
 msgstr ""
 
-#: directives.c:2083
+#: directives.c:2112
 msgid "missing '(' after predicate"
 msgstr ""
 
-#: directives.c:2098
+#: directives.c:2127
 msgid "missing ')' to complete answer"
 msgstr ""
 
-#: directives.c:2118
+#: directives.c:2147
 msgid "predicate's answer is empty"
 msgstr ""
 
-#: directives.c:2145
+#: directives.c:2174
 msgid "assertion without predicate"
 msgstr ""
 
-#: directives.c:2148
+#: directives.c:2177
 msgid "predicate must be an identifier"
 msgstr ""
 
-#: directives.c:2234
+#: directives.c:2263
 #, c-format
 msgid "\"%s\" re-asserted"
 msgstr ""
 
-#: directives.c:2525
+#: directives.c:2554
 #, c-format
 msgid "unterminated #%s"
 msgstr ""
 
 #: directives-only.c:222
-#: lex.c:2074
+#: lex.c:2069
 #: traditional.c:163
 msgid "unterminated comment"
 msgstr ""
@@ -667,7 +667,7 @@
 msgid "no include path in which to search for %s"
 msgstr ""
 
-#: files.c:1307
+#: files.c:1306
 msgid "Multiple include guards may be useful for:\n"
 msgstr ""
 
@@ -709,60 +709,60 @@
 "the target requires %lu bits"
 msgstr ""
 
-#: lex.c:834
+#: lex.c:835
 msgid "backslash and newline separated by space"
 msgstr ""
 
-#: lex.c:839
+#: lex.c:840
 msgid "backslash-newline at end of file"
 msgstr ""
 
-#: lex.c:855
+#: lex.c:856
 #, c-format
 msgid "trigraph ??%c converted to %c"
 msgstr ""
 
-#: lex.c:863
+#: lex.c:864
 #, c-format
 msgid "trigraph ??%c ignored, use -trigraphs to enable"
 msgstr ""
 
-#: lex.c:912
+#: lex.c:913
 msgid "\"/*\" within comment"
 msgstr ""
 
-#: lex.c:970
+#: lex.c:971
 #, c-format
 msgid "%s in preprocessing directive"
 msgstr ""
 
-#: lex.c:979
+#: lex.c:980
 msgid "null character(s) ignored"
 msgstr ""
 
-#: lex.c:1016
+#: lex.c:1017
 #, c-format
 msgid "`%.*s' is not in NFKC"
 msgstr ""
 
-#: lex.c:1019
+#: lex.c:1020
 #, c-format
 msgid "`%.*s' is not in NFC"
 msgstr ""
 
-#: lex.c:1087
-#: lex.c:1164
+#: lex.c:1088
+#: lex.c:1165
 #, c-format
 msgid "attempt to use poisoned \"%s\""
 msgstr ""
 
-#: lex.c:1095
-#: lex.c:1172
+#: lex.c:1096
+#: lex.c:1173
 msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
 msgstr ""
 
-#: lex.c:1101
-#: lex.c:1178
+#: lex.c:1102
+#: lex.c:1179
 #, c-format
 msgid "identifier \"%s\" is a special operator name in C++"
 msgstr ""
@@ -776,34 +776,33 @@
 msgid "invalid character '%c' in raw string delimiter"
 msgstr ""
 
-#: lex.c:1447
-#: lex.c:1469
+#: lex.c:1449
+#: lex.c:1471
 msgid "unterminated raw string"
 msgstr ""
 
-#: lex.c:1484
-#: lex.c:1583
+#: lex.c:1578
 msgid "null character(s) preserved in literal"
 msgstr ""
 
-#: lex.c:1586
+#: lex.c:1581
 #, c-format
 msgid "missing terminating %c character"
 msgstr ""
 
-#: lex.c:2085
+#: lex.c:2080
 msgid "C++ style comments are not allowed in ISO C90"
 msgstr ""
 
-#: lex.c:2087
+#: lex.c:2082
 msgid "(this will be reported only once per input file)"
 msgstr ""
 
-#: lex.c:2092
+#: lex.c:2087
 msgid "multi-line comment"
 msgstr ""
 
-#: lex.c:2412
+#: lex.c:2407
 #, c-format
 msgid "unspellable token %s"
 msgstr ""
@@ -872,67 +871,67 @@
 "C90 and ISO C++98"
 msgstr ""
 
-#: macro.c:1507
+#: macro.c:1506
 #, c-format
 msgid "duplicate macro parameter \"%s\""
 msgstr ""
 
-#: macro.c:1553
+#: macro.c:1552
 #, c-format
 msgid "\"%s\" may not appear in macro parameter list"
 msgstr ""
 
-#: macro.c:1561
+#: macro.c:1560
 msgid "macro parameters must be comma-separated"
 msgstr ""
 
-#: macro.c:1578
+#: macro.c:1577
 msgid "parameter name missing"
 msgstr ""
 
-#: macro.c:1596
+#: macro.c:1595
 msgid "anonymous variadic macros were introduced in C99"
 msgstr ""
 
-#: macro.c:1601
+#: macro.c:1600
 msgid "ISO C does not permit named variadic macros"
 msgstr ""
 
-#: macro.c:1610
+#: macro.c:1609
 msgid "missing ')' in macro parameter list"
 msgstr ""
 
-#: macro.c:1659
+#: macro.c:1658
 msgid "'##' cannot appear at either end of a macro expansion"
 msgstr ""
 
-#: macro.c:1694
+#: macro.c:1693
 msgid "ISO C99 requires whitespace after the macro name"
 msgstr ""
 
-#: macro.c:1718
+#: macro.c:1717
 msgid "missing whitespace after the macro name"
 msgstr ""
 
-#: macro.c:1752
+#: macro.c:1751
 msgid "'#' is not followed by a macro parameter"
 msgstr ""
 
-#: macro.c:1910
+#: macro.c:1909
 #, c-format
 msgid "\"%s\" redefined"
 msgstr ""
 
-#: macro.c:1916
+#: macro.c:1915
 msgid "this is the location of the previous definition"
 msgstr ""
 
-#: macro.c:1977
+#: macro.c:1976
 #, c-format
 msgid "macro argument \"%s\" would be stringified in traditional C"
 msgstr ""
 
-#: macro.c:2004
+#: macro.c:2003
 #, c-format
 msgid "invalid hash type %d in cpp_macro_definition"
 msgstr ""
@@ -973,7 +972,7 @@
 msgstr ""
 
 #: pch.c:712
-#: pch.c:891
+#: pch.c:888
 msgid "while reading precompiled header"
 msgstr ""
 
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 0f2384e..363c095 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,5 +1,20 @@
+2011-06-22  Uros Bizjak  <ubizjak@gmail.com>
+
+	* enable-execute-stack-empty.c (__enable_execute_stack): Add prototype.
+
+2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	* shared-object.mk (c_flags-$o): Save c_flags.
+	($(base)$(objext)): Use it.
+	($(base)_s$(objext)): Likewise.
+
+2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
+
+	* Makefile.in (lib2funcs): Add _clrsbsi2 and _clrsbdi2.
+	* libgcc-std.ver.in (GCC_4.7.0): New section.
+
 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
-	
+
 	PR target/49313
 	PR target/29524
 	* config/avr/t-avr: Fix line endings.
@@ -368,7 +383,7 @@
 2010-09-09  Gerald Pfeifer  <gerald@pfeifer.com>
 	    Andrew Pinski  <pinskia@gmail.com>
 
-	PR target/40959	
+	PR target/40959
 	* config.host (ia64*-*-freebsd*): Set extra_parts.  Set tmake_file.
 
 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
index 383a661..d0a1d15 100644
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
@@ -323,7 +323,7 @@
 	    _ctzsi2 _ctzdi2 _popcount_tab _popcountsi2 _popcountdi2	   \
 	    _paritysi2 _paritydi2 _powisf2 _powidf2 _powixf2 _powitf2	   \
 	    _mulsc3 _muldc3 _mulxc3 _multc3 _divsc3 _divdc3 _divxc3	   \
-	    _divtc3 _bswapsi2 _bswapdi2
+	    _divtc3 _bswapsi2 _bswapdi2 _clrsbsi2 _clrsbdi2
 
 # The floating-point conversion routines that involve a single-word integer.
 # XX stands for the integer mode.
diff --git a/libgcc/enable-execute-stack-empty.c b/libgcc/enable-execute-stack-empty.c
index 81786de..e2cc02b 100644
--- a/libgcc/enable-execute-stack-empty.c
+++ b/libgcc/enable-execute-stack-empty.c
@@ -1,6 +1,9 @@
 /* Dummy implementation of __enable_execute_stack.  */
 
+extern void __enable_execute_stack (void *);
+
 /* Attempt to turn on execute permission for the stack.  */
+
 void
 __enable_execute_stack (void *addr __attribute__((__unused__)))
 {
diff --git a/libgcc/libgcc-std.ver.in b/libgcc/libgcc-std.ver.in
index e468ec5..5552a6f 100644
--- a/libgcc/libgcc-std.ver.in
+++ b/libgcc/libgcc-std.ver.in
@@ -1920,3 +1920,10 @@
   __morestack_initial_sp
   __splitstack_find
 }
+
+%inherit GCC_4.7.0 GCC_4.6.0
+GCC_4.7.0 {
+  __PFX__clrsbsi2
+  __PFX__clrsbdi2
+  __PFX__clrsbti2
+}
diff --git a/libgcc/shared-object.mk b/libgcc/shared-object.mk
index 65171b6..d9ee922 100644
--- a/libgcc/shared-object.mk
+++ b/libgcc/shared-object.mk
@@ -6,13 +6,15 @@
 
 base := $(basename $(notdir $o))
 
+c_flags-$o := $(c_flags)
+
 ifeq ($(suffix $o),.c)
 
 $(base)$(objext): $o
-	$(gcc_compile) $(c_flags) -c $< $(vis_hide)
+	$(gcc_compile) $(c_flags-$<) -c $< $(vis_hide)
 
 $(base)_s$(objext): $o
-	$(gcc_s_compile) $(c_flags) -c $<
+	$(gcc_s_compile) $(c_flags-$<) -c $<
 
 else
 
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index 7d3fe22..1d93273 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,3 +1,17 @@
+2011-06-22  Jakub Jelinek  <jakub@redhat.com>
+
+	PR libgomp/49490
+	* iter.c (gomp_iter_static_next): For chunk size 0
+	only use n ceil/ nthreads size for the first
+	n % nthreads threads in the team instead of
+	all threads except for the last few ones which
+	get less work or none at all.
+	* iter_ull.c (gomp_iter_ull_static_next): Likewise.
+	* env.c (parse_schedule): If OMP_SCHEDULE doesn't have
+	chunk argument, set run_sched_modifier to 0 for static
+	resp. 1 for other kinds.  If chunk argument is 0
+	and not static, set value to 1.
+
 2011-05-19  Jakub Jelinek  <jakub@redhat.com>
 
 	PR c++/49043
diff --git a/libgomp/env.c b/libgomp/env.c
index 92fa8c3..0ca9a1c 100644
--- a/libgomp/env.c
+++ b/libgomp/env.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
    Contributed by Richard Henderson <rth@redhat.com>.
 
@@ -108,7 +108,11 @@
   while (isspace ((unsigned char) *env))
     ++env;
   if (*env == '\0')
-    return;
+    {
+      gomp_global_icv.run_sched_modifier
+	= gomp_global_icv.run_sched_var != GFS_STATIC;
+      return;
+    }
   if (*env++ != ',')
     goto unknown;
   while (isspace ((unsigned char) *env))
@@ -129,6 +133,8 @@
   if ((int)value != value)
     goto invalid;
 
+  if (value == 0 && gomp_global_icv.run_sched_var != GFS_STATIC)
+    value = 1;
   gomp_global_icv.run_sched_modifier = value;
   return;
 
diff --git a/libgomp/iter.c b/libgomp/iter.c
index 9ec4dbd..cd9484a 100644
--- a/libgomp/iter.c
+++ b/libgomp/iter.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2008, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2005, 2008, 2009, 2011 Free Software Foundation, Inc.
    Contributed by Richard Henderson <rth@redhat.com>.
 
    This file is part of the GNU OpenMP Library (libgomp).
@@ -59,7 +59,7 @@
      trip through the outer loop.  */
   if (ws->chunk_size == 0)
     {
-      unsigned long n, q, i;
+      unsigned long n, q, i, t;
       unsigned long s0, e0;
       long s, e;
 
@@ -74,11 +74,14 @@
       /* Compute the "zero-based" start and end points.  That is, as
          if the loop began at zero and incremented by one.  */
       q = n / nthreads;
-      q += (q * nthreads != n);
-      s0 = q * i;
+      t = n % nthreads;
+      if (i < t)
+	{
+	  t = 0;
+	  q++;
+	}
+      s0 = q * i + t;
       e0 = s0 + q;
-      if (e0 > n)
-        e0 = n;
 
       /* Notice when no iterations allocated for this thread.  */
       if (s0 >= e0)
diff --git a/libgomp/iter_ull.c b/libgomp/iter_ull.c
index 1754e63..a393920 100644
--- a/libgomp/iter_ull.c
+++ b/libgomp/iter_ull.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2008, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2005, 2008, 2009, 2011 Free Software Foundation, Inc.
    Contributed by Richard Henderson <rth@redhat.com>.
 
    This file is part of the GNU OpenMP Library (libgomp).
@@ -60,7 +60,7 @@
      trip through the outer loop.  */
   if (ws->chunk_size_ull == 0)
     {
-      gomp_ull n, q, i, s0, e0, s, e;
+      gomp_ull n, q, i, t, s0, e0, s, e;
 
       if (thr->ts.static_trip > 0)
 	return 1;
@@ -75,11 +75,14 @@
       /* Compute the "zero-based" start and end points.  That is, as
 	 if the loop began at zero and incremented by one.  */
       q = n / nthreads;
-      q += (q * nthreads != n);
-      s0 = q * i;
+      t = n % nthreads;
+      if (i < t)
+	{
+	  t = 0;
+	  q++;
+	}
+      s0 = q * i + t;
       e0 = s0 + q;
-      if (e0 > n)
-	e0 = n;
 
       /* Notice when no iterations allocated for this thread.  */
       if (s0 >= e0)
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index c800bf3..dfaa803 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	PR libgcj/49314
+	* gnu/gcj/convert/natIconv.cc (iconv_init): Pad in[] with NUL byte.
+
 2011-06-17  Jack Howarth <howarth@bromo.med.uc.edu>
 
 	PR target/49461
diff --git a/libjava/gnu/gcj/convert/natIconv.cc b/libjava/gnu/gcj/convert/natIconv.cc
index ad75a50..8042ba8 100644
--- a/libjava/gnu/gcj/convert/natIconv.cc
+++ b/libjava/gnu/gcj/convert/natIconv.cc
@@ -1,6 +1,6 @@
 // natIconv.cc -- Java side of iconv() reader.
 
-/* Copyright (C) 2000, 2001, 2003, 2006  Free Software Foundation
+/* Copyright (C) 2000, 2001, 2003, 2006, 2011  Free Software Foundation
 
    This file is part of libgcj.
 
@@ -264,17 +264,19 @@
   if (handle != (iconv_t) -1)
     {
       jchar c;
-      unsigned char in[3];
+      unsigned char in[4];
       char *inp, *outp;
       size_t inc, outc, r;
 
-      // This is the UTF-8 encoding of \ufeff.
+      // This is the UTF-8 encoding of \ufeff.  At least Tru64 UNIX libiconv
+      // needs the trailing NUL byte, otherwise iconv fails with EINVAL.
       in[0] = 0xef;
       in[1] = 0xbb;
       in[2] = 0xbf;
+      in[3] = 0x00;
 
       inp = (char *) in;
-      inc = 3;
+      inc = 4;
       outp = (char *) &c;
       outc = 2;
 
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 42f9514..d16aa1e 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,58 @@
+2011-06-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+	* testsuite/tr1/6_containers/tuple/creation_functions/tie2.cc: Fix for
+	C++0x mode.
+	* testsuite/25_algorithms/sort/35588.cc: Likewise.
+	* testsuite/26_numerics/headers/complex/synopsis.cc: Likewise.
+
+2011-06-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+	* testsuite/20_util/bind/socket.cc: Use variable and remove attribute.
+
+2011-06-22  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	* include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp: Avoid -Wall
+	warning.
+
+2011-06-22  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	* testsuite/20_util/reference_wrapper/invoke.cc: Avoid -Wall warnings.
+	* testsuite/20_util/reference_wrapper/typedefs-3.cc: Likewise.
+	* testsuite/20_util/reference_wrapper/invoke-2.cc: Likewise.
+	* testsuite/20_util/allocator_traits/members/allocate_hint.cc:
+	Likewise.
+	* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
+	* testsuite/20_util/bind/socket.cc: Likewise.
+	* testsuite/20_util/pointer_traits/pointer_to.cc: Likewise.
+	* testsuite/util/testsuite_random.h: Likewise.
+
+2011-06-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+	* include/Makefile.am: Add alloc_traits.h headers.
+	* include/Makefile.in: Regenerate.
+	* include/std/memory: Include uses_allocator.h explicitly.
+	* include/bits/allocator.h (allocator_traits): Move to ...
+	* include/bits/alloc_traits.h: New header.
+	* include/ext/alloc_traits.h (__alloc_traits): Extension to provide
+	a common allocator interface for C++98 and C++0x.
+	* include/bits/stl_construct.h: Use __alloc_traits.
+	* include/bits/stl_uninitialized.h: Likewise.
+
+2011-06-22  Daniel Krugler  <daniel.kruegler@googlemail.com>
+	    Paolo Carlini  <paolo.carlini@oracle.com>
+
+	* include/bits/move.h (__is_nothrow_swappable): Add.
+	(swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Use noexcept.
+	* include/bits/algorithmfwd.h: Adjust.
+	* testsuite/25_algorithms/swap/noexcept.cc: New.
+
+2011-06-21  Jakub Jelinek  <jakub@redhat.com>
+
+	* testsuite/Makefile.am (check_DEJAGNU_normal_targets): Add
+	check-DEJAGNUnormal[4-9].
+	(check-DEJAGNU): Split into 10 jobs for parallel testing instead of 4.
+	* testsuite/Makefile.in: Regenerated.
+
 2011-06-20  Daniel Krugler  <daniel.kruegler@googlemail.com>
 	    Paolo Carlini  <paolo.carlini@oracle.com>
 
diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am
index 6a21c16..b6a0116 100644
--- a/libstdc++-v3/include/Makefile.am
+++ b/libstdc++-v3/include/Makefile.am
@@ -79,6 +79,7 @@
 bits_builddir = ./bits
 bits_headers = \
         ${bits_srcdir}/algorithmfwd.h \
+	${bits_srcdir}/alloc_traits.h \
 	${bits_srcdir}/allocator.h \
 	${bits_srcdir}/atomic_base.h \
 	${bits_srcdir}/atomic_0.h \
@@ -493,6 +494,7 @@
 ext_builddir = ./ext
 ext_headers = \
 	${ext_srcdir}/algorithm \
+	${ext_srcdir}/alloc_traits.h \
 	${ext_srcdir}/atomicity.h \
 	${ext_srcdir}/array_allocator.h \
 	${ext_srcdir}/bitmap_allocator.h \
diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in
index 5b05ef3..7fdf182 100644
--- a/libstdc++-v3/include/Makefile.in
+++ b/libstdc++-v3/include/Makefile.in
@@ -330,6 +330,7 @@
 bits_builddir = ./bits
 bits_headers = \
         ${bits_srcdir}/algorithmfwd.h \
+	${bits_srcdir}/alloc_traits.h \
 	${bits_srcdir}/allocator.h \
 	${bits_srcdir}/atomic_base.h \
 	${bits_srcdir}/atomic_0.h \
@@ -742,6 +743,7 @@
 ext_builddir = ./ext
 ext_headers = \
 	${ext_srcdir}/algorithm \
+	${ext_srcdir}/alloc_traits.h \
 	${ext_srcdir}/atomicity.h \
 	${ext_srcdir}/array_allocator.h \
 	${ext_srcdir}/bitmap_allocator.h \
diff --git a/libstdc++-v3/include/bits/algorithmfwd.h b/libstdc++-v3/include/bits/algorithmfwd.h
index bb7ca25..7bb9880 100644
--- a/libstdc++-v3/include/bits/algorithmfwd.h
+++ b/libstdc++-v3/include/bits/algorithmfwd.h
@@ -558,7 +558,11 @@
 
   template<typename _Tp, size_t _Nm>
     void
-    swap(_Tp (&)[_Nm], _Tp (&)[_Nm]);
+    swap(_Tp (&)[_Nm], _Tp (&)[_Nm])
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+    noexcept(__is_nothrow_swappable<_Tp>::value)
+#endif
+    ;
 
   template<typename _FIter1, typename _FIter2>
     _FIter2 
diff --git a/libstdc++-v3/include/bits/alloc_traits.h b/libstdc++-v3/include/bits/alloc_traits.h
new file mode 100644
index 0000000..9d2a472
--- /dev/null
+++ b/libstdc++-v3/include/bits/alloc_traits.h
@@ -0,0 +1,499 @@
+// Allocator traits -*- C++ -*-
+
+// Copyright (C) 2011 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.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+// <http://www.gnu.org/licenses/>.
+
+#ifndef _ALLOC_TRAITS_H
+#define _ALLOC_TRAITS_H 1
+
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+
+#include <bits/ptr_traits.h>
+#include <ext/numeric_traits.h>
+
+namespace std _GLIBCXX_VISIBILITY(default)
+{
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
+
+  template<typename _Alloc, typename _Tp>
+    class __alloctr_rebind_helper
+    {
+      template<typename _Alloc2, typename _Tp2>
+	static constexpr bool
+       	_S_chk(typename _Alloc2::template rebind<_Tp2>::other*)
+	{ return true; }
+
+      template<typename, typename>
+        static constexpr bool
+       	_S_chk(...)
+       	{ return false; }
+
+    public:
+      static const bool __value = _S_chk<_Alloc, _Tp>(nullptr);
+    };
+
+  template<typename _Alloc, typename _Tp,
+           bool = __alloctr_rebind_helper<_Alloc, _Tp>::__value>
+    struct __alloctr_rebind;
+
+  template<typename _Alloc, typename _Tp>
+    struct __alloctr_rebind<_Alloc, _Tp, true>
+    {
+      typedef typename _Alloc::template rebind<_Tp>::other __type;
+    };
+
+  template<template<typename, typename...> class _Alloc, typename _Tp,
+            typename _Up, typename... _Args>
+    struct __alloctr_rebind<_Alloc<_Up, _Args...>, _Tp, false>
+    {
+      typedef _Alloc<_Tp, _Args...> __type;
+    };
+
+  /**
+   * @brief  Uniform interface to all allocator types.
+   * @ingroup allocators
+  */
+  template<typename _Alloc>
+    struct allocator_traits
+    {
+      /// The allocator type
+      typedef _Alloc allocator_type;
+      /// The allocated type
+      typedef typename _Alloc::value_type value_type;
+
+#define _GLIBCXX_ALLOC_TR_NESTED_TYPE(_NTYPE, _ALT) \
+  private: \
+  template<typename _Tp> \
+    static typename _Tp::_NTYPE _S_##_NTYPE##_helper(_Tp*); \
+  static _ALT _S_##_NTYPE##_helper(...); \
+    typedef decltype(_S_##_NTYPE##_helper((_Alloc*)0)) __##_NTYPE; \
+  public:
+
+_GLIBCXX_ALLOC_TR_NESTED_TYPE(pointer, value_type*)
+
+      /**
+       * @brief   The allocator's pointer type.
+       *
+       * @c Alloc::pointer if that type exists, otherwise @c value_type*
+      */
+      typedef __pointer pointer;
+
+// TODO: Use pointer_traits::rebind alias template.
+
+_GLIBCXX_ALLOC_TR_NESTED_TYPE(const_pointer,
+  typename pointer_traits<pointer>::template __rebind<const value_type>::__type)
+
+      /**
+       * @brief   The allocator's const pointer type.
+       *
+       * @c Alloc::const_pointer if that type exists, otherwise
+       * <tt> pointer_traits<pointer>::rebind<const value_type> </tt>
+      */
+      typedef __const_pointer const_pointer;
+
+_GLIBCXX_ALLOC_TR_NESTED_TYPE(void_pointer,
+  typename pointer_traits<pointer>::template __rebind<void>::__type)
+
+      /**
+       * @brief   The allocator's void pointer type.
+       *
+       * @c Alloc::void_pointer if that type exists, otherwise
+       * <tt> pointer_traits<pointer>::rebind<void> </tt>
+      */
+      typedef __void_pointer void_pointer;
+
+_GLIBCXX_ALLOC_TR_NESTED_TYPE(const_void_pointer,
+  typename pointer_traits<pointer>::template __rebind<const void>::__type)
+
+      /**
+       * @brief   The allocator's const void pointer type.
+       *
+       * @c Alloc::const_void_pointer if that type exists, otherwise
+       * <tt> pointer_traits<pointer>::rebind<const void> </tt>
+      */
+      typedef __const_void_pointer const_void_pointer;
+
+_GLIBCXX_ALLOC_TR_NESTED_TYPE(difference_type,
+                              typename pointer_traits<pointer>::difference_type)
+
+      /**
+       * @brief   The allocator's difference type
+       *
+       * @c Alloc::difference_type if that type exists, otherwise
+       * <tt> pointer_traits<pointer>::difference_type </tt>
+      */
+      typedef __difference_type difference_type;
+
+_GLIBCXX_ALLOC_TR_NESTED_TYPE(size_type,
+                              typename make_unsigned<difference_type>::type)
+
+      /**
+       * @brief   The allocator's size type
+       *
+       * @c Alloc::size_type if that type exists, otherwise
+       * <tt> make_unsigned<difference_type>::type </tt>
+      */
+      typedef __size_type size_type;
+
+_GLIBCXX_ALLOC_TR_NESTED_TYPE(propagate_on_container_copy_assignment,
+                              false_type)
+
+      /**
+       * @brief   How the allocator is propagated on copy assignment
+       *
+       * @c Alloc::propagate_on_container_copy_assignment if that type exists,
+       * otherwise @c false_type
+      */
+      typedef __propagate_on_container_copy_assignment
+       	propagate_on_container_copy_assignment;
+
+_GLIBCXX_ALLOC_TR_NESTED_TYPE(propagate_on_container_move_assignment,
+                              false_type)
+
+      /**
+       * @brief   How the allocator is propagated on move assignment
+       *
+       * @c Alloc::propagate_on_container_move_assignment if that type exists,
+       * otherwise @c false_type
+      */
+      typedef __propagate_on_container_move_assignment
+       	propagate_on_container_move_assignment;
+
+_GLIBCXX_ALLOC_TR_NESTED_TYPE(propagate_on_container_swap,
+                              false_type)
+
+      /**
+       * @brief   How the allocator is propagated on swap
+       *
+       * @c Alloc::propagate_on_container_swap if that type exists,
+       * otherwise @c false_type
+      */
+      typedef __propagate_on_container_swap propagate_on_container_swap;
+
+#undef _GLIBCXX_ALLOC_TR_NESTED_TYPE
+
+      /* TODO: use template alias 
+      template<typename _Tp>
+        using rebind_alloc = __alloctr_rebind<_Alloc, _Tp>::__type;
+      template<typename _Tp>
+        using rebind_traits = allocator_traits<rebind_alloc<_Tp>>;
+      */
+      template<typename _Tp>
+        struct __rebind_alloc
+	{
+  	  typedef typename __alloctr_rebind<_Alloc, _Tp>::__type __type;
+       	};
+
+      template<typename _Tp>
+        struct __rebind_traits
+	{
+	  typedef allocator_traits<typename __rebind_alloc<_Tp>::__type> __type;
+	};
+
+    private:
+      template<typename _Alloc2>
+	struct __allocate_helper
+	{
+	  template<typename _Alloc3,
+	    typename = decltype(std::declval<_Alloc3*>()->allocate(
+		  std::declval<size_type>(),
+		  std::declval<const_void_pointer>()))>
+	    static true_type __test(int);
+
+	  template<typename>
+	    static false_type __test(...);
+
+	  typedef decltype(__test<_Alloc>(0)) type;
+	  static const bool value = type::value;
+	};
+
+      template<typename _Alloc2>
+	static typename
+       	enable_if<__allocate_helper<_Alloc2>::value, pointer>::type
+       	_S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint)
+	{ return __a.allocate(__n, __hint); }
+
+      template<typename _Alloc2>
+	static typename
+       	enable_if<!__allocate_helper<_Alloc2>::value, pointer>::type
+       	_S_allocate(_Alloc2& __a, size_type __n, ...)
+	{ return __a.allocate(__n); }
+
+      template<typename _Tp, typename... _Args>
+	struct __construct_helper
+	{
+	  template<typename _Alloc2,
+	    typename = decltype(std::declval<_Alloc2*>()->construct(
+		  std::declval<_Tp*>(), std::declval<_Args>()...))>
+	    static true_type __test(int);
+
+	  template<typename>
+	    static false_type __test(...);
+
+	  typedef decltype(__test<_Alloc>(0)) type;
+	  static const bool value = type::value;
+	};
+
+      template<typename _Tp, typename... _Args>
+	static typename
+       	enable_if<__construct_helper<_Tp, _Args...>::value, void>::type
+       	_S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args)
+	{ __a.construct(__p, std::forward<_Args>(__args)...); }
+
+      template<typename _Tp, typename... _Args>
+	static typename
+       	enable_if<!__construct_helper<_Tp, _Args...>::value, void>::type
+       	_S_construct(_Alloc&, _Tp* __p, _Args&&... __args)
+	{ ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); }
+
+      template<typename _Tp>
+	struct __destroy_helper
+	{
+	  template<typename _Alloc2,
+	    typename = decltype(std::declval<_Alloc2*>()->destroy(
+		  std::declval<_Tp*>()))>
+	    static true_type __test(int);
+
+	  template<typename>
+	    static false_type __test(...);
+
+	  typedef decltype(__test<_Alloc>(0)) type;
+	  static const bool value = type::value;
+	};
+
+      template<typename _Tp>
+	static typename enable_if<__destroy_helper<_Tp>::value, void>::type
+       	_S_destroy(_Alloc& __a, _Tp* __p)
+	{ __a.destroy(__p); }
+
+      template<typename _Tp>
+	static typename enable_if<!__destroy_helper<_Tp>::value, void>::type
+       	_S_destroy(_Alloc&, _Tp* __p)
+	{ __p->~_Tp(); }
+
+      template<typename _Alloc2>
+	struct __maxsize_helper
+	{
+	  template<typename _Alloc3,
+	    typename = decltype(std::declval<_Alloc3*>()->max_size())>
+	    static true_type __test(int);
+
+	  template<typename>
+	    static false_type __test(...);
+
+	  typedef decltype(__test<_Alloc2>(0)) type;
+	  static const bool value = type::value;
+	};
+
+      template<typename _Alloc2>
+	static typename
+       	enable_if<__maxsize_helper<_Alloc2>::value, size_type>::type
+       	_S_max_size(_Alloc2& __a)
+	{ return __a.max_size(); }
+
+      template<typename _Alloc2>
+	static typename
+       	enable_if<!__maxsize_helper<_Alloc2>::value, size_type>::type
+	_S_max_size(_Alloc2&)
+	{ return __gnu_cxx::__numeric_traits<size_type>::__max; }
+
+      template<typename _Alloc2>
+	struct __select_helper
+	{
+	  template<typename _Alloc3, typename
+	    = decltype(std::declval<_Alloc3*>()
+		->select_on_container_copy_construction())>
+	    static true_type __test(int);
+
+	  template<typename>
+	    static false_type __test(...);
+
+	  typedef decltype(__test<_Alloc2>(0)) type;
+	  static const bool value = type::value;
+	};
+      template<typename _Alloc2>
+	static typename
+       	enable_if<__select_helper<_Alloc2>::value, _Alloc2>::type
+       	_S_select(_Alloc2& __a)
+	{ return __a.select_on_container_copy_construction(); }
+
+      template<typename _Alloc2>
+	static typename
+       	enable_if<!__select_helper<_Alloc2>::value, _Alloc2>::type
+       	_S_select(_Alloc2& __a)
+	{ return __a; }
+
+    public:
+
+      /**
+       *  @brief  Allocate memory.
+       *  @param  a  An allocator.
+       *  @param  n  The number of objects to allocate space for.
+       *
+       *  Calls @c a.allocate(n)
+      */
+      static pointer
+      allocate(_Alloc& __a, size_type __n)
+      { return __a.allocate(__n); }
+
+      /**
+       *  @brief  Allocate memory.
+       *  @param  a  An allocator.
+       *  @param  n  The number of objects to allocate space for.
+       *  @param  hint Aid to locality.
+       *  @return Memory of suitable size and alignment for @a n objects
+       *          of type @c value_type
+       *
+       *  Returns <tt> a.allocate(n, hint) </tt> if that expression is
+       *  well-formed, otherwise returns @c a.allocate(n)
+      */
+      static pointer
+      allocate(_Alloc& __a, size_type __n, const_void_pointer __hint)
+      { return _S_allocate(__a, __n, __hint); }
+
+      /**
+       *  @brief  Deallocate memory.
+       *  @param  a  An allocator.
+       *  @param  p  Pointer to the memory to deallocate.
+       *  @param  n  The number of objects space was allocated for.
+       *
+       *  Calls <tt> a.deallocate(p, n) </tt>
+      */
+      static void deallocate(_Alloc& __a, pointer __p, size_type __n)
+      { __a.deallocate(__p, __n); }
+
+      /**
+       *  @brief  Construct an object of type @a Tp
+       *  @param  a  An allocator.
+       *  @param  p  Pointer to memory of suitable size and alignment for Tp
+       *  @param  args Constructor arguments.
+       *
+       *  Calls <tt> a.construct(p, std::forward<Args>(args)...) </tt>
+       *  if that expression is well-formed, otherwise uses placement-new
+       *  to construct an object of type @a Tp at location @a p from the
+       *  arguments @a args...
+      */
+      template<typename _Tp, typename... _Args>
+	static void construct(_Alloc& __a, _Tp* __p, _Args&&... __args)
+	{ _S_construct(__a, __p, std::forward<_Args>(__args)...); }
+
+      /**
+       *  @brief  Destroy an object of type @a Tp
+       *  @param  a  An allocator.
+       *  @param  p  Pointer to the object to destroy
+       *
+       *  Calls @c a.destroy(p) if that expression is well-formed,
+       *  otherwise calls @c p->~Tp()
+      */
+      template <class _Tp>
+	static void destroy(_Alloc& __a, _Tp* __p)
+	{ _S_destroy(__a, __p); }
+
+      /**
+       *  @brief  The maximum supported allocation size
+       *  @param  a  An allocator.
+       *  @return @c a.max_size() or @c numeric_limits<size_type>::max()
+       *
+       *  Returns @c a.max_size() if that expression is well-formed,
+       *  otherwise returns @c numeric_limits<size_type>::max()
+      */
+      static size_type max_size(const _Alloc& __a)
+      { return _S_max_size(__a); }
+
+      /**
+       *  @brief  Obtain an allocator to use when copying a container.
+       *  @param  rhs  An allocator.
+       *  @return @c rhs.select_on_container_copy_construction() or @a rhs
+       *
+       *  Returns @c rhs.select_on_container_copy_construction() if that
+       *  expression is well-formed, otherwise returns @a rhs
+      */
+      static _Alloc
+      select_on_container_copy_construction(const _Alloc& __rhs)
+      { return _S_select(__rhs); }
+    };
+
+  template<typename _Alloc>
+    inline void
+    __do_alloc_on_copy(_Alloc& __one, const _Alloc& __two, true_type)
+    { __one = __two; }
+
+  template<typename _Alloc>
+    inline void
+    __do_alloc_on_copy(_Alloc&, const _Alloc&, false_type)
+    { }
+
+  template<typename _Alloc>
+    inline void __alloc_on_copy(_Alloc& __one, const _Alloc& __two)
+    {
+      typedef allocator_traits<_Alloc> __traits;
+      typedef typename __traits::propagate_on_container_copy_assignment __pocca;
+      __do_alloc_on_copy(__one, __two, __pocca());
+    }
+
+  template<typename _Alloc>
+    inline _Alloc __alloc_on_copy(const _Alloc& __a)
+    {
+      typedef allocator_traits<_Alloc> __traits;
+      return __traits::select_on_container_copy_construction(__a);
+    }
+
+  template<typename _Alloc>
+    inline void __do_alloc_on_move(_Alloc& __one, _Alloc& __two, true_type)
+    { __one = std::move(__two); }
+
+  template<typename _Alloc>
+    inline void __do_alloc_on_move(_Alloc&, _Alloc&, false_type)
+    { }
+
+  template<typename _Alloc>
+    inline void __alloc_on_move(_Alloc& __one, _Alloc& __two)
+    {
+      typedef allocator_traits<_Alloc> __traits;
+      typedef typename __traits::propagate_on_container_move_assignment __pocma;
+      __do_alloc_on_move(__one, __two, __pocma());
+    }
+
+  template<typename _Alloc>
+    inline void __do_alloc_on_swap(_Alloc& __one, _Alloc& __two, true_type)
+    {
+      using std::swap;
+      swap(__one, __two);
+    }
+
+  template<typename _Alloc>
+    inline void __do_alloc_on_swap(_Alloc&, _Alloc&, false_type)
+    { }
+
+  template<typename _Alloc>
+    inline void __alloc_on_swap(_Alloc& __one, _Alloc& __two)
+    {
+      typedef allocator_traits<_Alloc> __traits;
+      typedef typename __traits::propagate_on_container_swap __pocs;
+      __do_alloc_on_swap(__one, __two, __pocs());
+    }
+
+_GLIBCXX_END_NAMESPACE_VERSION
+} // namespace std
+
+#endif
+#endif
diff --git a/libstdc++-v3/include/bits/allocator.h b/libstdc++-v3/include/bits/allocator.h
index 6801950..76329b3 100644
--- a/libstdc++-v3/include/bits/allocator.h
+++ b/libstdc++-v3/include/bits/allocator.h
@@ -47,12 +47,6 @@
 // Define the base class to std::allocator.
 #include <bits/c++allocator.h>
 
-#ifdef __GXX_EXPERIMENTAL_CXX0X__
-#include <bits/ptr_traits.h>
-#include <bits/uses_allocator.h>
-#include <ext/numeric_traits.h>
-#endif
-
 namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -62,6 +56,8 @@
    * @ingroup memory
    *
    * Classes encapsulating memory operations.
+   *
+   * @{
    */
 
   template<typename _Tp>
@@ -85,7 +81,6 @@
 
   /**
    * @brief  The @a standard allocator, as per [20.4].
-   * @ingroup allocators
    *
    *  See http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt04ch11.html
    *  for further details.
@@ -139,6 +134,10 @@
     operator!=(const allocator<_Tp>&, const allocator<_Tp>&)
     { return false; }
 
+  /**
+   * @}
+   */
+
   // Inhibit implicit instantiations for required instantiations,
   // which are defined via explicit instantiations elsewhere.
 #if _GLIBCXX_EXTERN_TEMPLATE
@@ -207,404 +206,9 @@
       }
     };
 
-  template<typename _Alloc, typename _Tp>
-    class __alloctr_rebind_helper
-    {
-      template<typename _Alloc2, typename _Tp2>
-	static constexpr bool
-       	_S_chk(typename _Alloc2::template rebind<_Tp2>::other*)
-	{ return true; }
-
-      template<typename, typename>
-        static constexpr bool
-       	_S_chk(...)
-       	{ return false; }
-
-    public:
-      static const bool __value = _S_chk<_Alloc, _Tp>(nullptr);
-    };
-
-  template<typename _Alloc, typename _Tp,
-           bool = __alloctr_rebind_helper<_Alloc, _Tp>::__value>
-    struct __alloctr_rebind;
-
-  template<typename _Alloc, typename _Tp>
-    struct __alloctr_rebind<_Alloc, _Tp, true>
-    {
-      typedef typename _Alloc::template rebind<_Tp>::other __type;
-    };
-
-  template<template<typename, typename...> class _Alloc, typename _Tp,
-            typename _Up, typename... _Args>
-    struct __alloctr_rebind<_Alloc<_Up, _Args...>, _Tp, false>
-    {
-      typedef _Alloc<_Tp, _Args...> __type;
-    };
-
-  /**
-   * @brief  Uniform interface to all allocator types.
-   * @ingroup allocators
-  */
-  template<typename _Alloc>
-    struct allocator_traits
-    {
-      /// The allocator type
-      typedef _Alloc allocator_type;
-      /// The allocated type
-      typedef typename _Alloc::value_type value_type;
-
-#define _GLIBCXX_ALLOC_TR_NESTED_TYPE(_NTYPE, _ALT) \
-  private: \
-  template<typename _Tp> \
-    static typename _Tp::_NTYPE _S_##_NTYPE##_helper(_Tp*); \
-  static _ALT _S_##_NTYPE##_helper(...); \
-    typedef decltype(_S_##_NTYPE##_helper((_Alloc*)0)) __##_NTYPE; \
-  public:
-
-_GLIBCXX_ALLOC_TR_NESTED_TYPE(pointer, value_type*)
-
-      /**
-       * @brief   The allocator's pointer type.
-       *
-       * @c Alloc::pointer if that type exists, otherwise @c value_type*
-      */
-      typedef __pointer pointer;
-
-// TODO: Use pointer_traits::rebind alias template.
-
-_GLIBCXX_ALLOC_TR_NESTED_TYPE(const_pointer,
-  typename pointer_traits<pointer>::template __rebind<const value_type>::__type)
-
-      /**
-       * @brief   The allocator's const pointer type.
-       *
-       * @c Alloc::const_pointer if that type exists, otherwise
-       * <tt> pointer_traits<pointer>::rebind<const value_type> </tt>
-      */
-      typedef __const_pointer const_pointer;
-
-_GLIBCXX_ALLOC_TR_NESTED_TYPE(void_pointer,
-  typename pointer_traits<pointer>::template __rebind<void>::__type)
-
-      /**
-       * @brief   The allocator's void pointer type.
-       *
-       * @c Alloc::void_pointer if that type exists, otherwise
-       * <tt> pointer_traits<pointer>::rebind<void> </tt>
-      */
-      typedef __void_pointer void_pointer;
-
-_GLIBCXX_ALLOC_TR_NESTED_TYPE(const_void_pointer,
-  typename pointer_traits<pointer>::template __rebind<const void>::__type)
-
-      /**
-       * @brief   The allocator's const void pointer type.
-       *
-       * @c Alloc::const_void_pointer if that type exists, otherwise
-       * <tt> pointer_traits<pointer>::rebind<const void> </tt>
-      */
-      typedef __const_void_pointer const_void_pointer;
-
-_GLIBCXX_ALLOC_TR_NESTED_TYPE(difference_type,
-                              typename pointer_traits<pointer>::difference_type)
-
-      /**
-       * @brief   The allocator's difference type
-       *
-       * @c Alloc::difference_type if that type exists, otherwise
-       * <tt> pointer_traits<pointer>::difference_type </tt>
-      */
-      typedef __difference_type difference_type;
-
-_GLIBCXX_ALLOC_TR_NESTED_TYPE(size_type,
-                              typename make_unsigned<difference_type>::type)
-
-      /**
-       * @brief   The allocator's size type
-       *
-       * @c Alloc::size_type if that type exists, otherwise
-       * <tt> make_unsigned<difference_type>::type </tt>
-      */
-      typedef __size_type size_type;
-
-_GLIBCXX_ALLOC_TR_NESTED_TYPE(propagate_on_container_copy_assignment,
-                              false_type)
-
-      /**
-       * @brief   How the allocator is propagated on copy assignment
-       *
-       * @c Alloc::propagate_on_container_copy_assignment if that type exists,
-       * otherwise @c false_type
-      */
-      typedef __propagate_on_container_copy_assignment
-       	propagate_on_container_copy_assignment;
-
-_GLIBCXX_ALLOC_TR_NESTED_TYPE(propagate_on_container_move_assignment,
-                              false_type)
-
-      /**
-       * @brief   How the allocator is propagated on move assignment
-       *
-       * @c Alloc::propagate_on_container_move_assignment if that type exists,
-       * otherwise @c false_type
-      */
-      typedef __propagate_on_container_move_assignment
-       	propagate_on_container_move_assignment;
-
-_GLIBCXX_ALLOC_TR_NESTED_TYPE(propagate_on_container_swap,
-                              false_type)
-
-      /**
-       * @brief   How the allocator is propagated on swap
-       *
-       * @c Alloc::propagate_on_container_swap if that type exists,
-       * otherwise @c false_type
-      */
-      typedef __propagate_on_container_swap propagate_on_container_swap;
-
-#undef _GLIBCXX_ALLOC_TR_NESTED_TYPE
-
-      /* TODO: use template alias 
-      template<typename _Tp>
-        using rebind_alloc = __alloctr_rebind<_Alloc, _Tp>::__type;
-      template<typename _Tp>
-        using rebind_traits = allocator_traits<rebind_alloc<_Tp>>;
-      */
-      template<typename _Tp>
-        struct __rebind_alloc
-	{
-  	  typedef typename __alloctr_rebind<_Alloc, _Tp>::__type __type;
-       	};
-
-      template<typename _Tp>
-        struct __rebind_traits
-	{
-	  typedef allocator_traits<typename __rebind_alloc<_Tp>::__type> __type;
-	};
-
-    private:
-      template<typename _Alloc2>
-	struct __allocate_helper
-	{
-	  template<typename _Alloc3,
-	    typename = decltype(std::declval<_Alloc3*>()->allocate(
-		  std::declval<size_type>(),
-		  std::declval<const_void_pointer>()))>
-	    static true_type __test(int);
-
-	  template<typename>
-	    static false_type __test(...);
-
-	  typedef decltype(__test<_Alloc>(0)) type;
-	  static const bool value = type::value;
-	};
-
-      template<typename _Alloc2>
-	static typename
-       	enable_if<__allocate_helper<_Alloc2>::value, pointer>::type
-       	_S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint)
-	{ return __a.allocate(__n, __hint); }
-
-      template<typename _Alloc2>
-	static typename
-       	enable_if<!__allocate_helper<_Alloc2>::value, pointer>::type
-       	_S_allocate(_Alloc2& __a, size_type __n, ...)
-	{ return __a.allocate(__n); }
-
-      template<typename _Tp, typename... _Args>
-	struct __construct_helper
-	{
-	  template<typename _Alloc2,
-	    typename = decltype(std::declval<_Alloc2*>()->construct(
-		  std::declval<_Tp*>(), std::declval<_Args>()...))>
-	    static true_type __test(int);
-
-	  template<typename>
-	    static false_type __test(...);
-
-	  typedef decltype(__test<_Alloc>(0)) type;
-	  static const bool value = type::value;
-	};
-
-      template<typename _Tp, typename... _Args>
-	static typename
-       	enable_if<__construct_helper<_Tp, _Args...>::value, void>::type
-       	_S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args)
-	{ __a.construct(__p, std::forward<_Args>(__args)...); }
-
-      template<typename _Tp, typename... _Args>
-	static typename
-       	enable_if<!__construct_helper<_Tp, _Args...>::value, void>::type
-       	_S_construct(_Alloc&, _Tp* __p, _Args&&... __args)
-	{ ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); }
-
-      template<typename _Tp>
-	struct __destroy_helper
-	{
-	  template<typename _Alloc2,
-	    typename = decltype(std::declval<_Alloc2*>()->destroy(
-		  std::declval<_Tp*>()))>
-	    static true_type __test(int);
-
-	  template<typename>
-	    static false_type __test(...);
-
-	  typedef decltype(__test<_Alloc>(0)) type;
-	  static const bool value = type::value;
-	};
-
-      template<typename _Tp>
-	static typename enable_if<__destroy_helper<_Tp>::value, void>::type
-       	_S_destroy(_Alloc& __a, _Tp* __p)
-	{ __a.destroy(__p); }
-
-      template<typename _Tp>
-	static typename enable_if<!__destroy_helper<_Tp>::value, void>::type
-       	_S_destroy(_Alloc&, _Tp* __p)
-	{ __p->~_Tp(); }
-
-      template<typename _Alloc2>
-	struct __maxsize_helper
-	{
-	  template<typename _Alloc3,
-	    typename = decltype(std::declval<_Alloc3*>()->max_size())>
-	    static true_type __test(int);
-
-	  template<typename>
-	    static false_type __test(...);
-
-	  typedef decltype(__test<_Alloc2>(0)) type;
-	  static const bool value = type::value;
-	};
-
-      template<typename _Alloc2>
-	static typename
-       	enable_if<__maxsize_helper<_Alloc2>::value, size_type>::type
-       	_S_max_size(_Alloc2& __a)
-	{ return __a.max_size(); }
-
-      template<typename _Alloc2>
-	static typename
-       	enable_if<!__maxsize_helper<_Alloc2>::value, size_type>::type
-	_S_max_size(_Alloc2&)
-	{ return __gnu_cxx::__numeric_traits<size_type>::__max; }
-
-      template<typename _Alloc2>
-	struct __select_helper
-	{
-	  template<typename _Alloc3, typename
-	    = decltype(std::declval<_Alloc3*>()
-		->select_on_container_copy_construction())>
-	    static true_type __test(int);
-
-	  template<typename>
-	    static false_type __test(...);
-
-	  typedef decltype(__test<_Alloc2>(0)) type;
-	  static const bool value = type::value;
-	};
-      template<typename _Alloc2>
-	static typename
-       	enable_if<__select_helper<_Alloc2>::value, _Alloc2>::type
-       	_S_select(_Alloc2& __a)
-	{ return __a.select_on_container_copy_construction(); }
-
-      template<typename _Alloc2>
-	static typename
-       	enable_if<!__select_helper<_Alloc2>::value, _Alloc2>::type
-       	_S_select(_Alloc2& __a)
-	{ return __a; }
-
-    public:
-
-      /**
-       *  @brief  Allocate memory.
-       *  @param  a  An allocator.
-       *  @param  n  The number of objects to allocate space for.
-       *
-       *  Calls @c a.allocate(n)
-      */
-      static pointer
-      allocate(_Alloc& __a, size_type __n)
-      { return __a.allocate(__n); }
-
-      /**
-       *  @brief  Allocate memory.
-       *  @param  a  An allocator.
-       *  @param  n  The number of objects to allocate space for.
-       *  @param  hint Aid to locality.
-       *  @return Memory of suitable size and alignment for @a n objects
-       *          of type @c value_type
-       *
-       *  Returns <tt> a.allocate(n, hint) </tt> if that expression is
-       *  well-formed, otherwise returns @c a.allocate(n)
-      */
-      static pointer
-      allocate(_Alloc& __a, size_type __n, const_void_pointer __hint)
-      { return _S_allocate(__a, __n, __hint); }
-
-      /**
-       *  @brief  Deallocate memory.
-       *  @param  a  An allocator.
-       *  @param  p  Pointer to the memory to deallocate.
-       *  @param  n  The number of objects space was allocated for.
-       *
-       *  Calls <tt> a.deallocate(p, n) </tt>
-      */
-      static void deallocate(_Alloc& __a, pointer __p, size_type __n)
-      { __a.deallocate(__p, __n); }
-
-      /**
-       *  @brief  Construct an object of type @a Tp
-       *  @param  a  An allocator.
-       *  @param  p  Pointer to memory of suitable size and alignment for Tp
-       *  @param  args Constructor arguments.
-       *
-       *  Calls <tt> a.construct(p, std::forward<Args>(args)...) </tt>
-       *  if that expression is well-formed, otherwise uses placement-new
-       *  to construct an object of type @a Tp at location @a p from the
-       *  arguments @a args...
-      */
-      template<typename _Tp, typename... _Args>
-	static void construct(_Alloc& __a, _Tp* __p, _Args&&... __args)
-	{ _S_construct(__a, __p, std::forward<_Args>(__args)...); }
-
-      /**
-       *  @brief  Destroy an object of type @a Tp
-       *  @param  a  An allocator.
-       *  @param  p  Pointer to the object to destroy
-       *
-       *  Calls @c a.destroy(p) if that expression is well-formed,
-       *  otherwise calls @c p->~Tp()
-      */
-      template <class _Tp>
-	static void destroy(_Alloc& __a, _Tp* __p)
-	{ _S_destroy(__a, __p); }
-
-      /**
-       *  @brief  The maximum supported allocation size
-       *  @param  a  An allocator.
-       *  @return @c a.max_size() or @c %numeric_limits<size_type>::max()
-       *
-       *  Returns @c a.max_size() if that expression is well-formed,
-       *  otherwise returns @c %numeric_limits<size_type>::max()
-      */
-      static size_type max_size(const _Alloc& __a)
-      { return _S_max_size(__a); }
-
-      /**
-       *  @brief  Obtain an allocator to use when copying a container.
-       *  @param  rhs  An allocator.
-       *  @return @c rhs.select_on_container_copy_construction() or @a rhs
-       *
-       *  Returns @c rhs.select_on_container_copy_construction() if that
-       *  expression is well-formed, otherwise returns @a rhs
-      */
-      static _Alloc
-      select_on_container_copy_construction(const _Alloc& __rhs)
-      { return _S_select(__rhs); }
-    };
-
+  // Declare uses_allocator so it can be specialized in <queue> etc.
+  template<typename, typename>
+    struct uses_allocator;
 #endif
 
 _GLIBCXX_END_NAMESPACE_VERSION
diff --git a/libstdc++-v3/include/bits/move.h b/libstdc++-v3/include/bits/move.h
index d791d69..e82e36d 100644
--- a/libstdc++-v3/include/bits/move.h
+++ b/libstdc++-v3/include/bits/move.h
@@ -152,12 +152,22 @@
       __b = _GLIBCXX_MOVE(__tmp);
     }
 
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+  // To work around c++/49045.
+  template<typename _Tp>
+    struct __is_nothrow_swappable
+    { static const bool value = noexcept(swap(std::declval<_Tp&>(),
+					      std::declval<_Tp&>())); };
+#endif
+
   // _GLIBCXX_RESOLVE_LIB_DEFECTS
   // DR 809. std::swap should be overloaded for array types.
   template<typename _Tp, size_t _Nm>
     inline void
     swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
-    // noexcept waits for c++/49045
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+    noexcept(__is_nothrow_swappable<_Tp>::value)
+#endif
     {
       for (size_t __n = 0; __n < _Nm; ++__n)
 	swap(__a[__n], __b[__n]);
diff --git a/libstdc++-v3/include/bits/stl_construct.h b/libstdc++-v3/include/bits/stl_construct.h
index 2efba93..8aaaab8 100644
--- a/libstdc++-v3/include/bits/stl_construct.h
+++ b/libstdc++-v3/include/bits/stl_construct.h
@@ -1,7 +1,7 @@
 // nonstandard construct and destroy functions -*- C++ -*-
 
 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-// 2009, 2010
+// 2009, 2010, 2011
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -60,6 +60,7 @@
 
 #include <new>
 #include <bits/move.h>
+#include <ext/alloc_traits.h>
 
 namespace std _GLIBCXX_VISIBILITY(default)
 {
@@ -141,8 +142,9 @@
     _Destroy(_ForwardIterator __first, _ForwardIterator __last,
 	     _Allocator& __alloc)
     {
+      typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
       for (; __first != __last; ++__first)
-	__alloc.destroy(std::__addressof(*__first));
+	__traits::destroy(__alloc, std::__addressof(*__first));
     }
 
   template<typename _ForwardIterator, typename _Tp>
diff --git a/libstdc++-v3/include/bits/stl_uninitialized.h b/libstdc++-v3/include/bits/stl_uninitialized.h
index 246d5c3..1660d3e 100644
--- a/libstdc++-v3/include/bits/stl_uninitialized.h
+++ b/libstdc++-v3/include/bits/stl_uninitialized.h
@@ -1,7 +1,7 @@
 // Raw memory manipulators -*- C++ -*-
 
 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-// 2009, 2010
+// 2009, 2010, 2011
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -241,8 +241,9 @@
       _ForwardIterator __cur = __result;
       __try
 	{
+	  typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
 	  for (; __first != __last; ++__first, ++__cur)
-	    __alloc.construct(std::__addressof(*__cur), *__first);
+	    __traits::construct(__alloc, std::__addressof(*__cur), *__first);
 	  return __cur;
 	}
       __catch(...)
@@ -290,8 +291,9 @@
       _ForwardIterator __cur = __first;
       __try
 	{
+	  typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
 	  for (; __cur != __last; ++__cur)
-	    __alloc.construct(std::__addressof(*__cur), __x);
+	    __traits::construct(__alloc, std::__addressof(*__cur), __x);
 	}
       __catch(...)
 	{
@@ -315,8 +317,9 @@
       _ForwardIterator __cur = __first;
       __try
 	{
+	  typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
 	  for (; __n > 0; --__n, ++__cur)
-	    __alloc.construct(std::__addressof(*__cur), __x);
+	    __traits::construct(__alloc, std::__addressof(*__cur), __x);
 	}
       __catch(...)
 	{
@@ -556,8 +559,9 @@
       _ForwardIterator __cur = __first;
       __try
 	{
+	  typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
 	  for (; __cur != __last; ++__cur)
-	    __alloc.construct(std::__addressof(*__cur));
+	    __traits::construct(__alloc, std::__addressof(*__cur));
 	}
       __catch(...)
 	{
@@ -585,8 +589,9 @@
       _ForwardIterator __cur = __first;
       __try
 	{
+	  typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
 	  for (; __n > 0; --__n, ++__cur)
-	    __alloc.construct(std::__addressof(*__cur));
+	    __traits::construct(__alloc, std::__addressof(*__cur));
 	}
       __catch(...)
 	{
diff --git a/libstdc++-v3/include/ext/alloc_traits.h b/libstdc++-v3/include/ext/alloc_traits.h
new file mode 100644
index 0000000..0d50fe1
--- /dev/null
+++ b/libstdc++-v3/include/ext/alloc_traits.h
@@ -0,0 +1,121 @@
+// Allocator traits -*- C++ -*-
+
+// Copyright (C) 2011 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.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+// <http://www.gnu.org/licenses/>.
+
+/** @file ext/alloc_traits.h
+ *  This file is a GNU extension to the Standard C++ Library.
+ */
+
+#ifndef _EXT_ALLOC_TRAITS_H
+#define _EXT_ALLOC_TRAITS_H 1
+
+#pragma GCC system_header
+
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+# include <bits/alloc_traits.h>
+#else
+# include <bits/allocator.h>  // for __alloc_swap
+#endif
+
+namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
+{
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
+
+  /**
+   * @brief  Uniform interface to C++98 and C++0x allocators.
+   * @ingroup allocators
+  */
+template<typename _Alloc>
+  struct __alloc_traits
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+  : std::allocator_traits<_Alloc>
+#endif
+  {
+    typedef _Alloc allocator_type;
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+    typedef std::allocator_traits<_Alloc>           _Base_type;
+    typedef typename _Base_type::value_type         value_type;
+    typedef typename _Base_type::pointer            pointer;
+    typedef typename _Base_type::const_pointer      const_pointer;
+    typedef typename _Base_type::size_type          size_type;
+    // C++0x allocators do not define reference or const_reference
+    typedef value_type&                             reference;
+    typedef const value_type&                       const_reference;
+    using _Base_type::allocate;
+    using _Base_type::deallocate;
+    using _Base_type::construct;
+    using _Base_type::destroy;
+
+    static _Alloc _S_select_on_copy(const _Alloc& __a)
+    { return _Base_type::select_on_container_copy_construction(__a); }
+
+    static void _S_on_swap(_Alloc& __a, _Alloc& __b)
+    { std::__alloc_on_swap(__a, __b); }
+
+    static constexpr bool _S_propagate_on_copy_assign()
+    { return _Base_type::propagate_on_container_copy_assignment::value; }
+
+    static constexpr bool _S_propagate_on_move_assign()
+    { return _Base_type::propagate_on_container_move_assignment::value; }
+
+    static constexpr bool _S_propagate_on_swap()
+    { return _Base_type::propagate_on_container_swap::value; }
+
+#else
+
+    typedef typename _Alloc::pointer                pointer;
+    typedef typename _Alloc::const_pointer          const_pointer;
+    typedef typename _Alloc::value_type             value_type;
+    typedef typename _Alloc::reference              reference;
+    typedef typename _Alloc::const_reference        const_reference;
+    typedef typename _Alloc::size_type              size_type;
+
+    static pointer
+    allocate(_Alloc& __a, size_type __n)
+    { return __a.allocate(__n); }
+
+    static void deallocate(_Alloc& __a, pointer __p, size_type __n)
+    { __a.deallocate(__p, __n); }
+
+    template<typename _Tp>
+      static void construct(_Alloc& __a, pointer __p, const _Tp& __arg)
+      { __a.construct(__p, __arg); }
+
+    static void destroy(_Alloc& __a, pointer __p)
+    { __a.destroy(__p); }
+
+    static const _Alloc& _S_select_on_copy(const _Alloc& __a) { return __a; }
+
+    static void _S_on_swap(_Alloc& __a, _Alloc& __b)
+    {
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 431. Swapping containers with unequal allocators.
+      std::__alloc_swap<_Alloc>::_S_do_it(__a, __b);
+    }
+#endif
+  };
+
+_GLIBCXX_END_NAMESPACE_VERSION
+} // namespace
+
+#endif
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
index f5326e9..b7eb024 100644
--- a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
@@ -1318,7 +1318,7 @@
     get_begin_pos() const
     {
       size_type i = 0;
-      for (i; i < arr_size && m_a_p_children[i] == 0; ++i)
+      for (; i < arr_size && m_a_p_children[i] == 0; ++i)
 	;
       return i;
     }
diff --git a/libstdc++-v3/include/std/memory b/libstdc++-v3/include/std/memory
index 791ffe0..e846eba 100644
--- a/libstdc++-v3/include/std/memory
+++ b/libstdc++-v3/include/std/memory
@@ -76,6 +76,7 @@
 #  include <ext/concurrence.h>
 #  include <bits/functexcept.h>
 #  include <bits/stl_function.h>  // std::less
+#  include <bits/uses_allocator.h>
 #  include <type_traits>
 #  include <functional>
 #  include <debug/debug.h>
diff --git a/libstdc++-v3/testsuite/20_util/allocator_traits/members/allocate_hint.cc b/libstdc++-v3/testsuite/20_util/allocator_traits/members/allocate_hint.cc
index 6a26adc..e5a57a2 100644
--- a/libstdc++-v3/testsuite/20_util/allocator_traits/members/allocate_hint.cc
+++ b/libstdc++-v3/testsuite/20_util/allocator_traits/members/allocate_hint.cc
@@ -51,7 +51,7 @@
   typedef std::allocator_traits<hintable_allocator<X>> traits_type;
   traits_type::allocator_type a;
   traits_type::const_void_pointer v;
-  X* p = traits_type::allocate(a, 1, v);
+  X* p __attribute__((unused)) = traits_type::allocate(a, 1, v);
   VERIFY( a.called );
 }
 
@@ -79,7 +79,7 @@
   typedef std::allocator_traits<unhintable_allocator<X>> traits_type;
   traits_type::allocator_type a;
   traits_type::const_void_pointer v;
-  X* p = traits_type::allocate(a, 1, v);
+  X* p __attribute__((unused)) = traits_type::allocate(a, 1, v);
   VERIFY( a.called );
 }
 
diff --git a/libstdc++-v3/testsuite/20_util/bind/socket.cc b/libstdc++-v3/testsuite/20_util/bind/socket.cc
index d3ccea2..c501921 100644
--- a/libstdc++-v3/testsuite/20_util/bind/socket.cc
+++ b/libstdc++-v3/testsuite/20_util/bind/socket.cc
@@ -35,7 +35,7 @@
 {
   int fd = 1;
   my_sockaddr sa;           // N.B. non-const
-  size_t len = sizeof(sa);  // N.B. size_t not socklen_t
-  return bind(fd, &sa, sizeof(sa));
+  size_t len = sizeof(sa);  // N.B. size_t not my_socklen_t
+  return bind(fd, &sa, len);
 }
 
diff --git a/libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to.cc b/libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to.cc
index f33582e..33c96e1 100644
--- a/libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to.cc
+++ b/libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to.cc
@@ -32,7 +32,7 @@
 void test01()
 {
   bool test = true;
-  Ptr p{&test};
+  Ptr p __attribute__((unused)) {&test};
 
   VERIFY( std::pointer_traits<Ptr>::pointer_to(test).value == &test );
 }
diff --git a/libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc b/libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc
index 0e36c74..7483016 100644
--- a/libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc
@@ -26,19 +26,22 @@
 void
 test01()
 {
-  std::ratio_add<std::ratio<INTMAX_MAX, 1>, std::ratio<1>>::type r1;
+  std::ratio_add<std::ratio<INTMAX_MAX, 1>, std::ratio<1>>::type r1
+    __attribute__((unused));
 }
 
 void
 test02()
 {  
-  std::ratio_multiply<std::ratio<-INTMAX_MAX, 2>, std::ratio<3, 2>>::type r1;
-  std::ratio_multiply<std::ratio<INTMAX_MAX>, std::ratio<INTMAX_MAX>>::type r2;
+  std::ratio_multiply<std::ratio<-INTMAX_MAX, 2>, std::ratio<3, 2>>::type r1
+    __attribute__((unused));
+  std::ratio_multiply<std::ratio<INTMAX_MAX>, std::ratio<INTMAX_MAX>>::type r2
+    __attribute__((unused));
 }
 
 // { dg-error "required from here" "" { target *-*-* } 29 }
-// { dg-error "required from here" "" { target *-*-* } 35 }
 // { dg-error "required from here" "" { target *-*-* } 36 }
+// { dg-error "required from here" "" { target *-*-* } 38 }
 // { dg-error "overflow in addition" "" { target *-*-* } 432 }
 // { dg-error "overflow in multiplication" "" { target *-*-* } 104 }
 // { dg-error "overflow in multiplication" "" { target *-*-* } 100 }
diff --git a/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-2.cc b/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-2.cc
index bd9aeb2..01217a4 100644
--- a/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-2.cc
+++ b/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-2.cc
@@ -36,8 +36,8 @@
   X x = { };
   std::ref(m)(x, 1);
   std::ref(m)(&x, 1);
-  int& i1 = std::ref(m2)(x);
-  int& i2 = std::ref(m2)(&x);
+  int& i1 __attribute__((unused)) = std::ref(m2)(x);
+  int& i2 __attribute__((unused)) = std::ref(m2)(&x);
 }
 
 int main()
diff --git a/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc b/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc
index 7b694c7..028fe02 100644
--- a/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc
+++ b/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc
@@ -75,7 +75,8 @@
   int (::X::* p_foo_c)(float) const = &::X::foo_c;
   int (::X::* p_foo_v)(float) volatile = &::X::foo_v;
   int (::X::* p_foo_cv)(float) const volatile = &::X::foo_cv;
-  int (::X::* p_foo_varargs)(float, ...) = &::X::foo_varargs;
+  int (::X::* p_foo_varargs)(float, ...) __attribute__((unused))
+    = &::X::foo_varargs;
   int ::X::* p_bar = &::X::bar;
 
   const float pi = 3.14;
diff --git a/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc b/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc
index 2fea52e..0920ae4 100644
--- a/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc
+++ b/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc
@@ -124,14 +124,14 @@
 template<typename T>
   void test()
   {
-    test_arg_type<T> t;
-    test_arg_type<const T> tc;
-    test_arg_type<volatile T> tv;
-    test_arg_type<const volatile T> tcv;
-    test_1st_2nd_arg_types<T> t12;
-    test_1st_2nd_arg_types<const T> t12c;
-    test_1st_2nd_arg_types<volatile T> t12v;
-    test_1st_2nd_arg_types<const volatile T> t12cv;
+    test_arg_type<T> t __attribute__((unused));
+    test_arg_type<const T> tc __attribute__((unused));
+    test_arg_type<volatile T> tv __attribute__((unused));
+    test_arg_type<const volatile T> tcv __attribute__((unused));
+    test_1st_2nd_arg_types<T> t12 __attribute__((unused));
+    test_1st_2nd_arg_types<const T> t12c __attribute__((unused));
+    test_1st_2nd_arg_types<volatile T> t12v __attribute__((unused));
+    test_1st_2nd_arg_types<const volatile T> t12cv __attribute__((unused));
   }
 
 int main()
diff --git a/libstdc++-v3/testsuite/25_algorithms/sort/35588.cc b/libstdc++-v3/testsuite/25_algorithms/sort/35588.cc
index c16b96d..9dd28a5 100644
--- a/libstdc++-v3/testsuite/25_algorithms/sort/35588.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/sort/35588.cc
@@ -23,9 +23,8 @@
 int main()
 {
   using namespace std;
-  using namespace tr1;
   using namespace std::tr1::placeholders;
 
   int t[10];
-  sort(t, t+10, bind(less<int>(), _1, _2));
+  sort(t, t+10, tr1::bind(less<int>(), _1, _2));
 }
diff --git a/libstdc++-v3/testsuite/25_algorithms/swap/noexcept.cc b/libstdc++-v3/testsuite/25_algorithms/swap/noexcept.cc
new file mode 100644
index 0000000..4d8c87a
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/swap/noexcept.cc
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2011 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 <utility>
+
+static_assert(noexcept(std::swap(std::declval<int&>(),
+				 std::declval<int&>())), "Error");
+static_assert(noexcept(std::swap(std::declval<int(&)[5]>(),
+				 std::declval<int(&)[5]>())), "Error");
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc b/libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc
index 4d88593..ecdbee0 100644
--- a/libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc
@@ -44,15 +44,20 @@
   template<class T> complex<T> operator/(const T&, const complex<T>&);
   template<class T> complex<T> operator+(const complex<T>&);
   template<class T> complex<T> operator-(const complex<T>&);
-  template<class T> bool operator==
+  template<class T> _GLIBCXX_CONSTEXPR bool operator==
     (const complex<T>&, const complex<T>&);
-  template<class T> bool operator==(const complex<T>&, const T&);
-  template<class T> bool operator==(const T&, const complex<T>&);
+  template<class T> _GLIBCXX_CONSTEXPR bool operator==
+    (const complex<T>&, const T&);
+  template<class T> _GLIBCXX_CONSTEXPR bool operator==
+    (const T&, const complex<T>&);
 
 
-  template<class T> bool operator!=(const complex<T>&, const complex<T>&);
-  template<class T> bool operator!=(const complex<T>&, const T&);
-  template<class T> bool operator!=(const T&, const complex<T>&);
+  template<class T> _GLIBCXX_CONSTEXPR bool operator!=
+    (const complex<T>&, const complex<T>&);
+  template<class T> _GLIBCXX_CONSTEXPR bool operator!=
+    (const complex<T>&, const T&);
+  template<class T> _GLIBCXX_CONSTEXPR bool operator!=
+    (const T&, const complex<T>&);
   template<class T, class charT, class traits>
   basic_istream<charT, traits>&
   operator>>(basic_istream<charT, traits>&, complex<T>&);
@@ -61,8 +66,8 @@
   operator<<(basic_ostream<charT, traits>&, const complex<T>&);
 
   // 26.2.7 values:
-  template<class T> T real(const complex<T>&);
-  template<class T> T imag(const complex<T>&);
+  template<class T> _GLIBCXX_CONSTEXPR T real(const complex<T>&);
+  template<class T> _GLIBCXX_CONSTEXPR T imag(const complex<T>&);
   template<class T> T abs(const complex<T>&);
   template<class T> T arg(const complex<T>&);
   template<class T> T norm(const complex<T>&);
diff --git a/libstdc++-v3/testsuite/Makefile.am b/libstdc++-v3/testsuite/Makefile.am
index 4e297e0..792c831 100644
--- a/libstdc++-v3/testsuite/Makefile.am
+++ b/libstdc++-v3/testsuite/Makefile.am
@@ -100,7 +100,7 @@
 	@test ! -f $*/site.exp || mv $*/site.exp $*/site.bak
 	@mv $*/site.exp.tmp $*/site.exp
 
-check_DEJAGNU_normal_targets = $(patsubst %,check-DEJAGNUnormal%,0 1 2 3)
+check_DEJAGNU_normal_targets = $(patsubst %,check-DEJAGNUnormal%,0 1 2 3 4 5 6 7 8 9)
 $(check_DEJAGNU_normal_targets): check-DEJAGNUnormal%: normal%/site.exp
 
 # Run the testsuite in normal mode.
@@ -109,22 +109,17 @@
 	RANLIB="$(RANLIB)"; export RANLIB; \
 	if [ -z "$*$(filter-out --target_board=%, $(RUNTESTFLAGS))" ] \
 	    && [ "$(filter -j, $(MFLAGS))" = "-j" ]; then \
-	  $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNUnormal0 check-DEJAGNUnormal1 \
-		  check-DEJAGNUnormal2 check-DEJAGNUnormal3; \
-	  for idx in 0 1 2 3; do \
+	  $(MAKE) $(AM_MAKEFLAGS) $(check_DEJAGNU_normal_targets); \
+	  for idx in 0 1 2 3 4 5 6 7 8 9; do \
 	    mv -f normal$$idx/libstdc++.sum normal$$idx/libstdc++.sum.sep; \
 	    mv -f normal$$idx/libstdc++.log normal$$idx/libstdc++.log.sep; \
 	  done; \
 	  mv -f libstdc++.sum libstdc++.sum.sep; \
 	  mv -f libstdc++.log libstdc++.log.sep; \
 	  $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh \
-	    libstdc++.sum.sep normal0/libstdc++.sum.sep \
-	    normal1/libstdc++.sum.sep normal2/libstdc++.sum.sep \
-	    normal3/libstdc++.sum.sep > libstdc++.sum; \
+	    libstdc++.sum.sep normal[0-9]/libstdc++.sum.sep > libstdc++.sum; \
 	  $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh -L \
-	    libstdc++.log.sep normal0/libstdc++.log.sep \
-	    normal1/libstdc++.log.sep normal2/libstdc++.log.sep \
-	    normal3/libstdc++.log.sep > libstdc++.log; \
+	    libstdc++.log.sep normal[0-9]/libstdc++.log.sep > libstdc++.log; \
 	  exit 0; \
 	fi; \
 	srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \
@@ -140,13 +135,25 @@
 			$(RUNTESTFLAGS) abi.exp; \
 	    else echo "WARNING: could not find \`runtest'" 1>&2; :;\
 	    fi; \
-	    dirs="`cd $$srcdir; echo [013-9][0-9]_*/* [ab]* de* [ep]*/*`";; \
+	    dirs="`cd $$srcdir; echo [013-9][0-9]_*/*`";; \
 	  normal1) \
-	    dirs="`cd $$srcdir; echo 2[0-2]_*/*`";; \
+	    dirs="`cd $$srcdir; echo [ab]* de* [ep]*/*`";; \
 	  normal2) \
-	    dirs="`cd $$srcdir; echo 2[4-9]_*/*`";; \
+	    dirs="`cd $$srcdir; echo 2[01]_*/*`";; \
 	  normal3) \
-	    dirs="`cd $$srcdir; echo 23_*/* t*/*`";; \
+	    dirs="`cd $$srcdir; echo 22_*/*`";; \
+	  normal4) \
+	    dirs="`cd $$srcdir; echo 23_*/[a-km-tw-z]*`";; \
+	  normal5) \
+	    dirs="`cd $$srcdir; echo 23_*/[luv]*`";; \
+	  normal6) \
+	    dirs="`cd $$srcdir; echo 2[459]_*/*`";; \
+	  normal7) \
+	    dirs="`cd $$srcdir; echo 2[68]_*/*`";; \
+	  normal8) \
+	    dirs="`cd $$srcdir; echo 27_*/*`";; \
+	  normal9) \
+	    dirs="`cd $$srcdir; echo t*/*`";; \
 	esac; \
 	if [ -n "$*" ]; then cd "$*"; fi; \
 	if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in
index 2a98814..a76772e 100644
--- a/libstdc++-v3/testsuite/Makefile.in
+++ b/libstdc++-v3/testsuite/Makefile.in
@@ -287,7 +287,7 @@
 
 extract_symvers = $(glibcxx_builddir)/scripts/extract_symvers
 baseline_subdir := $(shell $(CXX) --print-multi-dir)
-check_DEJAGNU_normal_targets = $(patsubst %,check-DEJAGNUnormal%,0 1 2 3)
+check_DEJAGNU_normal_targets = $(patsubst %,check-DEJAGNUnormal%,0 1 2 3 4 5 6 7 8 9)
 
 # Runs the testsuite, but in compile only mode.
 # Can be used to test sources with non-GNU FE's at various warning
@@ -545,22 +545,17 @@
 	RANLIB="$(RANLIB)"; export RANLIB; \
 	if [ -z "$*$(filter-out --target_board=%, $(RUNTESTFLAGS))" ] \
 	    && [ "$(filter -j, $(MFLAGS))" = "-j" ]; then \
-	  $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNUnormal0 check-DEJAGNUnormal1 \
-		  check-DEJAGNUnormal2 check-DEJAGNUnormal3; \
-	  for idx in 0 1 2 3; do \
+	  $(MAKE) $(AM_MAKEFLAGS) $(check_DEJAGNU_normal_targets); \
+	  for idx in 0 1 2 3 4 5 6 7 8 9; do \
 	    mv -f normal$$idx/libstdc++.sum normal$$idx/libstdc++.sum.sep; \
 	    mv -f normal$$idx/libstdc++.log normal$$idx/libstdc++.log.sep; \
 	  done; \
 	  mv -f libstdc++.sum libstdc++.sum.sep; \
 	  mv -f libstdc++.log libstdc++.log.sep; \
 	  $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh \
-	    libstdc++.sum.sep normal0/libstdc++.sum.sep \
-	    normal1/libstdc++.sum.sep normal2/libstdc++.sum.sep \
-	    normal3/libstdc++.sum.sep > libstdc++.sum; \
+	    libstdc++.sum.sep normal[0-9]/libstdc++.sum.sep > libstdc++.sum; \
 	  $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh -L \
-	    libstdc++.log.sep normal0/libstdc++.log.sep \
-	    normal1/libstdc++.log.sep normal2/libstdc++.log.sep \
-	    normal3/libstdc++.log.sep > libstdc++.log; \
+	    libstdc++.log.sep normal[0-9]/libstdc++.log.sep > libstdc++.log; \
 	  exit 0; \
 	fi; \
 	srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \
@@ -576,13 +571,25 @@
 			$(RUNTESTFLAGS) abi.exp; \
 	    else echo "WARNING: could not find \`runtest'" 1>&2; :;\
 	    fi; \
-	    dirs="`cd $$srcdir; echo [013-9][0-9]_*/* [ab]* de* [ep]*/*`";; \
+	    dirs="`cd $$srcdir; echo [013-9][0-9]_*/*`";; \
 	  normal1) \
-	    dirs="`cd $$srcdir; echo 2[0-2]_*/*`";; \
+	    dirs="`cd $$srcdir; echo [ab]* de* [ep]*/*`";; \
 	  normal2) \
-	    dirs="`cd $$srcdir; echo 2[4-9]_*/*`";; \
+	    dirs="`cd $$srcdir; echo 2[01]_*/*`";; \
 	  normal3) \
-	    dirs="`cd $$srcdir; echo 23_*/* t*/*`";; \
+	    dirs="`cd $$srcdir; echo 22_*/*`";; \
+	  normal4) \
+	    dirs="`cd $$srcdir; echo 23_*/[a-km-tw-z]*`";; \
+	  normal5) \
+	    dirs="`cd $$srcdir; echo 23_*/[luv]*`";; \
+	  normal6) \
+	    dirs="`cd $$srcdir; echo 2[459]_*/*`";; \
+	  normal7) \
+	    dirs="`cd $$srcdir; echo 2[68]_*/*`";; \
+	  normal8) \
+	    dirs="`cd $$srcdir; echo 27_*/*`";; \
+	  normal9) \
+	    dirs="`cd $$srcdir; echo t*/*`";; \
 	esac; \
 	if [ -n "$*" ]; then cd "$*"; fi; \
 	if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/tie2.cc b/libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/tie2.cc
index 7aea516..ea9df08 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/tie2.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/tie2.cc
@@ -30,7 +30,7 @@
   int i;
   std::string s;
 
-  tie(i, ignore, s) = make_tuple(42, 3.14, "C++");
+  std::tr1::tie(i, ignore, s) = make_tuple(42, 3.14, "C++");
   VERIFY( i == 42 );
   VERIFY( s == "C++" );
 }
diff --git a/libstdc++-v3/testsuite/util/testsuite_random.h b/libstdc++-v3/testsuite/util/testsuite_random.h
index 5b55755..950a9ae 100644
--- a/libstdc++-v3/testsuite/util/testsuite_random.h
+++ b/libstdc++-v3/testsuite/util/testsuite_random.h
@@ -48,7 +48,7 @@
       for (unsigned long i = 0; i < N; i++)
 	{
 	  auto r = f();
-	  if (r >= 0 && r < BINS)
+	  if (r >= 0 && (unsigned long)r < BINS)
 	    count[r]++;
 	}
 
@@ -116,7 +116,7 @@
     if (!wl.size())
       wl = { 1.0 };
 
-    if (k < 0 || k >= wl.size())
+    if (k < 0 || (std::size_t)k >= wl.size())
       return 0.0;
     else
       {