diff --git a/gcc41-pr29272.patch b/gcc41-pr29272.patch index 00ff7b5..50fdf99 100644 --- a/gcc41-pr29272.patch +++ b/gcc41-pr29272.patch @@ -4,6 +4,8 @@ * builtins.c (fold_builtin_memset, fold_builtin_memory_op): Restrict single entry optimization to variables and components thereof. + * gcc.c-torture/execute/20060930-1.c: New test. + --- gcc/builtins.c.jj 2006-09-22 10:29:55.000000000 +0200 +++ gcc/builtins.c 2006-09-28 20:31:30.000000000 +0200 @@ -7905,7 +7905,7 @@ fold_builtin_exponent (tree fndecl, tree @@ -72,3 +74,37 @@ length = tree_low_cst (len, 1); if (GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (destvar))) != length || get_pointer_alignment (dest, BIGGEST_ALIGNMENT) / BITS_PER_UNIT +--- gcc/testsuite/gcc.c-torture/execute/20060930-1.c.jj 2006-09-30 21:10:17.000000000 +0200 ++++ gcc/testsuite/gcc.c-torture/execute/20060930-1.c 2006-09-30 21:09:33.000000000 +0200 +@@ -0,0 +1,31 @@ ++/* PR middle-end/29272 */ ++ ++extern void abort (void); ++ ++struct S { struct S *s; } s; ++struct T { struct T *t; } t; ++ ++static inline void ++foo (void *s) ++{ ++ struct T *p = s; ++ __builtin_memcpy (&p->t, &t.t, sizeof (t.t)); ++} ++ ++void * ++__attribute__((noinline)) ++bar (void *p, struct S *q) ++{ ++ q->s = &s; ++ foo (p); ++ return q->s; ++} ++ ++int ++main (void) ++{ ++ t.t = &t; ++ if (bar (&s, &s) != (void *) &t) ++ abort (); ++ return 0; ++} diff --git a/gcc41-tests.patch b/gcc41-tests.patch index b41f684..d9b9791 100644 --- a/gcc41-tests.patch +++ b/gcc41-tests.patch @@ -1,6 +1,6 @@ 2006-05-05 Jakub Jelinek - * gcc.dg/tls/opt-12.c: New test. + * gcc.dg/tls/opt-13.c: New test. 2006-04-25 Jakub Jelinek @@ -213,8 +213,8 @@ + v = 0.; + return v; +} ---- gcc/testsuite/gcc.dg/tls/opt-12.c 2006-04-19 19:21:31.748476000 +0200 -+++ gcc/testsuite/gcc.dg/tls/opt-12.c 2006-05-05 11:01:33.000000000 +0200 +--- gcc/testsuite/gcc.dg/tls/opt-13.c 2006-04-19 19:21:31.748476000 +0200 ++++ gcc/testsuite/gcc.dg/tls/opt-13.c 2006-05-05 11:01:33.000000000 +0200 @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ diff --git a/gcc41.spec b/gcc41.spec index 06ad463..780d805 100644 --- a/gcc41.spec +++ b/gcc41.spec @@ -1,6 +1,6 @@ %define DATE 20060928 %define gcc_version 4.1.1 -%define gcc_release 27 +%define gcc_release 28 %define _unpackaged_files_terminate_build 0 %define multilib_64_archs sparc64 ppc64 s390x x86_64 %ifarch %{ix86} x86_64 ia64 @@ -135,6 +135,9 @@ Patch26: gcc41-pr27567.patch Patch27: gcc41-pr29272.patch Patch28: gcc41-pr29059.patch Patch29: gcc41-strncat-chk.patch +Patch30: gcc41-pr29154.patch +Patch31: gcc41-pr29198.patch +Patch32: gcc41-power6x.patch %define _gnu %{nil} %ifarch sparc @@ -447,6 +450,9 @@ which are required to run programs compiled with the GNAT. %patch27 -p0 -b .pr29272~ %patch28 -p0 -b .pr29059~ %patch29 -p0 -b .strncat-chk~ +%patch30 -p0 -b .pr29154~ +%patch31 -p0 -b .pr29198~ +%patch32 -p0 -b .power6x~ sed -i -e 's/4\.1\.2/4.1.1/' gcc/BASE-VER gcc/version.c sed -i -e 's/" (Red Hat[^)]*)"/" (Red Hat %{version}-%{gcc_release})"/' gcc/version.c @@ -1508,6 +1514,11 @@ fi %doc rpm.doc/changelogs/libmudflap/ChangeLog* %changelog +* Sat Sep 30 2006 Jakub Jelinek 4.1.1-28 +- fix i386/x86_64 legitimize_pic_address with TLS symbols (PR target/29198) +- fix gimplification of post-increment with side-effects on the inner + expression (PR c/29154) + * Thu Sep 28 2006 Jakub Jelinek 4.1.1-27 - update from gcc-4_1-branch (-r117225:117266) - PR target/29230