/* Prepare tables for do_local_relocation() and output().
*/
{
+ register struct outname *np = symbol_table;
+ register int i = nname;
+
+ for (; i; i--, np++) {
+ if ((np->on_type & S_COM) && ! (np->on_type & S_EXT)) {
+ long sz = np->on_valu;
+
+ switchseg(SEGBSS);
+ align_word();
+ np->on_type &= (~S_COM);
+ np->on_valu = cur_value();
+ bss(sz);
+ }
+ }
while ( ( text - text_area) % EM_WSIZE != 0 )
text1( '\0');
while ( ( data - data_area) % EM_WSIZE != 0 )
register struct outname *np = &symbol_table[i];
np->on_type &= ~S_NEEDED;
- if ((np->on_type & S_COM) && ! (np->on_type & S_EXT)) {
- long sz = np->on_valu;
-
- switchseg(SEGBSS);
- align_word();
- np->on_type &= (~S_COM);
- np->on_valu = cur_value();
- bss(sz);
- }
if (diff_index[i] && diff_index[i] == diff_index[i-1]) {
symbol_table[i - diff_index[i]] = *np;
}
register struct outname *np = &symbol_table[rp->or_nami];
int olddiff = diff;
- if ((np->on_type & S_COM) && ! (np->on_type & S_EXT)) {
- long sz = np->on_valu;
-
- switchseg(SEGBSS);
- align_word();
- np->on_type &= (~S_COM);
- np->on_valu = cur_value();
- bss(sz);
- }
if ( np->on_valu != -1 && ! (np->on_type & S_COM)) {
register long oldval,newval;
register char *sect;