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

#
#
# patch "debian/changelog"
#  from [b327410bfa0b9d7a529adcac412a98125ed217d5]
#    to [6920ccb478ff8aa236aab77e658aa3e3bd43a9ab]
#
# patch "debian/patches/svn-updates.diff"
#  from [302f27318ccde1c5aa00c425bdaf99e1406f35ff]
#    to [c1d43f5cc660d81d1bde72bd776cb6b0e7a70e3d]
#
============================================================
--- debian/changelog	b327410bfa0b9d7a529adcac412a98125ed217d5
+++ debian/changelog	6920ccb478ff8aa236aab77e658aa3e3bd43a9ab
@@ -1,9 +1,9 @@
-gcc-4.5 (4.5.1-4) UNRELEASED; urgency=low
+gcc-4.5 (4.5.1-4) experimental; urgency=low

-  * Update to SVN 20100902 (r163775) from the gcc-4_5-branch.
+  * Update to SVN 20100903 (r163833) from the gcc-4_5-branch.
     - Fix PR target/45070, PR middle-end/45458, PR rtl-optimization/45353,
       PR middle-end/45423, PR c/45079, PR tree-optimization/45393,
-      PR c++/44991.
+      PR c++/44991, PR middle-end/45484, PR debug/45500, PR lto/45496.

   [ Matthias Klose ]
   * Install config/vxworks-dummy.h in the gcc-4.5-plugin-dev package
@@ -31,7 +31,7 @@ gcc-4.5 (4.5.1-4) UNRELEASED; urgency=lo
   * Create libgcc1 and gcc-*-base packages for stage2 cross builds.
     LP: #628855.

- -- Matthias Klose <doko@debian.org>  Wed, 01 Sep 2010 14:16:08 +0200
+ -- Matthias Klose <doko@debian.org>  Fri, 03 Sep 2010 18:09:40 +0200

 gcc-4.5 (4.5.1-3) experimental; urgency=low

============================================================
--- debian/patches/svn-updates.diff	302f27318ccde1c5aa00c425bdaf99e1406f35ff
+++ debian/patches/svn-updates.diff	c1d43f5cc660d81d1bde72bd776cb6b0e7a70e3d
@@ -1,10 +1,10 @@
-# DP: updates from the 4.5 branch upto 20100902 (r163775).
+# DP: updates from the 4.5 branch upto 20100902 (r183833).

 last_updated()
 {
 	cat > ${dir}LAST_UPDATED <<EOF
-Thu Sep  2 15:59:37 CEST 2010
-Thu Sep  2 13:59:37 UTC 2010 (revision 163775)
+Fri Sep  3 18:02:06 CEST 2010
+Fri Sep  3 16:02:06 UTC 2010 (revision 163833)
 EOF
 }

@@ -30,7 +30,7 @@ Index: gcc/DATESTAMP
 +++ b/src/gcc/DATESTAMP	(.../branches/gcc-4_5-branch)
 @@ -1 +1 @@
 -20100731
-+20100902
++20100903
 Index: gcc/postreload.c
 ===================================================================
 --- a/src/gcc/postreload.c	(.../tags/gcc_4_5_1_release)
@@ -97,7 +97,20 @@ Index: gcc/ChangeLog
 ===================================================================
 --- a/src/gcc/ChangeLog	(.../tags/gcc_4_5_1_release)
 +++ b/src/gcc/ChangeLog	(.../branches/gcc-4_5-branch)
-@@ -1,3 +1,320 @@
+@@ -1,3 +1,333 @@
++2010-09-03  Jakub Jelinek  <jakub@redhat.com>
++
++	PR middle-end/45484
++	* dwarf2out.c (flush_queued_reg_saves): Rename to...
++	(dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
++	(dwarf2out_frame_debug): Adjust callers.
++	* dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
++	* config/i386/i386.c (output_set_got): Call it.
++
++	PR debug/45500
++	* dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
++	not just generic vectors with BLKmode.
++
 +2010-09-02  Ian Bolton  <ian.bolton@arm.com>
 +
 +	Backport from mainline
@@ -418,7 +431,7 @@ Index: gcc/ChangeLog
  2010-07-31  Release Manager

  	* GCC 4.5.1 released.
-@@ -105,8 +427,8 @@
+@@ -105,8 +440,8 @@
  2010-07-19  Bingfeng Mei  <bmei@broadcom.com>

  	* ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
@@ -429,7 +442,7 @@ Index: gcc/ChangeLog

  2010-07-15  Jie Zhang  <jie@codesourcery.com>

-@@ -286,7 +608,7 @@
+@@ -286,7 +621,7 @@
  	if old_decl was DECL_ONE_ONLY.

  	2010-06-21  Jakub Jelinek  <jakub@redhat.com>
@@ -438,7 +451,7 @@ Index: gcc/ChangeLog
  	PR target/44575
  	* config/i386/i386.c (ix86_gimplify_va_arg): When copying
  	va_arg from a set of register save slots into a temporary,
-@@ -392,24 +714,24 @@
+@@ -392,24 +727,24 @@
  	Backport from mainline
  	2010-05-17  Martin Jambor  <mjambor@suse.cz>

@@ -475,7 +488,7 @@ Index: gcc/ChangeLog

  2010-06-27  Jan Hubicka  <jh@suse.cz>

-@@ -536,7 +858,7 @@
+@@ -536,7 +871,7 @@
  	Backport from mainline:
  	2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>

@@ -484,7 +497,7 @@ Index: gcc/ChangeLog
  	after .section directive; just print it before the directive
  	instead.

-@@ -1659,7 +1981,7 @@
+@@ -1659,7 +1994,7 @@
  	* tree-tailcall.c (find_tail_calls): Verify the tail call
  	properly.

@@ -493,7 +506,7 @@ Index: gcc/ChangeLog

  	PR tree-optimization/43771
  	* tree-vect-slp.c (vect_supported_load_permutation_p): Check that
-@@ -1925,11 +2247,11 @@
+@@ -1925,11 +2260,11 @@
  	* Makefile.in ($(out_object_file)): Depend on
  	gt-$(basename $(notdir $(out_file))).h.

@@ -507,7 +520,7 @@ Index: gcc/ChangeLog

  	* config.gcc: Add lm32-*-rtems*.
  	* config/lm32/rtems.h: New file.
-@@ -1984,8 +2306,8 @@
+@@ -1984,8 +2319,8 @@

  	PR middle-end/43602
  	Revert
@@ -518,7 +531,7 @@ Index: gcc/ChangeLog

  	* tree-profile.c (tree_init_ic_make_global_vars): Make static
  	variables TLS.
-@@ -2276,8 +2598,8 @@
+@@ -2276,8 +2611,8 @@
  	* config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
  	stack check if the mask would be zero.

@@ -529,7 +542,7 @@ Index: gcc/ChangeLog

  	* tree-profile.c (tree_init_ic_make_global_vars): Make static
  	variables TLS.
-@@ -2620,7 +2942,7 @@
+@@ -2620,7 +2955,7 @@
  	instead of callq.

  2010-03-22  Janis Johnson  <janis187@us.ibm.com>
@@ -538,7 +551,7 @@ Index: gcc/ChangeLog

  	* doc/sourcebuild.texi (Test Directives): Split into six
  	subsections, with most of the current text in new subsections
-@@ -2775,8 +3097,8 @@
+@@ -2775,8 +3110,8 @@
  	(sparc_file_end): Emit a hidden comdat symbol for the PIC
  	thunk if possible.  Output CFI information as needed.

@@ -549,7 +562,7 @@ Index: gcc/ChangeLog

  	PR target/36399
  	* config/i386/i386.h: Fix ABI on darwin x86-32.
-@@ -2919,7 +3241,7 @@
+@@ -2919,7 +3254,7 @@
  	* graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
  	statements before splitting block.

@@ -558,7 +571,7 @@ Index: gcc/ChangeLog

  	* doc/sourcebuild.texi (Testsuites): Fix markup.
  	Use pathnames relative to gcc/testsuite.
-@@ -3531,7 +3853,7 @@
+@@ -3531,7 +3866,7 @@
  	* tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
  	uses of relevant DEFs that are dead outside the loop too.

@@ -567,7 +580,7 @@ Index: gcc/ChangeLog

  	* var-tracking.c (dataflow_set_merge): Swap src and src2.
  	Reverted:
-@@ -4313,7 +4635,7 @@
+@@ -4313,7 +4648,7 @@
  	* config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
  	lang_hooks.types_compatible_p instead of comptypes.

@@ -576,7 +589,7 @@ Index: gcc/ChangeLog

  	* config/arm/lib1funcs.asm (__prefer_thumb__): New define.
  	(udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
-@@ -4384,7 +4706,7 @@
+@@ -4384,7 +4719,7 @@
  	statements ...
  	(vrp_visit_phi_node): ... but only for loop PHI nodes.

@@ -585,7 +598,7 @@ Index: gcc/ChangeLog

  	PR tree-optimization/43074
  	* tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
-@@ -4412,8 +4734,8 @@
+@@ -4412,8 +4747,8 @@
  	flag_var_tracking_assignments.
  	* Makefile.in (var-tracking.o): Adjust dependencies.

@@ -596,7 +609,7 @@ Index: gcc/ChangeLog

  	PR target/42854
  	* config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
-@@ -4511,7 +4833,7 @@
+@@ -4511,7 +4846,7 @@

  2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
  	    Jack Howarth  <howarth@bromo.med.uc.edu>
@@ -605,7 +618,7 @@ Index: gcc/ChangeLog

  	PR target/42982
  	Partial revert of unintended change in fix for PR41605.
-@@ -5934,7 +6256,7 @@
+@@ -5934,7 +6269,7 @@
  	(maybe_tidy_empty_bb): Delete prototype.
  	(purge_empty_blocks): Declare.

@@ -844,6 +857,43 @@ Index: gcc/testsuite/gcc.target/i386/pr4
 +/* { dg-options "" } */
 +
 +register long double F80 asm("st"); /* { dg-error "stack register" } */
+Index: gcc/testsuite/gcc.target/i386/pr45500.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/i386/pr45500.c	(.../tags/gcc_4_5_1_release)
++++ b/src/gcc/testsuite/gcc.target/i386/pr45500.c	(.../branches/gcc-4_5-branch)
+@@ -0,0 +1,6 @@
++/* PR debug/45500 */
++/* { dg-do compile } */
++/* { dg-options "-g -msse" } */
++
++typedef char V __attribute__ ((__vector_size__ (16)));
++static const V s = { '\n', '\r', '?', '\\' };
+Index: gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp
+===================================================================
+--- a/src/gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp	(.../tags/gcc_4_5_1_release)
++++ b/src/gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp	(.../branches/gcc-4_5-branch)
+@@ -28,9 +28,20 @@
+ }
+
+
++# If the linker used understands -M <mapfile>, pass it to clear hardware
++# capabilities set by the Sun assembler.
++set flags ""
++set clearcap_ldflags "-Wl,-M,$srcdir/gcc.target/i386/clearcap.map"
++
++if [check_no_compiler_messages mapfile executable {
++	int main (void) { return 0; }
++  } $clearcap_ldflags ] {
++  set flags $clearcap_ldflags
++}
++
+ torture-init
+ set-torture-options $C_TORTURE_OPTIONS
+-set additional_flags "-W -Wall -mavx"
++set additional_flags "-W -Wall -mavx $flags"
+
+ foreach src [lsort [glob -nocomplain $srcdir/$subdir/test_*.c]] {
+     if {[runtest_file_p $runtests $src]} {
 Index: gcc/testsuite/gcc.dg/20050330-2.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/20050330-2.c	(.../tags/gcc_4_5_1_release)
@@ -1411,6 +1461,18 @@ Index: gcc/testsuite/gcc.dg/graphite/int
  /* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } } */
 -/* { dg -final { cleanup-tree-dump "graphite" } } */
 +/* { dg-final { cleanup-tree-dump "graphite" } } */
+Index: gcc/testsuite/gcc.dg/pr43058.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/pr43058.c	(.../tags/gcc_4_5_1_release)
++++ b/src/gcc/testsuite/gcc.dg/pr43058.c	(.../branches/gcc-4_5-branch)
+@@ -1,6 +1,7 @@
+ /* PR debug/43058 */
+ /* { dg-do compile } */
+ /* { dg-options "-g -O2" } */
++/* { dg-timeout-factor 4 } */
+
+ extern void *f1 (void *, void *, void *);
+ extern void *f2 (const char *, int, int, int, void *(*) ());
 Index: gcc/testsuite/gcc.dg/pr26570.c
 ===================================================================
 --- a/src/gcc/testsuite/gcc.dg/pr26570.c	(.../tags/gcc_4_5_1_release)
@@ -1643,7 +1705,24 @@ Index: gcc/testsuite/ChangeLog
 ===================================================================
 --- a/src/gcc/testsuite/ChangeLog	(.../tags/gcc_4_5_1_release)
 +++ b/src/gcc/testsuite/ChangeLog	(.../branches/gcc-4_5-branch)
-@@ -1,3 +1,209 @@
+@@ -1,3 +1,226 @@
++2010-09-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++	Backport from mainline:
++	2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++	* gcc.dg/pr43058.c: Use dg-timeout-factor 4.
++
++2010-09-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++	* gcc.target/x86_64/abi/avx/abi-avx.exp: Link with
++	gcc.target/i386/clearcap.map if supported.
++
++2010-09-03  Jakub Jelinek  <jakub@redhat.com>
++
++	PR debug/45500
++	* gcc.target/i386/pr45500.c: New test.
++
 +2010-09-02  Ian Bolton  <ian.bolton@arm.com>
 +
 +	Backport from mainline
@@ -1853,7 +1932,7 @@ Index: gcc/testsuite/ChangeLog
  2010-07-31  Release Manager

  	* GCC 4.5.1 released.
-@@ -479,15 +685,15 @@
+@@ -479,15 +702,15 @@
  	Backport from mainline
  	2010-05-17  Martin Jambor  <mjambor@suse.cz>

@@ -1872,7 +1951,7 @@ Index: gcc/testsuite/ChangeLog

  2010-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

-@@ -636,7 +842,7 @@
+@@ -636,7 +859,7 @@
  	PR testsuite/44518
  	* obj-c++.dg/encode-2.mm: XFAIL new test for all targets.
  	* obj-c++.dg/encode-3.mm: Restore XFAIL run for all targets.
@@ -7985,6 +8064,69 @@ Index: gcc/ifcvt.c
        /* We're going to be moving the evaluation of B down from above
  	 COND_EARLIEST to JUMP.  Make sure the relevant data is still
  	 intact.  */
+Index: gcc/dwarf2out.c
+===================================================================
+--- a/src/gcc/dwarf2out.c	(.../tags/gcc_4_5_1_release)
++++ b/src/gcc/dwarf2out.c	(.../branches/gcc-4_5-branch)
+@@ -471,7 +471,6 @@
+ static void output_cfi_directive (dw_cfi_ref);
+ static void output_call_frame_info (int);
+ static void dwarf2out_note_section_used (void);
+-static void flush_queued_reg_saves (void);
+ static bool clobbers_queued_reg_save (const_rtx);
+ static void dwarf2out_frame_debug_expr (rtx, const char *);
+
+@@ -1707,8 +1706,8 @@
+
+ /* Output all the entries in QUEUED_REG_SAVES.  */
+
+-static void
+-flush_queued_reg_saves (void)
++void
++dwarf2out_flush_queued_reg_saves (void)
+ {
+   struct queued_reg_save *q;
+
+@@ -2657,7 +2656,7 @@
+       size_t i;
+
+       /* Flush any queued register saves.  */
+-      flush_queued_reg_saves ();
++      dwarf2out_flush_queued_reg_saves ();
+
+       /* Set up state for generating call frame debug info.  */
+       lookup_cfa (&cfa);
+@@ -2685,7 +2684,7 @@
+     }
+
+   if (!NONJUMP_INSN_P (insn) || clobbers_queued_reg_save (insn))
+-    flush_queued_reg_saves ();
++    dwarf2out_flush_queued_reg_saves ();
+
+   if (!RTX_FRAME_RELATED_P (insn))
+     {
+@@ -15578,7 +15577,8 @@
+     ;
+   /* Vectors only work if their mode is supported by the target.
+      FIXME: generic vectors ought to work too.  */
+-  else if (TREE_CODE (type) == VECTOR_TYPE && TYPE_MODE (type) == BLKmode)
++  else if (TREE_CODE (type) == VECTOR_TYPE
++	   && !VECTOR_MODE_P (TYPE_MODE (type)))
+     ;
+   /* If the initializer is something that we know will expand into an
+      immediate RTL constant, expand it now.  We must be careful not to
+Index: gcc/dwarf2out.h
+===================================================================
+--- a/src/gcc/dwarf2out.h	(.../tags/gcc_4_5_1_release)
++++ b/src/gcc/dwarf2out.h	(.../branches/gcc-4_5-branch)
+@@ -22,6 +22,7 @@
+ extern void dwarf2out_frame_debug (rtx, bool);
+ extern void dwarf2out_begin_epilogue (rtx);
+ extern void dwarf2out_frame_debug_restore_state (void);
++extern void dwarf2out_flush_queued_reg_saves (void);
+
+ extern void debug_dwarf (void);
+ struct die_struct;
 Index: gcc/ada/ChangeLog
 ===================================================================
 --- a/src/gcc/ada/ChangeLog	(.../tags/gcc_4_5_1_release)
@@ -9228,6 +9370,91 @@ Index: gcc/tree-sra.c

    statistics_counter_event (cfun, "Unused parameters deleted",
  			    sra_stats.deleted_unused_parameters);
+Index: gcc/lto/lto-elf.c
+===================================================================
+--- a/src/gcc/lto/lto-elf.c	(.../tags/gcc_4_5_1_release)
++++ b/src/gcc/lto/lto-elf.c	(.../branches/gcc-4_5-branch)
+@@ -38,7 +38,14 @@
+ # define EM_SPARC32PLUS 18
+ #endif
+
++#ifndef ELFOSABI_NONE
++# define ELFOSABI_NONE 0
++#endif
++#ifndef ELFOSABI_LINUX
++# define ELFOSABI_LINUX 3
++#endif
+
++
+ /* Handle opening elf files on hosts, such as Windows, that may use
+    text file handling that will break binary access.  */
+ #ifndef O_BINARY
+@@ -496,7 +503,6 @@
+       error ("could not read ELF identification information: %s",
+ 	      elf_errmsg (0));
+       return false;
+-
+     }
+
+   if (!cached_file_attrs.initialized)
+@@ -519,11 +525,32 @@
+       memcpy (cached_file_attrs.elf_ident, elf_ident,
+ 	      sizeof cached_file_attrs.elf_ident);
+     }
++  else
++    {
++      char elf_ident_buf[EI_NIDENT];
+
+-  if (memcmp (elf_ident, cached_file_attrs.elf_ident,
+-	      sizeof cached_file_attrs.elf_ident))
+-    return false;
++      memcpy (elf_ident_buf, elf_ident, sizeof elf_ident_buf);
+
++      if (elf_ident_buf[EI_OSABI] != cached_file_attrs.elf_ident[EI_OSABI])
++	{
++	  /* Allow mixing ELFOSABI_NONE with ELFOSABI_LINUX, with the result
++	     ELFOSABI_LINUX.  */
++	  if (elf_ident_buf[EI_OSABI] == ELFOSABI_NONE
++	      && cached_file_attrs.elf_ident[EI_OSABI] == ELFOSABI_LINUX)
++	    elf_ident_buf[EI_OSABI] = cached_file_attrs.elf_ident[EI_OSABI];
++	  else if (elf_ident_buf[EI_OSABI] == ELFOSABI_LINUX
++		   && cached_file_attrs.elf_ident[EI_OSABI] == ELFOSABI_NONE)
++	    cached_file_attrs.elf_ident[EI_OSABI] = elf_ident_buf[EI_OSABI];
++	}
++
++      if (memcmp (elf_ident_buf, cached_file_attrs.elf_ident,
++		  sizeof cached_file_attrs.elf_ident))
++	{
++	  error ("incompatible ELF identification");
++	  return false;
++	}
++    }
++
+   /* Check that the input file is a relocatable object file with the correct
+      architecture.  */
+   switch (cached_file_attrs.bits)
+Index: gcc/lto/ChangeLog
+===================================================================
+--- a/src/gcc/lto/ChangeLog	(.../tags/gcc_4_5_1_release)
++++ b/src/gcc/lto/ChangeLog	(.../branches/gcc-4_5-branch)
+@@ -1,3 +1,17 @@
++2010-09-03  Richard Guenther  <rguenther@suse.de>
++
++	* lto-elf.c (validate_file): Always error if validation fails.
++
++2010-09-03  Richard Guenther  <rguenther@suse.de>
++
++	PR lto/45496
++	Backport from mainline
++	2010-07-07  Jakub Jelinek  <jakub@redhat.com>
++
++	* lto-elf.c (ELFOSABI_NONE, ELFOSABI_LINUX): Define if not defined.
++	(validate_file): Allow merging of ELFOSABI_NONE with ELFOSABI_LINUX
++	objects.
++
+ 2010-07-31  Release Manager
+
+ 	* GCC 4.5.1 released.
 Index: gcc/ipa-prop.c
 ===================================================================
 --- a/src/gcc/ipa-prop.c	(.../tags/gcc_4_5_1_release)
@@ -10295,7 +10522,22 @@ Index: gcc/config/i386/i386.c
 ===================================================================
 --- a/src/gcc/config/i386/i386.c	(.../tags/gcc_4_5_1_release)
 +++ b/src/gcc/config/i386/i386.c	(.../branches/gcc-4_5-branch)
-@@ -9491,8 +9491,7 @@
+@@ -7777,13 +7777,7 @@
+       /* Ensure all queued register saves are flushed before the
+ 	 call.  */
+       if (dwarf2out_do_frame ())
+-	{
+-	  rtx insn;
+-	  start_sequence ();
+-	  insn = emit_barrier ();
+-	  end_sequence ();
+-	  dwarf2out_frame_debug (insn, false);
+-	}
++	dwarf2out_flush_queued_reg_saves ();
+ #endif
+       xops[2] = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name));
+       xops[2] = gen_rtx_MEM (QImode, xops[2]);
+@@ -9491,8 +9485,7 @@
       to test cfun for being non-NULL. */
    if (TARGET_K6 && cfun && optimize_function_for_speed_p (cfun)
        && base_reg && !index_reg && !disp