4.1.1-18
This commit is contained in:
parent
466a7f64bb
commit
5636c0d8a1
@ -1 +1 @@
|
|||||||
gcc-4.1.1-20060816.tar.bz2
|
gcc-4.1.1-20060818.tar.bz2
|
||||||
|
@ -22,13 +22,13 @@
|
|||||||
+extern int foo (union u *);
|
+extern int foo (union u *);
|
||||||
--- gcc/c-typeck.c.jj 2006-08-17 09:55:11.000000000 +0200
|
--- gcc/c-typeck.c.jj 2006-08-17 09:55:11.000000000 +0200
|
||||||
+++ gcc/c-typeck.c 2006-08-18 09:14:15.000000000 +0200
|
+++ gcc/c-typeck.c 2006-08-18 09:14:15.000000000 +0200
|
||||||
@@ -1126,11 +1126,12 @@ tagged_types_tu_compatible_p (tree t1, t
|
@@ -1072,11 +1072,12 @@ tagged_types_tu_compatible_p (tree t1, t
|
||||||
{
|
{
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
-
|
-
|
||||||
- if (DECL_NAME (s1) == NULL
|
- if (DECL_NAME (s1) == NULL
|
||||||
- || DECL_NAME (s1) != DECL_NAME (s2))
|
- || DECL_NAME (s1) != DECL_NAME (s2))
|
||||||
+ if (DECL_NAME (s1) != DECL_NAME (s2))
|
+ if (DECL_NAME (s1) != DECL_NAME (s2))
|
||||||
break;
|
break;
|
||||||
result = comptypes_internal (TREE_TYPE (s1), TREE_TYPE (s2));
|
result = comptypes_internal (TREE_TYPE (s1), TREE_TYPE (s2));
|
||||||
@ -38,7 +38,7 @@
|
|||||||
if (result == 0)
|
if (result == 0)
|
||||||
{
|
{
|
||||||
tu->val = 0;
|
tu->val = 0;
|
||||||
@@ -1157,28 +1158,31 @@ tagged_types_tu_compatible_p (tree t1, t
|
@@ -1103,28 +1104,31 @@ tagged_types_tu_compatible_p (tree t1, t
|
||||||
{
|
{
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
|
|
||||||
|
64
gcc41-pr28755.patch
Normal file
64
gcc41-pr28755.patch
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
2006-08-17 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR middle-end/28755
|
||||||
|
* expr.c (expand_expr_real_1) <case ARRAY_REF>: Make sure
|
||||||
|
the const array field optimization doesn't create an extra constant
|
||||||
|
MEM.
|
||||||
|
|
||||||
|
* gcc.dg/pr28755.c: New test.
|
||||||
|
|
||||||
|
--- gcc/expr.c.jj 2006-08-09 17:54:03.000000000 +0200
|
||||||
|
+++ gcc/expr.c 2006-08-17 13:00:33.000000000 +0200
|
||||||
|
@@ -7105,13 +7105,25 @@ expand_expr_real_1 (tree exp, rtx target
|
||||||
|
field, value)
|
||||||
|
if (tree_int_cst_equal (field, index))
|
||||||
|
{
|
||||||
|
- if (!TREE_SIDE_EFFECTS (value))
|
||||||
|
+ if (TREE_SIDE_EFFECTS (value))
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ if (TREE_CODE (value) != CONSTRUCTOR)
|
||||||
|
return expand_expr (fold (value), target, tmode,
|
||||||
|
modifier);
|
||||||
|
+
|
||||||
|
+ /* For CONSTRUCTOR this optimization is not always
|
||||||
|
+ a win - if expand_expr creates a temporary
|
||||||
|
+ constant, we just waste unnecessarily rodata
|
||||||
|
+ space. */
|
||||||
|
+ temp = expand_expr (value, target, tmode, modifier);
|
||||||
|
+ if (temp == target
|
||||||
|
+ || (temp && GET_CODE (temp) != MEM))
|
||||||
|
+ return temp;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- else if(TREE_CODE (init) == STRING_CST)
|
||||||
|
+ else if (TREE_CODE (init) == STRING_CST)
|
||||||
|
{
|
||||||
|
tree index1 = index;
|
||||||
|
tree low_bound = array_ref_low_bound (exp);
|
||||||
|
--- gcc/testsuite/gcc.dg/pr28755.c.jj 2006-08-17 12:59:57.000000000 +0200
|
||||||
|
+++ gcc/testsuite/gcc.dg/pr28755.c 2006-08-17 12:59:57.000000000 +0200
|
||||||
|
@@ -0,0 +1,22 @@
|
||||||
|
+/* PR middle-end/28755 */
|
||||||
|
+/* { dg-do compile } */
|
||||||
|
+/* { dg-options "-Os" } */
|
||||||
|
+/* { dg-final { scan-assembler-times "2112543726\|7deadbee" 2 } } */
|
||||||
|
+
|
||||||
|
+struct S
|
||||||
|
+{
|
||||||
|
+ void *s1;
|
||||||
|
+ unsigned s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+const struct S array[] = {
|
||||||
|
+ { (void *) 0, 60, 640, 2112543726, 39682, 48, 16, 33, 10, 96, 2, 0, 0, 4 },
|
||||||
|
+ { (void *) 0, 60, 2112543726, 192, 18251, 16, 33, 10, 96, 2, 0, 0, 4, 212 }
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+foo (struct S *x)
|
||||||
|
+{
|
||||||
|
+ x[0] = array[0];
|
||||||
|
+ x[5] = array[1];
|
||||||
|
+}
|
19
gcc41.spec
19
gcc41.spec
@ -1,6 +1,6 @@
|
|||||||
%define DATE 20060816
|
%define DATE 20060818
|
||||||
%define gcc_version 4.1.1
|
%define gcc_version 4.1.1
|
||||||
%define gcc_release 17
|
%define gcc_release 18
|
||||||
%define _unpackaged_files_terminate_build 0
|
%define _unpackaged_files_terminate_build 0
|
||||||
%define multilib_64_archs sparc64 ppc64 s390x x86_64
|
%define multilib_64_archs sparc64 ppc64 s390x x86_64
|
||||||
%ifarch %{ix86} x86_64 ia64
|
%ifarch %{ix86} x86_64 ia64
|
||||||
@ -144,6 +144,8 @@ Patch36: gcc41-pr28725.patch
|
|||||||
Patch37: gcc41-pr28709.patch
|
Patch37: gcc41-pr28709.patch
|
||||||
Patch38: gcc41-pr28744.patch
|
Patch38: gcc41-pr28744.patch
|
||||||
Patch39: gcc41-x86_64-kernel-ssp.patch
|
Patch39: gcc41-x86_64-kernel-ssp.patch
|
||||||
|
Patch40: gcc41-pr28755.patch
|
||||||
|
Patch41: gcc41-pr27898.patch
|
||||||
|
|
||||||
%define _gnu %{nil}
|
%define _gnu %{nil}
|
||||||
%ifarch sparc
|
%ifarch sparc
|
||||||
@ -464,6 +466,8 @@ which are required to run programs compiled with the GNAT.
|
|||||||
%patch37 -p0 -b .pr28709~
|
%patch37 -p0 -b .pr28709~
|
||||||
%patch38 -p0 -b .pr28744~
|
%patch38 -p0 -b .pr28744~
|
||||||
%patch39 -p0 -b .x86_64-kernel-ssp~
|
%patch39 -p0 -b .x86_64-kernel-ssp~
|
||||||
|
%patch40 -p0 -b .pr28755~
|
||||||
|
%patch41 -p0 -b .pr27898~
|
||||||
|
|
||||||
sed -i -e 's/4\.1\.2/4.1.1/' gcc/BASE-VER gcc/version.c
|
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
|
sed -i -e 's/" (Red Hat[^)]*)"/" (Red Hat %{version}-%{gcc_release})"/' gcc/version.c
|
||||||
@ -1524,6 +1528,17 @@ fi
|
|||||||
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
|
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Aug 18 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-18
|
||||||
|
- update from gcc-4_1-branch (-r116176:116223)
|
||||||
|
- PRs c++/28593, c++/28606, c++/28710, c/27697, middle-end/20256,
|
||||||
|
middle-end/25211, middle-end/26435
|
||||||
|
- don't waste .rodata space when copying from const array with large
|
||||||
|
entries (PR middle-end/28755)
|
||||||
|
- fix --combine with anonymous structures in unions (Alexandre Oliva,
|
||||||
|
PR c/27898)
|
||||||
|
- rebuilt with latest binutils to pick up 64K -z commonpagesize on ppc*
|
||||||
|
(#203001)
|
||||||
|
|
||||||
* Wed Aug 16 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-17
|
* Wed Aug 16 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-17
|
||||||
- update from gcc-4_1-branch (-r116082:116176)
|
- update from gcc-4_1-branch (-r116082:116176)
|
||||||
- PRs c++/27894, c++/28677, c/28649, middle-end/28075,
|
- PRs c++/27894, c++/28677, c/28649, middle-end/28075,
|
||||||
|
Loading…
Reference in New Issue
Block a user