#define GCC_DEBUG_H
union tree_node;
+struct rtx_def;
/* This structure contains hooks for the debug information output
functions, accessed through the global instance debug_hooks set in
/* Record the end of a block. Arguments as for begin_block. */
void (* end_block) PARAMS ((unsigned int line, unsigned int n));
+ /* Returns nonzero if it is appropriate not to emit any debugging
+ information for BLOCK, because it doesn't contain any
+ instructions. This may not be the case for blocks containing
+ nested functions, since we may actually call such a function even
+ though the BLOCK information is messed up. Defaults to true. */
+ bool (* ignore_block) PARAMS ((union tree_node *));
+
/* Record a source file location at (FILE, LINE). */
void (* source_line) PARAMS ((unsigned int line, const char *file));
/* Record end of function. LINE is highest line number in function. */
void (* end_function) PARAMS ((unsigned int line));
+
+ /* Debug information for a function DECL. This might include the
+ function name (a symbol), its parameters, and the block that
+ makes up the function's body, and the local variables of the
+ function. */
+ void (* function_decl) PARAMS ((union tree_node *decl));
+
+ /* Debug information for a global DECL. Called from toplev.c after
+ compilation proper has finished. */
+ void (* global_decl) PARAMS ((union tree_node *decl));
+
+ /* DECL is an inline function, whose body is present, but which is
+ not being output at this point. */
+ void (* deferred_inline_function) PARAMS ((union tree_node *decl));
+
+ /* DECL is an inline function which is about to be emitted out of
+ line. The hook is useful to, e.g., emit abstract debug info for
+ the inline before it gets mangled by optimization. */
+ void (* outlining_inline_function) PARAMS ((union tree_node *decl));
+
+ /* Called from final_scan_insn for any CODE_LABEL insn whose
+ LABEL_NAME is non-null. */
+ void (* label) PARAMS ((struct rtx_def *insn));
};
extern struct gcc_debug_hooks *debug_hooks;
PARAMS ((unsigned int, unsigned int));
extern void debug_nothing_tree
PARAMS ((union tree_node *));
+extern bool debug_true_tree
+ PARAMS ((union tree_node *));
+extern void debug_nothing_rtx
+ PARAMS ((struct rtx_def *));
/* Hooks for various debug formats. */
extern struct gcc_debug_hooks do_nothing_debug_hooks;
PARAMS ((unsigned int, const char * file));
extern void dwarf2out_end_epilogue
PARAMS ((void));
+extern void dwarf2out_frame_init
+ PARAMS ((void));
+extern void dwarf2out_frame_finish
+ PARAMS ((void));
+/* Decide whether we want to emit frame unwind information for the current
+ translation unit. */
+extern int dwarf2out_do_frame
+ PARAMS ((void));
#endif /* !GCC_DEBUG_H */