diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2001-04-04 03:05:47 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@axis.com> | 2001-04-04 03:05:47 +0000 |
commit | aacb52510a2e29f5a4c3ebae082f9e99b24cf79f (patch) | |
tree | c8a83d5b2ca255aa26ac51731d0864c21999ef2f /gas/write.c | |
parent | d9697354487c09683dd0b1265cf6f8b3fd523a71 (diff) | |
download | gdb-aacb52510a2e29f5a4c3ebae082f9e99b24cf79f.zip gdb-aacb52510a2e29f5a4c3ebae082f9e99b24cf79f.tar.gz gdb-aacb52510a2e29f5a4c3ebae082f9e99b24cf79f.tar.bz2 |
* write.c (write_object_file): Reset broken word state before
calling relax_seg.
Diffstat (limited to 'gas/write.c')
-rw-r--r-- | gas/write.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gas/write.c b/gas/write.c index ea4b082..1a2798b 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) |