summaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>1997-09-10 14:00:28 -0400
committerJason Merrill <jason@gcc.gnu.org>1997-09-10 14:00:28 -0400
commit0021b564f4ce0b648a8d6ec49b29afe609370788 (patch)
tree0928096722cf7e87c6973bd7bb029f787ab959db /gcc/varasm.c
parent0680d170431a1a44f958ca97a9ce01ea12b676b6 (diff)
downloadgcc-0021b564f4ce0b648a8d6ec49b29afe609370788.tar.gz
dwarf2 EH support
From-SVN: r15255
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 9d245830f44..351524dec55 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -170,6 +170,9 @@ static enum in_section { no_section, in_text, in_data, in_named
#ifdef BSS_SECTION_ASM_OP
, in_bss
#endif
+#ifdef EH_FRAME_SECTION_ASM_OP
+ , in_eh_frame
+#endif
#ifdef EXTRA_SECTIONS
, EXTRA_SECTIONS
#endif
@@ -401,6 +404,18 @@ asm_output_aligned_bss (file, decl, name, size, align)
#endif /* BSS_SECTION_ASM_OP */
+#ifdef EH_FRAME_SECTION_ASM_OP
+void
+eh_frame_section ()
+{
+ if (in_section != in_eh_frame)
+ {
+ fprintf (asm_out_file, "%s\n", EH_FRAME_SECTION_ASM_OP);
+ in_section = in_eh_frame;
+ }
+}
+#endif
+
/* Switch to the section for function DECL.
If DECL is NULL_TREE, switch to the text section.
@@ -461,15 +476,15 @@ variable_section (decl, reloc)
void
exception_section ()
{
+#if defined (EXCEPTION_SECTION)
+ EXCEPTION_SECTION ();
+#else
#ifdef ASM_OUTPUT_SECTION_NAME
named_section (NULL_TREE, ".gcc_except_table", 0);
#else
if (flag_pic)
data_section ();
else
-#if defined (EXCEPTION_SECTION)
- EXCEPTION_SECTION ();
-#else
readonly_data_section ();
#endif
#endif