From 2d59d98e014a64f5a48cbb3033f25896b2d9ab79 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Fri, 25 Jul 1997 08:36:27 -0400 Subject: [PATCH] (expand_call): If -fstack-check and temp needed for arg is too large, use alloca. From-SVN: r14526 --- gcc/calls.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gcc/calls.c b/gcc/calls.c index c510a33a11b..35166a5ea64 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -1051,7 +1051,11 @@ expand_call (exp, target, ignore) rtx copy; if (TYPE_SIZE (type) == 0 - || TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST) + || TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST + || (flag_stack_check && ! STACK_CHECK_BUILTIN + && (TREE_INT_CST_HIGH (TYPE_SIZE (type)) != 0 + || (TREE_INT_CST_LOW (TYPE_SIZE (type)) + > STACK_CHECK_MAX_VAR_SIZE * BITS_PER_UNIT)))) { /* This is a variable-sized object. Make space on the stack for it. */