diff options
author | amacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-12-14 14:19:48 +0000 |
---|---|---|
committer | amacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-12-14 14:19:48 +0000 |
commit | 14948c31be2f4d3bc140d3e67cad3ba1e85fb357 (patch) | |
tree | 9c3b295b1593fd55841e42176ef3ad15e79ae042 | |
parent | 881c3cf0ff288ee444b6492a9bdb5be77363796a (diff) | |
download | gcc-14948c31be2f4d3bc140d3e67cad3ba1e85fb357.tar.gz |
* output.h (force_data_section): New prototype.
* varasm.c (force_data_section): New function to force the
data section, regardless of what in_section thinks.
* dwarf2out.c (output_call_frame_info): Call force_data_section
since varasm may not realize we've changes sections.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24311 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 2 | ||||
-rw-r--r-- | gcc/output.h | 3 | ||||
-rw-r--r-- | gcc/varasm.c | 9 |
4 files changed, 21 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bb45298682c..526c5394242 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +Mon Dec 14 17:13:36 EST 1998 Andrew MacLeod <amacleod@cygnus.com> + + * output.h (force_data_section): New prototype. + * varasm.c (force_data_section): New function to force the + data section, regardless of what in_section thinks. + * dwarf2out.c (output_call_frame_info): Call force_data_section + since varasm may not realize we've changes sections. + Mon Dec 14 14:09:34 1998 Nick Clifton <nickc@cygnus.com> * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 866108022af..8f99206f133 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -1691,7 +1691,7 @@ output_call_frame_info (for_eh) #else tree label = get_file_function_name ('F'); - data_section (); + force_data_section (); ASM_OUTPUT_ALIGN (asm_out_file, floor_log2 (PTR_SIZE)); ASM_GLOBALIZE_LABEL (asm_out_file, IDENTIFIER_POINTER (label)); ASM_OUTPUT_LABEL (asm_out_file, IDENTIFIER_POINTER (label)); diff --git a/gcc/output.h b/gcc/output.h index 4082e629cfc..4fcce0b22ee 100644 --- a/gcc/output.h +++ b/gcc/output.h @@ -142,6 +142,9 @@ extern void text_section PROTO((void)); /* Tell assembler to switch to data section. */ extern void data_section PROTO((void)); +/* Tell assembler to make sure its in the data section. */ +extern void force_data_section PROTO((void)); + /* Tell assembler to switch to read-only data section. This is normally the text section. */ extern void readonly_data_section PROTO((void)); diff --git a/gcc/varasm.c b/gcc/varasm.c index e47a0cda419..343c60364c6 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -216,6 +216,15 @@ data_section () in_section = in_data; } } +/* Tell assembler to ALWAYS switch to data section, in case + it's not sure where it it. */ + +void +force_data_section () +{ + in_section = no_section; + data_section (); +} /* Tell assembler to switch to read-only data section. This is normally the text section. */ |