diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2004-07-19 19:15:43 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2004-07-19 19:15:43 +0000 |
commit | 90c1602c0f6f430e52d84ec03d321df108301f25 (patch) | |
tree | b87d6689c25bd81be36bbbc6186f2adba9d1ee2a | |
parent | 14b3c4630873bf3ea90a59916f2a3ca69882f56a (diff) | |
download | gdb-90c1602c0f6f430e52d84ec03d321df108301f25.zip gdb-90c1602c0f6f430e52d84ec03d321df108301f25.tar.gz gdb-90c1602c0f6f430e52d84ec03d321df108301f25.tar.bz2 |
2004-07-19 Christopher Faylor <cgf@timesys.com>
H.J. Lu <hongjiu.lu@intel.com>
* subsegs.c (section_symbol): Don't create a new segment when
existing segment is undefined.
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/subsegs.c | 14 |
2 files changed, 13 insertions, 7 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 933e854..6725723 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2004-07-19 Christopher Faylor <cgf@timesys.com> + H.J. Lu <hongjiu.lu@intel.com> + + * subsegs.c (section_symbol): Don't create a new segment when + existing segment is undefined. + 2004-07-16 Richard Earnshaw <rearnsha@arm.com> * config/tc-arm.c: Include include/opcode/arm.h. diff --git a/gas/subsegs.c b/gas/subsegs.c index 9e46cfe..8b0679c 100644 --- a/gas/subsegs.c +++ b/gas/subsegs.c @@ -523,18 +523,18 @@ section_symbol (segT sec) } else { + segT seg; s = symbol_find_base (sec->symbol->name, 0); /* We have to make sure it is the right symbol when we have multiple sections with the same section name. */ - if (s == NULL || S_GET_SEGMENT (s) != sec) + if (s == NULL + || ((seg = S_GET_SEGMENT (s)) != sec + && seg != undefined_section)) s = symbol_new (sec->symbol->name, sec, 0, &zero_address_frag); - else + else if (seg == undefined_section) { - if (S_GET_SEGMENT (s) == undefined_section) - { - S_SET_SEGMENT (s, sec); - symbol_set_frag (s, &zero_address_frag); - } + S_SET_SEGMENT (s, sec); + symbol_set_frag (s, &zero_address_frag); } } |