summaryrefslogtreecommitdiff
path: root/gcc/vmsdbgout.c
diff options
context:
space:
mode:
authorccoutant <ccoutant@138bc75d-0d04-0410-961f-82ee72b054a4>2009-06-04 23:12:27 +0000
committerccoutant <ccoutant@138bc75d-0d04-0410-961f-82ee72b054a4>2009-06-04 23:12:27 +0000
commitd01c707b0a327e54438e75b461c5991dfaa50c8f (patch)
tree62b2a3883be83cd19685457df195f788da6d5d99 /gcc/vmsdbgout.c
parentfc509e4c0b88bebe41b103695c3cfeab4f295766 (diff)
downloadgcc-d01c707b0a327e54438e75b461c5991dfaa50c8f.tar.gz
* basic-block.h (struct basic_block_def): Add discriminator field.
* dbxout.c (dbxout_source_line): Add new parameter. Change all callers. * debug.c (do_nothing_debug_hooks): Add additional entry. (debug_nothing_int_charstar_int): New function. * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook. (debug_nothing_int_charstar_int): New declaration. * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write discriminator value in .loc directive. * final.c (last_discriminator): New variable. (discriminator): New variable. (final_start_function): Initialize above variables, pass current discriminator to debug hook. (notice_source_line): Check for discriminator change. * gimple-pretty-print.c (dump_bb_header): Print discriminator value. * sdbout.c (sdbout_source_line): New parameter. * tree-cfg.c (struct locus_discrim_map): New structure type. (discriminator_per_locus): New hash table. (build_gimple_cfg): Allocate and free discriminator hash table. (make_edges): Call assign_discriminator. (locus_map_hash): New function. (locus_map_eq): New function. (next_discriminator_for_locus): New function. (same_line_p): New function. (assign_discriminator): New function. (make_cond_expr_edges): Call assign_discriminator. (make_gimple_switch_edges): Likewise. (first_non_label_stmt): New function. * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change all callers. * xcoffout.c (xcoffout_source_line): Add new parameter. * configure.ac (gcc_cv_as_discriminator): New configury check for gas support for discriminator. * configure: Regenerate. * config.in: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148191 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/vmsdbgout.c')
-rw-r--r--gcc/vmsdbgout.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/vmsdbgout.c b/gcc/vmsdbgout.c
index 134c7d99225..41a3420f9ed 100644
--- a/gcc/vmsdbgout.c
+++ b/gcc/vmsdbgout.c
@@ -173,7 +173,7 @@ static void vmsdbgout_end_source_file (unsigned int);
static void vmsdbgout_begin_block (unsigned int, unsigned int);
static void vmsdbgout_end_block (unsigned int, unsigned int);
static bool vmsdbgout_ignore_block (const_tree);
-static void vmsdbgout_source_line (unsigned int, const char *);
+static void vmsdbgout_source_line (unsigned int, const char *, int);
static void vmsdbgout_begin_prologue (unsigned int, const char *);
static void vmsdbgout_end_prologue (unsigned int, const char *);
static void vmsdbgout_end_function (unsigned int);
@@ -1297,7 +1297,7 @@ vmsdbgout_end_prologue (unsigned int line, const char *file)
ASM_OUTPUT_LABEL (asm_out_file, label);
/* VMS PCA expects every PC range to correlate to some line and file. */
- vmsdbgout_source_line (line, file);
+ vmsdbgout_source_line (line, file, 0);
}
}
@@ -1331,7 +1331,7 @@ vmsdbgout_end_epilogue (unsigned int line, const char *file)
ASM_OUTPUT_LABEL (asm_out_file, label);
/* VMS PCA expects every PC range to correlate to some line and file. */
- vmsdbgout_source_line (line, file);
+ vmsdbgout_source_line (line, file, 0);
}
}
@@ -1533,10 +1533,11 @@ lookup_filename (const char *file_name)
'line_info_table' for later output of the .debug_line section. */
static void
-vmsdbgout_source_line (register unsigned line, register const char *filename)
+vmsdbgout_source_line (register unsigned line, register const char *filename,
+ int discriminator)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
- (*dwarf2_debug_hooks.source_line) (line, filename);
+ (*dwarf2_debug_hooks.source_line) (line, filename, discriminator);
if (debug_info_level >= DINFO_LEVEL_TERSE)
{