* subsegs.c (subseg_text_p): Rewrite non BFD_ASSEMBLER case to use

a list of names, to try obj_segment_name, and to try abbreviated
	names when using COFF without long section names.
This commit is contained in:
Ian Lance Taylor 1999-06-22 19:04:42 +00:00
parent 7dcc986550
commit be2acf2756
2 changed files with 38 additions and 4 deletions

View File

@ -1,5 +1,9 @@
1999-06-22 Ian Lance Taylor <ian@zembu.com>
* subsegs.c (subseg_text_p): Rewrite non BFD_ASSEMBLER case to use
a list of names, to try obj_segment_name, and to try abbreviated
names when using COFF without long section names.
* config/tc-alpha.c: More use of symbol accessor functions.
* config/tc-arc.c: Likewise.
* config/tc-d30v.c: Likewise.

View File

@ -566,17 +566,47 @@ section_symbol (sec)
/* Return whether the specified segment is thought to hold text. */
#ifndef BFD_ASSEMBLER
const char * const nontext_section_names[] =
{
".eh_frame",
".gcc_except_table",
#ifdef OBJ_COFF
#ifndef COFF_LONG_SECTION_NAMES
".eh_fram",
".gcc_exc",
#endif
#endif
NULL
};
#endif /* ! BFD_ASSEMBLER */
int
subseg_text_p (sec)
segT sec;
{
#ifdef BFD_ASSEMBLER
return (bfd_get_section_flags (stdoutput, sec) & SEC_CODE) != 0;
#else
return (sec != data_section
&& sec != bss_section
&& strcmp (segment_name (sec), ".eh_frame") != 0);
#else /* ! BFD_ASSEMBLER */
const char * const *p;
if (sec == data_section || sec == bss_section)
return false;
for (p = nontext_section_names; *p != NULL; ++p)
{
if (strcmp (segment_name (sec), *p) == 0)
return false;
#ifdef obj_segment_name
if (strcmp (obj_segment_name (sec), *p) == 0)
return false;
#endif
}
return true;
#endif /* ! BFD_ASSEMBLER */
}
void