OSDN Git Service

2010-03-31 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 31 Mar 2010 13:20:19 +0000 (13:20 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 31 Mar 2010 13:20:19 +0000 (13:20 +0000)
PR middle-end/43600
* cgraphunit.c (cgraph_output_in_order): Do not allocate
temporary data on stack.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157867 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cgraphunit.c

index 8d7b219..6515701 100644 (file)
@@ -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.
index 185fc53..212ab3a 100644 (file)
@@ -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