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