diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2008-02-15 10:55:36 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2008-02-15 10:55:36 +0100 |
commit | 6f6b8f8142d2d6d0db596e21bc3ba30da9f90b2e (patch) | |
tree | 21f08bb68d0866d8d823ff4c9523a6c58effd23b /gcc | |
parent | 74cb1d8bfd6839f112540c02e48cfea699384522 (diff) | |
download | gcc-6f6b8f8142d2d6d0db596e21bc3ba30da9f90b2e.zip gcc-6f6b8f8142d2d6d0db596e21bc3ba30da9f90b2e.tar.gz gcc-6f6b8f8142d2d6d0db596e21bc3ba30da9f90b2e.tar.bz2 |
re PR middle-end/34621 (gcc.c-torture/execute/va-arg-25.c:32: internal compiler error: in expand_call, at calls.c:2785)
PR middle-end/34621
* function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
when calculating alignment_pad.
From-SVN: r132336
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/function.c | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5e03e49..2fcf74b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2008-02-15 Uros Bizjak <ubizjak@gmail.com> + PR middle-end/34621 + * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY + when calculating alignment_pad. + +2008-02-15 Uros Bizjak <ubizjak@gmail.com> + * config/i386/i386.h (CLEAR_RATIO): Use MIN macro. (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define. * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro diff --git a/gcc/function.c b/gcc/function.c index d3fbd17..275b702 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -3450,7 +3450,7 @@ pad_to_arg_alignment (struct args_size *offset_ptr, int boundary, sp_offset = 0; #endif - if (boundary > PARM_BOUNDARY && boundary > STACK_BOUNDARY) + if (boundary > PARM_BOUNDARY) { save_var = offset_ptr->var; save_constant = offset_ptr->constant; @@ -3476,7 +3476,7 @@ pad_to_arg_alignment (struct args_size *offset_ptr, int boundary, offset_ptr->var = size_binop (MINUS_EXPR, rounded, sp_offset_tree); /* ARGS_SIZE_TREE includes constant term. */ offset_ptr->constant = 0; - if (boundary > PARM_BOUNDARY && boundary > STACK_BOUNDARY) + if (boundary > PARM_BOUNDARY) alignment_pad->var = size_binop (MINUS_EXPR, offset_ptr->var, save_var); } @@ -3488,7 +3488,7 @@ pad_to_arg_alignment (struct args_size *offset_ptr, int boundary, #else CEIL_ROUND (offset_ptr->constant + sp_offset, boundary_in_bytes); #endif - if (boundary > PARM_BOUNDARY && boundary > STACK_BOUNDARY) + if (boundary > PARM_BOUNDARY) alignment_pad->constant = offset_ptr->constant - save_constant; } } |