- if (SET_ELEMENT_P (type))
- /*
- * This occurs even if global. These types of
- * symbols are never written globally, though
- * they are stored globally.
- */
- write = relocatable_output;
- else if (!(type & (N_STAB | N_EXT)))
- /* ordinary local symbol */
- write = ((discard_locals != DISCARD_ALL)
- && !(discard_locals == DISCARD_L &&
- (p->n_un.n_strx + entry->strings)[0] == LPREFIX)
- && type != N_WARNING);
- else if (!(type & N_EXT))
- /* debugger symbol */
- write = (strip_symbols == STRIP_NONE) &&
- !(discard_locals == DISCARD_L &&
- (p->n_un.n_strx + entry->strings)[0] == LPREFIX);
-
- if (write) {
- /*
- * If this symbol has a name, allocate space for it
- * in the output string table.
- */
-
- if (p->n_un.n_strx)
- p->n_un.n_strx = assign_string_table_index(
- p->n_un.n_strx + entry->strings);