This commit is contained in:
Jakub Jelinek 2006-09-30 19:13:59 +00:00
parent 64c38ad92b
commit 4f7e86848f
3 changed files with 51 additions and 4 deletions

View File

@ -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;
+}

View File

@ -1,6 +1,6 @@
2006-05-05 Jakub Jelinek <jakub@redhat.com>
* gcc.dg/tls/opt-12.c: New test.
* gcc.dg/tls/opt-13.c: New test.
2006-04-25 Jakub Jelinek <jakub@redhat.com>
@ -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" } */

View File

@ -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 <jakub@redhat.com> 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 <jakub@redhat.com> 4.1.1-27
- update from gcc-4_1-branch (-r117225:117266)
- PR target/29230