From c37d72e9931dff0b6d6e649996c1bdaaeb654870 Mon Sep 17 00:00:00 2001 From: neil Date: Thu, 19 Jul 2001 06:22:04 +0000 Subject: * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44145 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/dbxout.c | 64 ++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 36 insertions(+), 28 deletions(-) (limited to 'gcc/dbxout.c') diff --git a/gcc/dbxout.c b/gcc/dbxout.c index e2f21ff88c9..ea05106fb02 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -317,6 +317,7 @@ static void dbxout_begin_function PARAMS ((tree)); static void dbxout_begin_block PARAMS ((unsigned, unsigned)); static void dbxout_end_block PARAMS ((unsigned, unsigned)); +static void dbxout_function_decl PARAMS ((tree)); struct gcc_debug_hooks dbx_debug_hooks = { @@ -337,7 +338,10 @@ struct gcc_debug_hooks dbx_debug_hooks = #else debug_nothing_tree, /* begin_function */ #endif - debug_nothing_int /* end_function */ + debug_nothing_int, /* end_function */ + dbxout_function_decl, + debug_nothing_tree, /* global_decl */ + debug_nothing_tree /* deferred_inline_function */ }; #endif /* DBX_DEBUGGING_INFO */ @@ -357,7 +361,10 @@ struct gcc_debug_hooks xcoff_debug_hooks = debug_nothing_int, /* end_prologue */ xcoffout_end_epilogue, debug_nothing_tree, /* begin_function */ - xcoffout_end_function + xcoffout_end_function, + debug_nothing_tree, /* function_decl */ + debug_nothing_tree, /* global_decl */ + debug_nothing_tree /* deferred_inline_function */ }; #endif /* XCOFF_DEBUGGING_INFO */ @@ -608,6 +615,33 @@ dbxout_end_block (line, n) ASM_OUTPUT_INTERNAL_LABEL (asmfile, "LBE", n); } +/* Output dbx data for a function definition. + This includes a definition of the function name itself (a symbol), + definitions of the parameters (locating them in the parameter list) + and then output the block that makes up the function's body + (including all the auto variables of the function). */ + +static void +dbxout_function_decl (decl) + tree decl; +{ +#ifndef DBX_FUNCTION_FIRST + dbxout_begin_function (decl); +#endif + dbxout_block (DECL_INITIAL (decl), 0, DECL_ARGUMENTS (decl)); +#ifdef DBX_OUTPUT_FUNCTION_END + DBX_OUTPUT_FUNCTION_END (asmfile, decl); +#endif +#if defined(ASM_OUTPUT_SECTION_NAME) + if (use_gnu_debug_info_extensions +#if defined(NO_DBX_FUNCTION_END) + && ! NO_DBX_FUNCTION_END +#endif + ) + dbxout_function_end (); +#endif +} + #endif /* DBX_DEBUGGING_INFO */ /* At the end of compilation, finish writing the symbol table. @@ -2733,30 +2767,4 @@ dbxout_begin_function (decl) dbxout_symbol (DECL_RESULT (decl), 1); } -/* Output dbx data for a function definition. - This includes a definition of the function name itself (a symbol), - definitions of the parameters (locating them in the parameter list) - and then output the block that makes up the function's body - (including all the auto variables of the function). */ - -void -dbxout_function (decl) - tree decl; -{ -#ifndef DBX_FUNCTION_FIRST - dbxout_begin_function (decl); -#endif - dbxout_block (DECL_INITIAL (decl), 0, DECL_ARGUMENTS (decl)); -#ifdef DBX_OUTPUT_FUNCTION_END - DBX_OUTPUT_FUNCTION_END (asmfile, decl); -#endif -#if defined(ASM_OUTPUT_SECTION_NAME) - if (use_gnu_debug_info_extensions -#if defined(NO_DBX_FUNCTION_END) - && ! NO_DBX_FUNCTION_END -#endif - ) - dbxout_function_end (); -#endif -} #endif /* DBX_DEBUGGING_INFO || XCOFF_DEBUGGING_INFO */ -- cgit v1.2.1