]> git.ipfire.org Git - people/ms/gcc.git/commitdiff
(expand_call): If -fstack-check and temp needed for arg is too large,
authorRichard Kenner <kenner@gcc.gnu.org>
Fri, 25 Jul 1997 12:36:27 +0000 (08:36 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Fri, 25 Jul 1997 12:36:27 +0000 (08:36 -0400)
use alloca.

From-SVN: r14526

gcc/calls.c

index c510a33a11b0fbb489f839124729e5104117bcea..35166a5ea64626d21270dfeea0460a2e71d91c1b 100644 (file)
@@ -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.  */