diff options
-rw-r--r-- | gcc/alloca.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/alloca.c b/gcc/alloca.c index bd4932aa445..d1f4d1a302b 100644 --- a/gcc/alloca.c +++ b/gcc/alloca.c @@ -29,6 +29,10 @@ #endif #endif +#ifdef emacs +#include "blockinput.h" +#endif + /* If compiling with GCC 2, this file's not needed. */ #if !defined (__GNUC__) || __GNUC__ < 2 @@ -176,6 +180,10 @@ alloca (size) { register header *hp; /* Traverses linked list. */ +#ifdef emacs + BLOCK_INPUT; +#endif + for (hp = last_alloca_header; hp != NULL;) if ((STACK_DIR > 0 && hp->h.deep > depth) || (STACK_DIR < 0 && hp->h.deep < depth)) @@ -190,6 +198,10 @@ alloca (size) break; /* Rest are not deeper. */ last_alloca_header = hp; /* -> last valid storage. */ + +#ifdef emacs + UNBLOCK_INPUT; +#endif } if (size == 0) |