[meego-commits] 5500: Changes to devel:base/gcc
Austin Zhang
austin.zhang at intel.com
Fri Jul 9 07:39:08 UTC 2010
Hi,
I have made the following changes to gcc in project devel:base. Please review and accept ASAP.
Thank You,
Austin Zhang
[This message was auto-generated]
---
Request #5500:
submit: home:austin:branches:devel:base/gcc(r3)(cleanup) -> devel:base/gcc
Message:
Applied 4.5.0 mainline branch patch for fixing PR#43572(PR#43904), Added missing symbolic link
State: new 2010-07-08T19:34:34 austin
Comment: None
changes files:
--------------
--- gcc.changes
+++ gcc.changes
@@ -1,0 +2 @@
+- Applied 4.5.0 mainline branch patch for fixing PR#43572(PR#43904)
new:
----
gcc45-pr43572.patch
spec files:
-----------
--- cross-armv5tel-gcc-accel.spec
+++ cross-armv5tel-gcc-accel.spec
@@ -181,6 +181,7 @@
Patch16: gcc44-libgomp-omp_h-multilib.patch
Patch20: gcc44-libtool-no-rpath.patch
Patch29: gcc44-libstdc++-docs.patch
+Patch30: gcc45-pr43572.patch
Patch40: gcc45-use-atom.patch
Patch41: libgcc_post_upgrade.c.arm.patch
@@ -522,6 +523,7 @@
%patch29 -p0 -b .libstdc++-docs~
%endif
+%patch30 -p1 -b .pr43572
%patch40 -p1 -b .atom
#%patch42 -p0 -b .var-track1~
--- cross-armv5tel-gcc.spec
+++ cross-armv5tel-gcc.spec
@@ -181,6 +181,7 @@
Patch16: gcc44-libgomp-omp_h-multilib.patch
Patch20: gcc44-libtool-no-rpath.patch
Patch29: gcc44-libstdc++-docs.patch
+Patch30: gcc45-pr43572.patch
Patch40: gcc45-use-atom.patch
Patch41: libgcc_post_upgrade.c.arm.patch
@@ -522,6 +523,7 @@
%patch29 -p0 -b .libstdc++-docs~
%endif
+%patch30 -p1 -b .pr43572
%patch40 -p1 -b .atom
#%patch42 -p0 -b .var-track1~
--- cross-armv7l-gcc-accel.spec
+++ cross-armv7l-gcc-accel.spec
@@ -181,6 +181,7 @@
Patch16: gcc44-libgomp-omp_h-multilib.patch
Patch20: gcc44-libtool-no-rpath.patch
Patch29: gcc44-libstdc++-docs.patch
+Patch30: gcc45-pr43572.patch
Patch40: gcc45-use-atom.patch
Patch41: libgcc_post_upgrade.c.arm.patch
@@ -522,6 +523,7 @@
%patch29 -p0 -b .libstdc++-docs~
%endif
+%patch30 -p1 -b .pr43572
%patch40 -p1 -b .atom
#%patch42 -p0 -b .var-track1~
--- cross-armv7l-gcc.spec
+++ cross-armv7l-gcc.spec
@@ -181,6 +181,7 @@
Patch16: gcc44-libgomp-omp_h-multilib.patch
Patch20: gcc44-libtool-no-rpath.patch
Patch29: gcc44-libstdc++-docs.patch
+Patch30: gcc45-pr43572.patch
Patch40: gcc45-use-atom.patch
Patch41: libgcc_post_upgrade.c.arm.patch
@@ -522,6 +523,7 @@
%patch29 -p0 -b .libstdc++-docs~
%endif
+%patch30 -p1 -b .pr43572
%patch40 -p1 -b .atom
#%patch42 -p0 -b .var-track1~
--- gcc.spec
+++ gcc.spec
@@ -181,6 +181,7 @@
Patch16: gcc44-libgomp-omp_h-multilib.patch
Patch20: gcc44-libtool-no-rpath.patch
Patch29: gcc44-libstdc++-docs.patch
+Patch30: gcc45-pr43572.patch
Patch40: gcc45-use-atom.patch
Patch41: libgcc_post_upgrade.c.arm.patch
@@ -522,6 +523,7 @@
%patch29 -p0 -b .libstdc++-docs~
%endif
+%patch30 -p1 -b .pr43572
%patch40 -p1 -b .atom
#%patch42 -p0 -b .var-track1~
other changes:
--------------
++++++ gcc45-pr43572.patch (new)
--- gcc45-pr43572.patch
+++ gcc45-pr43572.patch
+diff -Naurp gcc-4.5.0-orig/gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c gcc-4.5.0/gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c
+--- gcc-4.5.0-orig/gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c 1970-01-01 08:00:00.000000000 +0800
++++ gcc-4.5.0/gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c 2010-07-09 13:56:34.593063124 +0800
+@@ -0,0 +1,12 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -fdump-tree-tailc" } */
++
++void
++set_integer (void *dest, int value, int length)
++{
++ int tmp = value;
++ __builtin_memcpy (dest, (void *) &tmp, length);
++}
++
++/* { dg-final { scan-tree-dump-not "tail call" "tailc" } } */
++/* { dg-final { cleanup-tree-dump "tailc" } } */
+diff -Naurp gcc-4.5.0-orig/gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c gcc-4.5.0/gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c
+--- gcc-4.5.0-orig/gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c 1970-01-01 08:00:00.000000000 +0800
++++ gcc-4.5.0/gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c 2010-07-09 13:56:34.619072316 +0800
+@@ -0,0 +1,33 @@
++/* PR tree-optimization/43904. */
++/* { dg-do run } */
++/* { dg-options "-O1 -foptimize-sibling-calls" } */
++
++typedef __SIZE_TYPE__ size_t;
++extern void abort(void);
++
++void *memcpy(void *dest, const void *src, size_t n);
++
++void
++buggy_init(void *ptr, size_t size)
++{
++ const char *str = "Hello world!";
++ memcpy(ptr, &str, size);
++}
++
++void
++expose_bug(void *ptr, size_t size)
++{
++ const char *str;
++ memcpy(&str, ptr, size);
++ if (*str != 'H')
++ abort ();
++}
++
++int
++main()
++{
++ const char *ptr;
++ buggy_init(&ptr, sizeof(ptr));
++ expose_bug(&ptr, sizeof(ptr));
++ return 0;
++}
+diff -Naurp gcc-4.5.0-orig/gcc/tree-tailcall.c gcc-4.5.0/gcc/tree-tailcall.c
+--- gcc-4.5.0-orig/gcc/tree-tailcall.c 2010-07-09 13:46:12.430567142 +0800
++++ gcc-4.5.0/gcc/tree-tailcall.c 2010-07-09 13:50:35.371673436 +0800
+@@ -375,6 +375,8 @@ find_tail_calls (basic_block bb, struct
+ tree m, a;
+ basic_block abb;
+ size_t idx;
++ tree var;
++ referenced_var_iterator rvi;
+
+ if (!single_succ_p (bb))
+ return;
+@@ -462,6 +464,16 @@ find_tail_calls (basic_block bb, struct
+ tail_recursion = true;
+ }
+
++ /* Make sure the tail invocation of this function does not refer
++ to local variables. */
++ FOR_EACH_REFERENCED_VAR (var, rvi)
++ {
++ if (TREE_CODE (var) != PARM_DECL
++ && auto_var_in_fn_p (var, cfun->decl)
++ && ref_maybe_used_by_stmt_p (call, var))
++ return;
++ }
++
+ /* Now check the statements after the call. None of them has virtual
+ operands, so they may only depend on the call through its return
+ value. The return value should also be dependent on each of them,
More information about the MeeGo-commits
mailing list