diff options
author | Neil Booth <neil@daikokuya.demon.co.uk> | 2001-07-17 19:47:58 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2001-07-17 19:47:58 +0000 |
commit | 653e276c6536663cda57bda038a9df4e64adb96f (patch) | |
tree | 9abd13faa762d57f769d9f43c78300834738874b /gcc/dwarf2out.c | |
parent | 91a18fe0e6d96ec2cdad7d4f12ada3b4f5ed11e6 (diff) | |
download | gcc-653e276c6536663cda57bda038a9df4e64adb96f.zip gcc-653e276c6536663cda57bda038a9df4e64adb96f.tar.gz gcc-653e276c6536663cda57bda038a9df4e64adb96f.tar.bz2 |
dbxout.c (dbxout_really_begin_function): Rename to dbxout_begin_function.
* dbxout.c (dbxout_really_begin_function): Rename to
dbxout_begin_function.
(dbx_debug_hooks, xcoff_debug_hooks): Update.
(dbxout_begin_function): Remove.
(dbxout_function): Update.
(dbxout_source_line): Update prototype.
* dbxout.h (dbxout_begin_function): Remove.
* debug.c (do_nothing_debug_hooks): Update.
(debug_nothing_tree): Update.
(debug_nothing_charstar_rtx): Remove.
* debug.h (union tree_node): Declare.
(struct rtx_def): Remove.
(gcc_debug_hooks): New hooks begin_prologue, end_prologue,
begin_function. Change source_line prototype.
(debug_nothing_tree): New.
(debug_nothing_charstar_rtx): Delete.
(dwarf2out_begin_prologue): Moved from ...
* tree.h: ... here.
* dwarf2out.c (dwarf2_debug_hooks): Update.
(dwarf2out_begin_prologue): Update prototype. If genuine dwarf2
debug info, call dwarf2out_source_line.
(dwarf2out_souce_line): Update prototype.
* dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue.
Change prototype, make static.
(dwarfout_source_line): Update prototype.
(dwarf_debug_hooks): Update.
* dwarfout.h (dwarfout_begin_function): Remove.
* final.c (final_start_function, final_scan_insn): Use appropriate
debug hooks, update to use notice_source_line.
(output_source_line): Rename notice_source_line. Don't call the
source_line debug hook.
* sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue,
make static, update prototype.
(sdbout_mark_begin_function): Rename sdbout_begin_function, update
prototype.
(sdbout_end_prologue): New.
(sdbout_source_line): Update prototype.
(sdbout_debug_hooks): Update.
(sdbout_symbol): Remove unused var.
* sdbout.h (sdbout_begin_function, sdbout_mark_begin_function):
Delete.
* varasm.c: Include debug.h.
(assemble_start_function): Use begin_function debug_hook.
* xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function,
update with prototype.
(xcoffout_source_line): Update prototype.
* xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function,
update prototype.
(xcoffout_source_line): Update prototype.
From-SVN: r44087
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r-- | gcc/dwarf2out.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 207bda7..1aa927a 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -59,6 +59,10 @@ Boston, MA 02111-1307, USA. */ #include "diagnostic.h" #include "debug.h" +#ifdef DWARF2_DEBUGGING_INFO +static void dwarf2out_source_line PARAMS ((unsigned int, const char *)); +#endif + /* DWARF2 Abbreviation Glossary: CFA = Canonical Frame Address a fixed address on the stack which identifies a call frame. @@ -1999,7 +2003,9 @@ output_call_frame_info (for_eh) the prologue. */ void -dwarf2out_begin_prologue () +dwarf2out_begin_prologue (line, file) + unsigned int line ATTRIBUTE_UNUSED; + const char *file ATTRIBUTE_UNUSED; { char label[MAX_ARTIFICIAL_LABEL_BYTES]; register dw_fde_ref fde; @@ -2056,6 +2062,13 @@ dwarf2out_begin_prologue () fde->uses_eh_lsda = cfun->uses_eh_lsda; args_size = old_args_size = 0; + + /* We only want to output line number information for the genuine + dwarf2 prologue case, not the eh frame case. */ +#ifdef DWARF2_DEBUGGING_INFO + if (file) + dwarf2out_source_line (line, file); +#endif } /* Output a marker (i.e. a label) for the absolute end of the generated code @@ -3009,7 +3022,6 @@ static void dwarf2out_start_source_file PARAMS ((unsigned, const char *)); static void dwarf2out_end_source_file PARAMS ((unsigned)); static void dwarf2out_begin_block PARAMS ((unsigned, unsigned)); static void dwarf2out_end_block PARAMS ((unsigned, unsigned)); -static void dwarf2out_source_line PARAMS ((const char *, rtx)); /* The debug hooks structure. */ @@ -3024,7 +3036,10 @@ struct gcc_debug_hooks dwarf2_debug_hooks = dwarf2out_begin_block, dwarf2out_end_block, dwarf2out_source_line, + dwarf2out_begin_prologue, + debug_nothing_int, /* end_prologue */ dwarf2out_end_epilogue, + debug_nothing_tree, /* begin_function */ debug_nothing_int /* end_function */ }; @@ -11224,12 +11239,10 @@ init_file_table () 'line_info_table' for later output of the .debug_line section. */ static void -dwarf2out_source_line (filename, note) +dwarf2out_source_line (line, filename) + unsigned int line; register const char *filename; - rtx note; { - unsigned int line = NOTE_LINE_NUMBER (note); - if (debug_info_level >= DINFO_LEVEL_NORMAL) { function_section (current_function_decl); |