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