Place the tinst_level list in forward order.

Tested on x64.


Index: gcc/cp/ChangeLog.pph

2011-07-28   Lawrence Crowl  <cr...@google.com>

        * pt.c (pph_in_tinst_level): Put tinst_level list in forward order.


Index: gcc/cp/pt.c
===================================================================
--- gcc/cp/pt.c (revision 176905)
+++ gcc/cp/pt.c (working copy)
@@ -19738,20 +19738,24 @@ pph_dump_tinst_level (FILE *stream, stru
 static struct tinst_level *
 pph_in_tinst_level (pph_stream *stream)
 {
+  struct tinst_level *head = NULL;
   struct tinst_level *last = NULL;
   unsigned count = pph_in_uint (stream);
-  /* FIXME pph: This leaves the list in reverse order.  Issue?  */
   for (; count > 0; --count)
     {
       struct tinst_level *cur = ggc_alloc_tinst_level ();
-      cur->next = last;
+      cur->next = NULL;
       cur->decl = pph_in_tree (stream);
       cur->locus = pph_in_location (stream);
       cur->errors = pph_in_uint (stream);
       cur->in_system_header_p = pph_in_uint (stream);
+      if (head == NULL)
+          head = cur;
+      else
+          last->next = cur;
       last = cur;
     }
-  return last;
+  return head;
 }
 
 

--
This patch is available for review at http://codereview.appspot.com/4823059

Reply via email to