diff options
author | Brendan Kehoe <brendan@cygnus.com> | 1997-09-15 19:07:05 +0000 |
---|---|---|
committer | Brendan Kehoe <brendan@gcc.gnu.org> | 1997-09-15 15:07:05 -0400 |
commit | 1d77fa53978457059fc591f35d70f25977651d2a (patch) | |
tree | f005856d2982fe850561e628b9793fdb8e0161da /gcc/except.c | |
parent | 18a7cd243d74586c14597c1ccdb2124275a338d4 (diff) | |
download | gcc-1d77fa53978457059fc591f35d70f25977651d2a.zip gcc-1d77fa53978457059fc591f35d70f25977651d2a.tar.gz gcc-1d77fa53978457059fc591f35d70f25977651d2a.tar.bz2 |
except.c (find_exception_handler_labels): Use xmalloc instead of alloca...
* except.c (find_exception_handler_labels): Use xmalloc instead of
alloca, since MAX_LABELNO - MIN_LABELNO can be more than 1 million
in some cases.
From-SVN: r15452
Diffstat (limited to 'gcc/except.c')
-rw-r--r-- | gcc/except.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/except.c b/gcc/except.c index 32b16b2..1e77fd8 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -1748,7 +1748,10 @@ find_exception_handler_labels () /* Generate a handy reference to each label. */ - labels = (rtx *) alloca ((max_labelno - min_labelno) * sizeof (rtx)); + /* We call xmalloc here instead of alloca; we did the latter in the past, + but found that it can sometimes end up being asked to allocate space + for more than 1 million labels. */ + labels = (rtx *) xmalloc ((max_labelno - min_labelno) * sizeof (rtx)); bzero ((char *) labels, (max_labelno - min_labelno) * sizeof (rtx)); /* Arrange for labels to be indexed directly by CODE_LABEL_NUMBER. */ |