diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cgraphunit.c | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8d7b219..6515701 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-03-31 Richard Guenther <rguenther@suse.de> + + PR middle-end/43600 + * cgraphunit.c (cgraph_output_in_order): Do not allocate + temporary data on stack. + 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef. diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index 185fc53..212ab3a 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 |