Commit 6f6b8f81 by Uros Bizjak Committed by Uros Bizjak

re PR middle-end/34621 (gcc.c-torture/execute/va-arg-25.c:32: internal compiler…

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
parent 74cb1d8b
2008-02-15 Uros Bizjak <ubizjak@gmail.com> 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. * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
(WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define. (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
* config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
......
...@@ -3450,7 +3450,7 @@ pad_to_arg_alignment (struct args_size *offset_ptr, int boundary, ...@@ -3450,7 +3450,7 @@ pad_to_arg_alignment (struct args_size *offset_ptr, int boundary,
sp_offset = 0; sp_offset = 0;
#endif #endif
if (boundary > PARM_BOUNDARY && boundary > STACK_BOUNDARY) if (boundary > PARM_BOUNDARY)
{ {
save_var = offset_ptr->var; save_var = offset_ptr->var;
save_constant = offset_ptr->constant; save_constant = offset_ptr->constant;
...@@ -3476,7 +3476,7 @@ pad_to_arg_alignment (struct args_size *offset_ptr, int boundary, ...@@ -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); offset_ptr->var = size_binop (MINUS_EXPR, rounded, sp_offset_tree);
/* ARGS_SIZE_TREE includes constant term. */ /* ARGS_SIZE_TREE includes constant term. */
offset_ptr->constant = 0; 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, alignment_pad->var = size_binop (MINUS_EXPR, offset_ptr->var,
save_var); save_var);
} }
...@@ -3488,7 +3488,7 @@ pad_to_arg_alignment (struct args_size *offset_ptr, int boundary, ...@@ -3488,7 +3488,7 @@ pad_to_arg_alignment (struct args_size *offset_ptr, int boundary,
#else #else
CEIL_ROUND (offset_ptr->constant + sp_offset, boundary_in_bytes); CEIL_ROUND (offset_ptr->constant + sp_offset, boundary_in_bytes);
#endif #endif
if (boundary > PARM_BOUNDARY && boundary > STACK_BOUNDARY) if (boundary > PARM_BOUNDARY)
alignment_pad->constant = offset_ptr->constant - save_constant; alignment_pad->constant = offset_ptr->constant - save_constant;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment