This commit is contained in:
Jakub Jelinek 2006-04-06 16:56:54 +00:00
parent c882a66296
commit 81cc570d17
5 changed files with 106 additions and 10 deletions

View File

@ -1 +1 @@
gcc-4.1.0-20060405.tar.bz2
gcc-4.1.0-20060406.tar.bz2

77
gcc41-objc-rh185398.patch Normal file
View File

@ -0,0 +1,77 @@
2006-04-06 Jakub Jelinek <jakub@redhat.com>
* objc-act.c (objc_push_param): If changing type, run relayout_decl
on the parameter.
* objc/compile/20060406-1.m: New test.
--- gcc/objc/objc-act.c.jj 2006-03-04 08:01:27.000000000 +0100
+++ gcc/objc/objc-act.c 2006-04-06 16:56:57.000000000 +0200
@@ -1,6 +1,6 @@
/* Implement classes and message passing for Objective C.
Copyright (C) 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
Contributed by Steve Naroff.
This file is part of GCC.
@@ -8222,21 +8222,29 @@ static GTY(()) tree objc_parmlist = NULL
static void
objc_push_parm (tree parm)
{
+ tree type = TREE_TYPE (parm);
+
/* Decay arrays and functions into pointers. */
if (TREE_CODE (TREE_TYPE (parm)) == ARRAY_TYPE)
- TREE_TYPE (parm) = build_pointer_type (TREE_TYPE (TREE_TYPE (parm)));
+ TREE_TYPE (parm) = build_pointer_type (TREE_TYPE (type));
else if (TREE_CODE (TREE_TYPE (parm)) == FUNCTION_TYPE)
- TREE_TYPE (parm) = build_pointer_type (TREE_TYPE (parm));
+ TREE_TYPE (parm) = build_pointer_type (type);
DECL_ARG_TYPE (parm)
= lang_hooks.types.type_promotes_to (TREE_TYPE (parm));
+ if (type != TREE_TYPE (parm))
+ {
+ relayout_decl (parm);
+ type = TREE_TYPE (parm);
+ }
+
/* Record constancy and volatility. */
c_apply_type_quals_to_decl
- ((TYPE_READONLY (TREE_TYPE (parm)) ? TYPE_QUAL_CONST : 0)
- | (TYPE_RESTRICT (TREE_TYPE (parm)) ? TYPE_QUAL_RESTRICT : 0)
- | (TYPE_VOLATILE (TREE_TYPE (parm)) ? TYPE_QUAL_VOLATILE : 0), parm);
-
+ ((TYPE_READONLY (type) ? TYPE_QUAL_CONST : 0)
+ | (TYPE_RESTRICT (type) ? TYPE_QUAL_RESTRICT : 0)
+ | (TYPE_VOLATILE (type) ? TYPE_QUAL_VOLATILE : 0), parm);
+
objc_parmlist = chainon (objc_parmlist, parm);
}
--- gcc/testsuite/objc/compile/20060406-1.m.jj 2006-04-06 17:25:59.000000000 +0200
+++ gcc/testsuite/objc/compile/20060406-1.m 2006-04-06 17:20:48.000000000 +0200
@@ -0,0 +1,21 @@
+typedef struct
+{
+ void *p;
+} *S;
+
+@protocol O
+- (unsigned)j;
+@end
+
+@interface I
++ (unsigned char)T:(S<O>[2])p v:(S<O>)h;
+@end
+
+@implementation I
++ (unsigned char)T:(S<O>[2])p v:(S<O>)h
+{
+ p[0] = (S) 0;
+ p[1] = (S) 0;
+ return 0;
+}
+@end

View File

@ -1,4 +1,4 @@
2006-03-28 Jakub Jelinek <jakub@redhat.com>
2006-04-06 Jakub Jelinek <jakub@redhat.com>
PR middle-end/20297
* gcc.dg/visibility-11.c: Moved to...
@ -34,12 +34,13 @@
-}
--- gcc/testsuite/gcc.target/i386/visibility-1.c.jj 2006-03-28 14:30:17.000000000 +0200
+++ gcc/testsuite/gcc.target/i386/visibility-1.c 2006-03-28 14:58:48.000000000 +0200
@@ -0,0 +1,24 @@
@@ -0,0 +1,25 @@
+/* PR middle-end/20297 */
+/* The memcpy FUNCTION_DECL built in the middle-end for block moves got
+ hidden visibility from the first push, so the call didn't use the PLT. */
+
+/* { dg-do compile { target { { i?86-*-linux* x86_64-*-linux* i?86-*-*bsd* x86_64-*-*bsd* } && ilp32 } } } */
+/* { dg-do compile { target { { *-*-linux* *-*-*bsd* *-*-solaris2* *-*-elf* *-*-gnu* *-*-sysv[45]* } && ilp32 } } } */
+/* { dg-require-effective-target fpic } */
+/* { dg-require-visibility "" } */
+/* { dg-options "-Os -fpic" } */
+/* { dg-final { scan-assembler "memcpy@PLT" } } */

View File

@ -1,6 +1,6 @@
%define DATE 20060405
%define DATE 20060406
%define gcc_version 4.1.0
%define gcc_release 5
%define gcc_release 6
%define _unpackaged_files_terminate_build 0
%define multilib_64_archs sparc64 ppc64 s390x x86_64
%ifarch %{ix86} x86_64 ia64
@ -111,6 +111,9 @@ Patch13: gcc41-rh184446.patch
Patch14: gcc41-pr21764.patch
Patch15: gcc41-pr21581.patch
Patch16: gcc41-pr20297-test.patch
Patch17: gcc41-java-pr13212.patch
Patch18: gcc41-objc-rh185398.patch
Patch19: gcc41-pr27057.patch
%define _gnu %{nil}
%ifarch sparc
@ -403,9 +406,12 @@ which are required to run programs compiled with the GNAT.
%patch11 -p0 -b .mni~
%patch12 -p0 -b .cfaval~
%patch13 -p0 -b .rh184446~
#%patch14 -p0 -b .pr21764~
%patch14 -p0 -b .pr21764~
#%patch15 -p0 -b .pr21581~
#%patch16 -p0 -E -b .pr20297-test~
%patch16 -p0 -E -b .pr20297-test~
%patch17 -p0 -b .java-pr13212~
%patch18 -p0 -b .objc-rh185398~
%patch19 -p0 -b .pr27057~
sed -i -e 's/4\.1\.1/4.1.0/' gcc/BASE-VER gcc/version.c
sed -i -e 's/" (Red Hat[^)]*)"/" (Red Hat %{version}-%{gcc_release})"/' gcc/version.c
@ -1423,7 +1429,19 @@ fi
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
%changelog
* Wed Apr 4 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-5
* Thu Apr 6 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-6
- update from gcc-4_1-branch (-r)
- PRs classpath/24752, classpath/27028, libgcj/26625, libgcj/27024,
tree-optimization/26996
- reenable PR c++/19238, c++/21764 fixes, only PR c++/21581 is not
applied
- better fix for Java GC vs. pthread_create (Bryce McKinlay, #,
PR libgcj/13212)
- fix objc_push_parm (#185398)
- fix ICE with -feliminate-dwarf2-dups and using namespace (#187787,
PR debug/27057)
* Wed Apr 5 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-5
- update from gcc-4_1-branch (-r112431:112706)
- PRs bootstrap/26936, bootstrap/27023, classpath/25924, fortran/19303,
fortran/25358, fortran/26816, java/25414, java/26042, java/26858,

View File

@ -1 +1 @@
2ac716d7aab984dd14038adfb230eca6 gcc-4.1.0-20060405.tar.bz2
4a823d2ae3352d0bf18d1f25880a6ec0 gcc-4.1.0-20060406.tar.bz2