This commit is contained in:
Jakub Jelinek 2010-10-01 17:38:04 +02:00
parent 3f571a51c2
commit d615b0818a
3 changed files with 5 additions and 58 deletions

4
.gitignore vendored
View File

@ -1,4 +1,2 @@
fastjar-0.97.tar.gz
gcc-4.4.4-20100726.tar.bz2
/fastjar-0.97.tar.gz
/gcc-4.4.5-20101001.tar.bz2
gcc-4.4.5-20101001.tar.bz2

View File

@ -176,9 +176,8 @@ Patch14: gcc44-pr38757.patch
Patch15: gcc44-libstdc++-docs.patch
Patch16: gcc44-ppc64-aixdesc.patch
Patch17: gcc44-no-add-needed.patch
Patch18: gcc44-pr44542.patch
Patch19: gcc44-rh610785.patch
Patch20: gcc44-rh533181.patch
Patch18: gcc44-rh610785.patch
Patch19: gcc44-rh533181.patch
Patch1000: fastjar-0.97-segfault.patch
Patch1001: fastjar-0.97-len1.patch
@ -589,9 +588,8 @@ GNAT is a GNU Ada 95 front-end to GCC. This package includes static libraries.
%if 0%{?fedora} >= 13
%patch17 -p0 -b .no-add-needed~
%endif
%patch18 -p0 -b .pr44542~
%patch19 -p0 -b .rh610785~
%patch20 -p0 -b .rh533181~
%patch18 -p0 -b .rh610785~
%patch19 -p0 -b .rh533181~
# This testcase doesn't compile.
rm libjava/testsuite/libjava.lang/PR35020*

View File

@ -1,49 +0,0 @@
2010-06-17 Jakub Jelinek <jakub@redhat.com>
PR target/44542
* cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
instead of MAX_SUPPORTED_STACK_ALIGNMENT.
(expand_one_var): Don't consider DECL_ALIGN for variables for
which expand_one_stack_var_at has been already called.
--- gcc/cfgexpand.c.jj 2010-06-17 17:01:11.964198458 +0200
+++ gcc/cfgexpand.c 2010-06-17 18:25:18.940335757 +0200
@@ -839,7 +839,7 @@ static void
expand_one_stack_var_at (tree decl, HOST_WIDE_INT offset)
{
/* Alignment is unsigned. */
- unsigned HOST_WIDE_INT align;
+ unsigned HOST_WIDE_INT align, max_align;
rtx x;
/* If this fails, we've overflowed the stack frame. Error nicely? */
@@ -852,10 +852,10 @@ expand_one_stack_var_at (tree decl, HOST
offset -= frame_phase;
align = offset & -offset;
align *= BITS_PER_UNIT;
- if (align == 0)
- align = STACK_BOUNDARY;
- else if (align > MAX_SUPPORTED_STACK_ALIGNMENT)
- align = MAX_SUPPORTED_STACK_ALIGNMENT;
+ max_align = MAX (crtl->max_used_stack_slot_alignment,
+ PREFERRED_STACK_BOUNDARY);
+ if (align == 0 || align > max_align)
+ align = max_align;
DECL_ALIGN (decl) = align;
DECL_USER_ALIGN (decl) = 0;
@@ -1054,6 +1054,13 @@ expand_one_var (tree var, bool toplevel,
align = MINIMUM_ALIGNMENT (TREE_TYPE (var),
TYPE_MODE (TREE_TYPE (var)),
TYPE_ALIGN (TREE_TYPE (var)));
+ else if (DECL_HAS_VALUE_EXPR_P (var)
+ || (DECL_RTL_SET_P (var) && MEM_P (DECL_RTL (var))))
+ /* Don't consider debug only variables with DECL_HAS_VALUE_EXPR_P set
+ or variables which were assigned a stack slot already by
+ expand_one_stack_var_at - in the latter case DECL_ALIGN has been
+ changed from the offset chosen to it. */
+ align = crtl->stack_alignment_estimated;
else
align = MINIMUM_ALIGNMENT (var, DECL_MODE (var), DECL_ALIGN (var));