* ldlang.c (lang_leave_output_section_statement): Don't copy
authorAlan Modra <amodra@gmail.com>
Mon, 16 May 2011 00:22:39 +0000 (00:22 +0000)
committerAlan Modra <amodra@gmail.com>
Mon, 16 May 2011 00:22:39 +0000 (00:22 +0000)
previous lma_region if given address.

ld/ChangeLog
ld/ldlang.c

index f443ae0..b8ecfc3 100644 (file)
@@ -1,3 +1,8 @@
+2011-05-16  Alan Modra  <amodra@gmail.com>
+
+       * ldlang.c (lang_leave_output_section_statement): Don't copy
+       previous lma_region if given address.
+
 2011-05-13  Bernd Schmidt  <bernds@codesourcery.com>
 
        (eelf32_tic6x_linux_be.c, eelf32_tic6x_linux_le.c,
index c291fd9..b9f6dd8 100644 (file)
@@ -6912,11 +6912,13 @@ lang_leave_output_section_statement (fill_type *fill, const char *memspec,
                    current_section->load_base != NULL,
                    current_section->addr_tree != NULL);
 
-  /* If this section has no load region or base, but has the same
+  /* If this section has no load region or base, but uses the same
      region as the previous section, then propagate the previous
      section's load region.  */
 
-  if (!current_section->lma_region && !current_section->load_base
+  if (current_section->lma_region == NULL
+      && current_section->load_base == NULL
+      && current_section->addr_tree == NULL
       && current_section->region == current_section->prev->region)
     current_section->lma_region = current_section->prev->lma_region;