From: Richard Guenther Date: Wed, 31 Mar 2010 13:20:19 +0000 (+0000) Subject: re PR middle-end/43600 (Segmentation fault for large C file (24MB)) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=33283dadd3a8ea2e7104f4e7a43bd70b4e96090c;p=gcc.git re PR middle-end/43600 (Segmentation fault for large C file (24MB)) 2010-03-31 Richard Guenther PR middle-end/43600 * cgraphunit.c (cgraph_output_in_order): Do not allocate temporary data on stack. From-SVN: r157867 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8d7b219259a..6515701fed3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-03-31 Richard Guenther + + PR middle-end/43600 + * cgraphunit.c (cgraph_output_in_order): Do not allocate + temporary data on stack. + 2010-03-31 Rainer Orth * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef. diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index 185fc538d7d..212ab3aa1ab 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -1664,7 +1664,6 @@ static void cgraph_output_in_order (void) { int max; - size_t size; struct cgraph_order_sort *nodes; int i; struct cgraph_node *pf; @@ -1672,9 +1671,7 @@ cgraph_output_in_order (void) struct cgraph_asm_node *pa; max = cgraph_order; - size = max * sizeof (struct cgraph_order_sort); - nodes = (struct cgraph_order_sort *) alloca (size); - memset (nodes, 0, size); + nodes = XCNEWVEC (struct cgraph_order_sort, max); varpool_analyze_pending_decls (); @@ -1741,6 +1738,7 @@ cgraph_output_in_order (void) } cgraph_asm_nodes = NULL; + free (nodes); } /* Return true when function body of DECL still needs to be kept around