2004-07-15 Christopher Faylor H.J. Lu * subsegs.c (section_symbol): Don't create a new segment when existing segment is undefined. --- gas/subsegs.c.sec 2004-05-11 10:48:42.000000000 -0700 +++ gas/subsegs.c 2004-07-15 08:25:59.851475303 -0700 @@ -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); } }