4.3.2-4
This commit is contained in:
parent
34352b072b
commit
8b55e223d6
@ -1,2 +1,2 @@
|
||||
gcc-4.3.2-20080905.tar.bz2
|
||||
gcc-4.3.2-20080917.tar.bz2
|
||||
fastjar-0.95.tar.gz
|
||||
|
118
gcc43-pr34037.patch
Normal file
118
gcc43-pr34037.patch
Normal file
@ -0,0 +1,118 @@
|
||||
2008-09-11 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR debug/34037
|
||||
* gimplify.c (gimplify_type_sizes): When not optimizing, ensure
|
||||
TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
|
||||
VAR_DECL.
|
||||
* cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
|
||||
!DECL_IGNORED_P vars in unexpanded_var_list list for instantiate_decls,
|
||||
ggc_free other TREE_LIST nodes from that chain.
|
||||
* function.c (instantiate_decls): Instantiate also DECL_RTL
|
||||
of vars in cfun->unexpanded_var_list, free that list afterwards.
|
||||
|
||||
--- gcc/gimplify.c.jj 2008-09-10 20:50:11.000000000 +0200
|
||||
+++ gcc/gimplify.c 2008-09-11 13:54:22.000000000 +0200
|
||||
@@ -7105,6 +7105,18 @@ gimplify_type_sizes (tree type, gimple_s
|
||||
/* These types may not have declarations, so handle them here. */
|
||||
gimplify_type_sizes (TREE_TYPE (type), list_p);
|
||||
gimplify_type_sizes (TYPE_DOMAIN (type), list_p);
|
||||
+ /* When not optimizing, ensure VLA bounds aren't removed. */
|
||||
+ if (!optimize
|
||||
+ && TYPE_DOMAIN (type)
|
||||
+ && INTEGRAL_TYPE_P (TYPE_DOMAIN (type)))
|
||||
+ {
|
||||
+ t = TYPE_MIN_VALUE (TYPE_DOMAIN (type));
|
||||
+ if (t && TREE_CODE (t) == VAR_DECL && DECL_ARTIFICIAL (t))
|
||||
+ DECL_IGNORED_P (t) = 0;
|
||||
+ t = TYPE_MAX_VALUE (TYPE_DOMAIN (type));
|
||||
+ if (t && TREE_CODE (t) == VAR_DECL && DECL_ARTIFICIAL (t))
|
||||
+ DECL_IGNORED_P (t) = 0;
|
||||
+ }
|
||||
break;
|
||||
|
||||
case RECORD_TYPE:
|
||||
--- gcc/cfgexpand.c.jj 2008-09-09 16:08:04.000000000 +0200
|
||||
+++ gcc/cfgexpand.c 2008-09-11 15:01:00.000000000 +0200
|
||||
@@ -1440,7 +1440,7 @@ estimated_stack_frame_size (void)
|
||||
static void
|
||||
expand_used_vars (void)
|
||||
{
|
||||
- tree t, outer_block = DECL_INITIAL (current_function_decl);
|
||||
+ tree t, next, outer_block = DECL_INITIAL (current_function_decl);
|
||||
|
||||
/* Compute the phase of the stack frame for this function. */
|
||||
{
|
||||
@@ -1453,11 +1453,15 @@ expand_used_vars (void)
|
||||
|
||||
/* At this point all variables on the unexpanded_var_list with TREE_USED
|
||||
set are not associated with any block scope. Lay them out. */
|
||||
- for (t = cfun->unexpanded_var_list; t; t = TREE_CHAIN (t))
|
||||
+ t = cfun->unexpanded_var_list;
|
||||
+ cfun->unexpanded_var_list = NULL_TREE;
|
||||
+ for (; t; t = next)
|
||||
{
|
||||
tree var = TREE_VALUE (t);
|
||||
bool expand_now = false;
|
||||
|
||||
+ next = TREE_CHAIN (t);
|
||||
+
|
||||
/* We didn't set a block for static or extern because it's hard
|
||||
to tell the difference between a global variable (re)declared
|
||||
in a local scope, and one that's really declared there to
|
||||
@@ -1484,9 +1488,25 @@ expand_used_vars (void)
|
||||
TREE_USED (var) = 1;
|
||||
|
||||
if (expand_now)
|
||||
- expand_one_var (var, true, true);
|
||||
+ {
|
||||
+ expand_one_var (var, true, true);
|
||||
+ if (DECL_ARTIFICIAL (var) && !DECL_IGNORED_P (var))
|
||||
+ {
|
||||
+ rtx rtl = DECL_RTL_IF_SET (var);
|
||||
+
|
||||
+ /* Keep artificial non-ignored vars in cfun->unexpanded_var_list
|
||||
+ chain until instantiate_decls. */
|
||||
+ if (rtl && (MEM_P (rtl) || GET_CODE (rtl) == CONCAT))
|
||||
+ {
|
||||
+ TREE_CHAIN (t) = cfun->unexpanded_var_list;
|
||||
+ cfun->unexpanded_var_list = t;
|
||||
+ continue;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ ggc_free (t);
|
||||
}
|
||||
- cfun->unexpanded_var_list = NULL_TREE;
|
||||
|
||||
/* At this point, all variables within the block tree with TREE_USED
|
||||
set are actually used by the optimized function. Lay them out. */
|
||||
--- gcc/function.c.jj 2008-09-09 21:13:24.000000000 +0200
|
||||
+++ gcc/function.c 2008-09-11 14:56:47.000000000 +0200
|
||||
@@ -1645,7 +1645,7 @@ instantiate_decls_1 (tree let)
|
||||
static void
|
||||
instantiate_decls (tree fndecl)
|
||||
{
|
||||
- tree decl;
|
||||
+ tree decl, t, next;
|
||||
|
||||
/* Process all parameters of the function. */
|
||||
for (decl = DECL_ARGUMENTS (fndecl); decl; decl = TREE_CHAIN (decl))
|
||||
@@ -1661,6 +1661,17 @@ instantiate_decls (tree fndecl)
|
||||
|
||||
/* Now process all variables defined in the function or its subblocks. */
|
||||
instantiate_decls_1 (DECL_INITIAL (fndecl));
|
||||
+
|
||||
+ t = cfun->unexpanded_var_list;
|
||||
+ cfun->unexpanded_var_list = NULL_TREE;
|
||||
+ for (; t; t = next)
|
||||
+ {
|
||||
+ next = TREE_CHAIN (t);
|
||||
+ decl = TREE_VALUE (t);
|
||||
+ if (DECL_RTL_SET_P (decl))
|
||||
+ instantiate_decl_rtl (DECL_RTL (decl));
|
||||
+ ggc_free (t);
|
||||
+ }
|
||||
}
|
||||
|
||||
/* Pass through the INSNS of function FNDECL and convert virtual register
|
47
gcc43-pr36741-revert.patch
Normal file
47
gcc43-pr36741-revert.patch
Normal file
@ -0,0 +1,47 @@
|
||||
Revert:
|
||||
2008-08-28 Dodji Seketeli <dodji@redhat.com>
|
||||
|
||||
PR c++/36741
|
||||
* tree.c (int_fits_type_p): Don't forget unsigned integers
|
||||
of type sizetype which higher end word equals -1.
|
||||
|
||||
* g++.dg/other/new-size-type.C: New test.
|
||||
|
||||
--- gcc/tree.c (revision 139711)
|
||||
+++ gcc/tree.c (revision 139710)
|
||||
@@ -6296,21 +6296,6 @@ int_fits_type_p (const_tree c, const_tre
|
||||
for "unknown if constant fits", 0 for "constant known *not* to fit" and 1
|
||||
for "constant known to fit". */
|
||||
|
||||
- if (TREE_TYPE (c) == sizetype
|
||||
- && TYPE_UNSIGNED (TREE_TYPE (c))
|
||||
- && TREE_INT_CST_HIGH (c) == -1
|
||||
- && !TREE_OVERFLOW (c))
|
||||
- /* So c is an unsigned integer which type is sizetype.
|
||||
- sizetype'd integers are sign extended even though they are
|
||||
- unsigned. If the integer value fits in the lower end word of c,
|
||||
- and if the higher end word has all its bits set to 1, that
|
||||
- means the higher end bits are set to 1 only for sign extension.
|
||||
- So let's convert c into an equivalent zero extended unsigned
|
||||
- integer. */
|
||||
- c = force_fit_type_double (size_type_node,
|
||||
- TREE_INT_CST_LOW (c),
|
||||
- TREE_INT_CST_HIGH (c),
|
||||
- false, false);
|
||||
/* Check if C >= type_low_bound. */
|
||||
if (type_low_bound && TREE_CODE (type_low_bound) == INTEGER_CST)
|
||||
{
|
||||
--- gcc/testsuite/g++.dg/other/new-size-type.C (revision 139711)
|
||||
+++ gcc/testsuite/g++.dg/other/new-size-type.C (revision 139710)
|
||||
@@ -1,10 +1,10 @@
|
||||
// Contributed by Dodji Seketeli <dodji@redhat.com>
|
||||
// Origin: PR c++/36741
|
||||
|
||||
#include <stddef.h>
|
||||
const char*
|
||||
foo()
|
||||
{
|
||||
- return new char[~static_cast<size_t>(0)];// { dg-bogus "large" }
|
||||
+ return new char[~static_cast<size_t>(0)];// { dg-bogus "large" "" { xfail *-*-* } }
|
||||
}
|
||||
|
21
gcc43.spec
21
gcc43.spec
@ -1,9 +1,9 @@
|
||||
%define DATE 20080905
|
||||
%define SVNREV 140029
|
||||
%define DATE 20080917
|
||||
%define SVNREV 140410
|
||||
%define gcc_version 4.3.2
|
||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||
# %{release}, append them after %{gcc_release} on Release: line.
|
||||
%define gcc_release 3
|
||||
%define gcc_release 4
|
||||
%define _unpackaged_files_terminate_build 0
|
||||
%define multilib_64_archs sparc64 ppc64 s390x x86_64
|
||||
%define include_gappletviewer 1
|
||||
@ -154,6 +154,8 @@ Patch17: gcc43-x86_64-va_start.patch
|
||||
Patch18: gcc43-pr37189.patch
|
||||
Patch19: gcc43-altivec-tests.patch
|
||||
Patch20: gcc43-libtool-no-rpath.patch
|
||||
Patch21: gcc43-pr36741-revert.patch
|
||||
Patch22: gcc43-pr34037.patch
|
||||
|
||||
# On ARM EABI systems, we do want -gnueabi to be part of the
|
||||
# target triple.
|
||||
@ -384,7 +386,7 @@ Autoreq: true
|
||||
The Java(tm) runtime library sources for use in Eclipse.
|
||||
|
||||
%package -n cpp
|
||||
Summary: The C Preprocessor.
|
||||
Summary: The C Preprocessor
|
||||
Group: Development/Languages
|
||||
Prereq: /sbin/install-info
|
||||
%ifarch ia64
|
||||
@ -458,6 +460,8 @@ which are required to run programs compiled with the GNAT.
|
||||
%patch18 -p0 -b .pr37189~
|
||||
%patch19 -p0 -b .altivec-tests~
|
||||
%patch20 -p0 -b .libtool-no-rpath~
|
||||
%patch21 -p0 -b .pr36741-revert~
|
||||
%patch22 -p0 -b .pr34037~
|
||||
|
||||
tar xzf %{SOURCE4}
|
||||
|
||||
@ -484,7 +488,7 @@ perl -pi -e 's/^check: check-recursive/ifeq (\$(MULTISUBDIR),)\ncheck: check-rec
|
||||
LC_ALL=C sed -i \
|
||||
-e 's/D\(o\|\xf6\)nmez/D\xc3\xb6nmez/' \
|
||||
-e 's/\(Av\|\x81\xc1v\|\xc1v\|\xef\xbf\xbdv\?\|\x81\xc3\x81v\|\xc3v\)ila/\xc3\x81vila/' \
|
||||
-e 's/Esp\(in\|\x81\xedn\|\xedn\|\xef\xbf\xbdn\?\|\xef\xbf\xbd\xadn\|\x81\xc3\xadn\)dola/Esp\xc3\xadndola/' \
|
||||
-e 's/Esp\(in\|\x81\xedn\|\xedn\|\xef\xbf\xbdn\?\|\xef\xbf\xbd\xadn\|\x81\xc3\xadn\|\xc3\xef\xbf\xbd\xadn\)dola/Esp\xc3\xadndola/' \
|
||||
-e 's/Schl\(u\|\xef\xbf\xbd\|\xfcu\?\|\x81\xfc\|\x81\xc3\xbc\|\xc3\xaf\xc2\xbf\xc2\xbd\|\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xc2\xbc\)ter/Schl\xc3\xbcter/' \
|
||||
-e 's/Humi\(e\|\xe8\)res/Humi\xc3\xa8res/' \
|
||||
-e 's/L\(ow\|\xc3\xaf\xc2\xbf\xc2\xbd\|oew\|\xf6w\)is/L\xc3\xb6wis/' \
|
||||
@ -1706,6 +1710,13 @@ fi
|
||||
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
|
||||
|
||||
%changelog
|
||||
* Wed Sep 17 2008 Jakub Jelinek <jakub@redhat.com> 4.3.2-4
|
||||
- update from 4.3 branch
|
||||
- PRs c++/37389, fortran/35837, fortran/36214, fortran/37099, fortran/37199,
|
||||
rtl-optimization/37408, target/37466, tree-optimization/36630
|
||||
- revert PR c++/36741 fix
|
||||
- fix VLA debuginfo at -O0 (PR debug/34037)
|
||||
|
||||
* Sat Sep 6 2008 Jakub Jelinek <jakub@redhat.com> 4.3.2-3
|
||||
- don't run tests that require Altivec hw on non-Altivec powerpcs
|
||||
- make sure none of libgcj binaries/libraries contains /usr/%{lib} in
|
||||
|
Loading…
Reference in New Issue
Block a user