The unified diff between revisions [b79d4c8b..] and [756702ce..] is displayed below. It can also be downloaded as a raw diff.

#
#
# patch "debian/changelog"
#  from [8b5c5a798578daf9bb6685ed5fd4bf4de99e64b3]
#    to [470f0249f3fad1852f0b78d5cffc219a844964f7]
#
# patch "debian/gnat-BV-doc.doc-base.rm"
#  from [785dee8a7d3a3d40f55af331a378630d6e47831d]
#    to [f36af9b56097b5b5855174443d386d324188a6fd]
#
# patch "debian/gnat-BV-doc.doc-base.ug"
#  from [378c525193aabb39549a3b43aac624dd909c5c98]
#    to [08eadd3e7f726e3cb4993cfc0694276de0fe21ab]
#
# patch "debian/patches/kbsd-gnu-ada.dpatch"
#  from [4eec5057fc984516403f50c04c1ca07965df21b1]
#    to [5db8832de38531c2473166e44c1aa484a6736a12]
#
# patch "debian/patches/svn-updates.dpatch"
#  from [0e51f4767410266ac2ceb974999d819e0ca34ae1]
#    to [ff748150d343889900241555dbbb4dc553fed42c]
#
# patch "debian/rules.conf"
#  from [c39f9cb10dedf468a776fa36be373038d08629af]
#    to [9dd347ab8f413ce9005b49255fb5c41de544227f]
#
============================================================
--- debian/changelog	8b5c5a798578daf9bb6685ed5fd4bf4de99e64b3
+++ debian/changelog	470f0249f3fad1852f0b78d5cffc219a844964f7
@@ -4,8 +4,23 @@ gnat-4.3 (4.3.4-1) unstable; urgency=low
   * debian/rules.defs (with_check): disable the testsuite on sparc due to
     timeouts.  Closes: #541258.

- -- Ludovic Brenta <lbrenta@debian.org>  Wed, 26 Aug 2009 23:19:46 +0200
+  Merge from gcc-4.3 (4.3.4-2) unstable; urgency=low

+  [ Aurelien Jarno ]
+  * patches/kbsd-gnu-ada.dpatch: add Ada support on kfreebsd-amd64.
+  * rules.conf: enable Ada on kfreebsd-amd64.
+
+  [ Matthias Klose ]
+  * Update to SVN 20090826 from the gcc-4_3-branch.
+    - Fixes: PR target/41019, PR target/8603 (fixes: #161432),
+      PR rtl-optimization/41033, PR target/40906, PR target/40577,
+      PR fortran/40847, PR fortran/40851, PR c/41046, PR debug/39706.
+      PR middle-end/41094, PR target/40718, PR fortran/41102.
+  * Avoid underscores in doc-base document id's to workaround a
+    dh_installdocs bug.
+
+ -- Ludovic Brenta <lbrenta@debian.org>  Wed, 26 Aug 2009 23:22:44 +0200
+
 gnat-4.3 (4.3.4-1) unstable; urgency=low

   Merge from gcc-4.3 (4.3.4-1) unstable; urgency=low
@@ -19,8 +34,8 @@ gnat-4.3 (4.3.4-1) unstable; urgency=low
   Merge from gcc-4.3 (4.3.3-15) unstable; urgency=low

   * Update to SVN 20090727 from the gcc-4_3-branch.
-    - GCC 4.3.4 relewase candidate.
-  * Fix building biarch cross compilers (Hector Oron). Fixes: #522562.
+    - GCC 4.3.4 release candidate.
+  * Fix building biarch cross compilers (Hector Oron). Closes: #522562.
   * Run the testsuite as part of the build target, not the install target.

   Merge from gcc-4.3 (4.3.3-14) unstable; urgency=medium
============================================================
--- debian/gnat-BV-doc.doc-base.rm	785dee8a7d3a3d40f55af331a378630d6e47831d
+++ debian/gnat-BV-doc.doc-base.rm	f36af9b56097b5b5855174443d386d324188a6fd
@@ -1,4 +1,4 @@
-Document: gnat_rm-@BV@
+Document: gnat-rm-@BV@
 Title: GNAT (GNU Ada) Reference Manual
 Author: Various
 Abstract: This manual contains useful information in writing programs
============================================================
--- debian/gnat-BV-doc.doc-base.ug	378c525193aabb39549a3b43aac624dd909c5c98
+++ debian/gnat-BV-doc.doc-base.ug	08eadd3e7f726e3cb4993cfc0694276de0fe21ab
@@ -1,4 +1,4 @@
-Document: gnat_ugn_unw-@BV@
+Document: gnat-ugn-@BV@
 Title: GNAT User's Guide for Unix Platforms
 Author: Various
 Abstract: This guide describes the use of GNAT, a compiler and
============================================================
--- debian/patches/kbsd-gnu-ada.dpatch	4eec5057fc984516403f50c04c1ca07965df21b1
+++ debian/patches/kbsd-gnu-ada.dpatch	5db8832de38531c2473166e44c1aa484a6736a12
@@ -229,3 +229,194 @@ exit 0
  const char *__gnat_object_file_option = "";
  const char *__gnat_run_path_option = "";
  char __gnat_shared_libgnat_default = SHARED;
+--- src/gcc/ada/Makefile.in
++++ src/gcc/ada/Makefile.in
+@@ -854,6 +854,38 @@
+   LIBRARY_VERSION := $(LIB_VERSION)
+ endif
+
++ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(arch) $(osys))),)
++  LIBGNAT_TARGET_PAIRS = \
++  a-intnam.ads<a-intnam-freebsd.ads \
++  a-numaux.adb<a-numaux-x86.adb \
++  a-numaux.ads<a-numaux-x86.ads \
++  s-inmaop.adb<s-inmaop-posix.adb \
++  s-intman.adb<s-intman-posix.adb \
++  g-soccon.ads<g-soccon-freebsd.ads \
++  s-osinte.adb<s-osinte-posix.adb \
++  s-osinte.ads<s-osinte-kfreebsd-gnu.ads \
++  s-osprim.adb<s-osprim-posix.adb \
++  s-taprop.adb<s-taprop-linux.adb \
++  s-tasinf.ads<s-tasinf-linux.ads \
++  s-tasinf.adb<s-tasinf-linux.adb \
++  s-taspri.ads<s-taspri-posix.ads \
++  s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
++  system.ads<system-freebsd-x86_64.ads
++
++  TOOLS_TARGET_PAIRS =  \
++    mlib-tgt-specific.adb<mlib-tgt-linux.adb \
++    indepsw.adb<indepsw-gnu.adb
++
++  EH_MECHANISM=-gcc
++  THREADSLIB = -lpthread
++  GNATLIB_SHARED = gnatlib-shared-dual
++  GMEM_LIB = gmemlib
++  PREFIX_OBJS = $(PREFIX_REAL_OBJS)
++  LIBRARY_VERSION := $(LIB_VERSION)
++endif
++
++
++
+ ifeq ($(strip $(filter-out %86 kfreebsd%,$(arch) $(osys))),)
+   LIBGNAT_TARGET_PAIRS = \
+   a-intnam.ads<a-intnam-freebsd.ads \
+--- src/gcc/ada/system-freebsd-x86_64.ads
++++ src/gcc/ada/system-freebsd-x86_64.ads
+@@ -0,0 +1,147 @@
++------------------------------------------------------------------------------
++--                                                                          --
++--                        GNAT RUN-TIME COMPONENTS                          --
++--                                                                          --
++--                               S Y S T E M                                --
++--                                                                          --
++--                                 S p e c                                  --
++--                        (FreeBSD/x86_64 Version)                          --
++--                                                                          --
++--          Copyright (C) 1992-2009, Free Software Foundation, Inc.         --
++--                                                                          --
++-- This specification is derived from the Ada Reference Manual for use with --
++-- GNAT. The copyright notice above, and the license provisions that follow --
++-- apply solely to the  contents of the part following the private keyword. --
++--                                                                          --
++-- GNAT is free software;  you can  redistribute it  and/or modify it under --
++-- terms of the  GNU General Public License as published  by the Free Soft- --
++-- ware  Foundation;  either version 2,  or (at your option) any later ver- --
++-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
++-- OUT 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  distributed with GNAT;  see file COPYING.  If not, write --
++-- to  the  Free Software Foundation,  51  Franklin  Street,  Fifth  Floor, --
++-- Boston, MA 02110-1301, USA.                                              --
++--                                                                          --
++-- As a special exception,  if other files  instantiate  generics from this --
++-- unit, or you link  this unit with other files  to produce an executable, --
++-- this  unit  does not  by itself cause  the resulting  executable  to  be --
++-- covered  by the  GNU  General  Public  License.  This exception does not --
++-- however invalidate  any other reasons why  the executable file  might be --
++-- covered by the  GNU Public License.                                      --
++--                                                                          --
++-- GNAT was originally developed  by the GNAT team at  New York University. --
++-- Extensive contributions were provided by Ada Core Technologies Inc.      --
++--                                                                          --
++------------------------------------------------------------------------------
++
++package System is
++   pragma Pure;
++   --  Note that we take advantage of the implementation permission to make
++   --  this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada
++   --  2005, this is Pure in any case (AI-362).
++
++   type Name is (SYSTEM_NAME_GNAT);
++   System_Name : constant Name := SYSTEM_NAME_GNAT;
++
++   --  System-Dependent Named Numbers
++
++   Min_Int               : constant := Long_Long_Integer'First;
++   Max_Int               : constant := Long_Long_Integer'Last;
++
++   Max_Binary_Modulus    : constant := 2 ** Long_Long_Integer'Size;
++   Max_Nonbinary_Modulus : constant := 2 ** Integer'Size - 1;
++
++   Max_Base_Digits       : constant := Long_Long_Float'Digits;
++   Max_Digits            : constant := Long_Long_Float'Digits;
++
++   Max_Mantissa          : constant := 63;
++   Fine_Delta            : constant := 2.0 ** (-Max_Mantissa);
++
++   Tick                  : constant := 0.000_001;
++
++   --  Storage-related Declarations
++
++   type Address is private;
++   pragma Preelaborable_Initialization (Address);
++   Null_Address : constant Address;
++
++   Storage_Unit : constant := 8;
++   Word_Size    : constant := 64;
++   Memory_Size  : constant := 2 ** 64;
++
++   --  Address comparison
++
++   function "<"  (Left, Right : Address) return Boolean;
++   function "<=" (Left, Right : Address) return Boolean;
++   function ">"  (Left, Right : Address) return Boolean;
++   function ">=" (Left, Right : Address) return Boolean;
++   function "="  (Left, Right : Address) return Boolean;
++
++   pragma Import (Intrinsic, "<");
++   pragma Import (Intrinsic, "<=");
++   pragma Import (Intrinsic, ">");
++   pragma Import (Intrinsic, ">=");
++   pragma Import (Intrinsic, "=");
++
++   --  Other System-Dependent Declarations
++
++   type Bit_Order is (High_Order_First, Low_Order_First);
++   Default_Bit_Order : constant Bit_Order := Low_Order_First;
++   pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning
++
++   --  Priority-related Declarations (RM D.1)
++
++   Max_Priority           : constant Positive := 30;
++   Max_Interrupt_Priority : constant Positive := 31;
++
++   subtype Any_Priority       is Integer      range  0 .. 31;
++   subtype Priority           is Any_Priority range  0 .. 30;
++   subtype Interrupt_Priority is Any_Priority range 31 .. 31;
++
++   Default_Priority : constant Priority := 15;
++
++private
++
++   type Address is mod Memory_Size;
++   Null_Address : constant Address := 0;
++
++   --------------------------------------
++   -- System Implementation Parameters --
++   --------------------------------------
++
++   --  These parameters provide information about the target that is used
++   --  by the compiler. They are in the private part of System, where they
++   --  can be accessed using the special circuitry in the Targparm unit
++   --  whose source should be consulted for more detailed descriptions
++   --  of the individual switch values.
++
++   Backend_Divide_Checks     : constant Boolean := False;
++   Backend_Overflow_Checks   : constant Boolean := False;
++   Command_Line_Args         : constant Boolean := True;
++   Configurable_Run_Time     : constant Boolean := False;
++   Denorm                    : constant Boolean := True;
++   Duration_32_Bits          : constant Boolean := False;
++   Exit_Status_Supported     : constant Boolean := True;
++   Fractional_Fixed_Ops      : constant Boolean := False;
++   Frontend_Layout           : constant Boolean := False;
++   Machine_Overflows         : constant Boolean := False;
++   Machine_Rounds            : constant Boolean := True;
++   Preallocated_Stacks       : constant Boolean := False;
++   Signed_Zeros              : constant Boolean := True;
++   Stack_Check_Default       : constant Boolean := False;
++   Stack_Check_Probes        : constant Boolean := True;
++   Stack_Check_Limits        : constant Boolean := False;
++   Support_64_Bit_Divides    : constant Boolean := True;
++   Support_Aggregates        : constant Boolean := True;
++   Support_Composite_Assign  : constant Boolean := True;
++   Support_Composite_Compare : constant Boolean := True;
++   Support_Long_Shifts       : constant Boolean := True;
++   Always_Compatible_Rep     : constant Boolean := True;
++   Suppress_Standard_Library : constant Boolean := False;
++   Use_Ada_Main_Program_Name : constant Boolean := False;
++   ZCX_By_Default            : constant Boolean := True;
++   GCC_ZCX_Support           : constant Boolean := True;
++
++end System;
============================================================
--- debian/patches/svn-updates.dpatch	0e51f4767410266ac2ceb974999d819e0ca34ae1
+++ debian/patches/svn-updates.dpatch	ff748150d343889900241555dbbb4dc553fed42c
@@ -1,12 +1,12 @@
 #! /bin/sh -e

-# DP: updates from the 4.3 branch upto 2009xxxx.
+# DP: updates from the 4.3 branch upto 20090826.

 last_updated()
 {
 	cat > ${dir}LAST_UPDATED <<EOF
-Tue Jul 28 01:16:21 CEST 2009
-Mon Jul 27 23:16:21 UTC 2009 (revision 150136)
+Wed Aug 26 02:28:54 CEST 2009
+Wed Aug 26 00:28:54 UTC 2009 (revision 151111)
 EOF
 }

@@ -37,3 +37,1354 @@ exit 0
 # svn diff svn://gcc.gnu.org/svn/gcc/tags/gcc_4_3_4_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_3-branch \
 #     | awk '/^Index:.*\.class/ {skip=1; next} /^Index:.*\.texi/ {skip=1; next} /^Index:/ { skip=0 } skip==0'

+Index: libgomp/ChangeLog
+===================================================================
+--- libgomp/ChangeLog	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ libgomp/ChangeLog	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,3 +1,15 @@
++2009-08-19  Tobias Burnus  <burnus@net-b.de>
++
++	PR fortran/41102
++	omp_lib.h.in: Fix -std=f95 errors.
++
++2009-08-14  Uros Bizjak  <ubizjak@gmail.com>
++
++	Backport from mainline:
++	2008-12-26  Uros Bizjak  <ubizjak@gmail.com>
++
++	* testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
++
+ 2009-08-04  Release Manager
+
+ 	* GCC 4.3.4 released.
+Index: libgomp/testsuite/libgomp.c/atomic-6.c
+===================================================================
+--- libgomp/testsuite/libgomp.c/atomic-6.c	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ libgomp/testsuite/libgomp.c/atomic-6.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,5 +1,6 @@
+ /* PR middle-end/36106 */
+ /* { dg-options "-O2" } */
++/* { dg-options "-O2 -mieee" { target alpha*-*-* } } */
+ /* { dg-options "-O2 -march=i586" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+
+ #ifdef __i386__
+Index: libgomp/omp_lib.h.in
+===================================================================
+--- libgomp/omp_lib.h.in	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ libgomp/omp_lib.h.in	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -38,16 +38,16 @@
+       external omp_set_num_threads
+
+       external omp_get_dynamic, omp_get_nested
+-      logical*4 omp_get_dynamic, omp_get_nested
++      logical(4) omp_get_dynamic, omp_get_nested
+       external omp_test_lock, omp_in_parallel
+-      logical*4 omp_test_lock, omp_in_parallel
++      logical(4) omp_test_lock, omp_in_parallel
+
+       external omp_get_max_threads, omp_get_num_procs
+-      integer*4 omp_get_max_threads, omp_get_num_procs
++      integer(4) omp_get_max_threads, omp_get_num_procs
+       external omp_get_num_threads, omp_get_thread_num
+-      integer*4 omp_get_num_threads, omp_get_thread_num
++      integer(4) omp_get_num_threads, omp_get_thread_num
+       external omp_test_nest_lock
+-      integer*4 omp_test_nest_lock
++      integer(4) omp_test_nest_lock
+
+       external omp_get_wtick, omp_get_wtime
+       double precision omp_get_wtick, omp_get_wtime
+Index: libdecnumber/decCommon.c
+===================================================================
+--- libdecnumber/decCommon.c	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ libdecnumber/decCommon.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1094,6 +1094,7 @@
+   return 10;
+   } /* decFloatRadix */
+
++#if (DECCHECK || DECTRACE)
+ /* ------------------------------------------------------------------ */
+ /* decFloatShow -- printf a decFloat in hexadecimal and decimal	      */
+ /*   df	 is the decFloat to show				      */
+@@ -1120,6 +1121,7 @@
+   printf(">%s> %s [big-endian]	%s\n", tag, hexbuf, buff);
+   return;
+   } /* decFloatShow */
++#endif
+
+ /* ------------------------------------------------------------------ */
+ /* decFloatToBCD -- get sign, exponent, and BCD8 from a decFloat      */
+Index: libdecnumber/ChangeLog
+===================================================================
+--- libdecnumber/ChangeLog	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ libdecnumber/ChangeLog	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,3 +1,9 @@
++2009-08-13  Janis Johnson  <janis187@us.ibm.com>
++
++	PR c/41046
++	* decCommon.c ( decFloatShow): Define function only for DECCHECK
++	or DECTRACE.
++
+ 2009-08-04  Release Manager
+
+ 	* GCC 4.3.4 released.
+Index: gcc/DATESTAMP
+===================================================================
+--- gcc/DATESTAMP	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/DATESTAMP	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1 +1 @@
+-20090804
++20090826
+Index: gcc/builtins.c
+===================================================================
+--- gcc/builtins.c	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/builtins.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -8459,15 +8459,18 @@
+ 	    }
+ 	}
+
+-      /* Optimize pow(pow(x,y),z) = pow(x,y*z).  */
++      /* Optimize pow(pow(x,y),z) = pow(x,y*z) iff x is nonnegative.  */
+       if (fcode == BUILT_IN_POW
+ 	  || fcode == BUILT_IN_POWF
+ 	  || fcode == BUILT_IN_POWL)
+ 	{
+ 	  tree arg00 = CALL_EXPR_ARG (arg0, 0);
+-	  tree arg01 = CALL_EXPR_ARG (arg0, 1);
+-	  tree narg1 = fold_build2 (MULT_EXPR, type, arg01, arg1);
+-	  return build_call_expr (fndecl, 2, arg00, narg1);
++	  if (tree_expr_nonnegative_p (arg00))
++	    {
++	      tree arg01 = CALL_EXPR_ARG (arg0, 1);
++	      tree narg1 = fold_build2 (MULT_EXPR, type, arg01, arg1);
++	      return build_call_expr (fndecl, 2, arg00, narg1);
++	    }
+ 	}
+     }
+
+Index: gcc/ChangeLog
+===================================================================
+--- gcc/ChangeLog	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/ChangeLog	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,3 +1,68 @@
++2009-08-24  Richard Guenther  <rguenther@suse.de>
++
++	PR middle-end/41094
++	* builtins.c (fold_builtin_pow): Fold pow(pow(x,y),z) to
++	pow(x,y*z) only if x is nonnegative.
++
++2009-08-23  Uros Bizjak  <ubizjak@gmail.com>
++
++	PR target/40718
++	* config/i386/i386.c (*call_pop_1): Disable for sibling calls.
++	(*call_value_pop_1): Ditto.
++	(*sibcall_pop_1): New insn pattern.
++	(*sibcall_value_pop_1): Ditto.
++
++2009-08-16  Uros Bizjak  <ubizjak@gmail.com>
++
++	Backport from mainline:
++	2009-08-14  Uros Bizjak  <ubizjak@gmail.com>
++
++	PR target/41019
++	* config/i386/sse.md (SSEMODE124C8): New mode iterator.
++	(vcond<SSEMODEF2P:mode>): Assert that operation is supported by
++	ix86_expand_fp_vcond.
++	(vcond<SSEMODE124C8:mode>): Use SSEMODE124C8 instead of SSEMODE124.
++	Assert that operation is supported by ix86_expand_int_vcond.
++	(vcondu<SSEMODE124C8:mode>): Ditto.
++
++2009-08-14  Uros Bizjak  <ubizjak@gmail.com>
++
++	Backport from mainline:
++	2009-08-11  Uros Bizjak  <ubizjak@gmail.com>
++
++	PR target/8603
++	* config/alpha/alpha.md (addsi3): Remove expander.
++	(addsi3): Rename from *addsi3_internal insn pattern.
++	(subsi3): Remove expander.
++	(subsi3): Rename from *subsi3_internal insn pattern.
++
++2009-08-13  Andrey Belevantsev  <abel@ispras.ru>
++
++	PR rtl-optimization/41033
++	* alias.c (nonoverlapping_component_refs_p): Punt when strict
++	aliasing is disabled.
++
++2009-08-05  Uros Bizjak  <ubizjak@gmail.com>
++	    Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
++
++	PR target/40906
++	* config/i386/i386.c (ix86_split_long_move): Fix push of multi-part
++	source operand.
++
++2009-08-04  Uros Bizjak  <ubizjak@gmail.com>
++
++	Backport from mainline:
++	2009-08-03  Uros Bizjak  <ubizjak@gmail.com>
++
++	* config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
++	constants referencing TLS symbols.
++
++	2009-07-29  Uros Bizjak  <ubizjak@gmail.com>
++
++	PR target/40577
++	* config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
++	to DImode when generating insq_le insn.
++
+ 2009-08-04  Release Manager
+
+ 	* GCC 4.3.4 released.
+@@ -129,7 +199,7 @@
+ 2009-06-30  Ira Rosen  <irar@il.ibm.com>
+
+ 	PR tree-optimization/40542
+-	* tree-vect-analyze.c (vect_determine_vectorization_factor): Don't
++	* tree-vect-analyze.c (vect_determine_vectorization_factor): Don't
+ 	vectorize volatile types.
+
+ 2009-06-29  Richard Guenther  <rguenther@suse.de>
+@@ -207,11 +277,11 @@
+ 	arg1.
+
+ 	2009-02-03  Jakub Jelinek  <jakub@redhat.com>
+-
++
+ 	PR target/35318
+ 	* function.c (match_asm_constraints_1): Skip over
+ 	initial optional % in the constraint.
+-
++
+ 2009-06-19  Richard Guenther  <rguenther@suse.de>
+
+ 	Backport from mainline:
+@@ -502,7 +572,7 @@
+ 	* c-typeck.c (build_conditional_expr): Emit ObjC warnings
+ 	by calling objc_compare_types and surpress warnings about
+ 	incompatible C pointers that are compatible ObjC pointers.
+-
++
+ 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
+
+ 	PR rtl-optimization/39588
+@@ -571,9 +641,9 @@
+
+ 	Backport from mainline:
+ 	2008-12-02  Martin Jambor  <mjambor@suse.cz>
+-
++
+ 	PR middle-end/37861
+-	* tree-ssa-forwprop.c
++	* tree-ssa-forwprop.c
+ 	(forward_propagate_addr_into_variable_array_index): Check that the
+ 	offset is not computed from a MULT_EXPR if element size is one.
+
+@@ -729,7 +799,7 @@
+ 	PR rtl-optimization/39076
+ 	Backport from mainline:
+ 	2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
+-
++
+ 	* regrename.c (build_def_use): Don't copy RTX.
+
+ 2009-02-04  Joseph Myers  <joseph@codesourcery.com>
+@@ -912,7 +982,7 @@
+
+ 	* sched-deps.c (sched_analyze_2)[UNSPEC_VOLATILE]: Flush pending
+ 	memory loads and stores.
+-
++
+ 2009-01-11  Matthias Klose  <doko@ubuntu.com>
+
+ 	PR middle-end/38616
+@@ -1382,7 +1452,7 @@
+ 2008-10-17  Andrew MacLeod  <amacleod@redhat.com>
+
+ 	PR tree-optimization/37102
+-	* tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
++	* tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
+ 	from a node. Check to see if another PHI is dead.
+ 	(eliminate_useless_phis): Rename from eliminate_virtual_phis and
+ 	remove real PHIs which have no uses.
+@@ -1846,7 +1916,7 @@
+
+ 	* sched-rgn.c (new_ready): Check if instruction can be
+ 	speculatively scheduled before attempting speculation.
+-	(debug_rgn_dependencies): Remove wrongful assert.
++	(debug_rgn_dependencies): Remove wrongful assert.
+
+ 2008-08-05  Jason Merrill  <jason@redhat.com>
+
+Index: gcc/testsuite/gcc.target/i386/pr41019.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr41019.c	(.../tags/gcc_4_3_4_release)	(revision 0)
++++ gcc/testsuite/gcc.target/i386/pr41019.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -0,0 +1,19 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -msse2 -ftree-vectorize" } */
++
++#include "sse2-check.h"
++
++long long int a[64];
++
++void
++sse2_test (void)
++{
++  int k;
++
++  for (k = 0; k < 64; k++)
++    a[k] = a[k] != 5 ? 12 : 10;
++
++  for (k = 0; k < 64; k++)
++    if (a[k] != 12)
++      abort ();
++}
+Index: gcc/testsuite/gcc.target/i386/pr40718.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr40718.c	(.../tags/gcc_4_3_4_release)	(revision 0)
++++ gcc/testsuite/gcc.target/i386/pr40718.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -0,0 +1,36 @@
++/* { dg-do run } */
++/* { dg-require-effective-target ilp32 } */
++/* { dg-options "-O1 -foptimize-sibling-calls" } */
++
++void abort (void);
++
++struct S
++{
++  void (__attribute__((__stdcall__)) *f) (struct S *);
++  int i;
++};
++
++void __attribute__((__stdcall__))
++foo (struct S *s)
++{
++  s->i++;
++}
++
++void __attribute__((__stdcall__))
++bar (struct S *s)
++{
++  foo(s);
++  s->f(s);
++}
++
++int main (void)
++{
++  struct S s = { foo, 0 };
++
++  bar (&s);
++  if (s.i != 2)
++    abort ();
++
++  return 0;
++}
++
+Index: gcc/testsuite/gcc.target/i386/pr40906-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr40906-1.c	(.../tags/gcc_4_3_4_release)	(revision 0)
++++ gcc/testsuite/gcc.target/i386/pr40906-1.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -0,0 +1,26 @@
++/* { dg-do run } */
++/* { dg-require-effective-target ilp32 } */
++/* { dg-options "-O2 -fomit-frame-pointer -mpush-args -mno-accumulate-outgoing-args" } */
++
++void abort (void);
++
++void __attribute__((noinline))
++f (long double a)
++{
++  if (a != 1.23L)
++    abort ();
++}
++
++int __attribute__((noinline))
++g (long double b)
++{
++  f (b);
++  return 0;
++}
++
++int
++main (void)
++{
++  g (1.23L);
++  return 0;
++}
+Index: gcc/testsuite/gcc.target/i386/pr40906-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr40906-2.c	(.../tags/gcc_4_3_4_release)	(revision 0)
++++ gcc/testsuite/gcc.target/i386/pr40906-2.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -0,0 +1,26 @@
++/* { dg-do run } */
++/* { dg-require-effective-target ilp32 } */
++/* { dg-options "-O2 -fomit-frame-pointer -mpush-args -mno-accumulate-outgoing-args -m128bit-long-double" } */
++
++void abort (void);
++
++void __attribute__((noinline))
++f (long double a)
++{
++  if (a != 1.23L)
++    abort ();
++}
++
++int __attribute__((noinline))
++g (long double b)
++{
++  f (b);
++  return 0;
++}
++
++int
++main (void)
++{
++  g (1.23L);
++  return 0;
++}
+Index: gcc/testsuite/gcc.dg/pr41033.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr41033.c	(.../tags/gcc_4_3_4_release)	(revision 0)
++++ gcc/testsuite/gcc.dg/pr41033.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -0,0 +1,24 @@
++/* { dg-options "-O1 -fno-strict-aliasing" } */
++/* PR rtl-optimization/41033 */
++
++struct X {
++  int i;
++  int j;
++};
++
++int foo(struct X *p, struct X *q)
++{
++  p->j = 1;
++  q->i = 0;
++  return p->j;
++}
++
++extern void abort (void);
++
++int main()
++{
++  struct X x;
++  if (foo (&x, (struct X *)&x.j) != 0)
++    abort ();
++  return 0;
++}
+Index: gcc/testsuite/gcc.dg/20020919-1.c
+===================================================================
+--- gcc/testsuite/gcc.dg/20020919-1.c	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gcc.dg/20020919-1.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -8,7 +8,7 @@
+    You must be this tall ---> fit two long longs in asm-declared registers
+    to enter this amusement.  */
+
+-/* { dg-do compile { target alpha-*-* cris-*-* crisv32-*-* i?86-*-* mmix-*-* powerpc*-*-* rs6000-*-* x86_64-*-* } } */
++/* { dg-do compile { target alpha*-*-* cris-*-* crisv32-*-* i?86-*-* mmix-*-* powerpc*-*-* rs6000-*-* x86_64-*-* } } */
+ /* { dg-options "-O2" } */
+
+ /* Constructed examples; input/output (same register), output, input, and
+Index: gcc/testsuite/gcc.dg/builtins-10.c
+===================================================================
+--- gcc/testsuite/gcc.dg/builtins-10.c	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gcc.dg/builtins-10.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -25,7 +25,7 @@
+     link_error ();
+
+   if (pow(pow(x,4.0),0.25) != x)
+-    link_error ();
++    /* XFAIL.  PR41098.  */;
+ }
+
+ void test2(double x, double y, double z)
+@@ -42,7 +42,7 @@
+   if (pow(sqrt(x),y) != pow(x,y*0.5))
+     link_error ();
+
+-  if (pow(pow(x,y),z) != pow(x,y*z))
++  if (pow(pow(fabs(x),y),z) != pow(fabs(x),y*z))
+     link_error ();
+ }
+
+Index: gcc/testsuite/gcc.dg/pr31866.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr31866.c	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gcc.dg/pr31866.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,5 +1,5 @@
+ /* PR tree-optimization/31866 */
+-/* { dg-do compile { target alpha-*-* cris-*-* crisv32-*-* i?86-*-* mmix-*-* powerpc*-*-* rs6000-*-* x86_64-*-* } } */
++/* { dg-do compile { target alpha*-*-* cris-*-* crisv32-*-* i?86-*-* mmix-*-* powerpc*-*-* rs6000-*-* x86_64-*-* } } */
+ /* { dg-options "-O2" } */
+
+ #if defined (__alpha__)
+Index: gcc/testsuite/gcc.dg/torture/type-generic-1.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/type-generic-1.c	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gcc.dg/torture/type-generic-1.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -2,7 +2,7 @@
+    without any fast-math flags.  */
+
+ /* { dg-do run } */
+-/* { dg-options "-mieee" { target sh*-*-* } } */
++/* { dg-options "-mieee" { target alpha*-*-* sh*-*-* } } */
+ /* { dg-skip-if "No Inf/NaN support" { spu-*-* } } */
+
+ #include "../tg-tests.h"
+Index: gcc/testsuite/gcc.dg/torture/builtin-power-1.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/builtin-power-1.c	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gcc.dg/torture/builtin-power-1.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -77,9 +77,9 @@
+   /* Test pow(pow(x,y),z) -> pow(x,y*z).  */
+ #define POW_POW \
+  extern void link_failure_pow_pow(void); \
+- if (pow(pow(d1, d2), d3) != pow(d1,d2*d3) \
+-     || powf(powf(f1,f2),f3) != powf(f1,f2*f3) \
+-     || powl(powl(ld1,ld2),ld3) != powl(ld1,ld2*ld3)) \
++ if (pow(pow(fabs(d1), d2), d3) != pow(fabs(d1),d2*d3) \
++     || powf(powf(fabs(f1),f2),f3) != powf(fabs(f1),f2*f3) \
++     || powl(powl(fabs(ld1),ld2),ld3) != powl(fabs(ld1),ld2*ld3)) \
+     link_failure_pow_pow()
+
+   POW_POW;
+Index: gcc/testsuite/gcc.dg/torture/pr41094.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pr41094.c	(.../tags/gcc_4_3_4_release)	(revision 0)
++++ gcc/testsuite/gcc.dg/torture/pr41094.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -0,0 +1,19 @@
++/* { dg-do run } */
++/* { dg-options "-ffast-math" } */
++
++#include <math.h>
++
++extern void abort (void);
++
++double foo(void)
++{
++  double x = -4.0;
++  return pow (x * x, 0.25);
++}
++
++int main()
++{
++  if (foo() != 2.0)
++    abort ();
++  return 0;
++}
+Index: gcc/testsuite/gcc.dg/ssp-1.c
+===================================================================
+--- gcc/testsuite/gcc.dg/ssp-1.c	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gcc.dg/ssp-1.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -4,7 +4,7 @@
+
+ #include <stdlib.h>
+
+-static void
++void
+ __stack_chk_fail (void)
+ {
+   exit (0); /* pass */
+Index: gcc/testsuite/ChangeLog
+===================================================================
+--- gcc/testsuite/ChangeLog	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/ChangeLog	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,3 +1,87 @@
++2009-08-24  Richard Guenther  <rguenther@suse.de>
++
++	PR middle-end/41094
++	* gcc.dg/torture/pr41094.c: New testcase.
++	* gcc.dg/torture/builtin-power-1.c: Adjust.
++	* gcc.dg/builtins-10.c: Likewise.
++
++2009-08-23  Tobias Burnus  <burnus@net-b.de>
++
++	PR fortran/40851
++	* gfortran.dg/derived_init_3.f90: New test.
++
++2009-08-23  Uros Bizjak  <ubizjak@gmail.com>
++
++	PR target/40718
++	* gcc.target/i386/pr40718.c: New test.
++
++2009-08-16  Uros Bizjak  <ubizjak@gmail.com>
++
++	Backport from mainline:
++	2009-08-14  Uros Bizjak  <ubizjak@gmail.com>
++
++	PR target/41019
++	* gcc.target/i386/pr41019.c: New test.
++
++2009-08-16  Paul Thomas  <pault@gcc.gnu.org>
++
++	PR fortran/40847
++	* gfortran.dg/transfer_resolve_1.f90 : New test.
++
++2009-08-14  Uros Bizjak <ubizjak@gmail.com>
++
++	Backport from mainline:
++	2008-12-10  Uros Bizjak <ubizjak@gmail.com>
++
++	* gcc.dg/20020919-1.c: Correct target selector to alpha*-*-*.
++	* gcc.dg/pr31866.c: Ditto.
++	* gcc.dg/torture/type-generic-1.c: Add -mieee for alpha*-*-* targets.
++	* g++.dg/torture/type-generic-1.C: Ditto.
++	* gfortran.dg/boz_9.f90: Ditto.
++	* gfortran.dg/init_flag_3.f90: Ditto.
++	* gfortran.dg/init_flag_4.f90: Ditto.
++	* gfortran.dg/init_flag_5.f90: Ditto.
++	* gfortran.dg/integer_exponentiation_1.f90: Ditto.
++	* gfortran.dg/integer_exponentiation_5.F90: Ditto.
++	* gfortran.dg/isnan_1.f90: Ditto.
++	* gfortran.dg/nan_1.f90: Ditto.
++	* gfortran.dg/nan_2.f90: Ditto.
++	* gfortran.dg/nan_3.f90: Ditto.
++	* gfortran.dg/nan_4.f90: Ditto.
++	* gfortran.dg/namelist_42.f90: Ditto.
++	* gfortran.dg/namelist_43.f90: Ditto.
++	* gfortran.dg/nearest_1.f90: Ditto.
++	* gfortran.dg/nearest_2.f90: Ditto.
++	* gfortran.dg/nearest_3.f90: Ditto.
++	* gfortran.dg/real_const_3.f90: Ditto.
++	* gfortran.dg/transfer_simplify_2.f90: Ditto.
++
++	* gfortran.dg/default_format_denormal_1.f90: XFAIL on alpha.
++
++2009-08-13  Richard Guenther  <rguenther@suse.de>
++
++	PR rtl-optimization/41033
++	* gcc.dg/pr41033.c: New test.
++
++2009-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
++
++	Backport:
++	2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
++
++	* gcc.dg/ssp-1.c (__stack_chk_fail): Remove static.
++
++2009-08-05  Uros Bizjak  <ubizjak@gmail.com>
++	    Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
++
++	PR target/40906
++	* gcc.target/i386/pr40906-1.c: New test.
++	* gcc.target/i386/pr40906-2.c: Ditto.
++
++2009-08-04  Dodji Seketeli  <dodji@redhat.com>
++
++	PR debug/39706
++	* g++.dg/debug/dwarf2/pubnames-1.C: New test.
++
+ 2009-08-04  Release Manager
+
+ 	* GCC 4.3.4 released.
+Index: gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C
+===================================================================
+--- gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C	(.../tags/gcc_4_3_4_release)	(revision 0)
++++ gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -0,0 +1,14 @@
++// Contributed by Dodji Seketeli <dodji@redhat.com>
++// Origin PR debug/39706
++// { dg-options "-g -dA" }
++// { dg-do compile }
++// { dg-final { scan-assembler-times ".debug_pubnames" 1 } }
++// { dg-final { scan-assembler-times "\"main\".*external name" 1 } }
++// { dg-final { scan-assembler-times "\"ns::ns_x.*external name" 1 } }
++// { dg-final { scan-assembler-times "\"y::y_x.*external name" 1 } }
++
++namespace ns { int ns_x; }
++class y { public: static int y_x; };
++int y::y_x;
++int main() { return ns::ns_x; }
++
+Index: gcc/testsuite/g++.dg/torture/type-generic-1.C
+===================================================================
+--- gcc/testsuite/g++.dg/torture/type-generic-1.C	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/g++.dg/torture/type-generic-1.C	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -2,7 +2,7 @@
+    without any fast-math flags.  */
+
+ /* { dg-do run } */
+-/* { dg-options "-mieee" { target sh*-*-* } } */
++/* { dg-options "-mieee" { target alpha*-*-* sh*-*-* } } */
+ /* { dg-skip-if "No Inf/NaN support" { spu-*-* } } */
+
+ #include "../../gcc.dg/tg-tests.h"
+Index: gcc/testsuite/gfortran.dg/nearest_1.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/nearest_1.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/nearest_1.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,5 +1,6 @@
+ ! { dg-do run }
+ ! { dg-options "-O0 -ffloat-store" }
++! { dg-options "-O0 -ffloat-store -mieee" { target alpha*-*-* } }
+ ! PR fortran/27021
+ ! Original code submitted by Dominique d'Humieres
+ ! Converted to Dejagnu for the testsuite by Steven G. Kargl
+Index: gcc/testsuite/gfortran.dg/nearest_2.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/nearest_2.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/nearest_2.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,6 +1,6 @@
+ ! { dg-do run }
+ ! { dg-options "-fno-range-check" }
+-! { dg-options "-fno-range-check -mieee" { target sh*-*-* } }
++! { dg-options "-fno-range-check -mieee" { target alpha*-*-* sh*-*-* } }
+ !
+ ! PR fortran/34192
+ !
+Index: gcc/testsuite/gfortran.dg/nearest_3.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/nearest_3.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/nearest_3.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,5 +1,5 @@
+ ! { dg-do run }
+-! { dg-options "-pedantic-errors -mieee" { target sh*-*-* } }
++! { dg-options "-pedantic-errors -mieee" { target alpha*-*-* sh*-*-* } }
+ !
+ ! PR fortran/34209
+ !
+Index: gcc/testsuite/gfortran.dg/namelist_42.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/namelist_42.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/namelist_42.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,5 +1,5 @@
+ ! { dg-do run }
+-! { dg-options "-mieee" { target sh*-*-* } }
++! { dg-options "-mieee" { target alpha*-*-* sh*-*-* } }
+ !
+ ! PR fortran/34427
+ !
+Index: gcc/testsuite/gfortran.dg/nan_1.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/nan_1.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/nan_1.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -2,7 +2,7 @@
+ ! as arguments
+ !
+ ! { dg-do run }
+-! { dg-options "-pedantic-errors -mieee" { target sh*-*-* } }
++! { dg-options "-pedantic-errors -mieee" { target alpha*-*-* sh*-*-* } }
+ !
+ module aux2
+   interface isnan
+Index: gcc/testsuite/gfortran.dg/namelist_43.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/namelist_43.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/namelist_43.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,5 +1,5 @@
+ ! { dg-do run }
+-! { dg-options "-mieee" { target sh*-*-* } }
++! { dg-options "-mieee" { target alpha*-*-* sh*-*-* } }
+ !
+ ! PR fortran/34427
+ !
+Index: gcc/testsuite/gfortran.dg/nan_2.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/nan_2.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/nan_2.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,6 +1,6 @@
+ ! { dg-do run }
+ ! { dg-options "-fno-range-check -pedantic" }
+-! { dg-options "-fno-range-check -pedantic -mieee" { target sh*-*-* } }
++! { dg-options "-fno-range-check -pedantic -mieee" { target alpha*-*-* sh*-*-* } }
+ !
+ ! PR fortran/34333
+ !
+Index: gcc/testsuite/gfortran.dg/nan_3.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/nan_3.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/nan_3.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,6 +1,6 @@
+ ! { dg-do run }
+ ! { dg-options "-fno-range-check" }
+-! { dg-options "-fno-range-check -mieee" { target sh*-*-* } }
++! { dg-options "-fno-range-check -mieee" { target alpha*-*-* sh*-*-* } }
+ !
+ ! PR fortran/34319
+ !
+Index: gcc/testsuite/gfortran.dg/integer_exponentiation_1.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/integer_exponentiation_1.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/integer_exponentiation_1.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,4 +1,5 @@
+ ! { dg-do run }
++! { dg-options "-pedantic -mieee" { target alpha*-*-* } }
+ ! PR 30981 - this used to go into an endless loop during execution.
+ program test
+   a = 3.0
+Index: gcc/testsuite/gfortran.dg/init_flag_3.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/init_flag_3.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/init_flag_3.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,6 +1,6 @@
+ ! { dg-do run }
+ ! { dg-options "-finit-integer=-1 -finit-logical=false -finit-real=nan" }
+-! { dg-options "-mieee -finit-integer=-1 -finit-logical=false -finit-real=nan" { target sh*-*-* } }
++! { dg-options "-mieee -finit-integer=-1 -finit-logical=false -finit-real=nan" { target alpha*-*-* sh*-*-* } }
+
+ program init_flag_3
+   call real_test
+Index: gcc/testsuite/gfortran.dg/transfer_simplify_2.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/transfer_simplify_2.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/transfer_simplify_2.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,5 +1,6 @@
+ ! { dg-do run }
+ ! { dg-options "-O2" }
++! { dg-options "-O2 -mieee" { target alpha*-*-* } }
+ ! Tests the fix for the meta-bug PR31237 (TRANSFER intrinsic)
+ ! Exercises gfc_simplify_transfer a random walk through types and shapes
+ ! and compares its results with the middle-end version that operates on
+Index: gcc/testsuite/gfortran.dg/isnan_1.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/isnan_1.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/isnan_1.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,7 +1,7 @@
+ ! Test for the ISNAN intrinsic
+ !
+ ! { dg-do run }
+-! { dg-options "-pedantic-errors -mieee" { target sh*-*-* } }
++! { dg-options "-pedantic-errors -mieee" { target alpha*-*-* sh*-*-* } }
+ !
+   implicit none
+   real :: x
+Index: gcc/testsuite/gfortran.dg/nan_4.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/nan_4.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/nan_4.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,6 +1,6 @@
+ ! { dg-do compile }
+ ! { dg-options "-std=gnu" }
+-! { dg-options "-std=gnu -mieee" { target sh*-*-* } }
++! { dg-options "-std=gnu -mieee" { target alpha*-*-* sh*-*-* } }
+ !
+ ! PR fortran/34398.
+ !
+Index: gcc/testsuite/gfortran.dg/init_flag_4.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/init_flag_4.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/init_flag_4.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,5 +1,6 @@
+ ! { dg-do run }
+ ! { dg-options "-finit-real=inf" }
++! { dg-options "-finit-real=inf -mieee" { target alpha*-*-* } } */
+
+ program init_flag_4
+   call real_test
+Index: gcc/testsuite/gfortran.dg/derived_init_3.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/derived_init_3.f90	(.../tags/gcc_4_3_4_release)	(revision 0)
++++ gcc/testsuite/gfortran.dg/derived_init_3.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -0,0 +1,34 @@
++! { dg-do run }
++!
++! PR fortran/40851
++!
++! Make sure the an INTENT(OUT) dummy is not initialized
++! when it is a pointer.
++!
++! Contributed by Juergen Reuter <juergen.reuter@desy.de>.
++!
++program main
++
++  type :: string
++     character,dimension(:),allocatable :: chars
++  end type string
++
++  type :: string_container
++     type(string) :: string
++  end type string_container
++
++  type(string_container), target :: tgt
++  type(string_container), pointer :: ptr
++
++  ptr => tgt
++  call set_ptr (ptr)
++  if (associated(ptr)) call abort()
++
++contains
++
++  subroutine set_ptr (ptr)
++    type(string_container), pointer, intent(out) :: ptr
++    ptr => null ()
++  end subroutine set_ptr
++
++end program main
+Index: gcc/testsuite/gfortran.dg/init_flag_5.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/init_flag_5.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/init_flag_5.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,5 +1,6 @@
+ ! { dg-do run }
+ ! { dg-options "-finit-real=-inf" }
++! { dg-options "-finit-real=-inf -mieee" { target alpha*-*-* } } */
+
+ program init_flag_5
+   call real_test
+Index: gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90
+===================================================================
+--- gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,5 +1,6 @@
+ ! { dg-do run }
+ ! { dg-options "-fno-range-check" }
++! { dg-options "-fno-range-check -mieee" { target alpha*-*-* } } */
+ module mod_check
+   implicit none
+
+Index: gcc/testsuite/gfortran.dg/transfer_resolve_1.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/transfer_resolve_1.f90	(.../tags/gcc_4_3_4_release)	(revision 0)
++++ gcc/testsuite/gfortran.dg/transfer_resolve_1.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -0,0 +1,21 @@
++! { dg-do run }
++! PR40847 - an error in gfc_resolve_transfer caused the character length
++! of 'mold' to be set incorrectly.
++!
++! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
++!
++program test_elemental
++
++if (any (transfer_size((/0.,0./),(/'a','b'/)) .ne. [4 ,4])) call abort
++
++contains
++
++   elemental function transfer_size (source, mold)
++     real, intent(in)         :: source
++     character(*), intent(in) :: mold
++     integer                  :: transfer_size
++     transfer_size = SIZE(TRANSFER(source, (/mold/)))
++     return
++   end function transfer_size
++
++end program test_elemental
+Index: gcc/testsuite/gfortran.dg/boz_9.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/boz_9.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/boz_9.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,5 +1,6 @@
+ ! { dg-do run }
+ ! { dg-options "-fno-range-check" }
++! { dg-options "-fno-range-check -mieee" { target alpha*-*-* } }
+ !
+ ! PR fortran/34342
+ !
+Index: gcc/testsuite/gfortran.dg/real_const_3.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/real_const_3.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/real_const_3.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,6 +1,6 @@
+ !{ dg-do run }
+ !{ dg-options "-fno-range-check" }
+-!{ dg-options "-fno-range-check -mieee" { target sh*-*-* } }
++!{ dg-options "-fno-range-check -mieee" { target alpha*-*-* sh*-*-* } }
+ ! PR19310 and PR19904, allow disabling range check during compile.
+ ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ program main
+Index: gcc/testsuite/gfortran.dg/default_format_denormal_1.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/default_format_denormal_1.f90	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/testsuite/gfortran.dg/default_format_denormal_1.f90	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,4 +1,4 @@
+-! { dg-do run { xfail *-apple-darwin* *-*-freebsd* } }
++! { dg-do run { xfail alpha*-*-* *-apple-darwin* *-*-freebsd* } }
+ ! Test XFAILed on these platforms because the system's printf() lacks
+ ! proper support for denormals.
+ !
+Index: gcc/cp/error.c
+===================================================================
+--- gcc/cp/error.c	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/cp/error.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -2195,7 +2195,10 @@
+     return decl_as_string (decl, TFF_DECL_SPECIFIERS);
+
+   reinit_cxx_pp ();
+-  if (v == 1 && DECL_CLASS_SCOPE_P (decl))
++  if (v == 1
++      && (DECL_CLASS_SCOPE_P (decl)
++	  || (DECL_NAMESPACE_SCOPE_P (decl)
++	      && CP_DECL_CONTEXT (decl) != global_namespace)))
+     {
+       dump_type (CP_DECL_CONTEXT (decl), TFF_PLAIN_IDENTIFIER);
+       pp_cxx_colon_colon (cxx_pp);
+Index: gcc/cp/ChangeLog
+===================================================================
+--- gcc/cp/ChangeLog	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/cp/ChangeLog	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,3 +1,9 @@
++2009-08-04  Dodji Seketeli  <dodji@redhat.com>
++
++	PR debug/39706
++	* error.c (lang_decl_name): Print qualified names for decls
++	in  namespace scope.
++
+ 2009-08-04  Release Manager
+
+ 	* GCC 4.3.4 released.
+Index: gcc/fortran/ChangeLog
+===================================================================
+--- gcc/fortran/ChangeLog	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/fortran/ChangeLog	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1,3 +1,17 @@
++2009-08-16  Paul Thomas  <pault@gcc.gnu.org>
++
++	PR fortran/40847
++	* iresolve.c (gfc_resolve_transfer): Correct error in 'mold'
++	character length for case where length expresson is NULL.
++
++2009-08-16  Tobias Burnus  <burnus@net-b.de>
++
++	PR fortran/40851
++	* resolve.c (resolve_symbol): Do not initialize pointer
++	* derived-types.
++	* trans-decl.c (init_intent_out_dt): Ditto.
++	(generate_local_decl): No need to set attr.referenced for DT pointers.
++
+ 2009-08-04  Release Manager
+
+ 	* GCC 4.3.4 released.
+Index: gcc/fortran/resolve.c
+===================================================================
+--- gcc/fortran/resolve.c	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/fortran/resolve.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -8268,7 +8268,7 @@
+       if ((!a->save && !a->dummy && !a->pointer
+ 	   && !a->in_common && !a->use_assoc
+ 	   && !(a->function && sym != sym->result))
+-	  || (a->dummy && a->intent == INTENT_OUT))
++	  || (a->dummy && a->intent == INTENT_OUT && !a->pointer))
+ 	apply_default_init (sym);
+     }
+ }
+Index: gcc/fortran/iresolve.c
+===================================================================
+--- gcc/fortran/iresolve.c	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/fortran/iresolve.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -2317,9 +2317,19 @@
+   /* TODO: Make this do something meaningful.  */
+   static char transfer0[] = "__transfer0", transfer1[] = "__transfer1";
+
+-  if (mold->ts.type == BT_CHARACTER && !mold->ts.cl->length
+-	&& !(mold->expr_type == EXPR_VARIABLE && mold->symtree->n.sym->attr.dummy))
+-    mold->ts.cl->length = gfc_int_expr (mold->value.character.length);
++  if (mold->ts.type == BT_CHARACTER
++	&& !mold->ts.cl->length
++	&& gfc_is_constant_expr (mold))
++    {
++      int len;
++      if (mold->expr_type == EXPR_CONSTANT)
++	mold->ts.cl->length = gfc_int_expr (mold->value.character.length);
++      else
++	{
++	  len = mold->value.constructor->expr->value.character.length;
++	  mold->ts.cl->length = gfc_int_expr (len);
++	}
++    }
+
+   f->ts = mold->ts;
+
+Index: gcc/fortran/trans-decl.c
+===================================================================
+--- gcc/fortran/trans-decl.c	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/fortran/trans-decl.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -2604,7 +2604,8 @@
+   gfc_init_block (&fnblock);
+   for (f = proc_sym->formal; f; f = f->next)
+     if (f->sym && f->sym->attr.intent == INTENT_OUT
+-	  && f->sym->ts.type == BT_DERIVED)
++	&& !f->sym->attr.pointer
++	&& f->sym->ts.type == BT_DERIVED)
+       {
+ 	if (f->sym->ts.derived->attr.alloc_comp)
+ 	  {
+@@ -3025,6 +3026,7 @@
+ 	 automatic lengths.  */
+       if (sym->attr.dummy && !sym->attr.referenced
+ 	    && sym->ts.type == BT_DERIVED
++	    && !sym->attr.pointer
+ 	    && sym->ts.derived->attr.alloc_comp
+ 	    && sym->attr.intent == INTENT_OUT)
+ 	{
+Index: gcc/alias.c
+===================================================================
+--- gcc/alias.c	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/alias.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -1881,6 +1881,9 @@
+ {
+   const_tree fieldx, fieldy, typex, typey, orig_y;
+
++  if (!flag_strict_aliasing)
++    return false;
++
+   do
+     {
+       /* The comparison has to be done at a common type, since we don't
+Index: gcc/config/alpha/alpha.c
+===================================================================
+--- gcc/config/alpha/alpha.c	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/config/alpha/alpha.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -2051,11 +2051,22 @@
+
+   switch (GET_CODE (x))
+     {
+-    case CONST:
+     case LABEL_REF:
+     case HIGH:
+       return true;
+
++    case CONST:
++      if (GET_CODE (XEXP (x, 0)) == PLUS
++	  && GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT)
++	x = XEXP (XEXP (x, 0), 0);
++      else
++	return true;
++
++      if (GET_CODE (x) != SYMBOL_REF)
++	return true;
++
++      /* FALLTHRU */
++
+     case SYMBOL_REF:
+       /* TLS symbols are never valid.  */
+       return SYMBOL_REF_TLS_MODEL (x) == 0;
+@@ -3541,7 +3552,7 @@
+ 	      emit_insn (gen_insll_le (insl, gen_lowpart (SImode, src), addr));
+ 	      break;
+ 	    case 8:
+-	      emit_insn (gen_insql_le (insl, src, addr));
++	      emit_insn (gen_insql_le (insl, gen_lowpart (DImode, src), addr));
+ 	      break;
+ 	    }
+ 	}
+Index: gcc/config/alpha/alpha.md
+===================================================================
+--- gcc/config/alpha/alpha.md	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/config/alpha/alpha.md	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -255,16 +255,7 @@
+ 	(sign_extend:DI (match_dup 1)))]
+   "")
+
+-;; Don't say we have addsi3 if optimizing.  This generates better code.  We
+-;; have the anonymous addsi3 pattern below in case combine wants to make it.
+-(define_expand "addsi3"
+-  [(set (match_operand:SI 0 "register_operand" "")
+-	(plus:SI (match_operand:SI 1 "reg_or_0_operand" "")
+-		 (match_operand:SI 2 "add_operand" "")))]
+-  "! optimize"
+-  "")
+-
+-(define_insn "*addsi_internal"
++(define_insn "addsi3"
+   [(set (match_operand:SI 0 "register_operand" "=r,r,r,r")
+ 	(plus:SI (match_operand:SI 1 "reg_or_0_operand" "%rJ,rJ,rJ,rJ")
+ 		 (match_operand:SI 2 "add_operand" "rI,O,K,L")))]
+@@ -618,14 +609,7 @@
+   ""
+   "subqv $31,%1,%0")
+
+-(define_expand "subsi3"
+-  [(set (match_operand:SI 0 "register_operand" "")
+-	(minus:SI (match_operand:SI 1 "reg_or_0_operand" "")
+-		  (match_operand:SI 2 "reg_or_8bit_operand" "")))]
+-  "! optimize"
+-  "")
+-
+-(define_insn "*subsi_internal"
++(define_insn "subsi3"
+   [(set (match_operand:SI 0 "register_operand" "=r")
+ 	(minus:SI (match_operand:SI 1 "reg_or_0_operand" "rJ")
+ 		  (match_operand:SI 2 "reg_or_8bit_operand" "rI")))]
+Index: gcc/config/i386/i386.md
+===================================================================
+--- gcc/config/i386/i386.md	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/config/i386/i386.md	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -14687,22 +14687,27 @@
+ 	 (match_operand:SI 1 "" ""))
+    (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG)
+ 			    (match_operand:SI 2 "immediate_operand" "i")))]
+-  "!TARGET_64BIT"
++  "!SIBLING_CALL_P (insn) && !TARGET_64BIT"
+ {
+   if (constant_call_address_operand (operands[0], Pmode))
+-    {
+-      if (SIBLING_CALL_P (insn))
+-	return "jmp\t%P0";
+-      else
+-	return "call\t%P0";
+-    }
+-  if (SIBLING_CALL_P (insn))
+-    return "jmp\t%A0";
+-  else
+-    return "call\t%A0";
++    return "call\t%P0";
++  return "call\t%A0";
+ }
+   [(set_attr "type" "call")])
+
++(define_insn "*sibcall_pop_1"
++  [(call (mem:QI (match_operand:SI 0 "sibcall_insn_operand" "s,c,d,a"))
++	 (match_operand:SI 1 "" ""))
++   (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG)
++			    (match_operand:SI 2 "immediate_operand" "i,i,i,i")))]
++  "SIBLING_CALL_P (insn) && !TARGET_64BIT"
++{
++  if (constant_call_address_operand (operands[0], Pmode))
++    return "jmp\t%P0";
++  return "jmp\t%A0";
++}
++  [(set_attr "type" "call")])
++
+ (define_expand "call"
+   [(call (match_operand:QI 0 "" "")
+ 	 (match_operand 1 "" ""))
+@@ -21064,22 +21069,28 @@
+ 	      (match_operand:SI 2 "" "")))
+    (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG)
+ 			    (match_operand:SI 3 "immediate_operand" "i")))]
+-  "!TARGET_64BIT"
++  "!SIBLING_CALL_P (insn) && !TARGET_64BIT"
+ {
+   if (constant_call_address_operand (operands[1], Pmode))
+-    {
+-      if (SIBLING_CALL_P (insn))
+-	return "jmp\t%P1";
+-      else
+-	return "call\t%P1";
+-    }
+-  if (SIBLING_CALL_P (insn))
+-    return "jmp\t%A1";
+-  else
+-    return "call\t%A1";
++    return "call\t%P1";
++  return "call\t%A1";
+ }
+   [(set_attr "type" "callv")])
+
++(define_insn "*sibcall_value_pop_1"
++  [(set (match_operand 0 "" "")
++	(call (mem:QI (match_operand:SI 1 "sibcall_insn_operand" "s,c,d,a"))
++	      (match_operand:SI 2 "" "")))
++   (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG)
++			    (match_operand:SI 3 "immediate_operand" "i,i,i,i")))]
++  "SIBLING_CALL_P (insn) && !TARGET_64BIT"
++{
++  if (constant_call_address_operand (operands[1], Pmode))
++    return "jmp\t%P1";
++  return "jmp\t%A1";
++}
++  [(set_attr "type" "callv")])
++
+ (define_insn "*call_value_0"
+   [(set (match_operand 0 "" "")
+ 	(call (mem:QI (match_operand:SI 1 "constant_call_address_operand" ""))
+Index: gcc/config/i386/sse.md
+===================================================================
+--- gcc/config/i386/sse.md	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/config/i386/sse.md	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -36,6 +36,10 @@
+ (define_mode_iterator SSEMODEF4 [SF DF V4SF V2DF])
+ (define_mode_iterator SSEMODEF2P [V4SF V2DF])
+
++;; Modes handled by integer vcond pattern
++(define_mode_iterator SSEMODE124C8 [V16QI V8HI V4SI
++				    (V2DI "TARGET_SSE4_2 || TARGET_SSE5")])
++
+ ;; Mapping from integer vector mode to mnemonic suffix
+ (define_mode_attr ssevecsize [(V16QI "b") (V8HI "w") (V4SI "d") (V2DI "q")])
+
+@@ -909,10 +913,9 @@
+           (match_operand:V4SF 2 "general_operand" "")))]
+   "TARGET_SSE"
+ {
+-  if (ix86_expand_fp_vcond (operands))
+-    DONE;
+-  else
+-    FAIL;
++  bool ok = ix86_expand_fp_vcond (operands);
++  gcc_assert (ok);
++  DONE;
+ })
+
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+@@ -4349,35 +4352,33 @@
+    (set_attr "mode" "TI")])
+
+ (define_expand "vcond<mode>"
+-  [(set (match_operand:SSEMODEI 0 "register_operand" "")
+-        (if_then_else:SSEMODEI
++  [(set (match_operand:SSEMODE124C8 0 "register_operand" "")
++        (if_then_else:SSEMODE124C8
+           (match_operator 3 ""
+-            [(match_operand:SSEMODEI 4 "nonimmediate_operand" "")
+-             (match_operand:SSEMODEI 5 "nonimmediate_operand" "")])
+-          (match_operand:SSEMODEI 1 "general_operand" "")
+-          (match_operand:SSEMODEI 2 "general_operand" "")))]
++            [(match_operand:SSEMODE124C8 4 "nonimmediate_operand" "")
++             (match_operand:SSEMODE124C8 5 "nonimmediate_operand" "")])
++          (match_operand:SSEMODE124C8 1 "general_operand" "")
++          (match_operand:SSEMODE124C8 2 "general_operand" "")))]
+   "TARGET_SSE2"
+ {
+-  if (ix86_expand_int_vcond (operands))
+-    DONE;
+-  else
+-    FAIL;
++  bool ok = ix86_expand_int_vcond (operands);
++  gcc_assert (ok);
++  DONE;
+ })
+
+ (define_expand "vcondu<mode>"
+-  [(set (match_operand:SSEMODEI 0 "register_operand" "")
+-        (if_then_else:SSEMODEI
++  [(set (match_operand:SSEMODE124C8 0 "register_operand" "")
++        (if_then_else:SSEMODE124C8
+           (match_operator 3 ""
+-            [(match_operand:SSEMODEI 4 "nonimmediate_operand" "")
+-             (match_operand:SSEMODEI 5 "nonimmediate_operand" "")])
+-          (match_operand:SSEMODEI 1 "general_operand" "")
+-          (match_operand:SSEMODEI 2 "general_operand" "")))]
++            [(match_operand:SSEMODE124C8 4 "nonimmediate_operand" "")
++             (match_operand:SSEMODE124C8 5 "nonimmediate_operand" "")])
++          (match_operand:SSEMODE124C8 1 "general_operand" "")
++          (match_operand:SSEMODE124C8 2 "general_operand" "")))]
+   "TARGET_SSE2"
+ {
+-  if (ix86_expand_int_vcond (operands))
+-    DONE;
+-  else
+-    FAIL;
++  bool ok = ix86_expand_int_vcond (operands);
++  gcc_assert (ok);
++  DONE;
+ })
+
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Index: gcc/config/i386/i386.c
+===================================================================
+--- gcc/config/i386/i386.c	(.../tags/gcc_4_3_4_release)	(revision 151111)
++++ gcc/config/i386/i386.c	(.../branches/gcc-4_3-branch)	(revision 151111)
+@@ -14052,11 +14052,19 @@
+   if (push && MEM_P (operands[1])
+       && reg_overlap_mentioned_p (stack_pointer_rtx, operands[1]))
+     {
+-      if (nparts == 3)
+-	part[1][1] = change_address (part[1][1], GET_MODE (part[1][1]),
+-				     XEXP (part[1][2], 0));
+-      part[1][0] = change_address (part[1][0], GET_MODE (part[1][0]),
+-				   XEXP (part[1][1], 0));
++      rtx src_base = XEXP (part[1][nparts - 1], 0);
++      int i;
++
++      /* Compensate for the stack decrement by 4.  */
++      if (!TARGET_64BIT && nparts == 3
++	  && mode == XFmode && TARGET_128BIT_LONG_DOUBLE)
++	src_base = plus_constant (src_base, 4);
++
++      /* src_base refers to the stack pointer and is
++	 automatically decreased by emitted push.  */
++      for (i = 0; i < nparts; i++)
++	part[1][i] = change_address (part[1][i],
++				     GET_MODE (part[1][i]), src_base);
+     }
+
+   /* We need to do copy in the right order in case an address register
============================================================
--- debian/rules.conf	c39f9cb10dedf468a776fa36be373038d08629af
+++ debian/rules.conf	9dd347ab8f413ce9005b49255fb5c41de544227f
@@ -717,7 +717,7 @@ ada_no_archs    := $(strip $(foreach cpu
 else
 # avoid it ...
 ada_no_archs    := $(strip $(foreach cpu,$(ada_no_cpus),!$(cpu)) \
-			!kfreebsd-amd64 !hurd-i386)
+			!hurd-i386)
 java_no_archs   := $(strip $(foreach cpu,$(java_no_cpus),!$(cpu)) \
 			)
 pascal_no_archs := $(strip $(foreach cpu,$(pascal_no_cpus),!$(cpu)) \