diff options
-rw-r--r-- | ld/ChangeLog | 7 | ||||
-rw-r--r-- | ld/ldexp.c | 6 | ||||
-rw-r--r-- | ld/ldlang.c | 9 | ||||
-rw-r--r-- | ld/ldlang.h | 2 |
4 files changed, 15 insertions, 9 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index c888d68..0aedf6b 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,12 @@ 2005-09-20 Alan Modra <amodra@bigpond.net.au> + * ldlang.h (lang_output_section_statement_struct): Change type of + "processed" to bfd_boolean. + * ldexp.c (fold_name): Update references to os->processed. + * ldlang.c (lang_output_section_statement_lookup_1): Likewise. + (lang_size_sections_1): Likewise. + (lang_reset_memory_regions): Likewise. + PR ld/1353 * ldlang.c (lang_size_sections_1): Process addr_tree earlier, so that unused output section statements affect dot. @@ -562,7 +562,7 @@ fold_name (etree_type *tree) lang_output_section_statement_type *os; os = lang_output_section_find (tree->name.name); - if (os != NULL && os->processed > 0) + if (os != NULL && os->processed) new_rel (0, NULL, os->bfd_section); } break; @@ -573,7 +573,7 @@ fold_name (etree_type *tree) lang_output_section_statement_type *os; os = lang_output_section_find (tree->name.name); - if (os != NULL && os->processed > 0) + if (os != NULL && os->processed) { if (os->load_base == NULL) new_rel (0, NULL, os->bfd_section); @@ -592,7 +592,7 @@ fold_name (etree_type *tree) os = lang_output_section_find (tree->name.name); if (os == NULL) new_abs (0); - else if (os->processed > 0) + else if (os->processed) new_abs (os->bfd_section->size / opb); } break; diff --git a/ld/ldlang.c b/ld/ldlang.c index 09e5f56..dc5f4ee 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -1024,7 +1024,7 @@ lang_output_section_statement_lookup_1 (const char *const name, int constraint) lookup->next = NULL; lookup->bfd_section = NULL; - lookup->processed = 0; + lookup->processed = FALSE; lookup->constraint = constraint; lookup->ignored = FALSE; lookup->sectype = normal_section; @@ -3976,9 +3976,8 @@ lang_size_sections_1 os = &s->output_section_statement; if (os->addr_tree != NULL) { - os->processed = -1; + os->processed = FALSE; exp_fold_tree (os->addr_tree, bfd_abs_section_ptr, &dot); - os->processed = 0; if (!expld.result.valid_p && expld.phase != lang_mark_phase_enum) @@ -4105,7 +4104,7 @@ lang_size_sections_1 lang_size_sections_1 (os->children.head, os, &os->children.head, os->fill, newdot, relax, check_regions); - os->processed = 1; + os->processed = TRUE; if (bfd_is_abs_section (os->bfd_section) || os->ignored) { @@ -5163,7 +5162,7 @@ lang_reset_memory_regions (void) for (os = &lang_output_section_statement.head->output_section_statement; os != NULL; os = os->next) - os->processed = 0; + os->processed = FALSE; for (o = output_bfd->sections; o != NULL; o = o->next) { diff --git a/ld/ldlang.h b/ld/ldlang.h index a23a04d..26b7d68 100644 --- a/ld/ldlang.h +++ b/ld/ldlang.h @@ -134,7 +134,7 @@ typedef struct lang_output_section_statement_struct struct lang_output_section_statement_struct *next; const char *name; - int processed; + bfd_boolean processed; asection *bfd_section; flagword flags; /* Or together of all input sections. */ |