aboutsummaryrefslogtreecommitdiff
path: root/gcc/debug.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/debug.h')
-rw-r--r--gcc/debug.h42
1 files changed, 38 insertions, 4 deletions
diff --git a/gcc/debug.h b/gcc/debug.h
index 276c887..e7e1334 100644
--- a/gcc/debug.h
+++ b/gcc/debug.h
@@ -30,6 +30,9 @@ struct gcc_debug_hooks
/* Output debug symbols. */
void (* finish) (const char *main_filename);
+ /* Run cleanups necessary after early debug generation. */
+ void (* early_finish) (void);
+
/* Called from cgraph_optimize before starting to assemble
functions/variables/toplevel asms. */
void (* assembly_start) (void);
@@ -89,12 +92,43 @@ struct gcc_debug_hooks
/* 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. */
+ function.
+
+ This is only called for FUNCTION_DECLs. It is part of the late
+ debug pass and is called from rest_of_handle_final.
+
+ Location information is available at this point.
+
+ See the documentation for early_global_decl and late_global_decl
+ for other entry points into the debugging back-ends for DECLs. */
void (* function_decl) (tree decl);
- /* Debug information for a global DECL. Called from toplev.c after
- compilation proper has finished. */
- void (* global_decl) (tree decl);
+ /* Debug information for a global DECL. Called from the parser
+ after the parsing process has finished.
+
+ This gets called for both variables and functions.
+
+ Location information is not available at this point, but it is a
+ good probe point to get access to symbols before they get
+ optimized away.
+
+ This hook may be called on VAR_DECLs or FUNCTION_DECLs. It is up
+ to the hook to use what it needs. */
+ void (* early_global_decl) (tree decl);
+
+ /* Augment debug information generated by early_global_decl with
+ more complete debug info (if applicable). Called from toplev.c
+ after the compilation proper has finished and cgraph information
+ is available.
+
+ This gets called for both variables and functions.
+
+ Location information is usually available at this point, unless
+ the hook is being called for a decl that has been optimized away.
+
+ This hook may be called on VAR_DECLs or FUNCTION_DECLs. It is up
+ to the hook to use what it needs. */
+ void (* late_global_decl) (tree decl);
/* Debug information for a type DECL. Called from toplev.c after
compilation proper, also from various language front ends to