/* Debug hooks for GCC.
- Copyright (C) 2001-2015 Free Software Foundation, Inc.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
void (* finish) (const char *main_filename);
/* Run cleanups necessary after early debug generation. */
- void (* early_finish) (void);
+ void (* early_finish) (const char *main_filename);
/* Called from cgraph_optimize before starting to assemble
functions/variables/toplevel asms. */
though the BLOCK information is messed up. Defaults to true. */
bool (* ignore_block) (const_tree);
- /* Record a source file location at (FILE, LINE, DISCRIMINATOR). */
- void (* source_line) (unsigned int line, const char *file,
- int discriminator, bool is_stmt);
+ /* Record a source file location at (FILE, LINE, COLUMN, DISCRIMINATOR). */
+ void (* source_line) (unsigned int line, unsigned int column,
+ const char *file, int discriminator, bool is_stmt);
/* Called at start of prologue code. LINE is the first line in the
function. */
- void (* begin_prologue) (unsigned int line, const char *file);
+ void (* begin_prologue) (unsigned int line, unsigned int column,
+ const char *file);
/* Called at end of prologue code. LINE is the first line in the
function. */
/* Debug information for imported modules and declarations. */
void (* imported_module_or_decl) (tree decl, tree name,
- tree context, bool child);
+ tree context, bool child,
+ bool implicit);
+
+ /* Return true if a DIE for the tree is available and return a symbol
+ and offset that can be used to refer to it externally. */
+ bool (* die_ref_for_decl) (tree, const char **, unsigned HOST_WIDE_INT *);
+
+ /* Early debug information for the tree is available at symbol plus
+ offset externally. */
+ void (* register_external_die) (tree, const char *, unsigned HOST_WIDE_INT);
/* DECL is an inline function, whose body is present, but which is
not being output at this point. */
/* The do-nothing hooks. */
extern void debug_nothing_void (void);
extern void debug_nothing_charstar (const char *);
+extern void debug_nothing_int_int_charstar (unsigned int, unsigned int,
+ const char *);
extern void debug_nothing_int_charstar (unsigned int, const char *);
-extern void debug_nothing_int_charstar_int_bool (unsigned int, const char *,
- int, bool);
+extern void debug_nothing_int_int_charstar_int_bool (unsigned int,
+ unsigned int,
+ const char *,
+ int, bool);
extern void debug_nothing_int (unsigned int);
extern void debug_nothing_int_int (unsigned int, unsigned int);
extern void debug_nothing_tree (tree);
extern void debug_nothing_tree_tree (tree, tree);
extern void debug_nothing_tree_int (tree, int);
-extern void debug_nothing_tree_tree_tree_bool (tree, tree, tree, bool);
+extern void debug_nothing_tree_tree_tree_bool_bool (tree, tree, tree,
+ bool, bool);
extern bool debug_true_const_tree (const_tree);
extern void debug_nothing_rtx_insn (rtx_insn *);
extern void debug_nothing_rtx_code_label (rtx_code_label *);
+extern bool debug_false_tree_charstarstar_uhwistar (tree, const char **,
+ unsigned HOST_WIDE_INT *);
+extern void debug_nothing_tree_charstar_uhwi (tree, const char *,
+ unsigned HOST_WIDE_INT);
/* Hooks for various debug formats. */
extern const struct gcc_debug_hooks do_nothing_debug_hooks;
extern const struct gcc_debug_hooks dbx_debug_hooks;
-extern const struct gcc_debug_hooks sdb_debug_hooks;
extern const struct gcc_debug_hooks xcoff_debug_hooks;
extern const struct gcc_debug_hooks dwarf2_debug_hooks;
extern const struct gcc_debug_hooks dwarf2_lineno_debug_hooks;
/* Dwarf2 frame information. */
-extern void dwarf2out_begin_prologue (unsigned int, const char *);
+extern void dwarf2out_begin_prologue (unsigned int, unsigned int,
+ const char *);
extern void dwarf2out_vms_end_prologue (unsigned int, const char *);
extern void dwarf2out_vms_begin_epilogue (unsigned int, const char *);
extern void dwarf2out_end_epilogue (unsigned int, const char *);
extern void dwarf2out_frame_finish (void);
-/* Decide whether we want to emit frame unwind information for the current
- translation unit. */
+extern bool dwarf2out_do_eh_frame (void);
extern bool dwarf2out_do_frame (void);
extern bool dwarf2out_do_cfi_asm (void);
extern void dwarf2out_switch_text_section (void);