aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.c
diff options
context:
space:
mode:
authorNeil Booth <neil@daikokuya.demon.co.uk>2001-07-17 19:47:58 +0000
committerNeil Booth <neil@gcc.gnu.org>2001-07-17 19:47:58 +0000
commit653e276c6536663cda57bda038a9df4e64adb96f (patch)
tree9abd13faa762d57f769d9f43c78300834738874b /gcc/dwarf2out.c
parent91a18fe0e6d96ec2cdad7d4f12ada3b4f5ed11e6 (diff)
downloadgcc-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.c25
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);