* ldlang.c (process_insert_statements): ASSERT that output section
authorAlan Modra <amodra@gmail.com>
Mon, 16 Feb 2009 08:02:29 +0000 (08:02 +0000)
committerAlan Modra <amodra@gmail.com>
Mon, 16 Feb 2009 08:02:29 +0000 (08:02 +0000)
statements are in order.

ld/ChangeLog
ld/ldlang.c

index 0636f10..fdb319a 100644 (file)
@@ -1,5 +1,10 @@
 2009-02-16  Alan Modra  <amodra@bigpond.net.au>
 
+       * ldlang.c (process_insert_statements): ASSERT that output section
+       statements are in order.
+
+2009-02-16  Alan Modra  <amodra@bigpond.net.au>
+
        * ldlang.c (push_stat_ptr, pop_stat_ptr): New functions.
        (stat_save, stat_save_ptr): New variables.
        (lang_insert_orphan): Use push_stat_ptr and pop_stat_ptr.
index 0bd82cb..cc390b0 100644 (file)
@@ -3438,7 +3438,10 @@ process_insert_statements (void)
        {
          /* Keep pointers to the first and last output section
             statement in the sequence we may be about to move.  */
-         last_os = &(*s)->output_section_statement;
+         os = &(*s)->output_section_statement;
+
+         ASSERT (last_os == NULL || last_os->next == os);
+         last_os = os;
 
          /* Set constraint negative so that lang_output_section_find
             won't match this output section statement.  At this