mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-24 08:50:26 +08:00
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:
parent
cde9963161
commit
c070a3b932
@ -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
|
||||
|
19
gcc/explow.c
19
gcc/explow.c
@ -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");
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user