aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.c
diff options
context:
space:
mode:
authorNeil Booth <neil@daikokuya.demon.co.uk>2001-07-19 06:22:04 +0000
committerNeil Booth <neil@gcc.gnu.org>2001-07-19 06:22:04 +0000
commit2b85879e637df70ff99b3d7bbea2dd0997cc907f (patch)
treeb1d514bcbcb3022999013a3add1442cb71310221 /gcc/dwarf2out.c
parentc60e94a70efc44dd419ec5119dad3aa7813949d3 (diff)
downloadgcc-2b85879e637df70ff99b3d7bbea2dd0997cc907f.zip
gcc-2b85879e637df70ff99b3d7bbea2dd0997cc907f.tar.gz
gcc-2b85879e637df70ff99b3d7bbea2dd0997cc907f.tar.bz2
Makefile.in (toplev.o, [...]): Don't depend on dwarfout.h.
* Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on dwarfout.h. * dbxout.c (dbxout_function): Rename dbxout_funciton_decl, move to conditionally compiled block. (dbx_debug_hooks, xcoff_debug_hooks): Update. * dbxout.h (dbxout_function): Remove. * debug.c (do_nothing_debug_hooks): Update. * debug.h (struct gcc_debug_hooks): New hooks function_decl, global_decl, deferred_inline_function. * dwarf2out.c (dwarf2_debug_hooks): Update. (dwarf2out_global_decl): New. * dwarfout.c: Don't include dwarfout.h. (dwarfout_global_decl, dwarfout_function_decl, dwarfout_deferred_inline_function): New. (dwarf_debug_hooks): Update. * dwarfout.h: Remove. * final.c: Don't include dwarfout.h. * sdbout.c (sdbout_global_decl): New. (sdbout_debug_hooks): Update. * toplev.c: Don't include dwarfout.h. (check_global_declarations, rest_of_compilation): Use new debug hooks. (note_deferral_of_defined_inline_function): Remove. * toplev.h (note_deferral_of_defined_inline_function): Remove. * ch/Makefile.in (lex.o): No dependence on dwarfout.h. * ch/lex.c: Don't include dwarfout.h. * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h. (semantics.o, optimize.o): Depend on debug.h not dwarfout.h. * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h. * cp/optimize.c: Include debug.h. (maybe_clone_body): Use debug hook. * cp/semantics.c: Include debug.h. (expand_body): Use debug hook. * po/POTFILES.in: Remove dwarfout.h. From-SVN: r44145
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r--gcc/dwarf2out.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 1dbdae0..99fa220 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -3022,6 +3022,7 @@ 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_global_decl PARAMS ((tree));
/* The debug hooks structure. */
@@ -3040,7 +3041,10 @@ struct gcc_debug_hooks dwarf2_debug_hooks =
debug_nothing_int, /* end_prologue */
dwarf2out_end_epilogue,
debug_nothing_tree, /* begin_function */
- debug_nothing_int /* end_function */
+ debug_nothing_int, /* end_function */
+ dwarf2out_decl, /* function_decl */
+ dwarf2out_global_decl,
+ debug_nothing_tree /* deferred_inline_function */
};
/* NOTE: In the comments in this file, many references are made to
@@ -11011,6 +11015,21 @@ dwarf2out_add_library_unit_info (filename, context_list)
}
}
+/* Debug information for a global DECL. Called from toplev.c after
+ compilation proper has finished. */
+static void
+dwarf2out_global_decl (decl)
+ tree decl;
+{
+ /* Output DWARF2 information for file-scope tentative data object
+ declarations, file-scope (extern) function declarations (which
+ had no corresponding body) and file-scope tagged type
+ declarations and definitions which have not yet been forced out. */
+
+ if (TREE_CODE (decl) != FUNCTION_DECL || !DECL_INITIAL (decl))
+ dwarf2out_decl (decl);
+}
+
/* Write the debugging output for DECL. */
void