From aacb52510a2e29f5a4c3ebae082f9e99b24cf79f Mon Sep 17 00:00:00 2001 From: Hans-Peter Nilsson Date: Wed, 4 Apr 2001 03:05:47 +0000 Subject: [PATCH] * write.c (write_object_file): Reset broken word state before calling relax_seg. --- gas/ChangeLog | 5 +++++ gas/write.c | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index 4d20134f0d7..64816e37cca 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2001-04-04 Hans-Peter Nilsson + + * write.c (write_object_file): Reset broken word state before + calling relax_seg. + 2001-03-31 Alan Modra * listing.c (listing_listing): Enable listing on EDICT_NOLIST_NEXT diff --git a/gas/write.c b/gas/write.c index ea4b0820f31..1a2798be246 100644 --- a/gas/write.c +++ b/gas/write.c @@ -1544,6 +1544,26 @@ write_object_file () { int changed; +#ifndef WORKING_DOT_WORD + /* We need to reset the markers in the broken word list and + associated frags between calls to relax_segment (via + relax_seg). Since the broken word list is global, we do it + once per round, rather than locally in relax_segment for each + segment. */ + struct broken_word *brokp; + + for (brokp = broken_words; + brokp != (struct broken_word *) NULL; + brokp = brokp->next_broken_word) + { + brokp->added = 0; + + if (brokp->dispfrag != (fragS *) NULL + && brokp->dispfrag->fr_type == rs_broken_word) + brokp->dispfrag->fr_subtype = 0; + } +#endif + changed = 0; bfd_map_over_sections (stdoutput, relax_seg, &changed); if (!changed) -- 2.30.2