int x;
int x ATTRIBUTE_UNUSED;
s_mips_end (x)     int x;{  symbolS *p;  int maybe_text;  if (!is_end_of_line[(unsigned char) *input_line_pointer])    {      p = get_symbol ();      demand_empty_rest_of_line ();    }  else    p = NULL;#ifdef BFD_ASSEMBLER  if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)    maybe_text = 1;  else    maybe_text = 0;#else  if (now_seg != data_section && now_seg != bss_section)    maybe_text = 1;  else    maybe_text = 0;#endif  if (!maybe_text)    as_warn (_(".end not in text section"));  if (!cur_proc_ptr)    {      as_warn (_(".end directive without a preceding .ent directive."));      demand_empty_rest_of_line ();      return;    }  if (p != NULL)    {      assert (S_GET_NAME (p));      if (strcmp (S_GET_NAME (p), S_GET_NAME (cur_proc_ptr->isym)))	as_warn (_(".end symbol does not match .ent symbol."));    }  else    as_warn (_(".end directive missing or unknown symbol"));#ifdef MIPS_STABS_ELF  {    segT saved_seg = now_seg;    subsegT saved_subseg = now_subseg;    fragS *saved_frag = frag_now;    valueT dot;    segT seg;    expressionS exp;    char *fragp;    dot = frag_now_fix ();#ifdef md_flush_pending_output    md_flush_pending_output ();#endif    assert (pdr_seg);    subseg_set (pdr_seg, 0);    /* Write the symbol */    exp.X_op = O_symbol;    exp.X_add_symbol = p;    exp.X_add_number = 0;    emit_expr (&exp, 4);    fragp = frag_more (7*4);    md_number_to_chars (fragp,     (valueT) cur_proc_ptr->reg_mask, 4);    md_number_to_chars (fragp + 4, (valueT) cur_proc_ptr->reg_offset, 4);    md_number_to_chars (fragp + 8, (valueT) cur_proc_ptr->fpreg_mask, 4);    md_number_to_chars (fragp +12, (valueT) cur_proc_ptr->fpreg_offset, 4);    md_number_to_chars (fragp +16, (valueT) cur_proc_ptr->frame_offset, 4);    md_number_to_chars (fragp +20, (valueT) cur_proc_ptr->frame_reg, 4);    md_number_to_chars (fragp +24, (valueT) cur_proc_ptr->pc_reg, 4);    subseg_set (saved_seg, saved_subseg);  }#endif  cur_proc_ptr = NULL;}