explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.

* explow.c (allocate_dynamic_stack_space): Check
	MALLOC_ABI_ALIGNMENT.

From-SVN: r166393
This commit is contained in:
Ian Lance Taylor 2010-11-06 03:44:58 +00:00 committed by Ian Lance Taylor
parent cde9963161
commit c070a3b932
2 changed files with 17 additions and 7 deletions

View File

@ -1,3 +1,8 @@
2010-11-05 Ian Lance Taylor <iant@google.com>
* explow.c (allocate_dynamic_stack_space): Check
MALLOC_ABI_ALIGNMENT.
2010-11-05 Jakub Jelinek <jakub@redhat.com>
PR c/44772

View File

@ -1356,13 +1356,18 @@ allocate_dynamic_stack_space (rtx size, unsigned size_align,
#endif
/* The __morestack_allocate_stack_space function will allocate
memory using malloc. We don't know that the alignment of the
memory returned by malloc will meet REQUIRED_ALIGN. Increase
SIZE to make sure we allocate enough space. */
ask = expand_binop (Pmode, add_optab, size,
GEN_INT (required_align / BITS_PER_UNIT - 1),
NULL_RTX, 1, OPTAB_LIB_WIDEN);
must_align = true;
memory using malloc. If the alignment of the memory returned
by malloc does not meet REQUIRED_ALIGN, we increase SIZE to
make sure we allocate enough space. */
if (MALLOC_ABI_ALIGNMENT >= required_align)
ask = size;
else
{
ask = expand_binop (Pmode, add_optab, size,
GEN_INT (required_align / BITS_PER_UNIT - 1),
NULL_RTX, 1, OPTAB_LIB_WIDEN);
must_align = true;
}
func = init_one_libfunc ("__morestack_allocate_stack_space");