From 9ae130f857c95929cd8af833b66f526827a7f701 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Mon, 14 Jul 2003 23:18:15 +0200 Subject: [PATCH] cfglayout.c (locator_file): Break out from .... * cfglayout.c (locator_file): Break out from .... (insn_file): ... here. (locator_line): Break out from .... (insn_line): ... here. * rtl.h (locator_file, locator_line): Declare. (final_start_function): Set proper line/file info. From-SVN: r69359 --- gcc/ChangeLog | 9 +++++++++ gcc/cfglayout.c | 24 ++++++++++++++++++------ gcc/final.c | 5 +++-- gcc/rtl.h | 2 ++ 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ecd072f9288..7d63ed9efe7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +Mon Jul 14 23:14:28 CEST 2003 Jan Hubicka + + * cfglayout.c (locator_file): Break out from .... + (insn_file): ... here. + (locator_line): Break out from .... + (insn_line): ... here. + * rtl.h (locator_file, locator_line): Declare. + (final_start_function): Set proper line/file info. + 2003-07-14 Gabriel Dos Reis * c-pretty-print.c (pp_c_unary_expression): A CONVERT_EXPR is diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c index 7172eaa7c3d..38390894ac8 100644 --- a/gcc/cfglayout.c +++ b/gcc/cfglayout.c @@ -435,13 +435,12 @@ insn_scope (rtx insn) return VARRAY_TREE (block_locators_blocks, min); } -/* Return line number of the statement that produced this insn. */ +/* Return line number of the statement specified by the locator. */ int -insn_line (rtx insn) +locator_line (int loc) { int max = VARRAY_ACTIVE_SIZE (line_locators_locs); int min = 0; - int loc = INSN_LOCATOR (insn); if (!max || !loc) return 0; @@ -463,13 +462,19 @@ insn_line (rtx insn) return VARRAY_INT (line_locators_lines, min); } -/* Return source file of the statement that produced this insn. */ +/* Return line number of the statement that produced this insn. */ +int +insn_line (rtx insn) +{ + return locator_line (INSN_LOCATOR (insn)); +} + +/* Return source file of the statement specified by LOC. */ const char * -insn_file (rtx insn) +locator_file (int loc) { int max = VARRAY_ACTIVE_SIZE (file_locators_locs); int min = 0; - int loc = INSN_LOCATOR (insn); if (!max || !loc) return NULL; @@ -491,6 +496,13 @@ insn_file (rtx insn) return VARRAY_CHAR_PTR (file_locators_files, min); } +/* Return source file of the statement that produced this insn. */ +const char * +insn_file (rtx insn) +{ + return locator_file (INSN_LOCATOR (insn)); +} + /* Rebuild all the NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes based on the scope tree and the newly reordered instructions. */ diff --git a/gcc/final.c b/gcc/final.c index e3ded5db34a..cfc730cf1f7 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -1349,8 +1349,9 @@ final_start_function (rtx first ATTRIBUTE_UNUSED, FILE *file, } #endif - last_linenum = 0; - last_filename = 0; + last_filename = locator_file (prologue_locator); + last_linenum = locator_line (prologue_locator); + high_block_linenum = high_function_linenum = last_linenum; (*debug_hooks->begin_prologue) (last_linenum, last_filename); diff --git a/gcc/rtl.h b/gcc/rtl.h index bc9d5ee2691..9d3b0dc1b9b 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -1544,6 +1544,8 @@ extern rtx prev_cc0_setter (rtx); extern tree choose_inner_scope (tree, tree); extern int insn_line (rtx); extern const char * insn_file (rtx); +extern int locator_line (int); +extern const char * locator_file (int); extern int prologue_locator, epilogue_locator; /* In jump.c */ -- 2.30.2